From 62100abc2f8e89e0ad48fb58e93b8aaf158c4e20 Mon Sep 17 00:00:00 2001 From: Olly Dutton Date: Wed, 8 Oct 2025 11:09:21 +1000 Subject: [PATCH 1/5] fix(checkbox): Support optional boolean type for v0 --- v0/src/helpers.js | 2 +- v0/src/tests/createHeadlessForm.test.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/v0/src/helpers.js b/v0/src/helpers.js index 4373d44bd..5b69baaa7 100644 --- a/v0/src/helpers.js +++ b/v0/src/helpers.js @@ -579,7 +579,7 @@ export function extractParametersFromNode(schemaNode) { ...(presentation?.inputType === 'checkbox' && { checkboxValue: node.const }), // - For checkboxes with boolean value ...(presentation?.inputType === 'checkbox' && - node.type === 'boolean' && { + hasType(node.type, 'boolean') && { // true is what describes this checkbox as a boolean, regardless if its required or not checkboxValue: true, }), diff --git a/v0/src/tests/createHeadlessForm.test.js b/v0/src/tests/createHeadlessForm.test.js index 0472141d1..83282b473 100644 --- a/v0/src/tests/createHeadlessForm.test.js +++ b/v0/src/tests/createHeadlessForm.test.js @@ -2327,6 +2327,29 @@ describe('createHeadlessForm', () => { // Explained at "Given values from hidden fields, it does not thrown an error" expect(handleValidation({ has_pet: false, pet_is_cat: true }).formErrors).toBeUndefined(); }); + + + it('should set checkboxValue: true for optional boolean type', () => { + const schema = { + type: 'object', + properties: { + boolean_checkbox: { + title: 'Boolean Checkbox Test', + type: ['boolean', 'null'], + 'x-jsf-presentation': { + inputType: 'checkbox', + }, + } + }, + required: [], + }; + + const result = createHeadlessForm(schema); + + const [optionalCheckbox] = result.fields; + expect(optionalCheckbox?.inputType).toBe('checkbox') + expect(optionalCheckbox?.checkboxValue).toBe(true) + }); }); }); From f0d41427bf871fead18c2840454cf8874546ca9c Mon Sep 17 00:00:00 2001 From: Olly Dutton Date: Wed, 8 Oct 2025 11:22:48 +1000 Subject: [PATCH 2/5] fix(checkbox): Support optional boolean type for v0 --- v0/src/tests/createHeadlessForm.test.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/v0/src/tests/createHeadlessForm.test.js b/v0/src/tests/createHeadlessForm.test.js index 83282b473..0ee6de003 100644 --- a/v0/src/tests/createHeadlessForm.test.js +++ b/v0/src/tests/createHeadlessForm.test.js @@ -2328,7 +2328,6 @@ describe('createHeadlessForm', () => { expect(handleValidation({ has_pet: false, pet_is_cat: true }).formErrors).toBeUndefined(); }); - it('should set checkboxValue: true for optional boolean type', () => { const schema = { type: 'object', @@ -2339,16 +2338,16 @@ describe('createHeadlessForm', () => { 'x-jsf-presentation': { inputType: 'checkbox', }, - } + }, }, required: [], }; const result = createHeadlessForm(schema); - + const [optionalCheckbox] = result.fields; - expect(optionalCheckbox?.inputType).toBe('checkbox') - expect(optionalCheckbox?.checkboxValue).toBe(true) + expect(optionalCheckbox?.inputType).toBe('checkbox'); + expect(optionalCheckbox?.checkboxValue).toBe(true); }); }); }); From dbfc9994d3f01be0529b95ba6152bacdf37223f7 Mon Sep 17 00:00:00 2001 From: Olly Dutton Date: Wed, 8 Oct 2025 11:40:15 +1000 Subject: [PATCH 3/5] Release 0.12.1-dev.20251008013953 --- v0/package-lock.json | 4 ++-- v0/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/v0/package-lock.json b/v0/package-lock.json index d3090d379..3eba8edcc 100644 --- a/v0/package-lock.json +++ b/v0/package-lock.json @@ -1,12 +1,12 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.0-beta.0", + "version": "0.12.1-dev.20251008013953", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@remoteoss/json-schema-form", - "version": "0.12.0-beta.0", + "version": "0.12.1-dev.20251008013953", "license": "MIT", "dependencies": { "json-logic-js": "^2.0.2", diff --git a/v0/package.json b/v0/package.json index fe62bde1c..b368e3ad2 100644 --- a/v0/package.json +++ b/v0/package.json @@ -1,6 +1,6 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.0-beta.0", + "version": "0.12.1-dev.20251008013953", "description": "Headless UI form powered by JSON Schemas", "author": "Remote.com (https://remote.com/)", "license": "MIT", @@ -82,4 +82,4 @@ "engines": { "node": ">=18.14.0" } -} \ No newline at end of file +} From 530c72679149858cbf85ee4c1204137fbfc24fc3 Mon Sep 17 00:00:00 2001 From: Olly Dutton Date: Thu, 9 Oct 2025 11:22:34 +1000 Subject: [PATCH 4/5] Revert back to 1.2.4 --- v0/package-lock.json | 4 ++-- v0/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/v0/package-lock.json b/v0/package-lock.json index 3eba8edcc..1c264492d 100644 --- a/v0/package-lock.json +++ b/v0/package-lock.json @@ -1,12 +1,12 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.1-dev.20251008013953", + "version": "1.2.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@remoteoss/json-schema-form", - "version": "0.12.1-dev.20251008013953", + "version": "1.2.4", "license": "MIT", "dependencies": { "json-logic-js": "^2.0.2", diff --git a/v0/package.json b/v0/package.json index b368e3ad2..57523b621 100644 --- a/v0/package.json +++ b/v0/package.json @@ -1,6 +1,6 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.1-dev.20251008013953", + "version": "1.2.4", "description": "Headless UI form powered by JSON Schemas", "author": "Remote.com (https://remote.com/)", "license": "MIT", From a6ad33bb413cc0ac077c88bcc8ed85d6da653799 Mon Sep 17 00:00:00 2001 From: Olly Dutton Date: Thu, 9 Oct 2025 11:36:22 +1000 Subject: [PATCH 5/5] Revert back to 0.12.0-beta.0 --- v0/package-lock.json | 4 ++-- v0/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/v0/package-lock.json b/v0/package-lock.json index 1c264492d..d3090d379 100644 --- a/v0/package-lock.json +++ b/v0/package-lock.json @@ -1,12 +1,12 @@ { "name": "@remoteoss/json-schema-form", - "version": "1.2.4", + "version": "0.12.0-beta.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@remoteoss/json-schema-form", - "version": "1.2.4", + "version": "0.12.0-beta.0", "license": "MIT", "dependencies": { "json-logic-js": "^2.0.2", diff --git a/v0/package.json b/v0/package.json index 57523b621..6d01e02c0 100644 --- a/v0/package.json +++ b/v0/package.json @@ -1,6 +1,6 @@ { "name": "@remoteoss/json-schema-form", - "version": "1.2.4", + "version": "0.12.0-beta.0", "description": "Headless UI form powered by JSON Schemas", "author": "Remote.com (https://remote.com/)", "license": "MIT",