@appscode/design-system 2.0.59 → 2.0.60

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 (152) hide show
  1. package/package.json +1 -1
  2. package/plugins/theme.js +2 -5
  3. package/plugins/time-convert.js +5 -9
  4. package/plugins/vue-toaster.js +2 -1
  5. package/vue-components/plugins/time-convert.js +2 -6
  6. package/vue-components/styles/base/utilities/_colors.scss +20 -26
  7. package/vue-components/styles/base/utilities/_generate-color-classes.scss +41 -233
  8. package/vue-components/styles/base/utilities/_global.scss +13 -14
  9. package/vue-components/styles/base/utilities/_layouts.scss +1 -2
  10. package/vue-components/styles/base/utilities/_mixin.scss +8 -46
  11. package/vue-components/styles/base/utilities/_root-variables.scss +1 -1
  12. package/vue-components/styles/base/utilities/_spacing.scss +1 -1
  13. package/vue-components/styles/base/utilities/_typography.scss +1 -1
  14. package/vue-components/styles/components/_ac-drag.scss +1 -1
  15. package/vue-components/styles/components/_badge-tags.scss +75 -0
  16. package/vue-components/styles/components/_card-body-wrapper.scss +1 -1
  17. package/vue-components/styles/components/_pagination.scss +2 -2
  18. package/vue-components/styles/components/_preview-modal.scss +3 -3
  19. package/vue-components/styles/components/_progress-bar.scss +3 -3
  20. package/vue-components/styles/components/_table.scss +3 -3
  21. package/vue-components/styles/components/_tabs.scss +2 -2
  22. package/vue-components/styles/components/_terminal.scss +4 -4
  23. package/vue-components/styles/components/_wizard.scss +3 -3
  24. package/vue-components/styles/components/ac-toaster/_ac-toasted.scss +10 -5
  25. package/vue-components/styles/components/alert/_alert.scss +2 -12
  26. package/vue-components/styles/components/alert/_toast.scss +1 -1
  27. package/vue-components/styles/components/bbum/_all.scss +1 -1
  28. package/vue-components/styles/components/bbum/_card-team.scss +1 -6
  29. package/vue-components/styles/components/bbum/_information-center.scss +4 -4
  30. package/vue-components/styles/components/bbum/_mobile-desktop.scss +10 -5
  31. package/vue-components/styles/components/bbum/_user-profile.scss +1 -1
  32. package/vue-components/styles/components/cards/_info.scss +1 -7
  33. package/vue-components/styles/components/editor/_filtered-file-editor.scss +3 -3
  34. package/vue-components/styles/components/editor/_monaco-editor.scss +1 -1
  35. package/vue-components/styles/components/form-fields/_input-card.scss +2 -2
  36. package/vue-components/styles/components/form-fields/_input.scss +3 -3
  37. package/vue-components/styles/components/navbar/_menu-content.scss +1 -2
  38. package/vue-components/styles/components/select-box/_ac-select-box.scss +2 -2
  39. package/vue-components/styles/components/select-box/_multi-select.scss +4 -9
  40. package/vue-components/styles/components/sidebar/_left-sidebar.scss +2 -2
  41. package/vue-components/styles/components/ui-builder/_ui-builder.scss +1 -1
  42. package/vue-components/styles/components/ui-builder/_vue-open-api.scss +5 -10
  43. package/vue-components/styles/layouts/_code-preview.scss +2 -2
  44. package/vue-components/styles/theme/_dark.scss +1 -1
  45. package/vue-components/v2/breadcrumbs/Breadcrumb.vue +14 -27
  46. package/vue-components/v2/button/Button.vue +2 -7
  47. package/vue-components/v2/button/DownloadBtn.vue +9 -9
  48. package/vue-components/v2/card/CardContent.vue +1 -1
  49. package/vue-components/v2/card/CardHeader.vue +2 -4
  50. package/vue-components/v2/card/PaymentCard.vue +1 -1
  51. package/vue-components/v2/card/PaymentCardOptionButtons.vue +1 -1
  52. package/vue-components/v2/card/PaymentCards.vue +15 -11
  53. package/vue-components/v2/content/ContentHeader.vue +6 -6
  54. package/vue-components/v2/editor/Editor.vue +2 -11
  55. package/vue-components/v2/editor/FilteredFileEditor.vue +5 -17
  56. package/vue-components/v2/editor/MonacoEditor.vue +5 -12
  57. package/vue-components/v2/editor/ResourceKeyValueEditor.vue +4 -14
  58. package/vue-components/v2/form/Form.vue +9 -12
  59. package/vue-components/v2/header/Header.vue +1 -4
  60. package/vue-components/v2/loaders/ResourceLoader.vue +5 -5
  61. package/vue-components/v2/loaders/SidebarLoader.vue +5 -5
  62. package/vue-components/v2/modal/Modal.vue +2 -7
  63. package/vue-components/v2/modals/DeleteConfirmationModal.vue +1 -6
  64. package/vue-components/v2/modals/JsonShowModal.vue +3 -15
  65. package/vue-components/v2/navbar/Appdrawer.vue +2 -10
  66. package/vue-components/v2/navbar/ThemeMode.vue +12 -18
  67. package/vue-components/v2/navbar/User.vue +19 -82
  68. package/vue-components/v2/notification/Notification.vue +3 -12
  69. package/vue-components/v2/notification/NotificationItem.vue +1 -3
  70. package/vue-components/v2/pagination/Pagination.vue +5 -26
  71. package/vue-components/v2/preloader/Preloader.vue +5 -5
  72. package/vue-components/v2/searchbars/SearchBar.vue +1 -7
  73. package/vue-components/v2/sidebar/ClusterSwitcher.vue +2 -2
  74. package/vue-components/v2/sidebar/SidebarItem.vue +2 -10
  75. package/vue-components/v2/sidebar/SidebarItemWithDropDown.vue +1 -2
  76. package/vue-components/v2/table/FakeTableCell.vue +1 -2
  77. package/vue-components/v2/table/InfoTable.vue +4 -10
  78. package/vue-components/v2/table/Table.vue +16 -64
  79. package/vue-components/v2/table/TableRow.vue +3 -15
  80. package/vue-components/v2/table/table-cell/ArrayCell.vue +3 -9
  81. package/vue-components/v2/table/table-cell/CellValue.vue +1 -2
  82. package/vue-components/v2/table/table-cell/GenericCell.vue +8 -8
  83. package/vue-components/v2/table/table-cell/ObjectCell.vue +2 -6
  84. package/vue-components/v2/table/table-cell/ValueWithModal.vue +1 -6
  85. package/vue-components/v3/alert/AlertMessage.vue +1 -5
  86. package/vue-components/v3/alert/Toast.vue +1 -4
  87. package/vue-components/v3/badge-tags/Badge.vue +24 -0
  88. package/vue-components/v3/badge-tags/Tag.vue +26 -0
  89. package/vue-components/v3/breadcrumbs/Breadcrumb.vue +6 -24
  90. package/vue-components/v3/button/Button.vue +2 -11
  91. package/vue-components/v3/cards/CardHeader.vue +1 -3
  92. package/vue-components/v3/cards/Cluster.vue +3 -9
  93. package/vue-components/v3/cards/Counter.vue +1 -4
  94. package/vue-components/v3/cards/FeatureCard.vue +1 -6
  95. package/vue-components/v3/cards/FeatureCards.vue +1 -5
  96. package/vue-components/v3/cards/InfoCard.vue +10 -30
  97. package/vue-components/v3/cards/Monitoring.vue +3 -15
  98. package/vue-components/v3/cards/OrgCard.vue +7 -26
  99. package/vue-components/v3/cards/OverviewCards.vue +1 -3
  100. package/vue-components/v3/cards/Payment.vue +1 -4
  101. package/vue-components/v3/content/ContentHeader.vue +1 -3
  102. package/vue-components/v3/content/ContentTable.vue +4 -16
  103. package/vue-components/v3/dropdown/DropdownAction.vue +1 -5
  104. package/vue-components/v3/editor/Editor.vue +33 -19
  105. package/vue-components/v3/editor/FilteredFileEditor.vue +29 -27
  106. package/vue-components/v3/editor/MonacoEditor.vue +7 -17
  107. package/vue-components/v3/editor/ResourceKeyValueEditor.vue +5 -17
  108. package/vue-components/v3/footer/Status.vue +5 -18
  109. package/vue-components/v3/footer/Usage.vue +1 -5
  110. package/vue-components/v3/form/Form.vue +1 -3
  111. package/vue-components/v3/form-fields/FileUpload.vue +3 -11
  112. package/vue-components/v3/form-fields/FileUploadSmall.vue +1 -3
  113. package/vue-components/v3/form-fields/Searchbar.vue +5 -21
  114. package/vue-components/v3/header/Header.vue +1 -4
  115. package/vue-components/v3/loaders/ClusterSwitcherLoader.vue +1 -6
  116. package/vue-components/v3/loaders/InfoCardLoader.vue +1 -6
  117. package/vue-components/v3/loaders/SingleInfoCardLoader.vue +1 -6
  118. package/vue-components/v3/modal/Modal.vue +5 -19
  119. package/vue-components/v3/modals/DeleteConfirmationModal.vue +1 -6
  120. package/vue-components/v3/modals/JsonShowModal.vue +5 -17
  121. package/vue-components/v3/navbar/Appdrawer.vue +2 -10
  122. package/vue-components/v3/navbar/Navbar.vue +2 -10
  123. package/vue-components/v3/navbar/NavbarItem.vue +1 -5
  124. package/vue-components/v3/navbar/Notification.vue +7 -31
  125. package/vue-components/v3/navbar/ThemeMode.vue +5 -17
  126. package/vue-components/v3/navbar/User.vue +64 -67
  127. package/vue-components/v3/notification/AlertBox.vue +6 -20
  128. package/vue-components/v3/notification/Notification.vue +6 -25
  129. package/vue-components/v3/notification/NotificationItem.vue +3 -9
  130. package/vue-components/v3/pagination/Pagination.vue +7 -25
  131. package/vue-components/v3/searchbars/SearchBar.vue +3 -17
  132. package/vue-components/v3/sidebar/AccentColorPicker.vue +3 -12
  133. package/vue-components/v3/sidebar/SidebarFooter.vue +3 -17
  134. package/vue-components/v3/sidebar/SidebarHeader.vue +4 -28
  135. package/vue-components/v3/sidebar/SidebarItem.vue +3 -11
  136. package/vue-components/v3/sidebar/SidebarItemWithDropDown.vue +3 -7
  137. package/vue-components/v3/sidebar/Steps.vue +1 -2
  138. package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabsLayout.vue +1 -4
  139. package/vue-components/v3/sidebar/sidebar-tabs/TabsContent.vue +34 -52
  140. package/vue-components/v3/steps/ColoredSteps.vue +75 -0
  141. package/vue-components/v3/table/InfoTable.vue +5 -17
  142. package/vue-components/v3/table/MultiInfoTable.vue +6 -20
  143. package/vue-components/v3/table/Table.vue +15 -63
  144. package/vue-components/v3/table/TableContainer.vue +1 -4
  145. package/vue-components/v3/table/TableRow.vue +5 -24
  146. package/vue-components/v3/table/table-cell/ArrayCell.vue +6 -20
  147. package/vue-components/v3/table/table-cell/CellValue.vue +3 -9
  148. package/vue-components/v3/table/table-cell/GenericCell.vue +2 -5
  149. package/vue-components/v3/table/table-cell/ObjectCell.vue +5 -17
  150. package/vue-components/v3/table/table-cell/ValueWithModal.vue +2 -9
  151. package/vue-components/styles/components/_ac-tags.scss +0 -116
  152. package/vue-components/v3/badge/Badge.vue +0 -3
