@rancher/shell 3.0.8-rc.1 → 3.0.8-rc.12

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 (345) hide show
  1. package/assets/brand/suse/banner.svg +1 -0
  2. package/assets/brand/suse/dark/banner.svg +1 -0
  3. package/assets/brand/suse/dark/login-landscape.svg +1 -0
  4. package/assets/brand/suse/dark/rancher-logo.svg +1 -1
  5. package/assets/brand/suse/favicon.png +0 -0
  6. package/assets/brand/suse/login-landscape.svg +1 -0
  7. package/assets/brand/suse/metadata.json +11 -1
  8. package/assets/brand/suse/rancher-logo.svg +1 -1
  9. package/assets/fonts/suse/suse-v2-latin-300.woff +0 -0
  10. package/assets/fonts/suse/suse-v2-latin-300.woff2 +0 -0
  11. package/assets/fonts/suse/suse-v2-latin-600.woff +0 -0
  12. package/assets/fonts/suse/suse-v2-latin-600.woff2 +0 -0
  13. package/assets/fonts/suse/suse-v2-latin-700.woff +0 -0
  14. package/assets/fonts/suse/suse-v2-latin-700.woff2 +0 -0
  15. package/assets/fonts/suse/suse-v2-latin-800.woff +0 -0
  16. package/assets/fonts/suse/suse-v2-latin-800.woff2 +0 -0
  17. package/assets/fonts/suse/suse-v2-latin-regular.woff +0 -0
  18. package/assets/fonts/suse/suse-v2-latin-regular.woff2 +0 -0
  19. package/assets/images/content/README.md +5 -0
  20. package/assets/images/content/cloud-native.svg +84 -0
  21. package/assets/images/content/dark/cloud-native.svg +21 -0
  22. package/assets/images/content/dark/shield.svg +59 -0
  23. package/assets/images/content/dark/suse.svg +10 -0
  24. package/assets/images/content/shield.svg +59 -0
  25. package/assets/images/content/suse.svg +10 -0
  26. package/assets/styles/base/_typography.scss +1 -0
  27. package/assets/styles/fonts/_fontstack.scss +53 -1
  28. package/assets/styles/global/_cards.scss +0 -3
  29. package/assets/styles/global/_layout.scss +21 -35
  30. package/assets/styles/themes/_dark.scss +1 -1
  31. package/assets/styles/themes/_light.scss +1 -1
  32. package/assets/styles/themes/_modern.scss +11 -3
  33. package/assets/styles/themes/_suse.scss +116 -24
  34. package/assets/translations/en-us.yaml +94 -10
  35. package/components/AutoscalerCard.vue +113 -0
  36. package/components/AutoscalerTab.vue +94 -0
  37. package/components/BackLink.vue +8 -0
  38. package/components/BannerGraphic.vue +36 -21
  39. package/components/BrandImage.vue +17 -6
  40. package/components/ClusterIconMenu.vue +1 -1
  41. package/components/ClusterProviderIcon.vue +1 -1
  42. package/components/Cron/CronExpressionEditor.vue +1 -1
  43. package/components/Cron/CronExpressionEditorModal.vue +1 -1
  44. package/components/Drawer/Chrome.vue +2 -6
  45. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +4 -9
  46. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +3 -8
  47. package/components/Drawer/ResourceDetailDrawer/composables.ts +3 -4
  48. package/components/Drawer/ResourceDetailDrawer/index.vue +4 -9
  49. package/components/Drawer/ResourceDetailDrawer/types.ts +17 -0
  50. package/components/Drawer/types.ts +3 -0
  51. package/components/DynamicContent/DynamicContentBanner.vue +102 -0
  52. package/components/DynamicContent/DynamicContentCloseButton.vue +42 -0
  53. package/components/DynamicContent/DynamicContentIcon.vue +132 -0
  54. package/components/DynamicContent/DynamicContentPanel.vue +112 -0
  55. package/components/DynamicContent/content.ts +78 -0
  56. package/components/EmberPage.vue +1 -1
  57. package/components/IconOrSvg.vue +2 -2
  58. package/components/PaginatedResourceTable.vue +2 -6
  59. package/components/PopoverCard.vue +192 -0
  60. package/components/Questions/__tests__/index.test.ts +159 -0
  61. package/components/Resource/Detail/CopyToClipboard.vue +4 -1
  62. package/components/Resource/Detail/FetchLoader/composables.ts +18 -4
  63. package/components/Resource/Detail/Metadata/Annotations/index.vue +2 -2
  64. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +1 -1
  65. package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +4 -0
  66. package/components/Resource/Detail/Metadata/KeyValueRow.vue +1 -1
  67. package/components/Resource/Detail/Metadata/Labels/index.vue +2 -2
  68. package/components/Resource/Detail/Metadata/composables.ts +9 -9
  69. package/components/Resource/Detail/Metadata/index.vue +3 -3
  70. package/components/Resource/Detail/ResourcePopover/ResourcePopoverCard.vue +2 -19
  71. package/components/Resource/Detail/ResourcePopover/__tests__/ResourcePopoverCard.test.ts +0 -29
  72. package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +132 -150
  73. package/components/Resource/Detail/ResourcePopover/index.vue +54 -159
  74. package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +0 -2
  75. package/components/Resource/Detail/TitleBar/composables.ts +2 -1
  76. package/components/Resource/Detail/TitleBar/index.vue +10 -6
  77. package/components/Resource/Detail/composables.ts +12 -0
  78. package/components/ResourceDetail/Masthead/latest.vue +29 -0
  79. package/components/ResourceDetail/index.vue +4 -1
  80. package/components/ResourceList/Masthead.vue +1 -1
  81. package/components/ResourceTable.vue +1 -1
  82. package/components/SortableTable/index.vue +2 -1
  83. package/components/Tabbed/__tests__/index.test.ts +86 -0
  84. package/components/{nav/WindowManager → Window}/ContainerLogs.vue +1 -1
  85. package/components/{nav/WindowManager → Window}/ContainerLogsActions.vue +1 -0
  86. package/components/{nav/WindowManager → Window}/__tests__/ContainerLogs.test.ts +1 -1
  87. package/components/{nav/WindowManager → Window}/__tests__/ContainerShell.test.ts +2 -2
  88. package/components/__tests__/AutoscalerCard.test.ts +154 -0
  89. package/components/__tests__/AutoscalerTab.test.ts +125 -0
  90. package/components/__tests__/PopoverCard.test.ts +204 -0
  91. package/components/auth/SelectPrincipal.vue +24 -6
  92. package/components/auth/__tests__/SelectPrincipal.test.ts +119 -0
  93. package/components/auth/login/ldap.vue +3 -3
  94. package/components/form/NodeScheduling.vue +2 -2
  95. package/components/formatter/Autoscaler.vue +97 -0
  96. package/components/formatter/InternalExternalIP.vue +198 -24
  97. package/components/formatter/__tests__/Autoscaler.test.ts +156 -0
  98. package/components/formatter/__tests__/InternalExternalIP.test.ts +133 -0
  99. package/components/google/util/__tests__/formatter.test.ts +47 -0
  100. package/components/google/util/formatter.ts +5 -2
  101. package/components/nav/Group.vue +21 -5
  102. package/components/nav/Header.vue +37 -17
  103. package/components/nav/NamespaceFilter.vue +13 -1
  104. package/components/nav/NotificationCenter/index.vue +2 -1
  105. package/components/nav/TopLevelMenu.helper.ts +16 -6
  106. package/components/nav/TopLevelMenu.vue +4 -2
  107. package/components/nav/Type.vue +8 -3
  108. package/components/{DraggableZone.vue → nav/WindowManager/PinArea.vue} +47 -80
  109. package/components/nav/WindowManager/composables/useComponentsMount.ts +70 -0
  110. package/components/nav/WindowManager/composables/useDimensionsHandler.ts +105 -0
  111. package/components/nav/WindowManager/composables/useDragHandler.ts +99 -0
  112. package/components/nav/WindowManager/composables/usePanelHandler.ts +72 -0
  113. package/components/nav/WindowManager/composables/usePanelsHandler.ts +14 -0
  114. package/components/nav/WindowManager/composables/useResizeHandler.ts +167 -0
  115. package/components/nav/WindowManager/composables/useTabsHandler.ts +51 -0
  116. package/components/nav/WindowManager/constants.ts +23 -0
  117. package/components/nav/WindowManager/index.vue +61 -575
  118. package/components/nav/WindowManager/panels/HorizontalPanel.vue +265 -0
  119. package/components/nav/WindowManager/panels/TabBodyContainer.vue +39 -0
  120. package/components/nav/WindowManager/panels/VerticalPanel.vue +308 -0
  121. package/components/nav/__tests__/Type.test.ts +59 -0
  122. package/components/templates/default.vue +4 -40
  123. package/components/templates/home.vue +31 -5
  124. package/components/templates/plain.vue +30 -4
  125. package/components/templates/standalone.vue +1 -1
  126. package/composables/useI18n.ts +10 -1
  127. package/composables/useInterval.ts +15 -0
  128. package/config/__test__/uiplugins.test.ts +309 -0
  129. package/config/labels-annotations.js +9 -1
  130. package/config/product/explorer.js +3 -1
  131. package/config/product/manager.js +20 -9
  132. package/config/router/navigation-guards/clusters.js +3 -3
  133. package/config/router/navigation-guards/products.js +1 -1
  134. package/config/router/routes.js +10 -2
  135. package/config/settings.ts +2 -1
  136. package/config/store.js +4 -2
  137. package/config/table-headers.js +8 -0
  138. package/config/types.js +9 -0
  139. package/config/uiplugins.js +46 -2
  140. package/config/version.js +1 -1
  141. package/core/__test__/extension-manager-impl.test.js +236 -0
  142. package/core/extension-manager-impl.js +21 -4
  143. package/core/plugin-helpers.ts +4 -2
  144. package/core/plugins-loader.js +2 -2
  145. package/core/types-provisioning.ts +8 -1
  146. package/detail/pod.vue +1 -0
  147. package/detail/provisioning.cattle.io.cluster.vue +19 -7
  148. package/dialog/DeveloperLoadExtensionDialog.vue +13 -4
  149. package/dialog/RollbackWorkloadDialog.vue +2 -5
  150. package/dialog/SearchDialog.vue +1 -0
  151. package/directives/ui-context.ts +103 -0
  152. package/edit/__tests__/fleet.cattle.io.helmop.test.ts +2 -2
  153. package/edit/auth/__tests__/oidc.test.ts +26 -0
  154. package/edit/auth/github.vue +5 -0
  155. package/edit/auth/oidc.vue +5 -1
  156. package/edit/autoscaling.horizontalpodautoscaler/index.vue +1 -0
  157. package/edit/cloudcredential.vue +1 -1
  158. package/edit/configmap.vue +1 -0
  159. package/edit/constraints.gatekeeper.sh.constraint/index.vue +1 -0
  160. package/edit/fleet.cattle.io.gitrepo.vue +0 -10
  161. package/edit/fleet.cattle.io.helmop.vue +6 -6
  162. package/edit/helm.cattle.io.projecthelmchart.vue +1 -0
  163. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +1 -0
  164. package/edit/logging-flow/index.vue +1 -0
  165. package/edit/logging.banzaicloud.io.output/index.vue +1 -0
  166. package/edit/management.cattle.io.fleetworkspace.vue +1 -1
  167. package/edit/management.cattle.io.project.vue +1 -0
  168. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +4 -1
  169. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +2 -1
  170. package/edit/monitoring.coreos.com.prometheusrule/index.vue +1 -0
  171. package/edit/monitoring.coreos.com.receiver/index.vue +2 -1
  172. package/edit/monitoring.coreos.com.route.vue +1 -1
  173. package/edit/namespace.vue +1 -0
  174. package/edit/networking.istio.io.destinationrule/index.vue +1 -0
  175. package/edit/networking.k8s.io.ingress/index.vue +1 -0
  176. package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +1 -0
  177. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -0
  178. package/edit/node.vue +1 -0
  179. package/edit/persistentvolume/index.vue +27 -22
  180. package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +13 -14
  181. package/edit/persistentvolume/plugins/azureDisk.vue +49 -48
  182. package/edit/persistentvolume/plugins/azureFile.vue +15 -14
  183. package/edit/persistentvolume/plugins/cephfs.vue +15 -14
  184. package/edit/persistentvolume/plugins/cinder.vue +15 -14
  185. package/edit/persistentvolume/plugins/csi.vue +18 -16
  186. package/edit/persistentvolume/plugins/fc.vue +13 -14
  187. package/edit/persistentvolume/plugins/flexVolume.vue +15 -14
  188. package/edit/persistentvolume/plugins/flocker.vue +1 -3
  189. package/edit/persistentvolume/plugins/gcePersistentDisk.vue +13 -14
  190. package/edit/persistentvolume/plugins/glusterfs.vue +15 -14
  191. package/edit/persistentvolume/plugins/hostPath.vue +40 -39
  192. package/edit/persistentvolume/plugins/iscsi.vue +13 -14
  193. package/edit/persistentvolume/plugins/local.vue +1 -3
  194. package/edit/persistentvolume/plugins/longhorn.vue +23 -22
  195. package/edit/persistentvolume/plugins/nfs.vue +15 -14
  196. package/edit/persistentvolume/plugins/photonPersistentDisk.vue +1 -14
  197. package/edit/persistentvolume/plugins/portworxVolume.vue +15 -14
  198. package/edit/persistentvolume/plugins/quobyte.vue +15 -14
  199. package/edit/persistentvolume/plugins/rbd.vue +15 -14
  200. package/edit/persistentvolume/plugins/scaleIO.vue +15 -14
  201. package/edit/persistentvolume/plugins/storageos.vue +15 -14
  202. package/edit/persistentvolume/plugins/vsphereVolume.vue +1 -3
  203. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +32 -5
  204. package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +35 -0
  205. package/edit/provisioning.cattle.io.cluster/__tests__/Networking.test.ts +155 -0
  206. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +21 -21
  207. package/edit/provisioning.cattle.io.cluster/index.vue +28 -18
  208. package/edit/provisioning.cattle.io.cluster/rke2.vue +50 -16
  209. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +107 -5
  210. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +92 -4
  211. package/edit/secret/index.vue +1 -1
  212. package/edit/service.vue +9 -4
  213. package/edit/serviceaccount.vue +1 -0
  214. package/edit/storage.k8s.io.storageclass/index.vue +1 -0
  215. package/edit/workload/index.vue +2 -1
  216. package/edit/workload/mixins/workload.js +1 -1
  217. package/initialize/App.vue +4 -4
  218. package/initialize/install-directives.js +2 -0
  219. package/initialize/install-plugins.js +19 -2
  220. package/list/provisioning.cattle.io.cluster.vue +15 -2
  221. package/machine-config/amazonec2.vue +42 -135
  222. package/machine-config/components/EC2Networking.vue +490 -0
  223. package/machine-config/components/__tests__/EC2Networking.test.ts +148 -0
  224. package/machine-config/components/__tests__/utils/vpcSubnetMockData.js +294 -0
  225. package/machine-config/digitalocean.vue +11 -0
  226. package/machine-config/google.vue +1 -1
  227. package/mixins/__tests__/brand.spec.ts +2 -2
  228. package/mixins/__tests__/chart.test.ts +21 -0
  229. package/mixins/brand.js +1 -7
  230. package/mixins/chart.js +7 -1
  231. package/mixins/create-edit-view/index.js +5 -0
  232. package/models/__tests__/chart.test.ts +33 -4
  233. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +112 -5
  234. package/models/chart.js +25 -13
  235. package/models/cluster/node.js +13 -6
  236. package/models/cluster.x-k8s.io.machine.js +10 -20
  237. package/models/cluster.x-k8s.io.machinedeployment.js +5 -1
  238. package/models/management.cattle.io.cluster.js +21 -3
  239. package/models/management.cattle.io.kontainerdriver.js +1 -0
  240. package/models/provisioning.cattle.io.cluster.js +249 -33
  241. package/package.json +8 -7
  242. package/pages/auth/login.vue +41 -5
  243. package/pages/auth/setup.vue +1 -1
  244. package/pages/auth/verify.vue +3 -3
  245. package/pages/c/_cluster/apps/charts/__tests__/chart.test.ts +135 -0
  246. package/pages/c/_cluster/apps/charts/chart.vue +33 -15
  247. package/pages/c/_cluster/apps/charts/index.vue +11 -13
  248. package/pages/c/_cluster/apps/charts/install.vue +1 -1
  249. package/pages/c/_cluster/explorer/index.vue +8 -6
  250. package/pages/c/_cluster/manager/hostedprovider/index.vue +220 -0
  251. package/pages/c/_cluster/settings/brand.vue +1 -1
  252. package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +7 -0
  253. package/pages/c/_cluster/uiplugins/catalogs.vue +147 -0
  254. package/pages/c/_cluster/uiplugins/index.vue +126 -184
  255. package/pages/home.vue +14 -4
  256. package/pkg/auto-import.js +3 -3
  257. package/pkg/dynamic-importer.lib.js +5 -1
  258. package/pkg/import.js +1 -1
  259. package/plugins/dashboard-client-init.js +3 -0
  260. package/plugins/dashboard-store/getters.js +19 -2
  261. package/plugins/dashboard-store/model-loader.js +1 -1
  262. package/plugins/dashboard-store/resource-class.js +10 -6
  263. package/plugins/dynamic-content.js +13 -0
  264. package/plugins/i18n.js +8 -0
  265. package/plugins/plugin.js +2 -2
  266. package/plugins/steve/__tests__/steve-pagination-utils.test.ts +333 -0
  267. package/plugins/steve/steve-class.js +1 -1
  268. package/plugins/steve/steve-pagination-utils.ts +39 -20
  269. package/plugins/steve/subscribe.js +17 -9
  270. package/plugins/subscribe-events.ts +4 -2
  271. package/rancher-components/Form/Checkbox/Checkbox.vue +1 -1
  272. package/rancher-components/Pill/RcStatusBadge/RcStatusBadge.vue +6 -34
  273. package/rancher-components/Pill/RcStatusBadge/index.ts +0 -1
  274. package/rancher-components/Pill/RcStatusBadge/types.ts +1 -1
  275. package/rancher-components/Pill/RcStatusIndicator/RcStatusIndicator.vue +5 -28
  276. package/rancher-components/Pill/RcStatusIndicator/types.ts +2 -1
  277. package/rancher-components/Pill/types.ts +0 -1
  278. package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -0
  279. package/rancher-components/RcDropdown/RcDropdownItemSelect.vue +5 -1
  280. package/rancher-components/RcIcon/RcIcon.test.ts +51 -0
  281. package/rancher-components/RcIcon/RcIcon.vue +46 -0
  282. package/rancher-components/RcIcon/index.ts +1 -0
  283. package/rancher-components/RcIcon/types.ts +160 -0
  284. package/rancher-components/utils/status.test.ts +67 -0
  285. package/rancher-components/utils/status.ts +77 -0
  286. package/scripts/typegen.sh +1 -0
  287. package/store/__tests__/catalog.test.ts +1 -1
  288. package/store/action-menu.js +8 -0
  289. package/store/auth.js +4 -4
  290. package/store/catalog.js +6 -0
  291. package/store/features.js +1 -0
  292. package/store/i18n.js +3 -3
  293. package/store/index.js +40 -19
  294. package/store/notifications.ts +51 -4
  295. package/store/plugins.js +7 -3
  296. package/store/prefs.js +6 -6
  297. package/store/type-map.js +7 -7
  298. package/store/ui-context.ts +86 -0
  299. package/store/wm.ts +244 -0
  300. package/types/notifications/index.ts +27 -3
  301. package/types/shell/index.d.ts +80 -4
  302. package/types/store/__tests__/pagination.types.spec.ts +137 -0
  303. package/types/store/pagination.types.ts +157 -9
  304. package/types/store/subscribe-events.types.ts +8 -1
  305. package/types/store/subscribe.types.ts +1 -0
  306. package/types/window-manager.ts +24 -0
  307. package/utils/__tests__/object.test.ts +19 -0
  308. package/utils/__tests__/provider.test.ts +98 -0
  309. package/utils/__tests__/selector-typed.test.ts +263 -0
  310. package/utils/__tests__/version.test.ts +19 -1
  311. package/utils/autoscaler-utils.ts +7 -0
  312. package/utils/back-off.ts +3 -3
  313. package/utils/brand.ts +29 -0
  314. package/utils/chart.js +18 -0
  315. package/utils/color.js +1 -1
  316. package/utils/dynamic-content/__tests__/announcement.test.ts +498 -0
  317. package/utils/dynamic-content/__tests__/info.test.ts +21 -9
  318. package/utils/dynamic-content/announcement.ts +142 -0
  319. package/utils/dynamic-content/example.json +40 -0
  320. package/utils/dynamic-content/index.ts +6 -2
  321. package/utils/dynamic-content/info.ts +44 -2
  322. package/utils/dynamic-content/new-release.ts +1 -1
  323. package/utils/dynamic-content/notification-handler.ts +48 -0
  324. package/utils/dynamic-content/types.d.ts +53 -1
  325. package/utils/dynamic-importer.js +2 -2
  326. package/utils/favicon.js +4 -4
  327. package/utils/object.js +20 -2
  328. package/utils/pagination-utils.ts +2 -2
  329. package/utils/pagination-wrapper.ts +13 -9
  330. package/utils/provider.ts +14 -0
  331. package/utils/scroll.js +7 -0
  332. package/utils/selector-typed.ts +6 -2
  333. package/utils/settings.ts +15 -0
  334. package/utils/unit-tests/pagination-utils.spec.ts +8 -8
  335. package/utils/validators/machine-pool.ts +13 -3
  336. package/utils/version.js +15 -0
  337. package/vue.config.js +3 -3
  338. package/assets/images/icons/document.svg +0 -3
  339. package/plugins/nuxt-client-init.js +0 -3
  340. package/store/wm.js +0 -95
  341. /package/components/{nav/WindowManager → Window}/ChartReadme.vue +0 -0
  342. /package/components/{nav/WindowManager → Window}/ContainerShell.vue +0 -0
  343. /package/components/{nav/WindowManager → Window}/KubectlShell.vue +0 -0
  344. /package/components/{nav/WindowManager → Window}/MachineSsh.vue +0 -0
  345. /package/components/{nav/WindowManager → Window}/Window.vue +0 -0
