From b16390dd41cf9bad3ad762bcda5c052a0e425089 Mon Sep 17 00:00:00 2001 From: Qiufeng Date: Wed, 2 Sep 2026 21:09:47 +0800 Subject: [PATCH] feat: integrate platform backend and application interfaces --- .env.example | 32 + AGENTS.md | 26 +- CHANGELOG.md | 738 +- Dockerfile | 8 +- README.md | 45 +- admin-plan.md | 504 + admin/CHANGELOG.md | 127 +- admin/README-zh_CN.md | 98 +- admin/README.md | 104 +- admin/index.html | 4 +- admin/mock/api/getList.js | 28 - admin/mock/index.js | 3 - admin/package-lock.json | 315 +- admin/package.json | 18 +- .../assets/image/admin-login-background.webp | Bin 0 -> 167526 bytes admin/src/assets/svg/assets-product-1.svg | 5 - admin/src/assets/svg/assets-product-2.svg | 5 - admin/src/assets/svg/assets-product-3.svg | 5 - admin/src/assets/svg/assets-product-4.svg | 5 - .../assets-result-browser-incompatible.svg | 33 - .../assets/svg/assets-result-maintenance.svg | 49 - .../svg/assets-result-network-error.svg | 23 - admin/src/components/Board/index.module.less | 14 +- admin/src/components/Board/index.tsx | 16 +- admin/src/components/DatePicker/index.tsx | 25 +- admin/src/components/ErrorPage/index.tsx | 47 +- admin/src/components/LineIcons.LICENSE.txt | 22 + admin/src/components/LineIcons.jsx | 113 + admin/src/configs/color.ts | 2 + admin/src/configs/host.ts | 22 - admin/src/global.d.ts | 3 +- admin/src/hooks/useDynamicChart.ts | 47 +- .../layouts/components/AppLayout.module.less | 15 + admin/src/layouts/components/AppLayout.tsx | 4 +- admin/src/layouts/components/AppRouter.tsx | 83 +- admin/src/layouts/components/Footer.tsx | 5 +- .../components/Header/HeaderIcon.module.less | 42 +- .../layouts/components/Header/HeaderIcon.tsx | 89 +- .../components/Header/Search.module.less | 14 - .../src/layouts/components/Header/Search.tsx | 8 - .../components/Header/index.module.less | 24 + admin/src/layouts/components/Header/index.tsx | 14 +- admin/src/layouts/components/Menu.module.less | 81 +- admin/src/layouts/components/Menu.tsx | 164 +- admin/src/layouts/components/MenuLogo.tsx | 14 +- admin/src/layouts/components/Page.module.less | 6 + admin/src/layouts/components/Page.tsx | 3 +- .../components/Setting/RadioColor.module.less | 5 + .../layouts/components/Setting/RadioColor.tsx | 68 +- .../components/Setting/RadioRect.module.less | 11 +- .../layouts/components/Setting/RadioRect.tsx | 60 +- .../components/Setting/index.module.less | 11 + .../src/layouts/components/Setting/index.tsx | 23 +- admin/src/layouts/index.tsx | 59 +- admin/src/main.tsx | 32 +- admin/src/modules/global/index.ts | 18 +- admin/src/modules/list/base.ts | 64 - admin/src/modules/list/card.ts | 73 - admin/src/modules/list/select.ts | 64 - admin/src/modules/store.ts | 6 - admin/src/modules/user/index.ts | 74 +- admin/src/pages/Business/FinanceCharts.tsx | 103 + .../src/pages/Business/components/Charts.tsx | 328 + admin/src/pages/Business/components/index.ts | 1 + admin/src/pages/Business/index.module.less | 1542 ++ admin/src/pages/Business/index.tsx | 2076 +++ admin/src/pages/Dashboard/Base/chart.ts | 261 - .../Base/components/MiddleChart.module.less | 3 - .../Dashboard/Base/components/MiddleChart.tsx | 47 - .../Base/components/Overview.module.less | 5 - .../Dashboard/Base/components/Overview.tsx | 69 - .../Base/components/RankList.module.less | 19 - .../Dashboard/Base/components/RankList.tsx | 133 - .../Base/components/TopPanel.module.less | 35 - .../Dashboard/Base/components/TopPanel.tsx | 92 - admin/src/pages/Dashboard/Base/constant.ts | 77 - admin/src/pages/Dashboard/Base/index.tsx | 16 - admin/src/pages/Dashboard/Detail/chart.ts | 203 - .../Detail/components/MonthPurchase.tsx | 25 - .../components/PurchaseThrend.module.less | 56 - .../Detail/components/PurchaseTrend.tsx | 101 - .../components/Satisfaction.module.less | 14 - .../Detail/components/Satisfaction.tsx | 44 - admin/src/pages/Dashboard/Detail/constant.ts | 59 - admin/src/pages/Dashboard/Detail/index.tsx | 12 - .../Advanced/components/Base.module.less | 41 - .../pages/Detail/Advanced/components/Base.tsx | 28 - .../Detail/Advanced/components/Detail.tsx | 110 - .../Detail/Advanced/components/Product.tsx | 41 - .../components/ProductCard.module.less | 108 - .../Advanced/components/ProductCard.tsx | 55 - .../Detail/Advanced/components/Progress.tsx | 18 - admin/src/pages/Detail/Advanced/consts.ts | 54 - .../pages/Detail/Advanced/index.module.less | 3 - admin/src/pages/Detail/Advanced/index.tsx | 14 - admin/src/pages/Detail/Base/consts.ts | 22 - admin/src/pages/Detail/Base/index.module.less | 57 - admin/src/pages/Detail/Base/index.tsx | 39 - admin/src/pages/Detail/Deploy/chart.ts | 158 - .../Deploy/components/BottomTable.module.less | 10 - .../Detail/Deploy/components/BottomTable.tsx | 72 - .../Deploy/components/DynamicLineChart.tsx | 30 - .../components/ManagementPopup.module.less | 30 - .../Deploy/components/ManagementPopup.tsx | 44 - .../Deploy/components/TopChart.module.less | 8 - .../Detail/Deploy/components/TopChart.tsx | 51 - admin/src/pages/Detail/Deploy/constant.ts | 197 - admin/src/pages/Detail/Deploy/index.tsx | 12 - admin/src/pages/Detail/Secondary/consts.ts | 60 - .../pages/Detail/Secondary/index.module.less | 54 - admin/src/pages/Detail/Secondary/index.tsx | 113 - admin/src/pages/Form/Base/index.module.less | 23 - admin/src/pages/Form/Base/index.tsx | 194 - .../pages/Form/Step/components/StepFour.tsx | 44 - .../pages/Form/Step/components/StepOne.tsx | 85 - .../pages/Form/Step/components/StepThree.tsx | 91 - .../pages/Form/Step/components/StepTwo.tsx | 66 - .../Form/Step/components/index.module.less | 15 - admin/src/pages/Form/Step/components/index.ts | 4 - admin/src/pages/Form/Step/index.module.less | 3 - admin/src/pages/Form/Step/index.tsx | 79 - admin/src/pages/List/Base/index.module.less | 4 - admin/src/pages/List/Base/index.tsx | 211 - .../Card/components/ProductCard.module.less | 28 - .../List/Card/components/ProductCard.tsx | 68 - admin/src/pages/List/Card/index.module.less | 21 - admin/src/pages/List/Card/index.tsx | 84 - .../List/Select/components/SearchForm.tsx | 78 - admin/src/pages/List/Select/consts.ts | 34 - admin/src/pages/List/Select/index.module.less | 12 - admin/src/pages/List/Select/index.tsx | 179 - admin/src/pages/List/Tree/consts.ts | 86 - admin/src/pages/List/Tree/index.module.less | 18 - admin/src/pages/List/Tree/index.tsx | 22 - .../Login/components/Header/index.module.less | 29 +- .../pages/Login/components/Header/index.tsx | 61 +- .../Login/components/Login/index.module.less | 8 +- .../pages/Login/components/Login/index.tsx | 171 +- .../components/Register/index.module.less | 36 - .../pages/Login/components/Register/index.tsx | 107 - admin/src/pages/Login/index.module.less | 72 +- admin/src/pages/Login/index.tsx | 25 +- admin/src/pages/Result/500/index.tsx | 6 - .../BrowserIncompatible/index.module.less | 69 - .../Result/BrowserIncompatible/index.tsx | 32 - admin/src/pages/Result/Fail/index.module.less | 30 - admin/src/pages/Result/Fail/index.tsx | 21 - .../Result/Maintenance/index.module.less | 37 - admin/src/pages/Result/Maintenance/index.tsx | 19 - admin/src/pages/Result/NetworkError/index.tsx | 21 - .../pages/Result/Success/index.module.less | 30 - admin/src/pages/Result/Success/index.tsx | 21 - admin/src/pages/User/chart.ts | 49 - admin/src/pages/User/consts.ts | 27 - admin/src/pages/User/index.module.less | 97 - admin/src/pages/User/index.tsx | 151 - admin/src/router/index.ts | 118 +- admin/src/router/modules/dashboard.ts | 31 - admin/src/router/modules/detail.ts | 39 - admin/src/router/modules/form.ts | 29 - admin/src/router/modules/list.ts | 41 - admin/src/router/modules/login.ts | 25 - admin/src/router/modules/others.ts | 19 - admin/src/router/modules/result.ts | 73 - admin/src/router/modules/user.ts | 24 - admin/src/services/contract.ts | 35 - admin/src/services/platform.ts | 154 + admin/src/services/product.ts | 32 - admin/src/styles/index.less | 18 + admin/src/utils/chart.ts | 38 - admin/src/utils/request.ts | 31 - admin/tsconfig.json | 4 + admin/vite.config.js | 17 +- develop.md | 1005 ++ docker-compose.local.yml | 35 +- docker-compose.yml | 82 +- docs/content/docs/business/license.mdx | 2 +- docs/content/docs/business/license.zh-CN.mdx | 2 +- .../docs/development/local-development.mdx | 6 +- .../development/local-development.zh-CN.mdx | 6 +- docs/content/docs/overview/docker.mdx | 44 +- docs/content/docs/overview/docker.zh-CN.mdx | 59 +- docs/content/docs/overview/features.mdx | 14 +- docs/content/docs/overview/features.zh-CN.mdx | 15 +- docs/content/docs/overview/quick-start.mdx | 20 +- .../docs/overview/quick-start.zh-CN.mdx | 19 +- docs/content/docs/overview/render.mdx | 2 +- docs/content/docs/overview/render.zh-CN.mdx | 2 +- docs/content/docs/progress/pending-test.mdx | 273 +- .../docs/progress/pending-test.zh-CN.mdx | 272 +- docs/content/docs/progress/todo.mdx | 29 +- docs/content/docs/progress/todo.zh-CN.mdx | 29 +- docs/content/docs/support/security.mdx | 2 +- docs/content/docs/support/security.zh-CN.mdx | 2 +- .../MiragenFlow-front/.gitignore | 24 + .../MiragenFlow-front/.oxlintrc.json | 8 + .../MiragenFlow-front/README.md | 32 + .../MiragenFlow-front/docs/COMPONENTS.md | 125 + .../MiragenFlow-front/index.html | 13 + .../MiragenFlow-front/package-lock.json | 2529 +++ .../MiragenFlow-front/package.json | 35 + .../MiragenFlow-front/public/favicon.svg | 1 + .../MiragenFlow-front/public/icons.svg | 24 + .../MiragenFlow-front/src/App.tsx | 36 + .../src/assets/holopix/alimama.woff2 | Bin 0 -> 2409552 bytes .../src/assets/holopix/avatar.png | Bin 0 -> 1101 bytes .../src/assets/holopix/banner-main-2.webp | Bin 0 -> 23430 bytes .../src/assets/holopix/banner-main-3.webp | Bin 0 -> 23828 bytes .../src/assets/holopix/banner-main.webp | Bin 0 -> 22452 bytes .../src/assets/holopix/banner-side-1.webp | Bin 0 -> 10790 bytes .../src/assets/holopix/banner-side-2.webp | Bin 0 -> 8628 bytes .../src/assets/holopix/board.webp | Bin 0 -> 3072 bytes .../src/assets/holopix/card01.jpg | Bin 0 -> 75593 bytes .../src/assets/holopix/card02.jpg | Bin 0 -> 10414 bytes .../src/assets/holopix/card03.jpg | Bin 0 -> 89172 bytes .../src/assets/holopix/card04.jpg | Bin 0 -> 51252 bytes .../src/assets/holopix/card05.jpg | Bin 0 -> 85273 bytes .../src/assets/holopix/card06.jpg | Bin 0 -> 35127 bytes .../src/assets/holopix/card07.webp | Bin 0 -> 44496 bytes .../src/assets/holopix/card08.jpg | Bin 0 -> 95240 bytes .../src/assets/holopix/card09.jpg | Bin 0 -> 52996 bytes .../src/assets/holopix/card10.jpg | Bin 0 -> 46911 bytes .../src/assets/holopix/card11.webp | Bin 0 -> 20216 bytes .../src/assets/holopix/card12.webp | Bin 0 -> 51922 bytes .../src/assets/holopix/card13.webp | Bin 0 -> 27174 bytes .../src/assets/holopix/card14.jpg | Bin 0 -> 8366 bytes .../src/assets/holopix/card15.webp | Bin 0 -> 89908 bytes .../src/assets/holopix/card16.webp | Bin 0 -> 15410 bytes .../src/assets/holopix/card17.webp | Bin 0 -> 32952 bytes .../src/assets/holopix/card18.webp | Bin 0 -> 101060 bytes .../src/assets/holopix/card19.webp | Bin 0 -> 59318 bytes .../src/assets/holopix/card20.jpg | Bin 0 -> 67107 bytes .../src/assets/holopix/explore.webp | Bin 0 -> 4112 bytes .../src/assets/holopix/login-reward-label.svg | 1 + .../assets/holopix/login-reward-panel.webp | Bin 0 -> 78118 bytes .../src/assets/holopix/login-reward.gif | Bin 0 -> 60270 bytes .../src/assets/holopix/visitor-card-bg.png | Bin 0 -> 4740 bytes .../src/assets/holopix/visitor-panel.png | Bin 0 -> 59581 bytes .../components/content/ArtworkCard.module.css | 7 + .../src/components/content/ArtworkCard.tsx | 16 + .../components/content/ArtworkGrid.module.css | 2 + .../src/components/content/ArtworkGrid.tsx | 16 + .../content/HeroCarousel.module.css | 4 + .../src/components/content/HeroCarousel.tsx | 30 + .../src/components/layout/AppShell.module.css | 66 + .../src/components/layout/AppShell.tsx | 80 + .../src/components/layout/Avatar.module.css | 2 + .../src/components/layout/Avatar.tsx | 6 + .../components/primitives/Button.module.css | 37 + .../src/components/primitives/Button.tsx | 41 + .../components/primitives/Feedback.module.css | 21 + .../src/components/primitives/Feedback.tsx | 27 + .../primitives/FormControls.module.css | 22 + .../components/primitives/FormControls.tsx | 37 + .../primitives/IconButton.module.css | 17 + .../src/components/primitives/IconButton.tsx | 25 + .../primitives/Selection.module.css | 16 + .../src/components/primitives/Selection.tsx | 20 + .../components/primitives/primitives.test.tsx | 22 + .../MiragenFlow-front/src/main.tsx | 10 + .../src/pages/ComponentsPage.module.css | 3 + .../src/pages/ComponentsPage.tsx | 36 + .../src/pages/HomePage.module.css | 2 + .../MiragenFlow-front/src/pages/HomePage.tsx | 39 + .../src/pages/PlaceholderPage.module.css | 1 + .../src/pages/PlaceholderPage.tsx | 7 + .../MiragenFlow-front/src/styles/global.css | 42 + .../MiragenFlow-front/src/styles/tokens.css | 54 + .../MiragenFlow-front/tsconfig.app.json | 26 + .../MiragenFlow-front/tsconfig.json | 7 + .../MiragenFlow-front/tsconfig.node.json | 23 + .../MiragenFlow-front/vite.config.ts | 10 + docs/design-reference/README.md | 7 + docs/docker-compose.yml | 4 +- docs/index.md | 6 + docs/miragenflow-architecture-analysis.md | 221 + docs/miragenflow-architecture.html | 14801 +++++++++++++++ docs/miragenflow-architecture.json | 198 + ...rchitecture.visual-check.1440x900.dark.png | Bin 0 -> 163553 bytes ...chitecture.visual-check.1440x900.light.png | Bin 0 -> 169851 bytes ...chitecture.visual-check.2048x1320.dark.png | Bin 0 -> 218899 bytes ...hitecture.visual-check.2048x1320.light.png | Bin 0 -> 228485 bytes ...miragenflow-architecture.visual-check.html | 32 + ...miragenflow-architecture.visual-check.json | 482 + docs/miragenflow-channel-model-logic.html | 14811 ++++++++++++++++ ...model-logic.visual-check.1440x900.dark.png | Bin 0 -> 218840 bytes ...odel-logic.visual-check.1440x900.light.png | Bin 0 -> 222337 bytes ...odel-logic.visual-check.2048x1320.dark.png | Bin 0 -> 333252 bytes ...del-logic.visual-check.2048x1320.light.png | Bin 0 -> 334865 bytes ...flow-channel-model-logic.visual-check.html | 32 + ...flow-channel-model-logic.visual-check.json | 482 + ...agenflow-channel-model-logic.workflow.json | 370 + ...ragenflow-channel-model-page-wireframes.md | 355 + docs/miragenflow-front-migration.md | 48 + docs/miragenflow-long-task-goal-prompt.md | 164 + docs/miragenflow-task-lifecycle.html | 14638 +++++++++++++++ docs/miragenflow-task-lifecycle.json | 44 + ...k-lifecycle.visual-check.1440x900.dark.png | Bin 0 -> 99711 bytes ...-lifecycle.visual-check.1440x900.light.png | Bin 0 -> 111266 bytes ...-lifecycle.visual-check.2048x1320.dark.png | Bin 0 -> 129842 bytes ...lifecycle.visual-check.2048x1320.light.png | Bin 0 -> 145426 bytes ...ragenflow-task-lifecycle.visual-check.html | 32 + ...ragenflow-task-lifecycle.visual-check.json | 482 + docs/miragenflow-tdesign-unification-goal.md | 219 + ...ragenflow-ui-unification.architecture.html | 14730 +++++++++++++++ ...ragenflow-ui-unification.architecture.json | 47 + ...rchitecture.visual-check.1440x900.dark.png | Bin 0 -> 186286 bytes ...chitecture.visual-check.1440x900.light.png | Bin 0 -> 192803 bytes ...chitecture.visual-check.2048x1320.dark.png | Bin 0 -> 247580 bytes ...hitecture.visual-check.2048x1320.light.png | Bin 0 -> 259217 bytes ...unification.architecture.visual-check.html | 32 + ...unification.architecture.visual-check.json | 482 + .../[lang]/docs/progress/changelog/page.tsx | 2 +- docs/src/lib/shared.ts | 5 +- goal.md | 411 + nginx.conf | 31 +- package-lock.json | 1222 ++ package.json | 20 + packages/contracts/package.json | 9 + packages/contracts/src/index.ts | 462 + packages/ui/package.json | 53 + packages/ui/src/alert.ts | 2 + packages/ui/src/breadcrumb.ts | 2 + packages/ui/src/button.css | 7 + packages/ui/src/button.tsx | 50 + packages/ui/src/card.ts | 2 + packages/ui/src/checkbox.ts | 2 + packages/ui/src/color-picker.ts | 2 + packages/ui/src/date-picker.ts | 8 + packages/ui/src/dialog.ts | 2 + packages/ui/src/drawer.ts | 2 + packages/ui/src/dropdown.ts | 2 + packages/ui/src/form.ts | 8 + packages/ui/src/grid.ts | 2 + packages/ui/src/index.tsx | 92 + packages/ui/src/input-number.ts | 2 + packages/ui/src/input.ts | 2 + packages/ui/src/layout.ts | 2 + packages/ui/src/loading.ts | 2 + packages/ui/src/menu.ts | 2 + packages/ui/src/message.ts | 2 + packages/ui/src/pagination.ts | 2 + packages/ui/src/popup.ts | 2 + packages/ui/src/select.ts | 2 + packages/ui/src/slider.ts | 2 + packages/ui/src/space.ts | 2 + packages/ui/src/statistic.ts | 2 + packages/ui/src/switch.ts | 2 + packages/ui/src/table.ts | 11 + packages/ui/src/tabs.ts | 2 + packages/ui/src/tag.ts | 2 + packages/ui/src/textarea.ts | 2 + packages/ui/src/tooltip.ts | 2 + plan.md | 908 + scripts/build-all.mjs | 1 + scripts/dev-all.mjs | 97 +- server/.env.example | 13 + server/Dockerfile | 15 + server/migrations/0001_v1_baseline.sql | 8 + server/migrations/0002_v1_domain.sql | 118 + server/migrations/0003_v1_indexes.sql | 3 + server/migrations/0004_v1_extended.sql | 166 + .../migrations/0005_v1_runtime_extensions.sql | 56 + .../0006_v1_schema_reconciliation.sql | 18 + .../0007_runtime_domain_repository.sql | 13 + .../0008_v1_plan_payment_events.sql | 143 + .../0009_v1_captcha_target_hash.sql | 1 + .../0010_v1_consistency_and_webdav.sql | 40 + .../migrations/0011_image_output_metadata.sql | 2 + .../0011_v1_webdav_retention_state.sql | 9 + .../migrations/0012_v1_scope_reservations.sql | 26 + .../migrations/0013_v1_upload_idempotency.sql | 4 + .../0014_v1_task_dispatch_outbox.sql | 18 + .../0015_v1_payment_request_fingerprints.sql | 6 + .../0016_v1_message_outbox_leases.sql | 9 + .../migrations/0017_v1_webdav_job_leases.sql | 5 + .../0018_v1_webdav_retention_scan.sql | 6 + .../0019_v1_message_idempotency.sql | 6 + ...20_v1_recharge_order_idempotency_scope.sql | 5 + .../0021_admin_idempotency_claim_lease.sql | 3 + .../0022_v1_user_mfa_enrollment.sql | 4 + server/package-lock.json | 859 + server/package.json | 27 + server/src/adapters/messaging.ts | 94 + server/src/adapters/provider.ts | 293 + server/src/adapters/webdav.ts | 158 + server/src/app/http.ts | 3278 ++++ server/src/app/ws.ts | 111 + server/src/config.ts | 138 + server/src/fixtures/admin-demo.ts | 192 + server/src/image-options.ts | 86 + server/src/index.ts | 62 + server/src/infra/migrations.ts | 52 + server/src/infra/outbound-url.ts | 80 + server/src/infra/queue.ts | 89 + server/src/infra/repository.ts | 722 + server/src/infra/staging.ts | 45 + server/src/jobs/task-worker.ts | 563 + server/src/shared/auth.ts | 182 + server/src/shared/errors.ts | 13 + server/src/shared/request-id.ts | 6 + server/src/shared/task-event.ts | 18 + server/src/store.ts | 626 + server/tests/account-security.test.ts | 41 + server/tests/auth-task.test.ts | 282 + server/tests/health.test.ts | 63 + server/tests/image-options.test.ts | 47 + server/tests/infra.test.ts | 375 + server/tests/outbound-url.test.ts | 30 + server/tests/provider-images.test.ts | 379 + server/tests/security.test.ts | 363 + server/tests/v1-contract-regressions.test.ts | 665 + server/tests/ws.test.ts | 65 + server/tsconfig.json | 15 + summary.md | 478 + system-diagrams.md | 923 + web/bun.lock | 592 +- web/components.json | 3 +- web/docker-entrypoint.sh | 22 - web/index.html | 1 - web/package-lock.json | 4340 +---- web/package.json | 8 +- web/public/config.js | 3 - web/src/assets/reference/alimama.woff2 | Bin 0 -> 2409552 bytes web/src/assets/reference/avatar.png | Bin 0 -> 1101 bytes web/src/assets/reference/banner-main-2.webp | Bin 0 -> 23430 bytes web/src/assets/reference/banner-main-3.webp | Bin 0 -> 23828 bytes web/src/assets/reference/banner-main.webp | Bin 0 -> 22452 bytes web/src/assets/reference/banner-side-1.webp | Bin 0 -> 10790 bytes web/src/assets/reference/banner-side-2.webp | Bin 0 -> 8628 bytes web/src/assets/reference/board.webp | Bin 0 -> 3072 bytes web/src/assets/reference/card01.jpg | Bin 0 -> 75593 bytes web/src/assets/reference/card02.jpg | Bin 0 -> 10414 bytes web/src/assets/reference/card03.jpg | Bin 0 -> 89172 bytes web/src/assets/reference/card04.jpg | Bin 0 -> 51252 bytes web/src/assets/reference/card05.jpg | Bin 0 -> 85273 bytes web/src/assets/reference/card06.jpg | Bin 0 -> 35127 bytes web/src/assets/reference/card07.webp | Bin 0 -> 44496 bytes web/src/assets/reference/card08.jpg | Bin 0 -> 95240 bytes web/src/assets/reference/card09.jpg | Bin 0 -> 52996 bytes web/src/assets/reference/card10.jpg | Bin 0 -> 46911 bytes web/src/assets/reference/card11.webp | Bin 0 -> 20216 bytes web/src/assets/reference/card12.webp | Bin 0 -> 51922 bytes web/src/assets/reference/card13.webp | Bin 0 -> 27174 bytes web/src/assets/reference/card14.jpg | Bin 0 -> 8366 bytes web/src/assets/reference/card15.webp | Bin 0 -> 89908 bytes web/src/assets/reference/card16.webp | Bin 0 -> 15410 bytes web/src/assets/reference/card17.webp | Bin 0 -> 32952 bytes web/src/assets/reference/card18.webp | Bin 0 -> 101060 bytes web/src/assets/reference/card19.webp | Bin 0 -> 59318 bytes web/src/assets/reference/card20.jpg | Bin 0 -> 67107 bytes web/src/assets/reference/explore.webp | Bin 0 -> 4112 bytes .../assets/reference/login-reward-label.svg | 1 + .../assets/reference/login-reward-panel.webp | Bin 0 -> 78118 bytes web/src/assets/reference/login-reward.gif | Bin 0 -> 60270 bytes web/src/assets/reference/visitor-card-bg.png | Bin 0 -> 4740 bytes web/src/assets/reference/visitor-panel.png | Bin 0 -> 59581 bytes web/src/components/LineIcons.LICENSE.txt | 22 + web/src/components/LineIcons.tsx | 280 + web/src/components/audio-settings-panel.tsx | 33 +- .../components/canvas/asset-picker-modal.tsx | 50 +- .../canvas/canvas-audio-settings-popover.tsx | 63 +- .../canvas/canvas-config-composer.tsx | 77 +- .../canvas/canvas-config-node-panel.tsx | 78 +- .../components/canvas/canvas-context-menu.tsx | 48 +- .../components/canvas/canvas-create-menus.tsx | 133 +- .../canvas/canvas-delete-projects-dialog.tsx | 24 +- .../canvas/canvas-image-settings-popover.tsx | 75 +- .../canvas-image-toolbar-settings-modal.tsx | 129 +- .../canvas/canvas-image-toolbar-tools.tsx | 2 +- web/src/components/canvas/canvas-mini-map.tsx | 2 +- .../canvas/canvas-node-angle-dialog.tsx | 31 +- .../canvas/canvas-node-crop-dialog.tsx | 73 +- .../canvas/canvas-node-generation.ts | 2 +- .../canvas/canvas-node-hover-toolbar.tsx | 112 +- .../canvas/canvas-node-mask-edit-dialog.tsx | 66 +- .../canvas/canvas-node-prompt-panel.tsx | 41 +- .../canvas/canvas-node-split-dialog.tsx | 65 +- .../canvas/canvas-node-upscale-dialog.tsx | 58 +- web/src/components/canvas/canvas-node.tsx | 86 +- .../components/canvas/canvas-project-card.tsx | 69 +- .../canvas/canvas-prompt-chip-input.tsx | 63 +- .../canvas/canvas-refresh-shell.tsx | 15 +- .../canvas-resource-mention-textarea.tsx | 64 +- .../components/canvas/canvas-side-panel.tsx | 201 +- .../components/canvas/canvas-size-picker.tsx | 48 +- .../canvas/canvas-text-settings-popover.tsx | 61 +- web/src/components/canvas/canvas-toolbar.tsx | 189 +- web/src/components/canvas/canvas-top-bar.tsx | 100 +- .../canvas/canvas-zoom-controls.tsx | 48 +- .../components/canvas/miragenflow-canvas.tsx | 12 +- .../components/canvas/nodes/builtin-nodes.tsx | 2 +- .../canvas/use-canvas-popover-focus.ts | 66 + .../canvas/use-image-editor-viewport.ts | 33 +- .../components/image-generation-pending.tsx | 14 +- web/src/components/image-settings-panel.tsx | 240 +- .../components/layout/analytics-tracker.tsx | 2 +- .../components/layout/app-config-modal.tsx | 459 - web/src/components/layout/app-providers.tsx | 32 +- web/src/components/layout/app-top-nav.tsx | 30 +- web/src/components/layout/auth-guard.tsx | 13 + .../layout/channel-editor-drawer.tsx | 129 - .../components/layout/client-root-init.tsx | 52 +- .../layout/config-local-storage.tsx | 122 - .../components/layout/mobile-nav-drawer.tsx | 8 +- .../components/layout/model-script-editor.tsx | 113 - .../components/layout/model-select-modal.tsx | 155 - .../layout/route-fallback.module.css | 89 + web/src/components/layout/route-fallback.tsx | 43 + .../components/layout/user-status-actions.tsx | 63 +- .../layout/version-release-modal.tsx | 95 - web/src/components/model-picker.tsx | 98 +- web/src/components/text-settings-panel.tsx | 9 +- web/src/components/ui/Button.module.css | 1 + web/src/components/ui/Button.tsx | 2 + .../components/ui/animated-theme-toggler.tsx | 9 +- web/src/components/ui/select.tsx | 194 - web/src/constant/navigation-tools.ts | 19 +- web/src/constant/runtime-config.ts | 29 - web/src/hooks/use-copy-text.ts | 5 +- web/src/hooks/use-version-check.ts | 92 - web/src/i18n/index.ts | 15 +- web/src/i18n/locales/en-US.ts | 89 +- web/src/i18n/locales/zh-CN.ts | 91 +- web/src/layouts/user-layout.tsx | 62 +- web/src/lib/analytics.ts | 79 +- web/src/lib/app-theme.ts | 82 - .../lib/canvas/canvas-generation-helpers.ts | 13 +- web/src/lib/canvas/canvas-image-data.ts | 29 +- web/src/lib/canvas/canvas-node-factory.ts | 13 +- web/src/lib/canvas/canvas-ops.ts | 25 +- web/src/lib/canvas/plugin-runtime.ts | 3 +- web/src/lib/format-date.ts | 28 + web/src/lib/local-data-namespace.ts | 26 + web/src/lib/release.ts | 24 - web/src/lib/tdesign-theme.ts | 87 + web/src/main.tsx | 2 +- web/src/pages/account/index.tsx | 388 + web/src/pages/account/plans.tsx | 162 + web/src/pages/assets/asset-transfer.ts | 33 +- web/src/pages/assets/index.tsx | 602 +- web/src/pages/assets/platform-asset-sync.ts | 105 + web/src/pages/auth/auth-ui.module.css | 275 + web/src/pages/auth/auth-ui.tsx | 66 + web/src/pages/auth/index.tsx | 239 + web/src/pages/auth/reset.tsx | 161 + web/src/pages/auth/verify.tsx | 94 + .../pages/canvas/hooks/use-plugin-host.tsx | 36 +- web/src/pages/canvas/index.tsx | 51 +- web/src/pages/canvas/project.tsx | 814 +- web/src/pages/console-page.module.css | 309 + web/src/pages/home/home.module.css | 17 + web/src/pages/home/index.tsx | 67 +- web/src/pages/not-found/index.tsx | 10 +- web/src/pages/settings/index.tsx | 248 + web/src/pages/style-preview/index.module.css | 517 + web/src/pages/style-preview/index.tsx | 221 + web/src/pages/tasks/detail.tsx | 332 + web/src/pages/tasks/index.tsx | 172 + web/src/pages/tools/audio.tsx | 172 + web/src/pages/tools/create.module.css | 256 + web/src/pages/tools/image.tsx | 213 + web/src/router.tsx | 118 +- web/src/services/api/audio.ts | 158 +- web/src/services/api/image.ts | 912 - web/src/services/api/model-plugin.ts | 340 - web/src/services/api/platform-image.ts | 89 + web/src/services/api/platform.ts | 459 + web/src/services/app-sync.ts | 105 +- web/src/services/config-file.ts | 29 - web/src/services/file-storage.ts | 50 +- web/src/services/image-storage.ts | 50 +- web/src/services/webdav-sync.ts | 133 +- web/src/stores/canvas/use-canvas-store.ts | 44 +- web/src/stores/switch-local-data-namespace.ts | 18 + web/src/stores/use-asset-store.ts | 37 +- web/src/stores/use-auth-store.ts | 108 + web/src/stores/use-canvas-side-panel-store.ts | 4 +- web/src/stores/use-catalog-store.ts | 22 + web/src/stores/use-config-store.ts | 424 +- web/src/stores/use-theme-store.ts | 8 +- web/src/styles/globals.css | 331 +- web/src/types/canvas-plugin.ts | 4 +- web/src/types/canvas.ts | 31 + .../user-console/assets/holopix/alimama.woff2 | Bin 0 -> 2409552 bytes .../user-console/assets/holopix/avatar.png | Bin 0 -> 1101 bytes .../assets/holopix/banner-main-2.webp | Bin 0 -> 23430 bytes .../assets/holopix/banner-main-3.webp | Bin 0 -> 23828 bytes .../assets/holopix/banner-main.webp | Bin 0 -> 22452 bytes .../assets/holopix/banner-side-1.webp | Bin 0 -> 10790 bytes .../assets/holopix/banner-side-2.webp | Bin 0 -> 8628 bytes .../user-console/assets/holopix/board.webp | Bin 0 -> 3072 bytes .../user-console/assets/holopix/card01.jpg | Bin 0 -> 75593 bytes .../user-console/assets/holopix/card02.jpg | Bin 0 -> 10414 bytes .../user-console/assets/holopix/card03.jpg | Bin 0 -> 89172 bytes .../user-console/assets/holopix/card04.jpg | Bin 0 -> 51252 bytes .../user-console/assets/holopix/card05.jpg | Bin 0 -> 85273 bytes .../user-console/assets/holopix/card06.jpg | Bin 0 -> 35127 bytes .../user-console/assets/holopix/card07.webp | Bin 0 -> 44496 bytes .../user-console/assets/holopix/card08.jpg | Bin 0 -> 95240 bytes .../user-console/assets/holopix/card09.jpg | Bin 0 -> 52996 bytes .../user-console/assets/holopix/card10.jpg | Bin 0 -> 46911 bytes .../user-console/assets/holopix/card11.webp | Bin 0 -> 20216 bytes .../user-console/assets/holopix/card12.webp | Bin 0 -> 51922 bytes .../user-console/assets/holopix/card13.webp | Bin 0 -> 27174 bytes .../user-console/assets/holopix/card14.jpg | Bin 0 -> 8366 bytes .../user-console/assets/holopix/card15.webp | Bin 0 -> 89908 bytes .../user-console/assets/holopix/card16.webp | Bin 0 -> 15410 bytes .../user-console/assets/holopix/card17.webp | Bin 0 -> 32952 bytes .../user-console/assets/holopix/card18.webp | Bin 0 -> 101060 bytes .../user-console/assets/holopix/card19.webp | Bin 0 -> 59318 bytes .../user-console/assets/holopix/card20.jpg | Bin 0 -> 67107 bytes .../user-console/assets/holopix/explore.webp | Bin 0 -> 4112 bytes .../assets/holopix/login-reward-label.svg | 25 + .../assets/holopix/login-reward-panel.webp | Bin 0 -> 78118 bytes .../assets/holopix/login-reward.gif | Bin 0 -> 60270 bytes .../assets/holopix/visitor-card-bg.png | Bin 0 -> 4740 bytes .../assets/holopix/visitor-panel.png | Bin 0 -> 59581 bytes .../components/content/ArtworkCard.module.css | 13 + .../components/content/ArtworkCard.tsx | 15 + .../components/content/ArtworkGrid.module.css | 2 + .../components/content/ArtworkGrid.tsx | 15 + .../content/HeroCarousel.module.css | 227 + .../components/content/HeroCarousel.tsx | 82 + .../components/layout/AppShell.module.css | 642 + .../components/layout/AppShell.tsx | 255 + .../components/layout/Avatar.module.css | 2 + .../user-console/components/layout/Avatar.tsx | 6 + .../components/primitives/Button.module.css | 98 + .../components/primitives/Button.tsx | 59 + .../components/primitives/Feedback.module.css | 142 + .../components/primitives/Feedback.tsx | 249 + .../primitives/FormControls.module.css | 31 + .../components/primitives/FormControls.tsx | 892 + .../primitives/IconButton.module.css | 17 + .../components/primitives/IconButton.tsx | 27 + .../primitives/Selection.module.css | 119 + .../components/primitives/Selection.tsx | 87 + .../pages/ComponentsPage.module.css | 3 + web/src/user-console/pages/ComponentsPage.tsx | 150 + .../user-console/pages/HomePage.module.css | 2 + web/src/user-console/pages/HomePage.tsx | 106 + .../pages/PlaceholderPage.module.css | 1 + .../user-console/pages/PlaceholderPage.tsx | 7 + web/src/user-console/styles/global.css | 42 + web/src/user-console/styles/tokens.css | 86 + web/src/vite-env.d.ts | 9 +- web/vite.config.ts | 31 +- 648 files changed, 102488 insertions(+), 17737 deletions(-) create mode 100644 .env.example create mode 100644 admin-plan.md delete mode 100644 admin/mock/api/getList.js delete mode 100644 admin/mock/index.js create mode 100644 admin/src/assets/image/admin-login-background.webp delete mode 100644 admin/src/assets/svg/assets-product-1.svg delete mode 100644 admin/src/assets/svg/assets-product-2.svg delete mode 100644 admin/src/assets/svg/assets-product-3.svg delete mode 100644 admin/src/assets/svg/assets-product-4.svg delete mode 100644 admin/src/assets/svg/assets-result-browser-incompatible.svg delete mode 100644 admin/src/assets/svg/assets-result-maintenance.svg delete mode 100644 admin/src/assets/svg/assets-result-network-error.svg create mode 100644 admin/src/components/LineIcons.LICENSE.txt create mode 100644 admin/src/components/LineIcons.jsx delete mode 100644 admin/src/configs/host.ts delete mode 100644 admin/src/layouts/components/Header/Search.module.less delete mode 100644 admin/src/layouts/components/Header/Search.tsx delete mode 100644 admin/src/modules/list/base.ts delete mode 100644 admin/src/modules/list/card.ts delete mode 100644 admin/src/modules/list/select.ts create mode 100644 admin/src/pages/Business/FinanceCharts.tsx create mode 100644 admin/src/pages/Business/components/Charts.tsx create mode 100644 admin/src/pages/Business/components/index.ts create mode 100644 admin/src/pages/Business/index.module.less create mode 100644 admin/src/pages/Business/index.tsx delete mode 100644 admin/src/pages/Dashboard/Base/chart.ts delete mode 100644 admin/src/pages/Dashboard/Base/components/MiddleChart.module.less delete mode 100644 admin/src/pages/Dashboard/Base/components/MiddleChart.tsx delete mode 100644 admin/src/pages/Dashboard/Base/components/Overview.module.less delete mode 100644 admin/src/pages/Dashboard/Base/components/Overview.tsx delete mode 100644 admin/src/pages/Dashboard/Base/components/RankList.module.less delete mode 100644 admin/src/pages/Dashboard/Base/components/RankList.tsx delete mode 100644 admin/src/pages/Dashboard/Base/components/TopPanel.module.less delete mode 100644 admin/src/pages/Dashboard/Base/components/TopPanel.tsx delete mode 100644 admin/src/pages/Dashboard/Base/constant.ts delete mode 100644 admin/src/pages/Dashboard/Base/index.tsx delete mode 100644 admin/src/pages/Dashboard/Detail/chart.ts delete mode 100644 admin/src/pages/Dashboard/Detail/components/MonthPurchase.tsx delete mode 100644 admin/src/pages/Dashboard/Detail/components/PurchaseThrend.module.less delete mode 100644 admin/src/pages/Dashboard/Detail/components/PurchaseTrend.tsx delete mode 100644 admin/src/pages/Dashboard/Detail/components/Satisfaction.module.less delete mode 100644 admin/src/pages/Dashboard/Detail/components/Satisfaction.tsx delete mode 100644 admin/src/pages/Dashboard/Detail/constant.ts delete mode 100644 admin/src/pages/Dashboard/Detail/index.tsx delete mode 100644 admin/src/pages/Detail/Advanced/components/Base.module.less delete mode 100644 admin/src/pages/Detail/Advanced/components/Base.tsx delete mode 100644 admin/src/pages/Detail/Advanced/components/Detail.tsx delete mode 100644 admin/src/pages/Detail/Advanced/components/Product.tsx delete mode 100644 admin/src/pages/Detail/Advanced/components/ProductCard.module.less delete mode 100644 admin/src/pages/Detail/Advanced/components/ProductCard.tsx delete mode 100644 admin/src/pages/Detail/Advanced/components/Progress.tsx delete mode 100644 admin/src/pages/Detail/Advanced/consts.ts delete mode 100644 admin/src/pages/Detail/Advanced/index.module.less delete mode 100644 admin/src/pages/Detail/Advanced/index.tsx delete mode 100644 admin/src/pages/Detail/Base/consts.ts delete mode 100644 admin/src/pages/Detail/Base/index.module.less delete mode 100644 admin/src/pages/Detail/Base/index.tsx delete mode 100644 admin/src/pages/Detail/Deploy/chart.ts delete mode 100644 admin/src/pages/Detail/Deploy/components/BottomTable.module.less delete mode 100644 admin/src/pages/Detail/Deploy/components/BottomTable.tsx delete mode 100644 admin/src/pages/Detail/Deploy/components/DynamicLineChart.tsx delete mode 100644 admin/src/pages/Detail/Deploy/components/ManagementPopup.module.less delete mode 100644 admin/src/pages/Detail/Deploy/components/ManagementPopup.tsx delete mode 100644 admin/src/pages/Detail/Deploy/components/TopChart.module.less delete mode 100644 admin/src/pages/Detail/Deploy/components/TopChart.tsx delete mode 100644 admin/src/pages/Detail/Deploy/constant.ts delete mode 100644 admin/src/pages/Detail/Deploy/index.tsx delete mode 100644 admin/src/pages/Detail/Secondary/consts.ts delete mode 100644 admin/src/pages/Detail/Secondary/index.module.less delete mode 100644 admin/src/pages/Detail/Secondary/index.tsx delete mode 100644 admin/src/pages/Form/Base/index.module.less delete mode 100644 admin/src/pages/Form/Base/index.tsx delete mode 100644 admin/src/pages/Form/Step/components/StepFour.tsx delete mode 100644 admin/src/pages/Form/Step/components/StepOne.tsx delete mode 100644 admin/src/pages/Form/Step/components/StepThree.tsx delete mode 100644 admin/src/pages/Form/Step/components/StepTwo.tsx delete mode 100644 admin/src/pages/Form/Step/components/index.module.less delete mode 100644 admin/src/pages/Form/Step/components/index.ts delete mode 100644 admin/src/pages/Form/Step/index.module.less delete mode 100644 admin/src/pages/Form/Step/index.tsx delete mode 100644 admin/src/pages/List/Base/index.module.less delete mode 100644 admin/src/pages/List/Base/index.tsx delete mode 100644 admin/src/pages/List/Card/components/ProductCard.module.less delete mode 100644 admin/src/pages/List/Card/components/ProductCard.tsx delete mode 100644 admin/src/pages/List/Card/index.module.less delete mode 100644 admin/src/pages/List/Card/index.tsx delete mode 100644 admin/src/pages/List/Select/components/SearchForm.tsx delete mode 100644 admin/src/pages/List/Select/consts.ts delete mode 100644 admin/src/pages/List/Select/index.module.less delete mode 100644 admin/src/pages/List/Select/index.tsx delete mode 100644 admin/src/pages/List/Tree/consts.ts delete mode 100644 admin/src/pages/List/Tree/index.module.less delete mode 100644 admin/src/pages/List/Tree/index.tsx delete mode 100644 admin/src/pages/Login/components/Register/index.module.less delete mode 100644 admin/src/pages/Login/components/Register/index.tsx delete mode 100644 admin/src/pages/Result/500/index.tsx delete mode 100644 admin/src/pages/Result/BrowserIncompatible/index.module.less delete mode 100644 admin/src/pages/Result/BrowserIncompatible/index.tsx delete mode 100644 admin/src/pages/Result/Fail/index.module.less delete mode 100644 admin/src/pages/Result/Fail/index.tsx delete mode 100644 admin/src/pages/Result/Maintenance/index.module.less delete mode 100644 admin/src/pages/Result/Maintenance/index.tsx delete mode 100644 admin/src/pages/Result/NetworkError/index.tsx delete mode 100644 admin/src/pages/Result/Success/index.module.less delete mode 100644 admin/src/pages/Result/Success/index.tsx delete mode 100644 admin/src/pages/User/chart.ts delete mode 100644 admin/src/pages/User/consts.ts delete mode 100644 admin/src/pages/User/index.module.less delete mode 100644 admin/src/pages/User/index.tsx delete mode 100644 admin/src/router/modules/dashboard.ts delete mode 100644 admin/src/router/modules/detail.ts delete mode 100644 admin/src/router/modules/form.ts delete mode 100644 admin/src/router/modules/list.ts delete mode 100644 admin/src/router/modules/login.ts delete mode 100644 admin/src/router/modules/others.ts delete mode 100644 admin/src/router/modules/result.ts delete mode 100644 admin/src/router/modules/user.ts delete mode 100644 admin/src/services/contract.ts create mode 100644 admin/src/services/platform.ts delete mode 100644 admin/src/services/product.ts delete mode 100644 admin/src/utils/chart.ts delete mode 100644 admin/src/utils/request.ts create mode 100644 develop.md create mode 100644 docs/design-reference/MiragenFlow-front/.gitignore create mode 100644 docs/design-reference/MiragenFlow-front/.oxlintrc.json create mode 100644 docs/design-reference/MiragenFlow-front/README.md create mode 100644 docs/design-reference/MiragenFlow-front/docs/COMPONENTS.md create mode 100644 docs/design-reference/MiragenFlow-front/index.html create mode 100644 docs/design-reference/MiragenFlow-front/package-lock.json create mode 100644 docs/design-reference/MiragenFlow-front/package.json create mode 100644 docs/design-reference/MiragenFlow-front/public/favicon.svg create mode 100644 docs/design-reference/MiragenFlow-front/public/icons.svg create mode 100644 docs/design-reference/MiragenFlow-front/src/App.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/alimama.woff2 create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/avatar.png create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/banner-main-2.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/banner-main-3.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/banner-main.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/banner-side-1.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/banner-side-2.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/board.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card01.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card02.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card03.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card04.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card05.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card06.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card07.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card08.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card09.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card10.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card11.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card12.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card13.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card14.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card15.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card16.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card17.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card18.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card19.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/card20.jpg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/explore.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/login-reward-label.svg create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/login-reward-panel.webp create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/login-reward.gif create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/visitor-card-bg.png create mode 100644 docs/design-reference/MiragenFlow-front/src/assets/holopix/visitor-panel.png create mode 100644 docs/design-reference/MiragenFlow-front/src/components/content/ArtworkCard.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/content/ArtworkCard.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/content/ArtworkGrid.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/content/ArtworkGrid.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/content/HeroCarousel.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/content/HeroCarousel.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/layout/AppShell.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/layout/AppShell.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/layout/Avatar.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/layout/Avatar.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/Button.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/Button.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/Feedback.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/Feedback.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/FormControls.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/FormControls.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/IconButton.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/IconButton.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/Selection.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/Selection.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/components/primitives/primitives.test.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/main.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/pages/ComponentsPage.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/pages/ComponentsPage.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/pages/HomePage.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/pages/HomePage.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/pages/PlaceholderPage.module.css create mode 100644 docs/design-reference/MiragenFlow-front/src/pages/PlaceholderPage.tsx create mode 100644 docs/design-reference/MiragenFlow-front/src/styles/global.css create mode 100644 docs/design-reference/MiragenFlow-front/src/styles/tokens.css create mode 100644 docs/design-reference/MiragenFlow-front/tsconfig.app.json create mode 100644 docs/design-reference/MiragenFlow-front/tsconfig.json create mode 100644 docs/design-reference/MiragenFlow-front/tsconfig.node.json create mode 100644 docs/design-reference/MiragenFlow-front/vite.config.ts create mode 100644 docs/design-reference/README.md create mode 100644 docs/miragenflow-architecture-analysis.md create mode 100644 docs/miragenflow-architecture.html create mode 100644 docs/miragenflow-architecture.json create mode 100644 docs/miragenflow-architecture.visual-check.1440x900.dark.png create mode 100644 docs/miragenflow-architecture.visual-check.1440x900.light.png create mode 100644 docs/miragenflow-architecture.visual-check.2048x1320.dark.png create mode 100644 docs/miragenflow-architecture.visual-check.2048x1320.light.png create mode 100644 docs/miragenflow-architecture.visual-check.html create mode 100644 docs/miragenflow-architecture.visual-check.json create mode 100644 docs/miragenflow-channel-model-logic.html create mode 100644 docs/miragenflow-channel-model-logic.visual-check.1440x900.dark.png create mode 100644 docs/miragenflow-channel-model-logic.visual-check.1440x900.light.png create mode 100644 docs/miragenflow-channel-model-logic.visual-check.2048x1320.dark.png create mode 100644 docs/miragenflow-channel-model-logic.visual-check.2048x1320.light.png create mode 100644 docs/miragenflow-channel-model-logic.visual-check.html create mode 100644 docs/miragenflow-channel-model-logic.visual-check.json create mode 100644 docs/miragenflow-channel-model-logic.workflow.json create mode 100644 docs/miragenflow-channel-model-page-wireframes.md create mode 100644 docs/miragenflow-front-migration.md create mode 100644 docs/miragenflow-long-task-goal-prompt.md create mode 100644 docs/miragenflow-task-lifecycle.html create mode 100644 docs/miragenflow-task-lifecycle.json create mode 100644 docs/miragenflow-task-lifecycle.visual-check.1440x900.dark.png create mode 100644 docs/miragenflow-task-lifecycle.visual-check.1440x900.light.png create mode 100644 docs/miragenflow-task-lifecycle.visual-check.2048x1320.dark.png create mode 100644 docs/miragenflow-task-lifecycle.visual-check.2048x1320.light.png create mode 100644 docs/miragenflow-task-lifecycle.visual-check.html create mode 100644 docs/miragenflow-task-lifecycle.visual-check.json create mode 100644 docs/miragenflow-tdesign-unification-goal.md create mode 100644 docs/miragenflow-ui-unification.architecture.html create mode 100644 docs/miragenflow-ui-unification.architecture.json create mode 100644 docs/miragenflow-ui-unification.architecture.visual-check.1440x900.dark.png create mode 100644 docs/miragenflow-ui-unification.architecture.visual-check.1440x900.light.png create mode 100644 docs/miragenflow-ui-unification.architecture.visual-check.2048x1320.dark.png create mode 100644 docs/miragenflow-ui-unification.architecture.visual-check.2048x1320.light.png create mode 100644 docs/miragenflow-ui-unification.architecture.visual-check.html create mode 100644 docs/miragenflow-ui-unification.architecture.visual-check.json create mode 100644 goal.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 packages/contracts/package.json create mode 100644 packages/contracts/src/index.ts create mode 100644 packages/ui/package.json create mode 100644 packages/ui/src/alert.ts create mode 100644 packages/ui/src/breadcrumb.ts create mode 100644 packages/ui/src/button.css create mode 100644 packages/ui/src/button.tsx create mode 100644 packages/ui/src/card.ts create mode 100644 packages/ui/src/checkbox.ts create mode 100644 packages/ui/src/color-picker.ts create mode 100644 packages/ui/src/date-picker.ts create mode 100644 packages/ui/src/dialog.ts create mode 100644 packages/ui/src/drawer.ts create mode 100644 packages/ui/src/dropdown.ts create mode 100644 packages/ui/src/form.ts create mode 100644 packages/ui/src/grid.ts create mode 100644 packages/ui/src/index.tsx create mode 100644 packages/ui/src/input-number.ts create mode 100644 packages/ui/src/input.ts create mode 100644 packages/ui/src/layout.ts create mode 100644 packages/ui/src/loading.ts create mode 100644 packages/ui/src/menu.ts create mode 100644 packages/ui/src/message.ts create mode 100644 packages/ui/src/pagination.ts create mode 100644 packages/ui/src/popup.ts create mode 100644 packages/ui/src/select.ts create mode 100644 packages/ui/src/slider.ts create mode 100644 packages/ui/src/space.ts create mode 100644 packages/ui/src/statistic.ts create mode 100644 packages/ui/src/switch.ts create mode 100644 packages/ui/src/table.ts create mode 100644 packages/ui/src/tabs.ts create mode 100644 packages/ui/src/tag.ts create mode 100644 packages/ui/src/textarea.ts create mode 100644 packages/ui/src/tooltip.ts create mode 100644 plan.md create mode 100644 server/.env.example create mode 100644 server/Dockerfile create mode 100644 server/migrations/0001_v1_baseline.sql create mode 100644 server/migrations/0002_v1_domain.sql create mode 100644 server/migrations/0003_v1_indexes.sql create mode 100644 server/migrations/0004_v1_extended.sql create mode 100644 server/migrations/0005_v1_runtime_extensions.sql create mode 100644 server/migrations/0006_v1_schema_reconciliation.sql create mode 100644 server/migrations/0007_runtime_domain_repository.sql create mode 100644 server/migrations/0008_v1_plan_payment_events.sql create mode 100644 server/migrations/0009_v1_captcha_target_hash.sql create mode 100644 server/migrations/0010_v1_consistency_and_webdav.sql create mode 100644 server/migrations/0011_image_output_metadata.sql create mode 100644 server/migrations/0011_v1_webdav_retention_state.sql create mode 100644 server/migrations/0012_v1_scope_reservations.sql create mode 100644 server/migrations/0013_v1_upload_idempotency.sql create mode 100644 server/migrations/0014_v1_task_dispatch_outbox.sql create mode 100644 server/migrations/0015_v1_payment_request_fingerprints.sql create mode 100644 server/migrations/0016_v1_message_outbox_leases.sql create mode 100644 server/migrations/0017_v1_webdav_job_leases.sql create mode 100644 server/migrations/0018_v1_webdav_retention_scan.sql create mode 100644 server/migrations/0019_v1_message_idempotency.sql create mode 100644 server/migrations/0020_v1_recharge_order_idempotency_scope.sql create mode 100644 server/migrations/0021_admin_idempotency_claim_lease.sql create mode 100644 server/migrations/0022_v1_user_mfa_enrollment.sql create mode 100644 server/package-lock.json create mode 100644 server/package.json create mode 100644 server/src/adapters/messaging.ts create mode 100644 server/src/adapters/provider.ts create mode 100644 server/src/adapters/webdav.ts create mode 100644 server/src/app/http.ts create mode 100644 server/src/app/ws.ts create mode 100644 server/src/config.ts create mode 100644 server/src/fixtures/admin-demo.ts create mode 100644 server/src/image-options.ts create mode 100644 server/src/index.ts create mode 100644 server/src/infra/migrations.ts create mode 100644 server/src/infra/outbound-url.ts create mode 100644 server/src/infra/queue.ts create mode 100644 server/src/infra/repository.ts create mode 100644 server/src/infra/staging.ts create mode 100644 server/src/jobs/task-worker.ts create mode 100644 server/src/shared/auth.ts create mode 100644 server/src/shared/errors.ts create mode 100644 server/src/shared/request-id.ts create mode 100644 server/src/shared/task-event.ts create mode 100644 server/src/store.ts create mode 100644 server/tests/account-security.test.ts create mode 100644 server/tests/auth-task.test.ts create mode 100644 server/tests/health.test.ts create mode 100644 server/tests/image-options.test.ts create mode 100644 server/tests/infra.test.ts create mode 100644 server/tests/outbound-url.test.ts create mode 100644 server/tests/provider-images.test.ts create mode 100644 server/tests/security.test.ts create mode 100644 server/tests/v1-contract-regressions.test.ts create mode 100644 server/tests/ws.test.ts create mode 100644 server/tsconfig.json create mode 100644 summary.md create mode 100644 system-diagrams.md delete mode 100755 web/docker-entrypoint.sh delete mode 100644 web/public/config.js create mode 100644 web/src/assets/reference/alimama.woff2 create mode 100644 web/src/assets/reference/avatar.png create mode 100644 web/src/assets/reference/banner-main-2.webp create mode 100644 web/src/assets/reference/banner-main-3.webp create mode 100644 web/src/assets/reference/banner-main.webp create mode 100644 web/src/assets/reference/banner-side-1.webp create mode 100644 web/src/assets/reference/banner-side-2.webp create mode 100644 web/src/assets/reference/board.webp create mode 100644 web/src/assets/reference/card01.jpg create mode 100644 web/src/assets/reference/card02.jpg create mode 100644 web/src/assets/reference/card03.jpg create mode 100644 web/src/assets/reference/card04.jpg create mode 100644 web/src/assets/reference/card05.jpg create mode 100644 web/src/assets/reference/card06.jpg create mode 100644 web/src/assets/reference/card07.webp create mode 100644 web/src/assets/reference/card08.jpg create mode 100644 web/src/assets/reference/card09.jpg create mode 100644 web/src/assets/reference/card10.jpg create mode 100644 web/src/assets/reference/card11.webp create mode 100644 web/src/assets/reference/card12.webp create mode 100644 web/src/assets/reference/card13.webp create mode 100644 web/src/assets/reference/card14.jpg create mode 100644 web/src/assets/reference/card15.webp create mode 100644 web/src/assets/reference/card16.webp create mode 100644 web/src/assets/reference/card17.webp create mode 100644 web/src/assets/reference/card18.webp create mode 100644 web/src/assets/reference/card19.webp create mode 100644 web/src/assets/reference/card20.jpg create mode 100644 web/src/assets/reference/explore.webp create mode 100644 web/src/assets/reference/login-reward-label.svg create mode 100644 web/src/assets/reference/login-reward-panel.webp create mode 100644 web/src/assets/reference/login-reward.gif create mode 100644 web/src/assets/reference/visitor-card-bg.png create mode 100644 web/src/assets/reference/visitor-panel.png create mode 100644 web/src/components/LineIcons.LICENSE.txt create mode 100644 web/src/components/LineIcons.tsx create mode 100644 web/src/components/canvas/use-canvas-popover-focus.ts delete mode 100644 web/src/components/layout/app-config-modal.tsx create mode 100644 web/src/components/layout/auth-guard.tsx delete mode 100644 web/src/components/layout/channel-editor-drawer.tsx delete mode 100644 web/src/components/layout/config-local-storage.tsx delete mode 100644 web/src/components/layout/model-script-editor.tsx delete mode 100644 web/src/components/layout/model-select-modal.tsx create mode 100644 web/src/components/layout/route-fallback.module.css create mode 100644 web/src/components/layout/route-fallback.tsx delete mode 100644 web/src/components/layout/version-release-modal.tsx create mode 100644 web/src/components/ui/Button.module.css create mode 100644 web/src/components/ui/Button.tsx delete mode 100644 web/src/components/ui/select.tsx delete mode 100644 web/src/constant/runtime-config.ts delete mode 100644 web/src/hooks/use-version-check.ts delete mode 100644 web/src/lib/app-theme.ts create mode 100644 web/src/lib/format-date.ts create mode 100644 web/src/lib/local-data-namespace.ts delete mode 100644 web/src/lib/release.ts create mode 100644 web/src/lib/tdesign-theme.ts create mode 100644 web/src/pages/account/index.tsx create mode 100644 web/src/pages/account/plans.tsx create mode 100644 web/src/pages/assets/platform-asset-sync.ts create mode 100644 web/src/pages/auth/auth-ui.module.css create mode 100644 web/src/pages/auth/auth-ui.tsx create mode 100644 web/src/pages/auth/index.tsx create mode 100644 web/src/pages/auth/reset.tsx create mode 100644 web/src/pages/auth/verify.tsx create mode 100644 web/src/pages/console-page.module.css create mode 100644 web/src/pages/home/home.module.css create mode 100644 web/src/pages/settings/index.tsx create mode 100644 web/src/pages/style-preview/index.module.css create mode 100644 web/src/pages/style-preview/index.tsx create mode 100644 web/src/pages/tasks/detail.tsx create mode 100644 web/src/pages/tasks/index.tsx create mode 100644 web/src/pages/tools/audio.tsx create mode 100644 web/src/pages/tools/create.module.css create mode 100644 web/src/pages/tools/image.tsx delete mode 100644 web/src/services/api/image.ts delete mode 100644 web/src/services/api/model-plugin.ts create mode 100644 web/src/services/api/platform-image.ts create mode 100644 web/src/services/api/platform.ts delete mode 100644 web/src/services/config-file.ts create mode 100644 web/src/stores/switch-local-data-namespace.ts create mode 100644 web/src/stores/use-auth-store.ts create mode 100644 web/src/stores/use-catalog-store.ts create mode 100644 web/src/user-console/assets/holopix/alimama.woff2 create mode 100644 web/src/user-console/assets/holopix/avatar.png create mode 100644 web/src/user-console/assets/holopix/banner-main-2.webp create mode 100644 web/src/user-console/assets/holopix/banner-main-3.webp create mode 100644 web/src/user-console/assets/holopix/banner-main.webp create mode 100644 web/src/user-console/assets/holopix/banner-side-1.webp create mode 100644 web/src/user-console/assets/holopix/banner-side-2.webp create mode 100644 web/src/user-console/assets/holopix/board.webp create mode 100644 web/src/user-console/assets/holopix/card01.jpg create mode 100644 web/src/user-console/assets/holopix/card02.jpg create mode 100644 web/src/user-console/assets/holopix/card03.jpg create mode 100644 web/src/user-console/assets/holopix/card04.jpg create mode 100644 web/src/user-console/assets/holopix/card05.jpg create mode 100644 web/src/user-console/assets/holopix/card06.jpg create mode 100644 web/src/user-console/assets/holopix/card07.webp create mode 100644 web/src/user-console/assets/holopix/card08.jpg create mode 100644 web/src/user-console/assets/holopix/card09.jpg create mode 100644 web/src/user-console/assets/holopix/card10.jpg create mode 100644 web/src/user-console/assets/holopix/card11.webp create mode 100644 web/src/user-console/assets/holopix/card12.webp create mode 100644 web/src/user-console/assets/holopix/card13.webp create mode 100644 web/src/user-console/assets/holopix/card14.jpg create mode 100644 web/src/user-console/assets/holopix/card15.webp create mode 100644 web/src/user-console/assets/holopix/card16.webp create mode 100644 web/src/user-console/assets/holopix/card17.webp create mode 100644 web/src/user-console/assets/holopix/card18.webp create mode 100644 web/src/user-console/assets/holopix/card19.webp create mode 100644 web/src/user-console/assets/holopix/card20.jpg create mode 100644 web/src/user-console/assets/holopix/explore.webp create mode 100644 web/src/user-console/assets/holopix/login-reward-label.svg create mode 100644 web/src/user-console/assets/holopix/login-reward-panel.webp create mode 100644 web/src/user-console/assets/holopix/login-reward.gif create mode 100644 web/src/user-console/assets/holopix/visitor-card-bg.png create mode 100644 web/src/user-console/assets/holopix/visitor-panel.png create mode 100644 web/src/user-console/components/content/ArtworkCard.module.css create mode 100644 web/src/user-console/components/content/ArtworkCard.tsx create mode 100644 web/src/user-console/components/content/ArtworkGrid.module.css create mode 100644 web/src/user-console/components/content/ArtworkGrid.tsx create mode 100644 web/src/user-console/components/content/HeroCarousel.module.css create mode 100644 web/src/user-console/components/content/HeroCarousel.tsx create mode 100644 web/src/user-console/components/layout/AppShell.module.css create mode 100644 web/src/user-console/components/layout/AppShell.tsx create mode 100644 web/src/user-console/components/layout/Avatar.module.css create mode 100644 web/src/user-console/components/layout/Avatar.tsx create mode 100644 web/src/user-console/components/primitives/Button.module.css create mode 100644 web/src/user-console/components/primitives/Button.tsx create mode 100644 web/src/user-console/components/primitives/Feedback.module.css create mode 100644 web/src/user-console/components/primitives/Feedback.tsx create mode 100644 web/src/user-console/components/primitives/FormControls.module.css create mode 100644 web/src/user-console/components/primitives/FormControls.tsx create mode 100644 web/src/user-console/components/primitives/IconButton.module.css create mode 100644 web/src/user-console/components/primitives/IconButton.tsx create mode 100644 web/src/user-console/components/primitives/Selection.module.css create mode 100644 web/src/user-console/components/primitives/Selection.tsx create mode 100644 web/src/user-console/pages/ComponentsPage.module.css create mode 100644 web/src/user-console/pages/ComponentsPage.tsx create mode 100644 web/src/user-console/pages/HomePage.module.css create mode 100644 web/src/user-console/pages/HomePage.tsx create mode 100644 web/src/user-console/pages/PlaceholderPage.module.css create mode 100644 web/src/user-console/pages/PlaceholderPage.tsx create mode 100644 web/src/user-console/styles/global.css create mode 100644 web/src/user-console/styles/tokens.css diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..54c89c6 --- /dev/null +++ b/.env.example @@ -0,0 +1,32 @@ +# Public/local defaults only. Never put provider keys, payment signatures, or +# SMTP/SMS credentials in this file. +MIRAGENFLOW_HOST=127.0.0.1 +MIRAGENFLOW_PORT=3100 +MIRAGENFLOW_ACCESS_TOKEN_SECRET=replace-with-a-random-secret +MIRAGENFLOW_ACCESS_TOKEN_TTL_SECONDS=900 +MIRAGENFLOW_REFRESH_COOKIE=miragenflow_refresh +MIRAGENFLOW_COOKIE_SECURE=false +MIRAGENFLOW_ADMIN_EMAIL=admin@admin.com +MIRAGENFLOW_ADMIN_PASSWORD=admin +MIRAGENFLOW_ADMIN_MFA_REQUIRED=false +MIRAGENFLOW_ADMIN_MFA_SECRET= +MIRAGENFLOW_ADMIN_CAPTCHA_REQUIRED=false +# Development only: let the local super administrator execute its own approval. +# Production always requires another financial administrator. +MIRAGENFLOW_ADMIN_SELF_APPROVAL=true +MIRAGENFLOW_USER_MFA_REQUIRED=false +MIRAGENFLOW_USER_VERIFICATION_REQUIRED=false +MIRAGENFLOW_EMAIL_REGISTRATION_VERIFICATION_REQUIRED=false +MIRAGENFLOW_PHONE_REGISTRATION_VERIFICATION_REQUIRED=false +MIRAGENFLOW_CAPTCHA_REQUIRED=false +# Development only: allow provider emulators on localhost/private networks. +# Keep false in production (the production launcher forces this closed). +MIRAGENFLOW_ALLOW_LOCAL_PROVIDER_URLS=true +MIRAGENFLOW_PERSISTENCE_ADAPTER=memory +MIRAGENFLOW_QUEUE_ADAPTER=memory +DATABASE_URL= +REDIS_URL= +MIRAGENFLOW_CHANNEL_ENCRYPTION_KEY=replace-with-a-separate-random-key +MIRAGENFLOW_PAYMENT_WEBHOOK_SECRET=replace-with-a-random-webhook-secret +# Local fixture only: comma-separated channel ids to force retryable failures. +MIRAGENFLOW_FIXTURE_FAIL_CHANNELS= diff --git a/AGENTS.md b/AGENTS.md index cf9a71f..d3a4562 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,8 +21,8 @@ ## 前端规范 -- 前端使用 Vite、React、React Router、TypeScript、Ant Design、Tailwind、Zustand。 -- 编写 Ant Design 相关代码时,参考 https://ant.design/llms-full.txt 理解组件 API、示例和设计规范,并优先结合项目当前 antd 版本与既有写法。 +- 前端使用 Vite、React、React Router、TypeScript、TDesign、Tailwind、Zustand。 +- 编写 TDesign 相关代码时,优先结合项目当前锁定版本、共享 `packages/ui` Provider 和既有适配层写法;不要重新引入 Ant Design 或其他普通控件库。 - 外部服务请求统一放在 `web/src/services/api/`,由浏览器前端直连,不假设存在项目后端。 - 全局或跨页面状态优先放在 `web/src/stores/`。 - 已经放在全局 store 或全局 hook 中的状态/动作,组件需要时直接使用对应 store/hook,不要为了“纯组件”层层透传 props;避免一个组件传递过多参数。 @@ -34,11 +34,24 @@ - 不要新增只做简单转发的组件,例如只 `return {children}` 或只换个名字透传 props;直接在使用处使用真实组件或把逻辑写进当前文件。 - 页面私有 hook 放在对应页面目录下,例如 `admin/assets/use-admin-assets.ts`;只有多个页面真实复用的 hook 才放到外层 `hooks/`。 - 管理后台页面私有组件放到各自页面目录的 `components/` 下,例如 `admin/assets/components/`、`admin/prompts/components/`;不要为了单页面使用放到 `admin/components/` 共享目录。 -- 管理后台主题、背景、卡片阴影、表格配色等统一在 `web/src/lib/app-theme.ts`、`AppProviders` 或必要的全局 CSS 作用域中配置;页面私有组件不要自己写 `dark ? ...` 主题分支。 -- Ant Design 的 Dropdown、Menu、Select、Cascader、TreeSelect 等弹层背景、悬停态和选中态颜色统一通过 `web/src/lib/app-theme.ts` 的全局 Alias Token 与组件 Token 配置;不要在业务组件内为单个弹层覆盖颜色。 +- 前后台主题、背景、卡片阴影、表格配色等统一在 `web/src/lib/tdesign-theme.ts`、`AppProviders` 或必要的全局 CSS 作用域中配置;页面私有组件不要自己写 `dark ? ...` 主题分支。 +- TDesign 的 Dropdown、Menu、Select、Cascader、TreeSelect 等弹层背景、悬停态和选中态颜色统一通过 `web/src/lib/tdesign-theme.ts` 的主题变量与组件 Token 配置;不要在业务组件内为单个弹层覆盖颜色。 - 组件优先使用函数组件和现有 hooks,不新增大型状态管理方案。 -- UI 图标优先使用 `lucide-react` 或项目已经使用的 Ant Design 图标。 +- 前后台通用 UI 图标统一使用项目内本地化的 Lineicons 子集;只收录实际使用的图标,禁止引入 CDN、WebFont、完整图标目录或其他业务图标库。品牌标识、模型标识、媒体内容和画布连线等具有独立语义的视觉资产不按通用 UI 图标替换。 +- 用户端业务下拉不得使用浏览器原生 `} placeholder='请输入搜索内容' />; - -export default React.memo(Search); diff --git a/admin/src/layouts/components/Header/index.module.less b/admin/src/layouts/components/Header/index.module.less index f45eeae..449a8ef 100644 --- a/admin/src/layouts/components/Header/index.module.less +++ b/admin/src/layouts/components/Header/index.module.less @@ -9,3 +9,27 @@ justify-content: space-between; border-bottom: 1px solid var(--td-component-stroke); } + +.menuButton { + width: 40px; + height: 40px; +} + +.menuButton > svg { + width: 24px !important; + height: 24px !important; +} + +@media (max-width: 600px) { + .panel { + padding-left: 8px; + padding-right: 8px; + + :global { + .t-space { + min-width: 0; + gap: 4px; + } + } + } +} diff --git a/admin/src/layouts/components/Header/index.tsx b/admin/src/layouts/components/Header/index.tsx index c81bec2..a7f1eaa 100644 --- a/admin/src/layouts/components/Header/index.tsx +++ b/admin/src/layouts/components/Header/index.tsx @@ -1,11 +1,12 @@ import React, { memo } from 'react'; -import { Layout, Button, Space } from 'tdesign-react'; -import { ViewListIcon } from 'tdesign-icons-react'; +import { Layout } from '@miragenflow/ui/layout'; +import { Space } from '@miragenflow/ui/space'; +import { MiragenFlowButton } from '@miragenflow/ui'; +import { ViewListIcon } from 'components/LineIcons'; import { useAppDispatch, useAppSelector } from 'modules/store'; import { selectGlobal, toggleMenu } from 'modules/global'; import HeaderIcon from './HeaderIcon'; import { HeaderMenu } from '../Menu'; -import Search from './Search'; import Style from './index.module.less'; const { Header } = Layout; @@ -28,14 +29,15 @@ export default memo((props: { showMenu?: boolean }) => { } else { HeaderLeft = ( -