From 357ffb7211f997d973571fc61af81197222adf02 Mon Sep 17 00:00:00 2001 From: Armaan Gupta Date: Tue, 28 Oct 2025 22:33:43 +0530 Subject: [PATCH 01/12] added the fieldset and legend for the radiobutton --- .../components/form/radiobutton/.content.xml | 2 +- .../af-commons/v1/fieldTemplates/legend.html | 7 +++ .../form/radiobutton/v2/.content.xml | 19 +++++++ .../radiobutton/v2/radiobutton/.content.xml | 9 ++++ .../v2/radiobutton/radiobutton.html | 52 +++++++++++++++++++ .../radiobutton/v2/radiobutton/radiobutton.js | 36 +++++++++++++ .../radiobutton/v2/radiobutton/widget.html | 34 ++++++++++++ 7 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/af-commons/v1/fieldTemplates/legend.html create mode 100644 ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/.content.xml create mode 100644 ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/.content.xml create mode 100644 ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html create mode 100644 ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.js create mode 100644 ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/widget.html diff --git a/examples/ui.apps/src/main/content/jcr_root/apps/forms-components-examples/components/form/radiobutton/.content.xml b/examples/ui.apps/src/main/content/jcr_root/apps/forms-components-examples/components/form/radiobutton/.content.xml index 06c97ae938..8c3b579445 100644 --- a/examples/ui.apps/src/main/content/jcr_root/apps/forms-components-examples/components/form/radiobutton/.content.xml +++ b/examples/ui.apps/src/main/content/jcr_root/apps/forms-components-examples/components/form/radiobutton/.content.xml @@ -3,5 +3,5 @@ jcr:primaryType="cq:Component" jcr:title="Adaptive Form Radio Button" jcr:description="Add two or more radio buttons for users to select one of the available options." - sling:resourceSuperType="core/fd/components/form/radiobutton/v1/radiobutton" + sling:resourceSuperType="core/fd/components/form/radiobutton/v2/radiobutton" componentGroup="Core Components Examples - Adaptive Form"/> diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/af-commons/v1/fieldTemplates/legend.html b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/af-commons/v1/fieldTemplates/legend.html new file mode 100644 index 0000000000..83174f3118 --- /dev/null +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/af-commons/v1/fieldTemplates/legend.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/.content.xml new file mode 100644 index 0000000000..cd3ddd1d64 --- /dev/null +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/.content.xml @@ -0,0 +1,19 @@ + + + + diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/.content.xml new file mode 100644 index 0000000000..f212697391 --- /dev/null +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/.content.xml @@ -0,0 +1,9 @@ + + + diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html new file mode 100644 index 0000000000..e1cdde1fce --- /dev/null +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html @@ -0,0 +1,52 @@ + + + +
+ + + + + + + + +
+ +
+ +
+
+ diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.js b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.js new file mode 100644 index 0000000000..56b6a4e059 --- /dev/null +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.js @@ -0,0 +1,36 @@ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ Copyright 2025 Adobe + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +use(function() { + + var clientlibsArr = [ 'core.forms.components.base.v1.editor' ]; + var labelPath = 'core/fd/components/af-commons/v1/fieldTemplates/label.html'; + var shortDescriptionPath = "core/fd/components/af-commons/v1/fieldTemplates/shortDescription.html"; + var longDescriptionPath = "core/fd/components/af-commons/v1/fieldTemplates/longDescription.html"; + var questionMarkPath = "core/fd/components/af-commons/v1/fieldTemplates/questionMark.html" + var errorMessagePath = "core/fd/components/af-commons/v1/fieldTemplates/errorMessage.html"; + var legendPath = "core/fd/components/af-commons/v1/fieldTemplates/legend.html" + return { + labelPath : labelPath, + shortDescriptionPath : shortDescriptionPath, + longDescriptionPath : longDescriptionPath, + questionMarkPath : questionMarkPath, + errorMessagePath : errorMessagePath, + legendPath : legendPath, + clientlibs : clientlibsArr + } +}); + diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/widget.html b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/widget.html new file mode 100644 index 0000000000..51e69eabf5 --- /dev/null +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/widget.html @@ -0,0 +1,34 @@ + + + From 04b47400300c84e85537d05f51457e18418013fb Mon Sep 17 00:00:00 2001 From: Armaan Gupta Date: Wed, 29 Oct 2025 11:03:03 +0530 Subject: [PATCH 02/12] added check for the label-element --- .cursor/mcp.json | 30 +++++++++++++++++++++++++++ ui.frontend/src/view/FormFieldBase.js | 5 ++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .cursor/mcp.json diff --git a/.cursor/mcp.json b/.cursor/mcp.json new file mode 100644 index 0000000000..24cd307f9c --- /dev/null +++ b/.cursor/mcp.json @@ -0,0 +1,30 @@ +{ + "mcpServers": { + "Corp Jira": { + "command": "docker", + "args": [ + "run", + "-i", + "--rm", + "--name", + "corp-jira-rjilo", + "--env-file", + "/Users/armaang/.adobe-registry/mcp-servers/src/corp-jira/.env", + "corp-jira" + ] + }, + "Corp GitHub": { + "command": "docker", + "args": [ + "run", + "-i", + "--rm", + "--name", + "corp-github-unupd", + "--env-file", + "/Users/armaang/.adobe-registry/mcp-servers/src/corp-github/.env", + "corp-github" + ] + } + } +} \ No newline at end of file diff --git a/ui.frontend/src/view/FormFieldBase.js b/ui.frontend/src/view/FormFieldBase.js index 876441501a..6d117c14ca 100644 --- a/ui.frontend/src/view/FormFieldBase.js +++ b/ui.frontend/src/view/FormFieldBase.js @@ -166,8 +166,11 @@ class FormFieldBase extends FormField { */ #syncLabel() { let labelElement = typeof this.getLabel === 'function' ? this.getLabel() : null; - if (labelElement) { + if (labelElement && labelElement.tagName?.toUpperCase() === 'LABEL') { labelElement.setAttribute('for', this.getWidgetId()); + } else if (labelElement) { + //remove the 'for' attribute if it exists on non-label + labelElement.removeAttribute('for'); } } From 7f17e6cc4758db64bd4a76659bd807a629d1d334 Mon Sep 17 00:00:00 2001 From: armaang1729 Date: Wed, 29 Oct 2025 14:06:51 +0530 Subject: [PATCH 03/12] Delete files --- .cursor/mcp.json | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 .cursor/mcp.json diff --git a/.cursor/mcp.json b/.cursor/mcp.json deleted file mode 100644 index 24cd307f9c..0000000000 --- a/.cursor/mcp.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "mcpServers": { - "Corp Jira": { - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "--name", - "corp-jira-rjilo", - "--env-file", - "/Users/armaang/.adobe-registry/mcp-servers/src/corp-jira/.env", - "corp-jira" - ] - }, - "Corp GitHub": { - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "--name", - "corp-github-unupd", - "--env-file", - "/Users/armaang/.adobe-registry/mcp-servers/src/corp-github/.env", - "corp-github" - ] - } - } -} \ No newline at end of file From ac453c708db30dac0a856a269c41453fbda0e89f Mon Sep 17 00:00:00 2001 From: Armaan Gupta Date: Wed, 29 Oct 2025 14:33:51 +0530 Subject: [PATCH 04/12] code refactoring --- .../components/form/radiobutton/v2/radiobutton/radiobutton.html | 1 + 1 file changed, 1 insertion(+) diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html index e1cdde1fce..0c4e846a7a 100644 --- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v2/radiobutton/radiobutton.html @@ -32,6 +32,7 @@ data-cmp-enabled="${radioButton.enabled ? 'true' : 'false'}" data-cmp-required="${radioButton.required ? 'true': 'false'}" data-cmp-readonly="${radioButton.readOnly ? 'true' : 'false'}" + data-name="${radioButton.name}" data-cmp-data-layer="${radioButton.data.json}" data-cmp-adaptiveformcontainer-path="${formstructparser.formContainerPath}" data-sly-test.widgetId="${'{0}-{1}' @ format=[radioButton.id, 'widget']}"> From 5c2ebf8cb4c576730c13b8462a5b5b692e8c9bec Mon Sep 17 00:00:00 2001 From: Armaan Gupta Date: Mon, 3 Nov 2025 09:56:46 +0530 Subject: [PATCH 05/12] added sample forms and cypress testing --- .../radiobutton/radiobuttonv1/.content.xml | 7 + .../radiobuttonv1/basic/.content.xml | 26 ++ .../radiobuttonv1/focustest/.content.xml | 23 ++ .../radiorepeatability/.content.xml | 21 + .../radiobutton/radiobuttonv2/.content.xml | 7 + .../radiobuttonv2/basic/.content.xml | 26 ++ .../radiobuttonv2/focustest/.content.xml | 23 ++ .../radiorepeatability/.content.xml | 21 + .../samples/radiobutton/.content.xml | 8 +- .../radiobutton/radiobuttonv1/.content.xml | 5 + .../{ => radiobuttonv1}/basic/.content.xml | 2 +- .../focustest/.content.xml | 2 +- .../radiorepeatability/.content.xml | 2 +- .../radiobutton/radiobuttonv2/.content.xml | 5 + .../radiobuttonv2/basic/.content.xml | 234 +++++++++++ .../radiobuttonv2/focustest/.content.xml | 57 +++ .../radiorepeatability/.content.xml | 95 +++++ .../radiobutton/radiobutton.runtime.cy.js | 17 +- .../radiobutton/radiobuttonv2.runtime.cy.js | 374 ++++++++++++++++++ 19 files changed, 942 insertions(+), 13 deletions(-) create mode 100755 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/basic/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/focustest/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/radiorepeatability/.content.xml create mode 100755 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/basic/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/focustest/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/radiorepeatability/.content.xml create mode 100755 it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/radiobuttonv1/.content.xml rename it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/{ => radiobuttonv1}/basic/.content.xml (99%) rename it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/{ => radiobuttonv1}/focustest/.content.xml (99%) rename it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/{ => radiobuttonv1}/radiorepeatability/.content.xml (99%) create mode 100755 it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/radiobuttonv2/.content.xml create mode 100755 it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/radiobuttonv2/basic/.content.xml create mode 100644 it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/radiobuttonv2/focustest/.content.xml create mode 100755 it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/radiobuttonv2/radiorepeatability/.content.xml create mode 100644 ui.tests/test-module/specs/radiobutton/radiobuttonv2.runtime.cy.js diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/.content.xml new file mode 100755 index 0000000000..7256712059 --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/.content.xml @@ -0,0 +1,7 @@ + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/basic/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/basic/.content.xml new file mode 100644 index 0000000000..033773bc60 --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/basic/.content.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/focustest/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/focustest/.content.xml new file mode 100644 index 0000000000..72f9c8a3be --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/focustest/.content.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/radiorepeatability/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/radiorepeatability/.content.xml new file mode 100644 index 0000000000..6a0bfd99d5 --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv1/radiorepeatability/.content.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/.content.xml new file mode 100755 index 0000000000..7256712059 --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/.content.xml @@ -0,0 +1,7 @@ + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/basic/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/basic/.content.xml new file mode 100644 index 0000000000..033773bc60 --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/basic/.content.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/focustest/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/focustest/.content.xml new file mode 100644 index 0000000000..72f9c8a3be --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/focustest/.content.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/radiorepeatability/.content.xml b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/radiorepeatability/.content.xml new file mode 100644 index 0000000000..6a0bfd99d5 --- /dev/null +++ b/it/content/src/main/content/jcr_root/content/dam/formsanddocuments/core-components-it/samples/radiobutton/radiobuttonv2/radiorepeatability/.content.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/.content.xml b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/.content.xml index 8f415a05ec..bbf62ed22c 100755 --- a/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/.content.xml +++ b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/radiobutton/.content.xml @@ -1,5 +1,5 @@ -