diff --git a/.github/workflows/publish-vscode-extension.yml b/.github/workflows/publish-vscode-extension.yml new file mode 100644 index 000000000000..46412eea22ce --- /dev/null +++ b/.github/workflows/publish-vscode-extension.yml @@ -0,0 +1,52 @@ +name: Publish VSCE/OVX + +on: + workflow_dispatch: + +env: + CI: 1 + PRINT_GITHUB_ANNOTATIONS: 1 +defaults: + run: + shell: bash + +jobs: + publish: + name: Publish VSCE/OVX + environment: vsce publish + timeout-minutes: 15 + runs-on: ubuntu-latest + permissions: + contents: write + concurrency: vscode-extension-publish + + steps: + - name: Generate GH token + id: generate_token + uses: actions/create-github-app-token@v2 + with: + app-id: ${{ secrets.HUPPY_APP_ID }} + private-key: ${{ secrets.HUPPY_APP_PRIVATE_KEY }} + + - name: Check out code + uses: actions/checkout@v6 + with: + persist-credentials: false + submodules: true + token: ${{ steps.generate_token.outputs.token }} + + - name: Configure git credentials + run: git config --global url."https://x-access-token:${{ steps.generate_token.outputs.token }}@github.com/".insteadOf "https://github.com/" + + - uses: ./.github/actions/setup + + - name: Build types + run: yarn build-types + + - name: Publish extension + run: yarn tsx ./internal/scripts/publish-editor-extensions.ts + env: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + OVSX_PAT: ${{ secrets.OVSX_PAT }} + TLDRAW_ENV: production + GH_TOKEN: ${{ steps.generate_token.outputs.token }} diff --git a/.oxlintrc.json b/.oxlintrc.json index 187ee8c16316..a10cdde89036 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -124,7 +124,11 @@ { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" + "caughtErrorsIgnorePattern": "^_", + "fix": { + "imports": "safe-fix", + "variables": "off" + } } ], "no-useless-backreference": "error", diff --git a/apps/docs/content/releases/next.mdx b/apps/docs/content/releases/next.mdx index 1d7baf7183bb..c7cf4f2f1335 100644 --- a/apps/docs/content/releases/next.mdx +++ b/apps/docs/content/releases/next.mdx @@ -5,10 +5,10 @@ author: tldraw date: 03/18/2026 order: 0 status: published -last_version: v4.5.6 +last_version: v4.5.7 --- -This release adds a first-class theme system with display values for customizing default shapes, shape attribution with a new `TLUserStore` provider and extensible user records, clipboard hooks for intercepting copy, cut, and paste, custom record types to the store, a new `@tldraw/mermaid` package for converting Mermaid diagrams to native shapes, WebSocket hibernation support for tlsync, a new `@tldraw/editor-controller` package for scripting and automation, RTL language support in the UI, cross-window embedding support, arbitrary iframe embed pasting, and smarter export trimming. It also includes various other improvements and bug fixes. +This release adds a first-class theme system with display values for customizing default shapes, extensible asset types via a new `AssetUtil` system, shape attribution with a new `TLUserStore` provider and extensible user records, clipboard hooks for intercepting copy, cut, and paste, custom record types to the store, a new `@tldraw/mermaid` package for converting Mermaid diagrams to native shapes, WebSocket hibernation support for tlsync, a new `@tldraw/editor-controller` package for scripting and automation, RTL language support in the UI, cross-window embedding support, arbitrary iframe embed pasting, a paste-as-plain-text keyboard shortcut, and smarter export trimming. It also includes various other improvements and bug fixes. ## What's new @@ -19,10 +19,7 @@ A new first-class theme system replaces the previous approach where colors were Register custom themes via `TLThemes` module augmentation for type-safe IDs, add or remove palette colors via `TLThemeDefaultColors` and `TLRemovedDefaultThemeColors`, and pass themes to the editor via the `themes` and `initialTheme` props: ```tsx - + ``` Each default shape util defines `getDefaultDisplayValues` to resolve visual properties (colors, stroke widths, font sizes) from the current theme and color mode. Override display values for a default shape with `getCustomDisplayValues`: @@ -191,6 +188,47 @@ Note shapes now track and display a "first edited by" attribution label in the b Paste any `