Commit Graph
100 Commits
Author SHA1 Message Date
Hermes Agent 901d75391e fix: sanitize provider baseUrl in main thread — strip stray '@url:' annotation and markdown backticks pasted from chat (was producing invalid fetch URLs); bump 0.1.14 2026-09-19 19:43:03 +02:00
Hermes Agent 02ba14b791 fix: declare networkAccess in package.json figma-plugin block (single source of truth); drop redundant inject-manifest post-build hack (also fixes watch mode losing networkAccess); bump 0.1.13 2026-09-19 19:15:52 +02:00
Hermes Agent 15d5f0408f feat: bundle apinex model catalog statically (Figma sandbox has no network egress); dropdown uses bundled list, Fetch falls back gracefully 2026-09-19 18:06:44 +02:00
Hermes Agent 0f7005e4b1 diag: add example.com connectivity probe (PROBE_RESULT) to determine if Figma sandbox has internet egress; bump 0.1.11 2026-09-19 18:01:33 +02:00
Hermes Agent 7307fa6c76 fix: inject networkAccess into manifest post-build (build-figma-plugin strips it); bump 0.1.10 2026-09-19 17:54:19 +02:00
Hermes Agent 35c5633536 fix: add networkAccess to manifest (main-thread fetch was blocked → FETCH threw); stringify fetch errors; bump 0.1.9 2026-09-19 17:47:02 +02:00
Hermes Agent 540c97912b chore: bump plugin version to 0.1.8 (footer status bar) 2026-09-19 17:43:19 +02:00
Hermes Agent 9065ddccbd fix: revert load effect to working form; move Plugin-loaded log to a separate safe effect so it cannot block setLoaded (was causing stuck 'Loading…') 2026-09-19 17:42:45 +02:00
Hermes Agent 427155f93f fix: real API key now saved/sent (was mangled by apiKey: literal); add Copy Log button in header with actual API response (status+raw) and request echo 2026-09-19 17:37:17 +02:00
Hermes Agent d62c453ff5 fix: Fetch error shown as string (not [object Object]); extract API error from response body; guard fetch availability 2026-09-19 17:06:36 +02:00
Hermes Agent e6b5a87f24 fix: Dropdown value must be null (not '') for 'no selection' — was throwing Invalid value 2026-09-19 16:39:30 +02:00
Hermes Agent 895b254c2a fix: guard against malformed stored settings (crash → blank window); add ErrorBoundary to surface render errors 2026-09-19 16:36:24 +02:00
Hermes Agent bfd3638093 refactor: static single-provider settings form (no Add/Delete, form visible immediately); defaultSettings seeds one provider 2026-09-19 16:19:34 +02:00
Hermes Agent a26a1fd81e fix: bound layout via 100vw/100vh root so settings form is scrollable (not clipped); robust addProvider via ref 2026-09-19 16:12:51 +02:00
Hermes Agent 0827a285e1 chore: bump plugin version to 0.1.1 (footer status bar) 2026-09-19 16:06:47 +02:00
Hermes Agent 56b1e7e161 fix: make settings panel scrollable (html/body height:100%), bump window size, robust load 2026-09-19 16:02:44 +02:00
Hermes Agent ce5aa025aa feat: fetch APInex models from main thread, populate default-model dropdown (networkAccess added) 2026-09-19 15:51:12 +02:00
Hermes Agent 1468570d0f ui: settings body — providers (APInex) config, local clientStorage persistence, backup/import 2026-09-19 15:31:16 +02:00
Hermes Agent 379b3d3370 ui: zero Container padding (space kept for types) so header/footer use only their own insets 2026-09-19 15:14:30 +02:00
Hermes Agent c648e7ae19 ui: full-bleed separator (breaks out of Container's space=medium padding) 2026-09-19 15:05:03 +02:00
Hermes Agent 5e40054ad3 ui: add header/footer padding via --space-8 / --space-4 tokens 2026-09-19 14:55:40 +02:00
Hermes Agent 51be05d588 ui: semantic window layout — header/nav/main/footer (custom markup, body flex-stretched) 2026-09-19 13:55:34 +02:00
Hermes Agent 775326b03f ui: rebuild Settings shell on Stack/Columns/Inline layout primitives (dividers in stack; body flex-stretched) 2026-09-19 13:50:41 +02:00
Hermes Agent b796eae1eb ui: replace invented modal with old-plugin style — MenuItem component + Modal (More menu) 2026-09-19 13:06:04 +02:00
Hermes Agent 0fdd6164ed ui: Settings window shell — header nav, empty body, footer status bar, more-menu modal 2026-09-19 12:57:16 +02:00
Hermes Agent c7aa5033d2 ui: no border on handles, 500ms delayed hide, fix maximize button position 2026-09-16 15:13:22 +02:00
Hermes Agent eee6471110 ui: hide handles immediately on leaving resize zone; dim styling further 2026-09-16 15:07:41 +02:00
Hermes Agent d611d67ff1 ui: 500ms reveal triggers on hovering a resize handle, not the whole window 2026-09-16 15:05:25 +02:00
Hermes Agent 0c8fc61dc7 ui: handles appear after 500ms hover dwell, subtler styling 2026-09-16 14:57:08 +02:00
Hermes Agent aa261ed1e8 ui: fix invisible handles — drive visibility via React state, not broken CSS class 2026-09-16 14:47:33 +02:00
Hermes Agent 6328989608 ui: make resize handles visible on any Figma theme (gray border + light fill) 2026-09-16 14:42:27 +02:00
Hermes Agent bf14dba0ac ui: hovering any handle reveals all zones, hovered one brighter 2026-09-16 14:27:48 +02:00
Hermes Agent c0845d8e4c ui: resize hitboxes now rounded, reveal on hover, uniform light color 2026-09-16 14:20:14 +02:00
Hermes Agent 8b35cef414 fix: docked window re-fits on canvas change, preserves manual resize otherwise 2026-09-16 12:58:35 +02:00
Hermes Agent cd8b4a5a0d fix: docked window also re-applies bounds-derived size on panel resize 2026-09-16 12:54:20 +02:00
Hermes Agent ff2430b6f5 fix: docked window now re-pins on Figma panel resize (drift detect) 2026-09-16 12:49:50 +02:00
Hermes Agent 029806f5e0 fix: floor resize width/height at 1 so Figma validation never sees 0 2026-09-11 14:30:29 +02:00
Hermes Agent a06802a9fc revert: drop minWidth/minHeight (Figma rejects these keys); native floor stays 2026-09-11 14:24:20 +02:00
Hermes Agent 226e75f2c3 fix: set minWidth/minHeight=0 in showUI so resize past Figma default floor 2026-09-11 14:21:05 +02:00
Hermes Agent 110e686a8c ui: remove Center button from header (center behavior kept for Restore) 2026-09-11 14:18:44 +02:00
Hermes Agent b39e510098 fix: keep maximize flag across native-drag poll (was overwritten by debounced save) 2026-09-11 14:16:20 +02:00
Hermes Agent f885be7266 feat: persist maximize state so Restore button shows after reopen 2026-09-11 14:10:58 +02:00
Hermes Agent a6d02322f3 fix: persist maximize + corners as free placement (exact size/pos), edges as dock 2026-09-11 13:59:24 +02:00
Hermes Agent fd0c52342f feat: drop plugin-side min window size; let Figma enforce its own limit 2026-09-11 13:49:39 +02:00
Hermes Agent ce20357098 feat: persist window placement across restarts via figma.clientStorage (dock|free, default=center) 2026-09-11 13:46:02 +02:00
Hermes Agent fda4be1765 fix: maximize/restore toggles via explicit flag (was stuck due to Figma size clamp) 2026-09-11 13:24:34 +02:00
Hermes Agent 534149991e feat: maximize -> full viewport + center-top; restore -> center behavior 2026-09-11 13:13:37 +02:00
Hermes Agent e65db88011 ui: hide variable debug panel, size readout, and copy button 2026-09-11 13:04:25 +02:00
Hermes Agent eefdff9620 tweak: side dock bottom inset 70px 2026-09-10 18:03:20 +02:00
Hermes Agent ef89c8abfc feat: side dock leaves 80px bottom inset so Figma panel stays visible 2026-09-10 18:00:00 +02:00
Hermes Agent 05bbcdb474 fix: side dock (left/right) pins to top, not vertically centered 2026-09-10 17:50:26 +02:00
Hermes Agent bb0b01cabc fix: center is pure one-shot (no centerLocked); resize no longer snaps to center 2026-09-10 17:40:14 +02:00
Hermes Agent 153ff2ae27 fix: hitbox edges inset 16px from corners (no overlap) 2026-09-10 17:34:01 +02:00
Hermes Agent 17dd61ae0f i18n: English-only UI; hitboxes colored (corners violet, edges per-side) and edges span full side 2026-09-10 17:26:42 +02:00
Hermes Agent c799c22889 docs: add resize/positioning reference baseline (zoom=1 visible UI) 2026-09-10 17:16:31 +02:00
Hermes Agent 47cad7968d feat: remove dock grid from body, move center button to header 2026-09-10 17:11:25 +02:00
Hermes Agent ee87211f76 feat: corner click in dock sets free axis to 50% viewport (DOCK_HALF), drag still resizes 2026-09-10 16:57:31 +02:00
Hermes Agent e916d1f2a6 fix: corner in dock only resizes on real drag, clean click = exit to corner 2026-09-10 16:46:28 +02:00
Hermes Agent 7adbc11247 simplify: dock detection via flag (dockedPosRef), drop size-based isEdgeDocked 2026-09-10 16:01:42 +02:00
Hermes Agent ccc38a0561 feat: corner click in edge-dock starts single-axis resize (exit dock); corners/center not dock 2026-09-10 15:41:04 +02:00
Hermes Agent 2dcb572b12 feat: perimeter handles do resize on drag, dock on click (center button-only) 2026-09-10 15:18:32 +02:00
Hermes Agent 6393c276a0 feat: perimeter hitboxes now trigger dock (center stays button-only) 2026-09-10 15:11:14 +02:00
Hermes Agent 6624805449 fix: dock position uses real (post-clamp) window size, not requested canon 2026-09-10 13:40:34 +02:00
Hermes Agent 6901c5e0cd fix: manual resize no longer resets on pointerup (canonical vs hold mode) 2026-09-09 20:43:46 +02:00
Hermes Agent 20777fb0de fix: left/top resize — let Figma move window (no explicit reposition, kills jitter) 2026-09-09 19:41:45 +02:00
Hermes Agent a86c3e3152 fix: RESIZE_START takes start size from UI (no window in main thread) 2026-09-09 19:38:22 +02:00
Hermes Agent c8df3b8054 fix: resize anchored at start (no jump) — absolute target from RESIZE_START anchor 2026-09-09 19:36:53 +02:00
Hermes Agent 3c0ab7a67c debug: make resize handles visible (rgba fill) for debugging 2026-09-09 19:31:45 +02:00
Hermes Agent be419351b2 feat: 8 perimeter resize handles (static divs, no .map, typed callbacks) 2026-09-09 19:29:46 +02:00
Hermes Agent b6c0a58071 feat: 8 invisible resize handles on whole perimeter (replace native useWindowResize) 2026-09-09 19:25:38 +02:00
Hermes Agent 8a0bf4d8f3 feat: 8 invisible resize handles on whole perimeter (edges + corners) 2026-09-09 19:19:26 +02:00
Hermes Agent c0e2fe0358 feat: center one-shot but keeps position on manual resize (centerLocked) 2026-09-09 19:13:58 +02:00
Hermes Agent ab6a2e879f feat: edge fix-size editable via manual resize; center one-shot; corners keep size 2026-09-09 19:10:48 +02:00
Hermes Agent 61577b01cd fix: corners only move window, keep size (don't stretch) 2026-09-09 18:59:47 +02:00
Hermes Agent e57e4c18ea feat: center dock = 50% of viewport (w/h) 2026-09-09 18:55:58 +02:00
Hermes Agent 837bdfbfae feat: dock edges fixed-size (left/right=320w full-h, top/bottom=320h full-w), corners full 2026-09-09 18:51:44 +02:00
Hermes Agent a38f7188ee feat: dock buttons stretch window to zone (edge/corner) + reposition; center keeps size 2026-09-09 18:44:30 +02:00
Hermes Agent 5984df1692 fix: account for 38px plugin header in gapB/center.y and vertical dock 2026-09-09 18:33:16 +02:00
Hermes Agent b57cda16ec feat: normalized window position relX/relY relative to viewport (no infinite-canvas coords) 2026-09-09 18:22:29 +02:00
Hermes Agent 153da94fde ui: show substituted values under each calc formula (gap/center with numbers) 2026-09-09 18:08:43 +02:00
Hermes Agent d29654b8d5 feat: 9-position dock grid (4 corners + 4 edges + center) 2026-09-09 17:54:53 +02:00
Hermes Agent 0aeaf9f831 ui: expand targets viewport geometry (maxViewport), drop 2000 probe; no header subtraction 2026-09-09 16:58:31 +02:00
Hermes Agent 1ff8a47323 ui: align drag-resize max limit to 2000 (matches expand request) 2026-09-09 16:52:21 +02:00
Hermes Agent 960a2b0e03 feat: expand requests 2000x2000 so Figma clamps to its real window limit 2026-09-09 16:43:25 +02:00
Hermes Agent 0d61580acb fix: measure real window size via iframe innerWidth, not requested lastSize (fix gap tautology) 2026-09-09 16:23:12 +02:00
Hermes Agent b2ae4c44d6 feat: maximize window to full viewport (maxViewport = bounds*zoom), clamp drag 2026-09-09 16:05:50 +02:00
Hermes Agent 4228357a35 fix: convert window px size to canvas-units (w/zoom) for dock + gap/center math 2026-09-09 15:50:34 +02:00
Hermes Agent 13f3129c78 fix: clipboard copy fallback via execCommand (iframe blocks navigator.clipboard) 2026-09-09 15:43:11 +02:00
Hermes Agent 831a5b3615 docs: add gotcha — icon button sizing (use native filled icon, not inline SVG) 2026-09-09 15:41:11 +02:00
Hermes Agent 84a89cd4b6 ui: use native IconCopySmall24 to match size/weight of sibling icon buttons 2026-09-09 15:39:10 +02:00
Hermes Agent fd12df7d39 ui: replace copy text button with icon button (lucide-style copy/check) 2026-09-09 15:27:34 +02:00
Hermes Agent 4f43c5f89c feat: copy debug values (RAW + calculated) to clipboard with feedback 2026-09-09 15:19:50 +02:00
Hermes Agent 63a762d002 ui: split raw Figma API values vs calculated; show code var names + formulas 2026-09-09 15:15:09 +02:00
Hermes Agent 9f9349efb6 fix: keep docked window pinned to edge across zoom/pan via viewport poll 2026-09-09 15:13:05 +02:00
Hermes Agent 106f21b2c4 ui: readable grid layout for window debug readout (mono, tabular, grouped) 2026-09-09 13:23:36 +02:00
Hermes Agent dc8ab7421e refactor: auto-refresh window info after dock/resize/drag; drop manual Info button 2026-09-09 13:20:35 +02:00
Hermes Agent 85e9433626 fix: type listener WINDOW_INFO to match extended info shape (build was broken) 2026-09-09 13:19:14 +02:00
Hermes Agent dcfb235d06 feat: show derived window data (zoom, viewport, gaps, center)
- main.ts GET_WINDOW_INFO: add zoom, viewport bounds, gaps L/R/T/B, center
  computed from figma.viewport + plugin window geometry
- ui.tsx: render additional readout lines under 🔍 Инфо
2026-09-09 13:18:32 +02:00
Hermes Agent ecbbd5d8c1 feat: show live window x/y/size debug readout inside plugin
- main.ts: track lastSize; GET_WINDOW_INFO handler returns x/y via
  figma.ui.getPosition().canvasSpace (typed as any) + stored width/height
- ui.tsx: WINDOW_INFO listener, '🔍 Инфо' button, render x/y/w/h block
2026-09-09 13:12:17 +02:00
Hermes Agent bc9b2e60e9 feat: window docking buttons (left/center/right) via figma.ui.reposition
- main.ts: add DOCK_WINDOW handler using figma.viewport.bounds + figma.ui.resize/reposition
- ui.tsx: add dock buttons (Left/Center/Right) + keep expand/collapse + drag handle
2026-09-09 13:08:11 +02:00