diff --git a/package.json b/package.json index 1ff0b727..d788aad5 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,10 @@ } }, "overrides": { - "sqlite3": "git+https://github.com/whyour/node-sqlite3.git#v1.0.3" + "sqlite3": "git+https://github.com/whyour/node-sqlite3.git#v1.0.3", + "@codemirror/state": "^6", + "@codemirror/view": "^6", + "@codemirror/language": "^6" } }, "dependencies": { @@ -105,17 +108,12 @@ "@ant-design/pro-layout": "6.38.22", "@codemirror/state": "^6.4.1", "@codemirror/view": "^6.34.1", - "@flowgram.ai/free-container-plugin": "1.0.2", - "@flowgram.ai/free-group-plugin": "1.0.2", - "@flowgram.ai/free-layout-editor": "1.0.2", - "@flowgram.ai/free-lines-plugin": "1.0.2", - "@flowgram.ai/free-node-panel-plugin": "1.0.2", - "@flowgram.ai/free-snap-plugin": "1.0.2", - "@flowgram.ai/free-stack-plugin": "1.0.2", - "@flowgram.ai/history-node-plugin": "1.0.2", + "@flowgram.ai/fixed-layout-editor": "1.0.2", + "@flowgram.ai/form-materials": "1.0.2", + "@flowgram.ai/fixed-semi-materials": "1.0.2", + "@flowgram.ai/group-plugin": "1.0.2", "@flowgram.ai/minimap-plugin": "1.0.2", "@flowgram.ai/panel-manager-plugin": "1.0.2", - "@flowgram.ai/runtime-interface": "1.0.2", "@monaco-editor/react": "4.2.1", "@react-hook/resize-observer": "^2.0.2", "@types/body-parser": "^1.19.2", @@ -156,6 +154,7 @@ "axios": "^1.4.0", "compression-webpack-plugin": "9.2.0", "concurrently": "^7.0.0", + "classnames": "^2.5.1", "file-saver": "2.0.2", "lint-staged": "^13.0.3", "lodash-es": "^4.17.21", @@ -181,6 +180,7 @@ "react-router-dom": "6.26.1", "react-split-pane": "^0.1.92", "sockjs-client": "^1.6.0", + "styled-components": "^5.3.10", "ts-node": "^10.9.2", "ts-proto": "^2.6.1", "tslib": "^2.4.0", @@ -188,4 +188,4 @@ "vh-check": "^2.0.5", "virtualizedtableforantd4": "1.3.0" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e58bf943..a33b0767 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,14 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + overrides: sqlite3: git+https://github.com/whyour/node-sqlite3.git#v1.0.3 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@codemirror/language': ^6 dependencies: '@bufbuild/protobuf': @@ -145,33 +152,21 @@ devDependencies: specifier: 6.38.22 version: 6.38.22(prop-types@15.8.1)(react-dom@18.3.1)(react@18.3.1) '@codemirror/state': - specifier: ^6.4.1 - version: 6.4.1 + specifier: ^6 + version: 6.5.2 '@codemirror/view': - specifier: ^6.34.1 - version: 6.35.0 - '@flowgram.ai/free-container-plugin': + specifier: ^6 + version: 6.38.8 + '@flowgram.ai/fixed-layout-editor': specifier: 1.0.2 version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-group-plugin': + '@flowgram.ai/fixed-semi-materials': specifier: 1.0.2 - version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-editor': + version: 1.0.2(@floating-ui/dom@1.7.4)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(styled-components@5.3.11) + '@flowgram.ai/form-materials': specifier: 1.0.2 - version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-lines-plugin': - specifier: 1.0.2 - version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-node-panel-plugin': - specifier: 1.0.2 - version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-snap-plugin': - specifier: 1.0.2 - version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-stack-plugin': - specifier: 1.0.2 - version: 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/history-node-plugin': + version: 1.0.2(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/merge@6.11.2)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@floating-ui/dom@1.7.4)(@lezer/common@1.2.3)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(styled-components@5.3.11)(vue@3.5.24) + '@flowgram.ai/group-plugin': specifier: 1.0.2 version: 1.0.2(react-dom@18.3.1)(react@18.3.1) '@flowgram.ai/minimap-plugin': @@ -180,9 +175,6 @@ devDependencies: '@flowgram.ai/panel-manager-plugin': specifier: 1.0.2 version: 1.0.2(react-dom@18.3.1)(react@18.3.1)(reflect-metadata@0.2.2) - '@flowgram.ai/runtime-interface': - specifier: 1.0.2 - version: 1.0.2 '@monaco-editor/react': specifier: 4.2.1 version: 4.2.1(monaco-editor@0.33.0)(react-dom@18.3.1)(react@18.3.1) @@ -272,10 +264,10 @@ devDependencies: version: 8.3.4 '@uiw/codemirror-extensions-langs': specifier: ^4.21.9 - version: 4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/language-data@6.5.1)(@codemirror/language@6.10.6)(@codemirror/legacy-modes@6.4.2)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2) + version: 4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/language-data@6.5.1)(@codemirror/language@6.11.3)(@codemirror/legacy-modes@6.4.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2) '@uiw/react-codemirror': specifier: ^4.21.9 - version: 4.23.6(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.10.6)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.35.0)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1) + version: 4.23.6(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.38.8)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1) '@umijs/max': specifier: ^4.4.4 version: 4.4.4(@types/node@17.0.45)(@types/react-dom@18.3.1)(@types/react@18.3.12)(prettier@2.8.8)(react-dom@18.3.1)(react@18.3.1)(sockjs-client@1.6.1)(typescript@5.2.2) @@ -297,6 +289,9 @@ devDependencies: axios: specifier: ^1.4.0 version: 1.7.8 + classnames: + specifier: ^2.5.1 + version: 2.5.1 compression-webpack-plugin: specifier: 9.2.0 version: 9.2.0 @@ -378,6 +373,9 @@ devDependencies: sockjs-client: specifier: ^1.6.0 version: 1.6.1 + styled-components: + specifier: ^5.3.10 + version: 5.3.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@17.0.45)(typescript@5.2.2) @@ -969,7 +967,7 @@ packages: '@babel/helpers': 7.26.0 '@babel/parser': 7.26.2 '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 convert-source-map: 2.0.0 debug: 4.3.7(supports-color@5.5.0) @@ -992,7 +990,7 @@ packages: '@babel/helpers': 7.26.0 '@babel/parser': 7.26.2 '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 convert-source-map: 2.0.0 debug: 4.3.7(supports-color@5.5.0) @@ -1061,11 +1059,11 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-module-imports@7.25.9: + /@babel/helper-module-imports@7.25.9(supports-color@5.5.0): resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color @@ -1081,9 +1079,9 @@ packages: optional: true dependencies: '@babel/core': 7.23.6 - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) transitivePeerDependencies: - supports-color dev: true @@ -1098,9 +1096,9 @@ packages: optional: true dependencies: '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) transitivePeerDependencies: - supports-color dev: true @@ -1114,7 +1112,7 @@ packages: resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.9(supports-color@5.5.0) '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color @@ -1125,11 +1123,21 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-string-parser@7.27.1: + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.25.9: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-identifier@7.28.5: + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-option@7.25.9: resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -1151,6 +1159,14 @@ packages: '@babel/types': 7.26.0 dev: true + /@babel/parser@7.28.5: + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.28.5 + dev: true + /@babel/plugin-syntax-async-generators@7.8.4: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -1397,7 +1413,7 @@ packages: '@babel/types': 7.26.0 dev: true - /@babel/traverse@7.25.9: + /@babel/traverse@7.25.9(supports-color@5.5.0): resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} dependencies: @@ -1420,6 +1436,14 @@ packages: '@babel/helper-validator-identifier': 7.25.9 dev: true + /@babel/types@7.28.5: + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + dev: true + /@bloomberg/record-tuple-polyfill@0.0.4: resolution: {integrity: sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==} dev: true @@ -1440,26 +1464,40 @@ packages: tinycolor2: 1.6.0 dev: true - /@codemirror/autocomplete@6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3): + /@codemirror/autocomplete@6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): resolution: {integrity: sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==} peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 '@lezer/common': ^1.0.0 dependencies: - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@lezer/common': 1.2.3 + dev: true + + /@codemirror/autocomplete@6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==} + peerDependencies: + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 dev: true /@codemirror/commands@6.7.1: resolution: {integrity: sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==} dependencies: - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 dev: true @@ -1468,7 +1506,7 @@ packages: dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1477,28 +1515,28 @@ packages: /@codemirror/lang-cpp@6.0.2: resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/cpp': 1.1.2 dev: true - /@codemirror/lang-css@6.3.1(@codemirror/view@6.35.0): + /@codemirror/lang-css@6.3.1(@codemirror/view@6.38.8): resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/css': 1.1.9 transitivePeerDependencies: - '@codemirror/view' dev: true - /@codemirror/lang-go@6.0.1(@codemirror/view@6.35.0): + /@codemirror/lang-go@6.0.1(@codemirror/view@6.38.8): resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/go': 1.0.0 transitivePeerDependencies: @@ -1508,12 +1546,12 @@ packages: /@codemirror/lang-html@6.4.9: resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.38.8) '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/css': 1.1.9 '@lezer/html': 1.3.10 @@ -1522,18 +1560,18 @@ packages: /@codemirror/lang-java@6.0.1: resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/java': 1.1.3 dev: true /@codemirror/lang-javascript@6.2.2: resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.0 '@codemirror/lint': 6.8.4 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/javascript': 1.4.21 dev: true @@ -1541,15 +1579,15 @@ packages: /@codemirror/lang-json@6.0.1: resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/json': 1.0.2 dev: true - /@codemirror/lang-less@6.0.2(@codemirror/view@6.35.0): + /@codemirror/lang-less@6.0.2(@codemirror/view@6.38.8): resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==} dependencies: - '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) - '@codemirror/language': 6.10.6 + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.38.8) + '@codemirror/language': 6.10.0 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1560,8 +1598,8 @@ packages: /@codemirror/lang-lezer@6.0.1: resolution: {integrity: sha512-WHwjI7OqKFBEfkunohweqA5B/jIlxaZso6Nl3weVckz8EafYbPZldQEKSDb4QQ9H9BUkle4PVELP4sftKoA0uQ==} dependencies: - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/lezer': 1.1.2 dev: true @@ -1569,11 +1607,11 @@ packages: /@codemirror/lang-liquid@6.2.2: resolution: {integrity: sha512-7Dm841fk37+JQW6j2rI1/uGkJyESrjzyhiIkaLjbbR0U6aFFQvMrJn35WxQreRMADMhzkyVkZM4467OR7GR8nQ==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1582,11 +1620,11 @@ packages: /@codemirror/lang-markdown@6.3.1: resolution: {integrity: sha512-y3sSPuQjBKZQbQwe3ZJKrSW6Silyl9PnrU/Mf0m2OQgIlPoSYTtOvEL7xs94SVMkb8f4x+SQFnzXPdX4Wk2lsg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/markdown': 1.3.2 dev: true @@ -1595,18 +1633,18 @@ packages: resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} dependencies: '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/php': 1.0.2 dev: true - /@codemirror/lang-python@6.1.6(@codemirror/view@6.35.0): + /@codemirror/lang-python@6.1.6(@codemirror/view@6.38.8): resolution: {integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/python': 1.1.14 transitivePeerDependencies: @@ -1616,28 +1654,41 @@ packages: /@codemirror/lang-rust@6.0.1: resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/rust': 1.0.2 dev: true - /@codemirror/lang-sass@6.0.2(@codemirror/view@6.35.0): + /@codemirror/lang-sass@6.0.2(@codemirror/view@6.38.8): resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} dependencies: - '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.38.8) + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/sass': 1.0.7 transitivePeerDependencies: - '@codemirror/view' dev: true - /@codemirror/lang-sql@6.8.0(@codemirror/view@6.35.0): + /@codemirror/lang-sql@6.10.0(@codemirror/view@6.38.8): + resolution: {integrity: sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w==} + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + transitivePeerDependencies: + - '@codemirror/view' + dev: true + + /@codemirror/lang-sql@6.8.0(@codemirror/view@6.38.8): resolution: {integrity: sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1650,7 +1701,7 @@ packages: dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1659,7 +1710,7 @@ packages: /@codemirror/lang-wast@6.0.2: resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1668,20 +1719,20 @@ packages: /@codemirror/lang-xml@6.1.0: resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/xml': 1.0.5 dev: true - /@codemirror/lang-yaml@6.1.1(@codemirror/view@6.35.0): + /@codemirror/lang-yaml@6.1.1(@codemirror/view@6.38.8): resolution: {integrity: sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/yaml': 1.0.3 @@ -1689,40 +1740,51 @@ packages: - '@codemirror/view' dev: true - /@codemirror/language-data@6.5.1(@codemirror/view@6.35.0): + /@codemirror/language-data@6.5.1(@codemirror/view@6.38.8): resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==} dependencies: '@codemirror/lang-angular': 0.1.3 '@codemirror/lang-cpp': 6.0.2 - '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) - '@codemirror/lang-go': 6.0.1(@codemirror/view@6.35.0) + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.38.8) + '@codemirror/lang-go': 6.0.1(@codemirror/view@6.38.8) '@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.35.0) + '@codemirror/lang-less': 6.0.2(@codemirror/view@6.38.8) '@codemirror/lang-liquid': 6.2.2 '@codemirror/lang-markdown': 6.3.1 '@codemirror/lang-php': 6.0.1 - '@codemirror/lang-python': 6.1.6(@codemirror/view@6.35.0) + '@codemirror/lang-python': 6.1.6(@codemirror/view@6.38.8) '@codemirror/lang-rust': 6.0.1 - '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.35.0) - '@codemirror/lang-sql': 6.8.0(@codemirror/view@6.35.0) + '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.38.8) + '@codemirror/lang-sql': 6.10.0(@codemirror/view@6.38.8) '@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.35.0) - '@codemirror/language': 6.10.6 + '@codemirror/lang-yaml': 6.1.1(@codemirror/view@6.38.8) + '@codemirror/language': 6.11.3 '@codemirror/legacy-modes': 6.4.2 transitivePeerDependencies: - '@codemirror/view' dev: true - /@codemirror/language@6.10.6: - resolution: {integrity: sha512-KrsbdCnxEztLVbB5PycWXFxas4EOyk/fPAfruSOnDDppevQgid2XZ+KbJ9u+fDikP/e7MW7HPBTvTb8JlZK9vA==} + /@codemirror/language@6.10.0: + resolution: {integrity: sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==} dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + dev: true + + /@codemirror/language@6.11.3: + resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -1732,42 +1794,55 @@ packages: /@codemirror/legacy-modes@6.4.2: resolution: {integrity: sha512-HsvWu08gOIIk303eZQCal4H4t65O/qp1V4ul4zVa3MHK5FJ0gz3qz3O55FIkm+aQUcshUOjBx38t2hPiJwW5/g==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.11.3 dev: true /@codemirror/lint@6.8.4: resolution: {integrity: sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A==} dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 crelt: 1.0.6 dev: true + /@codemirror/merge@6.11.2: + resolution: {integrity: sha512-NO5EJd2rLRbwVWLgMdhIntDIhfDtMOKYEZgqV5WnkNUS2oXOCVWLPjG/kgl/Jth2fGiOuG947bteqxP9nBXmMg==} + dependencies: + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@lezer/highlight': 1.2.1 + style-mod: 4.1.2 + dev: true + /@codemirror/search@6.5.8: resolution: {integrity: sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==} dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 crelt: 1.0.6 dev: true - /@codemirror/state@6.4.1: - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + /@codemirror/state@6.5.2: + resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + dependencies: + '@marijn/find-cluster-break': 1.0.2 dev: true /@codemirror/theme-one-dark@6.1.2: resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} dependencies: - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/highlight': 1.2.1 dev: true - /@codemirror/view@6.35.0: - resolution: {integrity: sha512-I0tYy63q5XkaWsJ8QRv5h6ves7kvtrBWjBcnf/bzohFJQc5c14a1AQRdE8QpPF9eMp5Mq2FMm59TCj1gDfE7kw==} + /@codemirror/view@6.38.8: + resolution: {integrity: sha512-XcE9fcnkHCbWkjeKyi0lllwXmBLtyYb5dt89dJyx23I9+LSh5vZDIuk7OLG4VM1lgrXZQcY6cxyZyk5WVPRv/A==} dependencies: - '@codemirror/state': 6.4.1 + '@codemirror/state': 6.5.2 + crelt: 1.0.6 style-mod: 4.1.2 w3c-keyname: 2.2.8 dev: true @@ -1777,6 +1852,674 @@ packages: engines: {node: '>=0.1.90'} dev: false + /@coze-editor/code-language-json@0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@lezer/common@1.2.3): + resolution: {integrity: sha512-DiS8+k2fvuKqnbCAfIxJm3UNSVrve9GsAsSVmOMDBYPi+hjtIo2/cyfJIKocJTuUpzKNP+r3iIYr89TynSFHHw==} + peerDependencies: + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-lint': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/lezer-parser-json': 0.1.0-alpha.868621 + '@coze-editor/parser-json': 0.1.0-alpha.868621 + '@lezer/json': 1.0.2 + '@lukeed/uuid': 2.0.1 + text-mapping: 1.0.1 + vscode-json-languageservice: 5.6.3 + vscode-uri: 3.1.0 + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/code-language-python@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621): + resolution: {integrity: sha512-DYw0M/34x11zEWQGhiGImexeyEACSzd/Dq0SUWpL56fe+md3jEKH/i2qTpd+lGmriRjFxqJO1J7ZpS7gaqvlPQ==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + dependencies: + '@codemirror/lang-python': 6.1.6(@codemirror/view@6.38.8) + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + dev: true + + /@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-/E7OWlfOn8WeZfAdWGpVtITuahKVq8Kh1yPZAR+v4z77EkFv3dkU7LLs2oZO55k5t6IHBILa6VH/gNpBrTnQCQ==} + peerDependencies: + '@codemirror/autocomplete': ^6.18.0 + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-lint': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + mitt: 3.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/code-language-shell@0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621): + resolution: {integrity: sha512-EJf42+XWvf8ai+h/0/ieIj6SglWyx+LtcAHjG7GZzAiGusWLQun4MtKLw4uh/uwn5mRrlX4A9P1xZPw8sDeOYQ==} + peerDependencies: + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + dependencies: + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + dev: true + + /@coze-editor/code-language-sql@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621): + resolution: {integrity: sha512-h+i1Ma3R6idDE/8OKjur2+RLdbDrifc+Wsf1IXlyeq4fHfIzot7qlAWg+KvME+HyejnosS6lJAb8YFqRDddzOQ==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + dependencies: + '@codemirror/lang-sql': 6.10.0(@codemirror/view@6.38.8) + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + dev: true + + /@coze-editor/code-language-typescript@0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(typescript@5.9.3): + resolution: {integrity: sha512-FgmtJP/TfArYOPu16X79TsdmWhq+ijB604lzon6kJE5uEkC5pdV9GX2V155r2yq7AYLbMwFfRaDHGpb+6VauVw==} + peerDependencies: + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + typescript: '*' + dependencies: + '@codemirror/lang-javascript': 6.2.2 + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@lukeed/uuid': 2.0.1 + '@typescript/vfs': 1.6.2(typescript@5.9.3) + comlink: 4.4.2 + lz-string: 1.5.0 + mitt: 3.0.1 + typescript: 5.9.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@coze-editor/core-plugins@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-uU/uL+odFUoQTaiHHsnSREgHA0YRkhSxhU3gYcLkbaBnDqtSKXI2wfXfLmStWYgOgokvF5je1SRAcpmUB3NEng==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/commands': 6.7.1 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + es-toolkit: 1.42.0 + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/core@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-LIJkSNY5+2ZtvmKIoHRa+pBuymlg7nBdTL0hfZ0PF97cTyLdP5S25w/sTW4hMP2difvdUdDj41ipd6u4QtW9Zg==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + mitt: 3.0.1 + dev: true + + /@coze-editor/editor@0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/merge@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(vue@3.5.24): + resolution: {integrity: sha512-GyjGyOpyAYXaDBjQmJlONQA9MtjV/7Vl6QgpSgb8NJVyLV/VUJaSiY24fkAr+TQTHE1U4zFPArwmmiB3SjCWQw==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@codemirror/commands': 6.7.1 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-json': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@lezer/common@1.2.3) + '@coze-editor/code-language-python': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621) + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/code-language-shell': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621) + '@coze-editor/code-language-sql': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621) + '@coze-editor/code-language-typescript': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(typescript@5.9.3) + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-json-empty-string-value-completion': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-json-hover': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-json-unnecessary-properties': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-regexp-decorator': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/preset-code': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@lezer/common@1.2.3) + '@coze-editor/preset-expression': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/preset-none': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/preset-prompt': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/preset-universal': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/preset-variable': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(react-dom@18.3.1)(react@18.3.1) + '@coze-editor/react-components': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(@lezer/common@1.2.3)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@coze-editor/react-hooks': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(react-dom@18.3.1)(react@18.3.1) + '@coze-editor/react-merge': 0.1.0-alpha.868621(@codemirror/merge@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(react-dom@18.3.1)(react@18.3.1) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/vscode': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/vue': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(vue@3.5.24) + '@coze-editor/vue-components': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/vue@0.1.0-alpha.868621)(@lezer/common@1.2.3)(vue@3.5.24) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/merge' + - '@lezer/common' + - '@types/react' + - supports-color + - typescript + - vue + dev: true + + /@coze-editor/extension-completion-icons@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-bBEqHc0U8afTFUNn6+ah6/DcG+xDJma79gi+3RTEgGsUn8hGPCEdx1gUYFM4a7AT+MsSi4YMOL+9CLG5Id9xtw==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + dev: true + + /@coze-editor/extension-json-ast@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-oFWfRqXo2xtrbP180MhFAoj6MbGke30aNEJzITdDE+ULPOnkgcg3yc0V5ZYW7NDlQKEWvQfLNEhJezpbMLXoTA==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/parser-json': 0.1.0-alpha.868621 + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + vscode-languageserver-textdocument: 1.0.12 + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/extension-json-empty-string-value-completion@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-pLMNaUYOF5Xky1xHrGxMpTttwDdgE1XFYYCdbvY/SW0cHlGcFLt7tG1QDnkVQ4NRNWD72bRoJYEG70C3UtIxhg==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/extension-json-hover@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-rupoEE5P6MkrwHgT8logYoJlRwTA/aY+yHbyr3vorc5RcVigooxphMNrtITiVJphpRftKj+HaRBoRNpnZ66tNw==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/extension-json-unnecessary-properties@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-QQBiNJTWYHQ2pWKwqT1+Z1zvDSd6QpPpPLs/UFrPzQVUgh8o+CrXUe/C9GZK3o5aTjeZmDmgZWd67XR7zdLckA==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/extension-links@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-v9+WheHGJB6fjvyhgTOEAC6IfLnqlxhJFHlOe4cjIRa/A+WmyVFy628g2KlbCHJ9n3JSRhMN8AR2WFU+omGvWw==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + dev: true + + /@coze-editor/extension-lint@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-YgO5bDSNQMM3ZKbr0fF1A7PZ91q/wceZtLGOTxUgxV/iMxs1WhSAgiUm8qL4QoonNZ4fqe6iGedjAFKl499VjA==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + crelt: 1.0.6 + dev: true + + /@coze-editor/extension-placeholder@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-FdnIjDRBzVErJ5zdefiKUqynbbtNXYDaRd9dP4htX4Mk2dHZOTcO7abAg74Aqrv1iIO1C/hsHZwAPtj2igfhpA==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/extension-regexp-decorator@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-q3keVCFvXxhnKCjWbj7wccMMFi7RtPwFTCNTqm078upBA5FqBOabjjfm9XYeMeqFPfj13Dj+QYl1glQ1POrXkw==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + dev: true + + /@coze-editor/extension-scrollbar@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-3iNR3bwJlge2XmkwqiT9GRRa+6HaxaG8A9pThu/atXGrSqob0/xOUIJHz/2Zl/9hvEv28pwdE5BGgci1CQ8I3A==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + overlayscrollbars: 2.12.0 + dev: true + + /@coze-editor/extensions@0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-wSHUr9FoTtYihX97ExDto4wR9m/zqzX4ehEFgM3BM++/m7bLduP4BLJFEpz5UTYWNe7Poy2bhgTps0+vrnOxbA==} + peerDependencies: + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/lezer-parser-template': 0.1.0-alpha.868621 + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@lezer/common': 1.2.3 + crelt: 1.0.6 + es-toolkit: 1.42.0 + dev: true + + /@coze-editor/lezer-parser-jinja2@0.1.0-alpha.868621: + resolution: {integrity: sha512-/0UHn/jYOCr4O4MPmh40kQLm+0oatPpkA3Db/eOfvxixXuGdf9opaKLreCJMKAGW9zk2IFUn0ApzzbR+ylm+HQ==} + dependencies: + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + dev: true + + /@coze-editor/lezer-parser-json@0.1.0-alpha.868621: + resolution: {integrity: sha512-obdwpIIWmCbmk85YsYe4S1UR6XQl3LjiRvsHOTHkVx3d55C5YZtIGi35t+GRV4eWKxWKLXCe7b0ymnzt0K1GxA==} + dependencies: + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + dev: true + + /@coze-editor/lezer-parser-template@0.1.0-alpha.868621: + resolution: {integrity: sha512-IM7tIYy+ffaEfbbdZ017jLvmU/4Syh7yC08RivTYWQE2SRumOwQc/mA1Bwvd+eQP6aoXnjT1bwbNXNh32Rh35g==} + dependencies: + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + dev: true + + /@coze-editor/parser-json@0.1.0-alpha.868621: + resolution: {integrity: sha512-EUQBEXQSstMoeEfzuM5F/Hp244y6CfnPBM+tfvXv6KK6QgiTHML8E85ZkpnMU83EctoqvKyPo+XADEAfA06jIQ==} + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + dev: true + + /@coze-editor/preset-code@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@lezer/common@1.2.3): + resolution: {integrity: sha512-Z+8YQ6H27QhwBbveigi+PYHJl+4BZH9+StwBs2OQR/bmt3r4fPcxjXjTJcoDeEOxUt342rtahIp2TgKFONruQA==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/commands': 6.7.1 + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-completion-icons': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extension-links': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extension-lint': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extension-scrollbar': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/preset-universal': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/vscode': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@lezer/highlight': 1.2.1 + '@nozbe/microfuzz': 1.0.0 + '@shikijs/langs': 3.12.3 + '@shikijs/themes': 3.12.3 + codemirror-shiki: 0.2.5(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(shiki@3.15.0) + marked: 15.0.12 + marked-shiki: 1.2.1(marked@15.0.12)(shiki@3.15.0) + shiki: 3.15.0 + text-mapping: 1.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/preset-expression@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-Nm/ZK4CLkvRgHsOrMeXKbP5nciWUhTt6/lsdNke9JDSRWJ0E3/jwctsvQDKrobS/Y3HHXSeklApCUdKAa4tmLw==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/commands': 6.7.1 + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /@coze-editor/preset-none@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-Lxj9uEeJxbUGn471TdbKvjePdUsagcgss+2kPyZNhuM9yUEBvbMwg6y08Q9juvSsRwEjEddyOgQUM1r+xtaU1g==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + dev: true + + /@coze-editor/preset-prompt@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-xvtBWVKGSyR+j48r0ekEeBDdYsjC4EuGVBPRRYRWyUhupmljLjjVE8vL+kmJdcMIs5PRHPodg1rNYAkXErNzjQ==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/lezer-parser-jinja2': 0.1.0-alpha.868621 + '@coze-editor/preset-expression': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@lezer/common': 1.2.3 + '@lezer/html': 1.3.10 + '@lezer/markdown': 1.3.2 + transitivePeerDependencies: + - '@codemirror/commands' + dev: true + + /@coze-editor/preset-universal@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-urmFGBAbpGovGF7d1aXvNJaoY9c6JsxgA9ttTdyOIGaHlH40RiUOQOdVKLHuJRdZqDS5sUVVwuU2D72WqwPudg==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + transitivePeerDependencies: + - '@codemirror/commands' + - '@codemirror/language' + - '@lezer/common' + dev: true + + /@coze-editor/preset-variable@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-QjLMf4zPLGBMPbpMjjOyWHaSWkdUB58TNC4xlVhAL9tf1w0j1Iigz21O53EjNCdxIJqB6xMcbFmC8ckos+drrg==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/commands': 6.7.1 + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/preset-expression': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@lezer/common': 1.2.3 + '@lezer/javascript': 1.4.21 + '@lezer/python': 1.1.14 + dev: true + + /@coze-editor/react-components@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(@lezer/common@1.2.3)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-kyshX8vcqp5qFfHNJt4TI8sXD8IIXGoApGUz3GhJYjfWf34HTI75r8Us11sMJKvhx5tVs6+Ulk0tMH8nD2e3Cg==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/react': 0.1.0-alpha.868621 + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@codemirror/language': 6.11.3 + '@codemirror/merge': 6.11.2 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(react-dom@18.3.1)(react@18.3.1) + '@coze-editor/react-hooks': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(react-dom@18.3.1)(react@18.3.1) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/vscode': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@floating-ui/dom': 1.7.4 + '@lezer/highlight': 1.2.1 + '@lukeed/uuid': 2.0.1 + '@types/hash-sum': 1.0.2 + hash-sum: 2.0.0 + jotai: 2.15.1(@types/react@18.3.12)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/commands' + - '@lezer/common' + - '@types/react' + dev: true + + /@coze-editor/react-hooks@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-VjQtL8pQW5BF1e+sIZlj8GNR4E/KacuPxNGn9D4VOI13bLD+8DDqvxEiURQpcCsX5/A7+AJFKTpwTi97pbVkJQ==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/react': 0.1.0-alpha.868621 + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@codemirror/commands': 6.7.1 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true + + /@coze-editor/react-merge@0.1.0-alpha.868621(@codemirror/merge@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/react@0.1.0-alpha.868621)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-VTYUJ5DqCuJaPThuCD4OcGs7IK5HkBx5Fdq0hMBX/BEau7q4rQkKpihj2lyqKJ2O4jiJW8FkFPma0hmRFSLMnQ==} + peerDependencies: + '@codemirror/merge': ^6.10.0 + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/react': 0.1.0-alpha.868621 + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@codemirror/merge': 6.11.2 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true + + /@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-hMkqiPwEWZHf2sbiOd1us2llG9fKm3BC7S1JiSXWu/0nqZbCPKlScxwawwWiL5W5ZVCH/f/CB/zzeGWHfyuanw==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true + + /@coze-editor/utils@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3): + resolution: {integrity: sha512-0JTtT71PSDNBrIl5f0SIio0QeXPU7WkqUxMbJSLraTVqAPXTwBt2yfQoXqcb4st4Dx/J3PehZR0hMnLLz9jPVA==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@lezer/common': ^1.2.2 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@lezer/common': 1.2.3 + dev: true + + /@coze-editor/vscode@0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): + resolution: {integrity: sha512-JokGr03hkb6bWv5QFxr/itJ95sBpcj1ZR2wcETOyoVFY1XivP46BGQjJPiwFvsw1+wNcVXUdzvPmyp7uaOukNQ==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + dependencies: + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@lezer/highlight': 1.2.1 + crelt: 1.0.6 + dev: true + + /@coze-editor/vue-components@0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/vue@0.1.0-alpha.868621)(@lezer/common@1.2.3)(vue@3.5.24): + resolution: {integrity: sha512-tm0woNS95HDFZG1ovnDpBkQCNeZTGsGFD7qVQBROmIcbGonHkR+a522gA6RCtzAKE35LigdWzH49usDPDTXe9g==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + '@coze-editor/vue': 0.1.0-alpha.868621 + vue: ^3.5.0 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/vue': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(vue@3.5.24) + '@floating-ui/dom': 1.7.4 + vue: 3.5.24(typescript@5.2.2) + transitivePeerDependencies: + - '@codemirror/language' + - '@lezer/common' + dev: true + + /@coze-editor/vue@0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(vue@3.5.24): + resolution: {integrity: sha512-ODYDWtccDDRICvhtEXRXXadlMo5ZEx4p0X7RCyTN3EKKky8zrYFBo/Ke1kHpZjtalFnLf4Mx8SmInZx/mFJy7Q==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + vue: ^3.5.0 + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.7.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + vue: 3.5.24(typescript@5.2.2) + transitivePeerDependencies: + - '@codemirror/commands' + - '@lezer/common' + dev: true + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1939,11 +2682,6 @@ packages: kuler: 2.0.0 dev: false - /@dagrejs/graphlib@2.2.2: - resolution: {integrity: sha512-CbyGpCDKsiTg/wuk79S7Muoj8mghDGAESWGxcSyhHX5jD35vYMBZochYVFzlHxynpE9unpu6O+4ZuhrLxASsOg==} - engines: {node: '>17.0.0'} - dev: true - /@dnd-kit/accessibility@3.1.1(react@18.3.1): resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} peerDependencies: @@ -2016,6 +2754,131 @@ packages: tslib: 2.8.1 dev: true + /@douyinfe/semi-animation-react@2.88.2: + resolution: {integrity: sha512-WA1MwGeNVo+Gc5Xd3BhHFk1TXJOEsANhn9iW+KUR3d4rMHE2hlGfU0w7wBT4ghdJ96E00WLwCa4irKwqi/h8mA==} + dependencies: + '@douyinfe/semi-animation': 2.88.2 + '@douyinfe/semi-animation-styled': 2.88.2 + classnames: 2.5.1 + dev: true + + /@douyinfe/semi-animation-styled@2.88.2: + resolution: {integrity: sha512-H9d28qe9Wr9LGnZKYG5mpK21GIgxAe9YwnahK5tcD7NhcM8P86VF/e4vBf90aPXPUBefRdmmE5Etr35pzjoArA==} + dev: true + + /@douyinfe/semi-animation@2.88.2: + resolution: {integrity: sha512-JzSY8QXEXDHzH2W4HFLO7xG/hFPE5hCagDUcWtcIl7Z9e8xacr7yJsOWVqD/cYYhswzUtfN0F8Y5qMncD8DczA==} + dependencies: + bezier-easing: 2.1.0 + dev: true + + /@douyinfe/semi-foundation@2.88.2: + resolution: {integrity: sha512-cz/cx+KudZwBgnmZtkOQlzt/BPb3bnjZUMeqAdWcp7yZQ/fqnqtd2NCYI5cs+MNZR2aWwGNGFtP6FO9znrHmIA==} + dependencies: + '@douyinfe/semi-animation': 2.88.2 + '@douyinfe/semi-json-viewer-core': 2.88.2 + '@mdx-js/mdx': 3.1.1 + async-validator: 3.5.2 + classnames: 2.5.1 + date-fns: 2.30.0 + date-fns-tz: 1.3.8(date-fns@2.30.0) + fast-copy: 3.0.2 + lodash: 4.17.21 + lottie-web: 5.13.0 + memoize-one: 5.2.1 + prismjs: 1.30.0 + remark-gfm: 4.0.1 + scroll-into-view-if-needed: 2.2.31 + transitivePeerDependencies: + - supports-color + dev: true + + /@douyinfe/semi-icons@2.88.2(react@18.3.1): + resolution: {integrity: sha512-pORwLHLv+tE0DAnQ+OSlqAzD2/w9DXvqRfGsVgosSDlAdiu4Bn0Ak2IT9DEN8CF7jxcHgO2cTX81/wpNsQ6MCg==} + peerDependencies: + react: '>=16.0.0 || 18' + peerDependenciesMeta: + react: + optional: true + dependencies: + classnames: 2.5.1 + react: 18.3.1 + dev: true + + /@douyinfe/semi-illustrations@2.88.2(react@18.3.1): + resolution: {integrity: sha512-7b4FabG8nYWHOnvwxsDOpGxtCgc07XgXen8oeGMQJSI03St8Yu8ai+wazEkOHOA9gm2u39XmkBTCzE6W4IMtlA==} + peerDependencies: + react: '>=16.0.0 || 18' + peerDependenciesMeta: + react: + optional: true + dependencies: + react: 18.3.1 + dev: true + + /@douyinfe/semi-json-viewer-core@2.88.2: + resolution: {integrity: sha512-2CosdM4F5DFfgXrU9g2FNoqGl6oxJpM9UtO5j5EQRDFhlWirDE63YqADmVDPFeKLRmQBmahbIcTeP0yESgkgxQ==} + dependencies: + jsonc-parser: 3.3.1 + dev: true + + /@douyinfe/semi-theme-default@2.88.2: + resolution: {integrity: sha512-rOLwSDi5CNXa6MQ5GabHSBoAFFaGZipha/QIy1umqlF21ahw5IJyLCj7e0+TP1MyzcFsqeEjImALbR/cNRWjow==} + dev: true + + /@douyinfe/semi-ui@2.88.2(@floating-ui/dom@1.7.4)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-g9hY5busQ0PIxX4rAarbkMrAMIdMgVXqP81t1ALAeApRpjMIiZFj2k+ZDdM4CFT3RGec9WoP4RiGOj8fc+n8zg==} + peerDependencies: + react: '>=16.0.0 || 18' + react-dom: '>=16.0.0 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@dnd-kit/core': 6.2.0(react-dom@18.3.1)(react@18.3.1) + '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.2.0)(react@18.3.1) + '@dnd-kit/utilities': 3.2.2(react@18.3.1) + '@douyinfe/semi-animation': 2.88.2 + '@douyinfe/semi-animation-react': 2.88.2 + '@douyinfe/semi-foundation': 2.88.2 + '@douyinfe/semi-icons': 2.88.2(react@18.3.1) + '@douyinfe/semi-illustrations': 2.88.2(react@18.3.1) + '@douyinfe/semi-theme-default': 2.88.2 + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/extension-document': 3.11.0(@tiptap/core@3.11.0) + '@tiptap/extension-hard-break': 3.11.0(@tiptap/core@3.11.0) + '@tiptap/extension-mention': 3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0)(@tiptap/suggestion@3.11.0) + '@tiptap/extension-paragraph': 3.11.0(@tiptap/core@3.11.0) + '@tiptap/extension-text': 3.11.0(@tiptap/core@3.11.0) + '@tiptap/extensions': 3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + '@tiptap/react': 3.11.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + async-validator: 3.5.2 + classnames: 2.5.1 + copy-text-to-clipboard: 2.2.0 + date-fns: 2.30.0 + date-fns-tz: 1.3.8(date-fns@2.30.0) + fast-copy: 3.0.2 + jsonc-parser: 3.3.1 + lodash: 4.17.21 + prop-types: 15.8.1 + prosemirror-state: 1.4.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-resizable: 3.0.5(react-dom@18.3.1)(react@18.3.1) + react-window: 1.8.11(react-dom@18.3.1)(react@18.3.1) + scroll-into-view-if-needed: 2.2.31 + utility-types: 3.11.0 + transitivePeerDependencies: + - '@floating-ui/dom' + - '@tiptap/suggestion' + - '@types/react' + - '@types/react-dom' + - supports-color + dev: true + /@emotion/cache@10.0.29: resolution: {integrity: sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==} dependencies: @@ -2550,12 +3413,25 @@ packages: resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==} dev: true + /@floating-ui/core@1.7.3: + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + dependencies: + '@floating-ui/utils': 0.2.10 + dev: true + /@floating-ui/dom@0.4.5: resolution: {integrity: sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==} dependencies: '@floating-ui/core': 0.6.2 dev: true + /@floating-ui/dom@1.7.4: + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + dependencies: + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 + dev: true + /@floating-ui/react-dom-interactions@0.3.1(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-tP2KEh7EHJr5hokSBHcPGojb+AorDNUf0NYfZGg/M+FsMvCOOsSEeEF0O1NDfETIzDnpbHnCs0DuvCFhSMSStg==} deprecated: Package renamed to @floating-ui/react @@ -2589,6 +3465,10 @@ packages: - '@types/react' dev: true + /@floating-ui/utils@0.2.10: + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + dev: true + /@flowgram.ai/background-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-H9sKO5178pUj01lNPRVgtB8dxeorh+qJd1EYWQ8c+pSo1YZ6XmDBf/N0E0ZGx4th5dvdZctDe1DOqmyYzOpMMw==} peerDependencies: @@ -2649,6 +3529,41 @@ packages: reflect-metadata: 0.2.2 dev: true + /@flowgram.ai/coze-editor@1.0.2(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/merge@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@lezer/common@1.2.3)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(styled-components@5.3.11)(vue@3.5.24): + resolution: {integrity: sha512-yUv7HSBTwKBuKK9Q9JjSoDDIFNuUxw6CdBhXP7T1l5ULPXG5fv/OP/QCPUTrMeYWHAF0XAJ43tQIqqlMIcefYA==} + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + styled-components: '>=5' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + styled-components: + optional: true + dependencies: + '@coze-editor/code-language-typescript': 0.1.0-alpha.868621(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(typescript@5.9.3) + '@coze-editor/editor': 0.1.0-alpha.868621(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/merge@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(vue@3.5.24) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-components: 5.3.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) + typescript: 5.9.3 + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/merge' + - '@codemirror/state' + - '@codemirror/view' + - '@coze-editor/code-language-shared' + - '@lezer/common' + - '@types/react' + - supports-color + - vue + dev: true + /@flowgram.ai/document@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-v1yRHNU8xoSRNBk2Hjb7UlebRIZfgap4N0PXM9XzhuA7jDXKD6Ny4OcJBPwN5WNv3DVVpMS9smXf2t1FLdwR/g==} dependencies: @@ -2698,6 +3613,121 @@ packages: reflect-metadata: 0.2.2 dev: true + /@flowgram.ai/fixed-drag-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-wC4ZUq8Z7PoiyBEWnExRpQvApnlPOMtE3cPvm/e43zfu3LzPgvKHnlOMJUUx3g85JaF4KdNwly+Hl50TWi28Fw==} + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + dev: true + + /@flowgram.ai/fixed-history-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-fugR0uaFkhiwgVoiqkuzeC1JhWRzxzcGS56EPV2rtdlSgz2W1PfqgtKrN3SVjg7YgQ8T+NZib+LRT0QkKp3KFQ==} + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/history': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.17.21 + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + dev: true + + /@flowgram.ai/fixed-layout-core@1.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-TK15hWeJ91T6sLOPsg6tR2llp3wbInvn0FT+QQgZ+Q1MdoADW9wDmfbh9A+gazasjEYHAJ36k55nVD9mUpw3pg==} + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + dev: true + + /@flowgram.ai/fixed-layout-editor@1.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-5ZFHTJK4Av7tfg1xQ/maq3OeOQWypWmLZb5QbQVagIAEmmww/fdcc09N6OX8DxEMvQnV7Npd5mHK9wRo1t7uCQ==} + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/editor': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/fixed-drag-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/fixed-history-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/fixed-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/history': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/reactive': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/select-box-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + dev: true + + /@flowgram.ai/fixed-semi-materials@1.0.2(@floating-ui/dom@1.7.4)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(styled-components@5.3.11): + resolution: {integrity: sha512-cPZbNl+Q2LTV8KfPGGdDRJAqZ2U90Vpk+Y++Yjzlj7kw0Y9GifY4S97deeOcGCjCFe9f4jrrnoxyD3KQvNtv1A==} + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + styled-components: '>=5' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + styled-components: + optional: true + dependencies: + '@douyinfe/semi-icons': 2.88.2(react@18.3.1) + '@douyinfe/semi-ui': 2.88.2(@floating-ui/dom@1.7.4)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/fixed-layout-editor': 1.0.2(react-dom@18.3.1)(react@18.3.1) + lodash-es: 4.17.21 + nanoid: 5.1.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-components: 5.3.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) + transitivePeerDependencies: + - '@floating-ui/dom' + - '@tiptap/suggestion' + - '@types/react' + - '@types/react-dom' + - supports-color + dev: true + /@flowgram.ai/form-core@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-QnflciekMcMTB5aU4mhFSqnDV+vMvw5DsPeYi7N3Q90G+1qSzvMGXFqZmFhTjzL6vAEPDHcE0Zre4XqP2ebuag==} peerDependencies: @@ -2719,6 +3749,48 @@ packages: reflect-metadata: 0.2.2 dev: true + /@flowgram.ai/form-materials@1.0.2(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/merge@6.11.2)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@floating-ui/dom@1.7.4)(@lezer/common@1.2.3)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(styled-components@5.3.11)(vue@3.5.24): + resolution: {integrity: sha512-/TB6xayXbhmboPrh2hT8PsAcaIVEd3qHM+jc84frF53MR45e1zsKTX8jCACZY31rAuI3qH3EfG8JEvmNq55lLg==} + hasBin: true + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + '@douyinfe/semi-icons': 2.88.2(react@18.3.1) + '@douyinfe/semi-ui': 2.88.2(@floating-ui/dom@1.7.4)(@tiptap/suggestion@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/coze-editor': 1.0.2(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/merge@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@coze-editor/code-language-shared@0.1.0-alpha.868621)(@lezer/common@1.2.3)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1)(styled-components@5.3.11)(vue@3.5.24) + '@flowgram.ai/editor': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/json-schema': 1.0.2(react-dom@18.3.1)(react@18.3.1) + immer: 10.1.3 + lodash-es: 4.17.21 + nanoid: 5.1.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zod: 3.25.76 + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/merge' + - '@coze-editor/code-language-shared' + - '@floating-ui/dom' + - '@lezer/common' + - '@tiptap/suggestion' + - '@types/react' + - '@types/react-dom' + - styled-components + - supports-color + - vue + dev: true + /@flowgram.ai/form@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-U+xYZ+MbZ340HMheD7rvLgBc/9tj+e7Z95XfNy1Lk4d2GULdYxnvuzWnPWtMoTipKkLKFtLPPrPNaSWPgi54mA==} peerDependencies: @@ -2739,133 +3811,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: true - /@flowgram.ai/free-auto-layout-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wtABosvSPZW+2REupFyr7UFzr9tPYACuhmogIb29Z02ZmK2DcXN3hoMHRkrvFP0+BnXkdKKSA7GuR9yWzv9vwQ==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - styled-components: '>=5' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - styled-components: - optional: true - dependencies: - '@dagrejs/graphlib': 2.2.2 - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - - /@flowgram.ai/free-container-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-xjnxPAqn7BKybKXFZtcqry9eMBjOBaS6ROCWxX5jewA4oGKrIIWuT4Slb4YuKZuCoMNfAXaMfOxOD6oy1XjAFQ==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - styled-components: '>=5' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - styled-components: - optional: true - dependencies: - '@flowgram.ai/background-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-history-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/i18n': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - lodash-es: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - - /@flowgram.ai/free-group-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-swMMC03kAVIz//+iKtpR4HNT9ZpMSZcVdh0NUsafTp//nr+dQldWpj8QC2byp30Esp3IcZ7lwrw73YRNPv0NlQ==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-container-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-history-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-editor': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/shortcuts-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - transitivePeerDependencies: - - styled-components - dev: true - - /@flowgram.ai/free-history-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-6u3TiXTvnpEQUwA1FYFdBS30urXUBE+doBrYtkQTL69rujwW2P0dKAqx+3xuqS2boni7w8SVRWCtEfEPqxgyMw==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/history': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - lodash-es: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - - /@flowgram.ai/free-hover-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-9tdHq0oopGyV/7ssxA9NdVj/112852OntE5t0JrpLef1FI//lzfKJ0nzn35FjgpsR0ejXdtV8Y5zOXMikwhSVg==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - /@flowgram.ai/free-layout-core@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-o06OkanwQo6IKwvcd99YljTQkX3RyDLnfSwAfCRBWwQcDzRCHlpsoJc3Yq3zNpMfuHMpGNK2WjU9Ugf3awwn2A==} peerDependencies: @@ -2891,8 +3836,8 @@ packages: reflect-metadata: 0.2.2 dev: true - /@flowgram.ai/free-layout-editor@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-7GsQT6WtW1iqtIu+VgY1Xl1piTklyOQGKIa8aHLn0QkGGr9u4hqBRAmrFl3oWhTov0cBfKb2q6Q9YSle7dHLiQ==} + /@flowgram.ai/group-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-r6eWdahtTJBpuCK1N3Oc3ac78owu/ZNyPoZWJmdRA7CLx8qXkc55q/JADtbOSspu2enuRjJWey3Xd2uwrF31uA==} peerDependencies: react: '>=16.8 || 18' react-dom: '>=16.8 || 18' @@ -2901,124 +3846,17 @@ packages: optional: true react-dom: optional: true - dependencies: - '@flowgram.ai/editor': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-auto-layout-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-history-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-hover-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-lines-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-stack-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/history': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/select-box-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - clsx: 1.2.1 - inversify: 6.2.2(reflect-metadata@0.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - transitivePeerDependencies: - - styled-components - dev: true - - /@flowgram.ai/free-lines-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-50iLdqee1CKi5BO719v8Zv0xhs9bpt6qYLf6SZol4tq6tdmAvpsgSrnlFISlq8HqbDuCkhwRByoL0RAwe4WKTQ==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - styled-components: '>=5' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - styled-components: - optional: true dependencies: '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-stack-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1)(react@18.3.1) '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - bezier-js: 6.1.4 - clsx: 1.2.1 inversify: 6.2.2(reflect-metadata@0.2.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) reflect-metadata: 0.2.2 dev: true - /@flowgram.ai/free-node-panel-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-20Rrc0zORVzHpkbux9pBZE2qQhfVEy5ozkF0qV7fMOZkVYQhNt5Xbq7hzRpnjh24Sh+9pBlfM6ZjN5aOS9MxdQ==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-history-plugin': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - - /@flowgram.ai/free-snap-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-GvGg5ARQBZQfMcOCQbEacQyCvGxHEb2WPoMZYrgUFIv8xDEzoBSeboOUShAl+XeKZT/ojUsmBiA8bKLrDIfvfg==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - styled-components: '>=5' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - styled-components: - optional: true - dependencies: - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - - /@flowgram.ai/free-stack-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-HwQYjvLyAs3BFwi1lQ/19OmOUIgmDwG+BZP7MNgRfHCuR1mSlKd2p1ho1a5BeZbKMIYj6iW0mpHcD28z40SJQw==} - peerDependencies: - react: '>=16.8 || 18' - react-dom: '>=16.8 || 18' - styled-components: '>=5' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - styled-components: - optional: true - dependencies: - '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/document': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) - '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) - inversify: 6.2.2(reflect-metadata@0.2.2) - lodash-es: 4.17.21 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - reflect-metadata: 0.2.2 - dev: true - /@flowgram.ai/history-node-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-JCRIovGDzQ4xrdFzJBBqZ5t5Ehb52DD5XI2jdJ/pBZfLZeWTZtA6JV+McDGjg8opM6620sgB/2/e9GbCqxfSgw==} peerDependencies: @@ -3077,6 +3915,27 @@ packages: - react-dom dev: true + /@flowgram.ai/json-schema@1.0.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-LRthiqbJayqJQK/lvrCM9EcTr/mGKCwTc/8eOApHCYq3tLRYHt1/DXQxhZNdld4dnGSN6vjNgc15donRpXqiVQ==} + peerDependencies: + react: '>=16.8 || 18' + react-dom: '>=16.8 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1)(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.2(react-dom@18.3.1)(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + dev: true + /@flowgram.ai/materials-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-7AxDpCPp4tSxD4hhbqpgk9USmW9JzQM9QaJxE7LgzNc/gv9xRA6RRdMcsAH9BSEx6sa0olaqjYpDUiRbqUi3ew==} peerDependencies: @@ -3276,12 +4135,6 @@ packages: reflect-metadata: 0.2.2 dev: true - /@flowgram.ai/runtime-interface@1.0.2: - resolution: {integrity: sha512-s92a02eNslrxqjn+GlkUvAQv43gge3iqSvgHmtPNogwqdL8K7Gw4uSsLXKd9vUrbCjRq/gn76WlQuMCukFbWeg==} - dependencies: - zod: 3.25.76 - dev: true - /@flowgram.ai/select-box-plugin@1.0.2(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Agy5dFSqK515e/wdcG+BEvb+x+vYM59xfdxv8Mo4AMglB9wZitWy1e65qKudjfp7AJsgnfFdID2c5rT77Kqe4Q==} peerDependencies: @@ -3627,6 +4480,10 @@ packages: resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} dev: true + /@jridgewell/sourcemap-codec@1.5.5: + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + dev: true + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: @@ -3811,6 +4668,18 @@ packages: react-is: 16.13.1 dev: true + /@lukeed/csprng@1.1.0: + resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} + engines: {node: '>=8'} + dev: true + + /@lukeed/uuid@2.0.1: + resolution: {integrity: sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==} + engines: {node: '>=8'} + dependencies: + '@lukeed/csprng': 1.1.0 + dev: true + /@mapbox/node-pre-gyp@1.0.11: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true @@ -3829,6 +4698,42 @@ packages: - supports-color dev: false + /@marijn/find-cluster-break@1.0.2: + resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + dev: true + + /@mdx-js/mdx@3.1.1: + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.14.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.14.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + dev: true + /@monaco-editor/loader@1.4.0(monaco-editor@0.33.0): resolution: {integrity: sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==} peerDependencies: @@ -4034,7 +4939,7 @@ packages: /@nextjournal/lang-clojure@1.0.0: resolution: {integrity: sha512-gOCV71XrYD0DhwGoPMWZmZ0r92/lIHsqQu9QWdpZYYBwiChNwMO4sbVMP7eTuAqffFB2BTtCSC+1skSH9d3bNg==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@nextjournal/lezer-clojure': 1.0.0 dev: true @@ -4071,6 +4976,10 @@ packages: fastq: 1.17.1 dev: true + /@nozbe/microfuzz@1.0.0: + resolution: {integrity: sha512-XKIg/guk+s1tkPTkHch9hfGOWgsKojT7BqSQddXTppOfVr3SWQhhTCqbgQaPTbppf9gc2kFeG0gpBZZ612UXHA==} + dev: true + /@npmcli/fs@1.1.1: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} requiresBuild: true @@ -4265,88 +5174,158 @@ packages: react: 18.3.1 dev: true + /@remirror/core-constants@3.0.0: + resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} + dev: true + /@remix-run/router@1.19.1: resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==} engines: {node: '>=14.0.0'} dev: true - /@replit/codemirror-lang-csharp@6.2.0(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2): + /@replit/codemirror-lang-csharp@6.2.0(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2): resolution: {integrity: sha512-6utbaWkoymhoAXj051mkRp+VIJlpwUgCX9Toevz3YatiZsz512fw3OVCedXQx+WcR0wb6zVHjChnuxqfCLtFVQ==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 '@lezer/common': ^1.0.0 '@lezer/highlight': ^1.0.0 '@lezer/lr': ^1.0.0 dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 dev: true - /@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2): + /@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2): resolution: {integrity: sha512-lvzjoYn9nfJzBD5qdm3Ut6G3+Or2wEacYIDJ49h9+19WSChVnxv4ojf+rNmQ78ncuxIt/bfbMvDLMeMP0xze6g==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 '@lezer/common': ^1.0.0 '@lezer/highlight': ^1.0.0 '@lezer/lr': ^1.0.0 dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 dev: true - /@replit/codemirror-lang-solidity@6.0.2(@codemirror/language@6.10.6): + /@replit/codemirror-lang-solidity@6.0.2(@codemirror/language@6.11.3): resolution: {integrity: sha512-/dpTVH338KFV6SaDYYSadkB4bI/0B0QRF/bkt1XS3t3QtyR49mn6+2k0OUQhvt2ZSO7kt10J+OPilRAtgbmX0w==} peerDependencies: - '@codemirror/language': ^6.0.0 + '@codemirror/language': ^6 dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.11.3 '@lezer/highlight': 1.2.1 dev: true - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.18.3)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2): + /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.18.3)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2): resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 '@codemirror/lang-css': ^6.0.1 '@codemirror/lang-html': ^6.2.0 '@codemirror/lang-javascript': ^6.1.1 - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 + '@codemirror/language': ^6 + '@codemirror/state': ^6 + '@codemirror/view': ^6 '@lezer/common': ^1.0.0 '@lezer/highlight': ^1.0.0 '@lezer/javascript': ^1.2.0 '@lezer/lr': ^1.0.0 dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) - '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.38.8) '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/language': 6.11.3 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/javascript': 1.4.21 '@lezer/lr': 1.4.2 dev: true + /@shikijs/core@3.15.0: + resolution: {integrity: sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg==} + dependencies: + '@shikijs/types': 3.15.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + dev: true + + /@shikijs/engine-javascript@3.15.0: + resolution: {integrity: sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg==} + dependencies: + '@shikijs/types': 3.15.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.4 + dev: true + + /@shikijs/engine-oniguruma@3.15.0: + resolution: {integrity: sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==} + dependencies: + '@shikijs/types': 3.15.0 + '@shikijs/vscode-textmate': 10.0.2 + dev: true + + /@shikijs/langs@3.12.3: + resolution: {integrity: sha512-9lKnWuO9P06Ro9T8wN0V3rQg3UlKfjCtfDRTnRnFr7szuaGQiQpaAdwFvqkWvHrMNIpfqUEIzAC08b90JONfuQ==} + dependencies: + '@shikijs/types': 3.12.3 + dev: true + + /@shikijs/langs@3.15.0: + resolution: {integrity: sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==} + dependencies: + '@shikijs/types': 3.15.0 + dev: true + + /@shikijs/themes@3.12.3: + resolution: {integrity: sha512-rpqLpI2oMrf2BiJdql8U7ZW1UhfJy9lEj4MRyIeXLlkEe5BwaYseFvSbXhJ/4eS8d3F/zlVUOADFX8WihWlccQ==} + dependencies: + '@shikijs/types': 3.12.3 + dev: true + + /@shikijs/themes@3.15.0: + resolution: {integrity: sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==} + dependencies: + '@shikijs/types': 3.15.0 + dev: true + + /@shikijs/types@3.12.3: + resolution: {integrity: sha512-spl99dj9qzPcTvYJLhfp6Zw0umQMNN8q3hXo0tbTTylxXtu5Uiy9WLRhuv2P/g+njFd/lSZU7HnctXuxiwEAwg==} + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + dev: true + + /@shikijs/types@3.15.0: + resolution: {integrity: sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==} + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + dev: true + + /@shikijs/vscode-textmate@10.0.2: + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + dev: true + /@sideway/address@4.1.5: resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} dependencies: @@ -4603,6 +5582,159 @@ packages: use-sync-external-store: 1.2.2(react@18.3.1) dev: true + /@tiptap/core@3.11.0(@tiptap/pm@3.11.0): + resolution: {integrity: sha512-kmS7ZVpHm1EMnW1Wmft9H5ZLM7E0G0NGBx+aGEHGDcNxZBXD2ZUa76CuWjIhOGpwsPbELp684ZdpF2JWoNi4Dg==} + peerDependencies: + '@tiptap/pm': ^3.11.0 + dependencies: + '@tiptap/pm': 3.11.0 + dev: true + + /@tiptap/extension-bubble-menu@3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0): + resolution: {integrity: sha512-P3j9lQ+EZ5Zg/isJzLpCPX7bp7WUBmz8GPs/HPlyMyN2su8LqXntITBZr8IP1JNBlB/wR83k/W0XqdC57mG7cA==} + requiresBuild: true + peerDependencies: + '@tiptap/core': ^3.11.0 + '@tiptap/pm': ^3.11.0 + dependencies: + '@floating-ui/dom': 1.7.4 + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + dev: true + optional: true + + /@tiptap/extension-document@3.11.0(@tiptap/core@3.11.0): + resolution: {integrity: sha512-N2G3cwL2Dtur/CgD/byJmFx9T5no6fTO/U462VP3rthQYrRA1AB3TCYqtlwJkmyoxRTNd4qIg4imaPl8ej6Heg==} + peerDependencies: + '@tiptap/core': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + dev: true + + /@tiptap/extension-floating-menu@3.11.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0): + resolution: {integrity: sha512-nEHdWZHEJYX1II1oJQ4aeZ8O/Kss4BRbYFXQFGIvPelCfCYEATpUJh3aq3767ARSq40bOWyu+Dcd4SCW0We6Sw==} + requiresBuild: true + peerDependencies: + '@floating-ui/dom': ^1.0.0 + '@tiptap/core': ^3.11.0 + '@tiptap/pm': ^3.11.0 + dependencies: + '@floating-ui/dom': 1.7.4 + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + dev: true + optional: true + + /@tiptap/extension-hard-break@3.11.0(@tiptap/core@3.11.0): + resolution: {integrity: sha512-NJEHTj++kFOayQXKSQSi9j9eAG33eSiJqai2pf4U+snW94fmb8cYLUurDmfYRe20O6EzBSX0X3GjVlkOz+5b7A==} + peerDependencies: + '@tiptap/core': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + dev: true + + /@tiptap/extension-mention@3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0)(@tiptap/suggestion@3.11.0): + resolution: {integrity: sha512-4y789hKNEvZoNals7PNSGAKThQ+b5nuP/KIEe4wPIfzknjwxzGi0f2YY3L/f+gIhueoZymYpkmhtiRND+wvAWA==} + peerDependencies: + '@tiptap/core': ^3.11.0 + '@tiptap/pm': ^3.11.0 + '@tiptap/suggestion': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + '@tiptap/suggestion': 3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0) + dev: true + + /@tiptap/extension-paragraph@3.11.0(@tiptap/core@3.11.0): + resolution: {integrity: sha512-hxgjZOXOqstRTWv+QjWJjK23rD5qzIV9ePlhX3imLeq/MgX0aU9VBDaG5SGKbSjaBNQnpLw6+sABJi3CDP6Z5A==} + peerDependencies: + '@tiptap/core': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + dev: true + + /@tiptap/extension-text@3.11.0(@tiptap/core@3.11.0): + resolution: {integrity: sha512-ELAYm2BuChzZOqDG9B0k3W6zqM4pwNvXkam28KgHGiT2y7Ni68Rb+NXp16uVR+5zR6hkqnQ/BmJSKzAW59MXpA==} + peerDependencies: + '@tiptap/core': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + dev: true + + /@tiptap/extensions@3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0): + resolution: {integrity: sha512-g43beA73ZMLezez1st9LEwYrRHZ0FLzlsSlOZKk7sdmtHLmuqWHf4oyb0XAHol1HZIdGv104rYaGNgmQXr1ecQ==} + peerDependencies: + '@tiptap/core': ^3.11.0 + '@tiptap/pm': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + dev: true + + /@tiptap/pm@3.11.0: + resolution: {integrity: sha512-plCQDLCZIOc92cizB8NNhBRN0szvYR3cx9i5IXo6v9Xsgcun8KHNcJkesc2AyeqdIs0BtOJZaqQ9adHThz8UDw==} + dependencies: + prosemirror-changeset: 2.3.1 + prosemirror-collab: 1.3.1 + prosemirror-commands: 1.7.1 + prosemirror-dropcursor: 1.8.2 + prosemirror-gapcursor: 1.4.0 + prosemirror-history: 1.5.0 + prosemirror-inputrules: 1.5.1 + prosemirror-keymap: 1.2.3 + prosemirror-markdown: 1.13.2 + prosemirror-menu: 1.2.5 + prosemirror-model: 1.25.4 + prosemirror-schema-basic: 1.2.4 + prosemirror-schema-list: 1.5.1 + prosemirror-state: 1.4.4 + prosemirror-tables: 1.8.1 + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3) + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.3 + dev: true + + /@tiptap/react@3.11.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-SDGei/2DjwmhzsxIQNr6dkB6NxLgXZjQ6hF36NfDm4937r5NLrWrNk5tCsoDQiKZ0DHEzuJ6yZM5C7I7LZLB6w==} + peerDependencies: + '@tiptap/core': ^3.11.0 + '@tiptap/pm': ^3.11.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 || 18 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 || 18 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + '@types/react': 18.3.12 + '@types/react-dom': 18.3.1 + '@types/use-sync-external-store': 0.0.6 + fast-deep-equal: 3.1.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.6.0(react@18.3.1) + optionalDependencies: + '@tiptap/extension-bubble-menu': 3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0) + '@tiptap/extension-floating-menu': 3.11.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0) + transitivePeerDependencies: + - '@floating-ui/dom' + dev: true + + /@tiptap/suggestion@3.11.0(@tiptap/core@3.11.0)(@tiptap/pm@3.11.0): + resolution: {integrity: sha512-4zGU3l1rZ7P112en3HiMXZuKCcZSXdwtdSIfQQV94jNyumg/imYFeYARVsabfv6hFjtEuwbq0ev8y13Bl+1Quw==} + peerDependencies: + '@tiptap/core': ^3.11.0 + '@tiptap/pm': ^3.11.0 + dependencies: + '@tiptap/core': 3.11.0(@tiptap/pm@3.11.0) + '@tiptap/pm': 3.11.0 + dev: true + /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} @@ -4699,7 +5831,16 @@ packages: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 - dev: false + + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + dependencies: + '@types/estree': 1.0.8 + dev: true + + /@types/estree@1.0.8: + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + dev: true /@types/express-jwt@6.0.4: resolution: {integrity: sha512-I53KRQ9D0eTA6hVCN9S73iOeprKS3JNWK+Cp2mDPB6uOIkTVpkgSkX394kHQzb5cd0U02I0adRmsMxHk+zX8tA==} @@ -4747,6 +5888,16 @@ packages: resolution: {integrity: sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==} dev: true + /@types/hash-sum@1.0.2: + resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} + dev: true + + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.3 + dev: true + /@types/helmet@4.0.0: resolution: {integrity: sha512-ONIn/nSNQA57yRge3oaMQESef/6QhoeX7llWeDli0UZIfz8TQMkfNPTXA8VnnyeA1WUjG2pGqdjEIueYonMdfQ==} deprecated: This is a stub types definition. helmet provides its own type definitions, so you do not need this installed. @@ -4822,6 +5973,10 @@ packages: '@types/node': 17.0.45 dev: false + /@types/linkify-it@5.0.0: + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + dev: true + /@types/lodash-es@4.17.12: resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} dependencies: @@ -4832,6 +5987,27 @@ packages: resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} dev: true + /@types/markdown-it@14.1.2: + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + dev: true + + /@types/mdast@4.0.4: + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + dependencies: + '@types/unist': 3.0.3 + dev: true + + /@types/mdurl@2.0.0: + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + dev: true + + /@types/mdx@2.0.13: + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + dev: true + /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true @@ -4842,7 +6018,6 @@ packages: /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: false /@types/multer@1.4.12: resolution: {integrity: sha512-pQ2hoqvXiJt2FP9WQVLPRO+AmiIm/ZYkavPlIQnx282u4ZrVdztx0pkh3jjpQt0Kz+YI0YhSG264y08UJKoUQg==} @@ -4977,10 +6152,22 @@ packages: resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} dev: false + /@types/unist@2.0.11: + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + dev: true + + /@types/unist@3.0.3: + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + dev: true + /@types/use-sync-external-store@0.0.3: resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} dev: true + /@types/use-sync-external-store@0.0.6: + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + dev: true + /@types/uuid@8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} dev: true @@ -5150,27 +6337,38 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@uiw/codemirror-extensions-basic-setup@4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/commands@6.7.1)(@codemirror/language@6.10.6)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0): + /@typescript/vfs@1.6.2(typescript@5.9.3): + resolution: {integrity: sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==} + peerDependencies: + typescript: '*' + dependencies: + debug: 4.3.7(supports-color@5.5.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@uiw/codemirror-extensions-basic-setup@4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/commands@6.7.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8): resolution: {integrity: sha512-bvtq8IOvdkLJMhoJBRGPEzU51fMpPDwEhcAHp9xCR05MtbIokQgsnLXrmD1aZm6e7s/3q47H+qdSfAAkR5MkLA==} peerDependencies: '@codemirror/autocomplete': '>=6.0.0' '@codemirror/commands': '>=6.0.0' - '@codemirror/language': '>=6.0.0' + '@codemirror/language': ^6 '@codemirror/lint': '>=6.0.0' '@codemirror/search': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' + '@codemirror/state': ^6 + '@codemirror/view': ^6 dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) '@codemirror/commands': 6.7.1 - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.11.3 '@codemirror/lint': 6.8.4 '@codemirror/search': 6.5.8 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 dev: true - /@uiw/codemirror-extensions-langs@4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/language-data@6.5.1)(@codemirror/language@6.10.6)(@codemirror/legacy-modes@6.4.2)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2): + /@uiw/codemirror-extensions-langs@4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/language-data@6.5.1)(@codemirror/language@6.11.3)(@codemirror/legacy-modes@6.4.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2): resolution: {integrity: sha512-VKWbEXmVq3EFYrJPWXH4Ei1f92zxuAg6dOlo8suSmwjmEc0qjNEP5Ss2CUi9LlzuWMGMmZgdKw56I3L71wYOog==} peerDependencies: '@codemirror/language-data': '>=6.0.0' @@ -5178,30 +6376,30 @@ packages: dependencies: '@codemirror/lang-angular': 0.1.3 '@codemirror/lang-cpp': 6.0.2 - '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0) + '@codemirror/lang-css': 6.3.1(@codemirror/view@6.38.8) '@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.35.0) + '@codemirror/lang-less': 6.0.2(@codemirror/view@6.38.8) '@codemirror/lang-lezer': 6.0.1 '@codemirror/lang-liquid': 6.2.2 '@codemirror/lang-markdown': 6.3.1 '@codemirror/lang-php': 6.0.1 - '@codemirror/lang-python': 6.1.6(@codemirror/view@6.35.0) + '@codemirror/lang-python': 6.1.6(@codemirror/view@6.38.8) '@codemirror/lang-rust': 6.0.1 - '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.35.0) - '@codemirror/lang-sql': 6.8.0(@codemirror/view@6.35.0) + '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.38.8) + '@codemirror/lang-sql': 6.8.0(@codemirror/view@6.38.8) '@codemirror/lang-vue': 0.1.3 '@codemirror/lang-wast': 6.0.2 '@codemirror/lang-xml': 6.1.0 - '@codemirror/language-data': 6.5.1(@codemirror/view@6.35.0) + '@codemirror/language-data': 6.5.1(@codemirror/view@6.38.8) '@codemirror/legacy-modes': 6.4.2 '@nextjournal/lang-clojure': 1.0.0 - '@replit/codemirror-lang-csharp': 6.2.0(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) - '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) - '@replit/codemirror-lang-solidity': 6.0.2(@codemirror/language@6.10.6) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.18.3)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-csharp': 6.2.0(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-solidity': 6.0.2(@codemirror/language@6.11.3) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.18.3)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.21)(@lezer/lr@1.4.2) codemirror-lang-mermaid: 0.5.0 transitivePeerDependencies: - '@codemirror/autocomplete' @@ -5214,13 +6412,13 @@ packages: - '@lezer/lr' dev: true - /@uiw/react-codemirror@4.23.6(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.10.6)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.35.0)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1): + /@uiw/react-codemirror@4.23.6(@babel/runtime@7.26.0)(@codemirror/autocomplete@6.18.3)(@codemirror/language@6.11.3)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.38.8)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-caYKGV6TfGLRV1HHD3p0G3FiVzKL1go7wes5XT2nWjB0+dTdyzyb81MKRSacptgZcotujfNO6QXn65uhETRAMw==} peerDependencies: '@babel/runtime': '>=7.11.0' - '@codemirror/state': '>=6.0.0' + '@codemirror/state': ^6 '@codemirror/theme-one-dark': '>=6.0.0' - '@codemirror/view': '>=6.0.0' + '@codemirror/view': ^6 codemirror: '>=6.0.0' react: '>=16.8.0 || 18' react-dom: '>=16.8.0 || 18' @@ -5232,10 +6430,10 @@ packages: dependencies: '@babel/runtime': 7.26.0 '@codemirror/commands': 6.7.1 - '@codemirror/state': 6.4.1 + '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.35.0 - '@uiw/codemirror-extensions-basic-setup': 4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/commands@6.7.1)(@codemirror/language@6.10.6)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0) + '@codemirror/view': 6.38.8 + '@uiw/codemirror-extensions-basic-setup': 4.23.6(@codemirror/autocomplete@6.18.3)(@codemirror/commands@6.7.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) codemirror: 6.0.1(@lezer/common@1.2.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5936,6 +7134,10 @@ packages: resolution: {integrity: sha512-2UGcYg48jUOPL/Id836kHIhbKmVKs0eeeDfQ8mofa3WxxzmNXnwkHOYFAkdnk1r9wGZ77guluyQptxMbquQW7A==} dev: true + /@ungap/structured-clone@1.3.0: + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + dev: true + /@vitejs/plugin-react@4.0.0(vite@4.5.2): resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5951,6 +7153,84 @@ packages: - supports-color dev: true + /@vscode/l10n@0.0.18: + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + dev: true + + /@vue/compiler-core@3.5.24: + resolution: {integrity: sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==} + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.24 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + dev: true + + /@vue/compiler-dom@3.5.24: + resolution: {integrity: sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==} + dependencies: + '@vue/compiler-core': 3.5.24 + '@vue/shared': 3.5.24 + dev: true + + /@vue/compiler-sfc@3.5.24: + resolution: {integrity: sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g==} + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.24 + '@vue/compiler-dom': 3.5.24 + '@vue/compiler-ssr': 3.5.24 + '@vue/shared': 3.5.24 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + dev: true + + /@vue/compiler-ssr@3.5.24: + resolution: {integrity: sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==} + dependencies: + '@vue/compiler-dom': 3.5.24 + '@vue/shared': 3.5.24 + dev: true + + /@vue/reactivity@3.5.24: + resolution: {integrity: sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg==} + dependencies: + '@vue/shared': 3.5.24 + dev: true + + /@vue/runtime-core@3.5.24: + resolution: {integrity: sha512-RYP/byyKDgNIqfX/gNb2PB55dJmM97jc9wyF3jK7QUInYKypK2exmZMNwnjueWwGceEkP6NChd3D2ZVEp9undQ==} + dependencies: + '@vue/reactivity': 3.5.24 + '@vue/shared': 3.5.24 + dev: true + + /@vue/runtime-dom@3.5.24: + resolution: {integrity: sha512-Z8ANhr/i0XIluonHVjbUkjvn+CyrxbXRIxR7wn7+X7xlcb7dJsfITZbkVOeJZdP8VZwfrWRsWdShH6pngMxRjw==} + dependencies: + '@vue/reactivity': 3.5.24 + '@vue/runtime-core': 3.5.24 + '@vue/shared': 3.5.24 + csstype: 3.1.3 + dev: true + + /@vue/server-renderer@3.5.24(vue@3.5.24): + resolution: {integrity: sha512-Yh2j2Y4G/0/4z/xJ1Bad4mxaAk++C2v4kaa8oSYTMJBJ00/ndPuxCnWeot0/7/qafQFLh5pr6xeV6SdMcE/G1w==} + peerDependencies: + vue: 3.5.24 + dependencies: + '@vue/compiler-ssr': 3.5.24 + '@vue/shared': 3.5.24 + vue: 3.5.24(typescript@5.2.2) + dev: true + + /@vue/shared@3.5.24: + resolution: {integrity: sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==} + dev: true + /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} requiresBuild: true @@ -6404,6 +7684,15 @@ packages: engines: {node: '>=8'} dev: true + /astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + dev: true + + /async-validator@3.5.2: + resolution: {integrity: sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==} + dev: true + /async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: true @@ -6495,7 +7784,7 @@ packages: /babel-plugin-emotion@10.2.2: resolution: {integrity: sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==} dependencies: - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.4 '@emotion/serialize': 0.11.16 @@ -6512,7 +7801,7 @@ packages: /babel-plugin-import@1.13.8: resolution: {integrity: sha512-36babpjra5m3gca44V6tSTomeBlPA7cHUynrE2WiQIm3rEGD9xy28MKsx5IdO45EbnpJY7Jrgd00C6Dwt/l/2Q==} dependencies: - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) transitivePeerDependencies: - supports-color dev: true @@ -6560,6 +7849,25 @@ packages: zod-validation-error: 2.1.0(zod@3.25.76) dev: true + /babel-plugin-styled-components@2.1.4(styled-components@5.3.11)(supports-color@5.5.0): + resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} + peerDependencies: + styled-components: '>= 2' + peerDependenciesMeta: + styled-components: + optional: true + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) + '@babel/plugin-syntax-jsx': 7.25.9 + lodash: 4.17.21 + picomatch: 2.3.1 + styled-components: 5.3.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: true + /babel-plugin-styled-components@2.1.4(styled-components@6.1.1): resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} peerDependencies: @@ -6569,7 +7877,7 @@ packages: optional: true dependencies: '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) '@babel/plugin-syntax-jsx': 7.25.9 lodash: 4.17.21 picomatch: 2.3.1 @@ -6621,6 +7929,10 @@ packages: babel-preset-current-node-syntax: 1.1.0 dev: true + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: true + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -6635,8 +7947,8 @@ packages: resolution: {integrity: sha512-1J5SWbkoVJH9DTALN8igB4p+nPKZzPrJ/HomqBDLpfUvDXCdjdBmBUcH5McZfur0lftVssVU6BZug5NYh87zTw==} dev: true - /bezier-js@6.1.4: - resolution: {integrity: sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==} + /bezier-easing@2.1.0: + resolution: {integrity: sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==} dev: true /big-integer@1.6.52: @@ -6937,6 +8249,10 @@ packages: engines: {node: '>=12.13'} dev: true + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: true + /celebrate@15.0.3: resolution: {integrity: sha512-ToF8ILq/F0KhQ0CPtexP7Cu9GkqKJ91VKy3ZOCV24aaNWdm3QCHqnXAKfKHrtcM2B2zmPFe11p8WWsQkmq8k4g==} dependencies: @@ -6958,6 +8274,22 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: true + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: true + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: true + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: true + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -7087,28 +8419,49 @@ packages: engines: {node: '>=6'} dev: true + /clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: true + /codemirror-lang-mermaid@0.5.0: resolution: {integrity: sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==} dependencies: - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.10.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 dev: true + /codemirror-shiki@0.2.5(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(shiki@3.15.0): + resolution: {integrity: sha512-EFtjSYtT0osdjM4HLek5juVu8QVmG7E58Dib91yOO/vhGj+i3b63PyD8UF+PWXRTRaZa6q5Z6J02Iq0M/u0fHQ==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + shiki: '>=2.0.0' + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 + shiki: 3.15.0 + dev: true + /codemirror@6.0.1(@lezer/common@1.2.3): resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3) + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/common@1.2.3) '@codemirror/commands': 6.7.1 - '@codemirror/language': 6.10.6 + '@codemirror/language': 6.11.3 '@codemirror/lint': 6.8.4 '@codemirror/search': 6.5.8 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.35.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.8 transitivePeerDependencies: - '@lezer/common' dev: true + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + dev: true + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -7167,6 +8520,14 @@ packages: delayed-stream: 1.0.0 dev: true + /comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + dev: true + + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: true + /commander@11.0.0: resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} engines: {node: '>=16'} @@ -7311,6 +8672,11 @@ packages: is-what: 4.1.16 dev: true + /copy-text-to-clipboard@2.2.0: + resolution: {integrity: sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==} + engines: {node: '>=6'} + dev: true + /copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} dependencies: @@ -7637,6 +9003,14 @@ packages: is-data-view: 1.0.1 dev: true + /date-fns-tz@1.3.8(date-fns@2.30.0): + resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==} + peerDependencies: + date-fns: '>=2.0.0' + dependencies: + date-fns: 2.30.0 + dev: true + /date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} @@ -7705,6 +9079,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + dependencies: + character-entities: 2.0.2 + dev: true + /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -7789,6 +9169,11 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + /des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} dependencies: @@ -7825,6 +9210,12 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -8259,6 +9650,10 @@ packages: is-symbol: 1.1.0 dev: true + /es-toolkit@1.42.0: + resolution: {integrity: sha512-SLHIyY7VfDJBM8clz4+T2oquwTQxEzu263AyhVK4jREOAwJ+8eebaa4wM3nlvnAqhDrMm2EsA6hWHaQsMPQ1nA==} + dev: true + /es5-ext@0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} @@ -8294,6 +9689,24 @@ packages: ext: 1.7.0 dev: true + /esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + dev: true + + /esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.14.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + dev: true + /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -8376,6 +9789,11 @@ packages: engines: {node: '>=10'} dev: true + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.35.0)(typescript@5.2.2): resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8577,6 +9995,57 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + dependencies: + '@types/estree': 1.0.8 + dev: true + + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + dev: true + + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: true + + /estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + dev: true + + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + dev: true + + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.8 + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -8764,6 +10233,14 @@ packages: is-extendable: 0.1.1 dev: true + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /fast-copy@3.0.2: + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -9357,6 +10834,10 @@ packages: safe-buffer: 5.2.1 dev: true + /hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + /hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} dependencies: @@ -9370,6 +10851,73 @@ packages: dependencies: function-bind: 1.1.2 + /hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + dev: true + + /hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.4 + dev: true + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -9451,6 +10999,10 @@ packages: engines: {node: '>=8'} dev: true + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: true + /html-webpack-plugin@5.5.0: resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} engines: {node: '>=10.13.0'} @@ -9625,6 +11177,10 @@ packages: dev: true optional: true + /immer@10.1.3: + resolution: {integrity: sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==} + dev: true + /immer@8.0.4: resolution: {integrity: sha512-jMfL18P+/6P6epANRvRk6q8t+3gGhqsJ9EuJ25AXE+9bNTYtssvzeYbEd0mXRYWCmmXSIbnlpz6vd6iJlmGGGQ==} dev: true @@ -9690,6 +11246,10 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true + /inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + dev: true + /internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -9763,6 +11323,17 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: true + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: true + /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -9849,6 +11420,10 @@ packages: has-tostringtag: 1.0.2 dev: true + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: true + /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -9927,6 +11502,10 @@ packages: dependencies: is-extglob: 2.1.1 + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: true + /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -10217,6 +11796,28 @@ packages: '@sideway/pinpoint': 2.0.0 dev: false + /jotai@2.15.1(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-yHT1HAZ3ba2Q8wgaUQ+xfBzEtcS8ie687I8XVCBinfg4bNniyqLIN+utPXWKQE93LMF5fPbQSVRZqgpcN5yd6Q==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@babel/core': '>=7.0.0' + '@babel/template': '>=7.0.0' + '@types/react': '>=17.0.0' + react: '>=17.0.0 || 18' + peerDependenciesMeta: + '@babel/core': + optional: true + '@babel/template': + optional: true + '@types/react': + optional: true + react: + optional: true + dependencies: + '@types/react': 18.3.12 + react: 18.3.1 + dev: true + /js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -10294,6 +11895,10 @@ packages: hasBin: true dev: true + /jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + dev: true + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -10529,6 +12134,12 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.1.0 + dev: true + /lint-staged@13.3.0: resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -10684,6 +12295,10 @@ packages: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} dev: false + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: true + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -10691,6 +12306,10 @@ packages: js-tokens: 4.0.0 dev: true + /lottie-web@5.13.0: + resolution: {integrity: sha512-+gfBXl6sxXMPe8tKQm7qzLnUy5DUPJPKIyRHwtpCpyUEYjHYRJC/5gjUvdkuO2c3JllrPtHXH5UJJK8LRYl5yQ==} + dev: true + /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: @@ -10723,6 +12342,17 @@ packages: engines: {node: '>=12'} dev: false + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true + + /magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + dev: true + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -10795,6 +12425,43 @@ packages: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: false + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + dev: true + + /markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + dev: true + + /markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + dev: true + + /marked-shiki@1.2.1(marked@15.0.12)(shiki@3.15.0): + resolution: {integrity: sha512-yHxYQhPY5oYaIRnROn98foKhuClark7M373/VpLxiy5TrDu9Jd/LsMwo8w+U91Up4oDb9IXFrP0N1MFRz8W/DQ==} + peerDependencies: + marked: '>=7.0.0' + shiki: '>=1.0.0' + dependencies: + marked: 15.0.12 + shiki: 3.15.0 + dev: true + + /marked@15.0.12: + resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} + engines: {node: '>= 18'} + hasBin: true + dev: true + /mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} dev: true @@ -10807,10 +12474,209 @@ packages: safe-buffer: 5.2.1 dev: true + /mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + dev: true + + /mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + dev: true + + /mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + 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-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + dev: true + + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + dev: true + + /mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: true + + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.4 + dev: true + /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: true + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + dev: true + /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -10860,6 +12726,340 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + /micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + dependencies: + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + dev: true + + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + dependencies: + micromark-util-types: 2.0.2 + dev: true + + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + dev: true + + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + dev: true + + /micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + dependencies: + micromark-util-symbol: 2.0.1 + dev: true + + /micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + dependencies: + micromark-util-symbol: 2.0.1 + dev: true + + /micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + dependencies: + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + dev: true + + /micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + dev: true + + /micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + dependencies: + '@types/estree': 1.0.8 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + dev: true + + /micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + dev: true + + /micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + dependencies: + micromark-util-symbol: 2.0.1 + dev: true + + /micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + dependencies: + micromark-util-types: 2.0.2 + dev: true + + /micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + dev: true + + /micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + dev: true + + /micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + dev: true + + /micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + dev: true + + /micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.7(supports-color@5.5.0) + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -11035,6 +13235,10 @@ packages: yallist: 4.0.0 dev: false + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: true + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -11095,6 +13299,12 @@ packages: thenify-all: 1.6.0 dev: true + /nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -11511,6 +13721,18 @@ packages: mimic-fn: 4.0.0 dev: true + /oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + dev: true + + /oniguruma-to-es@4.3.4: + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + dev: true + /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -11542,6 +13764,10 @@ packages: word-wrap: 1.2.5 dev: true + /orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + dev: true + /os-browserify@0.3.0: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} dev: true @@ -11563,6 +13789,10 @@ packages: minimist: 1.2.8 dev: true + /overlayscrollbars@2.12.0: + resolution: {integrity: sha512-mWJ5MOkcZ/ljHwfLw8+bN0V9ziGCoNoqULcp994j5DTGNQvnkWKWkA7rnO29Kyew5AoHxUnJ4Ndqfcl0HSQjXg==} + dev: true + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -11652,6 +13882,18 @@ packages: safe-buffer: 5.2.1 dev: true + /parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.2.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: true + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -12389,7 +14631,16 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + dev: true + + /postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 dev: true @@ -12457,6 +14708,11 @@ packages: react-is: 16.13.1 dev: true + /prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + dev: true + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -12511,6 +14767,153 @@ packages: signal-exit: 3.0.7 dev: false + /property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + dev: true + + /prosemirror-changeset@2.3.1: + resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==} + dependencies: + prosemirror-transform: 1.10.5 + dev: true + + /prosemirror-collab@1.3.1: + resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} + dependencies: + prosemirror-state: 1.4.4 + dev: true + + /prosemirror-commands@1.7.1: + resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + dev: true + + /prosemirror-dropcursor@1.8.2: + resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.3 + dev: true + + /prosemirror-gapcursor@1.4.0: + resolution: {integrity: sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==} + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.3 + dev: true + + /prosemirror-history@1.5.0: + resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==} + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.3 + rope-sequence: 1.3.4 + dev: true + + /prosemirror-inputrules@1.5.1: + resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==} + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + dev: true + + /prosemirror-keymap@1.2.3: + resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + dependencies: + prosemirror-state: 1.4.4 + w3c-keyname: 2.2.8 + dev: true + + /prosemirror-markdown@1.13.2: + resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + prosemirror-model: 1.25.4 + dev: true + + /prosemirror-menu@1.2.5: + resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + dependencies: + crelt: 1.0.6 + prosemirror-commands: 1.7.1 + prosemirror-history: 1.5.0 + prosemirror-state: 1.4.4 + dev: true + + /prosemirror-model@1.25.4: + resolution: {integrity: sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==} + dependencies: + orderedmap: 2.1.1 + dev: true + + /prosemirror-schema-basic@1.2.4: + resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} + dependencies: + prosemirror-model: 1.25.4 + dev: true + + /prosemirror-schema-list@1.5.1: + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + dev: true + + /prosemirror-state@1.4.4: + resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==} + dependencies: + prosemirror-model: 1.25.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.3 + dev: true + + /prosemirror-tables@1.8.1: + resolution: {integrity: sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==} + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.3 + dev: true + + /prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3): + resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} + peerDependencies: + prosemirror-model: ^1.22.1 + prosemirror-state: ^1.4.2 + prosemirror-view: ^1.33.8 + dependencies: + '@remirror/core-constants': 3.0.0 + escape-string-regexp: 4.0.0 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.3 + dev: true + + /prosemirror-transform@1.10.5: + resolution: {integrity: sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==} + dependencies: + prosemirror-model: 1.25.4 + dev: true + + /prosemirror-view@1.41.3: + resolution: {integrity: sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==} + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + dev: true + /protobufjs@7.5.4: resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} @@ -12585,6 +14988,11 @@ packages: resolution: {integrity: sha512-e4mSfzGfrVBJmhjp+8PHjXIz5WrvEEWB2FT+RJ6YS/ozGttTcnocuj0CtMo3dujWYe2708bTd79zeIrKBtRzCg==} dev: true + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + dev: true + /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: true @@ -13568,6 +15976,23 @@ packages: scheduler: 0.23.2 dev: true + /react-draggable@4.5.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==} + peerDependencies: + react: '>= 16.3.0 || 18' + react-dom: '>= 16.3.0 || 18' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true + /react-easy-crop@5.2.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-gjb7jN+WnwfgpbNUI2jSwyoIxF1sJ0PVSNVgEysAgF1rj8AqR75fqmdvqZ6PFVgEX3rT1G4HJELesiQXr2ZvAg==} peerDependencies: @@ -13729,6 +16154,21 @@ packages: engines: {node: '>=0.10.0'} dev: true + /react-resizable@3.0.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} + peerDependencies: + react: '>= 16.3 || 18' + peerDependenciesMeta: + react: + optional: true + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-draggable: 4.5.0(react-dom@18.3.1)(react@18.3.1) + transitivePeerDependencies: + - react-dom + dev: true + /react-router-dom@6.26.1(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==} engines: {node: '>=14.0.0'} @@ -13832,6 +16272,24 @@ packages: prop-types: 15.8.1 dev: true + /react-window@1.8.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} + engines: {node: '>8.0.0'} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || 18 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || 18 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@babel/runtime': 7.26.0 + memoize-one: 5.2.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true + /react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -13906,6 +16364,45 @@ packages: engines: {node: '>= 12.13.0'} dev: true + /recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + dependencies: + '@types/estree': 1.0.8 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + dev: true + + /recma-jsx@1.0.1(acorn@8.14.0): + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + dev: true + + /recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + dependencies: + '@types/estree': 1.0.8 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + dev: true + + /recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + dependencies: + '@types/estree': 1.0.8 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + dev: true + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -13959,6 +16456,22 @@ packages: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true + /regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + dependencies: + regex-utilities: 2.3.0 + dev: true + + /regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + dev: true + + /regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + dependencies: + regex-utilities: 2.3.0 + dev: true + /regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} @@ -13974,11 +16487,72 @@ packages: engines: {node: '>=8'} dev: true + /rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + dev: true + /relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} dev: true + /remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + dev: true + + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + dev: true + /remove-accents@0.5.0: resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} dev: true @@ -14118,6 +16692,10 @@ packages: fsevents: 2.3.3 dev: true + /rope-sequence@1.3.4: + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + dev: true + /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -14394,6 +16972,19 @@ packages: engines: {node: '>= 0.4'} dev: true + /shiki@3.15.0: + resolution: {integrity: sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw==} + dependencies: + '@shikijs/core': 3.15.0 + '@shikijs/engine-javascript': 3.15.0 + '@shikijs/engine-oniguruma': 3.15.0 + '@shikijs/langs': 3.15.0 + '@shikijs/themes': 3.15.0 + '@shikijs/types': 3.15.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + dev: true + /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -14559,6 +17150,10 @@ packages: engines: {node: '>= 8'} dev: true + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: true + /spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} dev: true @@ -14808,6 +17403,13 @@ packages: dependencies: safe-buffer: 5.2.1 + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: true + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -14851,10 +17453,52 @@ packages: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true + /style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + dependencies: + style-to-object: 1.0.14 + dev: true + + /style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + dependencies: + inline-style-parser: 0.2.7 + dev: true + /style-utils@0.3.8: resolution: {integrity: sha512-RmGftIhY4tqtD1ERwKsVEDlt/M6UyxN/rcr95UmlooWmhtL0RwVUYJkpo1kSx3ppd9/JZzbknhy742zbMAawjQ==} dev: true + /styled-components@5.3.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8.0 || 18' + react-dom: '>= 16.8.0 || 18' + react-is: '>= 16.8.0' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) + '@babel/traverse': 7.25.9(supports-color@5.5.0) + '@emotion/is-prop-valid': 1.3.1 + '@emotion/stylis': 0.8.5 + '@emotion/unitless': 0.7.5 + babel-plugin-styled-components: 2.1.4(styled-components@5.3.11)(supports-color@5.5.0) + css-to-react-native: 3.2.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + shallowequal: 1.1.0 + supports-color: 5.5.0 + transitivePeerDependencies: + - '@babel/core' + dev: true + /styled-components@6.1.1(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-cpZZP5RrKRIClBW5Eby4JM1wElLVP4NQrJbJ0h10TidTyJf4SIIwa3zLXOoPb4gJi8MsJ8mjq5mu2IrEhZIAcQ==} engines: {node: '>= 16'} @@ -15119,6 +17763,10 @@ packages: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} dev: false + /text-mapping@1.0.1: + resolution: {integrity: sha512-lONDMFNJ6QPjxYPcxkAy420qB+jMRxXERkNJAVDapQeZs0POW4pWryG9R+kAer6H+VDh/Z07x9GMNhhQrnSVIw==} + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true @@ -15224,6 +17872,10 @@ packages: hasBin: true dev: true + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: true + /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} @@ -15239,6 +17891,10 @@ packages: engines: {node: '>= 14.0.0'} dev: false + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: true + /ts-node@10.9.2(@types/node@17.0.45)(typescript@5.2.2): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -15454,6 +18110,16 @@ packages: hasBin: true dev: true + /typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + dev: true + /umi@4.4.4(@types/node@17.0.45)(@types/react@18.3.12)(eslint@8.35.0)(prettier@2.8.8)(react-dom@18.3.1)(react@18.3.1)(sockjs-client@1.6.1)(stylelint@14.8.2)(typescript@5.2.2): resolution: {integrity: sha512-5ymoTVbuVlMD36XE1jcAQJ4KA8n5olZ31QGqbunEiZUCYubJk6E+30rZBo1pyNe6Zn6HROK8JUUdF1WDn1nchw==} engines: {node: '>=14'} @@ -15534,6 +18200,18 @@ packages: resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==} dev: true + /unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + dev: true + /unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} requiresBuild: true @@ -15550,6 +18228,45 @@ packages: dev: false optional: true + /unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + dependencies: + '@types/unist': 3.0.3 + dev: true + + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + dependencies: + '@types/unist': 3.0.3 + dev: true + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.3 + dev: true + + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.3 + dev: true + + /unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + dev: true + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + dev: true + /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -15689,6 +18406,17 @@ packages: react: 18.3.1 dev: true + /use-sync-external-store@1.6.0(react@18.3.1): + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || 18 + peerDependenciesMeta: + react: + optional: true + dependencies: + react: 18.3.1 + dev: true + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -15720,6 +18448,11 @@ packages: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} dev: true + /utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + dev: true + /utility@1.18.0: resolution: {integrity: sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==} engines: {node: '>= 0.12.0'} @@ -15787,6 +18520,20 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + /vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + dev: true + + /vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + dev: true + /vh-check@2.0.5: resolution: {integrity: sha512-vHtIYWt9uLl2P2tLlatVpMwv9+ezuJCtMNjUVIpzd5Pa/dJXN8AtqkKmVRcNSlmXyCjkCkbMQX/Vs9axmdlfgg==} dev: true @@ -15851,6 +18598,44 @@ packages: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true + /vscode-json-languageservice@5.6.3: + resolution: {integrity: sha512-UDF7sJF5t7mzUzXL6dsClkvnHS4xnDL/gOMKGQiizRHmswlk/xSPGZxEvAtszWQF0ImNcJ0j9l+rHuefGzit1w==} + dependencies: + '@vscode/l10n': 0.0.18 + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + dev: true + + /vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + dev: true + + /vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + dev: true + + /vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + dev: true + + /vue@3.5.24(typescript@5.2.2): + resolution: {integrity: sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.5.24 + '@vue/compiler-sfc': 3.5.24 + '@vue/runtime-dom': 3.5.24 + '@vue/server-renderer': 3.5.24(vue@3.5.24) + '@vue/shared': 3.5.24 + typescript: 5.2.2 + dev: true + /w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: true @@ -16140,6 +18925,10 @@ packages: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} dev: true + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: true + github.com/whyour/node-sqlite3/3a00af0b5d7603b7f1b290032507320b18a6b741: resolution: {tarball: https://codeload.github.com/whyour/node-sqlite3/tar.gz/3a00af0b5d7603b7f1b290032507320b18a6b741} name: '@whyour/sqlite3' @@ -16159,7 +18948,3 @@ packages: - encoding - supports-color dev: false - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false diff --git a/src/layouts/index.less b/src/layouts/index.less index 66a08da5..9fd58052 100644 --- a/src/layouts/index.less +++ b/src/layouts/index.less @@ -39,6 +39,7 @@ body { max-height: calc(80vh - 110px); max-height: calc(80vh - var(--vh-offset, 110px)); overflow-y: auto; + position: relative; } .log-modal { diff --git a/src/pages/scenario/flowgram/FlowgramEditor.tsx b/src/pages/scenario/flowgram/FlowgramEditor.tsx deleted file mode 100644 index b67da033..00000000 --- a/src/pages/scenario/flowgram/FlowgramEditor.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import React, { useEffect, useImperativeHandle, forwardRef } from 'react'; -import { EditorRenderer, FreeLayoutEditorProvider } from '@flowgram.ai/free-layout-editor'; -import { DockedPanelLayer } from '@flowgram.ai/panel-manager-plugin'; -import '@flowgram.ai/free-layout-editor/index.css'; -import { nodeRegistries } from './nodes'; -import { useEditorProps } from './hooks/use-editor-props'; -import './editor.less'; - -export interface FlowgramEditorProps { - initialData?: any; - onChange?: (data: any) => void; -} - -export interface FlowgramEditorRef { - getData: () => any; -} - -const FlowgramEditor = forwardRef( - ({ initialData, onChange }, ref) => { - const defaultData = initialData || { - nodes: [], - edges: [], - viewport: { x: 0, y: 0, zoom: 1 }, - }; - - const editorProps = useEditorProps(defaultData, nodeRegistries); - - useImperativeHandle(ref, () => ({ - getData: () => { - // This would need to be implemented to get the current editor state - // For now, return the default data structure - return defaultData; - }, - })); - - useEffect(() => { - if (onChange) { - // Setup change listener - // This would need integration with Flowgram's onChange events - } - }, [onChange]); - - return ( -
- -
- - -
-
-
- ); - } -); - -FlowgramEditor.displayName = 'FlowgramEditor'; - -export default FlowgramEditor; diff --git a/src/pages/scenario/flowgram/assets/icon-break.svg b/src/pages/scenario/flowgram/assets/icon-break.svg new file mode 100644 index 00000000..ef172eee --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-break.svg @@ -0,0 +1 @@ + diff --git a/src/pages/scenario/flowgram/assets/icon-case.png b/src/pages/scenario/flowgram/assets/icon-case.png new file mode 100644 index 00000000..e2a9d1a2 Binary files /dev/null and b/src/pages/scenario/flowgram/assets/icon-case.png differ diff --git a/src/pages/scenario/flowgram/assets/icon-condition.svg b/src/pages/scenario/flowgram/assets/icon-condition.svg new file mode 100644 index 00000000..be9c2eb4 --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-condition.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/pages/scenario/flowgram/assets/icon-end.jpg b/src/pages/scenario/flowgram/assets/icon-end.jpg new file mode 100644 index 00000000..46bc47dd Binary files /dev/null and b/src/pages/scenario/flowgram/assets/icon-end.jpg differ diff --git a/src/pages/scenario/flowgram/assets/icon-if.png b/src/pages/scenario/flowgram/assets/icon-if.png new file mode 100644 index 00000000..9a16d7b7 Binary files /dev/null and b/src/pages/scenario/flowgram/assets/icon-if.png differ diff --git a/src/pages/scenario/flowgram/assets/icon-llm.jpg b/src/pages/scenario/flowgram/assets/icon-llm.jpg new file mode 100644 index 00000000..4db9e0b7 Binary files /dev/null and b/src/pages/scenario/flowgram/assets/icon-llm.jpg differ diff --git a/src/pages/scenario/flowgram/assets/icon-loop.svg b/src/pages/scenario/flowgram/assets/icon-loop.svg new file mode 100644 index 00000000..4e5addfa --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-loop.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/pages/scenario/flowgram/assets/icon-memory.svg b/src/pages/scenario/flowgram/assets/icon-memory.svg new file mode 100644 index 00000000..3a30ebab --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-memory.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/src/pages/scenario/flowgram/assets/icon-mouse.tsx b/src/pages/scenario/flowgram/assets/icon-mouse.tsx new file mode 100644 index 00000000..05bdddd8 --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-mouse.tsx @@ -0,0 +1,36 @@ +export function IconMouse(props: { width?: number; height?: number }) { + const { width, height } = props; + return ( + + + + ); +} + +export const IconMouseTool = () => ( + + + +); diff --git a/src/pages/scenario/flowgram/assets/icon-pad.tsx b/src/pages/scenario/flowgram/assets/icon-pad.tsx new file mode 100644 index 00000000..e0382fde --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-pad.tsx @@ -0,0 +1,51 @@ +export function IconPad(props: { width?: number; height?: number }) { + const { width, height } = props; + return ( + + + + + ); +} + +export const IconPadTool = () => ( + + + + +); diff --git a/src/pages/scenario/flowgram/assets/icon-parallel.svg b/src/pages/scenario/flowgram/assets/icon-parallel.svg new file mode 100644 index 00000000..d86efbea --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-parallel.svg @@ -0,0 +1,6 @@ + + + diff --git a/src/pages/scenario/flowgram/assets/icon-robot.svg b/src/pages/scenario/flowgram/assets/icon-robot.svg new file mode 100644 index 00000000..23d1861e --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-robot.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/src/pages/scenario/flowgram/assets/icon-start.jpg b/src/pages/scenario/flowgram/assets/icon-start.jpg new file mode 100644 index 00000000..72a5a48e Binary files /dev/null and b/src/pages/scenario/flowgram/assets/icon-start.jpg differ diff --git a/src/pages/scenario/flowgram/assets/icon-tool.svg b/src/pages/scenario/flowgram/assets/icon-tool.svg new file mode 100644 index 00000000..88b2fc8b --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-tool.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/src/pages/scenario/flowgram/assets/icon-trycatch.svg b/src/pages/scenario/flowgram/assets/icon-trycatch.svg new file mode 100644 index 00000000..fdfccead --- /dev/null +++ b/src/pages/scenario/flowgram/assets/icon-trycatch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/pages/scenario/flowgram/assets/icon-variable.png b/src/pages/scenario/flowgram/assets/icon-variable.png new file mode 100644 index 00000000..558ede14 Binary files /dev/null and b/src/pages/scenario/flowgram/assets/icon-variable.png differ diff --git a/src/pages/scenario/flowgram/components/agent-adder/index.tsx b/src/pages/scenario/flowgram/components/agent-adder/index.tsx new file mode 100644 index 00000000..f986411f --- /dev/null +++ b/src/pages/scenario/flowgram/components/agent-adder/index.tsx @@ -0,0 +1,65 @@ +import { + type FlowNodeEntity, + FlowNodeRenderData, + useClientContext, +} from '@flowgram.ai/fixed-layout-editor'; + +import { ToolNodeRegistry } from '../../nodes/agent/tool'; +import { PlusOutlined } from '@ant-design/icons'; + +interface PropsType { + node: FlowNodeEntity; +} + +export function AgentAdder(props: PropsType) { + const { node } = props; + + const nodeData = node.firstChild?.getData(FlowNodeRenderData); + const ctx = useClientContext(); + + async function addPort() { + ctx.operation.addNode(ToolNodeRegistry.onAdd!(ctx, node), { + parent: node, + }); + } + + /** + * 1. Tools can always be added + * 2. LLM/Memory can only be added when there is no block + */ + const canAdd = node.flowNodeType === 'agentTools' || node.blocks.length === 0; + + if (!canAdd) { + return null; + } + + return ( +
nodeData?.toggleMouseEnter()} + onMouseLeave={() => nodeData?.toggleMouseLeave()} + > +
addPort()} + > + +
+
+ ); +} diff --git a/src/pages/scenario/flowgram/components/agent-label/index.tsx b/src/pages/scenario/flowgram/components/agent-label/index.tsx new file mode 100644 index 00000000..98f39d96 --- /dev/null +++ b/src/pages/scenario/flowgram/components/agent-label/index.tsx @@ -0,0 +1,41 @@ +import { FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor'; +import { Typography } from 'antd'; + +interface PropsType { + node: FlowNodeEntity; +} + +const Text = Typography.Text; + +export function AgentLabel(props: PropsType) { + const { node } = props; + + let label = 'Default'; + + switch (node.flowNodeType) { + case 'agentMemory': + label = 'Memory'; + break; + case 'agentLLM': + label = 'LLM'; + break; + case 'agentTools': + label = 'Tools'; + } + + return ( + + {label} + + ); +} diff --git a/src/pages/scenario/flowgram/components/base-node/index.tsx b/src/pages/scenario/flowgram/components/base-node/index.tsx new file mode 100644 index 00000000..3a032c85 --- /dev/null +++ b/src/pages/scenario/flowgram/components/base-node/index.tsx @@ -0,0 +1,69 @@ +import { useCallback } from 'react'; + +import { usePanelManager } from '@flowgram.ai/panel-manager-plugin'; +import { FlowNodeEntity, useNodeRender } from '@flowgram.ai/fixed-layout-editor'; +import { ConfigProvider } from 'antd'; + +import { NodeRenderContext } from '../../context'; +import { BaseNodeStyle, ErrorIcon } from './styles'; +import { nodeFormPanelFactory } from '../sidebar'; + +export const BaseNode = ({ node }: { node: FlowNodeEntity }) => { + /** + * Provides methods related to node rendering + * 提供节点渲染相关的方法 + */ + const nodeRender = useNodeRender(); + /** + * It can only be used when nodeEngine is enabled + * 只有在节点引擎开启时候才能使用表单 + */ + const form = nodeRender.form; + + /** + * Used to make the Tooltip scale with the node, which can be implemented by itself depending on the UI library + * 用于让 Tooltip 跟随节点缩放, 这个可以根据不同的 ui 库自己实现 + */ + const getPopupContainer = useCallback(() => node.renderData.node || document.body, []); + + const panelManager = usePanelManager(); + + return ( + + {form?.state.invalid && } + { + if (nodeRender.dragging) { + return; + } + panelManager.open(nodeFormPanelFactory.key, 'right', { + props: { + nodeId: nodeRender.node.id, + }, + }); + }} + style={{ + /** + * Lets you precisely control the style of branch nodes + * 用于精确控制分支节点的样式 + * isBlockIcon: 整个 condition 分支的 头部节点 + * isBlockOrderIcon: 分支的第一个节点 + */ + ...(nodeRender.isBlockOrderIcon || nodeRender.isBlockIcon ? {} : {}), + ...nodeRender.node.getNodeRegistry().meta.style, + opacity: nodeRender.dragging ? 0.3 : 1, + outline: form?.state.invalid ? '1px solid red' : 'none', + }} + > + {form?.render()} + + + ); +}; diff --git a/src/pages/scenario/flowgram/components/base-node/styles.tsx b/src/pages/scenario/flowgram/components/base-node/styles.tsx new file mode 100644 index 00000000..099c86c3 --- /dev/null +++ b/src/pages/scenario/flowgram/components/base-node/styles.tsx @@ -0,0 +1,33 @@ +import { InfoCircleFilled } from '@ant-design/icons'; +import styled from 'styled-components'; + +export const BaseNodeStyle = styled.div` + align-items: flex-start; + background-color: #fff; + border: 1px solid rgba(6, 7, 9, 0.15); + border-radius: 8px; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.04), 0 4px 12px 0 rgba(0, 0, 0, 0.02); + display: flex; + flex-direction: column; + justify-content: center; + position: relative; + width: 360px; + cursor: default; + &.activated { + border: 1px solid #82a7fc; + } +`; + +export const ErrorIcon = () => ( + +); diff --git a/src/pages/scenario/flowgram/components/branch-adder/index.tsx b/src/pages/scenario/flowgram/components/branch-adder/index.tsx new file mode 100644 index 00000000..100c89b8 --- /dev/null +++ b/src/pages/scenario/flowgram/components/branch-adder/index.tsx @@ -0,0 +1,58 @@ +import { type FlowNodeEntity, useClientContext } from '@flowgram.ai/fixed-layout-editor'; + +import { CatchBlockNodeRegistry } from '../../nodes/catch-block'; +import { CaseNodeRegistry } from '../../nodes/case'; +import { Container } from './styles'; +import { PlusOutlined } from '@ant-design/icons'; + +interface PropsType { + activated?: boolean; + node: FlowNodeEntity; +} + +export default function BranchAdder(props: PropsType) { + const { activated, node } = props; + const nodeData = node.firstChild!.renderData; + const ctx = useClientContext(); + const { operation, playground } = ctx; + const { isVertical } = node; + + function addBranch() { + const block = operation.addBlock( + node, + node.flowNodeType === 'switch' + ? CaseNodeRegistry.onAdd!(ctx, node) + : CatchBlockNodeRegistry.onAdd!(ctx, node), + { + index: 0, + } + ); + + setTimeout(() => { + playground.scrollToView({ + bounds: block.bounds, + scrollToCenter: true, + }); + }, 10); + } + if (playground.config.readonlyOrDisabled) return null; + + return ( + nodeData?.toggleMouseEnter()} + onMouseLeave={() => nodeData?.toggleMouseLeave()} + > +
{ + addBranch(); + }} + aria-hidden="true" + style={{ flexGrow: 1, textAlign: 'center' }} + > + +
+
+ ); +} diff --git a/src/pages/scenario/flowgram/components/branch-adder/styles.tsx b/src/pages/scenario/flowgram/components/branch-adder/styles.tsx new file mode 100644 index 00000000..7d8546ba --- /dev/null +++ b/src/pages/scenario/flowgram/components/branch-adder/styles.tsx @@ -0,0 +1,24 @@ +import styled from 'styled-components'; + +export const Container = styled.div<{ activated?: boolean; isVertical: boolean }>` + width: 28px; + height: 18px; + background: ${(props) => (props.activated ? '#82A7FC' : 'rgb(187, 191, 196)')}; + display: flex; + border-radius: 9px; + justify-content: space-evenly; + align-items: center; + color: #fff; + font-size: 10px; + font-weight: bold; + transform: ${(props) => (props.isVertical ? '' : 'rotate(90deg)')}; + div { + display: flex; + justify-content: center; + align-items: center; + svg { + width: 12px; + height: 12px; + } + } +`; diff --git a/src/pages/scenario/flowgram/components/drag-node/index.tsx b/src/pages/scenario/flowgram/components/drag-node/index.tsx new file mode 100644 index 00000000..f502074d --- /dev/null +++ b/src/pages/scenario/flowgram/components/drag-node/index.tsx @@ -0,0 +1,54 @@ +import type { FlowNodeEntity, FlowNodeJSON, Xor } from '@flowgram.ai/fixed-layout-editor'; + +import { FlowNodeRegistries } from '../../nodes'; +import { Icon } from '../../form-components/form-header/styles'; +import { UIDragNodeContainer, UIDragCounts } from './styles'; + +export type PropsType = Xor< + { + dragStart: FlowNodeEntity; + }, + { + dragJSON: FlowNodeJSON; + } +> & { + dragNodes: FlowNodeEntity[]; +}; + +export function DragNode(props: PropsType): JSX.Element { + const { dragStart, dragNodes, dragJSON } = props; + + const icon = FlowNodeRegistries.find( + (registry) => registry.type === dragStart?.flowNodeType || dragJSON?.type + )?.info?.icon; + + const dragLength = (dragNodes || []) + .map((_node) => + _node.allCollapsedChildren.length + ? _node.allCollapsedChildren.filter((_n) => !_n.hidden).length + : 1 + ) + .reduce((acm, curr) => acm + curr, 0); + + return ( + + + {dragStart?.id || dragJSON?.id} + {dragLength > 1 && ( + <> + {dragLength} + + + )} + + ); +} diff --git a/src/pages/scenario/flowgram/components/drag-node/styles.tsx b/src/pages/scenario/flowgram/components/drag-node/styles.tsx new file mode 100644 index 00000000..dc232ab4 --- /dev/null +++ b/src/pages/scenario/flowgram/components/drag-node/styles.tsx @@ -0,0 +1,35 @@ +import styled from 'styled-components'; + +const primary = 'hsl(252 62% 54.9%)'; +const primaryOpacity09 = 'hsl(252deg 62% 55% / 9%)'; + +export const UIDragNodeContainer = styled.div` + position: relative; + height: 32px; + border-radius: 5px; + display: flex; + align-items: center; + column-gap: 8px; + cursor: pointer; + font-size: 19px; + border: 1px solid ${primary}; + padding: 0 15px; + &:hover: { + background-color: ${primaryOpacity09}; + color: ${primary}; + } +`; + +export const UIDragCounts = styled.div` + position: absolute; + top: -8px; + right: -8px; + text-align: center; + line-height: 16px; + width: 16px; + height: 16px; + border-radius: 8px; + font-size: 12px; + color: #fff; + background-color: ${primary}; +`; diff --git a/src/pages/scenario/flowgram/components/index.ts b/src/pages/scenario/flowgram/components/index.ts new file mode 100644 index 00000000..f3277e64 --- /dev/null +++ b/src/pages/scenario/flowgram/components/index.ts @@ -0,0 +1,3 @@ +export { DemoTools } from './tools'; +export { DragNode } from './drag-node'; +export { AgentAdder } from './agent-adder'; diff --git a/src/pages/scenario/flowgram/components/minimap.tsx b/src/pages/scenario/flowgram/components/minimap.tsx deleted file mode 100644 index 279c5bbc..00000000 --- a/src/pages/scenario/flowgram/components/minimap.tsx +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Minimap component for workflow editor - * Following Flowgram demo pattern from: - * https://github.com/bytedance/flowgram.ai/blob/main/apps/demo-free-layout/src/components/tools/minimap.tsx - */ -import React from 'react'; -import { Minimap as FlowgramMinimap } from '@flowgram.ai/minimap-plugin'; - -export const Minimap: React.FC = () => { - return ( -
- -
- ); -}; diff --git a/src/pages/scenario/flowgram/components/node-adder/index.tsx b/src/pages/scenario/flowgram/components/node-adder/index.tsx new file mode 100644 index 00000000..e8bc8733 --- /dev/null +++ b/src/pages/scenario/flowgram/components/node-adder/index.tsx @@ -0,0 +1,162 @@ +import { useCallback, useMemo, useState } from 'react'; + +import { useClientContext } from '@flowgram.ai/fixed-layout-editor'; +import { type FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor'; +import { Popover, message, Typography } from 'antd'; + +import { NodeList } from '../node-list'; +import { readData } from '../../shortcuts/utils'; +import { generateNodeId } from './utils'; +import { PasteIcon, Wrap } from './styles'; +import { CopyOutlined, PlusOutlined } from '@ant-design/icons'; + +const generateNewIdForChildren = (n: FlowNodeEntity): FlowNodeEntity => { + if (n.blocks) { + return { + ...n, + id: generateNodeId(n), + blocks: n.blocks.map((b) => generateNewIdForChildren(b)), + } as FlowNodeEntity; + } else { + return { + ...n, + id: generateNodeId(n), + } as FlowNodeEntity; + } +}; + +export default function Adder(props: { + from: FlowNodeEntity; + to?: FlowNodeEntity; + hoverActivated: boolean; +}) { + const { from } = props; + const isVertical = from.isVertical; + const [visible, setVisible] = useState(false); + const { playground, operation, clipboard } = useClientContext(); + + const [pasteIconVisible, setPasteIconVisible] = useState(false); + + const activated = useMemo( + () => props.hoverActivated && !playground.config.readonly, + [props.hoverActivated, playground.config.readonly] + ); + + const add = (addProps: any) => { + const blocks = addProps.blocks ? addProps.blocks : undefined; + const block = operation.addFromNode(from, { + ...addProps, + blocks, + }); + setTimeout(() => { + playground.scrollToView({ + bounds: block.bounds, + scrollToCenter: true, + }); + }, 10); + setVisible(false); + }; + + const handlePaste = useCallback(async (e: any) => { + try { + e.stopPropagation(); + const nodes = await readData(clipboard); + + if (!nodes) { + message.error({ + content: 'The clipboard content has been updated, please copy the node again.', + }); + return; + } + + nodes.reverse().forEach((n: FlowNodeEntity) => { + const newNodeData = generateNewIdForChildren(n); + operation.addFromNode(from, newNodeData); + }); + + message.success({ + content: 'Paste successfully!', + }); + } catch (error) { + console.error(error); + message.error({ + content: ( + + Paste failed, please check if you have permission to read the clipboard, + + ), + }); + } + }, []); + if (playground.config.readonly) return null; + + return ( + } + placement="right" + trigger="click" + align={{ offset: [30, 0] }} + overlayStyle={{ + padding: 0, + }} + > + e.stopPropagation()} + > + {props.hoverActivated ? ( + { + setVisible(true); + }} + onMouseEnter={() => { + const data = clipboard.readText(); + setPasteIconVisible(!!data); + }} + style={{ + backgroundColor: '#fff', + color: '#3370ff', + borderRadius: 15, + }} + /> + ) : ( + '' + )} + {activated && pasteIconVisible && ( + + + + + + )} + + + ); +} diff --git a/src/pages/scenario/flowgram/components/node-adder/styles.tsx b/src/pages/scenario/flowgram/components/node-adder/styles.tsx new file mode 100644 index 00000000..0c0efe39 --- /dev/null +++ b/src/pages/scenario/flowgram/components/node-adder/styles.tsx @@ -0,0 +1,24 @@ +import styled from 'styled-components'; + +export const PasteIcon = styled.div` + position: absolute; + width: 15px; + height: 15px; + color: #3370ff; + display: flex; + justify-content: center; + align-items: center; +`; + +export const Wrap = styled.div` + position: relative; + width: 6px; + height: 6px; + background-color: rgb(143, 149, 158); + color: #fff; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; +`; diff --git a/src/pages/scenario/flowgram/components/node-adder/utils.ts b/src/pages/scenario/flowgram/components/node-adder/utils.ts new file mode 100644 index 00000000..fd0565fa --- /dev/null +++ b/src/pages/scenario/flowgram/components/node-adder/utils.ts @@ -0,0 +1,4 @@ +import { nanoid } from 'nanoid'; +import { FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor'; + +export const generateNodeId = (n: FlowNodeEntity) => `${n.type || n.flowNodeType}_${nanoid()}`; diff --git a/src/pages/scenario/flowgram/components/node-list.tsx b/src/pages/scenario/flowgram/components/node-list.tsx new file mode 100644 index 00000000..bb575f36 --- /dev/null +++ b/src/pages/scenario/flowgram/components/node-list.tsx @@ -0,0 +1,69 @@ +import styled from 'styled-components'; +import { + FlowNodeEntity, + FlowNodeRegistry, + useClientContext, +} from '@flowgram.ai/fixed-layout-editor'; + +import { FlowNodeRegistries } from '../nodes'; + +const NodeWrap = styled.div` + width: 100%; + height: 32px; + border-radius: 5px; + display: flex; + align-items: center; + cursor: pointer; + font-size: 19px; + padding: 0 15px; + &:hover { + background-color: hsl(252deg 62% 55% / 9%); + color: hsl(252 62% 54.9%); + }, +`; + +const NodeLabel = styled.div` + font-size: 12px; + margin-left: 10px; +`; + +function Node(props: { label: string; icon: JSX.Element; onClick: () => void; disabled: boolean }) { + return ( + +
{props.icon}
+ {props.label} +
+ ); +} + +const NodesWrap = styled.div` + max-height: 500px; + overflow: auto; + &::-webkit-scrollbar { + display: none; + } +`; + +export function NodeList(props: { onSelect: (meta: any) => void; from: FlowNodeEntity }) { + const context = useClientContext(); + const handleClick = (registry: FlowNodeRegistry) => { + const addProps = registry.onAdd(context, props.from); + props.onSelect?.(addProps); + }; + return ( + + {FlowNodeRegistries.filter((registry) => !registry.meta?.addDisable).map((registry) => ( + } + label={registry.type as string} + onClick={() => handleClick(registry)} + /> + ))} + + ); +} diff --git a/src/pages/scenario/flowgram/components/node-panel/index.tsx b/src/pages/scenario/flowgram/components/node-panel/index.tsx deleted file mode 100644 index 719f9fd1..00000000 --- a/src/pages/scenario/flowgram/components/node-panel/index.tsx +++ /dev/null @@ -1,93 +0,0 @@ -/** - * NodePanel component for node type selection - * Following Flowgram demo pattern from: - * https://github.com/bytedance/flowgram.ai/blob/main/apps/demo-free-layout/src/components/node-panel/index.tsx - */ -import React from 'react'; -import { NodePanelProps } from '@flowgram.ai/free-node-panel-plugin'; -import { Card, Row, Col } from 'antd'; -import { - ApiOutlined, - CodeOutlined, - BranchesOutlined, - ClockCircleOutlined, - SyncOutlined, - PlayCircleOutlined, - StopOutlined, -} from '@ant-design/icons'; -import intl from 'react-intl-universal'; -import { NODE_TYPES } from '../../nodes/constants'; -import './styles.less'; - -export const NodePanel: React.FC = ({ onSelect, onClose }) => { - const nodeTypes = [ - { - type: NODE_TYPES.START, - label: intl.get('scenario_start'), - icon: , - }, - { - type: NODE_TYPES.HTTP, - label: intl.get('scenario_http_node'), - icon: , - }, - { - type: NODE_TYPES.SCRIPT, - label: intl.get('scenario_script_node'), - icon: , - }, - { - type: NODE_TYPES.CONDITION, - label: intl.get('scenario_condition_node'), - icon: , - }, - { - type: NODE_TYPES.DELAY, - label: intl.get('scenario_delay_node'), - icon: , - }, - { - type: NODE_TYPES.LOOP, - label: intl.get('scenario_loop_node'), - icon: , - }, - { - type: NODE_TYPES.END, - label: intl.get('scenario_end'), - icon: , - }, - ]; - - const handleNodeClick = (type: string) => { - onSelect?.({ - nodeType: type, - nodeJSON: {}, - }); - }; - - return ( -
-
- {intl.get('scenario_add_node')} -
-
- - {nodeTypes.map((node) => ( - - handleNodeClick(node.type)} - > -
- {node.icon} -
{node.label}
-
-
- - ))} -
-
-
- ); -}; diff --git a/src/pages/scenario/flowgram/components/node-panel/styles.less b/src/pages/scenario/flowgram/components/node-panel/styles.less deleted file mode 100644 index 8db6cb02..00000000 --- a/src/pages/scenario/flowgram/components/node-panel/styles.less +++ /dev/null @@ -1,77 +0,0 @@ -.node-panel { - background: #fff; - border-radius: 8px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - min-width: 320px; - max-width: 400px; - - .node-panel-header { - padding: 12px 16px; - border-bottom: 1px solid #f0f0f0; - font-weight: 500; - font-size: 14px; - } - - .node-panel-content { - padding: 12px; - max-height: 400px; - overflow-y: auto; - } - - .node-panel-card { - .ant-card-body { - padding: 12px; - } - - .node-panel-card-content { - display: flex; - flex-direction: column; - align-items: center; - gap: 8px; - text-align: center; - - .node-panel-card-label { - font-size: 12px; - color: rgba(0, 0, 0, 0.85); - } - } - - &:hover { - border-color: #1890ff; - .node-panel-card-content { - color: #1890ff; - .node-panel-card-label { - color: #1890ff; - } - } - } - } -} - -// Dark mode support -[data-prefers-color='dark'] { - .node-panel { - background: #1f1f1f; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45); - - .node-panel-header { - border-bottom-color: #303030; - } - - .node-panel-card { - background: #141414; - border-color: #303030; - - .node-panel-card-label { - color: rgba(255, 255, 255, 0.85); - } - - &:hover { - border-color: #177ddc; - .node-panel-card-label { - color: #177ddc; - } - } - } - } -} diff --git a/src/pages/scenario/flowgram/components/selector-box-popover/index.tsx b/src/pages/scenario/flowgram/components/selector-box-popover/index.tsx new file mode 100644 index 00000000..6140d95f --- /dev/null +++ b/src/pages/scenario/flowgram/components/selector-box-popover/index.tsx @@ -0,0 +1,158 @@ +import { FunctionComponent, useMemo } from 'react'; + +import { + useStartDragNode, + FlowNodeRenderData, + FlowNodeBaseType, + FlowGroupService, + type FlowNodeEntity, + SelectorBoxPopoverProps, +} from '@flowgram.ai/fixed-layout-editor'; +import { Button, Tooltip } from 'antd'; + +import { FlowCommandId } from '../../shortcuts/constants'; +import { IconGroupOutlined } from '../../plugins/group-plugin/icons'; +import { CopyOutlined, DeleteOutlined, DragOutlined, ExpandOutlined, ShrinkOutlined } from '@ant-design/icons'; + +const BUTTON_HEIGHT = 24; + +export const SelectorBoxPopover: FunctionComponent = ({ + bounds, + children, + flowSelectConfig, + commandRegistry, +}) => { + const selectNodes = flowSelectConfig.selectedNodes; + + const { startDrag } = useStartDragNode(); + + const draggable = selectNodes[0]?.getData(FlowNodeRenderData)?.draggable; + + // Does the selected component have a group node? (High-cost computation must use memo) + const hasGroup: boolean = useMemo(() => { + if (!selectNodes || selectNodes.length === 0) { + return false; + } + const findGroupInNodes = (nodes: FlowNodeEntity[]): boolean => + nodes.some((node) => { + if (node.flowNodeType === FlowNodeBaseType.GROUP) { + return true; + } + if (node.blocks && node.blocks.length) { + return findGroupInNodes(node.blocks); + } + return false; + }); + return findGroupInNodes(selectNodes); + }, [selectNodes]); + + const canGroup = !hasGroup && FlowGroupService.validate(selectNodes); + + return ( + <> +
{ + e.stopPropagation(); + }} + > + + {draggable && ( + +
+
{ + e.stopPropagation(); + startDrag(e, { + dragStartEntity: selectNodes[0], + dragEntities: selectNodes, + }); + }} + > + {children} +
+ + ); +}; diff --git a/src/pages/scenario/flowgram/components/sidebar/index.tsx b/src/pages/scenario/flowgram/components/sidebar/index.tsx new file mode 100644 index 00000000..6ae46671 --- /dev/null +++ b/src/pages/scenario/flowgram/components/sidebar/index.tsx @@ -0,0 +1 @@ +export { nodeFormPanelFactory } from './sidebar-renderer'; diff --git a/src/pages/scenario/flowgram/components/sidebar/sidebar-node-renderer.tsx b/src/pages/scenario/flowgram/components/sidebar/sidebar-node-renderer.tsx new file mode 100644 index 00000000..4ae47fb9 --- /dev/null +++ b/src/pages/scenario/flowgram/components/sidebar/sidebar-node-renderer.tsx @@ -0,0 +1,24 @@ +import { useNodeRender, FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor'; + +import { NodeRenderContext } from '../../context'; + +export function SidebarNodeRenderer(props: { node: FlowNodeEntity }) { + const { node } = props; + const nodeRender = useNodeRender(node); + + return ( + +
+ {nodeRender.form?.render()} +
+
+ ); +} diff --git a/src/pages/scenario/flowgram/components/sidebar/sidebar-renderer.tsx b/src/pages/scenario/flowgram/components/sidebar/sidebar-renderer.tsx new file mode 100644 index 00000000..eba051bf --- /dev/null +++ b/src/pages/scenario/flowgram/components/sidebar/sidebar-renderer.tsx @@ -0,0 +1,90 @@ +import { useCallback, useEffect, startTransition } from 'react'; + +import { type PanelFactory, usePanelManager } from '@flowgram.ai/panel-manager-plugin'; +import { + PlaygroundEntityContext, + useRefresh, + useClientContext, +} from '@flowgram.ai/fixed-layout-editor'; + +import { FlowNodeMeta } from '../../typings'; +import { IsSidebarContext } from '../../context'; +import { SidebarNodeRenderer } from './sidebar-node-renderer'; + +export interface NodeFormPanelProps { + nodeId: string; +} + +export const SidebarRenderer: React.FC = ({ nodeId }) => { + const panelManager = usePanelManager(); + const { selection, playground, document } = useClientContext(); + const refresh = useRefresh(); + const handleClose = useCallback(() => { + // Sidebar delayed closing + startTransition(() => { + panelManager.close(nodeFormPanelFactory.key); + }); + }, []); + const node = nodeId ? document.getNode(nodeId) : undefined; + /** + * Listen readonly + */ + useEffect(() => { + const disposable = playground.config.onReadonlyOrDisabledChange(() => { + handleClose(); + refresh(); + }); + return () => disposable.dispose(); + }, [playground]); + /** + * Listen selection + */ + useEffect(() => { + const toDispose = selection.onSelectionChanged(() => { + /** + * 如果没有选中任何节点,则自动关闭侧边栏 + * If no node is selected, the sidebar is automatically closed + */ + if (selection.selection.length === 0) { + handleClose(); + } else if (selection.selection.length === 1 && selection.selection[0] !== node) { + handleClose(); + } + }); + return () => toDispose.dispose(); + }, [selection, handleClose, node]); + /** + * Close when node disposed + */ + useEffect(() => { + if (node) { + const toDispose = node.onDispose(() => { + panelManager.close(nodeFormPanelFactory.key); + }); + return () => toDispose.dispose(); + } + return () => {}; + }, [node]); + + if (!node || node.getNodeMeta().sidebarDisabled === true) { + return null; + } + + if (playground.config.readonly) { + return null; + } + + return ( + + + + + + ); +}; + +export const nodeFormPanelFactory: PanelFactory = { + key: 'node-form-panel', + defaultSize: 400, + render: (props: NodeFormPanelProps) => , +}; diff --git a/src/pages/scenario/flowgram/components/tools/add-node-dropdown.tsx b/src/pages/scenario/flowgram/components/tools/add-node-dropdown.tsx deleted file mode 100644 index 7bd5931f..00000000 --- a/src/pages/scenario/flowgram/components/tools/add-node-dropdown.tsx +++ /dev/null @@ -1,93 +0,0 @@ -/** - * Add Node dropdown component - */ - -import React from 'react'; -import { Button, Dropdown, Menu } from 'antd'; -import { - PlusOutlined, - ApiOutlined, - CodeOutlined, - BranchesOutlined, - ClockCircleOutlined, - SyncOutlined, -} from '@ant-design/icons'; -import { usePlayground } from '@flowgram.ai/free-layout-editor'; -import { nanoid } from 'nanoid'; -import intl from 'react-intl-universal'; - -export const AddNodeDropdown: React.FC = () => { - const playground = usePlayground(); - - const handleAddNode = (type: string) => { - // Get center of viewport - const viewport = playground.viewport.getViewport(); - const centerX = viewport.x + viewport.width / 2; - const centerY = viewport.y + viewport.height / 2; - - // Add node at center - const nodeId = nanoid(); - playground.nodeService.createNode({ - id: nodeId, - type, - x: centerX - 140, // Offset to center the node (280px width / 2) - y: centerY - 60, // Offset to center the node (120px height / 2) - width: type === 'start' || type === 'end' ? 120 : 280, - height: type === 'delay' || type === 'loop' ? 100 : 120, - }); - }; - - const menu = ( - , - onClick: () => handleAddNode('http'), - }, - { - key: 'script', - label: intl.get('scenario_script_node'), - icon: , - onClick: () => handleAddNode('script'), - }, - { - key: 'condition', - label: intl.get('scenario_condition_node'), - icon: , - onClick: () => handleAddNode('condition'), - }, - { - key: 'delay', - label: intl.get('scenario_delay_node'), - icon: , - onClick: () => handleAddNode('delay'), - }, - { - key: 'loop', - label: intl.get('scenario_loop_node'), - icon: , - onClick: () => handleAddNode('loop'), - }, - ]} - /> - ); - - return ( - - - - ); -}; diff --git a/src/pages/scenario/flowgram/components/tools/fit-view.tsx b/src/pages/scenario/flowgram/components/tools/fit-view.tsx new file mode 100644 index 00000000..cd22f0a8 --- /dev/null +++ b/src/pages/scenario/flowgram/components/tools/fit-view.tsx @@ -0,0 +1,11 @@ +import { ExpandOutlined } from '@ant-design/icons'; +import { Button, Tooltip } from 'antd'; + +export const FitView = (props: { fitView: () => void }) => ( + + + ); +} diff --git a/src/pages/scenario/flowgram/components/tools/save.tsx b/src/pages/scenario/flowgram/components/tools/save.tsx new file mode 100644 index 00000000..f94aa2fd --- /dev/null +++ b/src/pages/scenario/flowgram/components/tools/save.tsx @@ -0,0 +1,56 @@ +import { useState, useEffect, useCallback } from 'react'; + +import { useClientContext, FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor'; +import { Button, Badge } from 'antd'; + +export function Save(props: { disabled: boolean }) { + const [errorCount, setErrorCount] = useState(0); + const clientContext = useClientContext(); + + const updateValidateData = useCallback(() => { + const allForms = clientContext.document.getAllNodes().map((node) => node.form); + const count = allForms.filter((form) => form?.state.invalid).length; + setErrorCount(count); + }, [clientContext]); + + /** + * Validate all node and Save + */ + const onSave = useCallback(async () => { + const allForms = clientContext.document.getAllNodes().map((node) => node.form); + await Promise.all(allForms.map(async (form) => form?.validate())); + console.log('>>>>> save data: ', clientContext.document.toJSON()); + }, [clientContext]); + + useEffect(() => { + /** + * Listen single node validate + */ + const listenSingleNodeValidate = (node: FlowNodeEntity) => { + const form = node.form; + if (form) { + const formValidateDispose = form.onValidate(() => updateValidateData()); + node.onDispose(() => formValidateDispose.dispose()); + } + }; + clientContext.document.getAllNodes().map((node) => listenSingleNodeValidate(node)); + const dispose = clientContext.document.onNodeCreate(({ node }) => + listenSingleNodeValidate(node) + ); + return () => dispose.dispose(); + }, [clientContext]); + if (errorCount === 0) { + return ( + + ); + } + return ( + + + + ); +} diff --git a/src/pages/scenario/flowgram/components/tools/styles.tsx b/src/pages/scenario/flowgram/components/tools/styles.tsx index d17f2b1d..e3efb135 100644 --- a/src/pages/scenario/flowgram/components/tools/styles.tsx +++ b/src/pages/scenario/flowgram/components/tools/styles.tsx @@ -1,18 +1,14 @@ -/** - * Styled components for Flowgram tools - */ - import styled from 'styled-components'; export const ToolContainer = styled.div` position: absolute; bottom: 16px; - left: 16px; display: flex; justify-content: left; min-width: 360px; pointer-events: none; gap: 8px; + z-index: 20; `; @@ -27,28 +23,18 @@ export const ToolSection = styled.div` height: 40px; padding: 0 4px; pointer-events: auto; - - .ant-btn { - border: none; - box-shadow: none; - - &:hover { - background-color: rgba(0, 0, 0, 0.04); - } - } `; export const SelectZoom = styled.span` - padding: 4px 8px; + padding: 2px; border-radius: 8px; border: 1px solid rgba(68, 83, 130, 0.25); font-size: 12px; - min-width: 60px; - text-align: center; - cursor: pointer; - user-select: none; - - &:hover { - background-color: rgba(0, 0, 0, 0.04); - } + width: 40px; +`; + +export const MinimapContainer = styled.div` + position: absolute; + bottom: 60px; + width: 198px; `; diff --git a/src/pages/scenario/flowgram/components/tools/switch-vertical.tsx b/src/pages/scenario/flowgram/components/tools/switch-vertical.tsx new file mode 100644 index 00000000..68fed36d --- /dev/null +++ b/src/pages/scenario/flowgram/components/tools/switch-vertical.tsx @@ -0,0 +1,23 @@ +import { CloudServerOutlined } from '@ant-design/icons'; +import { usePlaygroundTools } from '@flowgram.ai/fixed-layout-editor'; +import { Button, Tooltip } from 'antd'; + +export const SwitchVertical = () => { + const tools = usePlaygroundTools(); + return ( + + + + )} + + ); +}; diff --git a/src/pages/scenario/flowgram/form-components/properties-edit/property-edit.tsx b/src/pages/scenario/flowgram/form-components/properties-edit/property-edit.tsx new file mode 100644 index 00000000..b789fe92 --- /dev/null +++ b/src/pages/scenario/flowgram/form-components/properties-edit/property-edit.tsx @@ -0,0 +1,76 @@ +import React, { useState, useLayoutEffect } from 'react'; + +import { TypeSelector, DynamicValueInput } from '@flowgram.ai/form-materials'; +import { Input, Button } from 'antd'; + +import { JsonSchema } from '../../typings'; +import { LeftColumn, Row } from './styles'; +import { DeleteOutlined } from '@ant-design/icons'; + +export interface PropertyEditProps { + propertyKey: string; + value: JsonSchema; + useFx?: boolean; + disabled?: boolean; + onChange: (value: JsonSchema, propertyKey: string, newPropertyKey?: string) => void; + onDelete?: () => void; +} + +export const PropertyEdit: React.FC = (props) => { + const { value, disabled } = props; + const [inputKey, updateKey] = useState(props.propertyKey); + const updateProperty = (key: keyof JsonSchema, val: any) => { + value[key] = val; + props.onChange(value, props.propertyKey); + }; + + const partialUpdateProperty = (val?: Partial) => { + props.onChange({ ...value, ...val }, props.propertyKey); + }; + + useLayoutEffect(() => { + updateKey(props.propertyKey); + }, [props.propertyKey]); + return ( + + + partialUpdateProperty(val)} + /> + updateKey(v.trim())} + onBlur={() => { + if (inputKey !== '') { + props.onChange(value, props.propertyKey, inputKey); + } else { + updateKey(props.propertyKey); + } + }} + style={{ paddingLeft: 26 }} + /> + + { + updateProperty('default', val)} + schema={value} + style={{ flexGrow: 1 }} + /> + } + {props.onDelete && !disabled && ( + - - - - - - - - - ); -}; diff --git a/src/pages/scenario/flowgram/plugins/tools-plugin/index.tsx b/src/pages/scenario/flowgram/plugins/tools-plugin/index.tsx deleted file mode 100644 index 784e35e4..00000000 --- a/src/pages/scenario/flowgram/plugins/tools-plugin/index.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import { createPlugin } from '@flowgram.ai/free-layout-editor'; -import { DemoTools } from './DemoTools'; - -export const createToolsPlugin = () => { - return createPlugin({ - name: 'tools-plugin', - layer: () => , - }); -}; diff --git a/src/pages/scenario/flowgram/plugins/tools-plugin/styles.less b/src/pages/scenario/flowgram/plugins/tools-plugin/styles.less deleted file mode 100644 index cfed499a..00000000 --- a/src/pages/scenario/flowgram/plugins/tools-plugin/styles.less +++ /dev/null @@ -1,108 +0,0 @@ -.demo-tools { - position: absolute; - top: 16px; - left: 50%; - transform: translateX(-50%); - z-index: 1000; - background: #fff; - border-radius: 8px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - padding: 4px 8px; - display: flex; - align-items: center; - gap: 4px; - - .demo-tools-section { - display: flex; - align-items: center; - gap: 4px; - } - - .demo-tools-button { - width: 36px; - height: 36px; - display: flex; - align-items: center; - justify-content: center; - border: none; - background: transparent; - color: rgba(0, 0, 0, 0.65); - cursor: pointer; - border-radius: 4px; - transition: all 0.2s; - - &:hover:not(:disabled) { - background: rgba(0, 0, 0, 0.06); - color: rgba(0, 0, 0, 0.85); - } - - &:disabled { - color: rgba(0, 0, 0, 0.25); - cursor: not-allowed; - } - } - - .demo-tools-zoom { - min-width: 56px; - font-size: 14px; - font-weight: 500; - } - - .demo-tools-divider { - width: 1px; - height: 24px; - background: rgba(0, 0, 0, 0.1); - margin: 0 4px; - } - - // Minimap container in toolbar (Feedback #3) - .demo-tools-minimap { - display: flex; - align-items: center; - margin: 0 4px; - } - - .demo-tools-add-button { - height: 36px; - padding: 0 16px; - border-radius: 4px; - font-weight: 500; - display: flex; - align-items: center; - gap: 6px; - } - - .demo-tools-run-button { - height: 36px; - padding: 0 16px; - border-radius: 4px; - font-weight: 500; - display: flex; - align-items: center; - gap: 6px; - margin-left: 4px; - } -} - -// Dark mode support -html[data-theme='dark'] .demo-tools { - background: #1f1f1f; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45); - - .demo-tools-button { - color: rgba(255, 255, 255, 0.65); - - &:hover:not(:disabled) { - background: rgba(255, 255, 255, 0.08); - color: rgba(255, 255, 255, 0.85); - } - - &:disabled { - color: rgba(255, 255, 255, 0.25); - } - } - - .demo-tools-divider { - background: rgba(255, 255, 255, 0.15); - } -} diff --git a/src/pages/scenario/flowgram/services/custom-service.ts b/src/pages/scenario/flowgram/services/custom-service.ts new file mode 100644 index 00000000..b4c953f8 --- /dev/null +++ b/src/pages/scenario/flowgram/services/custom-service.ts @@ -0,0 +1,42 @@ +import { injectable, inject } from '@flowgram.ai/fixed-layout-editor'; +import { + FixedLayoutPluginContext, + SelectionService, + Playground, + FlowDocument, +} from '@flowgram.ai/fixed-layout-editor'; + +/** + * Docs: https://inversify.io/docs/introduction/getting-started/ + * Warning: Use decorator legacy + * // rsbuild.config.ts + * { + * source: { + * decorators: { + * version: 'legacy' + * } + * } + * } + * Usage: + * 1. + * const myService = useService(CustomService) + * myService.save() + * 2. + * const myService = useClientContext().get(CustomService) + * 3. + * const myService = node.getService(CustomService) + */ +@injectable() +export class CustomService { + @inject(FixedLayoutPluginContext) ctx: FixedLayoutPluginContext; + + @inject(SelectionService) selectionService: SelectionService; + + @inject(Playground) playground: Playground; + + @inject(FlowDocument) document: FlowDocument; + + save() { + console.log(this.document.toJSON()); + } +} diff --git a/src/pages/scenario/flowgram/services/index.ts b/src/pages/scenario/flowgram/services/index.ts new file mode 100644 index 00000000..01db6d60 --- /dev/null +++ b/src/pages/scenario/flowgram/services/index.ts @@ -0,0 +1 @@ +export { CustomService } from './custom-service'; diff --git a/src/pages/scenario/flowgram/shortcuts/constants.ts b/src/pages/scenario/flowgram/shortcuts/constants.ts new file mode 100644 index 00000000..3df90c87 --- /dev/null +++ b/src/pages/scenario/flowgram/shortcuts/constants.ts @@ -0,0 +1,15 @@ +export enum FlowCommandId { + COPY = 'COPY', + PASTE = 'PASTE', + CUT = 'CUT', + GROUP = 'GROUP', + UNGROUP = 'UNGROUP', + COLLAPSE = 'COLLPASE', + EXPAND = 'EXPAND', + DELETE = 'DELETE', + ZOOM_IN = 'ZOOM_IN', + ZOOM_OUT = 'ZOOM_OUT', + RESET_ZOOM = 'RESET_ZOOM', + SELECT_ALL = 'SELECT_ALL', + CANCEL_SELECT = 'CANCEL_SELECT', +} diff --git a/src/pages/scenario/flowgram/shortcuts/index.ts b/src/pages/scenario/flowgram/shortcuts/index.ts new file mode 100644 index 00000000..8b63ee99 --- /dev/null +++ b/src/pages/scenario/flowgram/shortcuts/index.ts @@ -0,0 +1,239 @@ +import { nanoid } from 'nanoid'; +import { + CommandRegistry, + type FixedLayoutPluginContext, + FlowGroupService, + FlowNodeBaseType, + FlowNodeEntity, + FlowNodeRenderData, + type ShortcutsRegistry, +} from '@flowgram.ai/fixed-layout-editor'; +import { message } from 'antd'; + +import { writeData } from './utils'; +import { FlowCommandId } from './constants'; + +type ShortcutGetter = ( + ctx: FixedLayoutPluginContext +) => Parameters[0]; + +const copy: ShortcutGetter = (ctx) => { + const selection = ctx.selection; + const clipboard = ctx.clipboard; + + return { + commandId: FlowCommandId.COPY, + shortcuts: ['meta c', 'ctrl c'], + isEnabled: (node) => + (selection?.selection.length > 0 || node instanceof FlowNodeEntity) && + !ctx.playground.config.readonlyOrDisabled, + execute: (node) => { + const nodes = + node instanceof FlowNodeEntity + ? [node] + : (selection.selection.filter( + (_entity) => _entity instanceof FlowNodeEntity + ) as FlowNodeEntity[]); + const originNodes = nodes.map((n) => ({ + ...n.toJSON(), + id: `${n.flowNodeType}_${nanoid()}`, + })); + + writeData(originNodes, clipboard); + message.success({ + content: 'Copied. You can move to any [+] to paste.', + }); + }, + }; +}; + +const cut: ShortcutGetter = (ctx) => { + const selection = ctx.selection; + + const commandRegistry = ctx.get(CommandRegistry); + + return { + commandId: FlowCommandId.CUT, + commandDetail: { + label: 'Cut', + }, + shortcuts: ['meta x', 'ctrl x'], + isEnabled: () => selection.selection.length > 0 && !ctx.playground.config.readonlyOrDisabled, + execute: () => { + // nodeService.copyNodes( + // selection.selection.filter( + // _entity => _entity instanceof FlowNodeEntity, + // ) as FlowNodeEntity[], + // ); + + message.success({ + content: 'Cut. You can move to any [+] to paste.', + }); + + commandRegistry.executeCommand(FlowCommandId.DELETE); + }, + }; +}; + +const zoomIn: ShortcutGetter = (ctx) => { + const config = ctx.playground.config; + + return { + commandId: FlowCommandId.ZOOM_IN, + shortcuts: ['meta =', 'ctrl ='], + execute: () => { + config.zoomin(); + }, + }; +}; + +const zoomOut: ShortcutGetter = (ctx) => { + const config = ctx.playground.config; + + return { + commandId: FlowCommandId.ZOOM_OUT, + shortcuts: ['meta -', 'ctrl -'], + execute: () => { + config.zoomout(); + }, + }; +}; + +const resetZoom: ShortcutGetter = (ctx) => ({ + commandId: FlowCommandId.RESET_ZOOM, + commandDetail: { + label: 'Reset Zoom', + }, + shortcuts: ['meta 0', 'ctrl 0'], + execute: () => { + ctx.playground.config.updateZoom(1); + }, +}); + +const group: ShortcutGetter = (ctx) => ({ + commandId: FlowCommandId.GROUP, + commandDetail: { + label: 'Create Group', + }, + shortcuts: ['meta g', 'ctrl g'], + isEnabled: () => !ctx.playground.config.readonlyOrDisabled, + + execute: () => { + const groupService = ctx.get(FlowGroupService); + const selection = ctx.playground.selectionService; + + groupService.createGroup( + selection.selection.filter((_entity) => _entity instanceof FlowNodeEntity) as FlowNodeEntity[] + ); + + ctx.playground.selectionService.selection = []; + }, +}); + +const selectAll: ShortcutGetter = (ctx) => ({ + commandId: FlowCommandId.SELECT_ALL, + commandDetail: { + label: 'Select All', + }, + shortcuts: ['meta a', 'ctrl a'], + isEnabled: () => !ctx.playground.config.readonlyOrDisabled, + execute: () => { + const allNodes = (ctx.document.root.children || []).filter( + (node) => node.flowNodeType !== 'start' && node.flowNodeType !== 'end' + ); + + ctx.playground.selectionService.selection = allNodes; + }, +}); + +const cancelSelect: ShortcutGetter = (ctx) => ({ + commandId: FlowCommandId.CANCEL_SELECT, + commandDetail: { + label: 'Cancel Select', + }, + shortcuts: ['esc'], + execute: () => { + ctx.playground.selectionService.selection = []; + }, +}); + +const collapse: ShortcutGetter = (ctx) => ({ + commandId: FlowCommandId.COLLAPSE, + commandDetail: { + label: 'Collapse', + }, + shortcuts: ['meta alt openbracket', 'ctrl alt openbracket'], + isEnabled: () => !ctx.playground.config.readonlyOrDisabled, + execute: () => { + const selection = ctx.selection; + + const selectNodes = selection.selection.filter( + (_entity) => _entity instanceof FlowNodeEntity + ) as FlowNodeEntity[]; + + selectNodes + .map((_node) => [_node, ..._node.allCollapsedChildren]) + .flat() + .forEach((node) => { + const renderData = node.getData(FlowNodeRenderData); + + if ( + node.firstChild && + [FlowNodeBaseType.BLOCK_ICON, FlowNodeBaseType.BLOCK_ORDER_ICON].includes( + node.firstChild.flowNodeType as FlowNodeBaseType + ) + ) { + node.collapsed = true; + } + + renderData.expanded = false; + }); + }, +}); + +const expand: ShortcutGetter = (ctx) => ({ + commandId: FlowCommandId.EXPAND, + commandDetail: { + label: 'Expand', + }, + shortcuts: ['meta alt closebracket', 'ctrol alt openbracket'], + isEnabled: () => !ctx.playground.config.readonlyOrDisabled, + execute: () => { + const selection = ctx.selection; + + const selectNodes = selection.selection.filter( + (_entity) => _entity instanceof FlowNodeEntity + ) as FlowNodeEntity[]; + + selectNodes + .map((_node) => [_node, ..._node.allCollapsedChildren]) + .flat() + .forEach((node) => { + const renderData = node.getData(FlowNodeRenderData); + + if ( + node.firstChild && + [FlowNodeBaseType.BLOCK_ICON, FlowNodeBaseType.BLOCK_ORDER_ICON].includes( + node.firstChild.flowNodeType as FlowNodeBaseType + ) + ) { + node.collapsed = false; + } + + renderData.expanded = true; + }); + }, +}); + +export const shortcutGetter: ShortcutGetter[] = [ + copy, + cut, + selectAll, + cancelSelect, + zoomIn, + zoomOut, + resetZoom, + group, + collapse, + expand, +]; diff --git a/src/pages/scenario/flowgram/shortcuts/utils.ts b/src/pages/scenario/flowgram/shortcuts/utils.ts new file mode 100644 index 00000000..fddceebb --- /dev/null +++ b/src/pages/scenario/flowgram/shortcuts/utils.ts @@ -0,0 +1,51 @@ +import { ClipboardService } from '@flowgram.ai/fixed-layout-editor'; + +export const readData = async (clipboard: ClipboardService) => { + let str: string = ''; + str = (await clipboard.readText()) || ''; + + try { + const data = JSON.parse(str); + return data; + } catch (error) { + return ''; + } +}; + +export const writeData = async (newData: any, clipboard: ClipboardService) => { + const data: any = newData; + + const newStrData = JSON.stringify(data); + + const oldSaveData = await navigator.clipboard.readText(); + + if (oldSaveData !== newStrData) { + if (navigator.clipboard && window.isSecureContext) { + await navigator.clipboard.writeText(newStrData); + const event = new Event('onchange'); + (event as unknown as { value: string }).value = newStrData; + navigator.clipboard.dispatchEvent(event); + } else { + const textarea = document.createElement('textarea'); + textarea.value = newStrData; + + textarea.style.display = 'absolute'; + textarea.style.left = '-99999999px'; + + document.body.prepend(textarea); + + // highlight the content of the textarea element + textarea.select(); + + try { + document.execCommand('copy'); + } catch (err) { + console.log(err); + } finally { + textarea.remove(); + } + } + + clipboard.writeText(newStrData); + } +}; diff --git a/src/pages/scenario/flowgram/typings/index.ts b/src/pages/scenario/flowgram/typings/index.ts new file mode 100644 index 00000000..e2dd6769 --- /dev/null +++ b/src/pages/scenario/flowgram/typings/index.ts @@ -0,0 +1,2 @@ +export * from './node'; +export * from './json-schema'; diff --git a/src/pages/scenario/flowgram/typings/json-schema.ts b/src/pages/scenario/flowgram/typings/json-schema.ts new file mode 100644 index 00000000..5882cc74 --- /dev/null +++ b/src/pages/scenario/flowgram/typings/json-schema.ts @@ -0,0 +1,4 @@ +import type { IJsonSchema, JsonSchemaBasicType } from '@flowgram.ai/form-materials'; + +export type BasicType = JsonSchemaBasicType; +export type JsonSchema = IJsonSchema; diff --git a/src/pages/scenario/flowgram/typings/node.ts b/src/pages/scenario/flowgram/typings/node.ts new file mode 100644 index 00000000..05318b95 --- /dev/null +++ b/src/pages/scenario/flowgram/typings/node.ts @@ -0,0 +1,66 @@ +import { IFlowValue } from '@flowgram.ai/form-materials'; +import { + FlowNodeJSON as FlowNodeJSONDefault, + FlowNodeRegistry as FlowNodeRegistryDefault, + FixedLayoutPluginContext, + FlowNodeEntity, + FlowNodeMeta as FlowNodeMetaDefault, +} from '@flowgram.ai/fixed-layout-editor'; + +import { type JsonSchema } from './json-schema'; + +/** + * You can customize the data of the node, and here you can use JsonSchema to define the input and output of the node + * 你可以自定义节点的 data 业务数据, 这里演示 通过 JsonSchema 来定义节点的输入/输出 + */ +export interface FlowNodeJSON extends FlowNodeJSONDefault { + data: { + /** + * Node title + */ + title?: string; + /** + * Inputs data values + */ + inputsValues?: Record; + /** + * Define the inputs data of the node by JsonSchema + */ + inputs?: JsonSchema; + /** + * Define the outputs data of the node by JsonSchema + */ + outputs?: JsonSchema; + /** + * Rest properties + */ + [key: string]: any; + }; +} + +/** + * You can customize your own node meta + * 你可以自定义节点的meta + */ +export interface FlowNodeMeta extends FlowNodeMetaDefault { + sidebarDisable?: boolean; + style?: React.CSSProperties; +} +/** + * You can customize your own node registry + * 你可以自定义节点的注册器 + */ +export interface FlowNodeRegistry extends FlowNodeRegistryDefault { + meta?: FlowNodeMeta; + info: { + icon: string; + description: string; + }; + canAdd?: (ctx: FixedLayoutPluginContext, from: FlowNodeEntity) => boolean; + canDelete?: (ctx: FixedLayoutPluginContext, from: FlowNodeEntity) => boolean; + onAdd?: (ctx: FixedLayoutPluginContext, from: FlowNodeEntity) => FlowNodeJSON; +} + +export type FlowDocumentJSON = { + nodes: FlowNodeJSON[]; +}; diff --git a/src/pages/scenario/workflowEditorModal.tsx b/src/pages/scenario/workflowEditorModal.tsx index fcb6a271..9917a3c1 100644 --- a/src/pages/scenario/workflowEditorModal.tsx +++ b/src/pages/scenario/workflowEditorModal.tsx @@ -2,7 +2,7 @@ import React, { useRef, useState, useEffect } from 'react'; import { Modal, message } from 'antd'; import intl from 'react-intl-universal'; import { WorkflowGraph } from './type'; -import FlowgramEditor, { FlowgramEditorRef } from './flowgram/FlowgramEditor'; +import { Editor } from './flowgram/editor'; import './workflowEditor.less'; interface WorkflowEditorModalProps { @@ -18,7 +18,6 @@ const WorkflowEditorModal: React.FC = ({ onOk, onCancel, }) => { - const editorRef = useRef(null); const [editorData, setEditorData] = useState(null); useEffect(() => { @@ -51,13 +50,13 @@ const WorkflowEditorModal: React.FC = ({ }, [visible, workflowGraph]); const handleOk = () => { - if (!editorRef.current) { - message.warning(intl.get('工作流至少需要一个节点')); - return; - } + // if (!editorRef.current) { + // message.warning(intl.get('工作流至少需要一个节点')); + // return; + // } + + const data = []; - const data = editorRef.current.getData(); - // Convert Flowgram format back to our WorkflowGraph format const workflowGraph: WorkflowGraph = { nodes: data.nodes?.map((node: any) => ({ @@ -99,13 +98,11 @@ const WorkflowEditorModal: React.FC = ({ cancelText={intl.get('取消')} destroyOnClose > - {visible && editorData && ( - - )} + ); };