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

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 (198) hide show
  1. package/assets/brand/harvester/favicon.png +0 -0
  2. package/assets/brand/suse/favicon.png +0 -0
  3. package/assets/images/pl/half-logo.svg +23 -2
  4. package/assets/images/pl/harvester.png +0 -0
  5. package/assets/styles/app.scss +0 -4
  6. package/assets/styles/base/_basic.scss +2 -2
  7. package/assets/styles/base/_mixins.scss +1 -1
  8. package/assets/styles/base/_typography.scss +1 -2
  9. package/assets/styles/base/_variables.scss +4 -11
  10. package/assets/styles/global/_button.scss +27 -45
  11. package/assets/styles/global/_columns.scss +1 -3
  12. package/assets/styles/global/_form.scss +13 -45
  13. package/assets/styles/global/_labeled-input.scss +26 -54
  14. package/assets/styles/global/_layout.scss +3 -8
  15. package/assets/styles/global/_select.scss +17 -25
  16. package/assets/styles/global/_table.scss +1 -7
  17. package/assets/styles/global/_tooltip.scss +6 -54
  18. package/assets/styles/themes/_dark.scss +0 -3
  19. package/assets/styles/themes/_light.scss +42 -63
  20. package/assets/styles/vendor/vue-select.scss +9 -22
  21. package/assets/translations/en-us.yaml +4 -28
  22. package/assets/translations/zh-hans.yaml +189 -376
  23. package/components/ActionDropdown.vue +1 -2
  24. package/components/ActionMenu.vue +2 -2
  25. package/components/ActionMenuShell.vue +0 -2
  26. package/components/AppModal.vue +5 -46
  27. package/components/BrandImage.vue +0 -1
  28. package/components/ButtonDropdown.vue +4 -26
  29. package/components/ButtonMultiAction.vue +0 -1
  30. package/components/ClusterIconMenu.vue +1 -1
  31. package/components/CodeMirror.vue +6 -20
  32. package/components/ConsumptionGauge.vue +5 -24
  33. package/components/CruResource.vue +8 -9
  34. package/components/CruResourceFooter.vue +2 -2
  35. package/components/DashboardOptions.vue +17 -29
  36. package/components/ExplorerProjectsNamespaces.vue +5 -19
  37. package/components/GlobalRoleBindings.vue +48 -112
  38. package/components/GrafanaDashboard.vue +4 -4
  39. package/components/GrowlManager.vue +1 -3
  40. package/components/HardwareResourceGauge.vue +3 -39
  41. package/components/IndentedPanel.vue +10 -4
  42. package/components/InfoBox.vue +3 -3
  43. package/components/InputOrDisplay.vue +2 -28
  44. package/components/LabelValue.vue +1 -20
  45. package/components/ModalWithCard.vue +3 -12
  46. package/components/PodSecurityAdmission.vue +1 -1
  47. package/components/PromptModal.vue +1 -1
  48. package/components/PromptRemove.vue +11 -30
  49. package/components/ResourceDetail/Masthead/legacy.vue +38 -181
  50. package/components/ResourceDetail/legacy.vue +13 -29
  51. package/components/ResourceList/Masthead.vue +54 -226
  52. package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
  53. package/components/ResourceTable.vue +2 -24
  54. package/components/SideNav.vue +20 -74
  55. package/components/SortableTable/THead.vue +3 -33
  56. package/components/SortableTable/index.vue +464 -1017
  57. package/components/SortableTable/paging.js +16 -26
  58. package/components/SortableTable/selection.js +2 -2
  59. package/components/Tabbed/Tab.vue +3 -3
  60. package/components/Tabbed/index.vue +29 -47
  61. package/components/YamlEditor.vue +1 -0
  62. package/components/auth/Principal.vue +12 -36
  63. package/components/auth/RoleDetailEdit.vue +7 -58
  64. package/components/auth/SelectPrincipal.vue +0 -1
  65. package/components/form/ArrayList.vue +33 -41
  66. package/components/form/ArrayListGrouped.vue +2 -10
  67. package/components/form/ArrayListSelect.vue +1 -1
  68. package/components/form/BannerSettings.vue +59 -64
  69. package/components/form/ChangePassword.vue +4 -4
  70. package/components/form/ColorInput.vue +8 -32
  71. package/components/form/Footer.vue +8 -11
  72. package/components/form/InputWithSelect.vue +5 -8
  73. package/components/form/KeyValue.vue +7 -47
  74. package/components/form/LabeledSelect.vue +241 -212
  75. package/components/form/Labels.vue +3 -3
  76. package/components/form/MatchExpressions.vue +7 -24
  77. package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
  78. package/components/form/Members/MembershipEditor.vue +1 -1
  79. package/components/form/NameNsDescription.vue +20 -59
  80. package/components/form/Password.vue +7 -16
  81. package/components/form/PodAffinity.vue +5 -4
  82. package/components/form/ResourceQuota/Namespace.vue +4 -4
  83. package/components/form/ResourceQuota/NamespaceRow.vue +17 -18
  84. package/components/form/ResourceQuota/Project.vue +4 -4
  85. package/components/form/ResourceQuota/ProjectRow.vue +6 -3
  86. package/components/form/Select.vue +2 -5
  87. package/components/form/SimpleSecretSelector.vue +9 -29
  88. package/components/form/UnitInput.vue +3 -8
  89. package/components/formatter/BadgeStateFormatter.vue +5 -8
  90. package/components/formatter/LiveDate.vue +3 -3
  91. package/components/nav/Favorite.vue +1 -5
  92. package/components/nav/Group.vue +99 -132
  93. package/components/nav/Header.vue +27 -124
  94. package/components/nav/HeaderPageActionMenu.vue +0 -1
  95. package/components/nav/NamespaceFilter.vue +15 -19
  96. package/components/nav/TopLevelMenu.vue +119 -182
  97. package/components/nav/Type.vue +41 -63
  98. package/composables/useClickOutside.ts +1 -1
  99. package/config/private-label.js +11 -15
  100. package/config/product/auth.js +7 -17
  101. package/config/product/settings.js +9 -19
  102. package/config/settings.ts +0 -28
  103. package/config/table-headers.js +2 -3
  104. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  105. package/dialog/ScalePoolDownDialog.vue +2 -2
  106. package/edit/management.cattle.io.user.vue +4 -17
  107. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  108. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  109. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +12 -36
  110. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  111. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  112. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  113. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  114. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  115. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  116. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  117. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  118. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  119. package/edit/namespace.vue +2 -1
  120. package/edit/token.vue +12 -31
  121. package/edit/workload/index.vue +1 -1
  122. package/list/management.cattle.io.setting.vue +13 -22
  123. package/list/management.cattle.io.user.vue +3 -7
  124. package/list/namespace.vue +0 -3
  125. package/list/provisioning.cattle.io.cluster.vue +7 -6
  126. package/mixins/brand.js +0 -17
  127. package/package.json +1 -1
  128. package/pages/account/index.vue +12 -74
  129. package/pages/auth/login.vue +51 -214
  130. package/pages/auth/setup.vue +19 -142
  131. package/pages/c/_cluster/_product/namespaces.vue +4 -4
  132. package/pages/c/_cluster/auth/roles/index.vue +1 -19
  133. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  134. package/pages/c/_cluster/settings/banners.vue +102 -174
  135. package/pages/c/_cluster/settings/brand.vue +302 -350
  136. package/pages/c/_cluster/settings/performance.vue +38 -61
  137. package/pages/home.vue +30 -70
  138. package/pages/prefs.vue +25 -27
  139. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  140. package/public/index.html +4 -4
  141. package/rancher-components/BadgeState/BadgeState.vue +4 -6
  142. package/rancher-components/Banner/Banner.vue +8 -12
  143. package/rancher-components/Card/Card.vue +8 -7
  144. package/rancher-components/Form/Checkbox/Checkbox.vue +0 -4
  145. package/rancher-components/Form/LabeledInput/LabeledInput.vue +3 -42
  146. package/rancher-components/Form/Radio/RadioButton.vue +11 -35
  147. package/rancher-components/Form/Radio/RadioGroup.vue +5 -13
  148. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  149. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +0 -1
  150. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +4 -12
  151. package/rancher-components/RcDropdown/RcDropdown.vue +7 -35
  152. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  153. package/rancher-components/RcDropdown/RcDropdownMenu.vue +4 -9
  154. package/rancher-components/RcDropdown/types.ts +0 -1
  155. package/rancher-components/StringList/StringList.vue +1 -1
  156. package/static/favicon.ico +0 -0
  157. package/static/favicon.png +0 -0
  158. package/static/loading-indicator.html +3 -3
  159. package/store/i18n.js +2 -2
  160. package/store/modal.ts +3 -3
  161. package/store/prefs.js +4 -11
  162. package/store/type-map.js +2 -32
  163. package/types/shell/index.d.ts +67 -74
  164. package/utils/error.js +8 -87
  165. package/utils/router.js +0 -21
  166. package/utils/select.js +3 -26
  167. package/utils/string.js +5 -8
  168. package/utils/title.ts +1 -1
  169. package/assets/icons/demo.css +0 -539
  170. package/assets/icons/demo.css:Zone.Identifier +0 -0
  171. package/assets/icons/demo_index.html +0 -1131
  172. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  173. package/assets/icons/iconfont.css +0 -216
  174. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  175. package/assets/icons/iconfont.js +0 -1
  176. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  177. package/assets/icons/iconfont.json +0 -324
  178. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  179. package/assets/icons/iconfont.ttf +0 -0
  180. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  181. package/assets/icons/iconfont.woff +0 -0
  182. package/assets/icons/iconfont.woff2 +0 -0
  183. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  184. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  185. package/assets/images/API.svg +0 -3
  186. package/assets/images/action.svg +0 -6
  187. package/assets/images/login/password.svg +0 -20
  188. package/assets/images/login/user.svg +0 -6
  189. package/assets/images/login-bg.png +0 -0
  190. package/assets/images/login-left.png +0 -0
  191. package/assets/images/login-logo.svg +0 -19
  192. package/assets/images/logo.png +0 -0
  193. package/assets/images/pl/logo.png +0 -0
  194. package/assets/images/promp-yellow.svg +0 -5
  195. package/assets/images/user.png +0 -0
  196. package/assets/styles/all.scss +0 -63
  197. package/components/DotState.vue +0 -84
  198. package/utils/errorTranslate.json +0 -1336
