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
110e686a8c
ui: remove Center button from header (center behavior kept for Restore)
2026-09-11 14:18:44 +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
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
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
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
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
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
13f3129c78
fix: clipboard copy fallback via execCommand (iframe blocks navigator.clipboard)
2026-09-09 15:43: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
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
Hermes Agent
84ec81bf03
fix: drag works again; size label updates only on pointerup
...
- ui.tsx: useWindowResize callback emits RESIZE_WINDOW with hook-computed
size (not window.innerWidth) so figma.ui.resize grows correctly during drag
- ui.tsx: add window 'pointerup' listener to refresh size readout AFTER
drag ends (Figma already applied new size by then)
2026-09-09 12:58:26 +02:00
Hermes Agent
4aa82fbefa
fix: window size readout now updates during drag
...
- ui.tsx: useWindowResize callback now builds a fresh {width,height} from
window.innerWidth/innerHeight instead of the hook's mutated ref object,
so Preact re-renders and the size label updates live
- toggleWindowSize: spread MIN/MAX constants to new objects (same ref bug)
2026-09-09 12:56:07 +02:00
Hermes Agent
26d391f90a
fix: drag works from first attempt + size in window header
...
- ui.tsx: pass min/max opts to useWindowResize (fixes first-drag bug)
- ui.tsx: move live size to top toolbar (left of expand button)
- main.ts: set figma window title with startup size via showUI({title})
2026-09-09 12:50:35 +02:00