@@ -445,7 +445,7 @@ $fontColor: var(--input-label);
445
445
  -ms-transform: rotate(0deg) scale(1);
446
446
  transform: rotate(0deg) scale(1);
447
447
  opacity:1;
448
- border: 1px solid var(--active, var(--primary));
448
+ border: 1px solid var(--checkbox-border, var(--primary));
449
449
  }
450
450
 
451
451
  // Custom Checkbox tick
@@ -1,7 +1,10 @@
1
1
  <script setup lang="ts">
2
2
  import { RcStatusBadgeProps } from './types';
3
+ import { useStatusColors } from '@components/utils/status';
3
4
 
4
5
  const props = defineProps<RcStatusBadgeProps>();
6
+
7
+ const { backgroundColor, borderColor, textColor } = useStatusColors(props, 'outlined');
5
8
  </script>
6
9
 
7
10
  <template>
@@ -27,39 +30,8 @@ const props = defineProps<RcStatusBadgeProps>();
27
30
  font-size: 12px;
28
31
  line-height: 19px;
29
32
 
30
- &.info {
31
- background-color: var(--rc-info-secondary);
32
- border-color: var(--rc-info-secondary);
33
- color: var(--rc-info);
34
- }
35
-
36
- &.success {
37
- background-color: var(--rc-success-secondary);
38
- border-color: var(--rc-success-secondary);
39
- color: var(--rc-success);
40
- }
41
-
42
- &.warning {
43
- background-color: var(--rc-warning);
44
- border-color: var(--rc-warning);
45
- color: var(--rc-warning-secondary);
46
- }
47
-
48
- &.error {
49
- background-color: var(--rc-error);
50
- border-color: var(--rc-error);
51
- color: var(--rc-error-secondary);
52
- }
53
-
54
- &.unknown {
55
- background-color: var(--rc-unknown);
56
- border-color: var(--rc-unknown);
57
- color: var(--rc-unknown-secondary);
58
- }
59
-
60
- &.none {
61
- border-color: var(--rc-none);
62
- color: var(--rc-none-secondary);
63
- }
33
+ background-color: v-bind(backgroundColor);
34
+ border-color: v-bind(borderColor);
35
+ color: v-bind(textColor);
64
36
  }
65
37
  </style>
@@ -1,2 +1 @@
1
1
  export { default } from './RcStatusBadge.vue';
2
- export type { Status } from '../types';
@@ -1,4 +1,4 @@
1
- import { Status } from '@components/Pill/types';
1
+ import { Status } from '@components/utils/status';
2
2
 
3
3
  export interface RcStatusBadgeProps {
4
4
  status: Status;
@@ -1,7 +1,10 @@
1
1
  <script setup lang="ts">
2
2
  import { RcStatusIndicatorProps } from './types';
3
+ import { useStatusColors } from '@components/utils/status';
3
4
 
4
5
  const props = defineProps<RcStatusIndicatorProps>();
6
+
7
+ const { backgroundColor, borderColor } = useStatusColors(props, 'solid');
5
8
  </script>
6
9
 
7
10
  <template>
@@ -42,34 +45,8 @@ const props = defineProps<RcStatusIndicatorProps>();
42
45
  border-radius: 2px;
43
46
  }
44
47
 
45
- &.info {
46
- background-color: var(--rc-info);
47
- border-color: var(--rc-info);
48
- }
49
-
50
- &.success {
51
- background-color: var(--rc-success);
52
- border-color: var(--rc-success);
53
- }
54
-
55
- &.warning {
56
- background-color: var(--rc-warning);
57
- border-color: var(--rc-warning);
58
- }
59
-
60
- &.error {
61
- background-color: var(--rc-error);
62
- border-color: var(--rc-error);
63
- }
64
-
65
- &.unknown {
66
- background-color: var(--rc-unknown);
67
- border-color: var(--rc-unknown);
68
- }
69
-
70
- &.none {
71
- border-color: var(--rc-none);
72
- }
48
+ background-color: v-bind(backgroundColor);
49
+ border-color: v-bind(borderColor);
73
50
  }
74
51
  }
75
52
  </style>
@@ -1,4 +1,5 @@
1
- import { Status } from '../types';
1
+ import { Status } from '@components/utils/status';
2
+
2
3
  export type Shape = 'disc' | 'horizontal-bar' | 'vertical-bar';
3
4
 
4
5
  export interface RcStatusIndicatorProps {
@@ -1,3 +1,2 @@
1
1
  export type Shape = 'disc' | 'horizontal-bar' | 'vertical-bar';
2
- export type Status = 'info' | 'success' | 'warning' | 'error' | 'unknown' | 'none';
3
2
  export type Type = 'active' | 'inactive';
@@ -36,6 +36,7 @@ const handleClick = (e: MouseEvent) => {
36
36
  @click.stop="handleClick"
37
37
  @keydown.enter.space="handleActivate"
38
38
  @keydown.up.down.prevent.stop="handleKeydown"
39
+ @mousedown.prevent="() => {/*We use this to prevent clicks from triggering the @focusin below. When we scroll on a click it prevents the action from occurring on the first click.*/}"
39
40
  @focusin="scrollIntoView"
40
41
  >
41
42
  <slot name="before">
@@ -22,6 +22,10 @@ defineProps({
22
22
  return [];
23
23
  }
24
24
  },
25
+ label: {
26
+ type: String,
27
+ default: ''
28
+ }
25
29
  });
26
30
  const emits = defineEmits(['click', 'select']);
27
31
 
@@ -55,7 +59,7 @@ const focusMenuItem = () => {
55
59
  <LabeledSelect
56
60
  ref="menuItemSelect"
57
61
  :value="modelValue"
58
- :label="t('wm.containerLogs.range.label')"
62
+ :label="label"
59
63
  :options="options"
60
64
  :clearable="false"
61
65
  placement="top"
@@ -0,0 +1,51 @@
1
+ import { shallowMount } from '@vue/test-utils';
2
+ import RcIcon from './RcIcon.vue';
3
+
4
+ describe('rcIcon.vue', () => {
5
+ it('renders with the correct type class and size classes', () => {
6
+ const wrapper = shallowMount(RcIcon, {
7
+ props: {
8
+ size: 'medium',
9
+ type: 'search',
10
+ },
11
+ });
12
+
13
+ expect(wrapper.classes()).toContain('icon-search');
14
+ expect(wrapper.classes()).toContain('medium');
15
+ });
16
+
17
+ it('sets aria-hidden to true by default', () => {
18
+ const wrapper = shallowMount(RcIcon, {
19
+ props: {
20
+ size: 'medium',
21
+ type: 'search',
22
+ },
23
+ });
24
+
25
+ expect(wrapper.attributes('aria-hidden')).toBe('true');
26
+ });
27
+
28
+ it('sets aria-hidden to false when explicitly provided', () => {
29
+ const wrapper = shallowMount(RcIcon, {
30
+ props: {
31
+ size: 'medium',
32
+ type: 'search',
33
+ ariaHidden: false,
34
+ },
35
+ });
36
+
37
+ expect(wrapper.attributes('aria-hidden')).toBe('false');
38
+ });
39
+
40
+ it('sets aria-hidden to true when explicitly provided', () => {
41
+ const wrapper = shallowMount(RcIcon, {
42
+ props: {
43
+ size: 'medium',
44
+ type: 'search',
45
+ ariaHidden: true,
46
+ },
47
+ });
48
+
49
+ expect(wrapper.attributes('aria-hidden')).toBe('true');
50
+ });
51
+ });
@@ -0,0 +1,46 @@
1
+ <script setup lang="ts">
2
+ import { RcIconProps, RcIconType, RcIconSize } from '@components/RcIcon/types';
3
+ import { computed } from 'vue';
4
+ import { useStatusColors } from '@components/utils/status';
5
+ const props = withDefaults(defineProps<RcIconProps>(), { size: 'small', ariaHidden: true });
6
+ const fontSize = computed(() => {
7
+ return RcIconSize[props.size];
8
+ });
9
+
10
+ const iconClass = computed(() => {
11
+ return RcIconType[props.type];
12
+ });
13
+
14
+ const status = computed(() => {
15
+ if (props.status && props.status !== 'inherit') {
16
+ return props.status;
17
+ }
18
+
19
+ return 'none';
20
+ });
21
+
22
+ const { textColor } = useStatusColors({ status: status.value }, 'outlined');
23
+
24
+ const color = computed(() => {
25
+ if (props.status === 'inherit') {
26
+ return 'inherit';
27
+ }
28
+
29
+ return textColor.value;
30
+ });
31
+ </script>
32
+
33
+ <template>
34
+ <i
35
+ class="rc-icon"
36
+ :class="{[props.size]: true, [iconClass]: true}"
37
+ :aria-hidden="props.ariaHidden"
38
+ />
39
+ </template>
40
+
41
+ <style lang="scss" scoped>
42
+ .rc-icon {
43
+ font-size: v-bind(fontSize);
44
+ color: v-bind(color);
45
+ }
46
+ </style>
@@ -0,0 +1 @@
1
+ export { default as RcIcon } from './RcIcon.vue';
@@ -0,0 +1,160 @@
1
+ import { Status } from '../utils/status';
2
+
3
+ export const RcIconType = {
4
+ actions: 'icon-actions',
5
+ ai: 'icon-ai',
6
+ 'alert-alt': 'icon-alert-alt',
7
+ alert: 'icon-alert',
8
+ anchor: 'icon-anchor',
9
+ apple: 'icon-apple',
10
+ application: 'icon-application',
11
+ apps: 'icon-apps',
12
+ archive: 'icon-archive',
13
+ 'backup-restore': 'icon-backup-restore',
14
+ backup: 'icon-backup',
15
+ 'brush-icon': 'icon-brush-icon',
16
+ 'category-alt': 'icon-category-alt',
17
+ checkmark: 'icon-checkmark',
18
+ 'chevron-beginning': 'icon-chevron-beginning',
19
+ 'chevron-down': 'icon-chevron-down',
20
+ 'chevron-end': 'icon-chevron-end',
21
+ 'chevron-left': 'icon-chevron-left',
22
+ 'chevron-right': 'icon-chevron-right',
23
+ 'chevron-up': 'icon-chevron-up',
24
+ 'circle-plus': 'icon-circle-plus',
25
+ cis: 'icon-cis',
26
+ close: 'icon-close',
27
+ 'cluster-management': 'icon-cluster-management',
28
+ cluster: 'icon-cluster',
29
+ code: 'icon-code',
30
+ comment: 'icon-comment',
31
+ commit: 'icon-commit',
32
+ compass: 'icon-compass',
33
+ 'confirmation-alt': 'icon-confirmation-alt',
34
+ copy: 'icon-copy',
35
+ dashboard: 'icon-dashboard',
36
+ dock: 'icon-dock',
37
+ docker: 'icon-docker',
38
+ document: 'icon-document',
39
+ 'dot-half': 'icon-dot-half',
40
+ 'dot-open': 'icon-dot-open',
41
+ dot: 'icon-dot',
42
+ 'downgrade-alt': 'icon-downgrade-alt',
43
+ download: 'icon-download',
44
+ edit: 'icon-edit',
45
+ elemental: 'icon-elemental',
46
+ endpoints_connected: 'icon-endpoints_connected',
47
+ endpoints_disconnected: 'icon-endpoints_disconnected',
48
+ epinio: 'icon-epinio',
49
+ error: 'icon-error',
50
+ explore: 'icon-explore',
51
+ extension: 'icon-extension',
52
+ 'external-link': 'icon-external-link',
53
+ file: 'icon-file',
54
+ filter_alt: 'icon-filter_alt',
55
+ flask: 'icon-flask',
56
+ fleet: 'icon-fleet',
57
+ folder: 'icon-folder',
58
+ fork: 'icon-fork',
59
+ gatekeeper: 'icon-gatekeeper',
60
+ gear: 'icon-gear',
61
+ gemini: 'icon-gemini',
62
+ git: 'icon-git',
63
+ github: 'icon-github',
64
+ gitlab: 'icon-gitlab',
65
+ globe: 'icon-globe',
66
+ groups: 'icon-groups',
67
+ harvester: 'icon-harvester',
68
+ helm: 'icon-helm',
69
+ hide: 'icon-hide',
70
+ history: 'icon-history',
71
+ home: 'icon-home',
72
+ 'info-circle': 'icon-info-circle',
73
+ info: 'icon-info',
74
+ init_container: 'icon-init_container',
75
+ istio: 'icon-istio',
76
+ keyboard: 'icon-keyboard',
77
+ keyboard_tab: 'icon-keyboard_tab',
78
+ linux: 'icon-linux',
79
+ 'list-flat': 'icon-list-flat',
80
+ 'list-grouped': 'icon-list-grouped',
81
+ lock: 'icon-lock',
82
+ logging: 'icon-logging',
83
+ longhorn: 'icon-longhorn',
84
+ marketplace: 'icon-marketplace',
85
+ menu: 'icon-menu',
86
+ minus: 'icon-minus',
87
+ monitoring: 'icon-monitoring',
88
+ more: 'icon-more',
89
+ namespace: 'icon-namespace',
90
+ notifier: 'icon-notifier',
91
+ 'notify-announcement': 'icon-notify-announcement',
92
+ 'notify-bell': 'icon-notify-bell',
93
+ 'notify-busy': 'icon-notify-busy',
94
+ 'notify-error': 'icon-notify-error',
95
+ 'notify-info': 'icon-notify-info',
96
+ 'notify-tick': 'icon-notify-tick',
97
+ 'notify-warning': 'icon-notify-warning',
98
+ ollama: 'icon-ollama',
99
+ openai: 'icon-openai',
100
+ 'os-management': 'icon-os-management',
101
+ pause: 'icon-pause',
102
+ 'pin-outlined': 'icon-pin-outlined',
103
+ pin: 'icon-pin',
104
+ pipeline: 'icon-pipeline',
105
+ play: 'icon-play',
106
+ plus: 'icon-plus',
107
+ pod_security: 'icon-pod_security',
108
+ print: 'icon-print',
109
+ 'question-mark': 'icon-question-mark',
110
+ 'quick-action': 'icon-quick-action',
111
+ 'rancher-desktop': 'icon-rancher-desktop',
112
+ 'rancher-observability': 'icon-rancher-observability',
113
+ 'refresh-alt': 'icon-refresh-alt',
114
+ refresh: 'icon-refresh',
115
+ 'repository-alt': 'icon-repository-alt',
116
+ repository: 'icon-repository',
117
+ rio: 'icon-rio',
118
+ 'role-binding': 'icon-role-binding',
119
+ search: 'icon-search',
120
+ send: 'icon-send',
121
+ service: 'icon-service',
122
+ show: 'icon-show',
123
+ snapshot: 'icon-snapshot',
124
+ 'sort-down': 'icon-sort-down',
125
+ 'sort-up': 'icon-sort-up',
126
+ sort: 'icon-sort',
127
+ sources: 'icon-sources',
128
+ spinner: 'icon-spinner',
129
+ stackstate: 'icon-stackstate',
130
+ 'star-open': 'icon-star-open',
131
+ star: 'icon-star',
132
+ storage: 'icon-storage',
133
+ 'tag-alt': 'icon-tag-alt',
134
+ terminal: 'icon-terminal',
135
+ 'thinking-process': 'icon-thinking-process',
136
+ trash: 'icon-trash',
137
+ unlock: 'icon-unlock',
138
+ 'upgrade-alt': 'icon-upgrade-alt',
139
+ upload: 'icon-upload',
140
+ 'user-check': 'icon-user-check',
141
+ 'user-xmark': 'icon-user-xmark',
142
+ user: 'icon-user',
143
+ 'version-alt': 'icon-version-alt',
144
+ warning: 'icon-warning',
145
+ windows: 'icon-windows',
146
+ };
147
+
148
+ export const RcIconSize = {
149
+ large: '25px',
150
+ medium: '18px',
151
+ small: '14px',
152
+ none: undefined
153
+ };
154
+
155
+ export interface RcIconProps {
156
+ size: keyof typeof RcIconSize;
157
+ type: keyof typeof RcIconType;
158
+ ariaHidden?: boolean;
159
+ status?: Status | 'inherit';
160
+ }
@@ -0,0 +1,67 @@
1
+
2
+ import { reactive } from 'vue';
3
+ import { wrapIfVar, useStatusColors, Status } from './status';
4
+
5
+ describe('utils: status', () => {
6
+ describe('wrapIfVar', () => {
7
+ it('should wrap a CSS variable', () => {
8
+ const result = wrapIfVar('--rc-info');
9
+
10
+ expect(result).toBe('var(--rc-info)');
11
+ });
12
+
13
+ it('should not wrap a normal color', () => {
14
+ const result = wrapIfVar('red');
15
+
16
+ expect(result).toBe('red');
17
+ });
18
+ });
19
+
20
+ describe('useStatusColors', () => {
21
+ it.each([
22
+ 'info',
23
+ 'success',
24
+ 'warning',
25
+ 'error',
26
+ 'unknown',
27
+ 'none'
28
+ ])('solid: should return the correct colors for status: %p', (status: Status) => {
29
+ const props = reactive({ status });
30
+ const {
31
+ borderColor,
32
+ backgroundColor,
33
+ textColor
34
+ } = useStatusColors(props, 'solid');
35
+
36
+ expect(borderColor.value).toBe(`var(--rc-${ status })`);
37
+ if (status !== 'none') {
38
+ // eslint-disable-next-line jest/no-conditional-expect
39
+ expect(backgroundColor.value).toBe(`var(--rc-${ status })`);
40
+ }
41
+ expect(textColor.value).toBe(`var(--rc-${ status }-secondary)`);
42
+ });
43
+
44
+ it.each([
45
+ 'info',
46
+ 'success',
47
+ 'warning',
48
+ 'error',
49
+ 'unknown',
50
+ 'none'
51
+ ])('outlined: should return the correct colors for status: %p', (status: Status) => {
52
+ const props = reactive({ status });
53
+ const {
54
+ borderColor,
55
+ backgroundColor,
56
+ textColor
57
+ } = useStatusColors(props, 'outlined');
58
+
59
+ expect(borderColor.value).toBe(`var(--rc-${ status }-secondary)`);
60
+ if (status !== 'none') {
61
+ // eslint-disable-next-line jest/no-conditional-expect
62
+ expect(backgroundColor.value).toBe(`var(--rc-${ status }-secondary)`);
63
+ }
64
+ expect(textColor.value).toBe(`var(--rc-${ status })`);
65
+ });
66
+ });
67
+ });
@@ -0,0 +1,77 @@
1
+ import { computed } from 'vue';
2
+
3
+ export const StatusDefinitions = {
4
+ info: {
5
+ primary: '--rc-info',
6
+ secondary: '--rc-info-secondary'
7
+ },
8
+ success: {
9
+ primary: '--rc-success',
10
+ secondary: '--rc-success-secondary'
11
+ },
12
+ warning: {
13
+ primary: '--rc-warning',
14
+ secondary: '--rc-warning-secondary'
15
+ },
16
+ error: {
17
+ primary: '--rc-error',
18
+ secondary: '--rc-error-secondary'
19
+ },
20
+ unknown: {
21
+ primary: '--rc-unknown',
22
+ secondary: '--rc-unknown-secondary'
23
+ },
24
+ none: {
25
+ primary: '--rc-none',
26
+ secondary: '--rc-none-secondary'
27
+ },
28
+ };
29
+
30
+ export type Status = keyof typeof StatusDefinitions;
31
+ export type StatusObject = { status: Status };
32
+ export type Style = 'solid' | 'outlined';
33
+
34
+ export function wrapIfVar(colorVar: string) {
35
+ return colorVar.startsWith('--') ? `var(${ colorVar })` : colorVar;
36
+ }
37
+
38
+ /**
39
+ * A composable to make it easier to use status colors in multiple components
40
+ *
41
+ * @param propsWithStatus The props which contain a `status: Status` property. Ideally I'd prefer to just pass status but doing so either forces the consumer to wrap the values in a Ref or this code is no longer reactive.
42
+ * @param style {@link Style} Will the block of code being using the solid or outlined styling
43
+ * @returns An object containing the relevant style colors
44
+ */
45
+ export function useStatusColors(propsWithStatus: StatusObject, style: Style) {
46
+ const statusColors = computed(() => {
47
+ return StatusDefinitions[propsWithStatus.status];
48
+ });
49
+ const isOutlined = style === 'outlined';
50
+
51
+ const borderColor = computed(() => {
52
+ const colorVar = isOutlined ? statusColors.value.secondary : statusColors.value.primary;
53
+
54
+ return wrapIfVar(colorVar);
55
+ });
56
+
57
+ const backgroundColor = computed(() => {
58
+ if (propsWithStatus.status === 'none') {
59
+ return 'none';
60
+ }
61
+ const colorVar = isOutlined ? statusColors.value.secondary : statusColors.value.primary;
62
+
63
+ return wrapIfVar(colorVar);
64
+ });
65
+
66
+ const textColor = computed(() => {
67
+ const colorVar = isOutlined ? statusColors.value.primary : statusColors.value.secondary;
68
+
69
+ return wrapIfVar(colorVar);
70
+ });
71
+
72
+ return {
73
+ borderColor,
74
+ backgroundColor,
75
+ textColor
76
+ };
77
+ }
@@ -29,6 +29,7 @@ ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/prefs.js --declaration --al
29
29
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/plugins.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/store > /dev/null
30
30
 
31
31
  # # plugins
32
+ ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/i18n.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/ > /dev/null
32
33
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/normalize.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
33
34
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/resource-class.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
34
35
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/classify.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
@@ -88,7 +88,7 @@ describe('catalog', () => {
88
88
  }
89
89
  },
90
90
  state: {
91
- $plugin: { getDynamic: () => require(`@shell/models/chart`) },
91
+ $extension: { getDynamic: () => require(`@shell/models/chart`) },
92
92
  [catalogStoreName]: { } as { [key: string]: any},
93
93
  },
94
94
  getters: {
@@ -111,6 +111,14 @@ export const mutations = {
111
111
  state.modalData = data;
112
112
  },
113
113
 
114
+ updateModalData(state, data) {
115
+ state.modalData = state.modalData || {};
116
+
117
+ data.forEach(({ key, value }) => {
118
+ state.modalData[key] = value;
119
+ });
120
+ },
121
+
114
122
  clearCallbackData(state) {
115
123
  state.performCallbackData = undefined;
116
124
  },
package/store/auth.js CHANGED
@@ -402,20 +402,20 @@ export const actions = {
402
402
  }
403
403
 
404
404
  // Unload plugins - we will load again on login
405
- await rootState.$plugin.logout();
405
+ await rootState.$extension.logout();
406
406
 
407
- let logoutAction = 'logout';
407
+ let logoutAction = '';
408
408
  const data = {};
409
409
 
410
410
  // SLO - Single-sign logout - will logout auth provider from all places where it's logged in
411
411
  if (options.slo) {
412
- logoutAction = 'logoutAll';
412
+ logoutAction = '?logoutAll';
413
413
  data.finalRedirectUrl = returnTo({ isSlo: true }, this);
414
414
  }
415
415
 
416
416
  try {
417
417
  const res = await dispatch('rancher/request', {
418
- url: `/v3/tokens?action=${ logoutAction }`,
418
+ url: `/v1/logout${ logoutAction }`,
419
419
  method: 'post',
420
420
  data,
421
421
  headers: { 'Content-Type': 'application/json' },
package/store/catalog.js CHANGED
@@ -504,11 +504,16 @@ function addChart(ctx, map, chart, repo) {
504
504
 
505
505
  if ( !obj ) {
506
506
  if ( ctx ) { }
507
+
508
+ const primeOnly = chart.annotations?.[CATALOG_ANNOTATIONS.PRIME_ONLY] === 'true';
507
509
  const experimental = !!chart.annotations?.[CATALOG_ANNOTATIONS.EXPERIMENTAL];
508
510
  const windowsIncompatible = !(chart.annotations?.[CATALOG_ANNOTATIONS.PERMITTED_OS] || '').includes('windows');
509
511
  const deploysOnWindows = (chart.annotations?.[CATALOG_ANNOTATIONS.DEPLOYED_OS] || '').includes('windows');
510
512
  const tags = [];
511
513
 
514
+ if (primeOnly) {
515
+ tags.push(ctx.rootGetters['i18n/withFallback']('generic.primeOnly'));
516
+ }
512
517
  if (experimental) {
513
518
  tags.push(ctx.rootGetters['i18n/withFallback']('generic.experimental'));
514
519
  }
@@ -542,6 +547,7 @@ function addChart(ctx, map, chart, repo) {
542
547
  keywords: chart.keywords || [],
543
548
  categories: filterCategories(chart.keywords),
544
549
  deprecated: !!chart.deprecated,
550
+ primeOnly,
545
551
  experimental,
546
552
  hidden: !!chart.annotations?.[CATALOG_ANNOTATIONS.HIDDEN],
547
553
  targetNamespace: chart.annotations?.[CATALOG_ANNOTATIONS.NAMESPACE],
package/store/features.js CHANGED
@@ -38,6 +38,7 @@ export const UIEXTENSION = create('uiextension', true);
38
38
  export const PROVISIONING_PRE_BOOTSTRAP = create('provisioningprebootstrap', false);
39
39
  export const SCHEDULING_CUSTOMIZATION = create(SCHEDULING_CUSTOMIZATION_FEATURE, false);
40
40
  export const SCC = create('rancher-scc-registration-extension', true);
41
+ export const AUTOSCALER = create('cluster-autoscaling', false);
41
42
 
42
43
  // Not currently used.. no point defining ones we don't use
43
44
  // export const EMBEDDED_CLUSTER_API = create('embedded-cluster-api', true);