@@ -53,10 +53,6 @@ export default {
53
53
  default: false,
54
54
  type: Boolean
55
55
  },
56
- isLabel: {
57
- default: false,
58
- type: Boolean
59
- },
60
56
  localizedLabel: {
61
57
  default: false,
62
58
  type: Boolean
@@ -118,15 +114,7 @@ export default {
118
114
  noOptionsLabelKey: {
119
115
  type: String,
120
116
  default: 'labelSelect.noOptions.empty'
121
- },
122
- selectWidth: {
123
- type: String,
124
- default: ''
125
- },
126
- leftWidth: {
127
- type: String,
128
- default: ''
129
- },
117
+ }
130
118
  },
131
119
 
132
120
  setup() {
@@ -269,7 +257,7 @@ export default {
269
257
  },
270
258
 
271
259
  positionDropdown(dropdownList, component, { width }) {
272
- calculatePosition(dropdownList, component, width, this.placement, this.selectWidth===''?'label': this.selectWidth, this.isLabel, this.leftWidth);
260
+ calculatePosition(dropdownList, component, width, this.placement);
273
261
  },
274
262
 
275
263
  get,
@@ -324,12 +312,42 @@ export default {
324
312
  </script>
325
313
 
326
314
  <template>
327
- <div style="display: flex;">
315
+ <div
316
+ :id="hasLabel ? labeledSelectLabelId : undefined"
317
+ ref="select"
318
+ class="labeled-select"
319
+ :class="[
320
+ $attrs.class,
321
+ {
322
+ disabled: isView || disabled,
323
+ focused,
324
+ [mode]: true,
325
+ [status]: status,
326
+ taggable: $attrs.taggable,
327
+ taggable: $attrs.multiple,
328
+ hoverable: hoverTooltip,
329
+ 'compact-input': isCompact,
330
+ 'no-label': !hasLabel
331
+ }
332
+ ]"
333
+ :tabindex="isView || disabled ? -1 : 0"
334
+ role="combobox"
335
+ :aria-expanded="isOpen"
336
+ :aria-describedby="$attrs['aria-describedby'] || undefined"
337
+ :aria-required="requiredField"
338
+ @click="clickSelect"
339
+ @keydown.self.enter="clickSelect"
340
+ @keydown.self.down.prevent="clickSelect"
341
+ @keydown.self.space.prevent="clickSelect"
342
+ >
328
343
  <div
329
- :class="{ 'labeled-container': true, raised, empty, [mode]: true, 'is-lable': isLabel }"
330
- :style="{ border: 'none', width: selectWidth===''?'160px':selectWidth,lineHeight: '32px' }"
344
+ :class="{ 'labeled-container': true, raised, empty, [mode]: true }"
345
+ :style="{ border: 'none' }"
331
346
  >
332
- <label v-if="hasLabel" :id="`labeled-select-uid-${uid}`">
347
+ <label
348
+ v-if="hasLabel"
349
+ :for="labeledSelectLabelId"
350
+ >
333
351
  <t
334
352
  v-if="labelKey"
335
353
  :k="labelKey"
@@ -339,186 +357,157 @@ export default {
339
357
  <span
340
358
  v-if="requiredField"
341
359
  class="required"
360
+ :aria-hidden="true"
342
361
  >*</span>
343
362
  </label>
344
363
  </div>
345
- <!-- label -->
346
- <div
347
- :id="hasLabel ? labeledSelectLabelId : undefined"
348
- ref="select"
349
- class="labeled-select"
350
- :class="[
351
- $attrs.class,
352
- {
353
- disabled: isView || disabled,
354
- focused,
355
- [mode]: true,
356
- [status]: status,
357
- taggable: $attrs.taggable,
358
- taggable: $attrs.multiple,
359
- hoverable: hoverTooltip,
360
- 'compact-input': isCompact,
361
- 'no-label': !hasLabel
362
- }
363
- ]"
364
- :tabindex="isView || disabled ? -1 : 0"
365
- role="combobox"
366
- :aria-expanded="isOpen"
367
- :aria-describedby="$attrs['aria-describedby'] || undefined"
368
- :aria-required="requiredField"
369
- @click="clickSelect"
370
- @keydown.self.enter="clickSelect"
371
- @keydown.self.down.prevent="clickSelect"
372
- @keydown.self.space.prevent="clickSelect"
364
+ <v-select
365
+ ref="select-input"
366
+ v-bind="filteredAttrs"
367
+ class="inline"
368
+ :close-on-select="false"
369
+ :append-to-body="appendToBody"
370
+ :calculate-position="positionDropdown"
371
+ :class="{ 'no-label': !(label || '').length}"
372
+ :clearable="clearable"
373
+ :disabled="isView || disabled || loading"
374
+ :get-option-key="getOptionKey"
375
+ :get-option-label="(opt) => getOptionLabel(opt)"
376
+ :label="optionLabel"
377
+ :options="_options"
378
+ :map-keydown="mappedKeys"
379
+ :placeholder="placeholder"
380
+ :reduce="(x) => reduce(x)"
381
+ :filterable="isFilterable"
382
+ :searchable="isSearchable"
383
+ :selectable="selectable"
384
+ :modelValue="value != null && !loading ? value : ''"
385
+ :dropdown-should-open="dropdownShouldOpen"
386
+ :tabindex="-1"
387
+ :uid="generatedUid"
388
+ :aria-label="'-'"
389
+ @update:modelValue="$emit('selecting', $event); $emit('update:value', $event)"
390
+ @search:blur="onBlur"
391
+ @search:focus="onFocus"
392
+ @search="onSearch"
393
+ @open="onOpen"
394
+ @close="onClose"
395
+ @option:selecting="closeOnSelecting"
396
+ @option:selected="close"
397
+ @option:deselecting="$emit('deselecting', $event)"
398
+ @keydown.enter.stop
373
399
  >
374
- <v-select
375
- ref="select-input"
376
- v-bind="filteredAttrs"
377
- class="inline"
378
- :close-on-select="false"
379
- :append-to-body="appendToBody"
380
- :calculate-position="positionDropdown"
381
- :class="{ 'no-label': !(label || '').length}"
382
- :clearable="clearable"
383
- :disabled="isView || disabled || loading"
384
- :get-option-key="getOptionKey"
385
- :get-option-label="(opt) => getOptionLabel(opt)"
386
- :label="optionLabel"
387
- :options="_options"
388
- :map-keydown="mappedKeys"
389
- :placeholder="placeholder"
390
- :reduce="(x) => reduce(x)"
391
- :filterable="isFilterable"
392
- :searchable="isSearchable"
393
- :selectable="selectable"
394
- :modelValue="value != null && !loading ? value : ''"
395
- :dropdown-should-open="dropdownShouldOpen"
396
- :tabindex="-1"
397
- :uid="generatedUid"
398
- :aria-label="'-'"
399
- @update:modelValue="$emit('selecting', $event); $emit('update:value', $event)"
400
- @search:blur="onBlur"
401
- @search:focus="onFocus"
402
- @search="onSearch"
403
- @open="onOpen"
404
- @close="onClose"
405
- @option:selecting="closeOnSelecting"
406
- @option:selected="close"
407
- @option:deselecting="$emit('deselecting', $event)"
408
- @keydown.enter.stop
409
- >
410
- <template #option="option">
411
- <template v-if="showTagPrompts">
412
- <div class="only-user-opts">
413
- {{ t('labeledSelect.pressEnter', {input:getOptionLabel(option.label)}) }}
414
- </div>
415
- </template>
416
- <template v-else-if="option.kind === 'group'">
417
- <div class="vs__option-kind-group">
418
- <i
419
- v-if="option.icon"
420
- class="icon"
421
- :class="{ [option.icon]: true}"
422
- />
423
- <b>{{ getOptionLabel(option) }}</b>
424
- <div v-if="option.badge">
425
- {{ option.badge }}
426
- </div>
427
- </div>
428
- </template>
429
- <template v-else-if="option.kind === 'divider'">
430
- <hr role="none">
431
- </template>
432
- <template v-else-if="option.kind === 'highlighted'">
433
- <div class="option-kind-highlighted">
434
- {{ option.label }}
435
- </div>
436
- </template>
437
- <div
438
- v-else
439
- class="vs__option-kind"
440
- :class="{ 'has-icon' : hasGroupIcon}"
441
- @mousedown="(e) => onClickOption(option, e)"
442
- >
443
- {{ getOptionLabel(option) }}
400
+ <template #option="option">
401
+ <template v-if="showTagPrompts">
402
+ <div class="only-user-opts">
403
+ {{ t('labeledSelect.pressEnter', {input:getOptionLabel(option.label)}) }}
404
+ </div>
405
+ </template>
406
+ <template v-else-if="option.kind === 'group'">
407
+ <div class="vs__option-kind-group">
444
408
  <i
445
- v-if="option.error"
446
- class="icon icon-warning pull-right"
447
- style="font-size: 20px;"
409
+ v-if="option.icon"
410
+ class="icon"
411
+ :class="{ [option.icon]: true}"
448
412
  />
413
+ <b>{{ getOptionLabel(option) }}</b>
414
+ <div v-if="option.badge">
415
+ {{ option.badge }}
416
+ </div>
449
417
  </div>
450
418
  </template>
451
- <!-- Pass down templates provided by the caller -->
452
- <template
453
- v-for="(_, slot) of $slots"
454
- :key="slot"
455
- #[slot]="scope"
419
+ <template v-else-if="option.kind === 'divider'">
420
+ <hr role="none">
421
+ </template>
422
+ <template v-else-if="option.kind === 'highlighted'">
423
+ <div class="option-kind-highlighted">
424
+ {{ option.label }}
425
+ </div>
426
+ </template>
427
+ <div
428
+ v-else
429
+ class="vs__option-kind"
430
+ :class="{ 'has-icon' : hasGroupIcon}"
431
+ @mousedown="(e) => onClickOption(option, e)"
456
432
  >
457
- <slot
458
- :name="slot"
459
- v-bind="scope"
433
+ {{ getOptionLabel(option) }}
434
+ <i
435
+ v-if="option.error"
436
+ class="icon icon-warning pull-right"
437
+ style="font-size: 20px;"
460
438
  />
461
- </template>
439
+ </div>
440
+ </template>
441
+ <!-- Pass down templates provided by the caller -->
442
+ <template
443
+ v-for="(_, slot) of $slots"
444
+ :key="slot"
445
+ #[slot]="scope"
446
+ >
447
+ <slot
448
+ :name="slot"
449
+ v-bind="scope"
450
+ />
451
+ </template>
462
452
 
463
- <template #list-footer>
464
- <div
465
- v-if="canPaginate && totalResults && pages > 1"
466
- class="pagination-slot"
467
- >
468
- <div class="load-more">
469
- <i
470
- v-if="paginating"
471
- class="icon icon-spinner icon-spin"
472
- />
473
- <div v-else>
474
- <a
475
- v-if="canLoadMore"
476
- @click="loadMore"
477
- > {{ t('labelSelect.pagination.more') }}</a>
478
- </div>
453
+ <template #list-footer>
454
+ <div
455
+ v-if="canPaginate && totalResults && pages > 1"
456
+ class="pagination-slot"
457
+ >
458
+ <div class="load-more">
459
+ <i
460
+ v-if="paginating"
461
+ class="icon icon-spinner icon-spin"
462
+ />
463
+ <div v-else>
464
+ <a
465
+ v-if="canLoadMore"
466
+ @click="loadMore"
467
+ > {{ t('labelSelect.pagination.more') }}</a>
479
468
  </div>
469
+ </div>
480
470
 
481
- <div class="count">
482
- {{ optionCounts }}
483
- </div>
471
+ <div class="count">
472
+ {{ optionCounts }}
484
473
  </div>
485
- </template>
486
- <template #no-options="{ search }">
487
- <div class="no-options-slot">
488
- <template v-if="showTagPrompts">
489
- <span v-if="!searching">{{ t('labeledSelect.startTyping') }}</span>
490
- </template>
491
- <div
492
- v-else-if="paginating"
493
- class="paginating"
494
- >
495
- <i class="icon icon-spinner icon-spin" />
496
- </div>
497
- <template v-else-if="search">
498
- {{ t('labelSelect.noOptions.noMatch') }}
499
- </template>
500
- <template v-else>
501
- {{ t(noOptionsLabelKey) }}
502
- </template>
474
+ </div>
475
+ </template>
476
+ <template #no-options="{ search }">
477
+ <div class="no-options-slot">
478
+ <template v-if="showTagPrompts">
479
+ <span v-if="!searching">{{ t('labeledSelect.startTyping') }}</span>
480
+ </template>
481
+ <div
482
+ v-else-if="paginating"
483
+ class="paginating"
484
+ >
485
+ <i class="icon icon-spinner icon-spin" />
503
486
  </div>
504
- </template>
505
- </v-select>
506
- <i
507
- v-if="loading"
508
- class="icon icon-spinner icon-spin icon-lg"
509
- />
510
- <LabeledTooltip
511
- v-if="tooltip && !focused"
512
- :hover="hoverTooltip"
513
- :value="tooltip"
514
- :status="status"
515
- />
516
- <LabeledTooltip
517
- v-if="!!validationMessage"
518
- :hover="hoverTooltip"
519
- :value="validationMessage"
520
- />
521
- </div>
487
+ <template v-else-if="search">
488
+ {{ t('labelSelect.noOptions.noMatch') }}
489
+ </template>
490
+ <template v-else>
491
+ {{ t(noOptionsLabelKey) }}
492
+ </template>
493
+ </div>
494
+ </template>
495
+ </v-select>
496
+ <i
497
+ v-if="loading"
498
+ class="icon icon-spinner icon-spin icon-lg"
499
+ />
500
+ <LabeledTooltip
501
+ v-if="tooltip && !focused"
502
+ :hover="hoverTooltip"
503
+ :value="tooltip"
504
+ :status="status"
505
+ />
506
+ <LabeledTooltip
507
+ v-if="!!validationMessage"
508
+ :hover="hoverTooltip"
509
+ :value="validationMessage"
510
+ />
522
511
  </div>
523
512
  </template>
524
513
 
@@ -530,9 +519,6 @@ export default {
530
519
  // height when it is toggled from a LabeledInput to a
531
520
  // LabeledSelect.
532
521
  padding-bottom: 1px;
533
- &:deep() .vs__actions:after {
534
- padding-top: 10px;
535
- }
536
522
 
537
523
  &.no-label.compact-input {
538
524
  :deep() .vs__actions:after {
@@ -546,7 +532,7 @@ export default {
546
532
 
547
533
  &.no-label:not(.compact-input) {
548
534
  height: $input-height;
549
- padding-top: 0px;
535
+ padding-top: 4px;
550
536
 
551
537
  :deep() .vs__actions:after {
552
538
  top: 0;
@@ -633,7 +619,7 @@ export default {
633
619
  }
634
620
 
635
621
  :deep() .vs__selected-options {
636
- margin-top: 0px;
622
+ margin-top: -5px;
637
623
  }
638
624
 
639
625
  :deep() .v-select:not(.vs--single) {
@@ -645,7 +631,7 @@ export default {
645
631
  :deep() .vs__actions {
646
632
  &:after {
647
633
  position: relative;
648
- top: 0px;
634
+ top: -10px;
649
635
  }
650
636
  }
651
637
 
@@ -683,21 +669,73 @@ export default {
683
669
  }
684
670
  }
685
671
 
686
- // Styling for option group badge
687
- .vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group {
688
- display: flex;
689
- > b {
690
- flex: 1;
672
+ $icon-size: 18px;
673
+
674
+ // This represents the drop down area. Note - it might be attached to body and NOT the parent label select div
675
+ .vs__dropdown-menu {
676
+
677
+ // Styling for individual options
678
+ .vs__dropdown-option .vs__option-kind {
679
+ &-group {
680
+ display: flex;
681
+ align-items: center;
682
+
683
+ i { // icon
684
+ width: $icon-size;
685
+ }
686
+
687
+ > b { // group label
688
+ flex: 1;
689
+ }
690
+
691
+ > div { // badge
692
+ background-color: var(--primary);
693
+ border-radius: 4px;
694
+ color: var(--primary-text);
695
+ font-size: 12px;
696
+ height: 18px;
697
+ line-height: 18px;
698
+ margin-top: 1px;
699
+ padding: 0 10px;
700
+ }
701
+ }
702
+
703
+ &.has-icon {
704
+ padding-left: $icon-size;
705
+ }
691
706
  }
692
- > div {
693
- background-color: var(--primary);
694
- border-radius: 4px;
695
- color: var(--primary-text);
696
- font-size: 12px;
697
- height: 18px;
698
- line-height: 18px;
699
- margin-top: 1px;
700
- padding: 0 10px;
707
+
708
+ &.has-icon .vs__option-kind div{
709
+ padding-left: $icon-size;
710
+ }
711
+
712
+ .pagination-slot {
713
+ display: flex;
714
+ align-items: center;
715
+ justify-content: center;
716
+ position: relative;
717
+ margin-top: 5px;
718
+
719
+ .load-more {
720
+ display: flex;
721
+ align-items: center;
722
+ height: 19px;
723
+
724
+ a {
725
+ cursor: pointer;
726
+ }
727
+ }
728
+
729
+ .count {
730
+ position: absolute;
731
+ right: 10px;
732
+ }
733
+ }
734
+
735
+ .no-options-slot .paginating {
736
+ display: flex;
737
+ align-items: center;
738
+ justify-content: center;
701
739
  }
702
740
  }
703
741
 
@@ -725,13 +763,4 @@ export default {
725
763
  margin: 0px calc(-#{$input-padding-sm}/2);
726
764
  padding: 3px 20px;
727
765
  }
728
-
729
- .is-lable{
730
- width: 0px !important;
731
- }
732
-
733
- .gafanana-select{
734
- width: 300px;
735
-
736
- }
737
766
  </style>
@@ -162,9 +162,9 @@ export default {
162
162
  <div :class="defaultSectionClass">
163
163
  <div class="labels">
164
164
  <div class="labels__header">
165
- <div v-if="showLabelTitle">
165
+ <h3 v-if="showLabelTitle">
166
166
  <t k="labels.labels.title" />
167
- </div>
167
+ </h3>
168
168
  <ToggleSwitch
169
169
  v-if="showToggler"
170
170
  v-model:value="toggler"
@@ -172,7 +172,7 @@ export default {
172
172
  :on-label="t('labels.labels.show')"
173
173
  />
174
174
  </div>
175
- <p class="mb-20">
175
+ <p class="mt-10 mb-10">
176
176
  <t k="labels.labels.description" />
177
177
  </p>
178
178
  <div :class="columnsClass">
@@ -344,7 +344,7 @@ export default {
344
344
  <div
345
345
  :data-testid="`input-match-expression-key-${index}`"
346
346
  >
347
- <div v-if="isView" class="view-item-value">
347
+ <div v-if="isView">
348
348
  {{ row.key }}
349
349
  </div>
350
350
  <input
@@ -367,7 +367,7 @@ export default {
367
367
  <div
368
368
  :data-testid="`input-match-expression-operator-${index}`"
369
369
  >
370
- <div v-if="isView" class="view-item-value">
370
+ <div v-if="isView">
371
371
  {{ row.operator }}
372
372
  </div>
373
373
  <Select
@@ -393,7 +393,7 @@ export default {
393
393
  v-else
394
394
  :data-testid="`input-match-expression-values-${index}`"
395
395
  >
396
- <div v-if="isView" class="view-item-value">
396
+ <div v-if="isView">
397
397
  {{ row.values }}
398
398
  </div>
399
399
  <input
@@ -473,20 +473,14 @@ export default {
473
473
  justify-content: center;
474
474
  }
475
475
 
476
- .match-expression-header{
477
- margin-top: 24px;
478
- }
479
476
  .match-expression-row, .match-expression-header {
480
- /* display: grid; */
481
- display: flex;
482
- /* grid-template-columns: 1fr 1fr 1fr; */
477
+ display: grid;
478
+ grid-template-columns: 1fr 1fr 1fr;
483
479
  margin: 5px 0;
484
- /* grid-gap: $column-gutter; */
485
- grid-gap: 10px;
480
+ grid-gap: $column-gutter;
486
481
 
487
482
  & > LABEL {
488
483
  margin: 0;
489
- width: 400px;
490
484
  }
491
485
 
492
486
  &:not(.view){
@@ -495,15 +489,8 @@ export default {
495
489
  }
496
490
 
497
491
  .match-expression-row > div > input {
498
- min-height: 32px !important;
499
- border: solid var(--border-width) var(--input-border);
500
- padding: 4px 11px;
501
- width: 400px;
502
- &:hover{
503
- box-shadow: 0 4px 6px 0 var(--input-border-box-shadow);
504
- }
492
+ min-height: 40px !important;
505
493
  }
506
-
507
494
  .match-expression-row-matching, .match-expression-header-matching {
508
495
  grid-template-columns: 1fr 1fr 1fr 1fr;
509
496
 
@@ -511,8 +498,4 @@ export default {
511
498
  grid-template-columns: 1fr 1fr 1fr 1fr 100px;
512
499
  }
513
500
  }
514
-
515
- .view-item-value{
516
- width: 400px;
517
- }
518
501
  </style>
@@ -232,10 +232,11 @@ export default {
232
232
  v-else
233
233
  class="cluster-permissions-editor"
234
234
  >
235
- <div class="row mt-10 mb-20">
235
+ <div class="row mt-10">
236
236
  <div class="col span-12">
237
237
  <SelectPrincipal
238
238
  v-focus
239
+ class="mb-20"
239
240
  :mode="mode"
240
241
  :retain-selection="true"
241
242
  data-testid="cluster-member-select"
@@ -170,7 +170,7 @@ export default {
170
170
  >
171
171
  <template #column-headers>
172
172
  <div class="box mb-0">
173
- <div class="column-headers row" style="width: 95%;">
173
+ <div class="column-headers row">
174
174
  <div class="col span-6">
175
175
  <label class="text-label">{{ t('membershipEditor.user') }}</label>
176
176
  </div>