1.0.0 (2025-10-08)
Features
- accepts an array of textboxes as part of initialData (aaf48bd)
- Add advanced pan controls with configurable options (83c9b3a), closes #25
- add click-based connector creation mode with empty space support (#108) (5ff21cc), closes #84
- add close button to item control components (a808b83)
- add comprehensive tests for connector reducer and improve CI/CD coverage reporting (70b1f56)
- Add configurable hotkey system for tools (ef258df), closes #59
- Add custom icon import functionality with automatic scaling (dd80e86)
- add Help dialog and shortcut key support (d500460)
- add i18n to main menu & docs: update Chinese README (#130) (a001da7)
- add language detector & update Chinese README (#127) (e18e51f)
- add LLM-friendly export features and format code with Prettier (77b304c)
- Add option to toggle connector arrows (dea6a1e), closes #74
- Add server-side storage for persistent diagram management (bf3a30f), closes #48
- added error boundary (#90) (179b512)
- adds ability to remove a node (2e2a98f)
- adds basic editor example (dc04314)
- adds codesandbox config (b23c3a9)
- adds deleteView reducer (80f257b)
- adds discord option to main menu (86900a9)
- adds documentation (a279729)
- adds example for readonly mode (db1fc8f)
- adds icons (b7ac563)
- adds image export options to toggle grid and change bg color (ee7a92d)
- adds link to Github repo in main menu (109048c)
- adds linting dependency (bfb0295)
- adds standalone build and a Dockerfile (e8d678d)
- adds title to scene config (ee3306b)
- adds to standaloneExports (d5084e2)
- adds utility methods on the window for debugging (38c4278)
- adds validation check for connectors with less than 2 anchors (880ed5b)
- adds zoom on scroll (53641a4)
- allows all interactions to be disabled (0e5ca5a)
- allows an optional
viewId
to be passed as part of initialData (30cd3f2) - allows better drag and drop interaction for connector anchors (7661bcb)
- allows codesandbox to open a browser preview (fbf48d2)
- allows color selection for nodes (39afd84)
- allows custom node labels (with example) (55f9b37)
- allows expandable node labels (90f6c0e)
- allows icons to be drag and dropped onto canvas (07dc1d1)
- allows layer order of rectangles to be changed (56591cb)
- allows loading of local scene file (8b362ea)
- allows main menu to be customised (46ce637)
- allows main menu to be hidden (3b02ae1)
- allows node icon to be changed (fd88787)
- allows node labels to be expanded (a1783f1)
- allows project to be centered (c638bf0)
- allows saving of scene (a1a98f2)
- allows textBoxes to be dragged from any point (2f6cfa1)
- allows translation of rectangles (19478ab)
- allows width and height to be passed through as props (f1f9c0f)
- applies animation on zoom and scroll (efde778)
- attempts to boost performance by explicitly activating GPU rendering (0dc27b7)
- blocks pointer-events on title (b5a57d0)
- bumps patch version (94c3097)
- bumps up isopacks version (2a9d10b)
- changes starting mode to PAN (5f015c4)
- ci: implemented automatic versioning plus releases (9d9fe84)
- closes any open itemControls when panning mode selected (aba2633)
- closes any open itm controls if main menu is opened (a21d01b)
- closes main menu BEFORE native file dialog appears (1382c41)
- configures webpack build for docker image (1a64706)
- debug mode size indicator now wraps around all items (536b51d)
- disables lasso mode for now (d017b3e)
- disables scroll / zoom animations on drag and drop layer (1d9324e)
- displays connector anchors only when connector is selected / active (366b816)
- displays main manu in top left corner (6bbef04)
- displays title at bottom of view (35b73de)
- enable panning by dragging on empty space with left mouse button (ddb28a2)
- enables dragging of connector anchors (f808159)
- enables expandable labels on nodes (36c5c17)
- enhance connector functionality with multiple labels and line types (#128) (d5e02ea), closes #107 #113
- enhance context menu functionality with item and empty states (674b46f)
- ensures connectors have start and end nodes (0bace0b)
- executes entry / exit logic for interactions (3112842)
- exports isoflow props as type (75ed461)
- exports Scene typings (28122ed)
- exports types (28f4db9)
- exposes api to update single node and hook into scene changes (37fd9ea)
- filters textbox data on scene export (ca087b4)
- fixes cursor position when editor not 100% of viewport (287de5b)
- fixes UX around drag and drop onto canvas (37bc36c)
- fixes zIndexing of scene items (516ab8b)
- grid listens to window resize events (0b97897)
- hides label height control when no label present (82977bf)
- hides scene title if editor is in 'NON_INTERACTIVE' mode (91fa85a)
- implement comprehensive undo/redo system with keyboard shortcuts and UI integration (b9356d3)
- Implement quick icon selection workflow for improved UX (8576e30), closes #56
- implements 'clear canvas' menu item (e65a782)
- implements adding node to scene (99c8060)
- implements basic support for touch devices (a841504)
- implements callback example (57f6a00)
- implements connector colors (eef4dba)
- implements connector controls (198a1f4)
- implements connector direction icon (eeaaad9)
- implements connector labels (4ad8b22)
- implements connector logic (19324be)
- implements connector styles (46de2cf)
- implements connector width controls (58dd3b5)
- implements connectors (43aab47)
- implements group rendering (UI not implemented yet) (d9daa68)
- implements icons searchbox (887a916)
- implements image export (9f11cce)
- implements lasso selection (UI disabled) (a76e5e7)
- implements lastUpdated field on views (3cff06d)
- implements multiselect (f68daac)
- implements node delete (b13cd66)
- implements node drag and drop (b350320)
- implements node labels (f93f901)
- implements node positioning via drag and drop (a6fdbf0)
- implements onSceneUpdated callback (f1f77d4)
- implements readmore on node description overflow (f9536c9)
- implements rectangle controls (94995f0)
- implements rectangle delete (416b976)
- implements rectangle tool basics (bd7a118)
- implements text tool (c240def)
- implements transform controls for rectangles (cb36408)
- imports isopacks as separate package (0580440)
- improves label handeling (1d3e7d5)
- improves mouse tracking (77e8c02)
- improves panning mode UX (2230637)
- improves panning mode UX (4b0d3d8)
- improves scrolling on sidebars (6c76790)
- improves textbox sizing (20ac174)
- improves UX on Tool menu (ac4e9e8)
- improves UX when dragging rectangle anchor (5feca66)
- improves UX when selecting elements (541e469)
- improves word wrap handling in labels (ba30ffd)
- increases resolution of export images (68c11e5)
- installs zustand devtools (ad78b52)
- introduces new TextBox tool (23d3bda)
- isoflow takes 100% height as default (85e36bd)
- keeps icons when canvas is cleared (ccbedd7)
- limits connector width (14a72c7)
- makes App component default export (8d731af)
- moves non-interactive check further up the tree (7a1ab19)
- moves zoom controls to lower left (c2f456a)
- performance upgrade (solves issue with nodes not being GC'd) (bf42411)
- prevents onSceneUpdated called the first time scene is loaded (d1bc30e)
- prevents user highlighting while dragging (7a5b996)
- reduces height of node labels (d551897)
- reduces size of icons slightly (32f4b12)
- refactors schema to accomodate model (ad5a4e0)
- reinstates interactions (97d65fa)
- removes buggy scrollTo node when label expanded (b0c5c9d)
- removes color from node schema (ccea412)
- removes custom label container for now (194b4ed)
- removes zustand dev tools (4a4f168)
- renders a basic node to scene (5dbeb97)
- replace import toolbar with tooltip guidance (a2a47b4), closes #123
- replaces xstate with custom state machine implementation (6b90ad9)
- resets the UI after a canvas clear (413567e)
- resets view after file has been successfully loaded (9910fec)
- resets window cursor when Isoflow is unmounted (5d51aab)
- sets min width on node labels (620970e)
- sets overflow hidden (9614b5e)
- shows animated outline around focussed nodes (53bd3f2)
- shows both model title and view title at bottom of screen (159f6d4)
- stores colors as part of model (4797b22)
- styling updates (9270924)
- styling updates on all ui elements (4de4882)
- updates 'read more' button styling (cfb60f3)
- updates anchor connector schema (5d6f3d0)
- updates connector styling (d980947)
- updates connector styling (e21ed39)
- updates connector width defaults (af5c060)
- updates connector width to more sensible values (851ae21)
- updates copy (ffef690)
- updates copy on tooltip (d127150)
- updates cursor styling (73d9b52)
- updates docs (485dc4c)
- updates documentation (1de5c9d)
- updates documentation (52e1fc2)
- updates drag and drop instruction copy (6cdff05)
- updates example (d707b14)
- updates example content (cbdcc76)
- updates example data (1c28a47)
- updates example data (945ec81)
- updates example data (edf6f28)
- updates example scene (1c6af28)
- updates example scene (f9cc014)
- updates examples and documentation (4da997f)
- updates examples to start with fitToView=true (a129c17)
- updates icon category styling (1f67c29)
- updates icons on zoom controls (3de56fd)
- updates image urls in docs (1e60907)
- updates main menu options (031a90a)
- updates meta tag on example html page (35850c4)
- updates node connector styling (78b243c)
- updates palette (a061f57)
- updates readme (f5be45b)
- updates rectangle styling (e60e16e)
- updates roadmap on README (8992d84)
- updates sidebar styling (c83452b)
- updates styling (a69cbf8)
- updates styling (fee7c2a)
- updates styling (52ec509)
- updates styling on node labels (d0f3cdf)
- updates theme colours (1faeb31)
- updates view default name (4d4a668)
- upgrades performance on debug tools (2f9bc47)
Bug Fixes
- add missing i18n files to public folder for GitHub Pages (606aebc)
- adds keys to controls panel components (c1c5bd3)
- adds keys to mapped components (6113819)
- adds tsc to linting script (0e29ce3)
- bug on dragging items (5c9e3e0)
- bug with disappearing item controls (c3b72e3)
- bug with dragging items (1d0351c)
- bug with moving rectangles (e1515a7)
- bumps @types/react down to v17 for compatibility (9814af2)
- calls function correctly (f06acb6)
- console errors (213a5d6)
- controls container now scrolls (f20580a)
- Correct Dockerfile FROM AS casing (a383d57)
- correct rectangle reducer and update CI workflow with build step (2bd1318)
- correct typo in integration section of quickstart docs (1256d30)
- corrects CodeSandbox setup script (8548b00)
- corrects connector width issue on zoom (555244c)
- corrects icon filename casing (9161bbc)
- corrects icon reference (7d5e116)
- corrects textbox selection not displaying correctly (fe7a2ed)
- corrects typo in error message (4bb73e2)
- corrects value of
disableInteractions
(b34a2b2) - corrects zoom tooltips (07011f2)
- delete connectors by ID instead of index in scene (67f0dde)
- delete textBox and rectangle from scene when removed (32bcce5)
- disables animations on scene layer on first render (8d98b84)
- displays icons in sidebar (6878712)
- enables textboxes to be selected more easily (6c3a4ce)
- excludes
docs
folder from tsconfig (0d21cf1) - excludes node_modules from type checking (68fe053)
- explicitly includes tag when publishing to npm (0b4b7aa)
- failing test (d4e03b0)
- failing tests (21b5579)
- first tile not registering when dragging item (975ce6a)
- fixes bug caused by missing param in function call (421bd07)
- fixes bug with 'unable to find cloneNode' on image export (971ae23)
- fixes bug with rectangle resizing (0731757)
- fixes color resolving mechanic (4a67974)
- fixes debug tools dimensions (6cdc9eb)
- fixes export bug only referencing first view in the model (ef7c314)
- fixes failing test (569e94f)
- fixes image export reading non-current scene (d54b485)
- fixes issue loading model (33658b3)
- fixes issue when clearing the canvas (0986c52)
- fixes issue where exported image isn't positioned correctly (b525b8a)
- fixes issue with calculating fit-to-screen dimensions (1ad851a)
- fixes issue with connector path not being generated correctly (4257445)
- fixes issue with context menu not displaying correctly when zoomed out (721e78a)
- fixes issue with fitToScreen only taking dimensions of first view (126a77f)
- fixes issue with grid misalignment (db9f60f)
- fixes issue with initial view not being automatically generated (533a54c)
- fixes issue with reloading scene on window resize (8f24381)
- fixes issue with textbox selection (9903755)
- fixes issue with view timestamp (53a4b61)
- fixes linting scripts in package.json (693845a)
- fixes nodes not displaying correctly when being dragged onto canvas (3686515)
- fixes pan mode (e384934)
- fixes zIndex ordering among nodes (6139401)
- forces case sensitive dir names through Git (01fdfe5)
- handle missing items gracefully in hooks and components (ac41ed7)
- handle orphaned connector references when deleting items (#139) (d698a1a)
- hides label when no content to display (e2e2866)
- highlight hamburger menu icon when main menu is open (0eb0881)
- implements various minor fixes (7e0c18d)
- improve item control handling in Cursor and DragItems modes (02fae75)
- Increase nginx client_max_body_size to 10MB for larger diagrams (fb3e171)
- issue with first group drawn not displayed (2cb9648)
- issue with scrolling icons (68e451a)
- issue with skipping tiles while dragging nodes (15bb5fb)
- issues with manipulating stale groups when dragging (f0e6766)
- Keep connector tool selected after creating a connection (64612a5)
- label heights on nodes (fc20387)
- linting errors (04fa3cf)
- makes node icons dynamic (9c7e293)
- makes onSceneChange an optional prop (bd26647)
- malformed CI config (73c795b)
- missing
textboxes
definitions in initialData (e72dd84) - moves zustand devtools from devDeps to deps (solves linting issue) (cd70da3)
- nodemon not watching for file updates (dfab4c2)
- omits git tag prefix to align with npm semver requirements (408d776)
- omits git tag prefix to align with npm semver requirements (5251bec)
- passes full list of connector properties (a19ea29)
- preserve connector persistence without breaking image export (650045d)
- prevents unnecessary rerenders (9722a62)
- reinstates debug tools (6bf1740)
- remove duplicate downloadFile and useEffect in ExportImageDialog (#109) (8db2710)
- removes "fit to screen" tool (302d4b8)
- removes autobind to fix failing tests (b050d4c)
- removes console log (7f12fbc)
- removes console.log (494a6a0)
- removes old logo asset (8c63ec3)
- removes redundant function calls (fd5258e)
- removes redundant hook (f13d3a6)
- removes redundant prop (0b64ffd)
- removes references to window size, replaces with renderer size (50c7323)
- removes sidebar on controls panel (6a152ee)
- removes touchmove for now (6f028fa)
- removes unnecessary import (1e95cf9)
- removes unnecessary imports (3dbc5fc)
- removes unnecessary param in tsconfig (8f24b09)
- removes unrecognised svg attributes (f1b18e5)
- removes unrecognised svg attributes (0e9eac1)
- removes unrecognised svg stroke param (6df12e3)
- removes unused package dependency (5f63a4d)
- removes unused prop (d7ddb69)
- removes unused ref (f7532c2)
- resets item controls on drag (7adb20f)
- resolve connector persistence issues (#110) (2733f0b), closes #103
- Resolve pan control configuration issues (2310b85), closes #57
- resolve webpack and TypeScript declaration file conflicts (2630d42)
- resolves paths after typese are compiled (b2416f3)
- returns only first item after a click on a tile (for efficiency) (b220c25)
- reverts experimental mechanic to test efficiency gains (94fbf4b)
- scales label height according to zoom (51f0d4f)
- sets node focus correctly (af2d96d)
- shows grid when in edit mode (56621f3)
- strange cursor behaviour when zoomed out (ccf267d)
- syncs lock file with package.json (1c8f74a)
- tests not passing (029bcf6)
- typings (db49988)
- typo (fe68a69)
- ui bug when creating scene elements (2158b5e)
- Update Docker run command to use absolute path for volume mount (617b865)
- updates CI config to only trigger on updated tags (b1dd426)
- updates documentation (d35db15)
- updates documentation link prefixes (61e03f3)
- updates package to be compatible with others (db28d94)
- upgrade to dom-to-image-more for better maintenance (5d6cf0e)
- use relative path for i18n loading on GitHub Pages (2091aa0)
- uses next/router rather than next/navigation (a638fde)
- workaround for mobx to work correctly with modemanager (4a9d918)
Reverts
- fix: excludes node_modules from type checking (8b5332b)
- removes explicit definition of tag used for npm (b1bcb30)
- Revert "Enhance ExportImageDialog performance and UX (#100)" (#101) (dbdaf02)
Documentation
- add chinese README.md (#117) (556ef4a)
- Add custom icon import feature to README with icon resource links (6d53f08)
- update API documentation for initialData and renderer props (ab7f2e6)
- Update CONTRIBUTORS.md (#89) (d6fab61)
- Update CONTRIBUTORS.md for monorepo structure (526aeab)
- Update encyclopedia for monorepo structure (94bf3c0)
- Update README with comprehensive monorepo information (979c05d)
Code Refactoring
- add title to Section in TextBoxControls (1bc1e5e)
- applies origins of 0,0 to all scene layers (ba44af5)
- connector functionality (b2bf329)
- encapsulates ui menu styling in own component (bd91210)
- implements more efficient calling of onSceneUpdate() (0306597)
- integrates the renderer with react (773473b)
- migrate away from paperjs [PHASE 1] (8e6995c)
- migrate away from paperjs [PHASE 2] (4da4235)
- minor code style updates (dba4b3b)
- moves /tests/fixtures to /fixtures (fd8b16a)
- moves model types to model file (3bf59ef)
- moves state to context (ad34781)
- moves ui elements into own component (ca91184)
- moves Ui layer styling to parent component (d581f28)
- propagates all naming of groups to rectangles (cdaaea4)
- propagates renaming of rectangle tool (514dd7a)
- refactors both connector and node labels to be single component (49c9f9b)
- refactors connector style into a zod enum (1e950a7)
- remove redundant setMode calls in interaction modes (fa4490f)
- remove unnecessary vertical divider from ToolMenu (11a9f61)
- remove unused layer ordering functionality (#118) (b5b2825)
- removes non-useful hooks (bf96554)
- removes size prop from menu props (ce543d5)
- renames areaTool -> rectangleTool (8a28036)
- renames connector name -> description (804b4f6)
- renames initialScene -> initialData (ab5c778)
- renames interactionsEnabled > disableInteractions (436cac1)
- renames main menu options for better handling (84d5015)
- renames node.position to node.tile (41e8de6)
- renames reducers to modes in interactionManager (7275dd3)
- revert few changes (44cd5f0)
- simplifies dev by removing animations (for now) (cbe7249)
- simplifies how zooming & scrolling is applied (bfce0b4)
- simplifies interaction manager logic (cfd8a5a)
- simplifies library exports and includes reducers as exports (e7c79f0)
- simplifies logic inside of onMouseEvent (034a849)
- simplifies renderer component (0cb2446)
- unifies various ui states into single enum (6a0a398)
- wraps item controls in UiElement component (b069219)