Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
bf2f428
remove unused import from appBarSlice
bastiion Mar 11, 2025
127d336
added push script to turbo
bastiion Mar 11, 2025
3fa1976
update push script and files field to package.json for multiple packages
bastiion Mar 11, 2025
151bcef
fix: handle optional schema in tool tester function
bastiion Mar 21, 2025
6073dab
feat: add deeplyUpdateReference function to update $ref paths in JSON…
bastiion Mar 21, 2025
9d33860
feat: add getDefinitionKey function
bastiion Mar 21, 2025
1d70d67
feat: add actions to manage schema definitions
bastiion Mar 21, 2025
48b8c88
feat: add useJsonSchema hook
bastiion Mar 21, 2025
2fbc20a
fix: prevent setting draggedMeta for schema elements with $ref
bastiion Mar 21, 2025
71472e4
fix: dependency versioning
bastiion Mar 21, 2025
9b2987c
feat: add editable tabs for schema definitions with rename functionality
bastiion Mar 21, 2025
d0316dc
feat: add Graviola renderer package with core components and configur…
bastiion Mar 21, 2025
052480e
feat: Toolbox component with props for draggable components and updat…
bastiion Mar 21, 2025
251b79b
feat: integrate Graviola provider with schema in WizardApp and enhanc…
bastiion Mar 21, 2025
0a4dc2a
feat: add better example
bastiion Mar 21, 2025
7297cb8
feat: update TypeScript configuration to use ES2017 library
bastiion Mar 21, 2025
9b023c4
chore: update package.json dependencies and script concurrency settings
bastiion Mar 21, 2025
0ec301a
feat: add TypeScript configuration and ESLint setup for Vite application
bastiion Mar 21, 2025
adeae6f
refactor: add all renderers for forms designer into one file
bastiion Mar 23, 2025
3f64393
refactor: streamline renderer integration in Wizard and WizardApp com…
bastiion Mar 23, 2025
d14af4d
feat: implement EditEntityModal component for entity editing function…
bastiion Mar 23, 2025
c8ae232
feat: integrate EditEntityModal into GraviolaProvider and update rend…
bastiion Mar 23, 2025
9ef0dae
refactor: update uiSchemas type to allow any structure in JsonFormsEd…
bastiion Mar 23, 2025
04975bb
chore: update package.json files to use @formswizard/tsup-config and …
bastiion Mar 23, 2025
5349f00
add tsup.config.js files for multiple packages using @formswizard/tsu…
bastiion Sep 23, 2025
f98aa85
update package.json files to change main entry points to CommonJS and…
bastiion Sep 23, 2025
70fc3e9
update package.json files to upgrade redux and redux toolkit
bastiion Sep 23, 2025
8a6278d
update package.json files to build types and utils packages correctly
bastiion Sep 23, 2025
a8af1fc
chore: update package.json to upgrade @reduxjs/toolkit and react-redu…
bastiion Sep 23, 2025
828ac62
add NominatimDetailsDialog component and enhance location search func…
bastiion Sep 23, 2025
167c652
feat: implement formSlice for managing form data state
bastiion Sep 23, 2025
00d5358
enhance JSON schema types and add utility functions
bastiion Sep 23, 2025
0aa481c
enhance schema utility functions and add JSON Pointer encoding/decoding
bastiion Sep 23, 2025
541ecf3
remove console log and update type for draggable components
bastiion Sep 23, 2025
14dea8a
consolidate imports and remove console logs in drag and drop hooks
bastiion Sep 23, 2025
26496b3
add PrimaryFieldPart to ToolSettingParts mixin
bastiion Sep 23, 2025
aa57bcc
consolidate imports and enhance TextfieldToolSettings with multiline …
bastiion Sep 23, 2025
a02f619
streamline imports and clean up EditableFieldKeyDisplay component
bastiion Sep 23, 2025
ad40f56
refactor FieldSettingsView to improve UI and type handling
bastiion Sep 23, 2025
12f7c44
refactor ToolSettingsDefinition and useWizardSelection for type consi…
bastiion Sep 23, 2025
21ff417
refactor useFieldSettings to be able to transparently use underlying …
bastiion Sep 23, 2025
b2d763a
add mixins export to fieldSettings index
bastiion Sep 23, 2025
730192b
Implement selection overlay in LayoutElement for improved UI interaction
bastiion Sep 23, 2025
449a7c7
Refactor DropTargetFormsPreview and layout components for better UX a…
bastiion Sep 23, 2025
b412818
Update package.json scripts and dependencies; remove tsup.config.ts
bastiion Sep 23, 2025
4249bfb
Add AddDefinitionButton component for creating and editing new schema…
bastiion Sep 23, 2025
facdf8f
Add ThemeWrapper component for theme management in forms designer
bastiion Sep 23, 2025
75b530a
Refactor forms designer components for improved structure and simplic…
bastiion Sep 23, 2025
403f79f
Remove EditEntityModal and refactor GraviolaProvider and tool settings
bastiion Sep 23, 2025
431f81a
Add Docker oxigrap database with nginx configuration
bastiion Sep 23, 2025
5db930b
Add Graviola Forms Designer package with initial setup
bastiion Sep 23, 2025
fad56d8
Update peer dependencies in package.json to use version 5 and modify …
bastiion Sep 23, 2025
06015a8
Update package configuration and dependencies
bastiion Sep 23, 2025
7cfa026
Add craco configuration and update package scripts
bastiion Sep 23, 2025
cb83ef8
Update storybook dependencies and add GraviolaWizardApp story
bastiion Sep 23, 2025
da03333
Upgraded Vite and related plugins to their latest versions
bastiion Sep 23, 2025
da1ebb7
Update package.json and WizardMainLayout.tsx
bastiion Sep 23, 2025
d643b7c
modify gitignore
bastiion Sep 23, 2025
1656c15
update lock files
bastiion Sep 23, 2025
b2211ba
Remove comments sections from tsconfig.app.json
bastiion Sep 23, 2025
100ec22
Add @formswizard/tool-context package with initial implementation
bastiion Sep 24, 2025
cfb2904
significantly reduce bundle size by using only a few mui icons
bastiion Sep 24, 2025
7ae015e
start another method on how to provide custom icons
bastiion Sep 24, 2025
e2677bb
update bun.lock
bastiion Sep 24, 2025
845df3f
Add Rollup visualizer plugin to Vite configuration for bundle analysis
bastiion Sep 24, 2025
7f89907
Update cellRendererRegistry type to JsonFormsCellRendererRegistryEntr…
bastiion Sep 24, 2025
2ad541f
Add AJV and AJV formats dependencies; enhance hooks for JsonForms sta…
bastiion Sep 24, 2025
680c9da
Remove advancedDraggableComponents and update buildingBlocksSlice to …
bastiion Sep 24, 2025
fd27dbf
Refactor DropTargetFormsPreview to utilize usePreparedJsonFormsState
bastiion Sep 24, 2025
2a3fcc3
hover and background color handling to use theme palette
bastiion Sep 24, 2025
ffbd80b
Update package.json to replace ajv with @formswizard/tool-context and…
bastiion Sep 24, 2025
477465e
make groups selectable and dropable
bastiion Sep 24, 2025
080d66a
remove deprecated Hidden componets
bastiion Sep 24, 2025
b560b7d
Remove unused draggable components and icons, refactor Toolbox and Bu…
bastiion Sep 24, 2025
fe8a3a8
Add basic-tools package with form components, icons, and tool settings
bastiion Sep 24, 2025
eb284a3
Streamline and Add advanced-tools package
bastiion Sep 24, 2025
fa24822
Refactor MainLayout and Wizard components to streamline props and int…
bastiion Sep 24, 2025
85cc5a7
Add graviola tools collection and integrate basic and advanced tools;…
bastiion Sep 24, 2025
4615d7c
Update index.html title and refactor GraviolaWizardApp import in main…
bastiion Sep 24, 2025
f4a6508
Update index.html meta description and title to reflect Forms Designe…
bastiion Sep 24, 2025
8f841f3
Add tool collection hygen templates for Forms Designer; include dragg…
bastiion Sep 24, 2025
1edc7d3
update bun.lock
bastiion Sep 24, 2025
eef1f2c
alter example state
bastiion Sep 24, 2025
3c0c810
Refactor updateScopeOfUISchemaElement to improve scope handling; remo…
bastiion Sep 25, 2025
dc6a221
Add new type definitions for UISchemaElement and Layout with path; im…
bastiion Sep 25, 2025
644a620
Refactor Layout components to improved drag-and-drop functionality.
bastiion Sep 25, 2025
7886437
Enhance useDropTargetto fix drag-and-drop handling;
bastiion Sep 25, 2025
c519e00
Refactor jsonFormsEditSlice to enhance UISchema handling; introduce n…
bastiion Sep 25, 2025
8d06191
Remove deprecated locationToolElement file and update ToolIconName in…
bastiion Sep 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,8 @@ dist

