From 0ccc8467ec1a6768c789a54f204f33f51be2d063 Mon Sep 17 00:00:00 2001 From: Matthew Irish Date: Mon, 13 May 2019 14:05:25 -0500 Subject: [PATCH] UI ember engines (#6718) Adds replication engine and core in-repo addon --- ui/.storybook/preview-head.html | 4 +- ui/app/app.js | 17 + ui/app/components/download-button.js | 2 +- ui/app/components/empty-state.js | 6 - ui/app/components/i-con.js | 84 ---- ui/app/components/info-table-row.js | 34 -- ui/app/components/popup-menu.js | 5 - ui/app/components/secret-form-header.js | 50 --- ui/app/components/status-menu.js | 2 +- ui/app/components/toolbar-actions.js | 3 - ui/app/components/toolbar.js | 6 - .../replication/mode/secondaries/add.js | 3 - .../replication/mode/secondaries/index.js | 3 - .../replication/mode/secondaries/revoke.js | 1 - ui/app/helpers/includes.js | 7 - ui/app/helpers/reduce-to-array.js | 17 - ui/app/initializers/enable-engines.js | 13 + ui/app/mixins/cluster-route.js | 3 +- ui/app/models/cluster.js | 2 +- ui/app/router.js | 19 +- .../vault/cluster/replication/mode/index.js | 13 - .../styles/components/console-ui-panel.scss | 2 +- ui/app/styles/components/env-banner.scss | 22 +- ui/app/styles/components/hs-icon.scss | 37 ++ ui/app/styles/components/info-table-row.scss | 8 +- ui/app/styles/components/navigate-input.scss | 5 + ui/app/styles/components/search-select.scss | 6 + ui/app/styles/components/tool-tip.scss | 12 - ui/app/styles/components/ui-wizard.scss | 27 +- ui/app/styles/core.scss | 4 + ui/app/styles/core/buttons.scss | 13 +- ui/app/styles/core/message.scss | 3 +- ui/app/styles/core/navbar.scss | 1 - ui/app/templates/components/alert-inline.hbs | 8 - ui/app/templates/components/alert-popup.hbs | 11 +- ui/app/templates/components/auth-form.hbs | 2 +- .../components/console/command-input.hbs | 4 +- .../components/console/log-command.hbs | 3 +- .../console/log-error-with-html.hbs | 2 +- .../components/console/log-error.hbs | 2 +- .../templates/components/console/log-help.hbs | 2 +- .../components/console/log-success.hbs | 2 +- .../templates/components/console/ui-panel.hbs | 4 +- .../components/control-group-success.hbs | 4 +- ui/app/templates/components/control-group.hbs | 8 +- ui/app/templates/components/edition-badge.hbs | 2 +- ui/app/templates/components/home-link.hbs | 2 +- .../components/hover-copy-button.hbs | 4 +- .../components/identity/item-aliases.hbs | 9 +- .../components/identity/item-groups.hbs | 15 +- .../components/identity/item-members.hbs | 18 +- .../identity/item-parent-groups.hbs | 8 +- ui/app/templates/components/info-tooltip.hbs | 8 +- .../templates/components/kv-object-editor.hbs | 2 +- ui/app/templates/components/license-info.hbs | 4 +- .../templates/components/list-pagination.hbs | 8 +- ui/app/templates/components/masked-input.hbs | 6 +- ui/app/templates/components/menu-sidebar.hbs | 8 +- .../components/mount-backend-form.hbs | 15 +- .../templates/components/namespace-link.hbs | 10 +- .../templates/components/namespace-picker.hbs | 16 +- ui/app/templates/components/nav-header.hbs | 4 +- .../templates/components/navigate-input.hbs | 5 +- ui/app/templates/components/pgp-file.hbs | 7 +- .../components/replication-actions.hbs | 5 - .../components/replication-mode-summary.hbs | 1 - .../components/replication-summary.hbs | 24 -- .../components/search-select-placeholder.hbs | 2 +- ui/app/templates/components/search-select.hbs | 2 +- .../components/secret-edit-display.hbs | 8 +- ui/app/templates/components/secret-edit.hbs | 11 +- .../components/secret-list-header.hbs | 2 +- .../components/secret-version-menu.hbs | 6 +- ui/app/templates/components/shamir-flow.hbs | 2 +- ui/app/templates/components/status-menu.hbs | 4 +- ui/app/templates/components/string-list.hbs | 7 +- ui/app/templates/components/text-file.hbs | 4 +- ui/app/templates/components/toggle-button.hbs | 5 - .../components/toolbar-download-button.hbs | 2 +- .../components/toolbar-secret-link.hbs | 4 +- ui/app/templates/components/toolbar.hbs | 3 - .../components/transit-key-action/datakey.hbs | 2 +- .../components/transit-key-action/export.hbs | 6 +- .../components/transit-key-action/verify.hbs | 4 +- .../components/transit-key-actions.hbs | 2 +- ui/app/templates/components/upgrade-link.hbs | 7 - .../templates/components/wizard-content.hbs | 2 +- .../templates/components/wizard-progress.hbs | 2 +- .../templates/components/wizard-section.hbs | 4 +- .../templates/components/wizard/ad-engine.hbs | 2 +- .../components/wizard/alicloud-engine.hbs | 2 +- .../components/wizard/alicloud-method.hbs | 2 +- .../components/wizard/approle-method.hbs | 2 +- .../components/wizard/auth-details.hbs | 6 +- .../components/wizard/aws-engine.hbs | 2 +- .../components/wizard/aws-method.hbs | 2 +- .../components/wizard/azure-engine.hbs | 2 +- .../components/wizard/azure-method.hbs | 2 +- .../components/wizard/cert-method.hbs | 2 +- .../components/wizard/consul-engine.hbs | 2 +- .../components/wizard/database-engine.hbs | 2 +- .../components/wizard/features-selection.hbs | 8 +- .../components/wizard/gcp-engine.hbs | 2 +- .../components/wizard/gcp-method.hbs | 2 +- .../components/wizard/gcpkms-engine.hbs | 2 +- .../components/wizard/github-method.hbs | 2 +- .../components/wizard/kubernetes-method.hbs | 2 +- .../templates/components/wizard/kv-engine.hbs | 2 +- .../components/wizard/ldap-method.hbs | 2 +- .../components/wizard/nomad-engine.hbs | 2 +- .../components/wizard/okta-method.hbs | 2 +- .../components/wizard/pki-engine.hbs | 2 +- .../components/wizard/policies-others.hbs | 2 +- .../components/wizard/rabbitmq-engine.hbs | 2 +- .../components/wizard/radius-method.hbs | 2 +- .../components/wizard/replication-details.hbs | 2 +- .../components/wizard/secrets-display.hbs | 8 +- .../components/wizard/ssh-engine.hbs | 2 +- .../components/wizard/tools-unwrapped.hbs | 4 +- .../components/wizard/totp-engine.hbs | 2 +- .../components/wizard/transit-engine.hbs | 2 +- .../components/wizard/tutorial-complete.hbs | 2 +- .../components/wizard/tutorial-error.hbs | 10 +- .../components/wizard/tutorial-idle.hbs | 4 +- .../components/wizard/tutorial-paused.hbs | 6 +- .../components/wizard/userpass-method.hbs | 2 +- .../templates/partials/replication/enable.hbs | 258 ------------- .../partials/replication/mode-summary.hbs | 57 --- .../replication-mode-summary-menu.hbs | 44 --- .../replication/replication-mode-summary.hbs | 53 --- .../partials/secret-list/aws-role-item.hbs | 15 +- .../templates/partials/secret-list/item.hbs | 6 +- .../partials/secret-list/pki-cert-item.hbs | 7 +- .../partials/secret-list/pki-role-item.hbs | 7 +- .../partials/secret-list/ssh-role-item.hbs | 25 +- ui/app/templates/partials/status/cluster.hbs | 12 +- ui/app/templates/partials/tools/hash.hbs | 2 +- ui/app/templates/partials/tools/unwrap.hbs | 4 +- .../templates/partials/transit-form-show.hbs | 14 +- ui/app/templates/partials/upgrade-overlay.hbs | 73 ---- ui/app/templates/svg/hashicorp-logo.hbs | 4 - ui/app/templates/svg/icons/alert-circled.hbs | 1 - ui/app/templates/svg/icons/alert.hbs | 1 - .../svg/icons/android-folder-open.hbs | 1 - ui/app/templates/svg/icons/android-folder.hbs | 1 - ui/app/templates/svg/icons/android-person.hbs | 1 - .../svg/icons/cancel-square-fill.hbs | 4 - .../svg/icons/cancel-square-outline.hbs | 3 - .../templates/svg/icons/check-circle-fill.hbs | 3 - ui/app/templates/svg/icons/check-plain.hbs | 3 - .../svg/icons/checkmark-circled-outline.hbs | 3 - .../templates/svg/icons/checkmark-circled.hbs | 1 - ui/app/templates/svg/icons/checkmark.hbs | 1 - ui/app/templates/svg/icons/chevron-down.hbs | 1 - ui/app/templates/svg/icons/chevron-left.hbs | 1 - ui/app/templates/svg/icons/chevron-right.hbs | 1 - ui/app/templates/svg/icons/chevron-up.hbs | 1 - ui/app/templates/svg/icons/clipboard.hbs | 1 - .../svg/icons/close-circled-outline.hbs | 3 - ui/app/templates/svg/icons/close-circled.hbs | 1 - ui/app/templates/svg/icons/close-round.hbs | 1 - ui/app/templates/svg/icons/close.hbs | 1 - ui/app/templates/svg/icons/control-lock.hbs | 3 - ui/app/templates/svg/icons/copy.hbs | 1 - ui/app/templates/svg/icons/cube.hbs | 1 - ui/app/templates/svg/icons/docs.hbs | 3 - ui/app/templates/svg/icons/document.hbs | 1 - ui/app/templates/svg/icons/download.hbs | 3 - ui/app/templates/svg/icons/enable/ad.hbs | 1 - .../templates/svg/icons/enable/alicloud.hbs | 1 - ui/app/templates/svg/icons/enable/approle.hbs | 1 - ui/app/templates/svg/icons/enable/auth.hbs | 1 - ui/app/templates/svg/icons/enable/aws.hbs | 1 - ui/app/templates/svg/icons/enable/azure.hbs | 1 - ui/app/templates/svg/icons/enable/cert.hbs | 1 - ui/app/templates/svg/icons/enable/consul.hbs | 1 - .../templates/svg/icons/enable/cubbyhole.hbs | 1 - .../templates/svg/icons/enable/database.hbs | 1 - ui/app/templates/svg/icons/enable/gcp.hbs | 1 - ui/app/templates/svg/icons/enable/gcpkms.hbs | 1 - ui/app/templates/svg/icons/enable/generic.hbs | 2 - ui/app/templates/svg/icons/enable/github.hbs | 1 - ui/app/templates/svg/icons/enable/jwt.hbs | 1 - .../templates/svg/icons/enable/kubernetes.hbs | 1 - ui/app/templates/svg/icons/enable/kv.hbs | 1 - ui/app/templates/svg/icons/enable/ldap.hbs | 2 - ui/app/templates/svg/icons/enable/nomad.hbs | 1 - ui/app/templates/svg/icons/enable/oidc.hbs | 1 - ui/app/templates/svg/icons/enable/okta.hbs | 1 - ui/app/templates/svg/icons/enable/pki.hbs | 1 - .../templates/svg/icons/enable/rabbitmq.hbs | 1 - ui/app/templates/svg/icons/enable/radius.hbs | 2 - ui/app/templates/svg/icons/enable/secrets.hbs | 1 - ui/app/templates/svg/icons/enable/ssh.hbs | 1 - ui/app/templates/svg/icons/enable/token.hbs | 1 - ui/app/templates/svg/icons/enable/totp.hbs | 1 - ui/app/templates/svg/icons/enable/transit.hbs | 1 - .../templates/svg/icons/enable/userpass.hbs | 1 - ui/app/templates/svg/icons/false.hbs | 6 - ui/app/templates/svg/icons/file.hbs | 3 - ui/app/templates/svg/icons/folder.hbs | 3 - .../templates/svg/icons/fullscreen-close.hbs | 1 - .../templates/svg/icons/fullscreen-open.hbs | 1 - ui/app/templates/svg/icons/grid.hbs | 2 - ui/app/templates/svg/icons/hidden.hbs | 3 - .../svg/icons/information-circled.hbs | 1 - .../svg/icons/information-reversed.hbs | 6 - ui/app/templates/svg/icons/information.hbs | 1 - .../templates/svg/icons/ios-search-strong.hbs | 2 - ui/app/templates/svg/icons/ios-search.hbs | 1 - ui/app/templates/svg/icons/key.hbs | 2 - ui/app/templates/svg/icons/learn.hbs | 3 - ui/app/templates/svg/icons/list.hbs | 1 - ui/app/templates/svg/icons/locked.hbs | 1 - ui/app/templates/svg/icons/log-in.hbs | 1 - ui/app/templates/svg/icons/log-out.hbs | 1 - ui/app/templates/svg/icons/more-vertical.hbs | 3 - ui/app/templates/svg/icons/more.hbs | 1 - .../svg/icons/neutral-circled-outline.hbs | 3 - ui/app/templates/svg/icons/person.hbs | 3 - ui/app/templates/svg/icons/plus-plain.hbs | 3 - ui/app/templates/svg/icons/power.hbs | 1 - ui/app/templates/svg/icons/radio-waves.hbs | 2 - ui/app/templates/svg/icons/role.hbs | 12 - ui/app/templates/svg/icons/shuffle.hbs | 2 - ui/app/templates/svg/icons/trash-a.hbs | 1 - ui/app/templates/svg/icons/true.hbs | 6 - ui/app/templates/svg/icons/unlocked.hbs | 1 - ui/app/templates/svg/icons/upload.hbs | 3 - ui/app/templates/svg/icons/vault.hbs | 1 - ui/app/templates/svg/icons/video.hbs | 3 - ui/app/templates/svg/icons/visible.hbs | 3 - ui/app/templates/svg/icons/wand.hbs | 1 - ui/app/templates/svg/vault-enterprise.hbs | 8 - ui/app/templates/vault.hbs | 6 +- ui/app/templates/vault/cluster.hbs | 6 +- .../cluster/access/identity/aliases/index.hbs | 7 +- .../vault/cluster/access/identity/index.hbs | 7 +- .../vault/cluster/access/leases/list.hbs | 9 +- .../vault/cluster/access/methods.hbs | 6 +- ui/app/templates/vault/cluster/init.hbs | 4 +- ui/app/templates/vault/cluster/loading.hbs | 2 +- .../vault/cluster/policies/index.hbs | 42 +- .../vault/cluster/policies/loading.hbs | 2 +- .../templates/vault/cluster/policy/edit.hbs | 4 +- .../vault/cluster/policy/loading.hbs | 2 +- .../vault/cluster/replication/mode/manage.hbs | 11 - .../cluster/secrets/backend/versions.hbs | 8 +- .../vault/cluster/secrets/backends.hbs | 4 +- ui/app/templates/vault/not-found.hbs | 6 +- ui/ember-cli-build.js | 17 + .../core/addon}/components/alert-banner.js | 4 +- .../core/addon}/components/alert-inline.js | 4 +- ui/lib/core/addon/components/chevron.js | 36 ++ .../core/addon}/components/confirm-action.js | 0 .../core/addon}/components/doc-link.js | 13 + ui/lib/core/addon/components/empty-state.js | 24 ++ ui/lib/core/addon/components/icon.js | 19 + .../core/addon/components/info-table-row.js | 35 ++ .../core/addon/components/layout-loading.js | 17 + .../core/addon}/components/message-error.js | 20 +- .../components/page-header-level-left.js | 7 + .../components/page-header-level-right.js | 7 + .../core/addon}/components/page-header-top.js | 0 .../core/addon}/components/page-header.js | 2 + ui/lib/core/addon/components/popup-menu.js | 21 + .../components/replication-mode-summary.js | 13 +- .../core/addon}/components/toggle-button.js | 2 + .../core/addon/components/toolbar-actions.js} | 2 + .../core/addon}/components/toolbar-link.js | 12 +- .../core/addon/components/toolbar.js} | 2 + .../core/addon}/components/ttl-picker.js | 27 +- .../core/addon}/components/upgrade-link.js | 2 + .../core/addon}/components/upgrade-page.js | 2 + .../addon/components/vault-logo-spinner.js | 17 + .../core/addon}/helpers/has-feature.js | 0 .../core/addon}/helpers/is-active-route.js | 0 .../core/addon}/helpers/is-version.js | 0 .../core/addon}/helpers/message-types.js | 6 +- .../core/addon}/helpers/set-flash-message.js | 0 .../templates/components/alert-banner.hbs | 19 +- .../templates/components/alert-inline.hbs | 7 + .../addon/templates/components/chevron.hbs | 6 + .../templates/components/empty-state.hbs | 2 +- .../core/addon/templates/components/icon.hbs | 3 + .../templates/components/info-table-row.hbs | 14 +- .../templates/components/layout-loading.hbs} | 2 +- .../templates/components/message-error.hbs | 0 .../components/page-header-level-left.hbs | 0 .../components/page-header-level-right.hbs | 0 .../templates/components/page-header.hbs | 0 .../templates/components/popup-menu.hbs | 7 +- .../components/replication-mode-summary.hbs | 107 ++++++ .../templates/components/toggle-button.hbs | 5 + .../templates/components/toolbar-actions.hbs | 0 .../templates/components/toolbar-link.hbs | 2 +- .../addon/templates/components/toolbar.hbs | 5 + .../templates/components/ttl-picker.hbs | 0 .../templates/components/upgrade-link.hbs | 79 ++++ .../templates/components/upgrade-page.hbs | 2 +- .../components/vault-logo-spinner.hbs} | 0 ui/{app => lib/core/addon}/utils/b64.js | 0 ui/lib/core/app/components/alert-banner.js | 1 + ui/lib/core/app/components/alert-inline.js | 1 + ui/lib/core/app/components/chevron.js | 1 + ui/lib/core/app/components/confirm-action.js | 1 + ui/lib/core/app/components/doc-link.js | 1 + ui/lib/core/app/components/empty-state.js | 1 + ui/lib/core/app/components/icon.js | 1 + ui/lib/core/app/components/info-table-row.js | 1 + ui/lib/core/app/components/layout-loading.js | 1 + ui/lib/core/app/components/message-error.js | 1 + .../app/components/page-header-level-left.js | 1 + .../app/components/page-header-level-right.js | 1 + ui/lib/core/app/components/page-header-top.js | 1 + ui/lib/core/app/components/page-header.js | 1 + ui/lib/core/app/components/popup-menu.js | 1 + .../components/replication-mode-summary.js | 1 + ui/lib/core/app/components/toggle-button.js | 1 + ui/lib/core/app/components/toolbar-actions.js | 1 + ui/lib/core/app/components/toolbar-link.js | 1 + ui/lib/core/app/components/toolbar.js | 1 + ui/lib/core/app/components/ttl-picker.js | 1 + ui/lib/core/app/components/upgrade-link.js | 1 + ui/lib/core/app/components/upgrade-page.js | 1 + .../core/app/components/vault-logo-spinner.js | 1 + ui/lib/core/app/helpers/has-feature.js | 1 + ui/lib/core/app/helpers/is-active-route.js | 1 + ui/lib/core/app/helpers/is-version.js | 1 + ui/lib/core/app/helpers/message-types.js | 1 + ui/lib/core/app/helpers/set-flash-message.js | 1 + ui/lib/core/app/utils/b64.js | 1 + ui/lib/core/index.js | 8 + ui/lib/core/package.json | 23 ++ ui/lib/replication/addon/.eslintrc.js | 6 + .../components/mount-filter-config-list.js | 0 .../components/replication-action-demote.js | 3 + .../components/replication-action-disable.js | 3 + .../components/replication-action-promote.js | 3 + .../components/replication-action-recover.js | 3 + .../components/replication-action-reindex.js | 3 + .../replication-action-update-primary.js | 3 + .../components/replication-actions-single.js | 14 + .../addon}/components/replication-actions.js | 11 +- .../components/replication-secondaries.js | 0 .../addon}/components/replication-summary.js | 4 +- .../addon/controllers/application.js} | 18 +- .../replication/addon/controllers}/index.js | 0 .../replication/addon/controllers}/mode.js | 0 .../addon/controllers}/mode/index.js | 0 .../addon/controllers}/mode/manage.js | 0 .../addon/controllers}/mode/secondaries.js | 0 .../addon/controllers/mode/secondaries/add.js | 3 + .../mode/secondaries/config-create.js | 0 .../mode/secondaries/config-edit.js | 8 +- .../mode/secondaries/config-show.js | 0 .../controllers/mode/secondaries/index.js | 3 + .../controllers/mode/secondaries/revoke.js | 3 + .../addon/controllers}/replication-mode.js | 8 + ui/lib/replication/addon/engine.js | 27 ++ .../helpers/replication-action-for-mode.js | 0 .../addon}/mixins/replication-actions.js | 21 +- ui/lib/replication/addon/resolver.js | 3 + ui/lib/replication/addon/routes.js | 17 + .../replication/addon/routes/application.js} | 8 +- .../replication/addon/routes}/index.js | 2 +- .../replication/addon/routes}/mode.js | 17 +- ui/lib/replication/addon/routes/mode/index.js | 7 + .../replication/addon/routes}/mode/manage.js | 12 +- .../addon/routes}/mode/secondaries.js | 10 +- .../addon/routes}/mode/secondaries/add.js | 6 +- .../routes}/mode/secondaries/config-create.js | 6 +- .../routes}/mode/secondaries/config-edit.js | 6 +- .../routes}/mode/secondaries/config-show.js | 6 +- .../addon/routes}/mode/secondaries/revoke.js | 4 +- .../addon/routes}/replication-base.js | 5 +- .../addon/templates/application.hbs | 1 + .../components/mount-filter-config-list.hbs | 6 +- .../components/replication-action-demote.hbs} | 0 .../replication-action-disable.hbs} | 2 +- .../replication-action-promote.hbs} | 0 .../replication-action-recover.hbs} | 0 .../replication-action-reindex.hbs} | 0 .../replication-action-update-primary.hbs} | 0 .../components/replication-actions.hbs | 17 + .../components/replication-summary.hbs | 361 ++++++++++++++++++ .../replication/addon/templates}/index.hbs | 10 +- .../replication/addon/templates}/mode.hbs | 6 +- .../addon/templates}/mode/index.hbs | 0 .../addon/templates/mode/manage.hbs | 5 + .../addon/templates}/mode/secondaries/add.hbs | 2 +- .../mode/secondaries/config-create.hbs | 2 +- .../mode/secondaries/config-edit.hbs | 4 +- .../mode/secondaries/config-show.hbs | 4 +- .../templates}/mode/secondaries/index.hbs | 8 +- .../templates}/mode/secondaries/revoke.hbs | 2 +- .../addon}/utils/decode-config-from-jwt.js | 2 +- ui/lib/replication/config/environment.js | 11 + ui/lib/replication/index.js | 17 + ui/lib/replication/package.json | 16 + ui/package.json | 11 +- .../android-sync.svg} | 2 + .../icons/console.hbs => public/console.svg} | 2 +- ui/public/eco/ad.svg | 1 + ui/public/eco/alicloud.svg | 1 + ui/public/eco/approle.svg | 1 + ui/public/eco/auth.svg | 1 + ui/public/eco/aws.svg | 1 + ui/public/eco/azure.svg | 1 + ui/public/eco/cert.svg | 1 + ui/public/eco/consul.svg | 1 + ui/public/eco/cubbyhole.svg | 1 + ui/public/eco/database.svg | 1 + ui/public/eco/gcp.svg | 1 + ui/public/eco/gcpkms.svg | 1 + ui/public/eco/generic.svg | 1 + ui/public/eco/github.svg | 1 + ui/public/eco/jwt.svg | 1 + ui/public/eco/kubernetes.svg | 1 + ui/public/eco/kv.svg | 1 + ui/public/eco/ldap.svg | 1 + ui/public/eco/nomad.svg | 1 + ui/public/eco/oidc.svg | 1 + ui/public/eco/okta.svg | 1 + ui/public/eco/pki.svg | 1 + ui/public/eco/rabbitmq.svg | 1 + ui/public/eco/radius.svg | 1 + ui/public/eco/secrets.svg | 1 + ui/public/eco/ssh.svg | 1 + ui/public/eco/token.svg | 1 + ui/public/eco/totp.svg | 1 + ui/public/eco/transit.svg | 1 + ui/public/eco/userpass.svg | 1 + .../edition-enterprise.svg} | 2 +- .../edition-oss.svg} | 6 +- .../hashicorp.hbs => public/hashicorp.svg} | 2 + .../initialize.hbs => public/initialize.svg} | 0 .../svg/icons/loop.hbs => public/loop.svg} | 2 + .../perf-replication.svg} | 2 +- .../replication.svg} | 3 +- .../svg/icons/reply.hbs => public/reply.svg} | 2 + .../status-indicator.svg} | 0 .../stopwatch.hbs => public/stopwatch.svg} | 2 +- .../svg/icons/tour.hbs => public/tour.svg} | 2 +- .../vault-logo.hbs => public/vault-logo.svg} | 2 +- ui/scripts/gen-story-md.js | 9 +- ui/stories/alert-banner.stories.js | 3 +- ui/stories/alert-inline.stories.js | 2 +- ui/stories/alert-popup.stories.js | 2 +- ui/stories/chevron.md | 23 ++ ui/stories/chevron.stories.js | 21 + ui/stories/doc-link.md | 22 ++ ui/stories/doc-link.stories.js | 16 + ui/stories/empty-state.md | 24 ++ ui/stories/empty-state.stories.js | 35 ++ ui/stories/i-con.md | 22 -- ui/stories/icon.md | 22 ++ .../{i-con.stories.js => icon.stories.js} | 13 +- ui/stories/info-table-row.md | 25 ++ ui/stories/info-table-row.stories.js | 36 ++ ui/stories/layout-loading.md | 17 + ui/stories/layout-loading.stories.js | 16 + ui/stories/message-error.md | 24 ++ ui/stories/message-error.stories.js | 25 ++ ui/stories/popup-menu.md | 23 ++ ui/stories/popup-menu.stories.js | 17 + ui/stories/ttl-picker.md | 27 ++ ui/stories/ttl-picker.stories.js | 16 + ui/stories/vault-logo-spinner.md | 17 + ui/stories/vault-logo-spinner.stories.js | 17 + .../acceptance/enterprise-replication-test.js | 8 +- .../integration/components/chevron-test.js | 31 ++ ui/tests/integration/components/icon-test.js | 22 ++ .../mount-filter-config-list-test.js | 4 +- .../components/replication-actions-test.js | 14 +- ui/tests/test-helper.js | 11 +- .../unit/utils/decode-config-from-jwt-test.js | 2 +- ui/yarn.lock | 337 +++++++++++++++- 478 files changed, 2526 insertions(+), 1554 deletions(-) delete mode 100644 ui/app/components/empty-state.js delete mode 100644 ui/app/components/i-con.js delete mode 100644 ui/app/components/info-table-row.js delete mode 100644 ui/app/components/popup-menu.js delete mode 100644 ui/app/components/secret-form-header.js delete mode 100644 ui/app/components/toolbar-actions.js delete mode 100644 ui/app/components/toolbar.js delete mode 100644 ui/app/controllers/vault/cluster/replication/mode/secondaries/add.js delete mode 100644 ui/app/controllers/vault/cluster/replication/mode/secondaries/index.js delete mode 100644 ui/app/controllers/vault/cluster/replication/mode/secondaries/revoke.js delete mode 100644 ui/app/helpers/includes.js delete mode 100644 ui/app/helpers/reduce-to-array.js create mode 100644 ui/app/initializers/enable-engines.js delete mode 100644 ui/app/routes/vault/cluster/replication/mode/index.js create mode 100644 ui/app/styles/components/hs-icon.scss create mode 100644 ui/app/styles/components/navigate-input.scss delete mode 100644 ui/app/templates/components/alert-inline.hbs delete mode 100644 ui/app/templates/components/replication-actions.hbs delete mode 100644 ui/app/templates/components/replication-mode-summary.hbs delete mode 100644 ui/app/templates/components/replication-summary.hbs delete mode 100644 ui/app/templates/components/toggle-button.hbs delete mode 100644 ui/app/templates/components/toolbar.hbs delete mode 100644 ui/app/templates/components/upgrade-link.hbs delete mode 100644 ui/app/templates/partials/replication/enable.hbs delete mode 100644 ui/app/templates/partials/replication/mode-summary.hbs delete mode 100644 ui/app/templates/partials/replication/replication-mode-summary-menu.hbs delete mode 100644 ui/app/templates/partials/replication/replication-mode-summary.hbs delete mode 100644 ui/app/templates/partials/upgrade-overlay.hbs delete mode 100644 ui/app/templates/svg/hashicorp-logo.hbs delete mode 100644 ui/app/templates/svg/icons/alert-circled.hbs delete mode 100644 ui/app/templates/svg/icons/alert.hbs delete mode 100644 ui/app/templates/svg/icons/android-folder-open.hbs delete mode 100644 ui/app/templates/svg/icons/android-folder.hbs delete mode 100644 ui/app/templates/svg/icons/android-person.hbs delete mode 100644 ui/app/templates/svg/icons/cancel-square-fill.hbs delete mode 100644 ui/app/templates/svg/icons/cancel-square-outline.hbs delete mode 100644 ui/app/templates/svg/icons/check-circle-fill.hbs delete mode 100644 ui/app/templates/svg/icons/check-plain.hbs delete mode 100644 ui/app/templates/svg/icons/checkmark-circled-outline.hbs delete mode 100644 ui/app/templates/svg/icons/checkmark-circled.hbs delete mode 100644 ui/app/templates/svg/icons/checkmark.hbs delete mode 100644 ui/app/templates/svg/icons/chevron-down.hbs delete mode 100644 ui/app/templates/svg/icons/chevron-left.hbs delete mode 100644 ui/app/templates/svg/icons/chevron-right.hbs delete mode 100644 ui/app/templates/svg/icons/chevron-up.hbs delete mode 100644 ui/app/templates/svg/icons/clipboard.hbs delete mode 100644 ui/app/templates/svg/icons/close-circled-outline.hbs delete mode 100644 ui/app/templates/svg/icons/close-circled.hbs delete mode 100644 ui/app/templates/svg/icons/close-round.hbs delete mode 100644 ui/app/templates/svg/icons/close.hbs delete mode 100644 ui/app/templates/svg/icons/control-lock.hbs delete mode 100644 ui/app/templates/svg/icons/copy.hbs delete mode 100644 ui/app/templates/svg/icons/cube.hbs delete mode 100644 ui/app/templates/svg/icons/docs.hbs delete mode 100644 ui/app/templates/svg/icons/document.hbs delete mode 100644 ui/app/templates/svg/icons/download.hbs delete mode 100644 ui/app/templates/svg/icons/enable/ad.hbs delete mode 100644 ui/app/templates/svg/icons/enable/alicloud.hbs delete mode 100644 ui/app/templates/svg/icons/enable/approle.hbs delete mode 100644 ui/app/templates/svg/icons/enable/auth.hbs delete mode 100644 ui/app/templates/svg/icons/enable/aws.hbs delete mode 100644 ui/app/templates/svg/icons/enable/azure.hbs delete mode 100644 ui/app/templates/svg/icons/enable/cert.hbs delete mode 100644 ui/app/templates/svg/icons/enable/consul.hbs delete mode 100644 ui/app/templates/svg/icons/enable/cubbyhole.hbs delete mode 100644 ui/app/templates/svg/icons/enable/database.hbs delete mode 100644 ui/app/templates/svg/icons/enable/gcp.hbs delete mode 100644 ui/app/templates/svg/icons/enable/gcpkms.hbs delete mode 100644 ui/app/templates/svg/icons/enable/generic.hbs delete mode 100644 ui/app/templates/svg/icons/enable/github.hbs delete mode 100644 ui/app/templates/svg/icons/enable/jwt.hbs delete mode 100644 ui/app/templates/svg/icons/enable/kubernetes.hbs delete mode 100644 ui/app/templates/svg/icons/enable/kv.hbs delete mode 100644 ui/app/templates/svg/icons/enable/ldap.hbs delete mode 100644 ui/app/templates/svg/icons/enable/nomad.hbs delete mode 100644 ui/app/templates/svg/icons/enable/oidc.hbs delete mode 100644 ui/app/templates/svg/icons/enable/okta.hbs delete mode 100644 ui/app/templates/svg/icons/enable/pki.hbs delete mode 100644 ui/app/templates/svg/icons/enable/rabbitmq.hbs delete mode 100644 ui/app/templates/svg/icons/enable/radius.hbs delete mode 100644 ui/app/templates/svg/icons/enable/secrets.hbs delete mode 100644 ui/app/templates/svg/icons/enable/ssh.hbs delete mode 100644 ui/app/templates/svg/icons/enable/token.hbs delete mode 100644 ui/app/templates/svg/icons/enable/totp.hbs delete mode 100644 ui/app/templates/svg/icons/enable/transit.hbs delete mode 100644 ui/app/templates/svg/icons/enable/userpass.hbs delete mode 100644 ui/app/templates/svg/icons/false.hbs delete mode 100644 ui/app/templates/svg/icons/file.hbs delete mode 100644 ui/app/templates/svg/icons/folder.hbs delete mode 100644 ui/app/templates/svg/icons/fullscreen-close.hbs delete mode 100644 ui/app/templates/svg/icons/fullscreen-open.hbs delete mode 100644 ui/app/templates/svg/icons/grid.hbs delete mode 100644 ui/app/templates/svg/icons/hidden.hbs delete mode 100644 ui/app/templates/svg/icons/information-circled.hbs delete mode 100644 ui/app/templates/svg/icons/information-reversed.hbs delete mode 100644 ui/app/templates/svg/icons/information.hbs delete mode 100644 ui/app/templates/svg/icons/ios-search-strong.hbs delete mode 100644 ui/app/templates/svg/icons/ios-search.hbs delete mode 100644 ui/app/templates/svg/icons/key.hbs delete mode 100644 ui/app/templates/svg/icons/learn.hbs delete mode 100644 ui/app/templates/svg/icons/list.hbs delete mode 100644 ui/app/templates/svg/icons/locked.hbs delete mode 100644 ui/app/templates/svg/icons/log-in.hbs delete mode 100644 ui/app/templates/svg/icons/log-out.hbs delete mode 100644 ui/app/templates/svg/icons/more-vertical.hbs delete mode 100644 ui/app/templates/svg/icons/more.hbs delete mode 100644 ui/app/templates/svg/icons/neutral-circled-outline.hbs delete mode 100644 ui/app/templates/svg/icons/person.hbs delete mode 100644 ui/app/templates/svg/icons/plus-plain.hbs delete mode 100644 ui/app/templates/svg/icons/power.hbs delete mode 100644 ui/app/templates/svg/icons/radio-waves.hbs delete mode 100644 ui/app/templates/svg/icons/role.hbs delete mode 100644 ui/app/templates/svg/icons/shuffle.hbs delete mode 100644 ui/app/templates/svg/icons/trash-a.hbs delete mode 100644 ui/app/templates/svg/icons/true.hbs delete mode 100644 ui/app/templates/svg/icons/unlocked.hbs delete mode 100644 ui/app/templates/svg/icons/upload.hbs delete mode 100644 ui/app/templates/svg/icons/vault.hbs delete mode 100644 ui/app/templates/svg/icons/video.hbs delete mode 100644 ui/app/templates/svg/icons/visible.hbs delete mode 100644 ui/app/templates/svg/icons/wand.hbs delete mode 100644 ui/app/templates/svg/vault-enterprise.hbs delete mode 100644 ui/app/templates/vault/cluster/replication/mode/manage.hbs rename ui/{app => lib/core/addon}/components/alert-banner.js (86%) rename ui/{app => lib/core/addon}/components/alert-inline.js (86%) create mode 100644 ui/lib/core/addon/components/chevron.js rename ui/{app => lib/core/addon}/components/confirm-action.js (100%) rename ui/{app => lib/core/addon}/components/doc-link.js (58%) create mode 100644 ui/lib/core/addon/components/empty-state.js create mode 100644 ui/lib/core/addon/components/icon.js create mode 100644 ui/lib/core/addon/components/info-table-row.js create mode 100644 ui/lib/core/addon/components/layout-loading.js rename ui/{app => lib/core/addon}/components/message-error.js (59%) create mode 100644 ui/lib/core/addon/components/page-header-level-left.js create mode 100644 ui/lib/core/addon/components/page-header-level-right.js rename ui/{app => lib/core/addon}/components/page-header-top.js (100%) rename ui/{app => lib/core/addon}/components/page-header.js (62%) create mode 100644 ui/lib/core/addon/components/popup-menu.js rename ui/{app => lib/core/addon}/components/replication-mode-summary.js (84%) rename ui/{app => lib/core/addon}/components/toggle-button.js (95%) rename ui/{app/components/page-header-level-right.js => lib/core/addon/components/toolbar-actions.js} (57%) rename ui/{app => lib/core/addon}/components/toolbar-link.js (64%) rename ui/{app/components/page-header-level-left.js => lib/core/addon/components/toolbar.js} (60%) rename ui/{app => lib/core/addon}/components/ttl-picker.js (72%) rename ui/{app => lib/core/addon}/components/upgrade-link.js (93%) rename ui/{app => lib/core/addon}/components/upgrade-page.js (82%) create mode 100644 ui/lib/core/addon/components/vault-logo-spinner.js rename ui/{app => lib/core/addon}/helpers/has-feature.js (100%) rename ui/{app => lib/core/addon}/helpers/is-active-route.js (100%) rename ui/{app => lib/core/addon}/helpers/is-version.js (100%) rename ui/{app => lib/core/addon}/helpers/message-types.js (86%) rename ui/{app => lib/core/addon}/helpers/set-flash-message.js (100%) rename ui/{app => lib/core/addon}/templates/components/alert-banner.hbs (61%) create mode 100644 ui/lib/core/addon/templates/components/alert-inline.hbs create mode 100644 ui/lib/core/addon/templates/components/chevron.hbs rename ui/{app => lib/core/addon}/templates/components/empty-state.hbs (95%) create mode 100644 ui/lib/core/addon/templates/components/icon.hbs rename ui/{app => lib/core/addon}/templates/components/info-table-row.hbs (59%) rename ui/{app/templates/partials/loading.hbs => lib/core/addon/templates/components/layout-loading.hbs} (87%) rename ui/{app => lib/core/addon}/templates/components/message-error.hbs (100%) rename ui/{app => lib/core/addon}/templates/components/page-header-level-left.hbs (100%) rename ui/{app => lib/core/addon}/templates/components/page-header-level-right.hbs (100%) rename ui/{app => lib/core/addon}/templates/components/page-header.hbs (100%) rename ui/{app => lib/core/addon}/templates/components/popup-menu.hbs (90%) create mode 100644 ui/lib/core/addon/templates/components/replication-mode-summary.hbs create mode 100644 ui/lib/core/addon/templates/components/toggle-button.hbs rename ui/{app => lib/core/addon}/templates/components/toolbar-actions.hbs (100%) rename ui/{app => lib/core/addon}/templates/components/toolbar-link.hbs (95%) create mode 100644 ui/lib/core/addon/templates/components/toolbar.hbs rename ui/{app => lib/core/addon}/templates/components/ttl-picker.hbs (100%) create mode 100644 ui/lib/core/addon/templates/components/upgrade-link.hbs rename ui/{app => lib/core/addon}/templates/components/upgrade-page.hbs (94%) rename ui/{app/templates/svg/vault-loading.hbs => lib/core/addon/templates/components/vault-logo-spinner.hbs} (100%) rename ui/{app => lib/core/addon}/utils/b64.js (100%) create mode 100644 ui/lib/core/app/components/alert-banner.js create mode 100644 ui/lib/core/app/components/alert-inline.js create mode 100644 ui/lib/core/app/components/chevron.js create mode 100644 ui/lib/core/app/components/confirm-action.js create mode 100644 ui/lib/core/app/components/doc-link.js create mode 100644 ui/lib/core/app/components/empty-state.js create mode 100644 ui/lib/core/app/components/icon.js create mode 100644 ui/lib/core/app/components/info-table-row.js create mode 100644 ui/lib/core/app/components/layout-loading.js create mode 100644 ui/lib/core/app/components/message-error.js create mode 100644 ui/lib/core/app/components/page-header-level-left.js create mode 100644 ui/lib/core/app/components/page-header-level-right.js create mode 100644 ui/lib/core/app/components/page-header-top.js create mode 100644 ui/lib/core/app/components/page-header.js create mode 100644 ui/lib/core/app/components/popup-menu.js create mode 100644 ui/lib/core/app/components/replication-mode-summary.js create mode 100644 ui/lib/core/app/components/toggle-button.js create mode 100644 ui/lib/core/app/components/toolbar-actions.js create mode 100644 ui/lib/core/app/components/toolbar-link.js create mode 100644 ui/lib/core/app/components/toolbar.js create mode 100644 ui/lib/core/app/components/ttl-picker.js create mode 100644 ui/lib/core/app/components/upgrade-link.js create mode 100644 ui/lib/core/app/components/upgrade-page.js create mode 100644 ui/lib/core/app/components/vault-logo-spinner.js create mode 100644 ui/lib/core/app/helpers/has-feature.js create mode 100644 ui/lib/core/app/helpers/is-active-route.js create mode 100644 ui/lib/core/app/helpers/is-version.js create mode 100644 ui/lib/core/app/helpers/message-types.js create mode 100644 ui/lib/core/app/helpers/set-flash-message.js create mode 100644 ui/lib/core/app/utils/b64.js create mode 100644 ui/lib/core/index.js create mode 100644 ui/lib/core/package.json create mode 100644 ui/lib/replication/addon/.eslintrc.js rename ui/{app => lib/replication/addon}/components/mount-filter-config-list.js (100%) create mode 100644 ui/lib/replication/addon/components/replication-action-demote.js create mode 100644 ui/lib/replication/addon/components/replication-action-disable.js create mode 100644 ui/lib/replication/addon/components/replication-action-promote.js create mode 100644 ui/lib/replication/addon/components/replication-action-recover.js create mode 100644 ui/lib/replication/addon/components/replication-action-reindex.js create mode 100644 ui/lib/replication/addon/components/replication-action-update-primary.js create mode 100644 ui/lib/replication/addon/components/replication-actions-single.js rename ui/{app => lib/replication/addon}/components/replication-actions.js (88%) rename ui/{app => lib/replication/addon}/components/replication-secondaries.js (100%) rename ui/{app => lib/replication/addon}/components/replication-summary.js (93%) rename ui/{app/controllers/vault/cluster/replication.js => lib/replication/addon/controllers/application.js} (90%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/index.js (100%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode.js (100%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode/index.js (100%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode/manage.js (100%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode/secondaries.js (100%) create mode 100644 ui/lib/replication/addon/controllers/mode/secondaries/add.js rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode/secondaries/config-create.js (100%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode/secondaries/config-edit.js (85%) rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/mode/secondaries/config-show.js (100%) create mode 100644 ui/lib/replication/addon/controllers/mode/secondaries/index.js create mode 100644 ui/lib/replication/addon/controllers/mode/secondaries/revoke.js rename ui/{app/controllers/vault/cluster/replication => lib/replication/addon/controllers}/replication-mode.js (60%) create mode 100644 ui/lib/replication/addon/engine.js rename ui/{app => lib/replication/addon}/helpers/replication-action-for-mode.js (100%) rename ui/{app => lib/replication/addon}/mixins/replication-actions.js (85%) create mode 100644 ui/lib/replication/addon/resolver.js create mode 100644 ui/lib/replication/addon/routes.js rename ui/{app/routes/vault/cluster/replication.js => lib/replication/addon/routes/application.js} (87%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/index.js (81%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode.js (58%) create mode 100644 ui/lib/replication/addon/routes/mode/index.js rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/manage.js (70%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/secondaries.js (73%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/secondaries/add.js (67%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/secondaries/config-create.js (83%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/secondaries/config-edit.js (70%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/secondaries/config-show.js (73%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/mode/secondaries/revoke.js (68%) rename ui/{app/routes/vault/cluster/replication => lib/replication/addon/routes}/replication-base.js (97%) create mode 100644 ui/lib/replication/addon/templates/application.hbs rename ui/{app => lib/replication/addon}/templates/components/mount-filter-config-list.hbs (92%) rename ui/{app/templates/partials/replication/demote.hbs => lib/replication/addon/templates/components/replication-action-demote.hbs} (100%) rename ui/{app/templates/partials/replication/disable.hbs => lib/replication/addon/templates/components/replication-action-disable.hbs} (96%) rename ui/{app/templates/partials/replication/promote.hbs => lib/replication/addon/templates/components/replication-action-promote.hbs} (100%) rename ui/{app/templates/partials/replication/recover.hbs => lib/replication/addon/templates/components/replication-action-recover.hbs} (100%) rename ui/{app/templates/partials/replication/reindex.hbs => lib/replication/addon/templates/components/replication-action-reindex.hbs} (100%) rename ui/{app/templates/partials/replication/update-primary.hbs => lib/replication/addon/templates/components/replication-action-update-primary.hbs} (100%) create mode 100644 ui/lib/replication/addon/templates/components/replication-actions.hbs create mode 100644 ui/lib/replication/addon/templates/components/replication-summary.hbs rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/index.hbs (67%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode.hbs (81%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/index.hbs (100%) create mode 100644 ui/lib/replication/addon/templates/mode/manage.hbs rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/secondaries/add.hbs (96%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/secondaries/config-create.hbs (91%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/secondaries/config-edit.hbs (90%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/secondaries/config-show.hbs (90%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/secondaries/index.hbs (86%) rename ui/{app/templates/vault/cluster/replication => lib/replication/addon/templates}/mode/secondaries/revoke.hbs (91%) rename ui/{app => lib/replication/addon}/utils/decode-config-from-jwt.js (93%) create mode 100644 ui/lib/replication/config/environment.js create mode 100644 ui/lib/replication/index.js create mode 100644 ui/lib/replication/package.json rename ui/{app/templates/svg/icons/android-sync.hbs => public/android-sync.svg} (79%) rename ui/{app/templates/svg/icons/console.hbs => public/console.svg} (70%) create mode 100644 ui/public/eco/ad.svg create mode 100644 ui/public/eco/alicloud.svg create mode 100644 ui/public/eco/approle.svg create mode 100644 ui/public/eco/auth.svg create mode 100644 ui/public/eco/aws.svg create mode 100644 ui/public/eco/azure.svg create mode 100644 ui/public/eco/cert.svg create mode 100644 ui/public/eco/consul.svg create mode 100644 ui/public/eco/cubbyhole.svg create mode 100644 ui/public/eco/database.svg create mode 100644 ui/public/eco/gcp.svg create mode 100644 ui/public/eco/gcpkms.svg create mode 100644 ui/public/eco/generic.svg create mode 100644 ui/public/eco/github.svg create mode 100644 ui/public/eco/jwt.svg create mode 100644 ui/public/eco/kubernetes.svg create mode 100644 ui/public/eco/kv.svg create mode 100644 ui/public/eco/ldap.svg create mode 100644 ui/public/eco/nomad.svg create mode 100644 ui/public/eco/oidc.svg create mode 100644 ui/public/eco/okta.svg create mode 100644 ui/public/eco/pki.svg create mode 100644 ui/public/eco/rabbitmq.svg create mode 100644 ui/public/eco/radius.svg create mode 100644 ui/public/eco/secrets.svg create mode 100644 ui/public/eco/ssh.svg create mode 100644 ui/public/eco/token.svg create mode 100644 ui/public/eco/totp.svg create mode 100644 ui/public/eco/transit.svg create mode 100644 ui/public/eco/userpass.svg rename ui/{app/templates/svg/icons/edition-enterprise.hbs => public/edition-enterprise.svg} (87%) rename ui/{app/templates/svg/icons/edition-oss.hbs => public/edition-oss.svg} (77%) rename ui/{app/templates/svg/icons/hashicorp.hbs => public/hashicorp.svg} (70%) rename ui/{app/templates/svg/initialize.hbs => public/initialize.svg} (100%) rename ui/{app/templates/svg/icons/loop.hbs => public/loop.svg} (85%) rename ui/{app/templates/svg/icons/perf-replication.hbs => public/perf-replication.svg} (89%) rename ui/{app/templates/svg/icons/replication.hbs => public/replication.svg} (90%) rename ui/{app/templates/svg/icons/reply.hbs => public/reply.svg} (51%) rename ui/{app/templates/svg/icons/status-indicator.hbs => public/status-indicator.svg} (100%) rename ui/{app/templates/svg/icons/stopwatch.hbs => public/stopwatch.svg} (73%) rename ui/{app/templates/svg/icons/tour.hbs => public/tour.svg} (91%) rename ui/{app/templates/svg/vault-logo.hbs => public/vault-logo.svg} (81%) create mode 100644 ui/stories/chevron.md create mode 100644 ui/stories/chevron.stories.js create mode 100644 ui/stories/doc-link.md create mode 100644 ui/stories/doc-link.stories.js create mode 100644 ui/stories/empty-state.md create mode 100644 ui/stories/empty-state.stories.js delete mode 100644 ui/stories/i-con.md create mode 100644 ui/stories/icon.md rename ui/stories/{i-con.stories.js => icon.stories.js} (71%) create mode 100644 ui/stories/info-table-row.md create mode 100644 ui/stories/info-table-row.stories.js create mode 100644 ui/stories/layout-loading.md create mode 100644 ui/stories/layout-loading.stories.js create mode 100644 ui/stories/message-error.md create mode 100644 ui/stories/message-error.stories.js create mode 100644 ui/stories/popup-menu.md create mode 100644 ui/stories/popup-menu.stories.js create mode 100644 ui/stories/ttl-picker.md create mode 100644 ui/stories/ttl-picker.stories.js create mode 100644 ui/stories/vault-logo-spinner.md create mode 100644 ui/stories/vault-logo-spinner.stories.js create mode 100644 ui/tests/integration/components/chevron-test.js create mode 100644 ui/tests/integration/components/icon-test.js diff --git a/ui/.storybook/preview-head.html b/ui/.storybook/preview-head.html index 9c353e54b..13cafd050 100644 --- a/ui/.storybook/preview-head.html +++ b/ui/.storybook/preview-head.html @@ -1,4 +1,6 @@ - + + + diff --git a/ui/app/app.js b/ui/app/app.js index 8b963f8e1..a215b634c 100644 --- a/ui/app/app.js +++ b/ui/app/app.js @@ -8,10 +8,27 @@ defineModifier(); let App; +/* eslint-disable ember/avoid-leaking-state-in-ember-objects */ App = Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, Resolver, + engines: { + replication: { + dependencies: { + services: [ + 'auth', + 'flash-messages', + 'namespace', + 'replication-mode', + 'router', + 'store', + 'version', + 'wizard', + ], + }, + }, + }, }); loadInitializers(App, config.modulePrefix); diff --git a/ui/app/components/download-button.js b/ui/app/components/download-button.js index 46ce12198..8e3f3727e 100644 --- a/ui/app/components/download-button.js +++ b/ui/app/components/download-button.js @@ -3,7 +3,7 @@ import { computed } from '@ember/object'; import hbs from 'htmlbars-inline-precompile'; export default Component.extend({ - layout: hbs`{{#if hasBlock}} {{yield}} {{else}} {{actionText}} {{/if}}`, + layout: hbs`{{#if (has-block)}} {{yield}} {{else}} {{actionText}} {{/if}}`, tagName: 'a', role: 'button', attributeBindings: ['role', 'download', 'href'], diff --git a/ui/app/components/empty-state.js b/ui/app/components/empty-state.js deleted file mode 100644 index 04e6c3d21..000000000 --- a/ui/app/components/empty-state.js +++ /dev/null @@ -1,6 +0,0 @@ -import OuterHTML from './outer-html'; - -export default OuterHTML.extend({ - title: null, - message: null, -}); diff --git a/ui/app/components/i-con.js b/ui/app/components/i-con.js deleted file mode 100644 index 589aa600d..000000000 --- a/ui/app/components/i-con.js +++ /dev/null @@ -1,84 +0,0 @@ -import { camelize } from '@ember/string'; -import Component from '@ember/component'; -import { computed } from '@ember/object'; -import hbs from 'htmlbars-inline-precompile'; - -/** - * @module ICon - * `ICon` components are glyphs used to indicate important information. - * - * @example - * ```js - * - * ``` - * @param glyph=null {String} - The glyph type. - * - */ - -export const GLYPHS_WITH_SVG_TAG = [ - 'cancel-square-outline', - 'cancel-square-fill', - 'check-circle-fill', - 'check-plain', - 'checkmark-circled-outline', - 'close-circled-outline', - 'console', - 'control-lock', - 'docs', - 'download', - 'edition-enterprise', - 'edition-oss', - 'false', - 'file', - 'folder', - 'hidden', - 'information-reversed', - 'learn', - 'neutral-circled-outline', - 'perf-replication', - 'person', - 'plus-plain', - 'role', - 'status-indicator', - 'stopwatch', - 'tour', - 'true', - 'upload', - 'video', - 'visible', -]; - -export default Component.extend({ - layout: hbs` - {{#if excludeSVG}} - {{partial partialName}} - {{else}} - - {{/if}} - `, - - tagName: 'span', - excludeIconClass: false, - classNameBindings: ['excludeIconClass::icon'], - classNames: ['has-current-color-fill'], - - attributeBindings: ['aria-label', 'aria-hidden'], - - glyph: null, - - excludeSVG: computed('glyph', function() { - let glyph = this.get('glyph'); - return glyph.startsWith('enable/') || GLYPHS_WITH_SVG_TAG.includes(glyph); - }), - - size: computed('glyph', function() { - return this.get('glyph').startsWith('enable/') ? 48 : 12; - }), - - partialName: computed('glyph', function() { - const glyph = this.get('glyph'); - return `svg/icons/${camelize(glyph)}`; - }), -}); diff --git a/ui/app/components/info-table-row.js b/ui/app/components/info-table-row.js deleted file mode 100644 index 1be591196..000000000 --- a/ui/app/components/info-table-row.js +++ /dev/null @@ -1,34 +0,0 @@ -import { typeOf } from '@ember/utils'; -import { computed } from '@ember/object'; -import { or } from '@ember/object/computed'; -import Component from '@ember/component'; - -export default Component.extend({ - 'data-test-component': 'info-table-row', - classNames: ['info-table-row'], - isVisible: or('alwaysRender', 'value'), - - /* - * @param boolean - * indicates if the component content should be always be rendered. - * when false, the value of `value` will be used to determine if the component should render - */ - alwaysRender: false, - - /* - * @param string - * the display name for the value - * - */ - label: null, - - /* - * - * the value of the data passed in - by default the content of the component will only show if there is a value - */ - value: null, - - valueIsBoolean: computed('value', function() { - return typeOf(this.get('value')) === 'boolean'; - }), -}); diff --git a/ui/app/components/popup-menu.js b/ui/app/components/popup-menu.js deleted file mode 100644 index 3f263270c..000000000 --- a/ui/app/components/popup-menu.js +++ /dev/null @@ -1,5 +0,0 @@ -import Component from '@ember/component'; - -export default Component.extend({ - tagName: 'span', -}); diff --git a/ui/app/components/secret-form-header.js b/ui/app/components/secret-form-header.js deleted file mode 100644 index d8b27ca6e..000000000 --- a/ui/app/components/secret-form-header.js +++ /dev/null @@ -1,50 +0,0 @@ -import { alias } from '@ember/object/computed'; -import Component from '@ember/component'; -import hbs from 'htmlbars-inline-precompile'; - -export default Component.extend({ - key: null, - mode: null, - path: null, - actionClass: null, - - title: alias('key.keyWithoutParent'), - - layout: hbs` -
- {{#secret-link - mode="list" - secret=key.parentKey - class="back-button" - }} - {{i-con glyph="chevron-left" size=11}} - Secrets - {{/secret-link}} - -
- {{yield}} -
- -
- {{#if (eq mode "create") }} - Create a secret at - - {{#if showPrefix}} - {{! need this to prevent a shift in the layout before we transition when saving }} - {{#if key.isCreating}} - {{key.initialParentKey}} - {{else}} - {{key.parentKey}} - {{/if}} - {{/if}} - - {{/if}} - - {{#if (eq mode "edit") }} - Edit - {{/if}} - - {{title}} -
-
`, -}); diff --git a/ui/app/components/status-menu.js b/ui/app/components/status-menu.js index 642ff3d8d..406749a0c 100644 --- a/ui/app/components/status-menu.js +++ b/ui/app/components/status-menu.js @@ -18,7 +18,7 @@ export default Component.extend({ glyphName: computed('type', function() { const glyphs = { cluster: 'status-indicator', - user: 'person', + user: 'user-square-outline', }; return glyphs[this.type]; }), diff --git a/ui/app/components/toolbar-actions.js b/ui/app/components/toolbar-actions.js deleted file mode 100644 index 2f278cc52..000000000 --- a/ui/app/components/toolbar-actions.js +++ /dev/null @@ -1,3 +0,0 @@ -import OuterHTML from './outer-html'; - -export default OuterHTML.extend({}); diff --git a/ui/app/components/toolbar.js b/ui/app/components/toolbar.js deleted file mode 100644 index d24354b9c..000000000 --- a/ui/app/components/toolbar.js +++ /dev/null @@ -1,6 +0,0 @@ -import OuterHTML from './outer-html'; - -export default OuterHTML.extend({ - classNames: ['toolbar'], - tagName: 'nav', -}); diff --git a/ui/app/controllers/vault/cluster/replication/mode/secondaries/add.js b/ui/app/controllers/vault/cluster/replication/mode/secondaries/add.js deleted file mode 100644 index 01da58dff..000000000 --- a/ui/app/controllers/vault/cluster/replication/mode/secondaries/add.js +++ /dev/null @@ -1,3 +0,0 @@ -import ReplicationController from '../../../replication'; - -export default ReplicationController.extend(); diff --git a/ui/app/controllers/vault/cluster/replication/mode/secondaries/index.js b/ui/app/controllers/vault/cluster/replication/mode/secondaries/index.js deleted file mode 100644 index 01da58dff..000000000 --- a/ui/app/controllers/vault/cluster/replication/mode/secondaries/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import ReplicationController from '../../../replication'; - -export default ReplicationController.extend(); diff --git a/ui/app/controllers/vault/cluster/replication/mode/secondaries/revoke.js b/ui/app/controllers/vault/cluster/replication/mode/secondaries/revoke.js deleted file mode 100644 index 9be89e9d3..000000000 --- a/ui/app/controllers/vault/cluster/replication/mode/secondaries/revoke.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '../../../replication'; diff --git a/ui/app/helpers/includes.js b/ui/app/helpers/includes.js deleted file mode 100644 index ff61d3586..000000000 --- a/ui/app/helpers/includes.js +++ /dev/null @@ -1,7 +0,0 @@ -import { helper as buildHelper } from '@ember/component/helper'; - -export function includes([haystack, needle]) { - return haystack.includes(needle); -} - -export default buildHelper(includes); diff --git a/ui/app/helpers/reduce-to-array.js b/ui/app/helpers/reduce-to-array.js deleted file mode 100644 index b6d76d9e2..000000000 --- a/ui/app/helpers/reduce-to-array.js +++ /dev/null @@ -1,17 +0,0 @@ -import { helper as buildHelper } from '@ember/component/helper'; -import { isNone, typeOf } from '@ember/utils'; - -export function reduceToArray(params) { - return params.reduce(function(result, param) { - if (isNone(param)) { - return result; - } - if (typeOf(param) === 'array') { - return result.concat(param); - } else { - return result.concat([param]); - } - }, []); -} - -export default buildHelper(reduceToArray); diff --git a/ui/app/initializers/enable-engines.js b/ui/app/initializers/enable-engines.js new file mode 100644 index 000000000..858f36b06 --- /dev/null +++ b/ui/app/initializers/enable-engines.js @@ -0,0 +1,13 @@ +import config from '../config/environment'; + +export function initialize(/* application */) { + // attach mount hooks to the environment config + // context will be the router DSL + config.addRootMounts = function() { + this.mount('replication'); + }; +} + +export default { + initialize, +}; diff --git a/ui/app/mixins/cluster-route.js b/ui/app/mixins/cluster-route.js index 9b814c99e..2b7ff244e 100644 --- a/ui/app/mixins/cluster-route.js +++ b/ui/app/mixins/cluster-route.js @@ -13,6 +13,7 @@ export { INIT, UNSEAL, AUTH, CLUSTER, DR_REPLICATION_SECONDARY }; export default Mixin.create({ auth: service(), + store: service(), transitionToTargetRoute(transition) { const targetRoute = this.targetRouteName(transition); @@ -28,7 +29,7 @@ export default Mixin.create({ }, clusterModel() { - return this.modelFor(CLUSTER); + return this.modelFor(CLUSTER) || this.store.peekRecord('cluster', 'vault'); }, authToken() { diff --git a/ui/app/models/cluster.js b/ui/app/models/cluster.js index 2ed2686cb..5084d63ed 100644 --- a/ui/app/models/cluster.js +++ b/ui/app/models/cluster.js @@ -70,7 +70,7 @@ export default DS.Model.extend({ }), stateGlyph(state) { - const glyph = 'checkmark-circled-outline'; + const glyph = 'check-circled-outline'; const glyphs = { 'stream-wals': 'android-sync', diff --git a/ui/app/router.js b/ui/app/router.js index b1b87d879..de87a5433 100644 --- a/ui/app/router.js +++ b/ui/app/router.js @@ -114,22 +114,9 @@ Router.map(function() { this.route('edit', { path: '/:policy_name/edit' }); }); this.route('replication-dr-promote'); - this.route('replication', function() { - this.route('index', { path: '/' }); - this.route('mode', { path: '/:replication_mode' }, function() { - //details - this.route('index', { path: '/' }); - this.route('manage'); - this.route('secondaries', function() { - this.route('add', { path: '/add' }); - this.route('revoke', { path: '/revoke' }); - this.route('config-show', { path: '/config/show/:secondary_id' }); - this.route('config-edit', { path: '/config/edit/:secondary_id' }); - this.route('config-create', { path: '/config/create/:secondary_id' }); - }); - }); - }); - + if (config.addRootMounts) { + config.addRootMounts.call(this); + } this.route('not-found', { path: '/*path' }); }); this.route('not-found', { path: '/*path' }); diff --git a/ui/app/routes/vault/cluster/replication/mode/index.js b/ui/app/routes/vault/cluster/replication/mode/index.js deleted file mode 100644 index b26637879..000000000 --- a/ui/app/routes/vault/cluster/replication/mode/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import { inject as service } from '@ember/service'; -import Route from '@ember/routing/route'; - -export default Route.extend({ - replicationMode: service(), - beforeModel() { - const replicationMode = this.paramsFor('vault.cluster.replication.mode').replication_mode; - this.get('replicationMode').setMode(replicationMode); - }, - model() { - return this.modelFor('vault.cluster.replication.mode'); - }, -}); diff --git a/ui/app/styles/components/console-ui-panel.scss b/ui/app/styles/components/console-ui-panel.scss index 26523f76c..170af92de 100644 --- a/ui/app/styles/components/console-ui-panel.scss +++ b/ui/app/styles/components/console-ui-panel.scss @@ -106,7 +106,7 @@ margin-left: calc(#{$console-spacing} - 0.33rem); position: relative; - .icon { + .hs-icon { position: absolute; left: 0; top: 0; diff --git a/ui/app/styles/components/env-banner.scss b/ui/app/styles/components/env-banner.scss index d2851dcf6..607abd244 100644 --- a/ui/app/styles/components/env-banner.scss +++ b/ui/app/styles/components/env-banner.scss @@ -1,10 +1,24 @@ .env-banner { - &, - &:not(:last-child):not(:last-child) { + align-self: center; + border-radius: 3rem; + background: linear-gradient(135deg, $blue, $purple); + animation: env-banner-color-rotate 8s infinite linear alternate; + color: $white; + margin-top: -20px; + + .hs-icon { margin: 0; } - .level-item { - padding: $size-10 $size-8; + .notification { + background-color: transparent; + line-height: 1.66; + padding: 0 $spacing-s; + } +} + +@keyframes env-banner-color-rotate { + 100% { + filter: hue-rotate(105deg); } } diff --git a/ui/app/styles/components/hs-icon.scss b/ui/app/styles/components/hs-icon.scss new file mode 100644 index 000000000..7cfc1bc0e --- /dev/null +++ b/ui/app/styles/components/hs-icon.scss @@ -0,0 +1,37 @@ +.hs-icon { + flex: 0 0 auto; + display: inline-flex; + justify-content: center; + align-items: flex-start; + vertical-align: middle; + width: 16px; + min-width: fit-content; + margin: 2px 4px; +} + +.hs-icon svg { + fill: currentColor; + flex: 1 1 0; +} + +.hs-icon-button-right { + margin-left: 0.25rem; + margin-right: -0.5rem; + align-items: center; +} + +.hs-icon-s { + width: 12px; +} + +.hs-icon-l { + width: 20px; +} + +.hs-icon-xl { + width: 28px; +} + +.hs-icon-xxl { + width: 32px; +} diff --git a/ui/app/styles/components/info-table-row.scss b/ui/app/styles/components/info-table-row.scss index c887102bc..bca18fd24 100644 --- a/ui/app/styles/components/info-table-row.scss +++ b/ui/app/styles/components/info-table-row.scss @@ -27,9 +27,15 @@ } } - .icon { + .hs-icon { margin-right: 0.25rem; } + .icon-true { + color: $green-500; + } + .icon-false { + color: $ui-gray-300; + } } .info-table-row:not(.is-mobile) .column { diff --git a/ui/app/styles/components/navigate-input.scss b/ui/app/styles/components/navigate-input.scss new file mode 100644 index 000000000..471e85177 --- /dev/null +++ b/ui/app/styles/components/navigate-input.scss @@ -0,0 +1,5 @@ +.search-icon { + position: absolute; + top: 6px; + left: 2px; +} diff --git a/ui/app/styles/components/search-select.scss b/ui/app/styles/components/search-select.scss index fe117126d..cd764ae96 100644 --- a/ui/app/styles/components/search-select.scss +++ b/ui/app/styles/components/search-select.scss @@ -122,3 +122,9 @@ animation: drop-fade-above 0.15s; } } + +.search-select .search-icon { + position: absolute; + width: 20px; + top: 5px; +} diff --git a/ui/app/styles/components/tool-tip.scss b/ui/app/styles/components/tool-tip.scss index 13591c397..36ff39918 100644 --- a/ui/app/styles/components/tool-tip.scss +++ b/ui/app/styles/components/tool-tip.scss @@ -50,18 +50,6 @@ .ember-basic-dropdown-content--above.tool-tip { margin-top: -2px; } -.tool-tip-trigger { - border: none; - border-radius: 20px; - height: 18px; - width: 18px; - outline: none; - box-shadow: none; - cursor: pointer; - padding: 0; - color: $grey-dark; - margin-left: 8px; -} .b-checkbox .tool-tip-trigger { position: relative; diff --git a/ui/app/styles/components/ui-wizard.scss b/ui/app/styles/components/ui-wizard.scss index dbc2a659f..186bfadbe 100644 --- a/ui/app/styles/components/ui-wizard.scss +++ b/ui/app/styles/components/ui-wizard.scss @@ -70,7 +70,7 @@ .wizard-header { border-bottom: $light-border; - padding: 0 $size-4 $size-8 2rem; + padding: 0 $size-4 $size-8 0; margin: $size-4 0; position: relative; @@ -78,12 +78,6 @@ margin-top: 0; padding-top: 0; } - - .title .icon { - left: 0; - position: absolute; - top: 0; - } } .wizard-dismiss-menu { @@ -117,10 +111,6 @@ .title { color: $white; - - .icon { - top: -0.1rem; - } } .wizard-header { @@ -154,12 +144,6 @@ } } -.wizard-section .title .icon { - height: auto; - margin-right: $size-11; - width: auto; -} - .wizard-section:last-of-type { margin-bottom: $size-5; } @@ -236,6 +220,7 @@ transform: translate(-50%, -50%); width: $wizard-progress-check-size; z-index: 10; + margin: 0 !important; } .feature-progress-container .feature-check { @@ -258,10 +243,10 @@ } } -.incomplete-check svg { - fill: $ui-gray-200; +.incomplete-check { + color: $ui-gray-200; } -.completed-check svg { - fill: $green; +.completed-check { + color: $green; } diff --git a/ui/app/styles/core.scss b/ui/app/styles/core.scss index 03e9e933f..0eb83f62b 100644 --- a/ui/app/styles/core.scss +++ b/ui/app/styles/core.scss @@ -66,6 +66,7 @@ @import './components/masked-input'; @import './components/namespace-picker'; @import './components/namespace-reminder'; +@import './components/navigate-input'; @import './components/page-header'; @import './components/popup-menu'; @import './components/radial-progress'; @@ -83,3 +84,6 @@ @import './components/upgrade-overlay'; @import './components/ui-wizard'; @import './components/vault-loading'; + +// bulma-free-zone +@import './components/hs-icon'; diff --git a/ui/app/styles/core/buttons.scss b/ui/app/styles/core/buttons.scss index 6d1d74578..8f696d408 100644 --- a/ui/app/styles/core/buttons.scss +++ b/ui/app/styles/core/buttons.scss @@ -158,20 +158,17 @@ $button-box-shadow-standard: 0 3px 1px 0 rgba($black, 0.12); .has-text-info & { font-weight: $font-weight-semibold; - - .icon { - vertical-align: middle; - } } &.tool-tip-trigger { - color: $black; + color: $grey-dark; min-width: auto; + padding: 0; } &.has-icon-left, &.has-icon-right { - .icon { + .hs-icon { height: 16px; min-width: auto; width: 16px; @@ -179,7 +176,7 @@ $button-box-shadow-standard: 0 3px 1px 0 rgba($black, 0.12); } &.has-icon-left { - .icon { + .hs-icon { &, &:first-child:last-child { position: relative; @@ -189,7 +186,7 @@ $button-box-shadow-standard: 0 3px 1px 0 rgba($black, 0.12); } &.has-icon-right { - .icon { + .hs-icon { &, &:first-child:last-child { margin-left: $spacing-xxs; diff --git a/ui/app/styles/core/message.scss b/ui/app/styles/core/message.scss index 7e8932b91..151d159f1 100644 --- a/ui/app/styles/core/message.scss +++ b/ui/app/styles/core/message.scss @@ -101,8 +101,7 @@ display: flex; margin: 0 0 $spacing-l; - .icon { - flex: 0; + .hs-icon { margin: 0 $spacing-xxs 0 0; min-width: fit-content; } diff --git a/ui/app/styles/core/navbar.scss b/ui/app/styles/core/navbar.scss index 7f6f79e86..a981fcf12 100644 --- a/ui/app/styles/core/navbar.scss +++ b/ui/app/styles/core/navbar.scss @@ -159,7 +159,6 @@ font-size: 1rem; height: auto; justify-content: flex-start; - padding: 0 $spacing-xxs; text-align: left; width: 100%; diff --git a/ui/app/templates/components/alert-inline.hbs b/ui/app/templates/components/alert-inline.hbs deleted file mode 100644 index 4b841feca..000000000 --- a/ui/app/templates/components/alert-inline.hbs +++ /dev/null @@ -1,8 +0,0 @@ - -

- {{@message}} -

diff --git a/ui/app/templates/components/alert-popup.hbs b/ui/app/templates/components/alert-popup.hbs index 3a018dd48..ef92bc61c 100644 --- a/ui/app/templates/components/alert-popup.hbs +++ b/ui/app/templates/components/alert-popup.hbs @@ -1,11 +1,18 @@
- +
{{type.text}} diff --git a/ui/app/templates/components/auth-form.hbs b/ui/app/templates/components/auth-form.hbs index c55c7166a..bbdbaba43 100644 --- a/ui/app/templates/components/auth-form.hbs +++ b/ui/app/templates/components/auth-form.hbs @@ -1,7 +1,7 @@
{{#if showLoading}}
- {{partial 'svg/vault-loading'}} +
{{/if}} {{#if hasMethodsWithPath}} diff --git a/ui/app/templates/components/console/command-input.hbs b/ui/app/templates/components/console/command-input.hbs index be3302212..abd2ce21c 100644 --- a/ui/app/templates/components/console/command-input.hbs +++ b/ui/app/templates/components/console/command-input.hbs @@ -2,12 +2,12 @@ {{#if isRunning}}
{{else}} - {{i-con glyph="chevron-right" size=12 }} + {{/if}} {{#tool-tip horizontalPosition="auto-right" verticalPosition=(if isFullscreen "above" "below") as |d|}} {{#d.trigger tagName="button" type="button" class=(concat "button is-compact" (if isFullscreen " active")) click=(action "fullscreen") data-test-tool-tip-trigger=true}} - {{i-con glyph=(if isFullscreen "fullscreen-close" "fullscreen-open") aria-hidden="true" size=16}} + {{/d.trigger}} {{#d.content class="tool-tip"}}
diff --git a/ui/app/templates/components/console/log-command.hbs b/ui/app/templates/components/console/log-command.hbs index 39b9e7d1f..cc446877d 100644 --- a/ui/app/templates/components/console/log-command.hbs +++ b/ui/app/templates/components/console/log-command.hbs @@ -1 +1,2 @@ -
{{i-con glyph="chevron-right" size=12}}{{content}}
+{{!-- using Icon here instead of Chevron because two nested tagless components results in a rendered line break between the tags breaking the layout in the
 --}}
+
diff --git a/ui/app/templates/components/console/log-error-with-html.hbs b/ui/app/templates/components/console/log-error-with-html.hbs index 625365907..45e0c4540 100644 --- a/ui/app/templates/components/console/log-error-with-html.hbs +++ b/ui/app/templates/components/console/log-error-with-html.hbs @@ -1,5 +1,5 @@ {{! template-lint-disable no-triple-curlies}}
- {{i-con glyph="close-circled" aria-hidden="true" size=12}} +
diff --git a/ui/app/templates/components/console/log-error.hbs b/ui/app/templates/components/console/log-error.hbs index add86ec49..11cd2647b 100644 --- a/ui/app/templates/components/console/log-error.hbs +++ b/ui/app/templates/components/console/log-error.hbs @@ -1,4 +1,4 @@
- {{i-con glyph="close-circled" aria-hidden="true" size=12}} +
diff --git a/ui/app/templates/components/console/log-help.hbs b/ui/app/templates/components/console/log-help.hbs index 09472f01a..e88242033 100644 --- a/ui/app/templates/components/console/log-help.hbs +++ b/ui/app/templates/components/console/log-help.hbs @@ -1,5 +1,5 @@
-{{i-con glyph="information-circled" aria-hidden="true" size=12}} +