dashboard-shell-shell 3.0.5-test.5 → 3.0.5-test.50

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 (169) hide show
  1. package/assets/brand/csp/favicon.png +0 -0
  2. package/assets/icons/iconfont.css +4 -1
  3. package/assets/images/pl/dark/logo.png +0 -0
  4. package/assets/styles/all.scss +23 -3
  5. package/assets/styles/base/_variables.scss +5 -5
  6. package/assets/styles/fonts/_icons.scss +3 -2
  7. package/assets/styles/global/_button.scss +2 -2
  8. package/assets/styles/global/_form.scss +1 -0
  9. package/assets/styles/global/_select.scss +1 -1
  10. package/assets/styles/global/_tooltip.scss +5 -1
  11. package/assets/styles/themes/_light.scss +3 -3
  12. package/assets/styles/vendor/vue-select.scss +2 -1
  13. package/assets/translations/en-us.yaml +64 -0
  14. package/assets/translations/zh-hans.yaml +206 -21
  15. package/components/ButtonDropdown.vue +3 -1
  16. package/components/ClusterIconMenu.vue +1 -1
  17. package/components/CodeMirror.vue +6 -4
  18. package/components/ConsumptionGauge.vue +1 -1
  19. package/components/ContainerResourceLimit.vue +2 -2
  20. package/components/CruResource.vue +3 -2
  21. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +10 -7
  22. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  23. package/components/Drawer/ResourceDetailDrawer/index.vue +3 -2
  24. package/components/ExplorerMembers.vue +10 -1
  25. package/components/GlobalRoleBindings.vue +69 -114
  26. package/components/PodSecurityAdmission.vue +1 -1
  27. package/components/PromptRemove.vue +23 -1
  28. package/components/RelatedResources.vue +3 -0
  29. package/components/Resource/Detail/Metadata/index.vue +1 -0
  30. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  31. package/components/Resource/Detail/TitleBar/composables.ts +16 -1
  32. package/components/Resource/Detail/TitleBar/index.vue +42 -23
  33. package/components/ResourceDetail/Masthead/index.vue +1 -1
  34. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  35. package/components/ResourceDetail/Masthead/legacy.vue +8 -7
  36. package/components/ResourceDetail/legacy.vue +15 -15
  37. package/components/ResourceList/Masthead.vue +13 -17
  38. package/components/ResourceTable.vue +16 -0
  39. package/components/SideNav.vue +21 -21
  40. package/components/SingleClusterInfo.vue +2 -1
  41. package/components/SortableTable/THead.vue +46 -1
  42. package/components/SortableTable/index.vue +55 -19
  43. package/components/Tabbed/index.vue +7 -2
  44. package/components/auth/Principal.vue +16 -8
  45. package/components/auth/RoleDetailEdit.vue +11 -7
  46. package/components/breadcrumb/index.vue +15 -236
  47. package/components/form/ArrayList.vue +164 -147
  48. package/components/form/ArrayListGrouped.vue +5 -3
  49. package/components/form/ChangePassword.vue +1 -1
  50. package/components/form/ClusterAppearance.vue +4 -3
  51. package/components/form/Command.vue +4 -5
  52. package/components/form/Conditions.vue +15 -1
  53. package/components/form/Footer.vue +1 -0
  54. package/components/form/HealthCheck.vue +0 -2
  55. package/components/form/HookOption.vue +87 -58
  56. package/components/form/InputWithSelect.vue +8 -7
  57. package/components/form/KeyValue.vue +20 -2
  58. package/components/form/LabeledSelect.vue +3 -1
  59. package/components/form/Labels.vue +2 -2
  60. package/components/form/MatchExpressions.vue +4 -4
  61. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  62. package/components/form/Members/ClusterPermissionsEditor.vue +60 -41
  63. package/components/form/Members/MembershipEditor.vue +4 -4
  64. package/components/form/Members/ProjectMembershipEditor.vue +1 -1
  65. package/components/form/NameNsDescription.vue +4 -2
  66. package/components/form/Networking.vue +6 -9
  67. package/components/form/NodeAffinity.vue +29 -28
  68. package/components/form/PodAffinity.vue +23 -23
  69. package/components/form/Probe.vue +15 -11
  70. package/components/form/ProjectMemberEditor.vue +66 -48
  71. package/components/form/ResourceQuota/Namespace.vue +4 -4
  72. package/components/form/ResourceQuota/NamespaceRow.vue +11 -9
  73. package/components/form/ResourceQuota/Project.vue +4 -4
  74. package/components/form/ResourceQuota/ProjectRow.vue +36 -30
  75. package/components/form/ResourceSelector.vue +1 -1
  76. package/components/form/Security.vue +1 -3
  77. package/components/form/Select.vue +7 -1
  78. package/components/form/ServiceNameSelect.vue +2 -5
  79. package/components/form/ServicePorts.vue +149 -75
  80. package/components/form/Tolerations.vue +13 -9
  81. package/components/form/ValueFromResource.vue +110 -96
  82. package/components/formatter/WorkloadHealthScale.vue +4 -3
  83. package/components/nav/Group.vue +6 -0
  84. package/components/nav/Header.vue +17 -137
  85. package/components/nav/NamespaceFilter.vue +15 -21
  86. package/components/nav/TopLevelMenu.vue +99 -125
  87. package/components/nav/Type.vue +11 -3
  88. package/config/menuRouteMap.js +10 -0
  89. package/config/product/explorer.js +32 -10
  90. package/config/product/manager.js +28 -17
  91. package/config/router/navigation-guards/index.js +61 -3
  92. package/detail/node.vue +28 -23
  93. package/dialog/AddCustomBadgeDialog.vue +17 -9
  94. package/dialog/RollbackWorkloadDialog.vue +1 -1
  95. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  96. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  97. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  98. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  99. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  100. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  101. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  102. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  103. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  104. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  105. package/edit/configmap.vue +4 -0
  106. package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
  107. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  108. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  109. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  110. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  111. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  112. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  113. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  114. package/edit/persistentvolume/index.vue +3 -1
  115. package/edit/persistentvolumeclaim.vue +2 -0
  116. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +1 -1
  117. package/edit/secret/index.vue +2 -2
  118. package/edit/service.vue +4 -1
  119. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  120. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  121. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  122. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  123. package/edit/workload/Job.vue +31 -34
  124. package/edit/workload/Upgrading.vue +5 -5
  125. package/edit/workload/index.vue +19 -15
  126. package/edit/workload/storage/Mount.vue +1 -0
  127. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  128. package/edit/workload/storage/azureDisk.vue +14 -10
  129. package/edit/workload/storage/azureFile.vue +9 -7
  130. package/edit/workload/storage/csi/index.vue +6 -9
  131. package/edit/workload/storage/emptyDir.vue +7 -5
  132. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  133. package/edit/workload/storage/hostPath.vue +7 -5
  134. package/edit/workload/storage/nfs.vue +8 -6
  135. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  136. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  137. package/edit/workload/storage/secret.vue +9 -6
  138. package/edit/workload/storage/vsphereVolume.vue +11 -7
  139. package/initialize/app-extended.js +7 -1
  140. package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +8 -6
  141. package/mixins/create-edit-view/impl.js +10 -0
  142. package/models/provisioning.cattle.io.cluster.js +19 -18
  143. package/models/workload.js +2 -2
  144. package/package.json +1 -1
  145. package/pages/account/index.vue +96 -115
  146. package/pages/auth/login.vue +1 -1
  147. package/pages/auth/setup.vue +36 -17
  148. package/pages/c/_cluster/auth/roles/index.vue +65 -8
  149. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  150. package/pages/c/_cluster/explorer/index.vue +2 -1
  151. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  152. package/pages/home.vue +55 -13
  153. package/pkg/tsconfig.json +9 -9
  154. package/pkg/vue.config.js +1 -1
  155. package/plugins/dashboard-store/actions.js +1 -1
  156. package/plugins/dashboard-store/resource-class.js +28 -27
  157. package/rancher-components/Banner/Banner.vue +14 -2
  158. package/rancher-components/Form/Radio/RadioGroup.vue +9 -1
  159. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
  160. package/scripts/build-pkg.sh +18 -23
  161. package/scripts/publish-shell.sh +1 -1
  162. package/store/i18n.js +1 -0
  163. package/store/type-map.js +1 -3
  164. package/types/shell/index.d.ts +12 -30
  165. package/utils/error.js +26 -4
  166. package/utils/errorTranslate.json +390 -6
  167. package/utils/errorTranslateNew.json +39 -0
  168. package/utils/roleFiltering.js +33 -0
  169. package/vue.config.js +1 -1
