diff --git a/ui/admin/app/components/form/credential-store/static/index.hbs b/ui/admin/app/components/form/credential-store/static/index.hbs
index fa567fcba..d21406ec7 100644
--- a/ui/admin/app/components/form/credential-store/static/index.hbs
+++ b/ui/admin/app/components/form/credential-store/static/index.hbs
@@ -45,10 +45,10 @@
{{#if (feature-flag 'static-credentials')}}
-
- <:title>{{t 'form.type.label'}}
- <:body>
- {{#if @model.isNew}}
+ {{#if @model.isNew}}
+
+ <:title>{{t 'form.type.label'}}
+ <:body>
- {{else}}
-
-
-
- {{/if}}
-
-
+
+
+ {{else}}
+
+ {{t 'form.type.label'}}
+ {{t
+ (concat 'resources.credential-store.help.' @model.type)
+ }}
+
+
+ {{/if}}
+
{{/if}}
{{#if (can 'save model' @model)}}
diff --git a/ui/admin/app/components/form/credential/ssh_private_key/index.hbs b/ui/admin/app/components/form/credential/ssh_private_key/index.hbs
index 78521aa81..3e06da207 100644
--- a/ui/admin/app/components/form/credential/ssh_private_key/index.hbs
+++ b/ui/admin/app/components/form/credential/ssh_private_key/index.hbs
@@ -69,19 +69,14 @@
{{else}}
-
- <:title>{{t 'form.type.label'}}
- <:description>
-
- {{t (concat 'resources.credential.types.' @model.type)}}
-
-
- <:body>
- {{t
- (concat 'resources.credential.help.' @model.type)
- }}
-
-
+
+ {{t 'form.type.label'}}
+ {{t (concat 'resources.credential.types.' @model.type)}}
+
+
{{/if}}
{{else}}
-
- <:title>{{t 'form.type.label'}}
- <:description>
-
- {{t (concat 'resources.credential.types.' @model.type)}}
-
-
- <:body>
- {{t
- (concat 'resources.credential.help.' @model.type)
- }}
-
-
+
+ {{t 'form.type.label'}}
+ {{t (concat 'resources.credential.types.' @model.type)}}
+
+
{{/if}}
+ {{#if @icon}}
+
+ {{/if}}
+
+ {{yield F}}
+
+
\ No newline at end of file
diff --git a/ui/admin/app/styles/app.scss b/ui/admin/app/styles/app.scss
index 7410faf99..a99fbd19c 100644
--- a/ui/admin/app/styles/app.scss
+++ b/ui/admin/app/styles/app.scss
@@ -1,5 +1,6 @@
@use 'rose/variables/sizing';
@use 'rose/variables/media';
+@use 'rose/utilities/type';
@import 'rose';
@import 'notify';
@@ -9,6 +10,7 @@
justify-content: center;
}
}
+
.rose-layout-centered {
> .rose-layout-page {
width: sizing.rems(l) * 18;
@@ -452,3 +454,45 @@
}
}
}
+
+.info-field {
+ .hds-form-field--layout-vertical {
+ grid-template-areas: 'label' 'helper-text' 'text-input';
+
+ .hds-form-label {
+ font-size: sizing.rems(m);
+ grid-area: label;
+ line-height: sizing.rems(m) + sizing.rems(xxs);
+ }
+
+ .hds-form-helper-text {
+ grid-area: helper-text;
+ font-size: sizing.rems(m);
+ color: var(--token-form-label-color);
+
+ }
+
+ .hds-form-text-input {
+ background-color: transparent;
+ border: 0;
+ grid-area: text-input;
+ margin-top: sizing.rems(xs);
+ line-height: sizing.rems(m) + sizing.rems(xxs);
+ padding: 0;
+ }
+
+
+ }
+
+ &.has-icon {
+ .flight-icon {
+ position: absolute;
+ transform: translatey(sizing.rems(xl) - sizing.rems(s));
+ }
+
+ .hds-form-helper-text,
+ .hds-form-text-input {
+ margin-left: sizing.rems(l) + sizing.rems(xs);
+ }
+ }
+}
diff --git a/ui/admin/tests/integration/components/info-field-test.js b/ui/admin/tests/integration/components/info-field-test.js
new file mode 100644
index 000000000..691c9d04a
--- /dev/null
+++ b/ui/admin/tests/integration/components/info-field-test.js
@@ -0,0 +1,45 @@
+import { module, test } from 'qunit';
+import { setupRenderingTest } from 'ember-qunit';
+import { render } from '@ember/test-helpers';
+import { hbs } from 'ember-cli-htmlbars';
+
+module('Integration | Component | info-field', function (hooks) {
+ setupRenderingTest(hooks);
+
+ test('it renders without icon', async function (assert) {
+ assert.expect(4);
+
+ await render(
+ hbs`
+
+ Type
+ JSON
+
+ `
+ );
+ assert.dom('.info-field').isVisible();
+ assert.dom('.info-field .hds-form-label').hasText('Type');
+ assert.dom('.info-field .hds-form-helper-text').hasText('JSON');
+ assert.dom('.info-field .hds-form-text-input').isVisible();
+ });
+
+ test('it renders with icon', async function (assert) {
+ assert.expect(5);
+
+ await render(
+ hbs`
+
+ Type
+ JSON
+
+ `
+ );
+ assert.dom('.info-field').isVisible();
+ assert.dom('.info-field .hds-form-label').hasText('Type');
+ assert
+ .dom('.info-field .hds-form-helper-text:last-of-type')
+ .hasText('JSON');
+ assert.dom('[data-test-icon="apple"]').isVisible();
+ assert.dom('.info-field .hds-form-text-input').isVisible();
+ });
+});