Changelog
View SourceAll 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.
[0.9.9] - 2026-02-02
Added
- Utility functions for cleaning custom properties from the schema:
JSONSchemaEditor.SchemaUtils.clean_custom_property/2: Removes a specific custom property recursively.JSONSchemaEditor.SchemaUtils.clean_all_custom_properties/1: Removes all properties starting withx-.
[0.9.8] - 2026-02-01
Added
- Support for custom schema extensions (
x-properties) at any node level - Automatic type casting for extension values (number, boolean, null)
- Dedicated UI section for managing custom extensions with a new 'tag' icon
[0.9.7] - 2026-01-27
Added
on_changecallback for real-time schema and data updatesheader_classandtoolbar_classassigns for custom stylingon_savecallback support to conditionally render the "Save" button
Changed
- Refactored CSS to use private variables with fallbacks for better theming support
[0.9.6] - 2026-01-27
Changed
- Updated
.jse-hostand.jse-containerto useheight: 100%instead ofmin-height: 100vhto better adapt to parent containers
[0.9.5] - 2026-01-26
Fixed
- Prevent
on_savecallback inJSONEditorwhen schema validation fails - Disable "Save" button in
JSONEditorwhen schema validation fails
[0.9.4] - 2026-01-26
Added
- New
JSONSchemaEditor.JSONEditorcomponent for editing JSON data according to a schema
[0.9.3] - 2026-01-22
Added
- Progressive disclosure UI enhancements for improved skimmability
- Visual highlights for active constraints and logic when sections are collapsed
- Node summaries (property counts, item types) displayed on collapsed nodes
- Error highlighting for collapsed nodes and closed toggle sections
- Automatic expansion of nodes when toggling constraints, logic, or description
- Visual indicator for existing descriptions when collapsed
[0.9.2] - 2026-01-22
Changed
- Bump Elixir requirement to ~> 1.18 to use the built-in JSON module
Fixed
- Improved
SchemaUtils.cast_value/2to safely handle non-string inputs - Fixed list index gap handling in
SchemaUtils.update_in_path/3
[0.9.1] - 2026-01-22
Changed
- Improved documentation and usage examples
Fixed
- Fixed format selection in the UI
[0.9.0] - 2026-01-22
Added
- Support for
if,then,else, andnotkeywords (conditional logic) - Progressive disclosure for conditional logic and negation in the UI
- Support for
nulltype - UI state for property ordering
Changed
- Major internal refactoring: introduced
SchemaMutatorto centralize schema transformations - Simplified event handling and UI component data flow
- Performance optimization: Pre-compiled regex patterns in
SimpleValidator - Performance optimization: Efficient validation error lookup using tuple keys
- Performance optimization: Optimized
SchemaUtils.update_in_path/3and schema validation logic - Improved documentation for
ViewerandPrettyPrintermodules - Expanded test coverage including property-based tests for validator and mutator
Fixed
- Removed redundant schema update logic when adding properties
[0.8.0] - 2026-01-21
Added
- New
JSONSchemaEditor.Viewercomponent for standalone JSON display with syntax highlighting - Structural punctuation highlighting in JSON viewer (braces, brackets, colons, commas)
- Indentation guides (vertical lines) in JSON viewer for better readability
Changed
PrettyPrinter.format/1now automatically decodes and pretty-prints JSON strings
[0.7.3] - 2026-01-20
Fixed
- Fixed Test Lab textarea not stretching to fill its container
[0.7.2] - 2026-01-20
Changed
- Increased the default height of the Sample JSON Data textarea in Test Lab
[0.7.1] - 2026-01-20
Added
- Quick-set default Schema URI button (inset into the URI input field)
[0.7.0] - 2026-01-20
Added
- Test Lab: Live validation of sample JSON against the edited schema
- Built-in
SimpleValidatorto support testing without external dependencies - Improved button styles and disabled states
[0.6.0] - 2026-01-20
Added
- Undo/Redo support for the Visual Editor
- Standardized icons for better UI consistency
[0.5.0] - 2026-01-20
Added
- Schema Generation: Infer JSON Schema (Draft 07) from pasted JSON data
- Updated Import Modal to switch between 'Import Schema' and 'Generate from JSON' modes
[0.4.0] - 2026-01-20
Added
- Import functionality: Paste JSON from clipboard to hydrate the schema editor
- Import button and modal dialog
[0.3.1] - 2026-01-19
Fixed
- Fixed
BadMapErrorwhen updating logic branches (e.g.,anyOf) by adding list traversal support toSchemaUtils - Removed forced alphabetical sorting of object properties to prevent UI jumping during renaming
[0.3.0] - 2026-01-15
Changed
- Major codebase refactor for simplicity and maintainability
- Consolidated and simplified event handlers
- Streamlined validation and schema utility functions
- Improved module documentation and usage examples
- Enhanced UI component data-driven rendering
[0.2.0] - 2026-01-14
Added
- Support for $schema field with Draft 07 default
- Tabbed interface with Visual Editor and JSON Preview
- JSON PrettyPrinter for formatted schema display
- Copy to Clipboard functionality for schema export
- Format support for string types (email, date-time, etc.)
- Strict Object Control (additionalProperties: false)
- Composition & Logic support (anyOf, oneOf, allOf)
- Collapsible nodes for better navigation
- Enum support with type-safe casting
- Validation constraints for all types
- Metadata fields (title, description)
- Required fields management
- Expandable description textarea
- Soft encapsulation support for custom classes and attributes
Changed
- Improved CSS styling and organization
- Refactored component structure for better maintainability
- Enhanced UI/UX with better visual feedback
- Simplified README documentation
- Standardized schema update helpers
- Decoupled UI state from JSON Schema
Removed
- Tailwind-specific CSS directives
- Redundant type labels from UI
- Packaging guide documentation
[0.1.0] - 2026-01-14
Added
- Initial release of JSON Schema Editor.
- Basic recursive schema editing support.
- Real-time validation.
- Phoenix LiveComponent integration.