@@ -204,6 +204,7 @@ export default {
204
204
  <div
205
205
  :id="id"
206
206
  class="hs-popover__content"
207
+ style="width: auto;padding-right: 10px;"
207
208
  :class="{expanded, [id]:true}"
208
209
  >
209
210
  <div>
@@ -212,14 +213,14 @@ export default {
212
213
  :key="i"
213
214
  class="counts"
214
215
  >
215
- <span class="counts-label">{{ obj.label }}</span>
216
- <span>{{ obj.value }}</span>
216
+ <span class="counts-label" style="white-space: normal;">{{ obj.label }}</span>
217
+ <span style="white-space: normal;">{{ obj.value }}</span>
217
218
  </div>
218
219
  <div
219
220
  v-if="canScale"
220
221
  class="text-center scale"
221
222
  >
222
- <span>{{ t('tableHeaders.scale') }} </span>
223
+ <span style="white-space: nowrap;margin-right: 5px;">{{ t('tableHeaders.scale') }} </span>
223
224
  <PlusMinus
224
225
  :value="row.spec.replicas"
225
226
  :disabled="disabled"
@@ -1,5 +1,7 @@
1
1
  <script>
2
2
  import Type from '@shell/components/nav/Type';
3
+ import { menuRouteMap } from '@shell/config/menuRouteMap';
4
+
3
5
  export default {
4
6
  name: 'Group',
5
7
 
@@ -178,6 +180,7 @@ export default {
178
180
 
179
181
  let parentPath = '';
180
182
  const cluster = this.$route.params?.cluster;
183
+ const resource = this.$route?.params?.resource || ''
181
184
 
182
185
  // Where we use nested route configuration, consider the parent route when trying to identify the nav location
183
186
  if (this.$route.matched.length > 1) {
@@ -201,6 +204,9 @@ export default {
201
204
  return true;
202
205
  } else if (parentPath && itemFullPath === parentPath) {
203
206
  return true;
207
+ // === 新增映射逻辑 ===
208
+ } else if (menuRouteMap[item.name] && menuRouteMap[item.name].includes(resource)) {
209
+ return true;
204
210
  }
205
211
  }
206
212
  }
@@ -425,128 +425,7 @@ export default {
425
425
  <TopLevelMenu v-if="isRancherInHarvester || isMultiCluster || !isSingleProduct" />
426
426
  </div>
427
427
 
428
- <!-- <div
429
- class="menu-spacer"
430
- :class="{'isSingleProduct': isSingleProduct }"
431
- >
432
- <router-link
433
- v-if="isSingleProduct && !isRancherInHarvester"
434
- :to="singleProductLogoRoute"
435
- role="link"
436
- :alt="t('branding.logos.home')"
437
- >
438
- <BrandImage
439
- v-if="isSingleProduct.supportCustomLogo && isHarvester"
440
- class="side-menu-logo"
441
- file-name="harvester.svg"
442
- :support-custom-logo="true"
443
- :alt="t('branding.logos.label')"
444
- />
445
- <img
446
- v-else
447
- class="side-menu-logo"
448
- :src="isSingleProduct.logo"
449
- :alt="t('branding.logos.label')"
450
- >
451
- </router-link>
452
- </div>
453
-
454
- <div
455
- v-if="!simple"
456
- ref="product"
457
- class="product"
458
- >
459
- <div
460
- v-if="currentProduct && currentProduct.showClusterSwitcher"
461
- v-clean-tooltip="nameTooltip"
462
- class="cluster cluster-clipped"
463
- >
464
- <div
465
- v-if="isSingleProduct && !isRancherInHarvester"
466
- class="product-name"
467
- >
468
- <template v-if="isSingleProduct.supportCustomLogo">
469
- {{ vendor }}
470
- </template>
471
- <template v-else>
472
- {{ t(isSingleProduct.productNameKey) }}
473
- </template>
474
- </div>
475
- <template v-else>
476
- <ClusterProviderIcon
477
- v-if="currentCluster"
478
- :cluster="currentCluster"
479
- class="mr-10"
480
- :alt="t('branding.logos.label')"
481
- />
482
- <div
483
- v-if="currentCluster"
484
- ref="clusterName"
485
- class="cluster-name"
486
- >
487
- {{ currentCluster.spec.displayName }}
488
- </div>
489
- <ClusterBadge
490
- v-if="currentCluster"
491
- :cluster="currentCluster"
492
- class="ml-10"
493
- :alt="t('branding.logos.label')"
494
- />
495
- <div
496
- v-if="!currentCluster"
497
- class="simple-title"
498
- >
499
- <BrandImage
500
- class="side-menu-logo-img"
501
- file-name="rancher-logo.svg"
502
- :alt="t('branding.logos.label')"
503
- />
504
- </div>
505
- </template>
506
- </div>
507
- <div
508
- v-if="currentProduct && !currentProduct.showClusterSwitcher"
509
- class="cluster"
510
- >
511
- <img
512
- v-if="currentProduct.iconHeader"
513
- v-bind="$attrs"
514
- :src="currentProduct.iconHeader"
515
- class="cluster-os-logo mr-10"
516
- style="width: 44px; height: 36px;"
517
- :alt="t('branding.logos.label')"
518
- >
519
- <div class="product-name">
520
- {{ prod }}
521
- </div>
522
- </div>
523
- </div>
524
-
525
- <div
526
- v-else
527
- class="simple-title"
528
- >
529
- <div
530
- v-if="isSingleProduct"
531
- class="product-name"
532
- >
533
- {{ t(isSingleProduct.productNameKey) }}
534
- </div>
535
-
536
- <div
537
- v-else
538
- class="side-menu-logo"
539
- >
540
- <BrandImage
541
- class="side-menu-logo-img"
542
- data-testid="header__brand-img"
543
- file-name="rancher-logo.svg"
544
- :alt="t('branding.logos.label')"
545
- />
546
- </div>
547
- </div> -->
548
-
549
- <!-- ===== 左侧 logo 区域 ===== -->
428
+ <!-- ===== 左侧 logo 区域 ===== -->
550
429
  <div class="menu-spacer">
551
430
  <!-- 如果是单产品模式且不是 RancherInHarvester,就显示 logo 路由跳转 -->
552
431
  <router-link
@@ -593,7 +472,7 @@ export default {
593
472
  <template v-if="currentProduct && currentProduct.showClusterSwitcher">
594
473
 
595
474
  <!-- 导入 YAML 按钮 -->
596
- <button
475
+ <!-- <button
597
476
  v-if="showImportYaml"
598
477
  v-clean-tooltip="t('nav.import')"
599
478
  :disabled="!importEnabled"
@@ -606,9 +485,9 @@ export default {
606
485
  @click="openImport()"
607
486
  >
608
487
  <i class="icon icon-upload icon-lg" />
609
- </button>
488
+ </button> -->
610
489
 
611
- <button
490
+ <!-- <button
612
491
  v-if="showKubeShell"
613
492
  id="btn-kubectl"
614
493
  v-clean-tooltip="t('nav.shellShortcut', {key: shellShortcut})"
@@ -623,10 +502,10 @@ export default {
623
502
  @click="currentCluster.openShell()"
624
503
  >
625
504
  <i class="icon icon-terminal icon-lg" />
626
- </button>
505
+ </button> -->
627
506
 
628
507
  <!-- 下载 kubeconfig 按钮 -->
629
- <button
508
+ <!-- <button
630
509
  v-if="showKubeConfig"
631
510
  v-clean-tooltip="t('nav.kubeconfig.download')"
632
511
  :disabled="!kubeConfigEnabled"
@@ -639,10 +518,10 @@ export default {
639
518
  @click="currentCluster.downloadKubeConfig()"
640
519
  >
641
520
  <i class="icon icon-file icon-lg" />
642
- </button>
521
+ </button> -->
643
522
 
644
523
  <!-- 复制 kubeconfig 按钮 -->
645
- <button
524
+ <!-- <button
646
525
  v-if="showCopyConfig"
647
526
  v-clean-tooltip="t('nav.kubeconfig.copy')"
648
527
  :disabled="!kubeConfigEnabled"
@@ -655,22 +534,21 @@ export default {
655
534
  @click="copyKubeConfig($event)"
656
535
  >
657
536
 
658
- <!-- 点击复制后显示对勾 -->
659
537
  <i
660
538
  v-if="kubeConfigCopying"
661
539
  class="icon icon-checkmark icon-lg"
662
540
  />
663
541
 
664
- <!-- 未复制状态显示复制图标 -->
665
542
  <i
666
543
  v-else
667
544
  class="icon icon-copy icon-lg"
668
545
  />
669
- </button>
546
+ </button> -->
670
547
  </template>
671
548
 
672
549
  <!-- 资源搜索按钮 -->
673
- <button
550
+ <!-- 2025/9/30 隐藏 -->
551
+ <!-- <button
674
552
  v-if="showSearch"
675
553
  id="header-btn-search"
676
554
  v-clean-tooltip="t('nav.resourceSearch.toolTip', {key: searchShortcut})"
@@ -685,7 +563,7 @@ export default {
685
563
  @click="openSearch()"
686
564
  >
687
565
  <i class="icon icon-search icon-lg" />
688
- </button>
566
+ </button> -->
689
567
 
690
568
  <!-- 搜索弹窗 -->
691
569
  <app-modal
@@ -706,9 +584,10 @@ export default {
706
584
  v-if="extensionHeaderActions.length"
707
585
  class="header-buttons"
708
586
  >
587
+ <template v-for="action, i in extensionHeaderActions" :key="`${action.label}${i}`">
588
+ <!-- kubectl-explain.action | 2025/9/30隐藏 -->
709
589
  <button
710
- v-for="action, i in extensionHeaderActions"
711
- :key="`${action.label}${i}`"
590
+ v-if="action.labelKey !== 'kubectl-explain.action'"
712
591
  v-clean-tooltip="handleExtensionTooltip(action)"
713
592
  v-shortkey="action.shortcutKey"
714
593
  :disabled="action.enabled ? !action.enabled(ctx) : false"
@@ -728,6 +607,7 @@ export default {
728
607
  color="header"
729
608
  />
730
609
  </button>
610
+ </template>
731
611
  </div>
732
612
 
733
613
  <!-- ===== 用户菜单(右上角头像 + 下拉) ===== -->
@@ -1021,7 +901,7 @@ export default {
1021
901
  border: none;
1022
902
  background: var(--header-btn-bg);
1023
903
  color: var(--header-btn-text);
1024
- padding: 0 15px 0 10px;
904
+ padding: 0 10px 0 10px;
1025
905
  line-height: 32px;
1026
906
  min-height: 32px;
1027
907
  width: 30px;
@@ -748,7 +748,7 @@ export default {
748
748
  data-testid="namespaces-values-label"
749
749
  class="ns-values"
750
750
  >
751
- {{ value[0].label }}
751
+ {{ value[0].label.replace('harvester', 'cloud') }}
752
752
  </div>
753
753
 
754
754
  <!-- All the selected namespaces -->
@@ -774,20 +774,18 @@ export default {
774
774
  :data-testid="`namespaces-value-${j}`"
775
775
  class="ns-value"
776
776
  >
777
- <div>{{ ns.label }}</div>
777
+ <div>{{ ns.label.replace('harvester', 'cloud') }}</div>
778
778
  <!-- block user from removing the last selection if ns forced filtering is on -->
779
- <RcButton
779
+ <i
780
780
  v-if="!namespaceFilterMode || value.length > 1"
781
781
  small
782
782
  ghost
783
- class="ns-chip-button"
783
+ class="ns-chip-button icon icon-close"
784
784
  :data-testid="`namespaces-values-close-${j}`"
785
785
  @click="removeOption(ns, $event)"
786
786
  @keydown.enter.space.stop="removeOption(ns, $event)"
787
787
  @mousedown="handleValueMouseDown(ns, $event)"
788
- >
789
- <i class="icon icon-close" />
790
- </RcButton>
788
+ />
791
789
  </div>
792
790
  </div>
793
791
 
@@ -836,19 +834,15 @@ export default {
836
834
  @click="focusFilter"
837
835
  @keydown="inputKeyHandler($event)"
838
836
  >
839
- <RcButton
837
+ <i
840
838
  v-if="hasFilter"
841
839
  small
842
840
  ghost
843
- class="ns-filter-clear"
841
+ class="ns-filter-clear icon icon-close"
844
842
  :aria-label="t('namespaceFilter.button.clearFilter')"
845
843
  @click="clearFilter"
846
844
  @keydown.enter.stop="clearFilter"
847
- >
848
- <i
849
- class="icon icon-close"
850
- />
851
- </RcButton>
845
+ />
852
846
  </div>
853
847
  <div
854
848
  v-if="namespaceFilterMode"
@@ -859,7 +853,7 @@ export default {
859
853
  class="icon icon-info"
860
854
  />
861
855
  </div>
862
- <RcButton
856
+ <div
863
857
  v-else
864
858
  small
865
859
  ghost
@@ -871,8 +865,9 @@ export default {
871
865
  >
872
866
  <i
873
867
  class="icon icon-close"
868
+ @click="clear()"
874
869
  />
875
- </RcButton>
870
+ </div>
876
871
  </div>
877
872
  <div class="ns-divider mt-0" />
878
873
  <div
@@ -889,12 +884,12 @@ export default {
889
884
  v-for="(opt, i) in cachedFiltered"
890
885
  :key="opt.id"
891
886
  >
892
- <hr
887
+ <div
893
888
  v-if="opt.kind === NAMESPACE_FILTER_KINDS.DIVIDER"
894
889
  role="separator"
895
890
  aria-orientation="horizontal"
896
891
  class="ns-divider"
897
- >
892
+ />
898
893
  <div
899
894
  v-else
900
895
  :id="opt.elementId"
@@ -919,7 +914,7 @@ export default {
919
914
  v-if="opt.kind === NAMESPACE_FILTER_KINDS.NAMESPACE"
920
915
  class="icon icon-folder"
921
916
  />
922
- <div>{{ opt.label }}</div>
917
+ <div>{{ opt.label.replace('harvester', 'cloud') }}</div>
923
918
  <i
924
919
  v-if="opt.selected"
925
920
  class="icon icon-checkmark"
@@ -949,7 +944,6 @@ export default {
949
944
  .ns-filter {
950
945
  width: 280px;
951
946
  display: inline-block;
952
- border-radius: var(--border-radius);
953
947
 
954
948
  .ns-glass {
955
949
  top: 0;
@@ -968,9 +962,9 @@ export default {
968
962
  }
969
963
 
970
964
  .ns-clear {
971
- padding: 0 5px;
972
965
  &:hover {
973
966
  color: var(--primary);
967
+ cursor: pointer;
974
968
  }
975
969
  }
976
970