From 98b47749e9312e4164fb4770bde64752216632fb Mon Sep 17 00:00:00 2001 From: ErSan Date: Tue, 27 Jan 2026 19:27:23 +0800 Subject: [PATCH] feat: add iframe/video widgets and importer support --- .gitignore | 6 ++ packages/docs/docs/architecture.md | 6 +- packages/docs/docs/index.md | 2 +- packages/docs/docs/migration.md | 4 +- packages/editor/src/editor/Canvas.tsx | 51 ++++++++++ packages/editor/src/editor/EditorApp.tsx | 2 + packages/editor/src/editor/Inspector.tsx | 99 +++++++++++++++++- packages/editor/src/editor/store.ts | 40 +++++++- packages/sdk/src/core/goview/convert.ts | 122 ++++++++++++++++++----- packages/sdk/src/core/schema.ts | 32 +++++- packages/sdk/src/core/widgets/iframe.ts | 13 +++ packages/sdk/src/core/widgets/image.ts | 41 ++++++++ packages/sdk/src/core/widgets/video.ts | 19 ++++ packages/sdk/src/index.ts | 12 +++ packages/sdk/tsconfig.tsbuildinfo | 1 - 15 files changed, 416 insertions(+), 34 deletions(-) create mode 100644 packages/sdk/src/core/widgets/iframe.ts create mode 100644 packages/sdk/src/core/widgets/image.ts create mode 100644 packages/sdk/src/core/widgets/video.ts delete mode 100644 packages/sdk/tsconfig.tsbuildinfo diff --git a/.gitignore b/.gitignore index d7dfc8c..fb5ee8e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,9 @@ Thumbs.db # docs build packages/docs/docs/.vitepress/cache packages/docs/docs/.vitepress/dist + +# TypeScript build info +*.tsbuildinfo + +# local traces +trace.txt diff --git a/packages/docs/docs/architecture.md b/packages/docs/docs/architecture.md index 151a8d4..ab89fc6 100644 --- a/packages/docs/docs/architecture.md +++ b/packages/docs/docs/architecture.md @@ -64,15 +64,15 @@ Represents one dashboard/screen. - Clipboard (copy/paste) - History (command pattern) -## Migration Plan (from go-view) +## Migration Plan (from legacy) We will *not* transplant Vue UI. We will extract **behavior + data contracts** into `sdk`, then rebuild UI in `editor`. -High-signal sources in go-view: +High-signal sources in the legacy codebase: - `src/views/chart/ContentEdit/*` (drag, selection, guides, tools) - `src/store/modules/chartEditStore` (editor state) - `src/hooks/useChartDataFetch.hook.ts` (data fetch) - `src/views/preview/*` (preview scaling + rendering) - `src/packages/*` (widget catalog + configs) -Next step: write a detailed mapping table (go-view module → sdk/editor target) and implement the first vertical slice: **canvas + one widget + import/export**. +Next step: write a detailed mapping table (legacy module → sdk/editor target) and implement the first vertical slice: **canvas + one widget + import/export**. diff --git a/packages/docs/docs/index.md b/packages/docs/docs/index.md index 056102a..703aa8e 100644 --- a/packages/docs/docs/index.md +++ b/packages/docs/docs/index.md @@ -3,4 +3,4 @@ - [Architecture](./architecture) - [Migration Plan](./migration) -This site documents the AstralView monorepo and the ongoing refactor from go-view. +This site documents the AstralView monorepo and the ongoing refactor from a legacy third-party editor codebase. diff --git a/packages/docs/docs/migration.md b/packages/docs/docs/migration.md index 9c85944..8471d3d 100644 --- a/packages/docs/docs/migration.md +++ b/packages/docs/docs/migration.md @@ -1,8 +1,8 @@ -# Migration Plan (go-view → AstralView) +# Migration Plan (Legacy → AstralView) ## Strategy -- Keep go-view as reference under `third_party/go-view`. +- Keep the legacy codebase as reference under `third_party/`. - Extract domain and behaviors into `@astralview/sdk`. - Rebuild UI in `@astralview/editor` (React + Ant Design). diff --git a/packages/editor/src/editor/Canvas.tsx b/packages/editor/src/editor/Canvas.tsx index 7729fa7..fb69f53 100644 --- a/packages/editor/src/editor/Canvas.tsx +++ b/packages/editor/src/editor/Canvas.tsx @@ -512,6 +512,57 @@ function NodeView(props: { height: '100%', objectFit: node.props.fit ?? 'contain', display: 'block', + // Editor parity: allow selecting/dragging the widget even when clicking the media. + pointerEvents: 'none', + }} + /> + + ) : node.type === 'iframe' ? ( +
+