mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-22 04:21:56 +03:00
2f79104bdb
Support issue [BS-2085](https://linear.app/affine-design/issue/BS-2085). ### What changed? - Refactor the `actionToAnswerRenderer` function to support reuse in both page mode and edgeless mode. - Add a new `page-response.ts` module to handle AI-generated answers in page mode. - Remove the redundant `edgelessHandler` function from `_common/config.ts`. - Introduce the `AIContext` class along with the `ctx` TypeScript type to standardize context management. - Implement the `createTemplateJob` function to enable AI slide insertion in both page mode and edgeless mode. Insert mindmap on page mode: <div class='graphite__hidden'> <div>🎥 Video uploaded on Graphite:</div> <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/30630d3e-ebd9-416b-9bb9-5f27086e48a3.mov"> <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/30630d3e-ebd9-416b-9bb9-5f27086e48a3.mov"> </a> </div> <video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/30630d3e-ebd9-416b-9bb9-5f27086e48a3.mov">mindmap.mov</video> Insert image on edgeless note <div class='graphite__hidden'> <div>🎥 Video uploaded on Graphite:</div> <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/b850ee5a-a06b-4ae7-8b68-ed5929a6e81a.mov"> <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/b850ee5a-a06b-4ae7-8b68-ed5929a6e81a.mov"> </a> </div> <video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/b850ee5a-a06b-4ae7-8b68-ed5929a6e81a.mov">image3.mov</video> Insert image on page mode: <div class='graphite__hidden'> <div>🎥 Video uploaded on Graphite:</div> <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/c4f98e2d-0b15-4310-b3e0-0725e330302b.mov"> <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/c4f98e2d-0b15-4310-b3e0-0725e330302b.mov"> </a> </div> <video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/c4f98e2d-0b15-4310-b3e0-0725e330302b.mov">image.mov</video> Generate image from image: <div class='graphite__hidden'> <div>🎥 Video uploaded on Graphite:</div> <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/2776a55f-cbb7-47ce-8e7d-7cae243fa3e9.mov"> <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/2776a55f-cbb7-47ce-8e7d-7cae243fa3e9.mov"> </a> </div> <video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/2776a55f-cbb7-47ce-8e7d-7cae243fa3e9.mov">image2.mov</video> Insert presentation on page mode: <div class='graphite__hidden'> <div>🎥 Video uploaded on Graphite:</div> <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/4e228fa5-88f4-478c-8b79-647612d5515c.mov"> <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/4e228fa5-88f4-478c-8b79-647612d5515c.mov"> </a> </div> <video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/4e228fa5-88f4-478c-8b79-647612d5515c.mov">ppt.mov</video> Insert make it real on page mode: <div class='graphite__hidden'> <div>🎥 Video uploaded on Graphite:</div> <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/c71139b2-fb55-4d89-84e2-d52eeb905b57.mov"> <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/c71139b2-fb55-4d89-84e2-d52eeb905b57.mov"> </a> </div> <video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/c71139b2-fb55-4d89-84e2-d52eeb905b57.mov">make it real.mov</video>
91 lines
2.9 KiB
JSON
91 lines
2.9 KiB
JSON
{
|
|
"name": "@affine/component",
|
|
"private": true,
|
|
"main": "./src/index.ts",
|
|
"exports": {
|
|
".": "./src/index.ts",
|
|
"./theme": "./src/theme/index.ts",
|
|
"./ui/*": "./src/ui/*/index.ts",
|
|
"./*": "./src/components/*/index.tsx"
|
|
},
|
|
"scripts": {
|
|
"dev": "storybook dev -p 6006",
|
|
"build:storybook": "storybook build"
|
|
},
|
|
"peerDependencies": {
|
|
"@blocksuite/affine": "*",
|
|
"@blocksuite/icons": "2.1.72",
|
|
"@swc/core": "^1.0.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0"
|
|
},
|
|
"dependencies": {
|
|
"@affine/cli": "workspace:*",
|
|
"@affine/debug": "workspace:*",
|
|
"@affine/electron-api": "workspace:*",
|
|
"@affine/graphql": "workspace:*",
|
|
"@affine/i18n": "workspace:*",
|
|
"@atlaskit/pragmatic-drag-and-drop": "patch:@atlaskit/pragmatic-drag-and-drop@npm%3A1.4.0#~/.yarn/patches/@atlaskit-pragmatic-drag-and-drop-npm-1.4.0-75c45f52d3.patch",
|
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
|
|
"@blocksuite/icons": "2.1.75",
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.0",
|
|
"@radix-ui/react-avatar": "^1.1.2",
|
|
"@radix-ui/react-collapsible": "^1.1.2",
|
|
"@radix-ui/react-dialog": "^1.1.3",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.3",
|
|
"@radix-ui/react-popover": "^1.1.3",
|
|
"@radix-ui/react-progress": "^1.1.1",
|
|
"@radix-ui/react-radio-group": "^1.2.2",
|
|
"@radix-ui/react-scroll-area": "^1.2.2",
|
|
"@radix-ui/react-slider": "^1.2.2",
|
|
"@radix-ui/react-slot": "^1.1.1",
|
|
"@radix-ui/react-tabs": "^1.1.2",
|
|
"@radix-ui/react-toast": "^1.2.3",
|
|
"@radix-ui/react-tooltip": "^1.1.5",
|
|
"@radix-ui/react-visually-hidden": "^1.1.1",
|
|
"@toeverything/theme": "^1.1.1",
|
|
"@vanilla-extract/dynamic": "^2.1.2",
|
|
"check-password-strength": "^2.0.10",
|
|
"clsx": "^2.1.1",
|
|
"dayjs": "^1.11.13",
|
|
"jotai": "^2.10.3",
|
|
"lit": "^3.2.1",
|
|
"lodash-es": "^4.17.21",
|
|
"lottie-react": "^2.4.0",
|
|
"lottie-web": "^5.12.2",
|
|
"nanoid": "^5.0.9",
|
|
"next-themes": "^0.4.4",
|
|
"react": "19.0.0",
|
|
"react-dom": "19.0.0",
|
|
"react-paginate": "^8.2.0",
|
|
"react-router-dom": "^6.28.0",
|
|
"react-transition-state": "^2.2.0",
|
|
"sonner": "^1.7.1",
|
|
"swr": "^2.2.5",
|
|
"zod": "^3.24.1"
|
|
},
|
|
"devDependencies": {
|
|
"@blocksuite/affine": "0.19.1",
|
|
"@blocksuite/icons": "2.1.75",
|
|
"@chromatic-com/storybook": "^3.2.2",
|
|
"@storybook/addon-essentials": "^8.4.7",
|
|
"@storybook/addon-interactions": "^8.4.7",
|
|
"@storybook/addon-links": "^8.4.7",
|
|
"@storybook/addon-mdx-gfm": "^8.4.7",
|
|
"@storybook/react": "^8.4.7",
|
|
"@storybook/react-vite": "^8.4.7",
|
|
"@testing-library/dom": "^10.4.0",
|
|
"@testing-library/react": "^16.1.0",
|
|
"@types/react": "^19.0.1",
|
|
"@types/react-dom": "^19.0.2",
|
|
"@vanilla-extract/css": "^1.16.1",
|
|
"storybook": "^8.4.7",
|
|
"typescript": "^5.7.2",
|
|
"unplugin-swc": "^1.5.1",
|
|
"vite": "^6.0.3",
|
|
"vitest": "2.1.8"
|
|
},
|
|
"version": "0.18.0"
|
|
}
|