@appscode/design-system 1.1.0-beta.3 → 1.1.0-beta.30
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/base/utilities/_colors.scss +81 -186
- package/base/utilities/_global.scss +24 -18
- package/base/utilities/_typography.scss +2 -2
- package/base/utilities/dark-theme.scss +2 -8
- package/components/_ac-alert-box.scss +8 -8
- package/components/_ac-code-highlight.scss +9 -12
- package/components/_ac-drag.scss +4 -4
- package/components/_ac-modal.scss +2 -2
- package/components/_ac-multi-select.scss +18 -18
- package/components/_ac-select-box.scss +5 -5
- package/components/_ac-table.scss +10 -10
- package/components/_ac-tabs.scss +29 -26
- package/components/_all.scss +6 -4
- package/components/_buttons.scss +10 -10
- package/components/_image-upload.scss +6 -6
- package/components/_input-card.scss +232 -0
- package/components/_input.scss +947 -0
- package/components/_left-sidebar-menu.scss +9 -13
- package/components/_monaco-editor.scss +2 -2
- package/components/_navbar.scss +7 -7
- package/components/_nested-list.scss +2 -2
- package/components/_overview-info.scss +3 -3
- package/components/_pricing-table.scss +5 -5
- package/components/_progress-bar.scss +61 -74
- package/components/_subscription-card.scss +8 -10
- package/components/_table-of-content.scss +4 -4
- package/components/{_ac-terminal.scss → _terminal.scss} +55 -38
- package/components/_widget-menu.scss +7 -12
- package/components/_wizard.scss +518 -793
- package/components/ac-toaster/_ac-toasted.scss +6 -11
- package/components/bbum/_information-center.scss +8 -10
- package/components/bbum/_mobile-desktop.scss +9 -14
- package/components/bbum/_single-post-preview.scss +9 -9
- package/components/ui-builder/_ui-builder.scss +163 -9
- package/components/ui-builder/_vue-open-api.scss +3 -2
- package/layouts/_code-preview.scss +6 -7
- package/main.scss +4 -4
- package/package.json +1 -1
- package/plugins/theme.js +11 -9
- package/plugins/vue-toaster.js +1 -1
- package/vue-components/types/importFlow.ts +16 -0
- package/vue-components/v2/banner/Banner.vue +1 -1
- package/vue-components/v2/editor/FilteredFileEditor.vue +2 -2
- package/vue-components/v2/modal/Modal.vue +1 -1
- package/vue-components/v2/pagination/Pagination.vue +1 -0
- package/vue-components/v3/alert/Alert.vue +7 -7
- package/vue-components/v3/banner/Banner.vue +2 -2
- package/vue-components/v3/breadcrumbs/Breadcrumb.vue +4 -2
- package/vue-components/v3/button/Button.vue +26 -11
- package/vue-components/v3/cards/Cluster.vue +3 -4
- package/vue-components/v3/cards/Counter.vue +12 -0
- package/vue-components/v3/cards/FeatureCard.vue +31 -0
- package/vue-components/v3/cards/InfoCard.vue +4 -9
- package/vue-components/v3/cards/Monitoring.vue +1 -1
- package/vue-components/v3/cards/Vendor.vue +67 -5
- package/vue-components/v3/content/ContentTable.vue +7 -2
- package/vue-components/v3/editor/FilteredFileEditor.vue +200 -3
- package/vue-components/v3/footer/Info.vue +10 -8
- package/vue-components/v3/footer/Status.vue +21 -23
- package/vue-components/v3/footer/Usage.vue +20 -30
- package/vue-components/v3/form/Form.vue +0 -3
- package/vue-components/v3/form-fields/AcSingleInput.vue +9 -1
- package/vue-components/v3/header/Header.vue +5 -4
- package/vue-components/v3/loaders/InfoCardLoader.vue +65 -0
- package/vue-components/v3/modal/Modal.vue +1 -1
- package/vue-components/v3/navbar/Navbar.vue +3 -1
- package/vue-components/v3/navbar/User.vue +4 -4
- package/vue-components/v3/notification/AlertBox.vue +234 -4
- package/vue-components/v3/option-dots/Options.vue +2 -1
- package/vue-components/v3/pagination/Pagination.vue +2 -1
- package/vue-components/v3/preloader/Preloader.vue +1 -1
- package/vue-components/v3/searchbars/SearchBar.vue +10 -2
- package/vue-components/v3/sidebar/ClusterSwitcher.vue +35 -31
- package/vue-components/v3/sidebar/Sidebar.vue +5 -9
- package/vue-components/v3/sidebar/SidebarFooter.vue +3 -3
- package/vue-components/v3/sidebar/SidebarHeader.vue +3 -3
- package/vue-components/v3/sidebar/Steps.vue +152 -0
- package/vue-components/v3/table/InfoTable.vue +6 -4
- package/vue-components/v3/table/Table.vue +38 -31
- package/vue-components/v3/table/TableRow.vue +2 -2
- package/components/_ac-card.scss +0 -589
- package/components/_ac-input.scss +0 -394
- /package/components/{_ac-accordion.scss → _accordion.scss} +0 -0
- /package/components/{_ac-report.scss → _report.scss} +0 -0
|
@@ -1,42 +1,32 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { defineAsyncComponent
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
3
|
const FooterItems = defineAsyncComponent(() => import("./FooterItems.vue"));
|
|
4
4
|
const FooterItem = defineAsyncComponent(() => import("./FooterItem.vue"));
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
interface Props {
|
|
7
|
+
usages?: Array<{
|
|
8
|
+
icon?: string;
|
|
9
|
+
useData?: {
|
|
10
|
+
limit?: string;
|
|
11
|
+
request?: string;
|
|
12
|
+
};
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
useData: {
|
|
14
|
-
limit: "500m",
|
|
15
|
-
usage: "500m",
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
icon: "HeroiconsCpuChip",
|
|
20
|
-
useData: {
|
|
21
|
-
limit: "1G",
|
|
22
|
-
usage: "1G",
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
icon: "HeroiconsCpuChip",
|
|
27
|
-
useData: {
|
|
28
|
-
limit: "10Gi",
|
|
29
|
-
usage: "10Gi",
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
]);
|
|
16
|
+
withDefaults(defineProps<Props>(), {
|
|
17
|
+
usages: () => [],
|
|
18
|
+
});
|
|
33
19
|
</script>
|
|
34
20
|
|
|
35
21
|
<template>
|
|
36
22
|
<footer-items>
|
|
37
|
-
<footer-item v-for="(
|
|
38
|
-
<span class="icon"><
|
|
39
|
-
><span
|
|
23
|
+
<footer-item v-for="(info, idx) in usages" :key="idx">
|
|
24
|
+
<span class="icon"><img :src="info.icon" /></span
|
|
25
|
+
><span
|
|
26
|
+
>{{ info.useData?.limit || "N" }}/{{
|
|
27
|
+
info.useData?.request || "A"
|
|
28
|
+
}}</span
|
|
29
|
+
>
|
|
40
30
|
</footer-item>
|
|
41
31
|
</footer-items>
|
|
42
32
|
</template>
|
|
@@ -187,6 +187,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
187
187
|
label {
|
|
188
188
|
top: 8px;
|
|
189
189
|
font-size: 13px;
|
|
190
|
+
|
|
190
191
|
&.switch-label {
|
|
191
192
|
top: 0;
|
|
192
193
|
}
|
|
@@ -196,6 +197,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
196
197
|
top: -9px;
|
|
197
198
|
font-weight: 500;
|
|
198
199
|
color: $black-40;
|
|
200
|
+
|
|
199
201
|
&.is-required {
|
|
200
202
|
&:after {
|
|
201
203
|
width: calc(100% + 10px);
|
|
@@ -241,6 +243,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
241
243
|
align-items: center;
|
|
242
244
|
width: 40px;
|
|
243
245
|
justify-content: center;
|
|
246
|
+
|
|
244
247
|
svg {
|
|
245
248
|
width: 18px;
|
|
246
249
|
}
|
|
@@ -249,6 +252,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
249
252
|
label {
|
|
250
253
|
top: 8px;
|
|
251
254
|
font-size: 13px;
|
|
255
|
+
|
|
252
256
|
&.switch-label {
|
|
253
257
|
top: 0;
|
|
254
258
|
}
|
|
@@ -411,11 +415,13 @@ withDefaults(defineProps<Props>(), {
|
|
|
411
415
|
}
|
|
412
416
|
}
|
|
413
417
|
}
|
|
418
|
+
|
|
414
419
|
textarea {
|
|
415
420
|
border: 1px solid $primary-80;
|
|
416
421
|
background-color: transparent;
|
|
417
422
|
padding: 10px 15px;
|
|
418
423
|
min-height: 50px;
|
|
424
|
+
|
|
419
425
|
&.bg-white {
|
|
420
426
|
background-color: transparent;
|
|
421
427
|
}
|
|
@@ -447,9 +453,11 @@ withDefaults(defineProps<Props>(), {
|
|
|
447
453
|
&.bg-white {
|
|
448
454
|
background-color: $white-100;
|
|
449
455
|
}
|
|
456
|
+
|
|
450
457
|
&.StripeElement--focus {
|
|
451
458
|
border: 1px solid $primary;
|
|
452
459
|
}
|
|
460
|
+
|
|
453
461
|
&:focus {
|
|
454
462
|
border: 1px solid $primary;
|
|
455
463
|
outline: none;
|
|
@@ -495,7 +503,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
495
503
|
}
|
|
496
504
|
}
|
|
497
505
|
|
|
498
|
-
.is-
|
|
506
|
+
.is-danger {
|
|
499
507
|
font-size: 12px;
|
|
500
508
|
line-height: 22px;
|
|
501
509
|
color: $danger;
|
|
@@ -7,16 +7,18 @@ const HeaderItems = defineAsyncComponent(() => import("./HeaderItems.vue"));
|
|
|
7
7
|
interface Props {
|
|
8
8
|
title?: string;
|
|
9
9
|
isContainer?: boolean;
|
|
10
|
+
topValue?: string;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
withDefaults(defineProps<Props>(), {
|
|
13
14
|
title: "No Title",
|
|
14
15
|
isContainer: false,
|
|
16
|
+
topValue: "86px",
|
|
15
17
|
});
|
|
16
18
|
</script>
|
|
17
19
|
|
|
18
20
|
<template>
|
|
19
|
-
<div class="inner-header">
|
|
21
|
+
<div class="inner-header" :style="{ top: topValue }">
|
|
20
22
|
<div
|
|
21
23
|
class="is-flex is-justify-content-space-between"
|
|
22
24
|
:class="{ container: isContainer }"
|
|
@@ -24,7 +26,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
24
26
|
<header-items>
|
|
25
27
|
<header-item>
|
|
26
28
|
<transition name="fade" mode="out-in" appear>
|
|
27
|
-
<
|
|
29
|
+
<h4 :key="title">{{ title }}</h4>
|
|
28
30
|
</transition>
|
|
29
31
|
</header-item>
|
|
30
32
|
<slot name="header-left-controls" />
|
|
@@ -39,9 +41,8 @@ withDefaults(defineProps<Props>(), {
|
|
|
39
41
|
<style lang="scss" scoped>
|
|
40
42
|
.inner-header {
|
|
41
43
|
padding: 6px 20px;
|
|
42
|
-
border-bottom: 1px solid $primary-
|
|
44
|
+
border-bottom: 1px solid $primary-93;
|
|
43
45
|
position: sticky;
|
|
44
|
-
top: 86px;
|
|
45
46
|
background: $white-100;
|
|
46
47
|
z-index: 99;
|
|
47
48
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ContentLoader } from "vue-content-loader";
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<template>
|
|
6
|
+
<div>
|
|
7
|
+
<svg
|
|
8
|
+
role="img"
|
|
9
|
+
width="230"
|
|
10
|
+
height="115"
|
|
11
|
+
aria-labelledby="loading-aria"
|
|
12
|
+
viewBox="0 0 230 115"
|
|
13
|
+
preserveAspectRatio="none"
|
|
14
|
+
>
|
|
15
|
+
<title id="loading-aria">Loading...</title>
|
|
16
|
+
<rect
|
|
17
|
+
x="0"
|
|
18
|
+
y="0"
|
|
19
|
+
width="100%"
|
|
20
|
+
height="100%"
|
|
21
|
+
clip-path="url(#clip-path)"
|
|
22
|
+
style="fill: url('#fill')"
|
|
23
|
+
></rect>
|
|
24
|
+
<defs>
|
|
25
|
+
<clipPath id="clip-path">
|
|
26
|
+
<rect x="150" y="40" rx="3" ry="3" width="60" height="50" />
|
|
27
|
+
<rect x="10" y="70" rx="3" ry="3" width="120" height="11" />
|
|
28
|
+
<rect x="10" y="100" rx="3" ry="3" width="120" height="11" />
|
|
29
|
+
<rect x="150" y="100" rx="3" ry="3" width="60" height="11" />
|
|
30
|
+
<rect x="10" y="1" rx="3" ry="3" width="200" height="22" />
|
|
31
|
+
<rect x="10" y="40" rx="3" ry="3" width="120" height="11" />
|
|
32
|
+
</clipPath>
|
|
33
|
+
<linearGradient id="fill">
|
|
34
|
+
<stop offset="0.599964" stop-color="#cfcfcf" stop-opacity="1">
|
|
35
|
+
<animate
|
|
36
|
+
attributeName="offset"
|
|
37
|
+
values="-2; -2; 1"
|
|
38
|
+
keyTimes="0; 0.25; 1"
|
|
39
|
+
dur="2s"
|
|
40
|
+
repeatCount="indefinite"
|
|
41
|
+
></animate>
|
|
42
|
+
</stop>
|
|
43
|
+
<stop offset="1.59996" stop-color="#ecebeb" stop-opacity="1">
|
|
44
|
+
<animate
|
|
45
|
+
attributeName="offset"
|
|
46
|
+
values="-1; -1; 2"
|
|
47
|
+
keyTimes="0; 0.25; 1"
|
|
48
|
+
dur="2s"
|
|
49
|
+
repeatCount="indefinite"
|
|
50
|
+
></animate>
|
|
51
|
+
</stop>
|
|
52
|
+
<stop offset="2.59996" stop-color="#cfcfcf" stop-opacity="1">
|
|
53
|
+
<animate
|
|
54
|
+
attributeName="offset"
|
|
55
|
+
values="0; 0; 3"
|
|
56
|
+
keyTimes="0; 0.25; 1"
|
|
57
|
+
dur="2s"
|
|
58
|
+
repeatCount="indefinite"
|
|
59
|
+
></animate>
|
|
60
|
+
</stop>
|
|
61
|
+
</linearGradient>
|
|
62
|
+
</defs>
|
|
63
|
+
</svg>
|
|
64
|
+
</div>
|
|
65
|
+
</template>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { defineAsyncComponent, ref, watch, computed, nextTick } from "vue";
|
|
3
|
-
import type { User
|
|
3
|
+
import type { User } from "../../types/user";
|
|
4
4
|
|
|
5
|
-
interface FormatedOrgs extends
|
|
5
|
+
interface FormatedOrgs extends User {
|
|
6
6
|
isPersonalAccount?: boolean;
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -93,13 +93,13 @@ watch(dropDownStatus, (n) => {
|
|
|
93
93
|
<navbar-item :modifierClasses="'ac-profile-button'">
|
|
94
94
|
<template #navbar-item>
|
|
95
95
|
<div class="ac-user-profile mr-8">
|
|
96
|
-
<img :src="
|
|
96
|
+
<img :src="user.avatar_url" alt="User Photo" />
|
|
97
97
|
</div>
|
|
98
98
|
{{ user.full_name || user.username }}
|
|
99
99
|
<i class="fa fa-angle-down" aria-hidden="true"></i>
|
|
100
100
|
</template>
|
|
101
101
|
<!-- <button class="button ac-nav-button ac-profile-button">
|
|
102
|
-
|
|
102
|
+
|
|
103
103
|
</button> -->
|
|
104
104
|
|
|
105
105
|
<template #navbar-content>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { toRefs, computed, defineAsyncComponent } from "vue";
|
|
3
2
|
import DOMPurify from "dompurify";
|
|
3
|
+
import { computed, defineAsyncComponent, toRefs } from "vue";
|
|
4
4
|
|
|
5
5
|
const AcButton = defineAsyncComponent(() => import("../button/Button.vue"));
|
|
6
6
|
|
|
@@ -27,10 +27,15 @@ const { notificationType, content, hideIcon, actionButton } = toRefs(props);
|
|
|
27
27
|
|
|
28
28
|
const iconClass = computed(() => {
|
|
29
29
|
if (notificationType.value === "success") return "fa-check-circle";
|
|
30
|
-
else if (notificationType.value === "info") return "fa-info-circle";
|
|
30
|
+
else if (notificationType.value === "info") return "fa-info-circle ";
|
|
31
31
|
else if (notificationType.value === "error") return "fa-times-circle";
|
|
32
32
|
else return "fa-info-circle";
|
|
33
33
|
});
|
|
34
|
+
const backgroundColor = computed(() => {
|
|
35
|
+
if (notificationType.value === "success") return "is-success";
|
|
36
|
+
else if (notificationType.value === "error") return "is-danger";
|
|
37
|
+
else return "";
|
|
38
|
+
});
|
|
34
39
|
|
|
35
40
|
const getSanitizedHtml = (content: string) => {
|
|
36
41
|
return DOMPurify.sanitize(content || "");
|
|
@@ -39,8 +44,11 @@ const getSanitizedHtml = (content: string) => {
|
|
|
39
44
|
|
|
40
45
|
<template>
|
|
41
46
|
<!-- alert-message area start -->
|
|
42
|
-
<!-- plsease, use this class name ('.is-info' 'is-success', 'is-
|
|
43
|
-
<div
|
|
47
|
+
<!-- plsease, use this class name ('.is-info' 'is-success', 'is-danger', 'is-warning') -->
|
|
48
|
+
<div
|
|
49
|
+
class="ac-notification is-${notificationType} mb-15"
|
|
50
|
+
:class="backgroundColor"
|
|
51
|
+
>
|
|
44
52
|
<p>
|
|
45
53
|
<i v-if="!hideIcon" :class="`fa ${iconClass} mr-5`"></i
|
|
46
54
|
><span v-html="getSanitizedHtml(content)"></span>
|
|
@@ -56,3 +64,225 @@ const getSanitizedHtml = (content: string) => {
|
|
|
56
64
|
</div>
|
|
57
65
|
<!-- alert-message area end -->
|
|
58
66
|
</template>
|
|
67
|
+
|
|
68
|
+
<style lang="scss" scoped>
|
|
69
|
+
// for alert message
|
|
70
|
+
.ac-notification {
|
|
71
|
+
background-color: #dee7f5;
|
|
72
|
+
font-size: 13px;
|
|
73
|
+
color: $primary;
|
|
74
|
+
min-height: 36px;
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
padding: 8px 16px;
|
|
78
|
+
overflow: hidden;
|
|
79
|
+
border: 1px solid $primary;
|
|
80
|
+
border-radius: 4px;
|
|
81
|
+
justify-content: flex-start;
|
|
82
|
+
position: relative;
|
|
83
|
+
z-index: 1;
|
|
84
|
+
min-width: 280px;
|
|
85
|
+
|
|
86
|
+
p {
|
|
87
|
+
color: $primary;
|
|
88
|
+
margin-bottom: 0;
|
|
89
|
+
|
|
90
|
+
.close-icon {
|
|
91
|
+
padding-right: 10px;
|
|
92
|
+
font-size: 15px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
a {
|
|
96
|
+
text-decoration: underline;
|
|
97
|
+
color: $primary;
|
|
98
|
+
|
|
99
|
+
&:hover {
|
|
100
|
+
color: hsla(
|
|
101
|
+
var(--hsl-hue),
|
|
102
|
+
var(--hsl-saturation),
|
|
103
|
+
calc(var(--hsl-lightness) - 10%),
|
|
104
|
+
1
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
button.close {
|
|
111
|
+
background-color: transparent;
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
right: 0px;
|
|
114
|
+
position: absolute;
|
|
115
|
+
box-shadow: none;
|
|
116
|
+
border: none;
|
|
117
|
+
font-size: 14px;
|
|
118
|
+
color: $danger;
|
|
119
|
+
width: 40px;
|
|
120
|
+
height: 100%;
|
|
121
|
+
display: flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
justify-content: center;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// mixin for .ac-notification
|
|
128
|
+
@mixin acNotification($colorName) {
|
|
129
|
+
background-color: scale-color($color: $colorName, $lightness: 80%);
|
|
130
|
+
color: $white-100;
|
|
131
|
+
border-color: $colorName;
|
|
132
|
+
|
|
133
|
+
p {
|
|
134
|
+
color: $colorName;
|
|
135
|
+
|
|
136
|
+
a {
|
|
137
|
+
color: $colorName;
|
|
138
|
+
|
|
139
|
+
&:hover {
|
|
140
|
+
color: $colorName;
|
|
141
|
+
opacity: 0.8;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
@mixin acPrimaryNotification() {
|
|
147
|
+
background-color: hsla(
|
|
148
|
+
var(--hsl-hue),
|
|
149
|
+
var(--hsl-saturation),
|
|
150
|
+
var(--hsl-lightness),
|
|
151
|
+
0.2
|
|
152
|
+
);
|
|
153
|
+
color: $white-100;
|
|
154
|
+
border-color: $primary;
|
|
155
|
+
|
|
156
|
+
p {
|
|
157
|
+
color: $primary;
|
|
158
|
+
|
|
159
|
+
a {
|
|
160
|
+
color: $primary;
|
|
161
|
+
|
|
162
|
+
&:hover {
|
|
163
|
+
color: $primary;
|
|
164
|
+
opacity: 0.8;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// is-primary
|
|
171
|
+
.ac-notification.is-primary {
|
|
172
|
+
@include acPrimaryNotification();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// is.info
|
|
176
|
+
.ac-notification.is-info {
|
|
177
|
+
@include acNotification($info);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// is.success
|
|
181
|
+
.ac-notification.is-success {
|
|
182
|
+
@include acNotification($success);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// is-danger
|
|
186
|
+
.ac-notification.is-danger {
|
|
187
|
+
@include acNotification($danger);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// is-warning
|
|
191
|
+
.ac-notification.is-warning {
|
|
192
|
+
@include acNotification($warning);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/*====================================
|
|
196
|
+
AC Toast
|
|
197
|
+
=====================================*/
|
|
198
|
+
|
|
199
|
+
.ac-toast {
|
|
200
|
+
width: 350px;
|
|
201
|
+
display: flex;
|
|
202
|
+
align-items: center;
|
|
203
|
+
justify-content: space-between;
|
|
204
|
+
font-size: 13px;
|
|
205
|
+
border-radius: 4px;
|
|
206
|
+
position: relative;
|
|
207
|
+
padding-right: 30px;
|
|
208
|
+
margin-bottom: 10px;
|
|
209
|
+
|
|
210
|
+
* {
|
|
211
|
+
color: $white-100;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
p {
|
|
215
|
+
padding-left: 16px;
|
|
216
|
+
|
|
217
|
+
i.fa {
|
|
218
|
+
padding-right: 0 !important;
|
|
219
|
+
margin-right: 4px;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
a {
|
|
224
|
+
font-weight: 500;
|
|
225
|
+
text-decoration: underline;
|
|
226
|
+
padding: 0 15px;
|
|
227
|
+
|
|
228
|
+
&:hover {
|
|
229
|
+
color: $black-70;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
button.close-button {
|
|
234
|
+
border-radius: 0px;
|
|
235
|
+
background-color: transparent;
|
|
236
|
+
border: none;
|
|
237
|
+
color: $white-100;
|
|
238
|
+
position: absolute;
|
|
239
|
+
right: 0;
|
|
240
|
+
top: 0;
|
|
241
|
+
padding: 5px;
|
|
242
|
+
height: 100%;
|
|
243
|
+
width: 30px;
|
|
244
|
+
z-index: 1;
|
|
245
|
+
cursor: pointer;
|
|
246
|
+
border-left: 1px solid #dddddd;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// mixin for .ac-toast
|
|
251
|
+
@mixin acToast($colorName) {
|
|
252
|
+
background-color: $colorName;
|
|
253
|
+
color: $white-100;
|
|
254
|
+
border-color: $colorName;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// is-primary
|
|
258
|
+
.ac-toast.is-primary {
|
|
259
|
+
@include acToast($primary);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// is-info
|
|
263
|
+
.ac-toast.is-info {
|
|
264
|
+
@include acToast($info);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// is.success
|
|
268
|
+
.ac-toast.is-success {
|
|
269
|
+
@include acToast($success);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// is-danger
|
|
273
|
+
.ac-toast.is-danger {
|
|
274
|
+
@include acToast($danger);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// is-warning
|
|
278
|
+
.ac-toast.is-warning {
|
|
279
|
+
@include acToast($warning);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// dark theme start
|
|
283
|
+
// .is-dark-theme {
|
|
284
|
+
// .ac-notification.is-danger {
|
|
285
|
+
// background-color: $black-80;
|
|
286
|
+
// }
|
|
287
|
+
// }
|
|
288
|
+
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { onMounted, onUnmounted, ref, type Ref } from "vue";
|
|
3
3
|
|
|
4
4
|
interface Props {
|
|
5
5
|
modifierClasses?: string;
|
|
@@ -131,6 +131,7 @@ const documentClick = (e: Event) => {
|
|
|
131
131
|
opacity: 0;
|
|
132
132
|
visibility: hidden;
|
|
133
133
|
transition: 0.3s ease-in-out;
|
|
134
|
+
text-align: left;
|
|
134
135
|
|
|
135
136
|
li {
|
|
136
137
|
.list-button {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { computed, ref, watch } from "vue";
|
|
3
3
|
|
|
4
4
|
interface Props {
|
|
5
5
|
hideRowsPerPageSelection?: boolean;
|
|
@@ -224,6 +224,7 @@ watch(selectedItemCountPerPage, () => {
|
|
|
224
224
|
&:active,
|
|
225
225
|
&:focus-visible {
|
|
226
226
|
border: 1px solid $primary;
|
|
227
|
+
outline: none;
|
|
227
228
|
}
|
|
228
229
|
}
|
|
229
230
|
}
|
|
@@ -12,7 +12,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
12
12
|
|
|
13
13
|
<template>
|
|
14
14
|
<div
|
|
15
|
-
class="is-flex is-justify-content-center is-align-items-center is-flex-direction-column ac-preloader"
|
|
15
|
+
class="is-flex is-justify-content-center is-align-items-center is-flex-direction-column ac-preloader page-loader"
|
|
16
16
|
style="height: calc(100vh - 200px)"
|
|
17
17
|
>
|
|
18
18
|
<span v-if="showSpinner" class="spinner"></span>
|
|
@@ -7,6 +7,14 @@ const AcSingleInput = defineAsyncComponent(
|
|
|
7
7
|
|
|
8
8
|
const AcInput = defineAsyncComponent(() => import("../form-fields/Input.vue"));
|
|
9
9
|
|
|
10
|
+
interface Props {
|
|
11
|
+
acInputId?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
withDefaults(defineProps<Props>(), {
|
|
15
|
+
acInputId: "search",
|
|
16
|
+
});
|
|
17
|
+
|
|
10
18
|
const emit = defineEmits(["search"]);
|
|
11
19
|
|
|
12
20
|
const searchText = ref("");
|
|
@@ -19,7 +27,7 @@ watch(searchText, (n) => {
|
|
|
19
27
|
<template>
|
|
20
28
|
<ac-single-input modifier-classes="is-extra-small width-auto">
|
|
21
29
|
<template #button>
|
|
22
|
-
<label class="ac-search-button" for="
|
|
30
|
+
<label class="ac-search-button" :for="acInputId">
|
|
23
31
|
<svg
|
|
24
32
|
xmlns="http://www.w3.org/2000/svg"
|
|
25
33
|
viewBox="0 0 20 20"
|
|
@@ -39,7 +47,7 @@ watch(searchText, (n) => {
|
|
|
39
47
|
placeholder="Search"
|
|
40
48
|
type="search"
|
|
41
49
|
class="ac-search"
|
|
42
|
-
id="
|
|
50
|
+
:id="acInputId"
|
|
43
51
|
v-model="searchText"
|
|
44
52
|
/>
|
|
45
53
|
</ac-single-input>
|