@@ -1,10 +1,7 @@
1
1
  <template>
2
2
  <tags v-if="printableStringObjs.length">
3
3
  <tag
4
- v-for="(printableStringOb, idx) in printableStringObjs.slice(
5
- 0,
6
- indexOfCharacterLengthExceed
7
- )"
4
+ v-for="(printableStringOb, idx) in printableStringObjs.slice(0, indexOfCharacterLengthExceed)"
8
5
  :key="`${printableStringOb.print}-${idx}`"
9
6
  >
10
7
  <value-with-modal
@@ -52,8 +49,7 @@ export default {
52
49
  Tag: () => import("../../tag/Tag.vue"),
53
50
  EllipsisIcon: () => import("../../icons/Ellipsis.vue"),
54
51
  JsonShowModal: () => import("../../modals/JsonShowModal.vue"),
55
- ValueWithModal: () =>
56
- import("./ValueWithModal.vue"),
52
+ ValueWithModal: () => import("./ValueWithModal.vue"),
57
53
  },
58
54
 
59
55
  data() {
@@ -74,9 +70,7 @@ export default {
74
70
  } else {
75
71
  const stringifiedValue = JSON.stringify(item);
76
72
  exceededLength = stringifiedValue.length > 27;
77
- print = exceededLength
78
- ? `${stringifiedValue.slice(0, 27)}...`
79
- : stringifiedValue;
73
+ print = exceededLength ? `${stringifiedValue.slice(0, 27)}...` : stringifiedValue;
80
74
  }
81
75
  return { value, exceededLength, print };
82
76
  });
