@llc3233149/core 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvaskit.d.ts +9 -0
- package/dist/canvaskit.d.ts.map +1 -0
- package/dist/canvaskit.js +55 -0
- package/dist/canvaskit.js.map +1 -0
- package/dist/clipboard.d.ts +32 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +345 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/color.d.ts +28 -0
- package/dist/color.d.ts.map +1 -0
- package/dist/color.js +67 -0
- package/dist/color.js.map +1 -0
- package/dist/constants.d.ts +159 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +224 -0
- package/dist/constants.js.map +1 -0
- package/dist/copy.d.ts +20 -0
- package/dist/copy.d.ts.map +1 -0
- package/dist/copy.js +64 -0
- package/dist/copy.js.map +1 -0
- package/dist/fig-export-worker.d.ts +2 -0
- package/dist/fig-export-worker.d.ts.map +1 -0
- package/dist/fig-export-worker.js +17 -0
- package/dist/fig-export-worker.js.map +1 -0
- package/dist/fig-export.d.ts +13 -0
- package/dist/fig-export.d.ts.map +1 -0
- package/dist/fig-export.js +243 -0
- package/dist/fig-export.js.map +1 -0
- package/dist/figma-api.d.ts +268 -0
- package/dist/figma-api.d.ts.map +1 -0
- package/dist/figma-api.js +1074 -0
- package/dist/figma-api.js.map +1 -0
- package/dist/figma-rest-import.d.ts +122 -0
- package/dist/figma-rest-import.d.ts.map +1 -0
- package/dist/figma-rest-import.js +319 -0
- package/dist/figma-rest-import.js.map +1 -0
- package/dist/fonts.d.ts +24 -0
- package/dist/fonts.d.ts.map +1 -0
- package/dist/fonts.js +356 -0
- package/dist/fonts.js.map +1 -0
- package/dist/geometry.d.ts +14 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +47 -0
- package/dist/geometry.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/kiwi/codec.d.ts +292 -0
- package/dist/kiwi/codec.d.ts.map +1 -0
- package/dist/kiwi/codec.js +340 -0
- package/dist/kiwi/codec.js.map +1 -0
- package/dist/kiwi/fig-file.d.ts +4 -0
- package/dist/kiwi/fig-file.d.ts.map +1 -0
- package/dist/kiwi/fig-file.js +236 -0
- package/dist/kiwi/fig-file.js.map +1 -0
- package/dist/kiwi/fig-import.d.ts +4 -0
- package/dist/kiwi/fig-import.d.ts.map +1 -0
- package/dist/kiwi/fig-import.js +248 -0
- package/dist/kiwi/fig-import.js.map +1 -0
- package/dist/kiwi/fig-parse-worker.d.ts +7 -0
- package/dist/kiwi/fig-parse-worker.d.ts.map +1 -0
- package/dist/kiwi/fig-parse-worker.js +184 -0
- package/dist/kiwi/fig-parse-worker.js.map +1 -0
- package/dist/kiwi/instance-overrides.d.ts +66 -0
- package/dist/kiwi/instance-overrides.d.ts.map +1 -0
- package/dist/kiwi/instance-overrides.js +644 -0
- package/dist/kiwi/instance-overrides.js.map +1 -0
- package/dist/kiwi/kiwi-convert.d.ts +19 -0
- package/dist/kiwi/kiwi-convert.d.ts.map +1 -0
- package/dist/kiwi/kiwi-convert.js +678 -0
- package/dist/kiwi/kiwi-convert.js.map +1 -0
- package/dist/kiwi/kiwi-schema/bb.d.ts +25 -0
- package/dist/kiwi/kiwi-schema/bb.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/bb.js +225 -0
- package/dist/kiwi/kiwi-schema/bb.js.map +1 -0
- package/dist/kiwi/kiwi-schema/binary.d.ts +5 -0
- package/dist/kiwi/kiwi-schema/binary.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/binary.js +86 -0
- package/dist/kiwi/kiwi-schema/binary.js.map +1 -0
- package/dist/kiwi/kiwi-schema/index.d.ts +6 -0
- package/dist/kiwi/kiwi-schema/index.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/index.js +5 -0
- package/dist/kiwi/kiwi-schema/index.js.map +1 -0
- package/dist/kiwi/kiwi-schema/js.d.ts +4 -0
- package/dist/kiwi/kiwi-schema/js.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/js.js +282 -0
- package/dist/kiwi/kiwi-schema/js.js.map +1 -0
- package/dist/kiwi/kiwi-schema/parser.d.ts +5 -0
- package/dist/kiwi/kiwi-schema/parser.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/parser.js +228 -0
- package/dist/kiwi/kiwi-schema/parser.js.map +1 -0
- package/dist/kiwi/kiwi-schema/schema.d.ts +22 -0
- package/dist/kiwi/kiwi-schema/schema.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/schema.js +2 -0
- package/dist/kiwi/kiwi-schema/schema.js.map +1 -0
- package/dist/kiwi/kiwi-schema/util.d.ts +3 -0
- package/dist/kiwi/kiwi-schema/util.d.ts.map +1 -0
- package/dist/kiwi/kiwi-schema/util.js +10 -0
- package/dist/kiwi/kiwi-schema/util.js.map +1 -0
- package/dist/kiwi/protocol.d.ts +172 -0
- package/dist/kiwi/protocol.d.ts.map +1 -0
- package/dist/kiwi/protocol.js +214 -0
- package/dist/kiwi/protocol.js.map +1 -0
- package/dist/kiwi/schema.d.ts +3 -0
- package/dist/kiwi/schema.d.ts.map +1 -0
- package/dist/kiwi/schema.js +2285 -0
- package/dist/kiwi/schema.js.map +1 -0
- package/dist/kiwi-serialize.d.ts +17 -0
- package/dist/kiwi-serialize.d.ts.map +1 -0
- package/dist/kiwi-serialize.js +419 -0
- package/dist/kiwi-serialize.js.map +1 -0
- package/dist/layout.d.ts +9 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +533 -0
- package/dist/layout.js.map +1 -0
- package/dist/profiler/draw-call-counter.d.ts +9 -0
- package/dist/profiler/draw-call-counter.d.ts.map +1 -0
- package/dist/profiler/draw-call-counter.js +37 -0
- package/dist/profiler/draw-call-counter.js.map +1 -0
- package/dist/profiler/frame-capture.d.ts +34 -0
- package/dist/profiler/frame-capture.d.ts.map +1 -0
- package/dist/profiler/frame-capture.js +90 -0
- package/dist/profiler/frame-capture.js.map +1 -0
- package/dist/profiler/frame-stats.d.ts +33 -0
- package/dist/profiler/frame-stats.d.ts.map +1 -0
- package/dist/profiler/frame-stats.js +103 -0
- package/dist/profiler/frame-stats.js.map +1 -0
- package/dist/profiler/gpu-timer.d.ts +15 -0
- package/dist/profiler/gpu-timer.d.ts.map +1 -0
- package/dist/profiler/gpu-timer.js +77 -0
- package/dist/profiler/gpu-timer.js.map +1 -0
- package/dist/profiler/hud-renderer.d.ts +22 -0
- package/dist/profiler/hud-renderer.d.ts.map +1 -0
- package/dist/profiler/hud-renderer.js +200 -0
- package/dist/profiler/hud-renderer.js.map +1 -0
- package/dist/profiler/index.d.ts +9 -0
- package/dist/profiler/index.d.ts.map +1 -0
- package/dist/profiler/index.js +8 -0
- package/dist/profiler/index.js.map +1 -0
- package/dist/profiler/phase-timer.d.ts +9 -0
- package/dist/profiler/phase-timer.d.ts.map +1 -0
- package/dist/profiler/phase-timer.js +51 -0
- package/dist/profiler/phase-timer.js.map +1 -0
- package/dist/profiler/render-profiler.d.ts +41 -0
- package/dist/profiler/render-profiler.d.ts.map +1 -0
- package/dist/profiler/render-profiler.js +142 -0
- package/dist/profiler/render-profiler.js.map +1 -0
- package/dist/render/components.d.ts +25 -0
- package/dist/render/components.d.ts.map +1 -0
- package/dist/render/components.js +55 -0
- package/dist/render/components.js.map +1 -0
- package/dist/render/emoji-icons.d.ts +5 -0
- package/dist/render/emoji-icons.d.ts.map +1 -0
- package/dist/render/emoji-icons.js +55 -0
- package/dist/render/emoji-icons.js.map +1 -0
- package/dist/render/export-code.d.ts +9 -0
- package/dist/render/export-code.d.ts.map +1 -0
- package/dist/render/export-code.js +335 -0
- package/dist/render/export-code.js.map +1 -0
- package/dist/render/export-jsx.d.ts +5 -0
- package/dist/render/export-jsx.d.ts.map +1 -0
- package/dist/render/export-jsx.js +621 -0
- package/dist/render/export-jsx.js.map +1 -0
- package/dist/render/index.d.ts +8 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +8 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/jsx-runtime.d.ts +31 -0
- package/dist/render/jsx-runtime.d.ts.map +1 -0
- package/dist/render/jsx-runtime.js +13 -0
- package/dist/render/jsx-runtime.js.map +1 -0
- package/dist/render/mini-react.d.ts +14 -0
- package/dist/render/mini-react.d.ts.map +1 -0
- package/dist/render/mini-react.js +16 -0
- package/dist/render/mini-react.js.map +1 -0
- package/dist/render/render-jsx.d.ts +24 -0
- package/dist/render/render-jsx.d.ts.map +1 -0
- package/dist/render/render-jsx.js +51 -0
- package/dist/render/render-jsx.js.map +1 -0
- package/dist/render/renderer.d.ts +16 -0
- package/dist/render/renderer.d.ts.map +1 -0
- package/dist/render/renderer.js +437 -0
- package/dist/render/renderer.js.map +1 -0
- package/dist/render/tailwind.d.ts +20 -0
- package/dist/render/tailwind.d.ts.map +1 -0
- package/dist/render/tailwind.js +115 -0
- package/dist/render/tailwind.js.map +1 -0
- package/dist/render/tree.d.ts +72 -0
- package/dist/render/tree.d.ts.map +1 -0
- package/dist/render/tree.js +63 -0
- package/dist/render/tree.js.map +1 -0
- package/dist/render-image.d.ts +19 -0
- package/dist/render-image.d.ts.map +1 -0
- package/dist/render-image.js +84 -0
- package/dist/render-image.js.map +1 -0
- package/dist/renderer/effects.d.ts +9 -0
- package/dist/renderer/effects.d.ts.map +1 -0
- package/dist/renderer/effects.js +44 -0
- package/dist/renderer/effects.js.map +1 -0
- package/dist/renderer/fills.d.ts +9 -0
- package/dist/renderer/fills.d.ts.map +1 -0
- package/dist/renderer/fills.js +189 -0
- package/dist/renderer/fills.js.map +1 -0
- package/dist/renderer/index.d.ts +2 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/index.js +2 -0
- package/dist/renderer/index.js.map +1 -0
- package/dist/renderer/label-cache.d.ts +43 -0
- package/dist/renderer/label-cache.d.ts.map +1 -0
- package/dist/renderer/label-cache.js +85 -0
- package/dist/renderer/label-cache.js.map +1 -0
- package/dist/renderer/labels.d.ts +6 -0
- package/dist/renderer/labels.d.ts.map +1 -0
- package/dist/renderer/labels.js +126 -0
- package/dist/renderer/labels.js.map +1 -0
- package/dist/renderer/lru-cache.d.ts +20 -0
- package/dist/renderer/lru-cache.d.ts.map +1 -0
- package/dist/renderer/lru-cache.js +65 -0
- package/dist/renderer/lru-cache.js.map +1 -0
- package/dist/renderer/overlays.d.ts +25 -0
- package/dist/renderer/overlays.d.ts.map +1 -0
- package/dist/renderer/overlays.js +783 -0
- package/dist/renderer/overlays.js.map +1 -0
- package/dist/renderer/renderer.d.ts +229 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/renderer.js +909 -0
- package/dist/renderer/renderer.js.map +1 -0
- package/dist/renderer/rulers.d.ts +8 -0
- package/dist/renderer/rulers.d.ts.map +1 -0
- package/dist/renderer/rulers.js +147 -0
- package/dist/renderer/rulers.js.map +1 -0
- package/dist/renderer/scene.d.ts +11 -0
- package/dist/renderer/scene.d.ts.map +1 -0
- package/dist/renderer/scene.js +392 -0
- package/dist/renderer/scene.js.map +1 -0
- package/dist/renderer/shapes.d.ts +13 -0
- package/dist/renderer/shapes.d.ts.map +1 -0
- package/dist/renderer/shapes.js +160 -0
- package/dist/renderer/shapes.js.map +1 -0
- package/dist/renderer/strokes.d.ts +9 -0
- package/dist/renderer/strokes.d.ts.map +1 -0
- package/dist/renderer/strokes.js +180 -0
- package/dist/renderer/strokes.js.map +1 -0
- package/dist/rpc/commands.d.ts +202 -0
- package/dist/rpc/commands.d.ts.map +1 -0
- package/dist/rpc/commands.js +429 -0
- package/dist/rpc/commands.js.map +1 -0
- package/dist/rpc/index.d.ts +3 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +2 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/scene-graph.d.ts +318 -0
- package/dist/scene-graph.d.ts.map +1 -0
- package/dist/scene-graph.js +803 -0
- package/dist/scene-graph.js.map +1 -0
- package/dist/snap.d.ts +16 -0
- package/dist/snap.d.ts.map +1 -0
- package/dist/snap.js +97 -0
- package/dist/snap.js.map +1 -0
- package/dist/style-runs.d.ts +20 -0
- package/dist/style-runs.d.ts.map +1 -0
- package/dist/style-runs.js +168 -0
- package/dist/style-runs.js.map +1 -0
- package/dist/svg-export/defs.d.ts +19 -0
- package/dist/svg-export/defs.d.ts.map +1 -0
- package/dist/svg-export/defs.js +191 -0
- package/dist/svg-export/defs.js.map +1 -0
- package/dist/svg-export/index.d.ts +8 -0
- package/dist/svg-export/index.d.ts.map +1 -0
- package/dist/svg-export/index.js +318 -0
- package/dist/svg-export/index.js.map +1 -0
- package/dist/svg-export/paths.d.ts +9 -0
- package/dist/svg-export/paths.d.ts.map +1 -0
- package/dist/svg-export/paths.js +189 -0
- package/dist/svg-export/paths.js.map +1 -0
- package/dist/svg-node.d.ts +8 -0
- package/dist/svg-node.d.ts.map +1 -0
- package/dist/svg-node.js +48 -0
- package/dist/svg-node.js.map +1 -0
- package/dist/text-editor.d.ts +57 -0
- package/dist/text-editor.d.ts.map +1 -0
- package/dist/text-editor.js +337 -0
- package/dist/text-editor.js.map +1 -0
- package/dist/tools/ai-adapter.d.ts +22 -0
- package/dist/tools/ai-adapter.d.ts.map +1 -0
- package/dist/tools/ai-adapter.js +121 -0
- package/dist/tools/ai-adapter.js.map +1 -0
- package/dist/tools/analyze.d.ts +22 -0
- package/dist/tools/analyze.d.ts.map +1 -0
- package/dist/tools/analyze.js +677 -0
- package/dist/tools/analyze.js.map +1 -0
- package/dist/tools/create.d.ts +8 -0
- package/dist/tools/create.d.ts.map +1 -0
- package/dist/tools/create.js +204 -0
- package/dist/tools/create.js.map +1 -0
- package/dist/tools/describe.d.ts +9 -0
- package/dist/tools/describe.d.ts.map +1 -0
- package/dist/tools/describe.js +295 -0
- package/dist/tools/describe.js.map +1 -0
- package/dist/tools/export-code.d.ts +2 -0
- package/dist/tools/export-code.d.ts.map +1 -0
- package/dist/tools/export-code.js +34 -0
- package/dist/tools/export-code.js.map +1 -0
- package/dist/tools/export-tailwind-config.d.ts +27 -0
- package/dist/tools/export-tailwind-config.d.ts.map +1 -0
- package/dist/tools/export-tailwind-config.js +215 -0
- package/dist/tools/export-tailwind-config.js.map +1 -0
- package/dist/tools/icons.d.ts +5 -0
- package/dist/tools/icons.d.ts.map +1 -0
- package/dist/tools/icons.js +192 -0
- package/dist/tools/icons.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/modify.d.ts +22 -0
- package/dist/tools/modify.d.ts.map +1 -0
- package/dist/tools/modify.js +653 -0
- package/dist/tools/modify.js.map +1 -0
- package/dist/tools/patterns.d.ts +2 -0
- package/dist/tools/patterns.d.ts.map +1 -0
- package/dist/tools/patterns.js +173 -0
- package/dist/tools/patterns.js.map +1 -0
- package/dist/tools/read.d.ts +17 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +379 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/registry.d.ts +3 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +124 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/schema.d.ts +46 -0
- package/dist/tools/schema.d.ts.map +1 -0
- package/dist/tools/schema.js +17 -0
- package/dist/tools/schema.js.map +1 -0
- package/dist/tools/structure.d.ts +18 -0
- package/dist/tools/structure.d.ts.map +1 -0
- package/dist/tools/structure.js +345 -0
- package/dist/tools/structure.js.map +1 -0
- package/dist/tools/variables.d.ts +12 -0
- package/dist/tools/variables.d.ts.map +1 -0
- package/dist/tools/variables.js +190 -0
- package/dist/tools/variables.js.map +1 -0
- package/dist/tools/vector.d.ts +15 -0
- package/dist/tools/vector.d.ts.map +1 -0
- package/dist/tools/vector.js +312 -0
- package/dist/tools/vector.js.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/undo.d.ts +33 -0
- package/dist/undo.d.ts.map +1 -0
- package/dist/undo.js +98 -0
- package/dist/undo.js.map +1 -0
- package/dist/vector.d.ts +14 -0
- package/dist/vector.d.ts.map +1 -0
- package/dist/vector.js +334 -0
- package/dist/vector.js.map +1 -0
- package/dist/xpath.d.ts +8 -0
- package/dist/xpath.d.ts.map +1 -0
- package/dist/xpath.js +199 -0
- package/dist/xpath.js.map +1 -0
- package/package.json +54 -0
- package/src/canvaskit.ts +66 -0
- package/src/clipboard.ts +444 -0
- package/src/color.ts +83 -0
- package/src/constants.ts +277 -0
- package/src/copy.ts +75 -0
- package/src/fig-export-worker.ts +28 -0
- package/src/fig-export.ts +321 -0
- package/src/figma-api.ts +1297 -0
- package/src/figma-rest-import.ts +443 -0
- package/src/fonts.ts +369 -0
- package/src/geometry.ts +73 -0
- package/src/global.d.ts +20 -0
- package/src/index.ts +247 -0
- package/src/kiwi/codec.ts +614 -0
- package/src/kiwi/fig-file.ts +248 -0
- package/src/kiwi/fig-import.ts +300 -0
- package/src/kiwi/fig-parse-worker.ts +213 -0
- package/src/kiwi/instance-overrides.ts +682 -0
- package/src/kiwi/kiwi-convert.ts +771 -0
- package/src/kiwi/kiwi-schema/bb.ts +244 -0
- package/src/kiwi/kiwi-schema/binary.ts +102 -0
- package/src/kiwi/kiwi-schema/index.ts +5 -0
- package/src/kiwi/kiwi-schema/js.ts +339 -0
- package/src/kiwi/kiwi-schema/parser.ts +287 -0
- package/src/kiwi/kiwi-schema/schema.ts +24 -0
- package/src/kiwi/kiwi-schema/util.ts +10 -0
- package/src/kiwi/protocol.ts +237 -0
- package/src/kiwi/schema.ts +2286 -0
- package/src/kiwi-serialize.ts +467 -0
- package/src/layout.ts +608 -0
- package/src/profiler/draw-call-counter.ts +43 -0
- package/src/profiler/frame-capture.ts +139 -0
- package/src/profiler/frame-stats.ts +122 -0
- package/src/profiler/gpu-timer.ts +93 -0
- package/src/profiler/hud-renderer.ts +242 -0
- package/src/profiler/index.ts +8 -0
- package/src/profiler/phase-timer.ts +62 -0
- package/src/profiler/render-profiler.ts +163 -0
- package/src/render/components.ts +69 -0
- package/src/render/emoji-icons.ts +60 -0
- package/src/render/export-code.ts +366 -0
- package/src/render/export-jsx.ts +633 -0
- package/src/render/index.ts +38 -0
- package/src/render/jsx-runtime.ts +36 -0
- package/src/render/mini-react.ts +30 -0
- package/src/render/render-jsx.ts +74 -0
- package/src/render/renderer.ts +508 -0
- package/src/render/tailwind.ts +114 -0
- package/src/render/tree.ts +137 -0
- package/src/render-image.ts +139 -0
- package/src/renderer/effects.ts +64 -0
- package/src/renderer/fills.ts +248 -0
- package/src/renderer/index.ts +1 -0
- package/src/renderer/label-cache.ts +114 -0
- package/src/renderer/labels.ts +168 -0
- package/src/renderer/lru-cache.ts +71 -0
- package/src/renderer/overlays.ts +1089 -0
- package/src/renderer/renderer.ts +1226 -0
- package/src/renderer/rulers.ts +230 -0
- package/src/renderer/scene.ts +554 -0
- package/src/renderer/shapes.ts +193 -0
- package/src/renderer/strokes.ts +221 -0
- package/src/rpc/commands.ts +667 -0
- package/src/rpc/index.ts +25 -0
- package/src/scene-graph.ts +1254 -0
- package/src/snap.ts +122 -0
- package/src/style-runs.ts +234 -0
- package/src/svg-export/defs.ts +255 -0
- package/src/svg-export/index.ts +427 -0
- package/src/svg-export/paths.ts +212 -0
- package/src/svg-node.ts +62 -0
- package/src/text-editor.ts +349 -0
- package/src/tools/ai-adapter.ts +144 -0
- package/src/tools/analyze.ts +786 -0
- package/src/tools/create.ts +206 -0
- package/src/tools/describe.ts +280 -0
- package/src/tools/export-code.ts +41 -0
- package/src/tools/export-tailwind-config.ts +266 -0
- package/src/tools/icons.ts +213 -0
- package/src/tools/index.ts +6 -0
- package/src/tools/modify.ts +651 -0
- package/src/tools/patterns.ts +189 -0
- package/src/tools/read.ts +401 -0
- package/src/tools/registry.ts +155 -0
- package/src/tools/schema.ts +65 -0
- package/src/tools/structure.ts +348 -0
- package/src/tools/variables.ts +193 -0
- package/src/tools/vector.ts +311 -0
- package/src/types.ts +32 -0
- package/src/undo.ts +126 -0
- package/src/vector.ts +413 -0
- package/src/xpath.ts +259 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { defineTool } from './schema.js';
|
|
2
|
+
import { selectionToCode } from '../render/export-code.js';
|
|
3
|
+
export const exportCode = defineTool({
|
|
4
|
+
name: 'export_code',
|
|
5
|
+
description: 'Export selected nodes as production code. Supports Vue SFC (.vue), React component (.tsx), or standalone HTML+CSS.',
|
|
6
|
+
params: {
|
|
7
|
+
format: {
|
|
8
|
+
type: 'string',
|
|
9
|
+
description: 'Output format: "vue-sfc", "react", or "html"',
|
|
10
|
+
enum: ['vue-sfc', 'react', 'html']
|
|
11
|
+
},
|
|
12
|
+
nodeIds: {
|
|
13
|
+
type: 'string[]',
|
|
14
|
+
description: 'Node IDs to export. If empty, uses current selection.'
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
execute: (figma, args) => {
|
|
18
|
+
const format = (args.format || 'html');
|
|
19
|
+
let ids = args.nodeIds ?? [];
|
|
20
|
+
if (ids.length === 0) {
|
|
21
|
+
ids = figma.currentPage.selection.map((n) => n.id);
|
|
22
|
+
}
|
|
23
|
+
if (ids.length === 0) {
|
|
24
|
+
return { error: 'No nodes selected. Select nodes or provide nodeIds.' };
|
|
25
|
+
}
|
|
26
|
+
const code = selectionToCode(ids, figma.graph, format);
|
|
27
|
+
return {
|
|
28
|
+
format,
|
|
29
|
+
code,
|
|
30
|
+
nodeCount: ids.length
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=export-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-code.js","sourceRoot":"","sources":["../../src/tools/export-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAIvD,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,oHAAoH;IACtH,MAAM,EAAE;QACN,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;SACnC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,uDAAuD;SACrE;KACF;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAe,CAAA;QACpD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;QAE5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACpE,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,qDAAqD,EAAE,CAAA;QACzE,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEtD,OAAO;YACL,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,GAAG,CAAC,MAAM;SACtB,CAAA;IAAA,CACF;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
interface ColorToken {
|
|
2
|
+
name: string;
|
|
3
|
+
hex: string;
|
|
4
|
+
count: number;
|
|
5
|
+
}
|
|
6
|
+
interface TypographyToken {
|
|
7
|
+
family: string;
|
|
8
|
+
sizes: number[];
|
|
9
|
+
}
|
|
10
|
+
interface SpacingToken {
|
|
11
|
+
value: number;
|
|
12
|
+
count: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a Tailwind v4 config object from scene graph analysis.
|
|
16
|
+
* Pure function — takes extracted tokens, returns a config string.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildTailwindConfig(opts: {
|
|
19
|
+
colors: ColorToken[];
|
|
20
|
+
typography: TypographyToken[];
|
|
21
|
+
spacing: SpacingToken[];
|
|
22
|
+
borderRadius: number[];
|
|
23
|
+
prefix?: string;
|
|
24
|
+
}): string;
|
|
25
|
+
export declare const exportTailwindConfig: import("./schema").ToolDef;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=export-tailwind-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-tailwind-config.d.ts","sourceRoot":"","sources":["../../src/tools/export-tailwind-config.ts"],"names":[],"mappings":"AAaA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,MAAM,CA+DT;AAgID,eAAO,MAAM,oBAAoB,4BAmC/B,CAAA"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { colorToHex } from '../color.js';
|
|
2
|
+
import { defineTool } from './schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a Tailwind v4 config object from scene graph analysis.
|
|
5
|
+
* Pure function — takes extracted tokens, returns a config string.
|
|
6
|
+
*/
|
|
7
|
+
export function buildTailwindConfig(opts) {
|
|
8
|
+
const { colors, typography, spacing, borderRadius, prefix } = opts;
|
|
9
|
+
const lines = [
|
|
10
|
+
'/** @type {import(\'tailwindcss\').Config} */',
|
|
11
|
+
'export default {',
|
|
12
|
+
' theme: {',
|
|
13
|
+
' extend: {'
|
|
14
|
+
];
|
|
15
|
+
// Colors
|
|
16
|
+
if (colors.length > 0) {
|
|
17
|
+
lines.push(' colors: {');
|
|
18
|
+
for (const c of colors) {
|
|
19
|
+
const key = sanitizeKey(c.name, prefix);
|
|
20
|
+
lines.push(` '${key}': '${c.hex}',`);
|
|
21
|
+
}
|
|
22
|
+
lines.push(' },');
|
|
23
|
+
}
|
|
24
|
+
// Font families
|
|
25
|
+
const families = [...new Set(typography.map((t) => t.family))].filter(Boolean);
|
|
26
|
+
if (families.length > 0) {
|
|
27
|
+
lines.push(' fontFamily: {');
|
|
28
|
+
for (const family of families) {
|
|
29
|
+
const key = sanitizeKey(family, prefix);
|
|
30
|
+
lines.push(` '${key}': ['${family}', 'sans-serif'],`);
|
|
31
|
+
}
|
|
32
|
+
lines.push(' },');
|
|
33
|
+
}
|
|
34
|
+
// Font sizes
|
|
35
|
+
const allSizes = [...new Set(typography.flatMap((t) => t.sizes))].sort((a, b) => a - b);
|
|
36
|
+
if (allSizes.length > 0) {
|
|
37
|
+
lines.push(' fontSize: {');
|
|
38
|
+
for (const size of allSizes) {
|
|
39
|
+
lines.push(` '${size}': '${size}px',`);
|
|
40
|
+
}
|
|
41
|
+
lines.push(' },');
|
|
42
|
+
}
|
|
43
|
+
// Spacing
|
|
44
|
+
if (spacing.length > 0) {
|
|
45
|
+
lines.push(' spacing: {');
|
|
46
|
+
for (const s of spacing) {
|
|
47
|
+
lines.push(` '${s.value}': '${s.value}px',`);
|
|
48
|
+
}
|
|
49
|
+
lines.push(' },');
|
|
50
|
+
}
|
|
51
|
+
// Border radius
|
|
52
|
+
if (borderRadius.length > 0) {
|
|
53
|
+
lines.push(' borderRadius: {');
|
|
54
|
+
for (const r of borderRadius) {
|
|
55
|
+
lines.push(` '${r}': '${r}px',`);
|
|
56
|
+
}
|
|
57
|
+
lines.push(' },');
|
|
58
|
+
}
|
|
59
|
+
lines.push(' },');
|
|
60
|
+
lines.push(' },');
|
|
61
|
+
lines.push('}');
|
|
62
|
+
return lines.join('\n');
|
|
63
|
+
}
|
|
64
|
+
function sanitizeKey(name, prefix) {
|
|
65
|
+
const clean = name
|
|
66
|
+
.toLowerCase()
|
|
67
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
68
|
+
.replace(/^-+|-+$/g, '');
|
|
69
|
+
return prefix ? `${prefix}-${clean}` : clean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Extract color tokens from the scene graph.
|
|
73
|
+
*/
|
|
74
|
+
function extractColors(figma) {
|
|
75
|
+
const colorMap = new Map();
|
|
76
|
+
figma.currentPage.findAll((node) => {
|
|
77
|
+
const raw = figma.graph.getNode(node.id);
|
|
78
|
+
if (!raw)
|
|
79
|
+
return false;
|
|
80
|
+
const boundVars = raw.boundVariables;
|
|
81
|
+
for (const fill of raw.fills) {
|
|
82
|
+
if (fill.type === 'SOLID' && fill.visible) {
|
|
83
|
+
const hex = colorToHex(fill.color);
|
|
84
|
+
const varName = boundVars['fills'] ? String(boundVars['fills']) : null;
|
|
85
|
+
const name = varName ?? hex;
|
|
86
|
+
const entry = colorMap.get(hex);
|
|
87
|
+
if (entry) {
|
|
88
|
+
entry.count++;
|
|
89
|
+
if (varName && entry.name === hex)
|
|
90
|
+
entry.name = varName;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
colorMap.set(hex, { name, hex, count: 1 });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
for (const stroke of raw.strokes) {
|
|
98
|
+
if (stroke.visible) {
|
|
99
|
+
const hex = colorToHex(stroke.color);
|
|
100
|
+
const varName = boundVars['strokes'] ? String(boundVars['strokes']) : null;
|
|
101
|
+
const name = varName ?? hex;
|
|
102
|
+
const entry = colorMap.get(hex);
|
|
103
|
+
if (entry) {
|
|
104
|
+
entry.count++;
|
|
105
|
+
if (varName && entry.name === hex)
|
|
106
|
+
entry.name = varName;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
colorMap.set(hex, { name, hex, count: 1 });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return false;
|
|
114
|
+
});
|
|
115
|
+
return [...colorMap.values()].sort((a, b) => b.count - a.count);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Extract typography tokens from the scene graph.
|
|
119
|
+
*/
|
|
120
|
+
function extractTypography(figma) {
|
|
121
|
+
const familyMap = new Map();
|
|
122
|
+
figma.currentPage.findAll((node) => {
|
|
123
|
+
if (node.type !== 'TEXT')
|
|
124
|
+
return false;
|
|
125
|
+
const raw = figma.graph.getNode(node.id);
|
|
126
|
+
if (!raw)
|
|
127
|
+
return false;
|
|
128
|
+
const family = raw.fontFamily;
|
|
129
|
+
if (!family)
|
|
130
|
+
return false;
|
|
131
|
+
const sizes = familyMap.get(family) ?? new Set();
|
|
132
|
+
sizes.add(raw.fontSize);
|
|
133
|
+
familyMap.set(family, sizes);
|
|
134
|
+
return false;
|
|
135
|
+
});
|
|
136
|
+
return [...familyMap.entries()].map(([family, sizes]) => ({
|
|
137
|
+
family,
|
|
138
|
+
sizes: [...sizes].sort((a, b) => a - b)
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Extract spacing tokens from the scene graph.
|
|
143
|
+
*/
|
|
144
|
+
function extractSpacing(figma) {
|
|
145
|
+
const spacingMap = new Map();
|
|
146
|
+
figma.currentPage.findAll((node) => {
|
|
147
|
+
const raw = figma.graph.getNode(node.id);
|
|
148
|
+
if (!raw)
|
|
149
|
+
return false;
|
|
150
|
+
if (raw.layoutMode !== 'NONE' && raw.itemSpacing > 0) {
|
|
151
|
+
spacingMap.set(raw.itemSpacing, (spacingMap.get(raw.itemSpacing) ?? 0) + 1);
|
|
152
|
+
}
|
|
153
|
+
for (const p of [raw.paddingTop, raw.paddingRight, raw.paddingBottom, raw.paddingLeft]) {
|
|
154
|
+
if (p > 0) {
|
|
155
|
+
spacingMap.set(p, (spacingMap.get(p) ?? 0) + 1);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return false;
|
|
159
|
+
});
|
|
160
|
+
return [...spacingMap.entries()]
|
|
161
|
+
.sort((a, b) => b[1] - a[1])
|
|
162
|
+
.map(([value, count]) => ({ value, count }));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Extract border radius values from the scene graph.
|
|
166
|
+
*/
|
|
167
|
+
function extractBorderRadius(figma) {
|
|
168
|
+
const radii = new Set();
|
|
169
|
+
figma.currentPage.findAll((node) => {
|
|
170
|
+
const raw = figma.graph.getNode(node.id);
|
|
171
|
+
if (!raw)
|
|
172
|
+
return false;
|
|
173
|
+
for (const r of [raw.topLeftRadius, raw.topRightRadius, raw.bottomRightRadius, raw.bottomLeftRadius]) {
|
|
174
|
+
if (r > 0)
|
|
175
|
+
radii.add(r);
|
|
176
|
+
}
|
|
177
|
+
return false;
|
|
178
|
+
});
|
|
179
|
+
return [...radii].sort((a, b) => a - b);
|
|
180
|
+
}
|
|
181
|
+
// ─── Tool definition ─────────────────────────────────────────
|
|
182
|
+
export const exportTailwindConfig = defineTool({
|
|
183
|
+
name: 'export_tailwind_config',
|
|
184
|
+
description: 'Generate a Tailwind CSS config from the current page\'s design tokens — colors, typography, spacing, and border radius.',
|
|
185
|
+
params: {
|
|
186
|
+
prefix: {
|
|
187
|
+
type: 'string',
|
|
188
|
+
description: 'Optional prefix for token keys (e.g. "brand")'
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
execute: (figma, args) => {
|
|
192
|
+
const colors = extractColors(figma);
|
|
193
|
+
const typography = extractTypography(figma);
|
|
194
|
+
const spacing = extractSpacing(figma);
|
|
195
|
+
const borderRadius = extractBorderRadius(figma);
|
|
196
|
+
const config = buildTailwindConfig({
|
|
197
|
+
colors,
|
|
198
|
+
typography,
|
|
199
|
+
spacing,
|
|
200
|
+
borderRadius,
|
|
201
|
+
prefix: args.prefix
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
config,
|
|
205
|
+
summary: {
|
|
206
|
+
colors: colors.length,
|
|
207
|
+
fontFamilies: new Set(typography.map((t) => t.family)).size,
|
|
208
|
+
fontSizes: new Set(typography.flatMap((t) => t.sizes)).size,
|
|
209
|
+
spacingValues: spacing.length,
|
|
210
|
+
borderRadiusValues: borderRadius.length
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=export-tailwind-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-tailwind-config.js","sourceRoot":"","sources":["../../src/tools/export-tailwind-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/tools/icons.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAiFnD,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAsE/C,CAAA;AAED,eAAO,MAAM,UAAU,UAAqB,CAAA;AAE5C,eAAO,MAAM,UAAU,4BAuDrB,CAAA"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { defineTool, nodeSummary } from './schema.js';
|
|
2
|
+
import { parseColor } from '../color.js';
|
|
3
|
+
/**
|
|
4
|
+
* Stroke-based icon library (24×24 viewbox, Lucide-style).
|
|
5
|
+
* Each icon is a VectorNetwork with vertices, segments, and regions.
|
|
6
|
+
* Tangents {x:0,y:0} = straight line segments.
|
|
7
|
+
*/
|
|
8
|
+
const T0 = { x: 0, y: 0 };
|
|
9
|
+
// Helper: build a simple polyline (open path, no regions)
|
|
10
|
+
function polyline(...pts) {
|
|
11
|
+
const vertices = pts.map(([x, y]) => ({ x, y }));
|
|
12
|
+
const segments = [];
|
|
13
|
+
for (let i = 0; i < pts.length - 1; i++) {
|
|
14
|
+
segments.push({ start: i, end: i + 1, tangentStart: T0, tangentEnd: T0 });
|
|
15
|
+
}
|
|
16
|
+
return { vertices, segments, regions: [] };
|
|
17
|
+
}
|
|
18
|
+
// Helper: merge multiple networks into one
|
|
19
|
+
function merge(...nets) {
|
|
20
|
+
const vertices = [];
|
|
21
|
+
const segments = [];
|
|
22
|
+
const regions = [];
|
|
23
|
+
for (const n of nets) {
|
|
24
|
+
const off = vertices.length;
|
|
25
|
+
vertices.push(...n.vertices);
|
|
26
|
+
segments.push(...n.segments.map(s => ({
|
|
27
|
+
...s, start: s.start + off, end: s.end + off
|
|
28
|
+
})));
|
|
29
|
+
regions.push(...n.regions.map(r => ({
|
|
30
|
+
...r, loops: r.loops.map(l => l.map(i => i + segments.length - n.segments.length + i - i))
|
|
31
|
+
})));
|
|
32
|
+
}
|
|
33
|
+
// Fix region loop indices properly
|
|
34
|
+
let segOff = 0;
|
|
35
|
+
const fixedRegions = [];
|
|
36
|
+
let vOff = 0;
|
|
37
|
+
for (const n of nets) {
|
|
38
|
+
for (const r of n.regions) {
|
|
39
|
+
fixedRegions.push({
|
|
40
|
+
...r,
|
|
41
|
+
loops: r.loops.map(l => l.map(i => i + segOff))
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
segOff += n.segments.length;
|
|
45
|
+
vOff += n.vertices.length;
|
|
46
|
+
}
|
|
47
|
+
return { vertices, segments, regions: fixedRegions };
|
|
48
|
+
}
|
|
49
|
+
// Closed shape helper: polyline that closes back to start, with a filled region
|
|
50
|
+
function closedShape(...pts) {
|
|
51
|
+
const vertices = pts.map(([x, y]) => ({ x, y }));
|
|
52
|
+
const segments = [];
|
|
53
|
+
for (let i = 0; i < pts.length; i++) {
|
|
54
|
+
segments.push({ start: i, end: (i + 1) % pts.length, tangentStart: T0, tangentEnd: T0 });
|
|
55
|
+
}
|
|
56
|
+
const loop = segments.map((_, i) => i);
|
|
57
|
+
return { vertices, segments, regions: [{ windingRule: 'NONZERO', loops: [loop] }] };
|
|
58
|
+
}
|
|
59
|
+
// Circle approximation with cubic bezier (4 arcs)
|
|
60
|
+
function circle(cx, cy, r) {
|
|
61
|
+
const k = r * 0.5523; // bezier approximation constant
|
|
62
|
+
const vertices = [
|
|
63
|
+
{ x: cx, y: cy - r }, // top
|
|
64
|
+
{ x: cx + r, y: cy }, // right
|
|
65
|
+
{ x: cx, y: cy + r }, // bottom
|
|
66
|
+
{ x: cx - r, y: cy }, // left
|
|
67
|
+
];
|
|
68
|
+
const segments = [
|
|
69
|
+
{ start: 0, end: 1, tangentStart: { x: k, y: 0 }, tangentEnd: { x: 0, y: -k } },
|
|
70
|
+
{ start: 1, end: 2, tangentStart: { x: 0, y: k }, tangentEnd: { x: k, y: 0 } },
|
|
71
|
+
{ start: 2, end: 3, tangentStart: { x: -k, y: 0 }, tangentEnd: { x: 0, y: k } },
|
|
72
|
+
{ start: 3, end: 0, tangentStart: { x: 0, y: -k }, tangentEnd: { x: -k, y: 0 } },
|
|
73
|
+
];
|
|
74
|
+
return { vertices, segments, regions: [{ windingRule: 'NONZERO', loops: [[0, 1, 2, 3]] }] };
|
|
75
|
+
}
|
|
76
|
+
export const ICONS = {
|
|
77
|
+
// Navigation
|
|
78
|
+
home: merge(polyline([3, 9], [12, 2], [21, 9]), polyline([4, 10], [4, 20], [10, 20], [10, 14], [14, 14], [14, 20], [20, 20], [20, 10])),
|
|
79
|
+
'arrow-left': merge(polyline([19, 12], [5, 12]), polyline([12, 19], [5, 12], [12, 5])),
|
|
80
|
+
'arrow-right': merge(polyline([5, 12], [19, 12]), polyline([12, 5], [19, 12], [12, 19])),
|
|
81
|
+
'chevron-left': polyline([15, 18], [9, 12], [15, 6]),
|
|
82
|
+
'chevron-right': polyline([9, 6], [15, 12], [9, 18]),
|
|
83
|
+
'chevron-down': polyline([6, 9], [12, 15], [18, 9]),
|
|
84
|
+
menu: merge(polyline([3, 12], [21, 12]), polyline([3, 6], [21, 6]), polyline([3, 18], [21, 18])),
|
|
85
|
+
// Actions
|
|
86
|
+
search: merge(circle(11, 11, 8), polyline([21, 21], [16.65, 16.65])),
|
|
87
|
+
plus: merge(polyline([12, 5], [12, 19]), polyline([5, 12], [19, 12])),
|
|
88
|
+
minus: polyline([5, 12], [19, 12]),
|
|
89
|
+
x: merge(polyline([18, 6], [6, 18]), polyline([6, 6], [18, 18])),
|
|
90
|
+
check: polyline([20, 6], [9, 17], [4, 12]),
|
|
91
|
+
edit: merge(polyline([11, 4], [4, 4], [4, 20], [20, 20], [20, 13]), polyline([18.5, 2.5], [21.5, 5.5], [12, 15], [8, 15], [8, 11], [17.5, 1.5])),
|
|
92
|
+
// Common UI
|
|
93
|
+
user: merge(circle(12, 8, 4), polyline([4, 20], [4, 18], [8, 14], [16, 14], [20, 18], [20, 20])),
|
|
94
|
+
users: merge(circle(9, 7, 4), polyline([2, 21], [2, 19], [6, 15], [12, 15], [16, 19], [16, 21]), circle(19, 7, 3), polyline([17, 14], [21, 18], [22, 21])),
|
|
95
|
+
settings: merge(circle(12, 12, 3), polyline([12, 2], [12, 4]), polyline([12, 20], [12, 22]), polyline([2, 12], [4, 12]), polyline([20, 12], [22, 12]), polyline([4.93, 4.93], [6.34, 6.34]), polyline([17.66, 17.66], [19.07, 19.07]), polyline([4.93, 19.07], [6.34, 17.66]), polyline([17.66, 6.34], [19.07, 4.93])),
|
|
96
|
+
heart: polyline([12, 21], [3, 13], [3, 8], [6, 4], [10, 4], [12, 7], [14, 4], [18, 4], [21, 8], [21, 13], [12, 21]),
|
|
97
|
+
star: polyline([12, 2], [15.09, 8.26], [22, 9.27], [17, 14.14], [18.18, 21.02], [12, 17.77], [5.82, 21.02], [7, 14.14], [2, 9.27], [8.91, 8.26], [12, 2]),
|
|
98
|
+
bell: merge(polyline([10, 21], [14, 21]), polyline([18, 8], [18, 13], [21, 17], [3, 17], [6, 13], [6, 8], [6, 5], [9, 3], [12, 3], [15, 3], [18, 5])),
|
|
99
|
+
mail: merge(closedShape([2, 4], [22, 4], [22, 20], [2, 20]), polyline([2, 4], [12, 13], [22, 4])),
|
|
100
|
+
phone: closedShape([5, 2], [8, 2], [9, 6], [7, 8], [9, 12], [12, 15], [16, 15], [18, 13], [22, 16], [22, 19], [20, 22], [4, 22], [2, 19], [2, 5]),
|
|
101
|
+
calendar: merge(closedShape([3, 4], [21, 4], [21, 22], [3, 22]), polyline([16, 2], [16, 6]), polyline([8, 2], [8, 6]), polyline([3, 10], [21, 10])),
|
|
102
|
+
clock: merge(circle(12, 12, 10), polyline([12, 6], [12, 12], [16, 14])),
|
|
103
|
+
// Media
|
|
104
|
+
image: merge(closedShape([3, 3], [21, 3], [21, 21], [3, 21]), circle(8.5, 8.5, 2.5), polyline([21, 15], [16, 10], [5, 21])),
|
|
105
|
+
camera: merge(polyline([4, 7], [4, 20], [20, 20], [20, 7], [17, 7], [15, 4], [9, 4], [7, 7], [4, 7]), circle(12, 13, 3)),
|
|
106
|
+
play: closedShape([5, 3], [19, 12], [5, 21]),
|
|
107
|
+
pause: merge(closedShape([6, 4], [10, 4], [10, 20], [6, 20]), closedShape([14, 4], [18, 4], [18, 20], [14, 20])),
|
|
108
|
+
// Files
|
|
109
|
+
file: polyline([14, 2], [6, 2], [6, 22], [18, 22], [18, 6], [14, 2], [14, 6], [18, 6]),
|
|
110
|
+
folder: polyline([2, 4], [2, 20], [22, 20], [22, 8], [12, 8], [10, 4], [2, 4]),
|
|
111
|
+
download: merge(polyline([12, 3], [12, 15]), polyline([5, 12], [12, 19], [19, 12]), polyline([3, 21], [21, 21])),
|
|
112
|
+
upload: merge(polyline([12, 19], [12, 7]), polyline([5, 14], [12, 7], [19, 14]), polyline([3, 21], [21, 21])),
|
|
113
|
+
trash: merge(polyline([3, 6], [21, 6]), polyline([8, 6], [8, 3], [16, 3], [16, 6]), polyline([5, 6], [6, 21], [18, 21], [19, 6]), polyline([10, 10], [10, 17]), polyline([14, 10], [14, 17])),
|
|
114
|
+
copy: merge(polyline([8, 4], [4, 4], [4, 16], [8, 16]), closedShape([8, 8], [20, 8], [20, 20], [8, 20])),
|
|
115
|
+
// Communication
|
|
116
|
+
'message-circle': merge(circle(12, 11, 9), polyline([8, 20], [12, 17])),
|
|
117
|
+
send: merge(polyline([22, 2], [15, 22], [11, 13], [2, 9], [22, 2]), polyline([11, 13], [22, 2])),
|
|
118
|
+
share: merge(circle(18, 5, 3), circle(6, 12, 3), circle(18, 19, 3), polyline([8.59, 13.51], [15.42, 17.49]), polyline([15.41, 6.51], [8.59, 10.49])),
|
|
119
|
+
// Status
|
|
120
|
+
'alert-circle': merge(circle(12, 12, 10), polyline([12, 8], [12, 12]), polyline([12, 16], [12, 16.01])),
|
|
121
|
+
'check-circle': merge(circle(12, 12, 10), polyline([9, 12], [11, 14], [15, 10])),
|
|
122
|
+
info: merge(circle(12, 12, 10), polyline([12, 16], [12, 12]), polyline([12, 8], [12, 8.01])),
|
|
123
|
+
eye: merge(polyline([1, 12], [5, 6], [12, 4], [19, 6], [23, 12], [19, 18], [12, 20], [5, 18], [1, 12]), circle(12, 12, 3)),
|
|
124
|
+
'eye-off': merge(polyline([1, 1], [23, 23]), polyline([17.94, 17.94], [12, 20], [5, 18], [1, 12], [5, 6], [9, 4.5]), polyline([14.12, 4.08], [19, 6], [23, 12], [20, 16.5]), circle(12, 12, 3)),
|
|
125
|
+
// Layout
|
|
126
|
+
grid: merge(polyline([3, 3], [21, 3], [21, 21], [3, 21], [3, 3]), polyline([3, 9], [21, 9]), polyline([3, 15], [21, 15]), polyline([9, 3], [9, 21]), polyline([15, 3], [15, 21])),
|
|
127
|
+
list: merge(polyline([8, 6], [21, 6]), polyline([8, 12], [21, 12]), polyline([8, 18], [21, 18]), polyline([3, 6], [3.01, 6]), polyline([3, 12], [3.01, 12]), polyline([3, 18], [3.01, 18])),
|
|
128
|
+
filter: polyline([22, 3], [2, 3], [10, 12.46], [10, 19], [14, 21], [14, 12.46], [22, 3]),
|
|
129
|
+
'log-out': merge(polyline([9, 21], [5, 21], [5, 3], [9, 3]), polyline([16, 17], [21, 12], [16, 7]), polyline([21, 12], [9, 12])),
|
|
130
|
+
'log-in': merge(polyline([15, 3], [19, 3], [19, 21], [15, 21]), polyline([10, 7], [15, 12], [10, 17]), polyline([15, 12], [3, 12])),
|
|
131
|
+
// Misc
|
|
132
|
+
link: merge(polyline([10, 13], [14, 9], [16, 7], [19, 7], [21, 9], [21, 12], [19, 14], [17, 16]), polyline([14, 11], [10, 15], [8, 17], [5, 17], [3, 15], [3, 12], [5, 10], [7, 8])),
|
|
133
|
+
'external-link': merge(polyline([18, 13], [18, 19], [5, 19], [5, 6], [11, 6]), polyline([15, 3], [21, 3], [21, 9]), polyline([10, 14], [21, 3])),
|
|
134
|
+
refresh: merge(polyline([1, 4], [1, 10], [7, 10]), polyline([23, 20], [23, 14], [17, 14]), polyline([3.51, 15], [7, 19], [12, 20], [17, 19], [20.49, 15]), polyline([20.49, 9], [17, 5], [12, 4], [7, 5], [3.51, 9])),
|
|
135
|
+
loader: merge(polyline([12, 2], [12, 6]), polyline([12, 18], [12, 22]), polyline([4.93, 4.93], [7.76, 7.76]), polyline([16.24, 16.24], [19.07, 19.07]), polyline([2, 12], [6, 12]), polyline([18, 12], [22, 12]), polyline([4.93, 19.07], [7.76, 16.24]), polyline([16.24, 7.76], [19.07, 4.93])),
|
|
136
|
+
zap: polyline([13, 2], [3, 14], [12, 14], [11, 22], [21, 10], [12, 10], [13, 2]),
|
|
137
|
+
globe: merge(circle(12, 12, 10), polyline([2, 12], [22, 12]), polyline([12, 2], [9, 6], [8, 12], [9, 18], [12, 22]), polyline([12, 2], [15, 6], [16, 12], [15, 18], [12, 22])),
|
|
138
|
+
};
|
|
139
|
+
export const ICON_NAMES = Object.keys(ICONS);
|
|
140
|
+
export const createIcon = defineTool({
|
|
141
|
+
name: 'create_icon',
|
|
142
|
+
mutates: true,
|
|
143
|
+
description: 'Create a vector icon from the built-in icon library. Returns a sized, colored vector node. Use this instead of emoji or unicode symbols for professional icons.',
|
|
144
|
+
params: {
|
|
145
|
+
name: {
|
|
146
|
+
type: 'string', required: true,
|
|
147
|
+
description: 'Icon name',
|
|
148
|
+
enum: ICON_NAMES
|
|
149
|
+
},
|
|
150
|
+
x: { type: 'number', description: 'X position' },
|
|
151
|
+
y: { type: 'number', description: 'Y position' },
|
|
152
|
+
size: { type: 'number', description: 'Icon size in px (default 24)' },
|
|
153
|
+
color: { type: 'color', description: 'Icon color hex (default #374151)' },
|
|
154
|
+
parent_id: { type: 'string', description: 'Parent node ID' }
|
|
155
|
+
},
|
|
156
|
+
execute: (figma, args) => {
|
|
157
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- defensive: runtime key may not exist
|
|
158
|
+
const network = ICONS[args.name];
|
|
159
|
+
if (!network)
|
|
160
|
+
return { error: `Unknown icon "${args.name}". Available: ${ICON_NAMES.join(', ')}` };
|
|
161
|
+
const size = args.size ?? 24;
|
|
162
|
+
const scale = size / 24;
|
|
163
|
+
const color = args.color ?? '#374151';
|
|
164
|
+
// Scale the network to requested size
|
|
165
|
+
const scaled = {
|
|
166
|
+
vertices: network.vertices.map(v => ({ ...v, x: v.x * scale, y: v.y * scale })),
|
|
167
|
+
segments: network.segments.map(s => ({
|
|
168
|
+
...s,
|
|
169
|
+
tangentStart: { x: s.tangentStart.x * scale, y: s.tangentStart.y * scale },
|
|
170
|
+
tangentEnd: { x: s.tangentEnd.x * scale, y: s.tangentEnd.y * scale }
|
|
171
|
+
})),
|
|
172
|
+
regions: network.regions
|
|
173
|
+
};
|
|
174
|
+
const node = figma.createVector();
|
|
175
|
+
node.x = args.x ?? 0;
|
|
176
|
+
node.y = args.y ?? 0;
|
|
177
|
+
node.resize(size, size);
|
|
178
|
+
node.name = args.name;
|
|
179
|
+
figma.graph.updateNode(node.id, { vectorNetwork: scaled });
|
|
180
|
+
// Apply stroke for line icons
|
|
181
|
+
const c = parseColor(color);
|
|
182
|
+
node.strokes = [{ color: c, weight: scale * 2, opacity: 1, visible: true, align: 'CENTER' }];
|
|
183
|
+
node.fills = [];
|
|
184
|
+
if (args.parent_id) {
|
|
185
|
+
const parent = figma.getNodeById(args.parent_id);
|
|
186
|
+
if (parent)
|
|
187
|
+
parent.appendChild(node);
|
|
188
|
+
}
|
|
189
|
+
return nodeSummary(node);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/tools/icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ALL_TOOLS } from './registry.js';
|
|
2
|
+
export { defineTool, nodeToResult, nodeSummary } from './schema.js';
|
|
3
|
+
export type { ToolDef, ParamDef, ParamType } from './schema.js';
|
|
4
|
+
export { toolsToAI, extractNodeIds } from './ai-adapter.js';
|
|
5
|
+
export { buildTailwindConfig } from './export-tailwind-config.js';
|
|
6
|
+
export { selectionToCode, type CodeFormat } from '../render/export-code.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ALL_TOOLS } from './registry.js';
|
|
2
|
+
export { defineTool, nodeToResult, nodeSummary } from './schema.js';
|
|
3
|
+
export { toolsToAI, extractNodeIds } from './ai-adapter.js';
|
|
4
|
+
export { buildTailwindConfig } from './export-tailwind-config.js';
|
|
5
|
+
export { selectionToCode } from '../render/export-code.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEhE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const setFill: import("./schema").ToolDef;
|
|
2
|
+
export declare const setStroke: import("./schema").ToolDef;
|
|
3
|
+
export declare const setEffects: import("./schema").ToolDef;
|
|
4
|
+
export declare const updateNode: import("./schema").ToolDef;
|
|
5
|
+
export declare const setLayout: import("./schema").ToolDef;
|
|
6
|
+
export declare const setConstraints: import("./schema").ToolDef;
|
|
7
|
+
export declare const setRotation: import("./schema").ToolDef;
|
|
8
|
+
export declare const setOpacity: import("./schema").ToolDef;
|
|
9
|
+
export declare const setRadius: import("./schema").ToolDef;
|
|
10
|
+
export declare const setMinMax: import("./schema").ToolDef;
|
|
11
|
+
export declare const setText: import("./schema").ToolDef;
|
|
12
|
+
export declare const setFont: import("./schema").ToolDef;
|
|
13
|
+
export declare const setFontRange: import("./schema").ToolDef;
|
|
14
|
+
export declare const setTextResize: import("./schema").ToolDef;
|
|
15
|
+
export declare const setVisible: import("./schema").ToolDef;
|
|
16
|
+
export declare const setBlend: import("./schema").ToolDef;
|
|
17
|
+
export declare const setLocked: import("./schema").ToolDef;
|
|
18
|
+
export declare const setStrokeAlign: import("./schema").ToolDef;
|
|
19
|
+
export declare const setTextProperties: import("./schema").ToolDef;
|
|
20
|
+
export declare const setLayoutChild: import("./schema").ToolDef;
|
|
21
|
+
export declare const setImageFill: import("./schema").ToolDef;
|
|
22
|
+
//# sourceMappingURL=modify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modify.d.ts","sourceRoot":"","sources":["../../src/tools/modify.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,4BAgBlB,CAAA;AAEF,eAAO,MAAM,SAAS,4BA+BpB,CAAA;AAEF,eAAO,MAAM,UAAU,4BAuCrB,CAAA;AAEF,eAAO,MAAM,UAAU,4BAiErB,CAAA;AAEF,eAAO,MAAM,SAAS,4BA+CpB,CAAA;AAEF,eAAO,MAAM,cAAc,4BA4BzB,CAAA;AAEF,eAAO,MAAM,WAAW,4BActB,CAAA;AAEF,eAAO,MAAM,UAAU,4BAcrB,CAAA;AAEF,eAAO,MAAM,SAAS,4BAwBpB,CAAA;AAEF,eAAO,MAAM,SAAS,4BA0BpB,CAAA;AAEF,eAAO,MAAM,OAAO,4BAclB,CAAA;AAEF,eAAO,MAAM,OAAO,4BAuBlB,CAAA;AAEF,eAAO,MAAM,YAAY,4BA0BvB,CAAA;AAEF,eAAO,MAAM,aAAa,4BAmBxB,CAAA;AAEF,eAAO,MAAM,UAAU,4BAcrB,CAAA;AAEF,eAAO,MAAM,QAAQ,4BAoCnB,CAAA;AAEF,eAAO,MAAM,SAAS,4BAcpB,CAAA;AAEF,eAAO,MAAM,cAAc,4BAmBzB,CAAA;AAEF,eAAO,MAAM,iBAAiB,4BAmD5B,CAAA;AAEF,eAAO,MAAM,cAAc,4BAuDzB,CAAA;AAEF,eAAO,MAAM,YAAY,4BA8BvB,CAAA"}
|