* chore(electron): update mac build scripts for improved artifact handling - Modified the `electron:build:mac-arm64` script to rename the generated YAML file for better clarity. - Adjusted the `electron:build:mac-both` script to run builds sequentially without file renaming logic, ensuring consistent output. * chore(electron): enable notarization for macOS builds and update build workflow secrets - Added notarization support in `electron-builder.yml` for enhanced security. - Updated GitHub Actions workflow to include necessary Apple credentials for notarization. * chore(electron): add additional secrets for macOS notarization in build workflow - Included CSC_LINK and CSC_KEY_PASSWORD in the GitHub Actions workflow to support code signing for macOS builds. * feat(types): add ImageFitMode type and objectFit to ImageNode Support fill/fit/crop/tile image scaling modes, matching Figma's image fill behavior. Default is 'fill' (cover) for backward compat. * feat(canvas): render images per fill mode with native crop Add computeImageTransform helper supporting fill/fit/crop/tile modes. Fill/crop uses FabricImage native cropX/cropY instead of clipPath to avoid conflict with parent frame clipping. Tile mode creates a Rect with Pattern fill. Detect mode changes via __needsRecreation flag for object recreation when switching between tile and non-tile modes. * feat(panels): add image fit mode dropdown to property panel New ImageSection component with Fill/Fit/Crop/Tile dropdown for image nodes. Wired into PropertyPanel between icon and appearance sections. * feat(figma): preserve image scale mode from Figma import Map Figma imageScaleMode (FIT/FILL/TILE) to objectFit property on imported ImageNodes so fill mode is preserved across import. * fix(canvas): fix zoom-to-fit bounds inflated by clipped children computeDocBounds was recursing into frame children, inflating the bounding box beyond visible frame bounds. Now only recurses into groups. Also use double-RAF in Figma import for reliable timing. * feat(figma): implement Figma clipboard paste functionality - Added a new hook, useFigmaPaste, to handle pasting Figma clipboard data into the canvas. - Integrated clipboard data extraction and processing to convert Figma nodes into PenNodes. - Enhanced keyboard shortcuts to attempt reading Figma data from the system clipboard as a fallback. - Introduced utility functions for decoding and processing Figma clipboard HTML data. - Updated editor layout to utilize the new Figma paste functionality. * feat(figma): implement Figma clipboard support for pasting nodes - Added a new hook, `useFigmaPaste`, to handle Figma clipboard data extraction and processing. - Integrated Figma clipboard support into the editor layout and keyboard shortcuts for seamless pasting. - Updated README to reflect changes in file format from `.pen` to `.op`. - Refactored AI service methods to route to appropriate provider SDK based on the `provider` field, enhancing flexibility in AI interactions. * fix(figma): preserve imported node order and disable openpencil auto layout Prevent imported/generated nodes from being prepended in auto-layout containers, which could reverse visual order during progressive insertion. Hide the unfinished OpenPencil auto-layout path from the import dialog to avoid selecting a mode that is not ready yet. * fix(ai): enforce explicit provider and model routing Pass selected provider and model through design generation, orchestration, sub-agent, and validation flows. Disable provider/model fallback and remove model retry-without-selection behavior so requests fail fast instead of silently routing to Claude. * chore(package): bump version to 0.1.1 --------- Co-authored-by: Fini <fini.yang@gmail.com>
60 lines
994 B
YAML
60 lines
994 B
YAML
appId: dev.openpencil.app
|
|
productName: OpenPencil
|
|
copyright: Copyright (c) 2024-2026 OpenPencil contributors
|
|
|
|
directories:
|
|
output: dist-electron
|
|
buildResources: build
|
|
|
|
files:
|
|
- electron-dist/**/*
|
|
- "!node_modules"
|
|
|
|
extraResources:
|
|
- from: .output/server
|
|
to: server
|
|
- from: .output/public
|
|
to: public
|
|
- from: dist/mcp-server.cjs
|
|
to: mcp-server.cjs
|
|
|
|
mac:
|
|
category: public.app-category.graphics-design
|
|
icon: build/icon.icns
|
|
artifactName: "${productName}-${version}-${arch}-mac.${ext}"
|
|
target:
|
|
- dmg
|
|
- zip
|
|
hardenedRuntime: true
|
|
gatekeeperAssess: false
|
|
notarize: true
|
|
|
|
dmg:
|
|
title: "${productName} ${version}"
|
|
|
|
win:
|
|
icon: build/icon.ico
|
|
target:
|
|
- nsis
|
|
- portable
|
|
|
|
nsis:
|
|
oneClick: false
|
|
perMachine: false
|
|
allowToChangeInstallationDirectory: true
|
|
|
|
linux:
|
|
icon: build/icon.png
|
|
category: Graphics
|
|
target:
|
|
- AppImage
|
|
- deb
|
|
|
|
asar: true
|
|
|
|
publish:
|
|
provider: github
|
|
owner: ZSeven-W
|
|
repo: openpencil
|
|
releaseType: release
|