@appscode/design-system 1.1.0-beta.11 → 1.1.0-beta.14
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/components/_ac-terminal.scss +50 -33
- package/components/_all.scss +1 -0
- package/package.json +1 -1
- package/vue-components/v2/banner/Banner.vue +1 -1
- package/vue-components/v2/modal/Modal.vue +1 -1
- package/vue-components/v3/banner/Banner.vue +2 -2
- package/vue-components/v3/footer/Info.vue +10 -8
- package/vue-components/v3/footer/Status.vue +27 -23
- package/vue-components/v3/footer/Usage.vue +20 -30
- package/vue-components/v3/modal/Modal.vue +1 -1
- package/vue-components/v3/option-dots/Options.vue +2 -1
- package/vue-components/v3/preloader/Preloader.vue +1 -1
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
// terminal scss start
|
|
2
2
|
.ac-terminal {
|
|
3
3
|
width: 100%;
|
|
4
|
+
border-top: 1px solid var(--ac-white-light);
|
|
5
|
+
padding: 0;
|
|
6
|
+
position: fixed;
|
|
7
|
+
width: calc(100% - 250px);
|
|
8
|
+
bottom: 0;
|
|
9
|
+
background-color: $primary-10;
|
|
10
|
+
color: $white-100;
|
|
11
|
+
font-size: 13px;
|
|
12
|
+
height: 360px;
|
|
13
|
+
z-index: 999;
|
|
14
|
+
transition: 0.3s ease-in-out;
|
|
4
15
|
|
|
5
16
|
.terminal-body {
|
|
6
17
|
font-family: "Inconsolata", monospace;
|
|
@@ -12,20 +23,6 @@
|
|
|
12
23
|
color: $white-100;
|
|
13
24
|
}
|
|
14
25
|
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.ac-terminal {
|
|
18
|
-
border-top: 1px solid var(--ac-white-light);
|
|
19
|
-
padding: 0;
|
|
20
|
-
position: fixed;
|
|
21
|
-
width: calc(100% - 250px);
|
|
22
|
-
bottom: 0;
|
|
23
|
-
background-color: $white-100;
|
|
24
|
-
color: $white-100;
|
|
25
|
-
font-size: 13px;
|
|
26
|
-
height: 360px;
|
|
27
|
-
z-index: 999;
|
|
28
|
-
transition: 0.3s ease-in-out;
|
|
29
26
|
|
|
30
27
|
&.is-collapsed {
|
|
31
28
|
height: 40px !important;
|
|
@@ -147,35 +144,53 @@
|
|
|
147
144
|
}
|
|
148
145
|
}
|
|
149
146
|
|
|
150
|
-
.options
|
|
151
|
-
|
|
152
|
-
left: 40px;
|
|
147
|
+
.ac-options {
|
|
148
|
+
position: relative;
|
|
153
149
|
|
|
154
|
-
.items
|
|
155
|
-
|
|
150
|
+
.options-items {
|
|
151
|
+
top: 5px;
|
|
152
|
+
left: 35px;
|
|
153
|
+
position: absolute;
|
|
154
|
+
background: #333;
|
|
155
|
+
width: 150px;
|
|
156
|
+
border-radius: 4px;
|
|
157
|
+
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
|
158
|
+
z-index: 99;
|
|
156
159
|
|
|
157
|
-
|
|
160
|
+
.items-inner {
|
|
158
161
|
border: none;
|
|
159
|
-
border-right: none !important;
|
|
160
|
-
border-bottom: 1px solid $white-100-lighter;
|
|
161
|
-
width: 100%;
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
border
|
|
165
|
-
|
|
163
|
+
li {
|
|
164
|
+
border: none;
|
|
165
|
+
border-right: none !important;
|
|
166
|
+
border-bottom: 1px solid $white-100-lighter;
|
|
167
|
+
width: 100%;
|
|
166
168
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
169
|
+
&:last-child {
|
|
170
|
+
border-bottom: none;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
a {
|
|
174
|
+
font-size: 13px;
|
|
175
|
+
padding: 10px 20px;
|
|
176
|
+
justify-content: flex-start;
|
|
177
|
+
border-bottom: 1px solid #444;
|
|
170
178
|
|
|
171
|
-
|
|
172
|
-
|
|
179
|
+
&:last-child {
|
|
180
|
+
border-bottom: none;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
&:hover {
|
|
184
|
+
color: $primary !important;
|
|
185
|
+
}
|
|
173
186
|
}
|
|
174
187
|
}
|
|
175
188
|
}
|
|
176
189
|
}
|
|
190
|
+
|
|
177
191
|
}
|
|
178
192
|
|
|
193
|
+
|
|
179
194
|
.right-control {
|
|
180
195
|
.button {
|
|
181
196
|
.fa {
|
|
@@ -204,7 +219,7 @@
|
|
|
204
219
|
|
|
205
220
|
.multiselect .multiselect__tags .multiselect__input,
|
|
206
221
|
.multiselect .multiselect__tags .multiselect__single {
|
|
207
|
-
background-color:
|
|
222
|
+
background-color: $primary-10;
|
|
208
223
|
}
|
|
209
224
|
}
|
|
210
225
|
}
|
|
@@ -254,7 +269,7 @@
|
|
|
254
269
|
|
|
255
270
|
.multiselect.multiselect--active {
|
|
256
271
|
.multiselect__tags {
|
|
257
|
-
border: 1px solid $
|
|
272
|
+
border: 1px solid $primary-30 !important;
|
|
258
273
|
|
|
259
274
|
.multiselect__input {
|
|
260
275
|
color: $white-100 !important;
|
|
@@ -272,6 +287,8 @@
|
|
|
272
287
|
}
|
|
273
288
|
}
|
|
274
289
|
|
|
290
|
+
|
|
291
|
+
|
|
275
292
|
.notification-inner {
|
|
276
293
|
h3 {
|
|
277
294
|
color: $primary-97;
|
package/components/_all.scss
CHANGED
package/package.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
<template>
|
|
4
4
|
<div class="sign-up-notification mb-20">
|
|
5
|
-
<div class="
|
|
6
|
-
<h3><slot name="banner-title">Error!</slot></h3>
|
|
5
|
+
<div class="has-text-centered">
|
|
6
|
+
<h3 class="has-text-danger"><slot name="banner-title">Error!</slot></h3>
|
|
7
7
|
<slot><p>Oops!! There was an error while loading!</p></slot>
|
|
8
8
|
</div>
|
|
9
9
|
</div>
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import {
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
3
|
|
|
4
4
|
const FooterItems = defineAsyncComponent(() => import("./FooterItems.vue"));
|
|
5
5
|
const FooterItem = defineAsyncComponent(() => import("./FooterItem.vue"));
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
interface Props {
|
|
8
|
+
infoData?: Array<Record<string, string>>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
withDefaults(defineProps<Props>(), {
|
|
12
|
+
infoData: () => [],
|
|
13
|
+
});
|
|
12
14
|
</script>
|
|
13
15
|
|
|
14
16
|
<template>
|
|
15
17
|
<footer-items>
|
|
16
|
-
<footer-item v-for="(data, idx) in
|
|
17
|
-
<span class="">{{ data.key }}
|
|
18
|
+
<footer-item v-for="(data, idx) in infoData" :key="idx + data.key">
|
|
19
|
+
<span class="">{{ data.key }}:</span>
|
|
18
20
|
<span>{{ data.value }}</span>
|
|
19
21
|
</footer-item>
|
|
20
22
|
</footer-items>
|
|
@@ -5,36 +5,40 @@ const FooterItem = defineAsyncComponent(() => import("./FooterItem.vue"));
|
|
|
5
5
|
const HeroiconsCheckBadge = defineAsyncComponent(
|
|
6
6
|
() => import("~icons/heroicons/check-badge")
|
|
7
7
|
);
|
|
8
|
+
const HeroiconsCrossBadge = defineAsyncComponent(
|
|
9
|
+
() => import("~icons/heroicons/x-circle")
|
|
10
|
+
);
|
|
11
|
+
const HeroiconsLoadingBadge = defineAsyncComponent(
|
|
12
|
+
() => import("~icons/heroicons/arrow-path")
|
|
13
|
+
);
|
|
14
|
+
interface Props {
|
|
15
|
+
statusInfo?: Array<Record<string, string>>;
|
|
16
|
+
}
|
|
8
17
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
label: "Not Exposed",
|
|
13
|
-
classType: "has-text-warning",
|
|
14
|
-
},
|
|
15
|
-
{ icon: "HeroiconsXCircle", label: "TLS", classType: "has-text-danger" },
|
|
16
|
-
{
|
|
17
|
-
icon: "HeroiconsCheckBadge",
|
|
18
|
-
label: "Backup",
|
|
19
|
-
classType: "has-text-success",
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
icon: "HeroiconsXCircle",
|
|
23
|
-
label: "Monitoring",
|
|
24
|
-
classType: "has-text-danger",
|
|
25
|
-
},
|
|
26
|
-
]);
|
|
18
|
+
withDefaults(defineProps<Props>(), {
|
|
19
|
+
statusInfo: () => [],
|
|
20
|
+
});
|
|
27
21
|
</script>
|
|
28
22
|
|
|
29
23
|
<template>
|
|
30
24
|
<footer-items>
|
|
31
25
|
<footer-item
|
|
32
|
-
v-for="(item, idx) in
|
|
33
|
-
:key="idx"
|
|
34
|
-
:modifier-classes="item.
|
|
26
|
+
v-for="(item, idx) in statusInfo"
|
|
27
|
+
:key="idx + item.label"
|
|
28
|
+
:modifier-classes="item.color"
|
|
35
29
|
>
|
|
36
|
-
<span class="icon"
|
|
37
|
-
|
|
30
|
+
<span class="icon">
|
|
31
|
+
<HeroiconsCheckBadge
|
|
32
|
+
v-if="item.color === `has-text-success`"
|
|
33
|
+
:size="20"
|
|
34
|
+
/>
|
|
35
|
+
<HeroiconsLoadingBadge
|
|
36
|
+
v-else-if="item.color === `has-text-warning`"
|
|
37
|
+
:size="20"
|
|
38
|
+
/>
|
|
39
|
+
<HeroiconsCrossBadge v-else :size="20" />
|
|
40
|
+
</span>
|
|
41
|
+
<span>{{ item.label }}</span>
|
|
38
42
|
</footer-item>
|
|
39
43
|
</footer-items>
|
|
40
44
|
</template>
|
|
@@ -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>
|
|
@@ -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 {
|
|
@@ -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>
|