@@ -58,8 +58,7 @@ export default {
58
58
  },
59
59
  },
60
60
  components: {
61
- ContentLoader: () =>
62
- import("vue-content-loader").then(({ ContentLoader }) => ContentLoader),
61
+ ContentLoader: () => import("vue-content-loader").then(({ ContentLoader }) => ContentLoader),
63
62
  ObjectCell: () => import("./ObjectCell.vue"),
64
63
  ArrayCell: () => import("./ArrayCell.vue"),
65
64
  },
@@ -5,7 +5,7 @@
5
5
  'is-align-items-center': cellValue.icon,
6
6
  'is-justify-content-center': cellDescriptor.textAlign === 'center',
7
7
  'is-justify-content-left': cellDescriptor.textAlign === 'left',
8
- 'is-justify-content-right': cellDescriptor.textAlign === 'right'
8
+ 'is-justify-content-right': cellDescriptor.textAlign === 'right',
9
9
  }"
10
10
  >
11
11
  <span v-if="cellValue.icon" class="icon p-0 mr-10">
@@ -29,17 +29,17 @@
29
29
  export default {
30
30
  components: {
31
31
  Tag: () => import("../../tag/Tag.vue"),
32
- CellValue: () => import("../table-cell/CellValue.vue")
32
+ CellValue: () => import("../table-cell/CellValue.vue"),
33
33
  },
34
34
  props: {
35
35
  cellDescriptor: {
36
36
  type: Object,
37
- default: () => ({})
37
+ default: () => ({}),
38
38
  },
39
39
  cellValue: {
40
40
  type: Object,
41
- default: () => ({})
42
- }
41
+ default: () => ({}),
42
+ },
43
43
  },
