mirror of
https://github.com/penpot/penpot.git
synced 2026-08-01 19:06:18 +00:00
Merge remote-tracking branch 'origin/staging' into staging-render
This commit is contained in:
commit
faf91ac70d
16
.github/workflows/plugins-deploy-api-doc.yml
vendored
16
.github/workflows/plugins-deploy-api-doc.yml
vendored
@ -11,7 +11,7 @@ on:
|
|||||||
- "plugins/libs/plugin-types/REAME.md"
|
- "plugins/libs/plugin-types/REAME.md"
|
||||||
- "plugins/tools/typedoc.css"
|
- "plugins/tools/typedoc.css"
|
||||||
- "plugins/CHANGELOG.md"
|
- "plugins/CHANGELOG.md"
|
||||||
- "plugins/wrangle-penpot-plugins-api-doc.toml"
|
- "plugins/wrangler-penpot-plugins-api-doc.toml"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
gh_ref:
|
gh_ref:
|
||||||
@ -98,4 +98,16 @@ jobs:
|
|||||||
workingDirectory: plugins
|
workingDirectory: plugins
|
||||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
command: deploy --config wrangle-penpot-plugins-api-doc.toml --name ${{ env.WORKER_NAME }}
|
command: deploy --config wrangler-penpot-plugins-api-doc.toml --name ${{ env.WORKER_NAME }}
|
||||||
|
|
||||||
|
- name: Notify Mattermost
|
||||||
|
if: failure()
|
||||||
|
uses: mattermost/action-mattermost-notify@master
|
||||||
|
with:
|
||||||
|
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK }}
|
||||||
|
MATTERMOST_CHANNEL: bot-alerts-cicd
|
||||||
|
TEXT: |
|
||||||
|
❌ 🧩📚 *[PENPOT PLUGINS] Error deploying API documentation.*
|
||||||
|
📄 Triggered from ref: `${{ inputs.gh_ref }}`
|
||||||
|
🔗 Run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
@infra
|
||||||
|
|||||||
127
.github/workflows/plugins-deploy-package.yml
vendored
Normal file
127
.github/workflows/plugins-deploy-package.yml
vendored
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
name: Plugins/package deployer
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Deploy package from manual action
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
gh_ref:
|
||||||
|
description: 'Name of the branch'
|
||||||
|
type: choice
|
||||||
|
required: true
|
||||||
|
default: 'develop'
|
||||||
|
options:
|
||||||
|
- develop
|
||||||
|
- staging
|
||||||
|
- main
|
||||||
|
plugin_name:
|
||||||
|
description: 'Pluging name (like plugins/apps/<plugin_name>-plugin)'
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
gh_ref:
|
||||||
|
description: 'Name of the branch'
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
default: 'develop'
|
||||||
|
plugin_name:
|
||||||
|
description: 'Publig name (from plugins/apps/<plugin_name>-plugin)'
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: penpot-runner-01
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: ${{ inputs.gh_ref }}
|
||||||
|
|
||||||
|
# START: Setup Node and PNPM enabling cache
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version-file: .nvmrc
|
||||||
|
|
||||||
|
- name: Enable PNPM
|
||||||
|
working-directory: ./plugins
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
corepack enable;
|
||||||
|
corepack install;
|
||||||
|
|
||||||
|
- name: Get pnpm store path
|
||||||
|
id: pnpm-store
|
||||||
|
working-directory: ./plugins
|
||||||
|
shell: bash
|
||||||
|
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Cache pnpm store
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${{ steps.pnpm-store.outputs.STORE_PATH }}
|
||||||
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('plugins/pnpm-lock.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-pnpm-
|
||||||
|
# END: Setup Node and PNPM enabling cache
|
||||||
|
|
||||||
|
- name: Install deps
|
||||||
|
working-directory: ./plugins
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
pnpm install --no-frozen-lockfile;
|
||||||
|
pnpm add -D -w wrangler@latest;
|
||||||
|
|
||||||
|
- name: "Build package for ${{ inputs.plugin_name }}-plugin"
|
||||||
|
working-directory: plugins
|
||||||
|
shell: bash
|
||||||
|
run: npx nx build ${{ inputs.plugin_name }}-plugin
|
||||||
|
|
||||||
|
- name: Select Worker name
|
||||||
|
run: |
|
||||||
|
REF="${{ inputs.gh_ref }}"
|
||||||
|
case "$REF" in
|
||||||
|
main)
|
||||||
|
echo "WORKER_NAME=${{ inputs.plugin_name }}-plugin-pro" >> $GITHUB_ENV
|
||||||
|
echo "WORKER_URI=${{ inputs.plugin_name }}.plugins.penpot.app" >> $GITHUB_ENV ;;
|
||||||
|
staging)
|
||||||
|
echo "WORKER_NAME=${{ inputs.plugin_name }}-plugin-pre" >> $GITHUB_ENV
|
||||||
|
echo "WORKER_URI=${{ inputs.plugin_name }}.plugins.penpot.dev" >> $GITHUB_ENV ;;
|
||||||
|
develop)
|
||||||
|
echo "WORKER_NAME=${{ inputs.plugin_name }}-plugin-hourly" >> $GITHUB_ENV
|
||||||
|
echo "WORKER_URI=${{ inputs.plugin_name }}.plugins.hourly.penpot.dev" >> $GITHUB_ENV ;;
|
||||||
|
*) echo "Unsupported branch ${REF}" && exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
- name: Set the custom url
|
||||||
|
working-directory: plugins
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sed -i "s/WORKER_URI/${{ env.WORKER_URI }}/g" apps/${{ inputs.plugin_name }}-plugin/wrangler.toml
|
||||||
|
|
||||||
|
- name: Deploy to Cloudflare Workers
|
||||||
|
uses: cloudflare/wrangler-action@v3
|
||||||
|
with:
|
||||||
|
workingDirectory: plugins
|
||||||
|
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
|
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
|
command: deploy --config apps/${{ inputs.plugin_name }}-plugin/wrangler.toml --name ${{ env.WORKER_NAME }}
|
||||||
|
|
||||||
|
- name: Notify Mattermost
|
||||||
|
if: failure()
|
||||||
|
uses: mattermost/action-mattermost-notify@master
|
||||||
|
with:
|
||||||
|
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK }}
|
||||||
|
MATTERMOST_CHANNEL: bot-alerts-cicd
|
||||||
|
TEXT: |
|
||||||
|
❌ 🧩📦 *[PENPOT PLUGINS] Error deploying ${{ env.WORKER_NAME }}.*
|
||||||
|
📄 Triggered from ref: `${{ inputs.gh_ref }}`
|
||||||
|
Plugin name: `${{ inputs.plugin_name }}-plugin`
|
||||||
|
Cloudflare worker name: `${{ env.WORKER_NAME }}`
|
||||||
|
🔗 Run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
@infra
|
||||||
143
.github/workflows/plugins-deploy-packages.yml
vendored
Normal file
143
.github/workflows/plugins-deploy-packages.yml
vendored
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
name: Plugins/packages deployer
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
- staging
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'plugins/apps/*-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
gh_ref:
|
||||||
|
description: 'Name of the branch'
|
||||||
|
type: choice
|
||||||
|
required: true
|
||||||
|
default: 'develop'
|
||||||
|
options:
|
||||||
|
- develop
|
||||||
|
- staging
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
detect-changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
colors_to_tokens: ${{ steps.filter.outputs.colors_to_tokens }}
|
||||||
|
create_palette: ${{ steps.filter.outputs.create_palette }}
|
||||||
|
lorem_ipsum: ${{ steps.filter.outputs.lorem_ipsum }}
|
||||||
|
rename_layers: ${{ steps.filter.outputs.rename_layers }}
|
||||||
|
contrast: ${{ steps.filter.outputs.contrast }}
|
||||||
|
icons: ${{ steps.filter.outputs.icons }}
|
||||||
|
poc_state: ${{ steps.filter.outputs.poc_state }}
|
||||||
|
table: ${{ steps.filter.outputs.table }}
|
||||||
|
# [For new plugins]
|
||||||
|
# Add more outputs here
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- id: filter
|
||||||
|
uses: dorny/paths-filter@v3
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
colors_to_tokens:
|
||||||
|
- 'plugins/apps/colors-to-tokens-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
contrast:
|
||||||
|
- 'plugins/apps/contrast-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
create_palette:
|
||||||
|
- 'plugins/apps/create-palette-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
icons:
|
||||||
|
- 'plugins/apps/icons-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
lorem_ipsum:
|
||||||
|
- 'plugins/apps/lorem-ipsum-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
rename_layers:
|
||||||
|
- 'plugins/apps/rename-layers-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
table:
|
||||||
|
- 'plugins/apps/table-plugin/**'
|
||||||
|
- 'libs/plugins-styles/**'
|
||||||
|
# [For new plugins]
|
||||||
|
# Add more plugin filters here
|
||||||
|
# another_plugin:
|
||||||
|
# - 'plugins/apps/another-plugin/**'
|
||||||
|
# - 'libs/plugins-styles/**'
|
||||||
|
|
||||||
|
colors-to-tokens-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.colors_to_tokens == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: colors-to-tokens
|
||||||
|
|
||||||
|
contrast-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.contrast == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: contrast
|
||||||
|
|
||||||
|
create-palette-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.create_palette == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: create-palette
|
||||||
|
|
||||||
|
icons-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.icons == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: icons
|
||||||
|
|
||||||
|
lorem-ipsum-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.lorem_ipsum == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: lorem-ipsum
|
||||||
|
|
||||||
|
rename-layers-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.rename_layers == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: rename-layers
|
||||||
|
|
||||||
|
table-plugin:
|
||||||
|
needs: detect-changes
|
||||||
|
if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.table == 'true'
|
||||||
|
uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
plugin_name: table
|
||||||
|
|
||||||
|
# [For new plugins]
|
||||||
|
# Add more jobs for other plugins below, following the same pattern
|
||||||
|
# another-plugin:
|
||||||
|
# needs: detect-changes
|
||||||
|
# if: github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.another_plugin == 'true'
|
||||||
|
# uses: ./.github/workflows/plugins-deploy-package.yml
|
||||||
|
# secrets: inherit
|
||||||
|
# with:
|
||||||
|
# gh_ref: "${{ inputs.gh_ref || github.ref_name }}"
|
||||||
|
# plugin_name: another
|
||||||
@ -37,7 +37,8 @@
|
|||||||
- Fix exception on uploading large fonts [Github #8135](https://github.com/penpot/penpot/pull/8135)
|
- Fix exception on uploading large fonts [Github #8135](https://github.com/penpot/penpot/pull/8135)
|
||||||
- Fix unhandled exception on open-new-window helper [Github #7787](https://github.com/penpot/penpot/issues/7787)
|
- Fix unhandled exception on open-new-window helper [Github #7787](https://github.com/penpot/penpot/issues/7787)
|
||||||
- Fix incorrect handling of input values on layout gap and padding inputs [Github #8113](https://github.com/penpot/penpot/issues/8113)
|
- Fix incorrect handling of input values on layout gap and padding inputs [Github #8113](https://github.com/penpot/penpot/issues/8113)
|
||||||
|
- Fix several race conditions on path editor [Github #8187](https://github.com/penpot/penpot/pull/8187)
|
||||||
|
- Fix app freeze when introducing an error on a very long token name [Taiga #13214](https://tree.taiga.io/project/penpot/issue/13214)
|
||||||
|
|
||||||
## 2.12.1
|
## 2.12.1
|
||||||
|
|
||||||
|
|||||||
@ -99,7 +99,7 @@
|
|||||||
|
|
||||||
(def token-name-ref
|
(def token-name-ref
|
||||||
[:re {:title "TokenNameRef" :gen/gen sg/text}
|
[:re {:title "TokenNameRef" :gen/gen sg/text}
|
||||||
#"^(?!\$)([a-zA-Z0-9-$_]+\.?)*(?<!\.)$"])
|
#"^[a-zA-Z0-9_-][a-zA-Z0-9$_-]*(\.[a-zA-Z0-9$_-]+)*$"])
|
||||||
|
|
||||||
(def ^:private schema:color
|
(def ^:private schema:color
|
||||||
[:map
|
[:map
|
||||||
|
|||||||
@ -70,20 +70,22 @@
|
|||||||
(= (-> content last :command) :move-to))
|
(= (-> content last :command) :move-to))
|
||||||
(into [] (take (dec (count content)) content))
|
(into [] (take (dec (count content)) content))
|
||||||
content)]
|
content)]
|
||||||
(-> state
|
(st/set-content state content)))
|
||||||
(st/set-content content))))
|
|
||||||
|
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [it state _]
|
(watch [it state _]
|
||||||
(let [page-id (:current-page-id state)
|
(let [page-id (:current-page-id state)
|
||||||
objects (dsh/lookup-page-objects state page-id)
|
local (get state :workspace-local)
|
||||||
id (dm/get-in state [:workspace-local :edition])
|
id (get local :edition)
|
||||||
old-content (dm/get-in state [:workspace-local :edit-path id :old-content])
|
objects (dsh/lookup-page-objects state page-id)]
|
||||||
shape (st/get-path state)]
|
|
||||||
|
|
||||||
(if (and (some? old-content) (some? (:id shape)))
|
;; NOTE: we proceed only if the shape is present on the
|
||||||
(let [changes (generate-path-changes it objects page-id shape old-content (:content shape))]
|
;; objects, if shape is a ephimeral drawing shape, we should
|
||||||
(rx/of (dch/commit-changes changes)))
|
;; do nothing
|
||||||
(rx/empty)))))))
|
(when-let [shape (get objects id)]
|
||||||
|
(when-let [old-content (dm/get-in local [:edit-path id :old-content])]
|
||||||
|
(let [new-content (get shape :content)
|
||||||
|
changes (generate-path-changes it objects page-id shape old-content new-content)]
|
||||||
|
(rx/of (dch/commit-changes changes))))))))))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,6 @@
|
|||||||
(:require
|
(:require
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
[app.common.data.macros :as dm]
|
[app.common.data.macros :as dm]
|
||||||
[app.common.files.helpers :as cfh]
|
|
||||||
[app.common.geom.point :as gpt]
|
[app.common.geom.point :as gpt]
|
||||||
[app.common.types.path :as path]
|
[app.common.types.path :as path]
|
||||||
[app.common.types.path.helpers :as path.helpers]
|
[app.common.types.path.helpers :as path.helpers]
|
||||||
@ -289,34 +288,34 @@
|
|||||||
|
|
||||||
(declare stop-path-edit)
|
(declare stop-path-edit)
|
||||||
|
|
||||||
|
|
||||||
(defn start-path-edit
|
(defn start-path-edit
|
||||||
[id]
|
[id]
|
||||||
(ptk/reify ::start-path-edit
|
(ptk/reify ::start-path-edit
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
(let [objects (dsh/lookup-page-objects state)
|
(let [objects (dsh/lookup-page-objects state)
|
||||||
edit-path (dm/get-in state [:workspace-local :edit-path id])
|
shape (get objects id)]
|
||||||
content (st/get-path state :content)
|
|
||||||
state (cond-> state
|
|
||||||
(cfh/path-shape? objects id)
|
|
||||||
(st/set-content (path/close-subpaths content)))]
|
|
||||||
|
|
||||||
(cond-> state
|
(-> state
|
||||||
(or (not edit-path)
|
(st/set-content (path/close-subpaths (:content shape)))
|
||||||
(= :draw (:edit-mode edit-path)))
|
(update-in [:workspace-local :edit-path id]
|
||||||
(assoc-in [:workspace-local :edit-path id] {:edit-mode :move
|
(fn [state]
|
||||||
:selected #{}
|
(let [state (if state
|
||||||
:snap-toggled false})
|
(if (= :move (:edit-mode state))
|
||||||
(and (some? edit-path)
|
(assoc state :edit-mode :draw)
|
||||||
(= :move (:edit-mode edit-path)))
|
state)
|
||||||
(assoc-in [:workspace-local :edit-path id :edit-mode] :draw))))
|
{:edit-mode :move
|
||||||
|
:selected #{}
|
||||||
|
:snap-toggled false})]
|
||||||
|
(assoc state :old-content (:content shape))))))))
|
||||||
|
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ _ stream]
|
(watch [_ _ stream]
|
||||||
(let [stopper (->> stream
|
(let [stopper (rx/filter #(let [type (ptk/type %)]
|
||||||
(rx/filter #(let [type (ptk/type %)]
|
(= type ::dwe/clear-edition-mode)
|
||||||
(= type ::dwe/clear-edition-mode)
|
(= type ::start-path-edit))
|
||||||
(= type ::start-path-edit))))]
|
stream)]
|
||||||
(rx/concat
|
(rx/concat
|
||||||
(rx/of (undo/start-path-undo))
|
(rx/of (undo/start-path-undo))
|
||||||
(->> stream
|
(->> stream
|
||||||
@ -325,7 +324,8 @@
|
|||||||
(rx/map #(stop-path-edit id))
|
(rx/map #(stop-path-edit id))
|
||||||
(rx/take-until stopper)))))))
|
(rx/take-until stopper)))))))
|
||||||
|
|
||||||
(defn stop-path-edit [id]
|
(defn stop-path-edit
|
||||||
|
[id]
|
||||||
(ptk/reify ::stop-path-edit
|
(ptk/reify ::stop-path-edit
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
@ -335,13 +335,12 @@
|
|||||||
(watch [_ _ _]
|
(watch [_ _ _]
|
||||||
(rx/of (ptk/data-event :layout/update {:ids [id]})))))
|
(rx/of (ptk/data-event :layout/update {:ids [id]})))))
|
||||||
|
|
||||||
(defn split-segments
|
(defn- split-segments
|
||||||
[{:keys [from-p to-p t]}]
|
[id {:keys [from-p to-p t]}]
|
||||||
(ptk/reify ::split-segments
|
(ptk/reify ::split-segments
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
(let [id (st/get-path-id state)
|
(let [content (st/get-path state :content)]
|
||||||
content (st/get-path state :content)]
|
|
||||||
(-> state
|
(-> state
|
||||||
(assoc-in [:workspace-local :edit-path id :old-content] content)
|
(assoc-in [:workspace-local :edit-path id :old-content] content)
|
||||||
(st/set-content (-> content
|
(st/set-content (-> content
|
||||||
@ -353,10 +352,10 @@
|
|||||||
(rx/of (changes/save-path-content {:preserve-move-to true})))))
|
(rx/of (changes/save-path-content {:preserve-move-to true})))))
|
||||||
|
|
||||||
(defn create-node-at-position
|
(defn create-node-at-position
|
||||||
[event]
|
[params]
|
||||||
(ptk/reify ::create-node-at-position
|
(ptk/reify ::create-node-at-position
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state _]
|
(watch [_ state _]
|
||||||
(let [id (st/get-path-id state)]
|
(let [id (st/get-path-id state)]
|
||||||
(rx/of (dwsh/update-shapes [id] path/convert-to-path)
|
(rx/of (dwsh/update-shapes [id] path/convert-to-path)
|
||||||
(split-segments event))))))
|
(split-segments id params))))))
|
||||||
|
|||||||
8
plugins/apps/colors-to-tokens-plugin/wrangler.toml
Normal file
8
plugins/apps/colors-to-tokens-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "color-to-tokens-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/colors-to-tokens-plugin/browser" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
8
plugins/apps/contrast-plugin/wrangler.toml
Normal file
8
plugins/apps/contrast-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "contrast-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/contrast-plugin/browser" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
8
plugins/apps/create-palette-plugin/wrangler.toml
Normal file
8
plugins/apps/create-palette-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "create-palette-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/create-palette-plugin" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
8
plugins/apps/icons-plugin/wrangler.toml
Normal file
8
plugins/apps/icons-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "icons-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/icons-plugin/browser" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
8
plugins/apps/lorem-ipsum-plugin/wrangler.toml
Normal file
8
plugins/apps/lorem-ipsum-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "lorem-ipsum-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/lorem-ipsum-plugin/browser" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
8
plugins/apps/rename-layers-plugin/wrangler.toml
Normal file
8
plugins/apps/rename-layers-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "rename-layers-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/rename-layers-plugin/browser" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
8
plugins/apps/table-plugin/wrangler.toml
Normal file
8
plugins/apps/table-plugin/wrangler.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name = "table-plugin"
|
||||||
|
compatibility_date = "2025-01-01"
|
||||||
|
|
||||||
|
assets = { directory = "../../dist/apps/table-plugin/browser" }
|
||||||
|
|
||||||
|
[[routes]]
|
||||||
|
pattern = "WORKER_URI"
|
||||||
|
custom_domain = true
|
||||||
Loading…
x
Reference in New Issue
Block a user