All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Graph- Added context menus for nodes, edges and the graph background with relevant actions.ElementsInfoPanel- Added a new panel to display some information about the currently selected nodes and edges.Algorithms- Added traversal algorithms tab in the Algorithms modal.Project- Adopted SonarQube for code quality analysis.GenerationAlgorithms- Added a new graph generation algorithm for HLP graphs and unit tests. (Sorry about the diff pollution on MR 😇)Tests- Added structure for unit, integration and end-to-end tests.Graph- Implemented a tabbed interface for multiple graph instances, allowing users to create and manage different contexts and easily switch between them.Modals- ImplementedConfirmModalfor reusable confirmation dialogs across the app.Graph- Added support for multiple graph instances with a workspace system.Shortcuts- Added aGraphShortcutsBindingcomponent to bind keyboard shortcuts to graph actions using theuseGraphShortcutshook.Hooks- ImplementeduseGraphMutationhook to provide better syncronization between the core graph state and the React state, with methods for syncing metadata and selection.Settings- Added settings for keyboard shortcuts configuration.Settings- AppliedArrangeOnsettings to graph operations (add node/edge, import, edit node/edge) to trigger automatic layout when enabled.Settings- Implemented the settings modal with a tabbed interface for graph, layout, and style settings.Project- Adopted React Compiler for better rendering performance.Packages- Upgraded dependencies to their latest versions.Env- Added empty.envfile to enforce standard project practices.Actions- Added an action for pull requests.Project- Added minimum README content.Graph- Implements validation for graph limits on action bar, generation algorithms and importing modal.Actions- Added a new action for pre-deploy to automate changelog and version bumping.
Project- Adjustes ts.config files to share common properties and extend when needed;Project- Adjusted files into subfolders for better organization;Inputs- AdjustedToggleInputto accept custom labels for on/off states.
SonarQube- Fixed SonarQube issues reported after adoption.Toasts- Fixed an issue where toast were always rendered beneath modals.
Settings- Added persistence to localStorage;Settings- Added graph element limits toSettingsProvider.Hooks- ImplementedusePropertyEditorhook to manage property editing state and logic for nodes and edges.ActionBar- Added a display for the current application version.ErrorHandling- Added a global error boundary component to catch and display errors gracefully to the user.GenerationAlgorithms- Added minor helper function and a user feedback for when exceeding max edges for simple graphs.
Modals- Adjusted modals subtitle into a prop.App- Adjusted modals to rendered at top level of the app to avoid z-index and overflow issues.Contexts- Splited concerns ofPopupsContextintoModalsContextfor managing modal states andToastsContextfor managing toast notifications.Contexts- Splitted concerns ofGraphProviderintoGraphRegistryProviderfor managing graph instances,GraphMetaProviderfor managing graph metadata (defaults, version, etc.) andGraphSelectionProviderfor managing graph selection.Project- Changed endOfLine in .prettierrc to 'lf'.Inputs- Changed default import for named imports to be more consistent with the rest of the project.Error- RenamedParsedErrorToasttoParsedErrorToaststo better reflect a collection of toast configurations.
ImportExportService- Fixed parsing of blank lines in text import.TypeGuards- Fixed loose type guards for elements (NodeDataandEdgesData) data.
Actions- Added a release step for the project's pipeline.GraphService- Added aresetGraphfunction to clear the current graph data and state.
Algorithms- Adjusted graph generation algorithms to useresetGraphinstead ofclearGraphfor better state management.
Logger- Fixed logs being stored in production.Actions- Fixed deployment failing but deploying anyway.
Modals- Removed dead modal files from bad merge.EdgeService- Removed dead propertynumEdgesfrom the graph's data.
UI- Added a toast notification system with support for different types (success, error, info) and positions.UI- Introduced a settings context for managing application settings and defaults.Project- Added a custom error classParsedErrorfor consistent error handling and user-friendly messages.
UI- Reduced and added clarification comment on artificial loading time of the application.UI- ChangedModalsProvidertoPopupsProviderto better reflect its purpose and added support for toasts.
DEV- Fixed an issue with browser expecting css sourcemap.DEV- Fixed an issue with the logger not capping logs properly, which could lead to memory issues.UI- Fixed an issue with Select Input options not displaying titles correctly.
UI- Implemented a modal system, including Import/Export (text, JSON, PNG, JPG), Help (tabbed documentation), and Algorithms modals.UI- Added aActionsBarwith buttons for graph manipulation (add/remove nodes and edges, clear graph) and operations.UI- Added aPropertiesBarwith sections for graph info, layout configuration, and global node and edge style selection.UI- Added support for directed graph visualization with a toggle in the Properties Bar.Graph- Implemented autopan on node drag near viewport edges with configurable speed and margin.Graph- Implemented graph generation algorithms service supporting 8 graph families (complete, grid, circle, star, wheel, bipartite, complete bipartite, simple) with configurable parameters.Project- Added a centralized Logger system with context-scoped loggers, session log storage, and downloadable log export.Project- Added centralized configuration defaults for algorithms, graph styles, and layouts.Project- Adopted Prettier for code formatting (printWidth: 85,singleQuote: true,trailingComma: 'es5').Workflow- Added a simplifieddeploy_to_pages.ymlworkflow for deploying to GitHub Pages.
UI- Replaced default font with 'Alan Sans'.UI- Replaced the previous UI with a new React-based interface using DaisyUI and Tailwind CSS.Graph- Replacedcosewithfcoseas the default layout algorithm.Graph- Encapsulated core graph logic into stateless service functions (graphService,nodesService,edgesService,layoutService,importExportService).Project- Migrated project build process from esbuild to Vite for improved development experience and performance.Project- Updated project dependencies to their latest versions.Project- Updatedtsconfig.jsonwith module paths for cleaner imports (@/,@Logger,@Modals,@Contexts,@Inputs).Project- Reorganized project structure for better modularity, separating components, contexts, hooks, providers, services, config, and types.
Edges- Fixed an issue where edge creation would fail when selecting nodes after a bounding box selection.
Project- Removed old vanilla JavaScript source files (app.ts,graph.ts,graphConfig.ts,userInterface.ts) and assets (src/public,docs/).Workflow- Removed oldbuild_and_deploy.ymlworkflow, issue/PR templates, and automation scripts (calculate_semver.sh,fetch_scopes.py,update_changelog.py).
Graph- IntroducedGraphConfigclass for centralized configuration management.UI- AddedUserInterfaceclass to handle UI interactions and events.Project- AddedGraphandUserInterfacemodules to improve modularity.
Graph- RefactoredGraphclass to encapsulate graph-related operations.UI- Replacedui.tswithuserInterface.tsfor better separation of concerns.Project- Updated dependencies inpackage-lock.jsonandpackage.jsonto their latest versions.HTML- Updated HTML structure to work better on screen sizes below 1000px.
UI- Fixed layout panel toggling issues for grid and circle layouts.Graph- Resolved edge and node property update inconsistencies.
UI- Removednodes.ts,edges.ts, andui.tsin favor of the newUserInterfaceclass.Project- Removed redundantsafe-bufferanddebugdependencies frompackage-lock.json.
Project- Updatefetch_scopescript to from .sh to .pyProject- Update PR, Issue, and Feature templates, and moves version commits from tag commit to pre-release commitProject- Changes deployment from gh-pages branch to mainUI- Refactors right bar into accordions for better user experience
UI- Fixed wrong tooltips for grid layout propertiesUI- Remove redundant text from left bar buttonsProject- Fix action input wrong usage
Project- Adds option to toggle deployment to GitHub Pages
Project- Moves commits generated in version from gh release to release commit message
Project- Fix action not fetching correct logProject- Fix form templates wrong keys and filename
- Actions to automate the release process (W.I.P.)
- Add a pull request template for saving time merging branches
- Add a yaml issue and enhancement template so it makes reporting and suggesting easier
- Updates README.md
- Applies MIT License to repository;
- Changes HTML to reflect new refactoring;
- Split files into major elements;
- Refactor functions to match typescript;
- Adopted Keep A Changelog style and Semantic Versioning;
- Bundle and transpile .ts code with esbuild;
- Configure eslint rules and other meta files;
- Import previous project files;
- Setup structure;
- Makes bug report and feature request template forms more friendly
/releasedirectory renamed to/docs
- Remove commitlint and husky from the project
- Remove changelog entries that don't reflect anymore