@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.
- package/package.json +1 -1
- package/plugins/theme.js +2 -5
- package/plugins/time-convert.js +5 -9
- package/plugins/vue-toaster.js +2 -1
- package/vue-components/plugins/time-convert.js +2 -6
- package/vue-components/styles/base/utilities/_colors.scss +20 -26
- package/vue-components/styles/base/utilities/_generate-color-classes.scss +41 -233
- package/vue-components/styles/base/utilities/_global.scss +13 -14
- package/vue-components/styles/base/utilities/_layouts.scss +1 -2
- package/vue-components/styles/base/utilities/_mixin.scss +8 -46
- package/vue-components/styles/base/utilities/_root-variables.scss +1 -1
- package/vue-components/styles/base/utilities/_spacing.scss +1 -1
- package/vue-components/styles/base/utilities/_typography.scss +1 -1
- package/vue-components/styles/components/_ac-drag.scss +1 -1
- package/vue-components/styles/components/_badge-tags.scss +75 -0
- package/vue-components/styles/components/_card-body-wrapper.scss +1 -1
- package/vue-components/styles/components/_pagination.scss +2 -2
- package/vue-components/styles/components/_preview-modal.scss +3 -3
- package/vue-components/styles/components/_progress-bar.scss +3 -3
- package/vue-components/styles/components/_table.scss +3 -3
- package/vue-components/styles/components/_tabs.scss +2 -2
- package/vue-components/styles/components/_terminal.scss +4 -4
- package/vue-components/styles/components/_wizard.scss +3 -3
- package/vue-components/styles/components/ac-toaster/_ac-toasted.scss +10 -5
- package/vue-components/styles/components/alert/_alert.scss +2 -12
- package/vue-components/styles/components/alert/_toast.scss +1 -1
- package/vue-components/styles/components/bbum/_all.scss +1 -1
- package/vue-components/styles/components/bbum/_card-team.scss +1 -6
- package/vue-components/styles/components/bbum/_information-center.scss +4 -4
- package/vue-components/styles/components/bbum/_mobile-desktop.scss +10 -5
- package/vue-components/styles/components/bbum/_user-profile.scss +1 -1
- package/vue-components/styles/components/cards/_info.scss +1 -7
- package/vue-components/styles/components/editor/_filtered-file-editor.scss +3 -3
- package/vue-components/styles/components/editor/_monaco-editor.scss +1 -1
- package/vue-components/styles/components/form-fields/_input-card.scss +2 -2
- package/vue-components/styles/components/form-fields/_input.scss +3 -3
- package/vue-components/styles/components/navbar/_menu-content.scss +1 -2
- package/vue-components/styles/components/select-box/_ac-select-box.scss +2 -2
- package/vue-components/styles/components/select-box/_multi-select.scss +4 -9
- package/vue-components/styles/components/sidebar/_left-sidebar.scss +2 -2
- package/vue-components/styles/components/ui-builder/_ui-builder.scss +1 -1
- package/vue-components/styles/components/ui-builder/_vue-open-api.scss +5 -10
- package/vue-components/styles/layouts/_code-preview.scss +2 -2
- package/vue-components/styles/theme/_dark.scss +1 -1
- package/vue-components/v2/breadcrumbs/Breadcrumb.vue +14 -27
- package/vue-components/v2/button/Button.vue +2 -7
- package/vue-components/v2/button/DownloadBtn.vue +9 -9
- package/vue-components/v2/card/CardContent.vue +1 -1
- package/vue-components/v2/card/CardHeader.vue +2 -4
- package/vue-components/v2/card/PaymentCard.vue +1 -1
- package/vue-components/v2/card/PaymentCardOptionButtons.vue +1 -1
- package/vue-components/v2/card/PaymentCards.vue +15 -11
- package/vue-components/v2/content/ContentHeader.vue +6 -6
- package/vue-components/v2/editor/Editor.vue +2 -11
- package/vue-components/v2/editor/FilteredFileEditor.vue +5 -17
- package/vue-components/v2/editor/MonacoEditor.vue +5 -12
- package/vue-components/v2/editor/ResourceKeyValueEditor.vue +4 -14
- package/vue-components/v2/form/Form.vue +9 -12
- package/vue-components/v2/header/Header.vue +1 -4
- package/vue-components/v2/loaders/ResourceLoader.vue +5 -5
- package/vue-components/v2/loaders/SidebarLoader.vue +5 -5
- package/vue-components/v2/modal/Modal.vue +2 -7
- package/vue-components/v2/modals/DeleteConfirmationModal.vue +1 -6
- package/vue-components/v2/modals/JsonShowModal.vue +3 -15
- package/vue-components/v2/navbar/Appdrawer.vue +2 -10
- package/vue-components/v2/navbar/ThemeMode.vue +12 -18
- package/vue-components/v2/navbar/User.vue +19 -82
- package/vue-components/v2/notification/Notification.vue +3 -12
- package/vue-components/v2/notification/NotificationItem.vue +1 -3
- package/vue-components/v2/pagination/Pagination.vue +5 -26
- package/vue-components/v2/preloader/Preloader.vue +5 -5
- package/vue-components/v2/searchbars/SearchBar.vue +1 -7
- package/vue-components/v2/sidebar/ClusterSwitcher.vue +2 -2
- package/vue-components/v2/sidebar/SidebarItem.vue +2 -10
- package/vue-components/v2/sidebar/SidebarItemWithDropDown.vue +1 -2
- package/vue-components/v2/table/FakeTableCell.vue +1 -2
- package/vue-components/v2/table/InfoTable.vue +4 -10
- package/vue-components/v2/table/Table.vue +16 -64
- package/vue-components/v2/table/TableRow.vue +3 -15
- package/vue-components/v2/table/table-cell/ArrayCell.vue +3 -9
- package/vue-components/v2/table/table-cell/CellValue.vue +1 -2
- package/vue-components/v2/table/table-cell/GenericCell.vue +8 -8
- package/vue-components/v2/table/table-cell/ObjectCell.vue +2 -6
- package/vue-components/v2/table/table-cell/ValueWithModal.vue +1 -6
- package/vue-components/v3/alert/AlertMessage.vue +1 -5
- package/vue-components/v3/alert/Toast.vue +1 -4
- package/vue-components/v3/badge-tags/Badge.vue +24 -0
- package/vue-components/v3/badge-tags/Tag.vue +26 -0
- package/vue-components/v3/breadcrumbs/Breadcrumb.vue +6 -24
- package/vue-components/v3/button/Button.vue +2 -11
- package/vue-components/v3/cards/CardHeader.vue +1 -3
- package/vue-components/v3/cards/Cluster.vue +3 -9
- package/vue-components/v3/cards/Counter.vue +1 -4
- package/vue-components/v3/cards/FeatureCard.vue +1 -6
- package/vue-components/v3/cards/FeatureCards.vue +1 -5
- package/vue-components/v3/cards/InfoCard.vue +10 -30
- package/vue-components/v3/cards/Monitoring.vue +3 -15
- package/vue-components/v3/cards/OrgCard.vue +7 -26
- package/vue-components/v3/cards/OverviewCards.vue +1 -3
- package/vue-components/v3/cards/Payment.vue +1 -4
- package/vue-components/v3/content/ContentHeader.vue +1 -3
- package/vue-components/v3/content/ContentTable.vue +4 -16
- package/vue-components/v3/dropdown/DropdownAction.vue +1 -5
- package/vue-components/v3/editor/Editor.vue +33 -19
- package/vue-components/v3/editor/FilteredFileEditor.vue +29 -27
- package/vue-components/v3/editor/MonacoEditor.vue +7 -17
- package/vue-components/v3/editor/ResourceKeyValueEditor.vue +5 -17
- package/vue-components/v3/footer/Status.vue +5 -18
- package/vue-components/v3/footer/Usage.vue +1 -5
- package/vue-components/v3/form/Form.vue +1 -3
- package/vue-components/v3/form-fields/FileUpload.vue +3 -11
- package/vue-components/v3/form-fields/FileUploadSmall.vue +1 -3
- package/vue-components/v3/form-fields/Searchbar.vue +5 -21
- package/vue-components/v3/header/Header.vue +1 -4
- package/vue-components/v3/loaders/ClusterSwitcherLoader.vue +1 -6
- package/vue-components/v3/loaders/InfoCardLoader.vue +1 -6
- package/vue-components/v3/loaders/SingleInfoCardLoader.vue +1 -6
- package/vue-components/v3/modal/Modal.vue +5 -19
- package/vue-components/v3/modals/DeleteConfirmationModal.vue +1 -6
- package/vue-components/v3/modals/JsonShowModal.vue +5 -17
- package/vue-components/v3/navbar/Appdrawer.vue +2 -10
- package/vue-components/v3/navbar/Navbar.vue +2 -10
- package/vue-components/v3/navbar/NavbarItem.vue +1 -5
- package/vue-components/v3/navbar/Notification.vue +7 -31
- package/vue-components/v3/navbar/ThemeMode.vue +5 -17
- package/vue-components/v3/navbar/User.vue +64 -67
- package/vue-components/v3/notification/AlertBox.vue +6 -20
- package/vue-components/v3/notification/Notification.vue +6 -25
- package/vue-components/v3/notification/NotificationItem.vue +3 -9
- package/vue-components/v3/pagination/Pagination.vue +7 -25
- package/vue-components/v3/searchbars/SearchBar.vue +3 -17
- package/vue-components/v3/sidebar/AccentColorPicker.vue +3 -12
- package/vue-components/v3/sidebar/SidebarFooter.vue +3 -17
- package/vue-components/v3/sidebar/SidebarHeader.vue +4 -28
- package/vue-components/v3/sidebar/SidebarItem.vue +3 -11
- package/vue-components/v3/sidebar/SidebarItemWithDropDown.vue +3 -7
- package/vue-components/v3/sidebar/Steps.vue +1 -2
- package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabsLayout.vue +1 -4
- package/vue-components/v3/sidebar/sidebar-tabs/TabsContent.vue +34 -52
- package/vue-components/v3/steps/ColoredSteps.vue +75 -0
- package/vue-components/v3/table/InfoTable.vue +5 -17
- package/vue-components/v3/table/MultiInfoTable.vue +6 -20
- package/vue-components/v3/table/Table.vue +15 -63
- package/vue-components/v3/table/TableContainer.vue +1 -4
- package/vue-components/v3/table/TableRow.vue +5 -24
- package/vue-components/v3/table/table-cell/ArrayCell.vue +6 -20
- package/vue-components/v3/table/table-cell/CellValue.vue +3 -9
- package/vue-components/v3/table/table-cell/GenericCell.vue +2 -5
- package/vue-components/v3/table/table-cell/ObjectCell.vue +5 -17
- package/vue-components/v3/table/table-cell/ValueWithModal.vue +2 -9
- package/vue-components/styles/components/_ac-tags.scss +0 -116
- 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
|
-
|
|
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="
|
|
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
|
|
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
|
|
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
|
|
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]
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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"
|