From f0cf2a4b68c375216e4ea024519e234c778e0a8e Mon Sep 17 00:00:00 2001 From: Vault Automation Date: Wed, 13 May 2026 09:46:34 -0600 Subject: [PATCH] UI/v2 forms infrastructure (#14134) (#14694) * copies v2 form components from POC branch * fixes issue in form-config-generator when path parameters are not defined * adds api code-generator for snippet creation * expands cli and terraform code generators * updates form-config-generator to return api path from spec * fixes issue setting field value in v2-form class * updates form-config types * updates v2 form and renderer components to conditional render fields * adds v2 form apply component * updates v2 form wizard component to support apply step * add support for field types (text input variants, text area, checkbox, radio, masked input) and add test coverage * Dynamic field visibility and Select field support * [POC] Public PKI (mocked) Wizard - revert this before merging * Revert "[POC] Public PKI (mocked) Wizard - revert this before merging" This reverts commit 66646f1d7a71d0e67028ebcabcfe33925197ffc9. * cleanup & address copilot pr comments * address PR comments --------- Co-authored-by: Shannon Roberts (Beagin) Co-authored-by: Jordan Reimer --- .../generic/ember_hbs.instructions.md | 17 +- ui/app/components/form/v2/apply.hbs | 76 ++++ ui/app/components/form/v2/apply.ts | 98 ++++++ ui/app/components/form/v2/error-alert.hbs | 8 + ui/app/components/form/v2/error-alert.ts | 29 ++ ui/app/components/form/v2/field.hbs | 213 ++++++++++++ ui/app/components/form/v2/field.ts | 87 +++++ ui/app/components/form/v2/index.hbs | 28 ++ ui/app/components/form/v2/index.ts | 63 ++++ ui/app/components/form/v2/renderer.hbs | 33 ++ ui/app/components/form/v2/renderer.ts | 71 ++++ ui/app/components/form/v2/section.hbs | 21 ++ ui/app/components/form/v2/wizard.hbs | 95 +++++ ui/app/components/form/v2/wizard.ts | 219 ++++++++++++ ui/app/forms/v2/form-config.ts | 131 ++++++- ui/app/forms/v2/form-validator.ts | 180 ++++++++++ ui/app/forms/v2/form-validators.ts | 95 +++++ .../mounts-enable-secrets-engine-config.ts | 9 +- ui/app/forms/v2/get-form-config.ts | 58 ++++ ui/app/forms/v2/v2-form.ts | 230 ++++++++++++ ui/app/styles/helper-classes/spacing.scss | 4 + ui/app/utils/form-config-generator.js | 21 +- .../core/addon/utils/code-generators/api.ts | 35 ++ .../core/addon/utils/code-generators/cli.ts | 34 ++ .../addon/utils/code-generators/formatters.ts | 16 + .../addon/utils/code-generators/terraform.ts | 26 +- .../components/form/v2/apply-test.js | 295 ++++++++++++++++ .../components/form/v2/error-alert-test.js | 47 +++ .../components/form/v2/field-test.js | 327 ++++++++++++++++++ .../components/form/v2/renderer-test.js | 150 ++++++++ .../components/form/v2/section-test.js | 66 ++++ .../components/form/v2/wizard-test.js | 90 +++++ 32 files changed, 2849 insertions(+), 23 deletions(-) create mode 100644 ui/app/components/form/v2/apply.hbs create mode 100644 ui/app/components/form/v2/apply.ts create mode 100644 ui/app/components/form/v2/error-alert.hbs create mode 100644 ui/app/components/form/v2/error-alert.ts create mode 100644 ui/app/components/form/v2/field.hbs create mode 100644 ui/app/components/form/v2/field.ts create mode 100644 ui/app/components/form/v2/index.hbs create mode 100644 ui/app/components/form/v2/index.ts create mode 100644 ui/app/components/form/v2/renderer.hbs create mode 100644 ui/app/components/form/v2/renderer.ts create mode 100644 ui/app/components/form/v2/section.hbs create mode 100644 ui/app/components/form/v2/wizard.hbs create mode 100644 ui/app/components/form/v2/wizard.ts create mode 100644 ui/app/forms/v2/form-validator.ts create mode 100644 ui/app/forms/v2/form-validators.ts create mode 100644 ui/app/forms/v2/get-form-config.ts create mode 100644 ui/app/forms/v2/v2-form.ts create mode 100644 ui/lib/core/addon/utils/code-generators/api.ts create mode 100644 ui/tests/integration/components/form/v2/apply-test.js create mode 100644 ui/tests/integration/components/form/v2/error-alert-test.js create mode 100644 ui/tests/integration/components/form/v2/field-test.js create mode 100644 ui/tests/integration/components/form/v2/renderer-test.js create mode 100644 ui/tests/integration/components/form/v2/section-test.js create mode 100644 ui/tests/integration/components/form/v2/wizard-test.js diff --git a/.github/instructions/generic/ember_hbs.instructions.md b/.github/instructions/generic/ember_hbs.instructions.md index da67c4a51f..dcbff91e28 100644 --- a/.github/instructions/generic/ember_hbs.instructions.md +++ b/.github/instructions/generic/ember_hbs.instructions.md @@ -11,7 +11,7 @@ This document provides Handlebars template coding standards for HashiCorp Ember. ## Template Best Practices - Check truthiness of arrays directly instead of using `.length` property -- Use string interpolation `"prefix/{{value}}"` instead of `{{concat}}` helper +- Use string interpolation `"prefix/{{value}}"` instead of `{{concat}}` helper - Remove unnecessary quotes around dynamic component arguments - Use `Hds::Link::Inline` for external documentation links instead of `