# nix
result*

_site
.vscode

update-tsup-deps.js
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
auto-install-peers = true
@graviola:registry=https://npm.winzlieb.eu/
34 changes: 34 additions & 0 deletions _templates/forms-designer/tool-collection/README.md.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
to: packages/<%= name.split("/")[1] %>/README.md
---
# <%= name %>

<%= description %>

## Installation

```bash
npm install <%= name %>
```

## Usage

```typescript
import { <%= name.split("/")[1].replace(/-/g, '') %>ToolCollection } from '<%= name %>'

// Use the tool collection in your forms designer
const { draggableComponents, icons, renderers } = <%= name.split("/")[1].replace(/-/g, '') %>ToolCollection
```

## Components

This package includes:

- **Draggable Components**: Form components that can be dragged into the designer
- **Icons**: Icon components for the toolbox
- **Renderers**: JsonForms renderers for displaying the components
- **Tool Settings**: Configuration options for each component

## License

MIT
16 changes: 16 additions & 0 deletions _templates/forms-designer/tool-collection/draggableComponents.ts.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
to: packages/<%= name.split("/")[1] %>/src/draggableComponents.ts
---
import { DraggableElement } from '@formswizard/types'

export const draggableComponents: DraggableElement[] = [
// Add your draggable components here
// Example:
// {
// name: 'Example Component',
// ToolIconName: 'ExampleIcon',
// jsonSchemaElement: {
// type: 'string',
// },
// },
]
14 changes: 14 additions & 0 deletions _templates/forms-designer/tool-collection/icons.tsx.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
to: packages/<%= name.split("/")[1] %>/src/icons.tsx
---
import { ToolIconRegistry } from '@formswizard/types'