44
44
  methods: {
45
45
  getCellLink(cell) {
@@ -47,10 +47,10 @@ export default {
47
47
  const { user, cluster } = this.$route.params;
48
48
  const link = inject(cell.link || "", {
49
49
  username: user,
50
- clustername: cluster
50
+ clustername: cluster,
51
51
  });
52
52
  return link;
53
- }
54
- }
53
+ },
54
+ },
55
55
  };
56
56
  </script>
@@ -1,10 +1,7 @@
1
1
  <template>
2
2
  <tags v-if="printableStringObjs.length">
3
3
  <tag
4
- v-for="printableStringOb in printableStringObjs.slice(
5
- 0,
6
- indexOfCharacterLengthExceed
7
- )"
4
+ v-for="printableStringOb in printableStringObjs.slice(0, indexOfCharacterLengthExceed)"
8
5
  :key="printableStringOb.key"
9
6
  >
10
7
  <value-with-modal
@@ -52,8 +49,7 @@ export default {
52
49
  Tag: () => import("../../tag/Tag.vue"),
53
50
  EllipsisIcon: () => import("../../icons/Ellipsis.vue"),
54
51
  JsonShowModal: () => import("../../modals/JsonShowModal.vue"),
55
- ValueWithModal: () =>
56
- import("./ValueWithModal.vue"),
52
+ ValueWithModal: () => import("./ValueWithModal.vue"),
57
53
  },
58
54
 
59
55
  data() {
@@ -2,12 +2,7 @@
2
2
  <a @click.prevent.stop="showModal = true">
3
3
  {{ print }}
4
4
 
5
- <json-show-modal
6
- :open="showModal"
7
- @closemodal="showModal = false"
8
- :editor-title="title"
9
- :editor-content="value"
10
- />
5
+ <json-show-modal :open="showModal" @closemodal="showModal = false" :editor-title="title" :editor-content="value" />
11
6
  </a>
12
7
  </template>
13
8
 
@@ -29,11 +29,7 @@ withDefaults(defineProps<Props>(), {
29
29
  stroke="currentColor"
30
30
  class="w-6 h-6"
31
31
  >
32
- <path
33
- stroke-linecap="round"
34
- stroke-linejoin="round"
35
- d="M6 18L18 6M6 6l12 12"
36
- />
32
+ <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
37
33
  </svg>
38
34
  </span>
39
35
  </button>
@@ -13,10 +13,7 @@ withDefaults(defineProps<Props>(), {
13
13
  <div class="toast-header is-flex is-align-items-center">
14
14
  <h6 class="mr-auto">Toast Header</h6>
15
15
  <small>2 hours ago</small>
16
- <button
17
- type="button"
18
- class="button ac-button is-transparent w-18 h-18 flex ml-8"
19
- >
16
+ <button type="button" class="button ac-button is-transparent w-18 h-18 flex ml-8">
20
17
  <span class="material-icons close-icon is-size-5">close</span>
21
18
  </button>
22
19
  </div>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ modifierClasses?: string;
4
+ label?: string;
5
+ dot?: boolean;
6
+ }
7
+
8
+ withDefaults(defineProps<Props>(), {
9
+ modifierClasses: "",
10
+ label: "Default",
11
+ dot: false,
12
+ });
13
+ </script>
14
+
15
+ <template>
16
+ <div class="badge" :class="modifierClasses">
17
+ <span class="circle" v-if="dot"></span>
18
+ <span>{{ label }}</span>
19
+ </div>
20
+ </template>
21
+
22
+ <style lang="scss" scoped>
23
+ @import "../../../vue-components/styles/components/badge-tags";
24
+ </style>
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ modifierClasses?: string;
4
+ label?: string;
5
+ url?: string;
6
+ dot?: boolean;
7
+ }
8
+
9
+ withDefaults(defineProps<Props>(), {
10
+ modifierClasses: "",
11
+ label: "Default",
12
+ url: "#",
13
+ dot: false,
14
+ });
15
+ </script>
16
+
17
+ <template>
18
+ <a :href="url" class="badge" :class="modifierClasses">
19
+ <span class="circle" v-if="dot"></span>
20
+ <span>{{ label }}</span>
21
+ </a>
22
+ </template>
23
+
24
+ <style lang="scss" scoped>
25
+ @import "../../../vue-components/styles/components/badge-tags";
26
+ </style>
@@ -19,8 +19,7 @@ const pathReplaceWithParam = (path: string) => {
19
19
  // Then again add them wthi "/" and return the path value
20
20
  return splitPath.reduce((pval, cval) => {
21
21
  if (cval[0] === ":") {
22
- const cutIndex =
23
- cval.indexOf("?") !== -1 ? cval.indexOf("?") : cval.length;
22
+ const cutIndex = cval.indexOf("?") !== -1 ? cval.indexOf("?") : cval.length;
24
23
  return (pval += route.params[cval.slice(1, cutIndex)] + "/");
25
24
  } else return (pval += cval + "/");
26
25
  }, "/");
@@ -50,14 +49,11 @@ const createList = (paths: Array<string>) => {
50
49
 
51
50
  const createBreadcrumbs = () => {
52
51
  //Adding dynamic path to the route
53
- const listPaths = route.matched.map((element) =>
54
- pathReplaceWithParam(element.path)
55
- );
52
+ const listPaths = route.matched.map((element) => pathReplaceWithParam(element.path));
56
53
 
57
54
  // If there is duplicate value in arrays last element remove it
58
55
  const length = listPaths.length;
59
- if (length > 1 && listPaths[length - 1] === listPaths[length - 2])
60
- listPaths.pop();
56
+ if (length > 1 && listPaths[length - 1] === listPaths[length - 2]) listPaths.pop();
61
57
 
62
58
  //Createing the breadcrumb name
63
59
  const listName = createList(listPaths);
@@ -87,24 +83,10 @@ watch(
87
83
  <div class="ac-breadcrumb">
88
84
  <nav aria-label="breadcrumbs" class="breadcrumb">
89
85
  <ul>
90
- <li
91
- v-for="(item, idx) in list"
92
- :key="idx"
93
- :class="{ 'is-active': idx === list.length - 1 }"
94
- >
95
- <router-link
96
- class="router-link-active"
97
- :class="{ 'is-active': idx === list.length - 1 }"
98
- :to="item.path"
99
- >
86
+ <li v-for="(item, idx) in list" :key="idx" :class="{ 'is-active': idx === list.length - 1 }">
87
+ <router-link class="router-link-active" :class="{ 'is-active': idx === list.length - 1 }" :to="item.path">
100
88
  <span v-if="idx === 0" class="icon is-flex-start p-0 m-0">
101
- <svg
102
- width="12"
103
- height="12"
104
- viewBox="0 0 12 12"
105
- fill="none"
106
- xmlns="http://www.w3.org/2000/svg"
107
- >
89
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
108
90
  <path
109
91
  d="M1 4.5L5.5 1L10 4.5V10C10 10.2652 9.89464 10.5196 9.70711 10.7071C9.51957 10.8946 9.26522 11 9 11H2C1.73478 11 1.48043 10.8946 1.29289 10.7071C1.10536 10.5196 1 10.2652 1 10V4.5Z"
110
92
  stroke="#666666"
@@ -47,17 +47,8 @@ const showUnpluginIcon = computed(() => {
47
47
  :title="tooltip"
48
48
  data-testid="ac-create-button"
49
49
  >
50
- <span
51
- v-if="iconClass || iconImage"
52
- class="icon is-small"
53
- :class="showUnpluginIcon ? iconClass : ''"
54
- >
55
- <img
56
- v-if="iconImage"
57
- :src="iconImage"
58
- alt="icon"
59
- :width="iconImageWidth"
60
- />
50
+ <span v-if="iconClass || iconImage" class="icon is-small" :class="showUnpluginIcon ? iconClass : ''">
51
+ <img v-if="iconImage" :src="iconImage" alt="icon" :width="iconImageWidth" />
61
52
 
62
53
  <slot name="icon" v-else-if="showUnpluginIcon" />
63
54
 
@@ -1,9 +1,7 @@
1
1
  <script setup lang="ts"></script>
2
2
 
3
3
  <template>
4
- <div
5
- class="is-flex is-justify-content-space-between pt-8 pb-8 pl-20 pr-20 b-1"
6
- >
4
+ <div class="is-flex is-justify-content-space-between pt-8 pb-8 pl-20 pr-20 b-1">
7
5
  <div class="header-left-content">
8
6
  <slot name="card-header-left" />
9
7
  </div>
@@ -23,9 +23,7 @@ withDefaults(defineProps<Props>(), {
23
23
  showOptions: false,
24
24
  });
25
25
 
26
- const OptionDots = defineAsyncComponent(
27
- () => import("../option-dots/Options.vue")
28
- );
26
+ const OptionDots = defineAsyncComponent(() => import("../option-dots/Options.vue"));
29
27
  </script>
30
28
 
31
29
  <template>
@@ -49,18 +47,14 @@ const OptionDots = defineAsyncComponent(
49
47
  :class="tag.class"
50
48
  :data-testid="idx === 0 ? 'cluster-status-text' : undefined"
51
49
  class="is-flex is-align-center gap-4"
52
- ><span v-if="tag?.isSpinner || false" class="is-flex gap-4"
53
- ><SvgSpinners270Ring /></span
50
+ ><span v-if="tag?.isSpinner || false" class="is-flex gap-4"><SvgSpinners270Ring /></span
54
51
  >{{ tag.value }}</span
55
52
  >
56
53
  </div>
57
54
  </div>
58
55
  </div>
59
56
  <div class="c-body">
60
- <p
61
- v-for="(detail, idx) in clusterData.details"
62
- :key="idx + detail.title"
63
- >
57
+ <p v-for="(detail, idx) in clusterData.details" :key="idx + detail.title">
64
58
  <span>{{ detail.title }}</span> <strong>{{ detail.value }}</strong>
65
59
  </p>
66
60
  </div>
@@ -6,10 +6,7 @@
6
6
  <div class="card-header">
7
7
  <h3>Clusters</h3>
8
8
  <div class="logo">
9
- <img
10
- src="https://bb-developer-v1.web.app/_nuxt/img/cluster-icon.f68a1b6.svg"
11
- alt=""
12
- />
9
+ <img src="https://bb-developer-v1.web.app/_nuxt/img/cluster-icon.f68a1b6.svg" alt="" />
13
10
  </div>
14
11
  </div>
15
12
  <!-- header end -->
@@ -14,12 +14,7 @@ withDefaults(
14
14
  <!-- single card wrapper start -->
15
15
  <div class="card-basic feature-card b-1" data-testid="simple-feature-card">
16
16
  <div class="c-header is-flex is-justify-content-space-between">
17
- <div
18
- v-if="isRequired"
19
- class="tag has-background-warning has-text-secondary is-rounded required"
20
- >
21
- Required
22
- </div>
17
+ <div v-if="isRequired" class="tag has-background-warning has-text-secondary is-rounded required">Required</div>
23
18
 
24
19
  <div class="c-title is-flex gap-8 is-fullwidth is-align-items-center">
25
20
  <div class="icon">
@@ -1,10 +1,6 @@
1
1
  <script setup lang="ts"></script>
2
2
  <template>
3
- <div
4
- class="is-flex is-flex-wrap-wrap"
5
- data-testid="simple-feature-sets"
6
- style="gap: 16px"
7
- >
3
+ <div class="is-flex is-flex-wrap-wrap" data-testid="simple-feature-sets" style="gap: 16px">
8
4
  <slot />
9
5
  </div>
10
6
  </template>
@@ -13,20 +13,18 @@ withDefaults(defineProps<Props>(), {
13
13
  rowData: () => ({ cells: [] }),
14
14
  });
15
15
 
16
- const OptionDots = defineAsyncComponent(
17
- () => import("../option-dots/Options.vue")
18
- );
16
+ const OptionDots = defineAsyncComponent(() => import("../option-dots/Options.vue"));
19
17
  </script>
20
18
 
21
19
  <template>
22
20
  <div class="info-card" :class="modifierClasses">
23
21
  <div class="header">
24
22
  <div class="logo">
25
- <img :src="rowData.cells[0].icon" alt="icon" />
23
+ <img :src="rowData?.cells[0]?.icon" alt="icon" />
26
24
  </div>
27
25
  <div class="content">
28
26
  <div class="is-flex is-justify-content-space-between">
29
- <h5>{{ rowData.cells[0].data }}</h5>
27
+ <h5>{{ rowData?.cells[0]?.data || "-" }}</h5>
30
28
  <option-dots :position="'is-right is-hidden'" />
31
29
  </div>
32
30
  </div>
@@ -35,13 +33,7 @@ const OptionDots = defineAsyncComponent(
35
33
  <div class="left-content">
36
34
  <p title="CPU (request/limit)">
37
35
  <span class="icon">
38
- <svg
39
- width="21"
40
- height="19"
41
- viewBox="0 0 21 19"
42
- fill="none"
43
- xmlns="http://www.w3.org/2000/svg"
44
- >
36
+ <svg width="21" height="19" viewBox="0 0 21 19" fill="none" xmlns="http://www.w3.org/2000/svg">
45
37
  <path
46
38
  d="M6.63471 1V2.45659M2.60992 6.09807H1M20.319 6.09807H18.7091M2.60992 9.73955H1M20.319 9.73955H18.7091M2.60992 13.381H1M20.319 13.381H18.7091M6.63471 17.0225V18.4791M10.6595 1V2.45659M10.6595 17.0225V18.4791M14.6843 1V2.45659M14.6843 17.0225V18.4791M5.02479 17.0225H16.2942C16.9347 17.0225 17.5489 16.7923 18.0018 16.3826C18.4547 15.9728 18.7091 15.4171 18.7091 14.8376V4.64148C18.7091 4.06201 18.4547 3.50628 18.0018 3.09653C17.5489 2.68679 16.9347 2.45659 16.2942 2.45659H5.02479C4.38433 2.45659 3.7701 2.68679 3.31722 3.09653C2.86434 3.50628 2.60992 4.06201 2.60992 4.64148V14.8376C2.60992 15.4171 2.86434 15.9728 3.31722 16.3826C3.7701 16.7923 4.38433 17.0225 5.02479 17.0225ZM5.82975 5.36978H15.4893V14.1093H5.82975V5.36978Z"
47
39
  stroke="#5C5C5C"
@@ -52,18 +44,12 @@ const OptionDots = defineAsyncComponent(
52
44
  </svg>
53
45
  </span>
54
46
  <strong>
55
- {{ rowData.cells[2].data ? rowData.cells[2].data : "-" }}
47
+ {{ rowData?.cells[2]?.data ? rowData?.cells[2]?.data : "-" }}
56
48
  </strong>
57
49
  </p>
58
50
  <p title="Memory (request/limit)">
59
51
  <span class="icon">
60
- <svg
61
- width="20"
62
- height="13"
63
- viewBox="0 0 20 13"
64
- fill="none"
65
- xmlns="http://www.w3.org/2000/svg"
66
- >
52
+ <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg">
67
53
  <rect
68
54
  x="0.489721"
69
55
  y="0.489721"
@@ -103,18 +89,12 @@ const OptionDots = defineAsyncComponent(
103
89
  </svg>
104
90
  </span>
105
91
  <strong>
106
- {{ rowData.cells[3].data ? rowData.cells[3].data : "-" }}
92
+ {{ rowData.cells[3]?.data ? rowData?.cells[3]?.data : "-" }}
107
93
  </strong>
108
94
  </p>
109
95
  <p title="Storage (request/limit)">
110
96
  <span class="icon">
111
- <svg
112
- width="21"
113
- height="16"
114
- viewBox="0 0 21 16"
115
- fill="none"
116
- xmlns="http://www.w3.org/2000/svg"
117
- >
97
+ <svg width="21" height="16" viewBox="0 0 21 16" fill="none" xmlns="http://www.w3.org/2000/svg">
118
98
  <path
119
99
  d="M20.3189 7.76208H1"
120
100
  stroke="#5C5C5C"
@@ -146,12 +126,12 @@ const OptionDots = defineAsyncComponent(
146
126
  </svg>
147
127
  </span>
148
128
  <strong>
149
- {{ rowData.cells[4].data ? rowData.cells[4].data : "-" }}
129
+ {{ rowData?.cells[4]?.data ? rowData?.cells[4]?.data : "-" }}
150
130
  </strong>
151
131
  </p>
152
132
  </div>
153
133
  <div class="right-content">
154
- <h2>{{ rowData.cells[1].data }}</h2>
134
+ <h2>{{ rowData?.cells[1]?.data || "-" }}</h2>
155
135
  <p>Instance</p>
156
136
  </div>
157
137
  </div>
@@ -13,20 +13,10 @@ withDefaults(defineProps<Props>(), {
13
13
  <template>
14
14
  <div class="card-basic b-1 mb-12 has-hover-style">
15
15
  <div class="c-header is-flex is-justify-content-space-between">
16
- <div
17
- class="tag has-background-danger-light has-text-danger is-rounded required"
18
- >
19
- REQUIRED
20
- </div>
16
+ <div class="tag has-background-danger-light has-text-danger is-rounded required">REQUIRED</div>
21
17
  <div class="c-title is-flex gap-8 is-fullwidth is-align-items-center">
22
18
  <div class="icon">
23
- <svg
24
- width="24"
25
- height="24"
26
- viewBox="0 0 24 24"
27
- fill="none"
28
- xmlns="http://www.w3.org/2000/svg"
29
- >
19
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
30
20
  <path
31
21
  d="M20 3H4C2.89543 3 2 3.89543 2 5V15C2 16.1046 2.89543 17 4 17H20C21.1046 17 22 16.1046 22 15V5C22 3.89543 21.1046 3 20 3Z"
32
22
  stroke="#808080"
@@ -52,9 +42,7 @@ withDefaults(defineProps<Props>(), {
52
42
  </div>
53
43
  <h5>{{ title }}</h5>
54
44
  </div>
55
- <div class="tag has-background-success-light has-text-success is-rounded">
56
- ENABLED
57
- </div>
45
+ <div class="tag has-background-success-light has-text-success is-rounded">ENABLED</div>
58
46
  </div>
59
47
  <div class="c-body">
60
48
  <p>Monitor your kubernetes resources with Prometheus and Grafana.</p>
@@ -1,12 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import { defineAsyncComponent } from "vue";
3
3
  const AcButton = defineAsyncComponent(() => import("../button/Button.vue"));
4
- const HeroiconsArrowSmallRight = defineAsyncComponent(
5
- () => import("~icons/heroicons/arrow-small-right")
6
- );
7
- const HeroiconsPlus = defineAsyncComponent(
8
- () => import("~icons/heroicons/plus")
9
- );
4
+ const HeroiconsArrowSmallRight = defineAsyncComponent(() => import("~icons/heroicons/arrow-small-right"));
5
+ const HeroiconsPlus = defineAsyncComponent(() => import("~icons/heroicons/plus"));
10
6
 
11
7
  interface Props {
12
8
  title?: string;
@@ -33,25 +29,15 @@ withDefaults(defineProps<Props>(), {
33
29
  <template>
34
30
  <div
35
31
  class="card-details has-hover-style"
36
- :class="[
37
- modifierClasses,
38
- { 'no-data-available is-justify-content-center': noDataAvailable },
39
- ]"
32
+ :class="[modifierClasses, { 'no-data-available is-justify-content-center': noDataAvailable }]"
40
33
  >
41
- <div
42
- class="left-content"
43
- :class="{ 'is-align-items-center': noDataAvailable }"
44
- >
34
+ <div class="left-content" :class="{ 'is-align-items-center': noDataAvailable }">
45
35
  <figure class="image" :class="{ 'is-48x48': !noDataAvailable }">
46
36
  <img :class="{ 'is-rounded': !noDataAvailable }" :src="thumbnail" />
47
37
  </figure>
48
38
  <h5>{{ title }}</h5>
49
39
 
50
- <AcButton
51
- v-if="noDataAvailable && !hideCreateButton"
52
- :title="cardLabel"
53
- icon-class="unplugin"
54
- >
40
+ <AcButton v-if="noDataAvailable && !hideCreateButton" :title="cardLabel" icon-class="unplugin">
55
41
  <template #icon><HeroiconsPlus /></template>
56
42
  </AcButton>
57
43
 
@@ -61,17 +47,12 @@ withDefaults(defineProps<Props>(), {
61
47
  modifier-classes="is-text px-0 is-flex-direction-row-reverse gap-8"
62
48
  icon-class="unplugin"
63
49
  >
64
- <template #icon v-if="!hideCreateButton"
65
- ><HeroiconsArrowSmallRight
66
- /></template>
50
+ <template #icon v-if="!hideCreateButton"><HeroiconsArrowSmallRight /></template>
67
51
  </AcButton>
68
52
  </div>
69
53
  <div class="right-content" v-if="!noDataAvailable">
70
54
  <figure class="image is-48x48">
71
- <img
72
- v-if="type === 'organization'"
73
- src="../../images/icons/org-icon.svg"
74
- />
55
+ <img v-if="type === 'organization'" src="../../images/icons/org-icon.svg" />
75
56
  <img v-else src="../../images/icons/cluster-icon.svg" />
76
57
  </figure>
77
58
  </div>
@@ -1,9 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { defineAsyncComponent } from "vue";
3
3
 
4
- const ContentHeader = defineAsyncComponent(
5
- () => import("./../content/ContentHeader.vue")
6
- );
4
+ const ContentHeader = defineAsyncComponent(() => import("./../content/ContentHeader.vue"));
7
5
 
8
6
  interface Props {
9
7
  headerTitle: string;
@@ -48,10 +48,7 @@
48
48
  <p class="user-name">John Smith</p>
49
49
  </div>
50
50
  <div class="p-card-logo">
51
- <img
52
- src="https://bb-developer-v1.web.app/_nuxt/img/visa-card-logo.6a56d8c.svg"
53
- alt="visa-card"
54
- />
51
+ <img src="https://bb-developer-v1.web.app/_nuxt/img/visa-card-logo.6a56d8c.svg" alt="visa-card" />
55
52
  </div>
56
53
  </div>
57
54
  <!-- card footer end -->
@@ -1,9 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { defineAsyncComponent } from "vue";
3
3
 
4
- const HeaderItems = defineAsyncComponent(
5
- () => import("./../header/HeaderItems.vue")
6
- );
4
+ const HeaderItems = defineAsyncComponent(() => import("./../header/HeaderItems.vue"));
7
5
 
8
6
  interface Props {
9
7
  headerTitle?: string;
@@ -3,12 +3,8 @@ import { defineAsyncComponent, ref } from "vue";
3
3
 
4
4
  const ContentLayout = defineAsyncComponent(() => import("./ContentLayout.vue"));
5
5
  const ContentHeader = defineAsyncComponent(() => import("./ContentHeader.vue"));
6
- const HeaderItem = defineAsyncComponent(
7
- () => import("./../header/HeaderItem.vue")
8
- );
9
- const SearchBar = defineAsyncComponent(
10
- () => import("./../searchbars/SearchBar.vue")
11
- );
6
+ const HeaderItem = defineAsyncComponent(() => import("./../header/HeaderItem.vue"));
7
+ const SearchBar = defineAsyncComponent(() => import("./../searchbars/SearchBar.vue"));
12
8
 
13
9
  interface Props {
14
10
  removeTableHeaderPadding?: boolean;
@@ -51,19 +47,11 @@ const updateSearchText = (text: string) => {
51
47
  </template>
52
48
  <slot name="content-left-controls" />
53
49
  <header-item>
54
- <search-bar
55
- v-if="searchable"
56
- @search="updateSearchText"
57
- :ac-input-id="acInuptId"
58
- />
50
+ <search-bar v-if="searchable" @search="updateSearchText" :ac-input-id="acInuptId" />
59
51
  </header-item>
60
52
  <slot name="content-right-controls" />
61
53
  </content-header>
62
54
  </template>
63
- <slot
64
- name="content"
65
- :search-text="searchText"
66
- :update-search-text="updateSearchText"
67
- />
55
+ <slot name="content" :search-text="searchText" :update-search-text="updateSearchText" />
68
56
  </content-layout>
69
57
  </template>
@@ -27,11 +27,7 @@ onClickOutside(actionDropdown, () => emit("update:modelValue", false));
27
27
 
28
28
  <template>
29
29
  <!-- dropdown start -->
30
- <div
31
- ref="actionDropdown"
32
- class="dropdown-action"
33
- :class="{ 'dropdown is-active': modelValue }"
34
- >
30
+ <div ref="actionDropdown" class="dropdown-action" :class="{ 'dropdown is-active': modelValue }">
35
31
  <div class="dropdown-trigger">
36
32
  <ac-button
37
33
  :modifier-classes="buttonModifierClass"