diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29aa99dad..f994d9d4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: run: pnpm test - name: Unit Tests (importer) - run: pnpm --filter @maic/importer test + run: pnpm --filter @openmaic/importer test e2e: name: E2E Tests diff --git a/.github/workflows/publish-packages.yml b/.github/workflows/publish-packages.yml new file mode 100644 index 000000000..15593a742 --- /dev/null +++ b/.github/workflows/publish-packages.yml @@ -0,0 +1,97 @@ +name: Publish @openmaic packages + +# Publishes the @openmaic/* package family (dsl, renderer, importer) to npm. +# +# Scope is pinned to those three packages by name on purpose: the workspace also +# contains vendored forks (mathml2omml, pptxgenjs) whose names we do NOT own, so +# a recursive publish must never touch them. +# +# Triggers: +# - push a tag like `@openmaic/dsl@0.1.0` (real publish). NOTE: any @openmaic/* +# tag runs `pnpm -r publish` over all three packages — pnpm skips versions +# already on the registry, so in steady state this is idempotent. The tag is a +# release marker, not a per-package gate: an unpublished version bump for a +# sibling package sitting in the repo will also be published by any tag. Bump +# only the package(s) you intend to release in the same change. +# - manual run via the Actions tab (dry-run by default; uncheck to publish) +# +# Prerequisites (one-time, see issue #778): +# - npm org `openmaic` created and owning the `@openmaic` scope +# - repo secret NPM_TOKEN: an automation/granular token with publish rights +# to @openmaic/*, 2FA set to "auth only" (not "auth and writes") so CI can publish + +on: + push: + tags: + - "@openmaic/*@*" + workflow_dispatch: + inputs: + dry_run: + description: "Pack and validate only, do not publish" + type: boolean + default: true + +concurrency: + group: publish-openmaic-${{ github.ref }} + cancel-in-progress: false + +jobs: + publish: + name: Build, validate & publish + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write # required for npm provenance + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + registry-url: https://registry.npmjs.org + + - run: pnpm install --frozen-lockfile + + # Build in dependency order (dsl first); renderer/importer resolve + # @openmaic/dsl through the workspace link. + - name: Build @openmaic packages + run: >- + pnpm -r + --filter "@openmaic/dsl" + --filter "@openmaic/renderer" + --filter "@openmaic/importer" + run build + + # Gate BEFORE any publish: a failure here aborts before a single package + # reaches the registry. npm versions are immutable, so this prevents a + # partial release (e.g. dsl published, then a sibling's test fails). + - name: Test & typecheck (pre-publish gate) + run: | + pnpm --filter "@openmaic/dsl" --filter "@openmaic/importer" run test + pnpm --filter "@openmaic/dsl" --filter "@openmaic/renderer" run typecheck + + # Always review tarball contents before any publish. + - name: Inspect tarball contents (dry-run pack) + run: | + for pkg in dsl renderer importer; do + echo "::group::@openmaic/$pkg" + ( cd "packages/@openmaic/$pkg" && pnpm pack --dry-run ) + echo "::endgroup::" + done + + # Real publish. pnpm rewrites the workspace:* dep on @openmaic/dsl to the + # concrete published version and publishes in topological order. + - name: Publish to npm + if: github.event_name == 'push' || inputs.dry_run == false + run: >- + pnpm -r + --filter "@openmaic/dsl" + --filter "@openmaic/renderer" + --filter "@openmaic/importer" + publish --access public --provenance --no-git-checks + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_CONFIG_PROVENANCE: "true" diff --git a/.gitignore b/.gitignore index 9a831e26a..cd88cae29 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,7 @@ CLAUDE.local.md /build /dist -# generated: synced from packages/@maic/importer/dist for runtime URL import +# generated: synced from packages/@openmaic/importer/dist for runtime URL import /public/vendor/maic-importer # misc diff --git a/.prettierignore b/.prettierignore index 372ccb087..99df28556 100644 --- a/.prettierignore +++ b/.prettierignore @@ -6,10 +6,10 @@ node_modules/ packages/pptxgenjs/ packages/mathml2omml/ -# @maic workspace packages: the source is formatted to the root style, but skip +# @openmaic workspace packages: the source is formatted to the root style, but skip # generated build output and the vendored legacy reference under the importer. -packages/@maic/*/dist/ -packages/@maic/importer/src1/ +packages/@openmaic/*/dist/ +packages/@openmaic/importer/src1/ # Docs site (separate Fumadocs app with its own toolchain) packages/docs/ diff --git a/app/eval/whiteboard/page.tsx b/app/eval/whiteboard/page.tsx index 1efda2636..29a1177c9 100644 --- a/app/eval/whiteboard/page.tsx +++ b/app/eval/whiteboard/page.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'; import { ScreenElement } from '@/components/slide-renderer/Editor/ScreenElement'; import { SceneProvider } from '@/lib/contexts/scene-context'; import { useStageStore } from '@/lib/store/stage'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; const EVAL_STAGE_ID = '__eval_stage__'; const EVAL_SCENE_ID = '__eval_scene__'; diff --git a/app/globals.css b/app/globals.css index a3bf931ee..b024b87cf 100644 --- a/app/globals.css +++ b/app/globals.css @@ -6,7 +6,7 @@ Tailwind must scan its dist so those classes get generated. */ @source '../node_modules/streamdown/dist/*.js'; @source '../node_modules/@streamdown/code/dist/*.js'; -@source "../node_modules/@maic/renderer/dist/**/*.{js,cjs}"; +@source "../node_modules/@openmaic/renderer/dist/**/*.{js,cjs}"; /* slide-renderer-demo is gitignored (local sandbox), which makes Tailwind v4's auto source detection skip it. Re-include it explicitly so the demo's Tailwind classes (e.g. bg-violet-600) still get generated. */ diff --git a/app/layout.tsx b/app/layout.tsx index a426828f2..75e50e0f1 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -3,7 +3,7 @@ import localFont from 'next/font/local'; import { GeistSans } from 'geist/font/sans'; import { GeistMono } from 'geist/font/mono'; import './globals.css'; -import '@maic/renderer/fonts.css'; +import '@openmaic/renderer/fonts.css'; import 'animate.css'; import 'katex/dist/katex.min.css'; import { ThemeProvider } from '@/lib/hooks/use-theme'; diff --git a/app/page.tsx b/app/page.tsx index 1416183bc..b4d32e8cb 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -50,7 +50,7 @@ import { revokeThumbnailSlideMediaUrls, } from '@/lib/utils/stage-storage'; import { SlideThumbnail } from '@/components/slide-renderer/SlideThumbnail'; -import type { Slide } from '@maic/dsl'; +import type { Slide } from '@openmaic/dsl'; import { useMediaGenerationStore } from '@/lib/store/media-generation'; import { toast } from 'sonner'; import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; diff --git a/components/edit/surfaces/slide/AnchoredElementBar.tsx b/components/edit/surfaces/slide/AnchoredElementBar.tsx index 03613022d..cbbf62efd 100644 --- a/components/edit/surfaces/slide/AnchoredElementBar.tsx +++ b/components/edit/surfaces/slide/AnchoredElementBar.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import { AnchoredBar } from './AnchoredBar'; import { DeleteButton } from './DeleteButton'; import { ImageActions } from './ImageActions'; diff --git a/components/edit/surfaces/slide/ImageActions.tsx b/components/edit/surfaces/slide/ImageActions.tsx index 156a8618e..93e8828ea 100644 --- a/components/edit/surfaces/slide/ImageActions.tsx +++ b/components/edit/surfaces/slide/ImageActions.tsx @@ -3,7 +3,7 @@ import { FlipHorizontal, FlipVertical, ImageUp } from 'lucide-react'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; import { useI18n } from '@/lib/hooks/use-i18n'; -import type { PPTImageElement } from '@maic/dsl'; +import type { PPTImageElement } from '@openmaic/dsl'; import { ImagePicker } from './ImagePicker'; import { replaceImageSrc, toggleImageFlip } from './use-slide-surface'; diff --git a/components/edit/surfaces/slide/editing-state.ts b/components/edit/surfaces/slide/editing-state.ts index f4190c058..3ce8ec786 100644 --- a/components/edit/surfaces/slide/editing-state.ts +++ b/components/edit/surfaces/slide/editing-state.ts @@ -1,4 +1,4 @@ -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; /** * The single selected slide element — `undefined` unless exactly one element is diff --git a/components/edit/surfaces/slide/use-slide-surface.ts b/components/edit/surfaces/slide/use-slide-surface.ts index ac799394d..af66d246a 100644 --- a/components/edit/surfaces/slide/use-slide-surface.ts +++ b/components/edit/surfaces/slide/use-slide-surface.ts @@ -12,7 +12,7 @@ import { defaultRichTextAttrs } from '@/lib/prosemirror/utils'; import { useCanvasStore } from '@/lib/store/canvas'; import { useStageStore } from '@/lib/store/stage'; import type { SlideContent } from '@/lib/types/stage'; -import type { PPTElement, PPTImageElement, SlideBackground } from '@maic/dsl'; +import type { PPTElement, PPTImageElement, SlideBackground } from '@openmaic/dsl'; import { ImagePicker } from './ImagePicker'; import { BackgroundControl } from './BackgroundControl'; import { useSlideEditSession } from './slide-edit-session'; diff --git a/components/slide-renderer/Editor/Canvas/EditableElement.tsx b/components/slide-renderer/Editor/Canvas/EditableElement.tsx index 6ceeb5a66..4139e0a69 100644 --- a/components/slide-renderer/Editor/Canvas/EditableElement.tsx +++ b/components/slide-renderer/Editor/Canvas/EditableElement.tsx @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import { ElementTypes, type PPTElement } from '@maic/dsl'; +import { ElementTypes, type PPTElement } from '@openmaic/dsl'; import { ImageElement } from '../../components/element/ImageElement'; import { TextElement } from '../../components/element/TextElement'; import { LineElement } from '../../components/element/LineElement'; diff --git a/components/slide-renderer/Editor/Canvas/GridLines.tsx b/components/slide-renderer/Editor/Canvas/GridLines.tsx index 8d8889a2b..910212938 100644 --- a/components/slide-renderer/Editor/Canvas/GridLines.tsx +++ b/components/slide-renderer/Editor/Canvas/GridLines.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { useCanvasStore, useSceneSelector } from '@/lib/store'; import type { SlideContent } from '@/lib/types/stage'; -import type { SlideBackground } from '@maic/dsl'; +import type { SlideBackground } from '@openmaic/dsl'; export function GridLines() { const gridLineSize = useCanvasStore.use.gridLineSize(); diff --git a/components/slide-renderer/Editor/Canvas/Operate/CommonElementOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/CommonElementOperate.tsx index d591a7f6e..466686b4a 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/CommonElementOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/CommonElementOperate.tsx @@ -1,6 +1,11 @@ import { useMemo } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTVideoElement, PPTLatexElement, PPTAudioElement, PPTChartElement } from '@maic/dsl'; +import type { + PPTVideoElement, + PPTLatexElement, + PPTAudioElement, + PPTChartElement, +} from '@openmaic/dsl'; import type { OperateResizeHandlers } from '@/lib/types/edit'; import { useCommonOperate } from '../hooks/useCommonOperate'; import { RotateHandler } from './RotateHandler'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/ImageElementOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/ImageElementOperate.tsx index 992aabe40..0b5dd6611 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/ImageElementOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/ImageElementOperate.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTImageElement } from '@maic/dsl'; +import type { PPTImageElement } from '@openmaic/dsl'; import type { OperateResizeHandlers } from '@/lib/types/edit'; import { useCommonOperate } from '../hooks/useCommonOperate'; import { RotateHandler } from './RotateHandler'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/LineElementOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/LineElementOperate.tsx index a40cc9b8b..aebc046a3 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/LineElementOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/LineElementOperate.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTLineElement } from '@maic/dsl'; +import type { PPTLineElement } from '@openmaic/dsl'; import { OperateLineHandlers } from '@/lib/types/edit'; import { ResizeHandler } from './ResizeHandler'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/MultiSelectOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/MultiSelectOperate.tsx index 4ef03db6d..7b736c3f2 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/MultiSelectOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/MultiSelectOperate.tsx @@ -1,6 +1,6 @@ import { useMemo, useEffect, useState } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import { getElementListRange } from '@/lib/utils/element'; import type { OperateResizeHandlers, MultiSelectRange } from '@/lib/types/edit'; import { useCommonOperate } from '../hooks/useCommonOperate'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/ShapeElementOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/ShapeElementOperate.tsx index 0699429c3..ed4c8a507 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/ShapeElementOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/ShapeElementOperate.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTShapeElement } from '@maic/dsl'; +import type { PPTShapeElement } from '@openmaic/dsl'; import type { OperateResizeHandlers } from '@/lib/types/edit'; import { SHAPE_PATH_FORMULAS } from '@/configs/shapes'; import { useCommonOperate } from '../hooks/useCommonOperate'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/TableElementOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/TableElementOperate.tsx index 7aeb2a971..fe6aea012 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/TableElementOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/TableElementOperate.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTTableElement } from '@maic/dsl'; +import type { PPTTableElement } from '@openmaic/dsl'; import type { OperateResizeHandlers } from '@/lib/types/edit'; import { useCommonOperate } from '../hooks/useCommonOperate'; import { RotateHandler } from './RotateHandler'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/TextElementOperate.tsx b/components/slide-renderer/Editor/Canvas/Operate/TextElementOperate.tsx index 19c7323d0..3353c0c75 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/TextElementOperate.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/TextElementOperate.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { useCanvasStore } from '@/lib/store'; -import type { PPTTextElement } from '@maic/dsl'; +import type { PPTTextElement } from '@openmaic/dsl'; import type { OperateResizeHandlers } from '@/lib/types/edit'; import { useCommonOperate } from '../hooks/useCommonOperate'; import { RotateHandler } from './RotateHandler'; diff --git a/components/slide-renderer/Editor/Canvas/Operate/index.tsx b/components/slide-renderer/Editor/Canvas/Operate/index.tsx index 618477a28..69368e6f1 100644 --- a/components/slide-renderer/Editor/Canvas/Operate/index.tsx +++ b/components/slide-renderer/Editor/Canvas/Operate/index.tsx @@ -10,7 +10,7 @@ import { type PPTChartElement, type Slide, type PPTAnimation, -} from '@maic/dsl'; +} from '@openmaic/dsl'; import type { OperateLineHandlers, OperateResizeHandlers } from '@/lib/types/edit'; import { ImageElementOperate } from './ImageElementOperate'; import { TextElementOperate } from './TextElementOperate'; diff --git a/components/slide-renderer/Editor/Canvas/Ruler.tsx b/components/slide-renderer/Editor/Canvas/Ruler.tsx index 26361be77..f58062875 100644 --- a/components/slide-renderer/Editor/Canvas/Ruler.tsx +++ b/components/slide-renderer/Editor/Canvas/Ruler.tsx @@ -1,7 +1,7 @@ import { useMemo, useEffect, useState } from 'react'; import { useCanvasStore } from '@/lib/store'; import { getElementListRange } from '@/lib/utils/element'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import type { ViewportStyles } from './hooks/useViewportSize'; interface RulerProps { diff --git a/components/slide-renderer/Editor/Canvas/ShapeCreateCanvas.tsx b/components/slide-renderer/Editor/Canvas/ShapeCreateCanvas.tsx index 8b5798b72..bcae8e1de 100644 --- a/components/slide-renderer/Editor/Canvas/ShapeCreateCanvas.tsx +++ b/components/slide-renderer/Editor/Canvas/ShapeCreateCanvas.tsx @@ -3,7 +3,7 @@ import { useKeyboardStore } from '@/lib/store/keyboard'; import { useCanvasStore, useSceneSelector } from '@/lib/store'; import type { CreateCustomShapeData } from '@/lib/types/edit'; import type { SlideContent } from '@/lib/types/stage'; -import type { SlideTheme } from '@maic/dsl'; +import type { SlideTheme } from '@openmaic/dsl'; import { toast } from 'sonner'; interface ShapeCreateCanvasProps { diff --git a/components/slide-renderer/Editor/Canvas/ViewportBackground.tsx b/components/slide-renderer/Editor/Canvas/ViewportBackground.tsx index 2d027b9f9..33d788d16 100644 --- a/components/slide-renderer/Editor/Canvas/ViewportBackground.tsx +++ b/components/slide-renderer/Editor/Canvas/ViewportBackground.tsx @@ -3,7 +3,7 @@ import { useSceneSelector } from '@/lib/contexts/scene-context'; import { useSlideBackgroundStyle } from '@/lib/hooks/use-slide-background-style'; import type { SlideContent } from '@/lib/types/stage'; -import type { SlideBackground } from '@maic/dsl'; +import type { SlideBackground } from '@openmaic/dsl'; /** * Viewport background component using Scene Context diff --git a/components/slide-renderer/Editor/Canvas/hooks/useDragElement.ts b/components/slide-renderer/Editor/Canvas/hooks/useDragElement.ts index 6a36bf1f1..951891e61 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useDragElement.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useDragElement.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import { useCanvasStore, useKeyboardStore } from '@/lib/store'; import { useHistorySnapshot } from '@/lib/hooks/use-history-snapshot'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import type { AlignmentLineProps } from '@/lib/types/edit'; import { getRectRotatedRange, uniqAlignLines, type AlignLine } from '@/lib/utils/element'; import { useCanvasOperations } from '@/lib/hooks/use-canvas-operations'; diff --git a/components/slide-renderer/Editor/Canvas/hooks/useDragLineElement.ts b/components/slide-renderer/Editor/Canvas/hooks/useDragLineElement.ts index 638b0acbb..28013cf1f 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useDragLineElement.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useDragLineElement.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import { useKeyboardStore } from '@/lib/store/keyboard'; import { useCanvasStore } from '@/lib/store'; -import type { PPTElement, PPTLineElement } from '@maic/dsl'; +import type { PPTElement, PPTLineElement } from '@openmaic/dsl'; import { OperateLineHandlers } from '@/lib/types/edit'; import { useHistorySnapshot } from '@/lib/hooks/use-history-snapshot'; import { useCanvasOperations } from '@/lib/hooks/use-canvas-operations'; diff --git a/components/slide-renderer/Editor/Canvas/hooks/useInsertFromCreateSelection.ts b/components/slide-renderer/Editor/Canvas/hooks/useInsertFromCreateSelection.ts index a67121611..eb60b60d7 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useInsertFromCreateSelection.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useInsertFromCreateSelection.ts @@ -3,7 +3,7 @@ import { useCanvasStore } from '@/lib/store'; import { createElementId } from '@/lib/edit/element-id'; import { useCanvasOperations } from '@/lib/hooks/use-canvas-operations'; import type { CreateElementSelectionData } from '@/lib/types/edit'; -import type { PPTTextElement } from '@maic/dsl'; +import type { PPTTextElement } from '@openmaic/dsl'; // Click-fallback default size when the user clicks instead of drags (or wobbles // under this in either dimension): a sensibly-sized text box at the start point. diff --git a/components/slide-renderer/Editor/Canvas/hooks/useMouseSelection.ts b/components/slide-renderer/Editor/Canvas/hooks/useMouseSelection.ts index faf3ca43b..0a49e5e99 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useMouseSelection.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useMouseSelection.ts @@ -1,7 +1,7 @@ import { useState, useCallback, type RefObject } from 'react'; import { useKeyboardStore } from '@/lib/store/keyboard'; import { useCanvasStore } from '@/lib/store'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import { getElementRange } from '@/lib/utils/element'; export function useMouseSelection( diff --git a/components/slide-renderer/Editor/Canvas/hooks/useMoveShapeKeypoint.ts b/components/slide-renderer/Editor/Canvas/hooks/useMoveShapeKeypoint.ts index b6507a96a..a9c712036 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useMoveShapeKeypoint.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useMoveShapeKeypoint.ts @@ -1,5 +1,5 @@ import { useCallback } from 'react'; -import type { PPTElement, PPTShapeElement } from '@maic/dsl'; +import type { PPTElement, PPTShapeElement } from '@openmaic/dsl'; import { useHistorySnapshot } from '@/lib/hooks/use-history-snapshot'; import { SHAPE_PATH_FORMULAS } from '@/configs/shapes'; import { useCanvasOperations } from '@/lib/hooks/use-canvas-operations'; diff --git a/components/slide-renderer/Editor/Canvas/hooks/useRotateElement.ts b/components/slide-renderer/Editor/Canvas/hooks/useRotateElement.ts index 286f197ee..469ad6e2d 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useRotateElement.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useRotateElement.ts @@ -5,7 +5,7 @@ import type { PPTVideoElement, PPTAudioElement, PPTChartElement, -} from '@maic/dsl'; +} from '@openmaic/dsl'; import { useHistorySnapshot } from '@/lib/hooks/use-history-snapshot'; import { useCanvasOperations } from '@/lib/hooks/use-canvas-operations'; diff --git a/components/slide-renderer/Editor/Canvas/hooks/useScaleElement.ts b/components/slide-renderer/Editor/Canvas/hooks/useScaleElement.ts index 47264ce4d..0c4f17e7f 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useScaleElement.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useScaleElement.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import { useCanvasStore } from '@/lib/store'; import { useKeyboardStore } from '@/lib/store/keyboard'; -import type { PPTElement, PPTLineElement, PPTImageElement, PPTShapeElement } from '@maic/dsl'; +import type { PPTElement, PPTLineElement, PPTImageElement, PPTShapeElement } from '@openmaic/dsl'; import { OperateResizeHandlers, type AlignmentLineProps, diff --git a/components/slide-renderer/Editor/Canvas/hooks/useSelectElement.ts b/components/slide-renderer/Editor/Canvas/hooks/useSelectElement.ts index e1ebe0a8a..fcbb65cdc 100644 --- a/components/slide-renderer/Editor/Canvas/hooks/useSelectElement.ts +++ b/components/slide-renderer/Editor/Canvas/hooks/useSelectElement.ts @@ -2,7 +2,7 @@ import { useCallback } from 'react'; import { uniq } from 'lodash'; import { useCanvasStore } from '@/lib/store'; import { useKeyboardStore } from '@/lib/store/keyboard'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; /** * Hook for handling element selection in Canvas diff --git a/components/slide-renderer/Editor/Canvas/index.tsx b/components/slide-renderer/Editor/Canvas/index.tsx index 48e51fcaf..b7a2c53a6 100644 --- a/components/slide-renderer/Editor/Canvas/index.tsx +++ b/components/slide-renderer/Editor/Canvas/index.tsx @@ -24,7 +24,7 @@ import { ElementCreateSelection } from './ElementCreateSelection'; import { ShapeCreateCanvas } from './ShapeCreateCanvas'; import { Ruler } from './Ruler'; import { GridLines } from './GridLines'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import type { AlignmentLineProps } from '@/lib/types/edit'; import type { ContextmenuItem } from './EditableElement'; import type { SlideContent } from '@/lib/types/stage'; diff --git a/components/slide-renderer/Editor/HighlightOverlay.tsx b/components/slide-renderer/Editor/HighlightOverlay.tsx index 19691d42b..7edd9af62 100644 --- a/components/slide-renderer/Editor/HighlightOverlay.tsx +++ b/components/slide-renderer/Editor/HighlightOverlay.tsx @@ -4,7 +4,7 @@ import { useMemo } from 'react'; import { useSceneSelector } from '@/lib/contexts/scene-context'; import { useCanvasStore } from '@/lib/store/canvas'; import type { SlideContent } from '@/lib/types/stage'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; /** * Highlight overlay component diff --git a/components/slide-renderer/Editor/LaserPointerOverlay.tsx b/components/slide-renderer/Editor/LaserPointerOverlay.tsx index c24f0f1b3..c6d42f155 100644 --- a/components/slide-renderer/Editor/LaserPointerOverlay.tsx +++ b/components/slide-renderer/Editor/LaserPointerOverlay.tsx @@ -5,7 +5,7 @@ import { AnimatePresence } from 'motion/react'; import { useSceneSelector } from '@/lib/contexts/scene-context'; import { useCanvasStore } from '@/lib/store/canvas'; import type { SlideContent } from '@/lib/types/stage'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; import { LaserOverlay } from './LaserOverlay'; interface LaserPointerOverlayProps { diff --git a/components/slide-renderer/Editor/ScreenCanvas.tsx b/components/slide-renderer/Editor/ScreenCanvas.tsx index 60d05b846..4a924d6df 100644 --- a/components/slide-renderer/Editor/ScreenCanvas.tsx +++ b/components/slide-renderer/Editor/ScreenCanvas.tsx @@ -9,7 +9,7 @@ import { useCanvasStore } from '@/lib/store'; import { useSceneSelector } from '@/lib/contexts/scene-context'; import { findElementGeometry } from '@/lib/utils/geometry'; import type { SlideContent } from '@/lib/types/stage'; -import type { PPTElement, SlideBackground } from '@maic/dsl'; +import type { PPTElement, SlideBackground } from '@openmaic/dsl'; import type { PercentageGeometry } from '@/lib/types/action'; import { useViewportSize } from './Canvas/hooks/useViewportSize'; import { useRef, useMemo } from 'react'; diff --git a/components/slide-renderer/Editor/ScreenElement.tsx b/components/slide-renderer/Editor/ScreenElement.tsx index 83d7bf0c1..d153e9497 100644 --- a/components/slide-renderer/Editor/ScreenElement.tsx +++ b/components/slide-renderer/Editor/ScreenElement.tsx @@ -1,6 +1,6 @@ 'use client'; -import { ElementTypes, type PPTElement } from '@maic/dsl'; +import { ElementTypes, type PPTElement } from '@openmaic/dsl'; import { useMemo } from 'react'; import { BaseImageElement } from '../components/element/ImageElement/BaseImageElement'; diff --git a/components/slide-renderer/Editor/SpotlightOverlay.tsx b/components/slide-renderer/Editor/SpotlightOverlay.tsx index b8a767699..7d5f63f7a 100644 --- a/components/slide-renderer/Editor/SpotlightOverlay.tsx +++ b/components/slide-renderer/Editor/SpotlightOverlay.tsx @@ -5,7 +5,7 @@ import { motion, AnimatePresence } from 'motion/react'; import { useSceneSelector } from '@/lib/contexts/scene-context'; import { useCanvasStore } from '@/lib/store/canvas'; import type { SlideContent } from '@/lib/types/stage'; -import type { PPTElement } from '@maic/dsl'; +import type { PPTElement } from '@openmaic/dsl'; interface SpotlightRect { x: number; diff --git a/components/slide-renderer/SlideThumbnail.tsx b/components/slide-renderer/SlideThumbnail.tsx index 5d7ed305b..874278a9c 100644 --- a/components/slide-renderer/SlideThumbnail.tsx +++ b/components/slide-renderer/SlideThumbnail.tsx @@ -2,11 +2,11 @@ import { useMemo } from 'react'; import { Play } from 'lucide-react'; -import type { Slide, PPTElement, PPTVideoElement } from '@maic/dsl'; +import type { Slide, PPTElement, PPTVideoElement } from '@openmaic/dsl'; import { isMediaPlaceholder, useMediaGenerationStore } from '@/lib/store/media-generation'; import { useMediaStageId } from '@/lib/contexts/media-stage-context'; import { getVideoMediaRefForElement } from '@/lib/media/video-manifest'; -import { SlideCanvas } from '@maic/renderer'; +import { SlideCanvas } from '@openmaic/renderer'; interface SlideThumbnailProps { /** Slide data */ @@ -43,7 +43,7 @@ function mediaTaskKeyFor(el: PPTElement): string | undefined { * Resolve a slide's generated-media refs against the media-generation store so * the thumbnail stays in sync as generation (and retries) complete. * - * `@maic/renderer` is a pure package: it renders `element.src` as-is and knows + * `@openmaic/renderer` is a pure package: it renders `element.src` as-is and knows * nothing about this app's async media generation. The store never mutates the * slide's elements (it keeps the `gen_*`/`mediaRef` key and tracks the * generated `objectUrl` in a task), so a static render would show the raw @@ -105,7 +105,7 @@ function useResolvedSlide(slide: Slide): Slide { } /** - * Read-only thumbnail rendering for a video element. Replaces `@maic/renderer`'s + * Read-only thumbnail rendering for a video element. Replaces `@openmaic/renderer`'s * default `