export const icons: ToolIconRegistry = {
// Add your icon components here
// Example:
// ExampleIcon: ({ sx, variant = 'outlined' }) => (
// <SvgIcon sx={sx}>
// {/* Your icon SVG content */}
// </SvgIcon>
// ),
}
71 changes: 71 additions & 0 deletions _templates/forms-designer/tool-collection/package.json.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
to: packages/<%= name.split("/")[1] %>/package.json
---
{
"name": "<%= name %>",
"version": "0.0.0",
"description": "<%= description %>",
"license": "MIT",
"homepage": "https://github.com/FormsWizard",
"repository": {
"type": "git",
"url": "https://github.com/FormsWizard/forms-designer.git"
},
"contributors": [
],
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.cjs",
"default": "./dist/index.js"
}
},
"files": [
"dist",
"CHANGELOG.md",
"README.md"
],
"scripts": {
"depcheck": "depcheck",
"build": "tsup",
"dev": "tsup --watch",
"lint": "eslint src/**/*.{ts,tsx}",
"lint-fix": "eslint --fix src/**/*.{ts,tsx}",
"pack-clean": "bun run clean-package && (bun pm pack || true) ; bun run clean-package restore",
"publish-clean": "bun run clean-package && npm publish --access public && bun run clean-package restore"
},
"peerDependencies": {
"@jsonforms/core": "^3",
"@jsonforms/material-renderers": "^3",
"@jsonforms/react": "^3",
"@mui/icons-material": "^5",
"@mui/material": "^5",
"@types/react": "^18",
"@types/react-dom": "^18",
"react": "^16.9.0 || ^17.0.0 || ^18",
"react-dnd": "^16.0.1"
},
"dependencies": {
"@formswizard/types": "workspace:*",
"@formswizard/utils": "workspace:*"
},
"devDependencies": {
"@formswizard/designer-tsconfig": "workspace:*",
"@formswizard/tsup-config": "workspace:*",
"eslint-config-formsdesigner": "workspace:*",
"tsup": "^8.0.0",
"typescript": "^4.5.2"
},
"clean-package": {
"extends": "../../../clean-package.config.cjs"
},
"eslintConfig": {
"root": true,
"extends": ["eslint-config-formsdesigner"]
}
}
17 changes: 17 additions & 0 deletions _templates/forms-designer/tool-collection/prompt.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// see types of prompts:
// https://github.com/enquirer/enquirer/tree/master/examples
//
module.exports = [
{
type: "input",
name: "name",
message: "Name of the tool collection package",
initial: "@formswizard/",
},
{
type: "input",
name: "description",
message: "Description of the tool collection",
initial: "A collection of form components and renderers",
},
];
13 changes: 13 additions & 0 deletions _templates/forms-designer/tool-collection/renderers.ts.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
to: packages/<%= name.split("/")[1] %>/src/renderers.ts
---
import { JsonFormsRendererRegistryEntry } from '@jsonforms/core'

