Skip to content

Conversation

@bastiion
Copy link
Collaborator

@bastiion bastiion commented Sep 23, 2025

this is a major work of multiple month working on it from time to time. Unfortunately I haven't developed different features in different branches, so I can only contribute this as a whole. But I managed to further separate the diffrent features added to this project and managed to fix some of the bugs that still were present in the editor. The Graviola linked data renderer are optional and will only show up in the vite build.

--

🎯 Major New Features & Enhancements

1. Graviola Integration (Semantic Forms)

  • New Package: @formswizard/graviola-forms-designer
  • New Package: @formswizard/graviola-renderer
  • Integration: Complete semantic forms support with SPARQL endpoints
  • Features:
    • Entity editing and management
    • Semantic form generation
    • Knowledge base integration
    • Docker configuration for Oxigraph database
    • Primary field selection and management
    • Similarity finder for entity matching

2. 🗺️ Advanced Location Search & Mapping

  • Enhanced Experimental Renderers: Location search with Nominatim integration
  • New Components:
    • LocationSearchField with autocomplete
    • LocationSearchMap with Leaflet integration
    • NominatimDetailsDialog for location details
    • WktLiteralInputControl for geographic data
  • Features:
    • Real-time geocoding
    • Interactive maps
    • WKT (Well-Known Text) format support
    • Address details integration

3. 🎨 Enhanced UI/UX Improvements

  • Multiple Schema Definitions: Support for creating and managing multiple form definitions
  • Editable Tabs: Rename and manage schema definitions dynamically
  • Add Definition Button: Create new schema definitions with validation
  • Selection Overlay: Improved visual feedback for selected elements
  • Better Field Settings: Improved right-side panel for field configuration

4. 🔧 Advanced Field Settings & Tools

  • Enhanced Field Settings:
    • Multiline support for text fields
    • Primary field parts integration
    • Improved type handling and consistency
    • Better UI for tool settings
  • JSON Schema Utilities:
    • JSON Pointer encoding/decoding
    • Enhanced schema utility functions
    • Better type definitions

Technical Infrastructure Updates

1. Build System & Dependencies

  • bun: switched to bun, because this has much more reproducible behavior and a FAST and reliable SAT solver
  • Vite Upgrade: Latest Vite and related plugins
  • Storybook Integration: Added GraviolaWizardApp story
  • Craco Configuration: Added for Create React App compatibility (fixes problems in dev mode)
  • ESLint Setup: Added for Vite application

2. Package Management

  • Dependency Updates:
    • Redux Toolkit and React-Redux upgrades
    • JSONForms peer dependencies updated to version 3
    • Package.json scripts and concurrency settings
  • Build Configuration:
    • TSUP configuration for multiple packages
    • CommonJS and ESM exports
    • Proper type definitions

3. State Management

  • New Form Slice: Implemented for managing form data state
  • Enhanced State Management: Better integration between components
  • Redux Integration: Improved state handling across the application

New Packages & Components

New Packages Added:

  1. @formswizard/graviola-forms-designer - Semantic forms integration
  2. @formswizard/graviola-renderer - Graviola-specific renderers
  3. Enhanced experimental renderers with location functionality

Enhanced Existing Packages:

  • Field Settings: Improved UI and functionality
  • Forms Designer: Better structure and simplicity
  • Toolbox: Enhanced draggable components
  • State Management: New form slice and better integration

🐛 Bug Fixes & Improvements

  • Console Log Cleanup: Removed debugging console logs
  • Import Consolidation: Streamlined imports across packages
  • Type Consistency: Improved TypeScript type handling
  • UI Cleanup: Better component structure and organization
  • Performance: Enhanced drag and drop functionality
  • Selection: make Controls always clickable by using a click overlay

🚀 Development Experience

  • Better Development Setup: Improved build processes
  • Testing Infrastructure: Jest presets and testing setup

Impact & Benefits

For Users:

  • Semantic Forms: Create forms with semantic meaning and knowledge base integration
  • Location Features: Advanced location search and mapping capabilities
  • Multiple Definitions: Manage multiple form schemas in one project
  • Better UX: Improved interface and user experience

For Developers:

  • Modular Architecture: Better package organization and separation of concerns
  • Enhanced Tooling: Better build processes and development experience
  • Type Safety: Improved TypeScript integration
  • Extensibility: Easier to add new renderers and functionality

bastiion added 30 commits March 11, 2025 10:51
…adjust jsonforms peer dependencies to version 3
… add exports

By specifying:

    "main": "./dist/index.cjs" for CommonJS consumers (Node.js require users)

    "module": "./dist/index.js" for ES Module consumers (modern bundlers and import syntax)

    "types": "./dist/index.d.ts" for TypeScript type declarations

and then unifying these mappings under the "exports" field with explicit subfields:

    "require": "./dist/index.cjs" for legacy CommonJS resolution

    "import": "./dist/index.js" for ES Module import resolution

    "default": "./dist/index.js" providing a fallback to ES Module

    "types": "./dist/index.d.ts" for type-aware tools

this setup provides clear direction for various JavaScript environments and tools on how to load the appropriate module format
…tionality

- Introduced NominatimDetailsDialog for reviewing and editing location details.
- Updated LocationSearchField and LocationSearchCombined to support address details.
- Enhanced WktLiteralInputControl to handle confirmation dialog for Nominatim data.
- Modified LocationToolSettings to include new configuration options for Nominatim field mappings.
@bastiion bastiion force-pushed the stable/autumn-sprint-2025 branch from 1e645b3 to b2211ba Compare September 23, 2025 23:40
- Created package.json with dependencies and scripts for building and linting.
- Added README.md with features, usage examples, and API reference.
- Implemented ToolContext and ToolProvider for managing tool libraries.
- Introduced hooks for accessing various registries and settings.
- Configured TypeScript and build settings with tsup.
…ildingBlocks to utilize new context for draggable elements
…egrate new tool context; remove unused renderers and update dependencies in package.json
… update GraviolaWizardApp to use new ToolProvider and refactor draggable components with updated icons
…r; refactor App component to use WizardApp instead of WizardProvider and MainLayout.
…able components, icons, renderers, and configuration files
…ve unused type definitions and streamline imports
…ew utility functions for scope management and clean up unused code

fixes a lot of bugs with groups and inner elements
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants