@rancher/shell 3.0.8-rc.2 → 3.0.8-rc.3

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 (87) hide show
  1. package/assets/brand/suse/dark/rancher-logo.svg +64 -1
  2. package/assets/brand/suse/rancher-logo.svg +1 -1
  3. package/assets/styles/global/_cards.scss +0 -3
  4. package/assets/styles/themes/_modern.scss +9 -1
  5. package/assets/styles/themes/_suse.scss +81 -24
  6. package/assets/translations/en-us.yaml +68 -3
  7. package/components/AutoscalerCard.vue +113 -0
  8. package/components/AutoscalerTab.vue +94 -0
  9. package/components/ClusterIconMenu.vue +1 -1
  10. package/components/ClusterProviderIcon.vue +1 -1
  11. package/components/IconOrSvg.vue +2 -2
  12. package/components/PopoverCard.vue +192 -0
  13. package/components/Resource/Detail/FetchLoader/composables.ts +18 -4
  14. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +1 -1
  15. package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +4 -0
  16. package/components/Resource/Detail/ResourcePopover/ResourcePopoverCard.vue +2 -19
  17. package/components/Resource/Detail/ResourcePopover/__tests__/ResourcePopoverCard.test.ts +0 -29
  18. package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +132 -150
  19. package/components/Resource/Detail/ResourcePopover/index.vue +54 -159
  20. package/components/ResourceDetail/Masthead/latest.vue +29 -0
  21. package/components/ResourceList/Masthead.vue +1 -1
  22. package/components/__tests__/AutoscalerCard.test.ts +154 -0
  23. package/components/__tests__/AutoscalerTab.test.ts +125 -0
  24. package/components/__tests__/PopoverCard.test.ts +204 -0
  25. package/components/formatter/Autoscaler.vue +97 -0
  26. package/components/formatter/InternalExternalIP.vue +195 -24
  27. package/components/formatter/__tests__/Autoscaler.test.ts +156 -0
  28. package/components/formatter/__tests__/InternalExternalIP.test.ts +133 -0
  29. package/components/nav/Group.vue +12 -3
  30. package/components/nav/TopLevelMenu.vue +2 -2
  31. package/composables/useInterval.ts +15 -0
  32. package/config/labels-annotations.js +8 -1
  33. package/config/product/manager.js +20 -9
  34. package/config/router/routes.js +4 -0
  35. package/config/settings.ts +2 -1
  36. package/config/table-headers.js +8 -0
  37. package/config/types.js +2 -0
  38. package/core/types-provisioning.ts +3 -0
  39. package/detail/provisioning.cattle.io.cluster.vue +12 -1
  40. package/directives/ui-context.ts +8 -2
  41. package/edit/auth/github.vue +5 -0
  42. package/edit/cloudcredential.vue +1 -1
  43. package/edit/fleet.cattle.io.gitrepo.vue +0 -10
  44. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +32 -5
  45. package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +35 -0
  46. package/edit/provisioning.cattle.io.cluster/__tests__/Networking.test.ts +132 -0
  47. package/edit/provisioning.cattle.io.cluster/index.vue +18 -12
  48. package/edit/provisioning.cattle.io.cluster/rke2.vue +39 -8
  49. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +107 -5
  50. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +90 -3
  51. package/initialize/install-plugins.js +3 -1
  52. package/list/provisioning.cattle.io.cluster.vue +15 -2
  53. package/machine-config/amazonec2.vue +36 -135
  54. package/machine-config/components/EC2Networking.vue +474 -0
  55. package/machine-config/components/__tests__/EC2Networking.test.ts +94 -0
  56. package/machine-config/components/__tests__/utils/vpcSubnetMockData.js +294 -0
  57. package/machine-config/digitalocean.vue +11 -0
  58. package/models/cluster/node.js +13 -6
  59. package/models/cluster.x-k8s.io.machine.js +10 -20
  60. package/models/cluster.x-k8s.io.machinedeployment.js +5 -1
  61. package/models/management.cattle.io.kontainerdriver.js +1 -0
  62. package/models/provisioning.cattle.io.cluster.js +223 -2
  63. package/package.json +1 -1
  64. package/pages/c/_cluster/apps/charts/install.vue +1 -1
  65. package/pages/c/_cluster/manager/hostedprovider/index.vue +209 -0
  66. package/plugins/dynamic-content.js +13 -0
  67. package/rancher-components/Form/Checkbox/Checkbox.vue +1 -1
  68. package/rancher-components/Pill/RcStatusBadge/RcStatusBadge.vue +8 -0
  69. package/store/features.js +1 -0
  70. package/store/notifications.ts +32 -1
  71. package/store/plugins.js +7 -3
  72. package/store/prefs.js +1 -0
  73. package/types/notifications/index.ts +24 -3
  74. package/types/shell/index.d.ts +26 -1
  75. package/utils/__tests__/object.test.ts +19 -0
  76. package/utils/autoscaler-utils.ts +7 -0
  77. package/utils/dynamic-content/__tests__/announcement.test.ts +498 -0
  78. package/utils/dynamic-content/announcement.ts +112 -0
  79. package/utils/dynamic-content/example.json +40 -0
  80. package/utils/dynamic-content/index.ts +6 -2
  81. package/utils/dynamic-content/new-release.ts +1 -1
  82. package/utils/dynamic-content/notification-handler.ts +48 -0
  83. package/utils/dynamic-content/types.d.ts +33 -1
  84. package/utils/object.js +20 -2
  85. package/utils/scroll.js +7 -0
  86. package/utils/settings.ts +15 -0
  87. package/utils/validators/machine-pool.ts +13 -3
@@ -1 +1,64 @@
1
- <?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2_copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 33"><defs><style>.cls-1{fill:none;}.cls-2{fill:#fff;}.cls-3{fill:#2354ff;}</style></defs><path class="cls-2" d="M41.31476,9.48438h.8479c.82684,0,1.4519,1.8739,1.89752,2.94592,1.04962,2.38812,2.07568,3.07922,3.86102,3.07922,.26868,0,.5528-.03033,.80145-.06726h3.23517l.91644-2.85632h5.04419l.93616,2.85632h3.77148L57.53851,.37762h-3.77142l-4.13702,12.3017c-.10089,.03265-.29407,.08466-.526,.08466-1.3161,0-1.74066-1.4057-2.36578-2.677-.2674-.53662-.60242-1.04956-1.04834-1.4281,1.49432-.46942,3.03448-1.83032,3.03448-4.08521,0-2.76672-1.98615-4.19604-4.93201-4.19604h-6.20447V15.44226h3.72681v-5.95789Zm13.50067-2.85754c.33502-1.02594,.5578-2.56622,.5578-2.56622h.08862s.1568,1.51782,.51416,2.58862l1.02606,3.16882h-3.23499l1.04834-3.19122Zm-13.50067-3.54858h1.78534c1.02734,0,1.87518,.44696,1.87518,1.76312,0,1.60742-1.25012,1.94238-2.3208,1.94238h-1.33972V3.07825Z"/><path class="cls-2" d="M74.85559,.37762h-3.0578V7.60919c0,.87036,.11188,2.07562,.15558,2.92358h-.08862c-.3573-.89276-.8042-2.03082-1.13922-2.67828l-3.94934-7.47687h-3.99585V15.44226h3.05811v-7.23041c0-.8255-.11188-1.83032-.17914-2.67822h.08954c.31238,.8031,.71466,1.78546,1.09467,2.4541l4.10608,7.45453h3.90601V.37762Z"/><path class="cls-2" d="M88.35522,10.39825l-3.25854-.33368c.26776,1.96356-.98114,2.92352-2.5213,2.92352-1.62976,0-3.05811-1.04962-3.05811-5.15601,0-3.88354,1.31738-5.08875,2.94586-5.08875,1.69739,0,2.63354,.95996,2.25519,3.34808l3.48138-.31256c.49054-3.25842-1.27277-5.66895-5.66925-5.66895-4.1734,0-6.87421,2.25488-6.87421,7.69977,0,5.49097,2.63348,7.90027,6.71863,7.90027,4.01691,0,6.22552-2.25366,5.98035-5.31171Z"/><polygon class="cls-2" points="97.41473 6.06903 92.84009 6.06903 92.84009 .37762 89.1123 .37762 89.1123 15.44226 92.84009 15.44226 92.84009 9.05975 97.41473 9.05975 97.41473 15.44226 101.1413 15.44226 101.1413 .37762 97.41473 .37762 97.41473 6.06903"/><polygon class="cls-2" points="106.36212 9.14941 111.60651 9.14941 111.60651 6.38153 106.36212 6.38153 106.36212 3.14545 112.61151 3.14545 112.61151 .37762 102.63428 .37762 102.63428 15.44226 112.83429 15.44226 112.83429 12.6756 106.36212 12.6756 106.36212 9.14941"/><path class="cls-2" d="M122.69806,10.08698c-.26782-.53662-.60278-1.04956-1.04968-1.4281,1.49524-.46942,3.03546-1.83032,3.03546-4.08521,0-2.76672-1.98578-4.19604-4.9317-4.19604h-6.20575V15.44226h3.72778v-5.95789h.84821c.82526,0,1.45032,1.8739,1.89624,2.94592,1.04962,2.38812,2.07666,3.07922,3.86102,3.07922,.69232,0,1.49652-.2005,1.49652-.2005l.28912-2.65582s-.26776,.11078-.6015,.11078c-1.31738,0-1.742-1.4057-2.36572-2.677Zm-4.08386-3.30322h-1.34003V3.07825h1.78564c1.02606,0,1.8739,.44696,1.8739,1.76312,0,1.60742-1.25012,1.94238-2.31952,1.94238Z"/><path class="cls-2" d="M127.73077,1.091c0-.3075-.21899-.37097-.43829-.37097h-.42712V1.89911h.23431v-.47437h.10449l.26526,.47437h.26135l-.28754-.4906c.16797-.03113,.28754-.13568,.28754-.3175Zm-.41724,.16565h-.21387v-.32745h.21387c.08856,0,.18805,.03107,.18805,.15686,0,.10834-.0896,.17059-.18805,.17059Z"/><path class="cls-2" d="M127.26636,.10992c-.58392,0-1.21509,.37097-1.21509,1.22021,0,.83545,.63116,1.20026,1.21509,1.20026,.58521,0,1.21631-.36481,1.21631-1.20026,0-.85547-.6311-1.22021-1.21631-1.22021Zm0,2.16522c-.48547,0-.93268-.28766-.93268-.95001,0-.66736,.4472-.96002,.93268-.96002,.49054,0,.92279,.29266,.92279,.96002,0,.66235-.43225,.95001-.92279,.95001Z"/><path class="cls-2" d="M43.60791,18.68408h-5.90723v14.08984h3.48535v-5.03076h2.42188c2.83887,0,4.78027-1.77393,4.78027-4.84277,0-2.81787-2.00391-4.21631-4.78027-4.21631Zm-.79297,6.5332h-1.62891v-4.00781h1.62891c1.08496,0,2.06641,.45947,2.06641,1.8999,0,1.52393-.98145,2.10791-2.06641,2.10791Z"/><path class="cls-2" d="M58.53564,27.76416c-.25098-.50098-.56445-.98096-.98145-1.33594,1.39844-.43848,2.83887-1.71191,2.83887-3.81982,0-2.58838-1.85742-3.92432-4.61328-3.92432h-5.80273v14.08984h3.48633v-5.57324h.79297c.77246,0,1.35645,1.75342,1.77441,2.75537,.98047,2.2334,1.94043,2.88037,3.61035,2.88037,.64746,0,1.39941-.1875,1.39941-.1875l.27051-2.48438s-.25,.10449-.56348,.10449c-1.23145,0-1.62793-1.31494-2.21191-2.50488Zm-3.82031-3.08936h-1.25195v-3.46533h1.66992c.95996,0,1.75293,.41797,1.75293,1.64941,0,1.50293-1.16895,1.81592-2.1709,1.81592Z"/><polygon class="cls-2" points="62.14795 21.14697 64.02588 21.14697 64.02588 30.31104 62.14795 30.31104 62.14795 32.77393 69.41162 32.77393 69.41162 30.31104 67.51221 30.31104 67.51221 21.14697 69.41162 21.14697 69.41162 18.68408 62.14795 18.68408 62.14795 21.14697"/><path class="cls-2" d="M79.2251,24.96729c-.35449,.95996-.60547,2.02441-.60547,2.02441h-.08301s-.25098-1.02246-.60547-2.02441l-2.2959-6.2832h-4.32129v14.08984h2.85938v-7.11816c0-.83496-.14551-2.67188-.14551-2.67188h.08301s.35449,1.81641,.64746,2.56738l2.73438,7.22266h1.56543l2.71387-7.22266c.27148-.70947,.68848-2.69238,.68848-2.69238h.08398s-.22949,1.96191-.22949,2.79688v7.11816h3.25586v-14.08984h-4.1123l-2.2334,6.2832Z"/><polygon class="cls-2" points="91.60596 26.88721 96.51172 26.88721 96.51172 24.29932 91.60596 24.29932 91.60596 21.27246 97.45117 21.27246 97.45117 18.68408 88.12061 18.68408 88.12061 32.77393 97.65918 32.77393 97.65918 30.18555 91.60596 30.18555 91.60596 26.88721"/><rect class="cls-1" x=".27188" y=".35766" width="32.51248" height="32.51251"/><rect class="cls-1" x="3.45938" y="5.13891" width="20.39999" height="23.58746"/><rect class="cls-2" x=".32416" y=".37762" width="32.45648" height="32.45886"/><path class="cls-3" d="M30.65515,6.41766l-4.19604,5.20831c-.2215,.27515-.5553,.43451-.90747,.43451h-1.77576v7.46204c0,1.06079-.86761,1.92993-1.92975,1.92993h-5.20483c-1.06079,0-1.92969-.86914-1.92969-1.92993v-3.9433c-.46826,.35114-.7746,.91144-.7746,1.54144v3.30328c0,1.06085,.86798,1.92993,1.92877,1.92993h3.37903v5.13739c0,.65118-.52783,1.17908-1.17902,1.17908h-6.36005c-.65118,0-1.17902-.52789-1.17902-1.17908v-4.77258c0-.65118-.52661-1.17908-1.1778-1.17908h-3.01825c-1.49176,0-2.70074-1.20898-2.70074-2.69946V7.55817h3.5285c.72742,0,1.28271,.65491,1.16187,1.37207l-.45453,2.73309c-.12079,.71967,.43475,1.37207,1.16187,1.37207h4.49982c.5766,0,1.05695-.41333,1.15924-.96118-.27411,.09088-.58649,.14191-.9151,.14191h-3.21014c-1.06079,0-1.7879-.85663-1.61353-1.90375l.54285-3.26099c.17566-1.04718,.58392-1.90503,.90778-1.90503,.32355,0,.58875,.86908,.58875,1.92993v.49805c.05994-.00873,.12207-.01617,.1842-.01617h5.34296c.04108-.0025,.0835-.005,.12683-.005h5.20483c1.06213,0,1.92975,.86786,1.92975,1.92871v2.57861l3.0705-5.92798c.26392-.50928,.78955-.82922,1.36237-.82922h1.91345c.57532,0,.8941,.66614,.53296,1.11438Z"/><rect class="cls-1" x="23.54062" y="5.13891" width="7.33127" height="7.01251"/></svg>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 28.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_2_00000129197277348757038330000010842559623398722730_"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 439.6 36.2"
5
+ style="enable-background:new 0 0 439.6 36.2;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:#FFFFFF;}
8
+ </style>
9
+ <g id="Layer_1-2">
10
+ <g id="Layer_1-3">
11
+ <path class="st0" d="M67.1,11.3c-0.4-0.5-1.2-0.5-1.6,0c-0.5,0.5-0.4,1.4,0.2,1.8c0.4,0.2,0.9,0.2,1.3,0
12
+ C67.5,12.7,67.6,11.8,67.1,11.3 M65.6,7.4c-3.1-0.7-5.8,2-5.1,5.1c0.4,1.6,1.6,2.8,3.2,3.2c3.1,0.7,5.9-2.1,5.1-5.1
13
+ C68.4,9,67.2,7.8,65.6,7.4 M45.3,24.7c-2-0.7-2.8-0.6-5.3-0.6c-1.8,0-1.8,0-3.9,0c-0.6,0-0.9,3,1.4,3.6c1,0.3,2.1,0.5,2.8,1.2
14
+ c0.3,0.3,0.5,0.9-0.2,0.9h-5.6c-1,0-1.9,0-2.7-0.6c-1.1-1-1.7-2.3-2.2-3.6c-0.6-1.4-1.2-2.7-2-4c-1.5-2.6-3.5-4.9-6.1-6.3
15
+ c-3.3-1.8-8.9-2.6-13.3,0.8c-4.7,3.6-3.7,10.3,0.4,13.6c1.6,1.3,3.7,1.8,5.8,1.7c4-0.2,7-3.2,6.3-6.9c-0.2-1.2-1-2.4-2-3
16
+ c-0.8-0.5-1.7-0.6-2.6-0.6c-0.9,0-2,0.2-2.6,0.9c-0.8,0.8-0.9,2.2-0.3,3.1c0.4,0.5,0.9,0.9,0.8,1.6c-0.1,0.5-0.4,0.8-0.9,0.9
17
+ c-0.8,0.2-1.4-0.3-2-0.8c-1.3-1.4-1.7-3.5-1-5.2c0.9-2.3,3.6-3.5,6-3.5c3.2,0.1,6.2,2.2,7.5,5.1s0.9,6.5-0.9,9.1
18
+ c-4,5.8-13.8,5.1-18.4,0.2C1.4,29.2-0.2,26.2,0,20.6c0.2-3.9,2.4-7.8,5.3-10.6c4.7-4.4,10.9-7.5,17.3-8.8c3.8-0.8,7.8-1,11.7-0.6
19
+ c3.4,0.3,6.9,1,10.2,2c1.6,0.5,3.2,1.1,4.8,1.8c1.4,0.6,3.2,1.3,4.2,2.4c0-2-0.1-4.2-0.1-5.7c0-0.6,0.6-1,1.1-0.7
20
+ c2.2,1,7.5,3.5,11.1,5.2c4.7,2.2,5.1,7.3,5.2,11.8c0,0.1,0,0.2,0,0.3c-0.2,0.3-0.9,0.2-1.2,0.2c-0.6,0-1.4,0-2,0
21
+ c-1.1,0-2.2,0-3.4,0c-2.1-0.1-4.1-1-5.5-2.2c-0.1-0.1-0.6-0.2-0.8,0s-0.1,0.6,0,0.7c0.8,0.8,1.6,1.3,2.6,1.8
22
+ c1.2,0.6,2.6,0.8,4,0.9c1.5,0.1,2.9,0.1,4.4-0.1c1.2-0.1,1.5-0.2,0.3,0.7c-1.1,0.8-2.3,1.4-3.6,1.8c-1.8,0.6-3.7,0.9-5.6,1
23
+ c-1.2,0-2.3,0-3.4-0.2c-0.6-0.1-1.2-0.2-1.8-0.2c-0.5,0-1-0.1-1.5,0c-0.4,0.1-0.8,0.3-1.1,0.7c-0.4,0.5-0.5,1.8-0.3,2.4
24
+ c0.4,1.1,1.3,1.8,2.3,2.4c1,0.6,2.4,0.8,2.7,2c0.1,0.2-2.2,0.3-2.4,0.2h-3c0,0-1.6,0-2.2-0.2c0,0,0,0-0.1,0
25
+ c-0.3-0.2-0.5-0.6-0.6-1c-0.2-0.5-0.5-1-0.8-1.5C47.3,26.2,46.3,25.1,45.3,24.7 M67.8,11.6c0,1.7-1.4,3.2-3.2,3.2
26
+ s-3.2-1.4-3.2-3.1s1.4-3.1,3.2-3.1C66.4,8.4,67.8,9.8,67.8,11.6"/>
27
+ </g>
28
+ <path class="st0" d="M80.4,25.5l3-3c2.2,2.2,4.2,3.1,6.5,3.1c3.2,0,5-1.6,5-4c0-6.4-14-2.8-14-12.5c0-5.2,3.9-8.5,9.8-8.5
29
+ c3.6,0,6.6,1.4,8.5,3.5l-3.1,3.1c-1.6-1.6-3.2-2.5-5.4-2.5c-3,0-4.9,1.5-4.9,3.9c0,6.1,14.1,2.1,14.1,12.2c0,5.4-4.1,8.8-10.2,8.8
30
+ C85.6,29.8,82.6,28.1,80.4,25.5z"/>
31
+ <path class="st0" d="M104.5,19.5V1.2h4.9v17.9c0,4.1,2.4,6.1,6,6.1s5.9-2,5.9-6.1V1.2h4.9v18.3c0,6.8-4.3,10.2-10.8,10.2
32
+ S104.5,26.4,104.5,19.5z"/>
33
+ <path class="st0" d="M130.7,25.5l3-3c2.2,2.2,4.2,3.1,6.5,3.1c3.2,0,5-1.6,5-4c0-6.4-14-2.8-14-12.5c0-5.2,3.9-8.5,9.8-8.5
34
+ c3.6,0,6.6,1.4,8.5,3.5l-3.1,3.1c-1.6-1.6-3.2-2.5-5.4-2.5c-3,0-4.9,1.5-4.9,3.9c0,6.1,14.1,2.1,14.1,12.2c0,5.4-4.1,8.8-10.2,8.8
35
+ C135.9,29.8,132.8,28.1,130.7,25.5L130.7,25.5z"/>
36
+ <path class="st0" d="M154.4,24.5V5.9c0-2.7,2-4.7,4.7-4.7h13.6v4.5h-12c-0.8,0-1.5,0.6-1.5,1.4V13h12.6v4.3h-12.6v6
37
+ c0,0.8,0.6,1.4,1.5,1.4h12v4.5h-13.6C156.4,29.2,154.4,27.2,154.4,24.5z"/>
38
+ <path class="st0" d="M187.5,1.2h9c5.6,0,9.4,2.9,9.4,8.4c0,4.7-2.5,7.3-6.5,8.1l7.4,11.5h-4l-7-11.2h-4.9v11.2h-3.4L187.5,1.2
39
+ L187.5,1.2z M196.4,15c3.6,0,6.1-1.7,6.1-5.4c0-3.5-2.4-5.5-6.1-5.5h-5.4V15C190.9,15,196.4,15,196.4,15z"/>
40
+ <path class="st0" d="M222.9,27.3c-1.1,1.5-3,2.3-5.7,2.3c-4.6,0-7.4-2.3-7.4-5.7s2.8-6,7.8-6c2.1,0,3.7,0.5,4.9,1.3v-2.5
41
+ c0-2.9-1.5-4.3-4.5-4.3c-2,0-4.4,0.8-6,2.3l-1.5-2.2c1.7-2,4.7-3,7.7-3c4.5,0,7.6,2.4,7.6,7.2v6.2c0,2.1,0,4.2,0.1,6.3h-2.9
42
+ C222.9,29.2,222.9,27.3,222.9,27.3z M217.8,27.2c2.9,0,4.7-1.3,4.7-3.3s-1.8-3.3-4.7-3.3s-4.8,1.3-4.8,3.3S215,27.2,217.8,27.2z"/>
43
+ <path class="st0" d="M232,10h3.1v3c1.6-2.6,4.3-3.4,6.4-3.4c4.3,0,7.3,2.8,7.3,8.3v11.3h-3.2V18.4c0-4.1-2.1-5.8-4.9-5.8
44
+ c-3,0-5.4,2-5.4,5.9v10.8H232L232,10L232,10z"/>
45
+ <path class="st0" d="M253.5,19.8v-0.5c0-5.8,4.2-9.8,9.9-9.8c2.8,0,5.2,1.1,6.8,3l-2,2c-1.2-1.3-2.8-2-4.8-2
46
+ c-3.8,0-6.7,2.7-6.7,6.8v0.5c0,4.1,2.8,6.8,6.7,6.8c1.9,0,3.5-0.6,4.8-1.9l2,2c-1.6,1.9-4.1,3-6.8,3
47
+ C257.7,29.6,253.5,25.6,253.5,19.8L253.5,19.8z"/>
48
+ <path class="st0" d="M274.9,0h3.1v13c1.6-2.6,4.3-3.4,6.4-3.4c4.3,0,7.3,2.8,7.3,8.3v11.3h-3.2V18.4c0-4.1-2.1-5.8-4.9-5.8
49
+ c-3,0-5.4,2-5.4,5.9v10.8h-3.2L274.9,0L274.9,0z"/>
50
+ <path class="st0" d="M296.4,19.7v-0.4c0-5.6,3.6-9.7,9-9.7s8.9,4.4,8.2,11h-13.9c0.4,3.6,2.8,6.1,6.6,6.1c2,0,3.6-0.5,4.7-1.5
51
+ l1.8,2c-1.5,1.6-3.9,2.5-6.7,2.5C300.3,29.6,296.4,25.6,296.4,19.7L296.4,19.7z M310.5,17.9c0-3.5-2.1-5.6-5-5.6
52
+ c-3.2,0-5.3,2.2-5.8,5.6H310.5L310.5,17.9z"/>
53
+ <path class="st0" d="M317.8,10h3.2V13c0.9-2.4,3-3.2,5.3-3.2h1.6v3.2H326c-3.1,0-5,1.5-5,4.7v11.4h-3.2L317.8,10L317.8,10z"/>
54
+ <path class="st0" d="M341.5,1.2h8.7c5.6,0,9.4,3.1,9.4,8.4s-3.8,8.4-9.4,8.4h-5.3v11.2h-3.4V1.2z M350.3,15.2
55
+ c3.5,0,5.8-2.2,5.8-5.5s-2.4-5.5-5.8-5.5h-5.4v11H350.3z"/>
56
+ <path class="st0" d="M363.5,10h3.2V13c0.9-2.4,3-3.2,5.3-3.2h1.6v3.2h-1.9c-3.1,0-5,1.5-5,4.7v11.4h-3.2L363.5,10L363.5,10z"/>
57
+ <path class="st0" d="M379,12.8h-3.7V10h6.9v19.2H379V12.8z M378.9,1.1h3.5v4.6h-3.5V1.1z"/>
58
+ <path class="st0" d="M388.6,10h3.1v3c1.5-2.6,4-3.4,6.1-3.4c2.8,0,5,1.2,6.1,3.8c1.6-2.9,4.5-3.8,6.6-3.8c4.2,0,7.1,2.7,7.1,8.2
59
+ v11.4h-3.2v-11c0-4-1.8-5.6-4.6-5.6s-5,2-5,5.6v11h-3.2v-11c0-4-1.8-5.6-4.6-5.6s-5,2-5,5.6v11h-3.2L388.6,10L388.6,10z"/>
60
+ <path class="st0" d="M422.3,19.7v-0.4c0-5.6,3.6-9.7,9-9.7s8.9,4.4,8.2,11h-13.9c0.4,3.6,2.8,6.1,6.6,6.1c2,0,3.6-0.5,4.7-1.5
61
+ l1.8,2c-1.5,1.6-3.9,2.5-6.7,2.5C426.2,29.6,422.3,25.6,422.3,19.7L422.3,19.7z M436.4,17.9c0-3.5-2.1-5.6-5-5.6
62
+ c-3.2,0-5.3,2.2-5.8,5.6H436.4L436.4,17.9z"/>
63
+ </g>
64
+ </svg>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 33"><defs><style>.cls-1{fill:none;}.cls-2{fill:#2354ff;}</style></defs><g><path d="M41.31476,9.48438h.8479c.82684,0,1.4519,1.8739,1.89752,2.94592,1.04962,2.38812,2.07568,3.07922,3.86102,3.07922,.26868,0,.5528-.03033,.80145-.06726h3.23517l.91644-2.85632h5.04419l.93616,2.85632h3.77148L57.53851,.37762h-3.77142l-4.13702,12.3017c-.10089,.03265-.29407,.08466-.526,.08466-1.3161,0-1.74066-1.4057-2.36578-2.677-.2674-.53662-.60242-1.04956-1.04834-1.4281,1.49432-.46942,3.03448-1.83032,3.03448-4.08521,0-2.76672-1.98615-4.19604-4.93201-4.19604h-6.20447V15.44226h3.72681v-5.95789Zm13.50067-2.85754c.33502-1.02594,.5578-2.56622,.5578-2.56622h.08862s.1568,1.51782,.51416,2.58862l1.02606,3.16882h-3.23499l1.04834-3.19122Zm-13.50067-3.54858h1.78534c1.02734,0,1.87518,.44696,1.87518,1.76312,0,1.60742-1.25012,1.94238-2.3208,1.94238h-1.33972V3.07825Z"/><path d="M74.85559,.37762h-3.0578V7.60919c0,.87036,.11188,2.07562,.15558,2.92358h-.08862c-.3573-.89276-.8042-2.03082-1.13922-2.67828l-3.94934-7.47687h-3.99585V15.44226h3.05811v-7.23041c0-.8255-.11188-1.83032-.17914-2.67822h.08954c.31238,.8031,.71466,1.78546,1.09467,2.4541l4.10608,7.45453h3.90601V.37762Z"/><path d="M88.35522,10.39825l-3.25854-.33368c.26776,1.96356-.98114,2.92352-2.5213,2.92352-1.62976,0-3.05811-1.04962-3.05811-5.15601,0-3.88354,1.31738-5.08875,2.94586-5.08875,1.69739,0,2.63354,.95996,2.25519,3.34808l3.48138-.31256c.49054-3.25842-1.27277-5.66895-5.66925-5.66895-4.1734,0-6.87421,2.25488-6.87421,7.69977,0,5.49097,2.63348,7.90027,6.71863,7.90027,4.01691,0,6.22552-2.25366,5.98035-5.31171Z"/><polygon points="97.41473 6.06903 92.84009 6.06903 92.84009 .37762 89.1123 .37762 89.1123 15.44226 92.84009 15.44226 92.84009 9.05975 97.41473 9.05975 97.41473 15.44226 101.1413 15.44226 101.1413 .37762 97.41473 .37762 97.41473 6.06903"/><polygon points="106.36212 9.14941 111.60651 9.14941 111.60651 6.38153 106.36212 6.38153 106.36212 3.14545 112.61151 3.14545 112.61151 .37762 102.63428 .37762 102.63428 15.44226 112.83429 15.44226 112.83429 12.6756 106.36212 12.6756 106.36212 9.14941"/><path d="M122.69806,10.08698c-.26782-.53662-.60278-1.04956-1.04968-1.4281,1.49524-.46942,3.03546-1.83032,3.03546-4.08521,0-2.76672-1.98578-4.19604-4.9317-4.19604h-6.20575V15.44226h3.72778v-5.95789h.84821c.82526,0,1.45032,1.8739,1.89624,2.94592,1.04962,2.38812,2.07666,3.07922,3.86102,3.07922,.69232,0,1.49652-.2005,1.49652-.2005l.28912-2.65582s-.26776,.11078-.6015,.11078c-1.31738,0-1.742-1.4057-2.36572-2.677Zm-4.08386-3.30322h-1.34003V3.07825h1.78564c1.02606,0,1.8739,.44696,1.8739,1.76312,0,1.60742-1.25012,1.94238-2.31952,1.94238Z"/><path d="M127.73077,1.091c0-.3075-.21899-.37097-.43829-.37097h-.42712V1.89911h.23431v-.47437h.10449l.26526,.47437h.26135l-.28754-.4906c.16797-.03113,.28754-.13568,.28754-.3175Zm-.41724,.16565h-.21387v-.32745h.21387c.08856,0,.18805,.03107,.18805,.15686,0,.10834-.0896,.17059-.18805,.17059Z"/><path d="M127.26636,.10992c-.58392,0-1.21509,.37097-1.21509,1.22021,0,.83545,.63116,1.20026,1.21509,1.20026,.58521,0,1.21631-.36481,1.21631-1.20026,0-.85547-.6311-1.22021-1.21631-1.22021Zm0,2.16522c-.48547,0-.93268-.28766-.93268-.95001,0-.66736,.4472-.96002,.93268-.96002,.49054,0,.92279,.29266,.92279,.96002,0,.66235-.43225,.95001-.92279,.95001Z"/><path d="M43.60791,18.68408h-5.90723v14.08984h3.48535v-5.03076h2.42188c2.83887,0,4.78027-1.77393,4.78027-4.84277,0-2.81787-2.00391-4.21631-4.78027-4.21631Zm-.79297,6.5332h-1.62891v-4.00781h1.62891c1.08496,0,2.06641,.45947,2.06641,1.8999,0,1.52393-.98145,2.10791-2.06641,2.10791Z"/><path d="M58.53564,27.76416c-.25098-.50098-.56445-.98096-.98145-1.33594,1.39844-.43848,2.83887-1.71191,2.83887-3.81982,0-2.58838-1.85742-3.92432-4.61328-3.92432h-5.80273v14.08984h3.48633v-5.57324h.79297c.77246,0,1.35645,1.75342,1.77441,2.75537,.98047,2.2334,1.94043,2.88037,3.61035,2.88037,.64746,0,1.39941-.1875,1.39941-.1875l.27051-2.48438s-.25,.10449-.56348,.10449c-1.23145,0-1.62793-1.31494-2.21191-2.50488Zm-3.82031-3.08936h-1.25195v-3.46533h1.66992c.95996,0,1.75293,.41797,1.75293,1.64941,0,1.50293-1.16895,1.81592-2.1709,1.81592Z"/><polygon points="62.14795 21.14697 64.02588 21.14697 64.02588 30.31104 62.14795 30.31104 62.14795 32.77393 69.41162 32.77393 69.41162 30.31104 67.51221 30.31104 67.51221 21.14697 69.41162 21.14697 69.41162 18.68408 62.14795 18.68408 62.14795 21.14697"/><path d="M79.2251,24.96729c-.35449,.95996-.60547,2.02441-.60547,2.02441h-.08301s-.25098-1.02246-.60547-2.02441l-2.2959-6.2832h-4.32129v14.08984h2.85938v-7.11816c0-.83496-.14551-2.67188-.14551-2.67188h.08301s.35449,1.81641,.64746,2.56738l2.73438,7.22266h1.56543l2.71387-7.22266c.27148-.70947,.68848-2.69238,.68848-2.69238h.08398s-.22949,1.96191-.22949,2.79688v7.11816h3.25586v-14.08984h-4.1123l-2.2334,6.2832Z"/><polygon points="91.60596 26.88721 96.51172 26.88721 96.51172 24.29932 91.60596 24.29932 91.60596 21.27246 97.45117 21.27246 97.45117 18.68408 88.12061 18.68408 88.12061 32.77393 97.65918 32.77393 97.65918 30.18555 91.60596 30.18555 91.60596 26.88721"/></g><rect class="cls-1" x=".27188" y=".35766" width="32.51248" height="32.51251"/><rect class="cls-1" x="3.45938" y="5.13891" width="20.39999" height="23.58746"/><path class="cls-2" d="M.32416,.37762V32.83649H32.78064V.37762H.32416ZM30.65515,6.41766l-4.19604,5.20831c-.2215,.27515-.5553,.43451-.90747,.43451h-1.77576v7.46204c0,1.06079-.86761,1.92993-1.92975,1.92993h-5.20483c-1.06079,0-1.92969-.86914-1.92969-1.92993v-3.9433c-.46826,.35114-.7746,.91144-.7746,1.54144v3.30328c0,1.06085,.86798,1.92993,1.92877,1.92993h3.37903v5.13739c0,.65118-.52783,1.17908-1.17902,1.17908h-6.36005c-.65118,0-1.17902-.52789-1.17902-1.17908v-4.77258c0-.65118-.52661-1.17908-1.1778-1.17908h-3.01825c-1.49176,0-2.70074-1.20898-2.70074-2.69946V7.55817h3.5285c.72742,0,1.28271,.65491,1.16187,1.37207l-.45453,2.73309c-.12079,.71967,.43475,1.37207,1.16187,1.37207h4.49982c.5766,0,1.05695-.41333,1.15924-.96118-.27411,.09088-.58649,.14191-.9151,.14191h-3.21014c-1.06079,0-1.7879-.85663-1.61353-1.90375l.54285-3.26099c.17566-1.04718,.58392-1.90503,.90778-1.90503,.32355,0,.58875,.86908,.58875,1.92993v.49805c.05994-.00873,.12207-.01617,.1842-.01617h5.34296c.04108-.0025,.0835-.005,.12683-.005h5.20483c1.06213,0,1.92975,.86786,1.92975,1.92871v2.57861l3.0705-5.92798c.26392-.50928,.78955-.82922,1.36237-.82922h1.91345c.57532,0,.8941,.66614,.53296,1.11438Z"/><rect class="cls-1" x="23.54062" y="5.13891" width="7.33127" height="7.01251"/></svg>
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 439.52 36.16"><defs><style>.cls-1{fill:#30ba78;}.cls-2{fill:#0c322c;}</style></defs><g id="Layer_1-2"><g id="Layer_1-3"><path class="cls-1" d="M66.89,13.09c-.38.25-.89.25-1.27,0-.62-.41-.68-1.28-.18-1.78.45-.46,1.18-.46,1.63,0,.5.5.44,1.36-.18,1.78M68.7,10.57c.72,3.08-2.04,5.84-5.12,5.12-1.57-.37-2.81-1.61-3.18-3.18-.72-3.07,2.04-5.84,5.12-5.12,1.57.37,2.81,1.61,3.18,3.17M47.99,27.11c.35.51.64.99.81,1.48.11.35.26.8.61.99.02.01.04.02.06.03.63.23,2.24.19,2.24.19h2.97c.25,0,2.48,0,2.43-.25-.27-1.19-1.65-1.41-2.7-2.03-.97-.58-1.88-1.23-2.3-2.36-.22-.58-.09-1.92.29-2.41.27-.35.67-.59,1.11-.68.48-.1.97-.01,1.45.03.59.06,1.17.17,1.76.24,1.14.15,2.28.21,3.43.18,1.89-.05,3.78-.35,5.57-.96,1.25-.42,2.48-.99,3.54-1.78,1.21-.9.89-.81-.33-.69-1.47.15-2.95.17-4.42.09-1.37-.08-2.73-.24-3.97-.88-.98-.5-1.82-1.01-2.59-1.79-.12-.12-.19-.46.02-.68.21-.21.64-.09.78.02,1.35,1.13,3.37,2.06,5.46,2.16,1.13.06,2.23.08,3.36.03.56-.03,1.42-.02,1.98-.03.29,0,1.09.08,1.24-.23.05-.09.04-.19.04-.3-.17-4.52-.5-9.62-5.23-11.78-3.53-1.61-8.82-4.11-11.05-5.15-.52-.25-1.12.14-1.12.72,0,1.51.08,3.68.08,5.65-1.07-1.09-2.87-1.78-4.25-2.41-1.56-.72-3.17-1.32-4.81-1.83-3.3-1.02-6.72-1.65-10.15-1.99-3.89-.39-7.86-.2-11.69.59-6.32,1.31-12.53,4.35-17.24,8.79C2.44,12.8.17,16.67.02,20.61c-.22,5.57,1.34,8.56,4.21,11.64,4.57,4.91,14.41,5.6,18.39-.23,1.79-2.62,2.18-6.18.88-9.07-1.3-2.9-4.29-4.99-7.46-5.1-2.46-.08-5.08,1.17-6.02,3.45-.72,1.74-.31,3.88,1,5.23.51.53,1.2.96,1.96.79.44-.1.82-.43.88-.89.1-.67-.48-1.1-.84-1.61-.65-.92-.52-2.31.29-3.09.68-.66,1.7-.86,2.65-.86.89,0,1.79.16,2.56.61,1.08.63,1.79,1.79,2.04,3.01.74,3.66-2.23,6.63-6.26,6.86-2.06.12-4.16-.42-5.77-1.71-4.07-3.28-5.07-9.98-.41-13.56,4.42-3.4,10-2.52,13.29-.76,2.63,1.41,4.6,3.72,6.08,6.28.75,1.28,1.38,2.63,1.97,3.99.57,1.31,1.1,2.63,2.23,3.59.75.64,1.68.61,2.67.61h5.63c.76,0,.58-.51.25-.85-.75-.76-1.82-.93-2.81-1.21-2.27-.62-2.04-3.63-1.41-3.63,2.03,0,2.09.06,3.87.04,2.56-.04,3.34-.18,5.34.56,1.07.4,2.1,1.44,2.77,2.4"/></g><path class="cls-2" d="M80.34,25.52l3.04-3.04c2.16,2.2,4.16,3.12,6.52,3.12,3.16,0,5.04-1.6,5.04-3.96,0-6.44-13.96-2.8-13.96-12.48,0-5.2,3.88-8.52,9.76-8.52,3.6,0,6.6,1.4,8.48,3.52l-3.12,3.12c-1.6-1.64-3.24-2.48-5.36-2.48-2.96,0-4.88,1.52-4.88,3.88,0,6.08,14.08,2.12,14.08,12.24,0,5.36-4.12,8.84-10.2,8.84-4.2,0-7.24-1.68-9.4-4.24Z"/><path class="cls-2" d="M104.42,19.52V1.2h4.92v17.92c0,4.08,2.36,6.08,5.96,6.08s5.92-2,5.92-6.08V1.2h4.92v18.32c0,6.84-4.32,10.24-10.84,10.24s-10.88-3.4-10.88-10.24Z"/><path class="cls-2" d="M130.62,25.52l3.04-3.04c2.16,2.2,4.16,3.12,6.52,3.12,3.16,0,5.04-1.6,5.04-3.96,0-6.44-13.96-2.8-13.96-12.48,0-5.2,3.88-8.52,9.76-8.52,3.6,0,6.6,1.4,8.48,3.52l-3.12,3.12c-1.6-1.64-3.24-2.48-5.36-2.48-2.96,0-4.88,1.52-4.88,3.88,0,6.08,14.08,2.12,14.08,12.24,0,5.36-4.12,8.84-10.2,8.84-4.2,0-7.24-1.68-9.4-4.24Z"/><path class="cls-2" d="M154.38,24.52V5.88c0-2.72,1.96-4.68,4.68-4.68h13.6v4.48h-11.96c-.84,0-1.48.64-1.48,1.44v5.88h12.6v4.28h-12.6v6c0,.8.64,1.44,1.48,1.44h11.96v4.48h-13.6c-2.72,0-4.68-1.96-4.68-4.68Z"/><path class="cls-2" d="M187.46,1.2h9c5.64,0,9.4,2.88,9.4,8.36,0,4.72-2.52,7.32-6.52,8.12l7.36,11.52h-3.96l-7-11.24h-4.88v11.24h-3.4V1.2ZM196.3,15.04c3.64,0,6.08-1.68,6.08-5.4,0-3.52-2.44-5.52-6.08-5.52h-5.44v10.92h5.44Z"/><path class="cls-2" d="M222.86,27.28c-1.08,1.52-2.96,2.32-5.68,2.32-4.56,0-7.4-2.28-7.4-5.68s2.8-5.96,7.76-5.96c2.08,0,3.72.48,4.92,1.32v-2.52c0-2.88-1.48-4.28-4.48-4.28-2,0-4.36.76-6.04,2.28l-1.52-2.2c1.72-1.96,4.72-3,7.68-3,4.48,0,7.56,2.4,7.56,7.16v6.16c0,2.12,0,4.2.12,6.32h-2.92v-1.92ZM217.78,27.16c2.88,0,4.68-1.28,4.68-3.32s-1.76-3.28-4.68-3.28-4.76,1.28-4.76,3.28,1.88,3.32,4.76,3.32Z"/><path class="cls-2" d="M231.94,9.96h3.12v3.04c1.56-2.64,4.32-3.44,6.36-3.44,4.32,0,7.28,2.8,7.28,8.32v11.32h-3.2v-10.84c0-4.12-2.08-5.84-4.88-5.84-2.96,0-5.44,2.04-5.44,5.88v10.8h-3.24V9.96Z"/><path class="cls-2" d="M253.46,19.8v-.48c0-5.76,4.2-9.76,9.88-9.76,2.76,0,5.2,1.08,6.76,2.96l-2,2c-1.2-1.28-2.8-1.96-4.76-1.96-3.84,0-6.68,2.68-6.68,6.76v.48c0,4.08,2.84,6.8,6.72,6.8,1.92,0,3.52-.6,4.84-1.92l1.96,1.96c-1.6,1.88-4.08,2.96-6.84,2.96-5.72,0-9.88-4.04-9.88-9.8Z"/><path class="cls-2" d="M274.82,0h3.12v13c1.56-2.64,4.32-3.44,6.36-3.44,4.32,0,7.28,2.8,7.28,8.32v11.32h-3.2v-10.84c0-4.12-2.08-5.84-4.88-5.84-2.96,0-5.44,2.04-5.44,5.88v10.8h-3.24V0Z"/><path class="cls-2" d="M296.34,19.68v-.4c0-5.56,3.6-9.72,9-9.72s8.92,4.36,8.16,11h-13.92c.36,3.56,2.8,6.08,6.56,6.08,2,0,3.56-.48,4.72-1.52l1.84,2c-1.48,1.6-3.92,2.48-6.72,2.48-5.72,0-9.64-4.04-9.64-9.92ZM310.42,17.92c-.04-3.52-2.08-5.56-5.04-5.56-3.24,0-5.32,2.2-5.76,5.56h10.8Z"/><path class="cls-2" d="M317.7,9.96h3.16v3.08c.92-2.44,2.96-3.16,5.32-3.16h1.64v3.2h-1.92c-3.12,0-4.96,1.52-4.96,4.72v11.4h-3.24V9.96Z"/><path class="cls-2" d="M341.42,1.2h8.68c5.6,0,9.36,3.12,9.36,8.44s-3.76,8.4-9.36,8.4h-5.28v11.16h-3.4V1.2ZM350.26,15.16c3.48,0,5.84-2.16,5.84-5.52s-2.36-5.48-5.84-5.48h-5.44v11h5.44Z"/><path class="cls-2" d="M363.42,9.96h3.16v3.08c.92-2.44,2.96-3.16,5.32-3.16h1.64v3.2h-1.92c-3.12,0-4.96,1.52-4.96,4.72v11.4h-3.24V9.96Z"/><path class="cls-2" d="M378.98,12.76h-3.72v-2.8h6.92v19.24h-3.2V12.76ZM378.86,1.08h3.52v4.64h-3.52V1.08Z"/><path class="cls-2" d="M388.54,9.96h3.12v3c1.48-2.56,3.96-3.4,6.08-3.4,2.8,0,4.96,1.24,6.08,3.76,1.6-2.88,4.48-3.76,6.6-3.76,4.2,0,7.08,2.68,7.08,8.2v11.44h-3.2v-11.04c0-3.96-1.84-5.64-4.64-5.64s-5,2-5,5.64v11.04h-3.24v-11.04c0-3.96-1.84-5.64-4.6-5.64s-5.04,2-5.04,5.64v11.04h-3.24V9.96Z"/><path class="cls-2" d="M422.26,19.68v-.4c0-5.56,3.6-9.72,9-9.72s8.92,4.36,8.16,11h-13.92c.36,3.56,2.8,6.08,6.56,6.08,2,0,3.56-.48,4.72-1.52l1.84,2c-1.48,1.6-3.92,2.48-6.72,2.48-5.72,0-9.64-4.04-9.64-9.92ZM436.34,17.92c-.04-3.52-2.08-5.56-5.04-5.56-3.24,0-5.32,2.2-5.76,5.56h10.8Z"/></g></svg>
@@ -84,10 +84,7 @@
84
84
  margin-top: 10px;
85
85
  display: -webkit-box;
86
86
  -webkit-box-orient: vertical;
87
- // -webkit-line-clamp: 3;
88
- // line-clamp: 3;
89
87
  text-overflow: ellipsis;
90
- color: var(--secondary);
91
88
  }
92
89
  }
93
90
  }
@@ -49,6 +49,14 @@ $primary-50 : #A7BFF1; // Active dark
49
49
  $primary-20 : #EDF2FC;
50
50
  $primary-15 : #EEF1F6; // Category active light
51
51
 
52
+ $green-140 : #025937;
53
+ $green-120 : #008657;
54
+ $green-jungle : #30BA78;
55
+ $green-80 : #42D29F;
56
+ $green-60 : #83E1BE;
57
+ $green-40 : #C0EFDE;
58
+ $green-20 : #EAFAF4;
59
+
52
60
  $secondary : $grey-50;
53
61
  $link : $primary-80;
54
62
 
@@ -847,7 +855,7 @@ BODY, .theme-dark {
847
855
  // Header, Footer and Consent banner defaults
848
856
  --banner-text-color : #{$lightest};
849
857
 
850
- --primary-keyboard-focus : #6889EE;
858
+ --primary-keyboard-focus : hsl(from var(--primary) h s calc(l + 10));
851
859
 
852
860
  --nav-bg : #{$body-bg};
853
861
  --nav-active : #333;
@@ -1,27 +1,84 @@
1
1
  .suse {
2
- $primary: hsl(225, 100%, 57%);
3
- $info: mix($primary, $secondary, 50%);
4
- $selected: rgba($primary, .5);
5
-
6
- --primary : #{$primary};
7
- --primary-text : #fff;
8
- --primary-hover-bg : #{darken($primary, 10%)};
9
- --primary-hover-text : #{saturate($lightest, 20%)};
10
- --primary-active-bg : #{darken($primary, 25%)};
11
- --primary-active-text : #{contrast-color(darken($primary, 25%))};
12
- --primary-border : #{$primary};
13
- --primary-banner-bg : #{rgba($primary, 0.15)};
14
- --primary-light-bg : #{rgba($primary, 0.05)};
15
- --primary-keyboard-focus : hsl(from var(--primary) h s calc(l - 10));
16
-
17
- --info : #{$info};
18
- --info-text : #{contrast-color($info)};
19
- --info-hover-bg : #{darken($info, 10%)};
20
- --info-hover-text : #{saturate($lightest, 20%)};
21
- --info-active-bg : #{darken($info, 25%)};
22
- --info-active-text : #{contrast-color(darken($info, 25%))};
23
- --info-border : #{$info};
24
- --info-banner-bg : #{rgba($info, 0.15)};
25
- --info-light-bg : #{rgba($info, 0.05)};
2
+ $green-jungle : #30BA78;
3
+ $light-green-jungle: #4DD192;
4
+ $lighter-green-jungle: #72EEB3;
26
5
 
6
+ $jungle-120: #008657;
7
+
8
+ &.theme-light {
9
+ --primary: #{$jungle-120};
10
+ --primary-text: #FFFFFF;
11
+ --primary-hover: #006B46;
12
+ --primary-hover-bg: #006B46;
13
+ --primary-border: #{$green-120};
14
+
15
+ --link: #4871C7;
16
+ --active-nav: #{$green-140};
17
+
18
+ --non-primary-text: #{$green-120};
19
+ --non-primary-hover: #{$green-20};
20
+
21
+ --secondary: var(--body-bg);
22
+ --secondary-border: var(--primary);
23
+ --on-secondary: var(--non-primary-text);
24
+ --secondary-hover: var(--non-primary-hover);
25
+
26
+ --tertiary: transparent;
27
+ --on-tertiary: var(--non-primary-text);
28
+ --on-tertiary-hover: var(--non-primary-text);
29
+ --on-tertiary-header: var(--non-primary-text);
30
+ --on-tertiary-header-hover: var(--non-primary-text);
31
+ --tertiary-hover: var(--non-primary-hover);
32
+ --tertiary-hover-app-bar: var(--non-primary-text);
33
+
34
+ $super-light-green: #F4F6F5;
35
+ --active: #{$green-140};
36
+ --on-active: #{$grey-0};
37
+ --active-hover: #{lighten($green-140, 5%)};
38
+ --category-active: #{$super-light-green};
39
+ --category-active-hover: #e8eeeb;
40
+
41
+ --checkbox-tick : var(--on-active);
42
+ --checkbox-border : var(--body-border);
43
+ --checkbox-tick-disabled : #{darken($disabled, 40%)};
44
+ --checkbox-disabled-bg : #{$disabled};
45
+ --checkbox-ticked-bg : var(--active);
46
+ }
47
+
48
+ &.theme-dark {
49
+ --link: #9BBFFD;
50
+ --active-nav: #{$green-40};
51
+
52
+ --primary: #{$light-green-jungle};
53
+ --primary-text: #{$grey-90};
54
+ --primary-hover: #{$lighter-green-jungle};
55
+ --primary-hover-bg: #{$lighter-green-jungle};
56
+ --primary-border: #{$lighter-green-jungle};
57
+
58
+ --non-primary-text: #{$lighter-green-jungle};
59
+ --non-primary-hover: #1E372B;
60
+
61
+ --secondary: var(--body-bg);
62
+ --secondary-border: var(--non-primary-text);
63
+ --on-secondary: var(--non-primary-text);
64
+ --secondary-hover: var(--non-primary-hover);
65
+
66
+ --tertiary: transparent;
67
+ --on-tertiary: var(--non-primary-text);
68
+ --on-tertiary-hover: var(--non-primary-text);
69
+ --on-tertiary-header: var(--non-primary-text);
70
+ --on-tertiary-header-hover: var(--non-primary-text);
71
+ --tertiary-hover: var(--non-primary-hover);
72
+ --tertiary-hover-app-bar: var(--non-primary-text);
73
+
74
+ $category-active:#303633;
75
+ --active: #{$green-40};
76
+ --on-active: #{$grey-90};
77
+ --active-hover: #{$green-60};
78
+ --category-active: #{$category-active};
79
+ --category-active-hover: #{lighten($category-active, 10%)};
80
+
81
+ --toggle-off-bg: #{$grey-70};
82
+ --sortable-table-selected-bg: #3f4350;
83
+ }
27
84
  }
@@ -158,6 +158,8 @@ generic:
158
158
  genericRow: row {index}
159
159
  showLess: Show less
160
160
  showMore: Show more
161
+ externalIps: External IPs
162
+ internalIps: Internal IPs
161
163
  opensInNewTab: Opens in a new tab
162
164
 
163
165
  tabs:
@@ -233,7 +235,7 @@ nav:
233
235
  workload: Workloads
234
236
  monitoring: Monitoring
235
237
  advanced: Advanced
236
- drivers: Drivers
238
+ providers: Providers
237
239
  RKE1Configuration: RKE1 Configuration
238
240
  admission: Admission
239
241
  apps: Apps
@@ -1576,6 +1578,7 @@ cluster:
1576
1578
  nodeLabel:
1577
1579
  title: Node Labels
1578
1580
  label: Add Label
1581
+ ipv6: "It looks like this cluster uses IPv6 networking: <code>Node Private IP</code> should be set to the cluster's IPV6 address."
1579
1582
  registrationCommand:
1580
1583
  label: Registration Command
1581
1584
  linuxDetail: Run this command on each of the existing Linux machines you want to register.
@@ -2077,6 +2080,21 @@ cluster:
2077
2080
  httpEndpoint: Allow access to EC2 metadata
2078
2081
  httpTokens: Use tokens for metadata
2079
2082
  tagTitle: EC2 Tags
2083
+ enableIpv6:
2084
+ label: Enable IPv6
2085
+ description: "Checking this automatically sets your <a aria-label='scroll to the networking section in cluster configuration' href=\"#networking\">Network Stack Preference Order</a> to <b>DUAL</b> stack, enabling both IPv4 and IPv6. For an IPv6-only cluster, you can manually change that setting to <b>IPv6</b>."
2086
+ ipv6AddressCount:
2087
+ label: IPv6 Address Count
2088
+ tooltip: Specifies the number of IPv6 addresses to assign to the network interface
2089
+ error: IPv6 Address Count must be greater than 0 when using an IPv6 vpc or subnet.
2090
+ enablePrimaryIpv6:
2091
+ label: Enable Static Primary Ipv6
2092
+ description: This allows IPv6 communication for components and workloads.
2093
+ ipv6AddressOnly:
2094
+ label: Use IPv6 Only
2095
+ httpProtocolIpv6:
2096
+ label: Use IPv6 for instance metadata service
2097
+ ipv6ValidationWarning: When one pool uses an IPv6 or dual-stack subnet/vpc, all pools must use an IPv6 or dual-stack subnet/vpc.
2080
2098
  pnap:
2081
2099
  serverLocation:
2082
2100
  label: Location
@@ -2249,6 +2267,18 @@ cluster:
2249
2267
  rkeTemplate: RKE Template
2250
2268
 
2251
2269
  machinePool:
2270
+ automation:
2271
+ label: Automation
2272
+ autoscaler:
2273
+ heading: Autoscaler
2274
+ enable: Enable autoscaler and override "Machine Count" value
2275
+ machineCountValueOverride: Controlled by autoscaler
2276
+ baseUnit: Machines
2277
+ min: Min
2278
+ max: Max
2279
+ validation:
2280
+ isAutoscalerMaxGreaterThanMin: The max machines count must be equal or exceed the min machine count.
2281
+ etcdControlPlaneWarning: We don't recommend using Autoscaler with machine pools that have the etcd or Control Plane roles. You can modify the yaml if you want to override the current value.
2252
2282
  name:
2253
2283
  label: Pool Name
2254
2284
  placeholder: A random one will be generated by default
@@ -2388,8 +2418,8 @@ cluster:
2388
2418
  providerGroup:
2389
2419
  create-custom1: Use existing nodes and create a cluster using RKE
2390
2420
  create-custom2: Use existing nodes and create a cluster using RKE2/K3s
2391
- create-kontainer: Create a cluster in a hosted Kubernetes provider
2392
- register-kontainer: Register an existing cluster in a hosted Kubernetes provider
2421
+ create-hosted: Create a cluster in a hosted Kubernetes provider
2422
+ register-hosted: Register an existing cluster in a hosted Kubernetes provider
2393
2423
  create-rke1: Provision new nodes and create a cluster using RKE
2394
2424
  create-rke2: Provision new nodes and create a cluster using RKE2/K3s
2395
2425
  create-template: Use a Catalog Template to create a cluster
@@ -2523,6 +2553,14 @@ cluster:
2523
2553
  label: Accept any certificate (insecure)
2524
2554
  endpointCA:
2525
2555
  label: Endpoint CA Cert
2556
+ stackPreference:
2557
+ label: Stack Preference
2558
+ description: "Stack preference determines the networking stack used by the cluster. The selected value configures the address used for health and readiness probes of calico, etcd, kube-apiserver, kube-scheduler, kube-controller-manager, and kubelet. It also defines the server URL in the <code>authentication-token-webhook-config-file</code> for the Authorized Cluster Endpoint and the advertise-client-urls for etcd during snapshot restore. When set to <code>dual</code>, the cluster uses <code>localhost</code>; when set to <code>ipv6</code>, it uses <code>[::1]</code>; and when set to <code>ipv4</code>, it uses <code>127.0.0.1</code>."
2559
+ options:
2560
+ ipv4: IPv4
2561
+ ipv6: IPv6
2562
+ dual: Dual-Stack
2563
+ errorNeedsIpv6: Stack preference must be set to dual-stack or ipv6 if using ipv6 networking in nodepools.
2526
2564
  k3s:
2527
2565
  systemService:
2528
2566
  coredns: 'CoreDNS'
@@ -2679,6 +2717,10 @@ cruResource:
2679
2717
  previewYaml: Edit as YAML
2680
2718
  showYaml: View as YAML
2681
2719
 
2720
+ providers:
2721
+ hosted:
2722
+ title: Hosted Providers
2723
+ prime: Prime only
2682
2724
  drivers:
2683
2725
  kontainer:
2684
2726
  title: Cluster Drivers
@@ -3619,6 +3661,7 @@ internalExternalIP:
3619
3661
  none: None
3620
3662
  copyInternalIp: Copy internal IP address to clipboard
3621
3663
  copyExternalIp: Copy external IP address to clipboard
3664
+ clickToShowMoreIps: "Click to show {count} more {count, plural, one {IP} other {IPs}}"
3622
3665
 
3623
3666
  istio:
3624
3667
  links:
@@ -6589,6 +6632,7 @@ storageClass:
6589
6632
 
6590
6633
  tableHeaders:
6591
6634
  assuredConcurrencyShares: Assured Concurrency Shares
6635
+ autoscaler: Autoscaler
6592
6636
  accessKey: Access Key
6593
6637
  addressType: Address Type
6594
6638
  accessModes: Access Modes
@@ -9153,3 +9197,24 @@ component:
9153
9197
  marchToMayHourly: "Every hour, only in March, April, and May"
9154
9198
  every4Hours9to17: "At 0 minutes past the hour, every 4 hours, between 09:00 AM and 05:00 PM"
9155
9199
 
9200
+ autoscaler:
9201
+ card:
9202
+ title: Autoscaler
9203
+ pause: Pause
9204
+ resume: Resume
9205
+ loadingError: There was a problem loading details
9206
+ loadingAlt: Details Loading
9207
+ details:
9208
+ status: Status
9209
+ health: Health
9210
+ scaleDown: Scale Down
9211
+ scaleUp: Scale Up
9212
+ nodes: Nodes
9213
+ ready: Ready
9214
+ notStarted: Not Started
9215
+ inTotal: In Total
9216
+ provisioning: Provisioning
9217
+ paused: Paused
9218
+ unavailable: Unavailable
9219
+ tab:
9220
+ title: Autoscaler
@@ -0,0 +1,113 @@
1
+ <script setup lang="ts">
2
+ import { computed, ComputedRef } from 'vue';
3
+ import { useFetch } from '@shell/components/Resource/Detail/FetchLoader/composables';
4
+ import { useInterval } from '@shell/composables/useInterval';
5
+ import { useI18n } from '@shell/composables/useI18n';
6
+ import { useStore } from 'vuex';
7
+
8
+ export interface Props {
9
+ value: any;
10
+ }
11
+
12
+ export interface Detail {
13
+ label: string;
14
+ value?: string | { component: any; props: any };
15
+ }
16
+
17
+ const props = defineProps<Props>();
18
+
19
+ const store = useStore();
20
+ const i18n = useI18n(store);
21
+
22
+ const fetch = useFetch(async() => {
23
+ return await props.value.loadAutoscalerDetails();
24
+ });
25
+
26
+ // The backend only updates the configmap every 10 seconds and we don't cache the configmap in the stores
27
+ useInterval(() => fetch.value.refresh(), 10000);
28
+
29
+ const details: ComputedRef<Detail[]> = computed(() => fetch.value.data);
30
+ </script>
31
+
32
+ <template>
33
+ <div class="autoscaler-card">
34
+ <div
35
+ v-if="fetch.loading && !fetch.refreshing"
36
+ class="loading"
37
+ >
38
+ <i
39
+ class="icon icon-lg icon-spinner icon-spin"
40
+ :alt="i18n.t('autoscaler.card.loadingAlt')"
41
+ />
42
+ </div>
43
+
44
+ <div
45
+ v-else-if="fetch.data"
46
+ class="details"
47
+ >
48
+ <div
49
+ v-for="(detail) in details"
50
+ :key="detail.label"
51
+ class="detail"
52
+ >
53
+ <label
54
+ v-if="detail.value"
55
+ class="label text-deemphasized"
56
+ >
57
+ {{ detail.label }}
58
+ </label>
59
+ <h5 v-else-if="detail.label">
60
+ {{ detail.label }}
61
+ </h5>
62
+ <div
63
+ v-if="detail.value"
64
+ class="value"
65
+ >
66
+ <component
67
+ :is="detail.value.component"
68
+ v-if="typeof detail.value === 'object'"
69
+ v-bind="detail.value.props"
70
+ />
71
+ <span v-else>{{ detail.value }}</span>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ <div
76
+ v-else
77
+ class="text-warning"
78
+ >
79
+ {{ i18n.t('autoscaler.card.loadingError') }}
80
+ </div>
81
+ </div>
82
+ </template>
83
+
84
+ <style lang="scss" scoped>
85
+ .autoscaler-card {
86
+ width: 240px;
87
+
88
+ .loading {
89
+ display: flex;
90
+ justify-content: center;
91
+ }
92
+ .detail {
93
+ display: flex;
94
+ white-space: nowrap;
95
+ width: 244px;
96
+
97
+ &:not(:last-of-type) {
98
+ margin-bottom: 8px;
99
+ }
100
+
101
+ label, .value {
102
+ width: 50%;
103
+ }
104
+ }
105
+
106
+ h5 {
107
+ margin-bottom: 0;
108
+ margin-top: 12px;
109
+ font-size: 14px;
110
+ font-weight: 600;
111
+ }
112
+ }
113
+ </style>
@@ -0,0 +1,94 @@
1
+ <script setup lang="ts">
2
+ import { useFetch } from '@shell/components/Resource/Detail/FetchLoader/composables';
3
+ import Tab from '@shell/components/Tabbed/Tab.vue';
4
+ import { useI18n } from '@shell/composables/useI18n';
5
+ import { computed, onMounted, ref } from 'vue';
6
+ import { useStore } from 'vuex';
7
+ import SortableTable from '@shell/components/SortableTable/index.vue';
8
+ import { useInterval } from '@shell/composables/useInterval';
9
+
10
+ export interface Props {
11
+ value: any;
12
+ }
13
+
14
+ export interface Detail {
15
+ label: string;
16
+ values: (string | { component: any; props: any })[];
17
+ }
18
+
19
+ const props = withDefaults(defineProps<Props>(), { value: true });
20
+
21
+ const store = useStore();
22
+ const i18n = useI18n(store);
23
+
24
+ const table = ref<any>(null);
25
+
26
+ const eventHeaders = [
27
+ {
28
+ name: 'type',
29
+ label: i18n.t('tableHeaders.type'),
30
+ value: '_type',
31
+ sort: '_type',
32
+ },
33
+ {
34
+ name: 'reason',
35
+ label: i18n.t('tableHeaders.reason'),
36
+ value: 'reason',
37
+ sort: 'reason',
38
+ },
39
+ {
40
+ name: 'date',
41
+ label: i18n.t('tableHeaders.updated'),
42
+ value: 'firstTimestamp',
43
+ sort: 'date:desc',
44
+ formatter: 'LiveDate',
45
+ formatterOpts: { addSuffix: true },
46
+ width: 125
47
+ },
48
+ {
49
+ name: 'message',
50
+ label: i18n.t('tableHeaders.message'),
51
+ value: 'message',
52
+ sort: 'message',
53
+ },
54
+ ];
55
+
56
+ const fetch = useFetch(async() => {
57
+ return await props.value.loadAutoscalerEvents();
58
+ });
59
+
60
+ // From the FAQ there appears to be a 20 second target between detecting scaling needs to happen to scaling beginning
61
+ // so I don't see a reason to poll quicker than 20 seconds.
62
+ // https://github.com/kubernetes/autoscaler/blob/9befb31fd94d73ae0b888bd9536ae085cd9304e1/cluster-autoscaler/FAQ.md#what-are-the-service-level-objectives-for-cluster-autoscaler
63
+ useInterval(() => {
64
+ fetch.value.refresh();
65
+ }, 20000);
66
+
67
+ const rows = computed(() => {
68
+ return fetch.value.data || [];
69
+ });
70
+
71
+ onMounted(() => {
72
+ table.value?.changeSort('date', true);
73
+ });
74
+
75
+ </script>
76
+
77
+ <template>
78
+ <Tab
79
+ name="autoscaler"
80
+ :label="i18n.t('autoscaler.tab.title')"
81
+ >
82
+ <SortableTable
83
+ ref="table"
84
+ :headers="eventHeaders"
85
+ :namespaced="false"
86
+ :row-actions="false"
87
+ default-sort-by="date"
88
+ :rows="rows"
89
+ />
90
+ </Tab>
91
+ </template>
92
+
93
+ <style lang="scss" scoped>
94
+ </style>
@@ -119,7 +119,7 @@ export default {
119
119
 
120
120
  <style lang="scss" scoped>
121
121
  .rancher-icon-fill {
122
- fill: var(--link, var(--primary));
122
+ fill: var(--on-tertiary, var(--primary));
123
123
  }
124
124
 
125
125
  .cluster-icon-menu {
@@ -79,7 +79,7 @@ export default {
79
79
 
80
80
  <style lang="scss" scoped>
81
81
  .rancher-icon-fill {
82
- fill: var(--link, var(--primary));
82
+ fill: var(--on-tertiary, var(--primary));
83
83
  }
84
84
  .cluster-icon {
85
85
  align-items: center;