dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/assets/brand/harvester/favicon.png +0 -0
  2. package/assets/brand/suse/favicon.png +0 -0
  3. package/assets/icons/demo.css +539 -0
  4. package/assets/icons/demo.css:Zone.Identifier +0 -0
  5. package/assets/icons/demo_index.html +1131 -0
  6. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  7. package/assets/icons/iconfont.css +216 -0
  8. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  9. package/assets/icons/iconfont.js +1 -0
  10. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  11. package/assets/icons/iconfont.json +324 -0
  12. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  13. package/assets/icons/iconfont.ttf +0 -0
  14. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  15. package/assets/icons/iconfont.woff +0 -0
  16. package/assets/icons/iconfont.woff2 +0 -0
  17. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  18. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  19. package/assets/images/API.svg +3 -0
  20. package/assets/images/action.svg +6 -0
  21. package/assets/images/login/password.svg +20 -0
  22. package/assets/images/login/user.svg +6 -0
  23. package/assets/images/login-bg.png +0 -0
  24. package/assets/images/login-left.png +0 -0
  25. package/assets/images/login-logo.svg +19 -0
  26. package/assets/images/logo.png +0 -0
  27. package/assets/images/pl/half-logo.svg +2 -23
  28. package/assets/images/pl/harvester.png +0 -0
  29. package/assets/images/pl/logo.png +0 -0
  30. package/assets/images/promp-yellow.svg +5 -0
  31. package/assets/images/user.png +0 -0
  32. package/assets/styles/all.scss +63 -0
  33. package/assets/styles/app.scss +4 -0
  34. package/assets/styles/base/_basic.scss +2 -2
  35. package/assets/styles/base/_mixins.scss +1 -1
  36. package/assets/styles/base/_typography.scss +2 -1
  37. package/assets/styles/base/_variables.scss +14 -7
  38. package/assets/styles/global/_button.scss +43 -25
  39. package/assets/styles/global/_columns.scss +3 -1
  40. package/assets/styles/global/_form.scss +45 -13
  41. package/assets/styles/global/_labeled-input.scss +54 -26
  42. package/assets/styles/global/_layout.scss +8 -3
  43. package/assets/styles/global/_select.scss +25 -17
  44. package/assets/styles/global/_table.scss +7 -1
  45. package/assets/styles/global/_tooltip.scss +56 -8
  46. package/assets/styles/themes/_dark.scss +3 -0
  47. package/assets/styles/themes/_light.scss +66 -43
  48. package/assets/styles/vendor/vue-select.scss +22 -9
  49. package/assets/translations/en-us.yaml +28 -4
  50. package/assets/translations/zh-hans.yaml +452 -189
  51. package/components/ActionDropdown.vue +2 -1
  52. package/components/ActionMenu.vue +2 -2
  53. package/components/ActionMenuShell.vue +2 -0
  54. package/components/AppModal.vue +46 -5
  55. package/components/BrandImage.vue +1 -0
  56. package/components/ButtonDropdown.vue +26 -4
  57. package/components/ButtonMultiAction.vue +1 -0
  58. package/components/ClusterIconMenu.vue +1 -1
  59. package/components/CodeMirror.vue +20 -6
  60. package/components/ConsumptionGauge.vue +24 -5
  61. package/components/CopyToClipboard.vue +15 -0
  62. package/components/CruResource.vue +9 -8
  63. package/components/CruResourceFooter.vue +2 -2
  64. package/components/DashboardOptions.vue +29 -17
  65. package/components/DotState.vue +84 -0
  66. package/components/Drawer/Chrome.vue +2 -2
  67. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -22
  68. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  69. package/components/Drawer/ResourceDetailDrawer/index.vue +2 -1
  70. package/components/ExplorerMembers.vue +18 -3
  71. package/components/ExplorerProjectsNamespaces.vue +19 -5
  72. package/components/GlobalRoleBindings.vue +112 -48
  73. package/components/GrafanaDashboard.vue +4 -4
  74. package/components/GrowlManager.vue +3 -1
  75. package/components/HardwareResourceGauge.vue +39 -3
  76. package/components/IndentedPanel.vue +4 -10
  77. package/components/InfoBox.vue +3 -3
  78. package/components/InputOrDisplay.vue +28 -2
  79. package/components/LabelValue.vue +20 -1
  80. package/components/ModalWithCard.vue +12 -3
  81. package/components/PodSecurityAdmission.vue +1 -1
  82. package/components/PromptModal.vue +1 -1
  83. package/components/PromptRemove.vue +30 -11
  84. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  85. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  86. package/components/Resource/Detail/Metadata/index.vue +3 -1
  87. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  88. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  89. package/components/Resource/Detail/TitleBar/index.vue +109 -24
  90. package/components/ResourceDetail/Masthead/legacy.vue +181 -38
  91. package/components/ResourceDetail/legacy.vue +32 -14
  92. package/components/ResourceList/Masthead.vue +226 -54
  93. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  94. package/components/ResourceTable.vue +24 -2
  95. package/components/SideNav.vue +74 -20
  96. package/components/SortableTable/THead.vue +33 -3
  97. package/components/SortableTable/index.vue +1016 -463
  98. package/components/SortableTable/paging.js +26 -16
  99. package/components/SortableTable/selection.js +2 -2
  100. package/components/Tabbed/Tab.vue +3 -3
  101. package/components/Tabbed/index.vue +47 -29
  102. package/components/YamlEditor.vue +0 -1
  103. package/components/auth/Principal.vue +37 -13
  104. package/components/auth/RoleDetailEdit.vue +58 -7
  105. package/components/auth/SelectPrincipal.vue +1 -0
  106. package/components/breadcrumb/index.vue +316 -0
  107. package/components/form/ArrayList.vue +41 -33
  108. package/components/form/ArrayListGrouped.vue +10 -2
  109. package/components/form/ArrayListSelect.vue +1 -1
  110. package/components/form/BannerSettings.vue +64 -59
  111. package/components/form/ChangePassword.vue +4 -4
  112. package/components/form/ColorInput.vue +32 -8
  113. package/components/form/Footer.vue +11 -8
  114. package/components/form/InputWithSelect.vue +8 -5
  115. package/components/form/KeyValue.vue +47 -7
  116. package/components/form/LabeledSelect.vue +214 -242
  117. package/components/form/Labels.vue +3 -3
  118. package/components/form/MatchExpressions.vue +24 -7
  119. package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
  120. package/components/form/Members/MembershipEditor.vue +1 -1
  121. package/components/form/NameNsDescription.vue +59 -20
  122. package/components/form/Password.vue +16 -7
  123. package/components/form/PodAffinity.vue +4 -5
  124. package/components/form/ResourceQuota/Namespace.vue +4 -4
  125. package/components/form/ResourceQuota/NamespaceRow.vue +18 -17
  126. package/components/form/ResourceQuota/Project.vue +4 -4
  127. package/components/form/ResourceQuota/ProjectRow.vue +3 -6
  128. package/components/form/Select.vue +5 -2
  129. package/components/form/SimpleSecretSelector.vue +29 -9
  130. package/components/form/Taints.vue +2 -1
  131. package/components/form/UnitInput.vue +8 -3
  132. package/components/form/WorkloadPorts.vue +143 -123
  133. package/components/formatter/BadgeStateFormatter.vue +8 -5
  134. package/components/formatter/LiveDate.vue +3 -3
  135. package/components/nav/Favorite.vue +5 -1
  136. package/components/nav/Group.vue +132 -99
  137. package/components/nav/Header.vue +124 -27
  138. package/components/nav/HeaderPageActionMenu.vue +1 -0
  139. package/components/nav/NamespaceFilter.vue +20 -17
  140. package/components/nav/TopLevelMenu.vue +182 -119
  141. package/components/nav/Type.vue +63 -41
  142. package/composables/useClickOutside.ts +1 -1
  143. package/config/private-label.js +15 -11
  144. package/config/product/auth.js +17 -7
  145. package/config/product/settings.js +19 -9
  146. package/config/settings.ts +28 -0
  147. package/config/table-headers.js +3 -2
  148. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  149. package/dialog/ScalePoolDownDialog.vue +2 -2
  150. package/edit/management.cattle.io.user.vue +17 -4
  151. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  152. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  153. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  154. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  155. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  156. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  157. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  158. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  159. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  160. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  161. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  162. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  163. package/edit/namespace.vue +1 -2
  164. package/edit/token.vue +31 -12
  165. package/edit/workload/index.vue +4 -4
  166. package/list/management.cattle.io.setting.vue +22 -13
  167. package/list/management.cattle.io.user.vue +7 -3
  168. package/list/namespace.vue +3 -0
  169. package/list/provisioning.cattle.io.cluster.vue +6 -7
  170. package/mixins/brand.js +17 -0
  171. package/package.json +1 -1
  172. package/pages/account/pri.vue +229 -0
  173. package/pages/auth/login.vue +220 -52
  174. package/pages/auth/setup.vue +142 -19
  175. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  176. package/pages/c/_cluster/auth/roles/index.vue +56 -5
  177. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  178. package/pages/c/_cluster/settings/banners.vue +174 -102
  179. package/pages/c/_cluster/settings/brand.vue +350 -302
  180. package/pages/c/_cluster/settings/performance.vue +61 -38
  181. package/pages/home.vue +70 -30
  182. package/pages/prefs.vue +27 -25
  183. package/pkg/tsconfig.json +9 -9
  184. package/pkg/vue.config.js +1 -1
  185. package/plugins/dashboard-store/resource-class.js +28 -27
  186. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  187. package/public/index.html +4 -4
  188. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  189. package/rancher-components/Banner/Banner.vue +12 -8
  190. package/rancher-components/Card/Card.vue +7 -8
  191. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  192. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  193. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  194. package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
  195. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  196. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  197. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
  198. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  199. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  200. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  201. package/rancher-components/RcDropdown/types.ts +1 -0
  202. package/rancher-components/StringList/StringList.vue +1 -1
  203. package/scripts/publish-shell.sh +1 -1
  204. package/static/favicon.ico +0 -0
  205. package/static/favicon.png +0 -0
  206. package/static/loading-indicator.html +3 -3
  207. package/store/i18n.js +5 -2
  208. package/store/modal.ts +3 -3
  209. package/store/prefs.js +11 -4
  210. package/store/type-map.js +32 -2
  211. package/types/shell/index.d.ts +78 -97
  212. package/utils/error.js +89 -8
  213. package/utils/errorTranslate.json +1351 -0
  214. package/utils/router.js +21 -0
  215. package/utils/select.js +26 -3
  216. package/utils/string.js +8 -5
  217. package/utils/title.ts +1 -1
  218. package/vue.config.js +1 -1
@@ -0,0 +1,316 @@
1
+ <script>
2
+ import { Banner } from '@components/Banner';
3
+ import { get } from '@shell/utils/object';;
4
+ import {
5
+ AS, _DETAIL, _CONFIG, _YAML, MODE, _CREATE, _EDIT, _VIEW, _UNFLAG, _GRAPH
6
+ } from '@shell/config/query-params';
7
+ import { ExtensionPoint, PanelLocation } from '@shell/core/types';
8
+ import { useRuntimeFlag } from '@shell/composables/useRuntimeFlag';
9
+ import { useStore } from 'vuex';
10
+
11
+ // i18n-uses resourceDetail.header.*
12
+
13
+ /**
14
+ * Resource Detail Masthead component.
15
+ *
16
+ * ToDo: this component seem to be picking up a lot of logic from special cases, could be simplified down to parameters and then customized per use-case via wrapper component
17
+ */
18
+ export default {
19
+
20
+ name: 'MastheadResourceDetail',
21
+
22
+ components: {
23
+ // BadgeState,
24
+ Banner,
25
+ },
26
+ props: {
27
+ value: {
28
+ type: Object,
29
+ default: () => {
30
+ return {};
31
+ }
32
+ },
33
+
34
+ mode: {
35
+ type: String,
36
+ default: 'view'
37
+ },
38
+
39
+ realMode: {
40
+ type: String,
41
+ default: 'view'
42
+ },
43
+
44
+ as: {
45
+ type: String,
46
+ default: _YAML,
47
+ },
48
+
49
+ storeOverride: {
50
+ type: String,
51
+ default: null,
52
+ },
53
+
54
+ resource: {
55
+ type: String,
56
+ default: null,
57
+ },
58
+
59
+ resourceSubtype: {
60
+ type: String,
61
+ default: null,
62
+ },
63
+
64
+ parentRouteOverride: {
65
+ type: String,
66
+ default: null,
67
+ },
68
+
69
+ },
70
+
71
+ setup() {
72
+ const store = useStore();
73
+ const { featureDropdownMenu } = useRuntimeFlag(store);
74
+
75
+ return { featureDropdownMenu };
76
+ },
77
+
78
+ data() {
79
+ return {
80
+ DETAIL_VIEW: _DETAIL,
81
+ extensionType: ExtensionPoint.PANEL,
82
+ extensionLocation: PanelLocation.DETAILS_MASTHEAD,
83
+ Svg: require('~shell/assets/images/API.svg')
84
+ };
85
+ },
86
+
87
+ computed: {
88
+ dev() {
89
+ return this.$store.getters['prefs/dev'];
90
+ },
91
+
92
+ schema() {
93
+ const inStore = this.storeOverride || this.$store.getters['currentStore'](this.resource);
94
+
95
+ return this.$store.getters[`${ inStore }/schemaFor`]( this.resource );
96
+ },
97
+
98
+ isProjectHelmChart() {
99
+ return this.schema?.id === HELM.PROJECTHELMCHART;
100
+ },
101
+
102
+ shouldHifenize() {
103
+ return (this.mode === 'view' || this.mode === 'edit') && this.resourceSubtype?.length && this.value?.nameDisplay?.length;
104
+ },
105
+
106
+ parent() {
107
+ const displayName = this.value?.parentNameOverride || this.$store.getters['type-map/labelFor'](this.schema);
108
+ const product = this.$store.getters['currentProduct'].name;
109
+
110
+ const defaultLocation = {
111
+ name: 'c-cluster-product-resource',
112
+ params: {
113
+ resource: this.resource,
114
+ product,
115
+ }
116
+ };
117
+
118
+ const location = this.value?.parentLocationOverride || defaultLocation;
119
+
120
+ if (this.parentRouteOverride) {
121
+ location.name = this.parentRouteOverride;
122
+ }
123
+
124
+ const typeOptions = this.$store.getters[`type-map/optionsFor`]( this.resource );
125
+
126
+ // 转换为中文
127
+ const displayName_zh_hans = {
128
+ 'GlobalRole': '全局角色',
129
+ 'RoleTemplate': '集群角色',
130
+ }
131
+ if (displayName_zh_hans[displayName]) {
132
+ displayName = displayName_zh_hans[displayName]
133
+ }
134
+
135
+ if (displayName == '集群角色' && (this.$route.query?.roleContext == 'NAMESPACE' || location.hash == '#NAMESPACE')) {
136
+ displayName = '项目或资源组角色'
137
+ }
138
+
139
+ const out = {
140
+ displayName, location, ...typeOptions
141
+ };
142
+
143
+ return out;
144
+ },
145
+
146
+
147
+ displayName() {
148
+ let displayName = this.value.nameDisplay;
149
+
150
+ if (this.isProjectHelmChart) {
151
+ displayName = this.value.projectDisplayName;
152
+ }
153
+
154
+ return this.shouldHifenize ? ` - ${ displayName }` : displayName;
155
+ },
156
+
157
+ demoDisplay() {
158
+
159
+ const resources = this.$route.params?.resource || ''
160
+
161
+ const productId = this.$store.getters['type-map/groupForBasicType'](this.$store.getters['productId'], resources);
162
+
163
+ if (productId === undefined) {
164
+ return '';
165
+ }
166
+ const parts = productId.split('::');
167
+ const newString = 'root';
168
+
169
+ if (!parts?.includes(newString)) {
170
+ parts.unshift(newString); // 将字符串添加到数组第一位
171
+ }
172
+
173
+ const partsEn = parts.map((item) => {
174
+ return this.$store.getters['i18n/t'](`typeLabel."${ item.toLowerCase() }"`);
175
+ });
176
+
177
+ return partsEn;
178
+ },
179
+
180
+ location() {
181
+ const { parent } = this;
182
+
183
+ return parent?.location;
184
+ },
185
+
186
+ },
187
+
188
+ methods: {
189
+ get,
190
+ }
191
+ };
192
+ </script>
193
+
194
+ <template>
195
+ <div class="masthead">
196
+ <div class="title">
197
+ <!-- 标题区域 -->
198
+ <div
199
+ class="excram-list"
200
+ >
201
+ <span
202
+ v-for="(item,index) in demoDisplay"
203
+ :key="index"
204
+ >
205
+ <span>{{ item }}</span>
206
+ <span>/</span>
207
+ </span>
208
+ <span class="excram-last-name">
209
+ {{ (realMode === 'view'? '查看': realMode === 'edit' ? '编辑':'创建') + parent.displayName }}
210
+ </span>
211
+ </div>
212
+ </div>
213
+ </div>
214
+ </template>
215
+
216
+ <style lang='scss' scoped>
217
+
218
+ HEADER {
219
+ margin: 0;
220
+ }
221
+
222
+ .primaryheader {
223
+ display: flex;
224
+ flex-direction: row;
225
+ align-items: center;
226
+ font-size:14px;
227
+ height: 50px;
228
+
229
+ h1 {
230
+ margin: 0;
231
+ }
232
+ }
233
+
234
+ .subheader{
235
+ display: flex;
236
+ flex-direction: row;
237
+ color: var(--input-label);
238
+ & > * {
239
+ margin: 5px 20px 5px 0px;
240
+ }
241
+
242
+ .live-data {
243
+ color: var(--body-text)
244
+ }
245
+ }
246
+
247
+ .state-banner {
248
+ margin: 3px 0 0 0;
249
+ }
250
+
251
+ .masthead-state {
252
+ font-size: initial;
253
+ display: inline-block;
254
+ position: relative;
255
+ /* top: -2px; */
256
+ font-size: 12px;
257
+ margin-left: 5px;
258
+ }
259
+
260
+ .masthead-istio {
261
+ .icon {
262
+ vertical-align: middle;
263
+ color: var(--primary);
264
+ }
265
+ }
266
+
267
+ .left-right-split {
268
+ display: grid;
269
+ align-items: center;
270
+
271
+ .left-half {
272
+ grid-column: 1;
273
+ }
274
+
275
+ .right-half {
276
+ grid-column: 2;
277
+ }
278
+ }
279
+
280
+ .resource-external {
281
+ font-size: 18px;
282
+ }
283
+ .excram-list{
284
+ font-size: 14px;
285
+ margin-bottom: 20px;
286
+ }
287
+ .excram-last-name{
288
+ color: var(--link);
289
+ }
290
+ .valid{
291
+ color: #d7d7d7;
292
+ margin: 0px 10px;
293
+ }
294
+ .detailIcon-span{
295
+ width: 24px;
296
+ height: 24px;
297
+ display: inline-block;
298
+ position: relative;
299
+ background: var(--primary);
300
+ margin-right: 10px;
301
+ }
302
+ .detailIcon{
303
+ position: absolute;
304
+ color: #fff;
305
+ font-size: 38px;
306
+ left: 4px;
307
+ top: -2px;
308
+ }
309
+ .primary-title{
310
+ display: flex;
311
+ align-items: center;
312
+ }
313
+ .detailIcon-span-title{
314
+ font-weight: bold;
315
+ }
316
+ </style>
@@ -287,6 +287,33 @@ export default {
287
287
  </div>
288
288
 
289
289
  <div>
290
+ <div
291
+ v-if="showAdd && !isView"
292
+ class="footer mmt-6"
293
+ >
294
+ <slot
295
+ v-if="showAdd"
296
+ name="add"
297
+ :add="add"
298
+ >
299
+ <button
300
+ type="button"
301
+ class="btn role-tertiary add"
302
+ :class="[addClass]"
303
+ :disabled="loading || disableAdd"
304
+ :data-testid="`${componentTestid}-button`"
305
+ :aria-label="_addLabel"
306
+ role="button"
307
+ @click="add()"
308
+ >
309
+ <i
310
+ class="mr-5 icon"
311
+ :class="loading ? ['icon-lg', 'icon-spinner','icon-spin']: [addIcon]"
312
+ />
313
+ {{ _addLabel }}
314
+ </button>
315
+ </slot>
316
+ </div>
290
317
  <template v-if="rows.length">
291
318
  <div
292
319
  v-if="showHeader"
@@ -403,33 +430,6 @@ export default {
403
430
  </div>
404
431
  </slot>
405
432
  </div>
406
- <div
407
- v-if="showAdd && !isView"
408
- class="footer mmt-6"
409
- >
410
- <slot
411
- v-if="showAdd"
412
- name="add"
413
- :add="add"
414
- >
415
- <button
416
- type="button"
417
- class="btn role-tertiary add"
418
- :class="[addClass]"
419
- :disabled="loading || disableAdd"
420
- :data-testid="`${componentTestid}-button`"
421
- :aria-label="_addLabel"
422
- role="button"
423
- @click="add()"
424
- >
425
- <i
426
- class="mr-5 icon"
427
- :class="loading ? ['icon-lg', 'icon-spinner','icon-spin']: [addIcon]"
428
- />
429
- {{ _addLabel }}
430
- </button>
431
- </slot>
432
- </div>
433
433
  </div>
434
434
  </div>
435
435
  </template>
@@ -451,19 +451,20 @@ export default {
451
451
  .value {
452
452
  flex: 1;
453
453
  INPUT {
454
- height: $unlabeled-input-height;
454
+ height: $input-height;
455
+ border: solid var(--border-width) var(--input-border);
456
+ padding: 4px 11px;
457
+ &:hover{
458
+ box-shadow: 0 4px 6px 0 var(--input-border-box-shadow);
459
+ }
455
460
  }
456
461
  }
457
462
  }
458
-
459
- .box.hide-remove-is-view {
460
- grid-template-columns: auto;
461
- }
462
-
463
463
  .remove {
464
464
  text-align: right;
465
465
  }
466
466
  .footer {
467
+ margin-bottom: 24px;
467
468
  .protip {
468
469
  float: right;
469
470
  padding: 5px 0;
@@ -473,4 +474,11 @@ export default {
473
474
  .required {
474
475
  color: var(--error);
475
476
  }
477
+ :deep() .labeled-input.compact-input{
478
+ padding: 0px;
479
+ }
480
+ :deep() .box{
481
+ margin-bottom: 10px;
482
+ }
483
+
476
484
  </style>
@@ -127,8 +127,16 @@ export default {
127
127
  & > .remove {
128
128
  position: absolute;
129
129
 
130
- top: 0;
131
- right: 0;
130
+ top: 10px;
131
+ right: 10px;
132
+ & > .close{
133
+ width: 32px;
134
+ min-width: 32px !important;
135
+ color: var(--body-text);
136
+ &:hover{
137
+ color: var(--link);
138
+ }
139
+ }
132
140
  }
133
141
 
134
142
  & > .info-box {
@@ -98,6 +98,6 @@ export default {
98
98
 
99
99
  <style lang="scss" scoped>
100
100
  :deep() .unlabeled-select {
101
- height: 61px;
101
+ height: 30px;
102
102
  }
103
103
  </style>
@@ -117,7 +117,7 @@ export default ({
117
117
 
118
118
  <template>
119
119
  <div>
120
- <div class="row mb-20">
120
+ <div class="row">
121
121
  <div class="col span-6">
122
122
  <ColorInput
123
123
  v-model:value="value[bannerType].color"
@@ -137,7 +137,7 @@ export default ({
137
137
  />
138
138
  </div>
139
139
  </div>
140
- <div class="row pb-10">
140
+ <div class="row mb-20">
141
141
  <ToggleSwitch
142
142
  v-model:value="isHtml"
143
143
  :aria-label="`${t(`banner.${bannerType}`)} ${t('banner.toggleTextHtml')}`"
@@ -147,71 +147,76 @@ export default ({
147
147
  :on-label="t('banner.type.html')"
148
148
  />
149
149
  </div>
150
- <div
151
- v-if="!isHtml"
152
- class="row"
153
- >
154
- <p
155
- :id="bannerTitleId"
156
- class="sr-only"
150
+ <div v-if="!isHtml">
151
+ <div
152
+ class="row"
157
153
  >
158
- {{ t(`banner.${bannerType}`) }}
159
- </p>
160
- <div class="col span-6">
161
- <LabeledInput
162
- v-model:value="value[bannerType].text"
163
- :disabled="isUiDisabled"
164
- :label="t('banner.text')"
165
- type="multiline"
166
- :aria-describedby="bannerTitleId"
167
- />
168
154
  <p
169
- v-if="isConsentBanner"
170
- class="banner-input-footnote mt-5 mb-20"
155
+ :id="bannerTitleId"
156
+ class="sr-only"
171
157
  >
172
- {{ t('banner.consentFootnote') }}
158
+ {{ t(`banner.${bannerType}`) }}
173
159
  </p>
160
+ <div class="col span-6">
161
+ <LabeledInput
162
+ v-model:value="value[bannerType].text"
163
+ :disabled="isUiDisabled"
164
+ :label="t('banner.text')"
165
+ type="multiline"
166
+ :aria-describedby="bannerTitleId"
167
+ />
168
+ <p
169
+ v-if="isConsentBanner"
170
+ class="banner-input-footnote mt-5 mb-20"
171
+ >
172
+ {{ t('banner.consentFootnote') }}
173
+ </p>
174
+ </div>
175
+ <div class="col span-6">
176
+ <LabeledSelect
177
+ v-model:value="value[bannerType].fontSize"
178
+ :data-testid="`banner_font_size_options${bannerType}`"
179
+ :disabled="isUiDisabled"
180
+ :label="t('banner.bannerFontSize.label')"
181
+ :options="uiBannerFontSizeOptions"
182
+ :aria-describedby="bannerTitleId"
183
+ />
184
+ </div>
174
185
  </div>
175
- <div class="col span-2">
176
- <RadioGroup
177
- v-model:value="value[bannerType].textAlignment"
178
- name="bannerAlignment"
179
- :data-testid="`banner_alignment_radio_options${bannerType}`"
180
- :label="t('banner.bannerAlignment.label')"
181
- :options="radioOptions.options"
182
- :labels="radioOptions.labels"
183
- :mode="mode"
184
- :aria-label="`${t(`banner.${bannerType}`)} ${t('banner.bannerAlignment.label')}`"
185
- />
186
- </div>
187
- <div class="col span-2">
188
- <h3 id="decoration-banner-title-id">
189
- {{ t('banner.bannerDecoration.label') }}
190
- </h3>
191
- <div
192
- v-for="(o, i) in textDecorationOptions"
193
- :key="i"
194
- >
195
- <Checkbox
196
- v-model:value="value[bannerType][o.style]"
197
- name="bannerDecoration"
198
- :data-testid="`banner_decoration_checkbox${bannerType}${o.label}`"
199
- class="banner-decoration-checkbox"
186
+ <div class="row">
187
+ <div class="col span-6">
188
+ <RadioGroup
189
+ v-model:value="value[bannerType].textAlignment"
190
+ name="bannerAlignment"
191
+ :data-testid="`banner_alignment_radio_options${bannerType}`"
192
+ :label="t('banner.bannerAlignment.label')"
193
+ :options="radioOptions.options"
194
+ :labels="radioOptions.labels"
200
195
  :mode="mode"
201
- :label="o.label"
202
- :aria-describedby="`${bannerTitleId} decoration-banner-title-id`"
196
+ :aria-label="`${t(`banner.${bannerType}`)} ${t('banner.bannerAlignment.label')}`"
203
197
  />
204
198
  </div>
205
- </div>
206
- <div class="col span-2">
207
- <LabeledSelect
208
- v-model:value="value[bannerType].fontSize"
209
- :data-testid="`banner_font_size_options${bannerType}`"
210
- :disabled="isUiDisabled"
211
- :label="t('banner.bannerFontSize.label')"
212
- :options="uiBannerFontSizeOptions"
213
- :aria-describedby="bannerTitleId"
214
- />
199
+ <div style="display: flex;" class="col span-6">
200
+ <p style="width: 160px;" id="decoration-banner-title-id">
201
+ {{ t('banner.bannerDecoration.label') }}
202
+ </p>
203
+ <div style="display: flex;">
204
+ <div
205
+ v-for="(o, i) in textDecorationOptions"
206
+ :key="i"
207
+ >
208
+ <Checkbox
209
+ v-model:value="value[bannerType][o.style]"
210
+ name="bannerDecoration"
211
+ :data-testid="`banner_decoration_checkbox${bannerType}${o.label}`"
212
+ class="banner-decoration-checkbox"
213
+ :mode="mode"
214
+ :label="o.label"
215
+ :aria-describedby="`${bannerTitleId} decoration-banner-title-id`"
216
+ />
217
+ </div>
218
+ </div>
219
+ </div>
215
220
  </div>
216
221
  </div>
217
222
  <div
@@ -355,7 +355,7 @@ export default {
355
355
  v-if="isRandomGenerated"
356
356
  :class="{'row': isCreateEdit}"
357
357
  >
358
- <div :class="{'col': isCreateEdit, 'span-8': isCreateEdit}">
358
+ <div :class="{'col': isCreateEdit, 'span-6': isCreateEdit}">
359
359
  <Password
360
360
  v-model:value="passwordGen"
361
361
  class="mt-10"
@@ -370,7 +370,7 @@ export default {
370
370
  class="userGen"
371
371
  :class="{'row': isCreateEdit}"
372
372
  >
373
- <div :class="{'col': isCreateEdit, 'span-4': isCreateEdit}">
373
+ <div :class="{'col': isCreateEdit, 'span-6': isCreateEdit}">
374
374
  <Password
375
375
  v-model:value="passwordNew"
376
376
  data-testid="account__new_password"
@@ -380,7 +380,7 @@ export default {
380
380
  :ignore-password-managers="!isChange"
381
381
  />
382
382
  </div>
383
- <div :class="{'col': isCreateEdit, 'span-4': isCreateEdit}">
383
+ <div :class="{'col': isCreateEdit, 'span-6': isCreateEdit}">
384
384
  <Password
385
385
  v-model:value="passwordConfirm"
386
386
  data-testid="account__confirm_password"
@@ -405,7 +405,7 @@ export default {
405
405
  class="text-error"
406
406
  :class="{'row': isCreateEdit}"
407
407
  >
408
- <div :class="{'col': isCreateEdit, 'span-8': isCreateEdit}">
408
+ <div :class="{'col': isCreateEdit, 'span-6': isCreateEdit}">
409
409
  <Banner
410
410
  v-for="(err, i) in errorMessages"
411
411
  :key="i"