export const renderers: JsonFormsRendererRegistryEntry[] = [
// Add your renderers here
// Example:
// {
// tester: exampleRendererTester,
// renderer: ExampleRenderer,
// },
]
17 changes: 17 additions & 0 deletions _templates/forms-designer/tool-collection/src_index.ts.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
to: packages/<%= name.split("/")[1] %>/src/index.ts
---
// Export draggable components
export * from './draggableComponents'

// Export icons
export * from './icons'

// Export renderers
export * from './renderers'

// Export tool settings if applicable
export * from './toolSettings'

// Export the complete tool collection
export * from './toolCollection'
14 changes: 14 additions & 0 deletions _templates/forms-designer/tool-collection/toolCollection.ts.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
to: packages/<%= name.split("/")[1] %>/src/toolCollection.ts
---
import { ToolCollection } from '@formswizard/types'
import { draggableComponents } from './draggableComponents'
import { icons } from './icons'
import { renderers } from './renderers'

export const <%= name.split("/")[1].replace(/-/g, '') %>ToolCollection: ToolCollection = {
name: '<%= name.split("/")[1] %>',
draggableComponents,
icons,
renderers,
}
12 changes: 12 additions & 0 deletions _templates/forms-designer/tool-collection/toolSettings.ts.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
to: packages/<%= name.split("/")[1] %>/src/toolSettings.ts
---
import { FieldSettings } from '@formswizard/types'

export const toolSettings: Record<string, FieldSettings> = {
// Add your tool settings here
// Example:
// ExampleComponent: {
// // Field settings configuration
// },
}
12 changes: 12 additions & 0 deletions _templates/forms-designer/tool-collection/tsconfig.json.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
to: packages/<%= name.split("/")[1] %>/tsconfig.json
---
{
"extends": "@formswizard/designer-tsconfig/react-library.json",
"include": ["src"],
"exclude": ["dist", "build", "node_modules"],
"compilerOptions": {
"strict": false,
"resolveJsonModule": true
}
}
8 changes: 8 additions & 0 deletions _templates/forms-designer/tool-collection/tsup.config.js.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
to: packages/<%= name.split("/")[1] %>/tsup.config.js
---
import { makeConfigWithExternals } from "@formswizard/tsup-config/tsup.config.js";
import pkg from "./package.json";

const config = makeConfigWithExternals(pkg);
export default config;
27 changes: 27 additions & 0 deletions apps/cra/craco.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const path = require('path');

module.exports = {
webpack: {
configure: (webpackConfig) => {
// Allow imports from the workspace root node_modules
webpackConfig.resolve.modules = [
...webpackConfig.resolve.modules,
path.resolve(__dirname, '../../node_modules'),
];

// Add alias for react-refresh to point to the workspace root
webpackConfig.resolve.alias = {
...webpackConfig.resolve.alias,
'react-refresh': path.resolve(__dirname, '../../node_modules/react-refresh'),
};

// Disable the ModuleScopePlugin to allow imports from outside src/
const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
webpackConfig.resolve.plugins = webpackConfig.resolve.plugins.filter(
plugin => !(plugin instanceof ModuleScopePlugin)
);

return webpackConfig;
},
},
};
24 changes: 15 additions & 9 deletions apps/cra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
"name": "@formswizard/wizard-cra",
"version": "0.0.0",
"private": true,
"homepage": "/forms-designer/cra",
"scripts": {
"start": "serve -s build -l 3000",
"dev": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"dev": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject",
"lint": "eslint \"src/**/*.ts*\"",
"clean": "rm -rf build"
Expand All @@ -17,12 +16,12 @@
"@emotion/react": "^11.11.1",
"@formswizard/experimental-renderers": "workspace:*",
"@formswizard/forms-designer": "workspace:*",
"@jsonforms/material-renderers": "^3.1.0",
"@jsonforms/react": "^3.1.0",
"@jsonforms/material-renderers": "^3",
"@jsonforms/react": "^3",
"@mui/icons-material": "^5.14.1",
"@mui/material": "~5.14.2",
"@mui/x-date-pickers": "^6.10.0",
"@reduxjs/toolkit": "^1.9.5",
"@reduxjs/toolkit": "^2.6.1",
"ajv": "^8.12.0",
"dayjs": "^1.11.9",
"lodash": "^4.17.21",
Expand All @@ -31,11 +30,13 @@
"react-dnd-html5-backend": "^16.0.1",
"react-dnd-touch-backend": "^16.0.1",
"react-dom": "^18.2.0",
"react-redux": "^8.1.1",
"react-scripts": "5.0.0",
"react-redux": "^9.2.0",
"react-refresh": "^0.17.0",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.2"
},
"devDependencies": {
"@craco/craco": "^7.1.0",
"@formswizard/designer-tsconfig": "workspace:*",
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^12.1.2",
Expand All @@ -45,9 +46,14 @@
"@types/react": "^18.2.20",
"@types/react-dom": "^18.2.7",
"@types/testing-library__jest-dom": "^5.14.5",
"react-dev-utils": "^12.0.1",
"serve": "^14.2.1",
"typescript": "^4.5.4"
},
"resolutions": {
"react": "18.3.1",
"react-dom": "18.3.1"
},
"eslintConfig": {
"extends": [
"react-app",
Expand Down
4 changes: 2 additions & 2 deletions apps/cra/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
content="A JSON Schema based WYSIWYG Forms Designer"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
Expand All @@ -24,7 +24,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Web - Turborepo Example</title>
<title>Forms Designer</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
7 changes: 2 additions & 5 deletions apps/cra/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { locationTools } from '@formswizard/experimental-renderers'
import { WizardProvider, MainLayout } from '@formswizard/forms-designer'
import { WizardApp } from '@formswizard/forms-designer'

export const App = () => {
return (
<WizardProvider>
<MainLayout additionalToolSettings={locationTools.toolSettings} renderers={locationTools.rendererRegistry} />
</WizardProvider>
<WizardApp />
)
}
15 changes: 14 additions & 1 deletion apps/storybook/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,20 @@
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
"react-dom": "^18.2.0",
"@formswizard/graviola-forms-designer": "workspace:*",
"@ebay/nice-modal-react": "^1.2.13",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.1",
"@jsonforms/material-renderers": "^3",
"@jsonforms/react": "^3",
"@mui/material": "~5.14.0",
"@mui/x-date-pickers": "^6.10.0",
"@reduxjs/toolkit": "^2.6.1",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dnd-touch-backend": "^16.0.1",
"react-redux": "^9.2.0"
},
"devDependencies": {
"@storybook/addon-essentials": "^7.2.0",
Expand Down
Loading