@appscode/design-system 2.4.25 → 2.4.26-alpha-2
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/main.scss +3 -0
- package/package.json +1 -1
- package/vue-components/styles/base/utilities/_colors.scss +1 -1
- package/vue-components/styles/base/utilities/_global.scss +13 -0
- package/vue-components/styles/base/utilities/_typography.scss +1 -1
- package/vue-components/v3/form-fields/Searchbar.vue +25 -23
- package/vue-components/v3/icons/ArrowDownIcon.vue +2 -2
- package/vue-components/v3/icons/CloseIcon.vue +2 -9
- package/vue-components/v3/icons/EllipsisVertical.vue +16 -0
- package/vue-components/v3/icons/SearchIcon.vue +16 -0
- package/vue-components/v3/icons/StarIcon.vue +33 -0
- package/vue-components/v3/icons/TrashIcon.vue +16 -0
- package/vue-components/v3/navbar/Appdrawer.vue +3 -11
- package/vue-components/v3/table/table-cell/ArrayCell.vue +2 -2
- package/vue-components/v3/table/table-cell/ObjectCell.vue +2 -2
package/main.scss
CHANGED
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
// COMPONENTS
|
|
17
17
|
// @import "@/components/vue-components/styles/components/all";
|
|
18
18
|
@import "@/components/vue-components/styles/components/button";
|
|
19
|
+
@import "@/components/vue-components/styles/components/avatar";
|
|
19
20
|
@import "@/components/vue-components/styles/components/terminal";
|
|
20
21
|
@import "@/components/vue-components/styles/components/steps";
|
|
21
22
|
@import "@/components/vue-components/styles/components/code-preview/all";
|
|
22
23
|
@import "@/components/vue-components/styles/components/form-fields/input";
|
|
24
|
+
@import "@/components/vue-components/styles/components/form-fields/check-radio-switch";
|
|
23
25
|
@import "@/components/vue-components/styles/components/form-fields/custom-selectbox";
|
|
24
26
|
@import "@/components/vue-components/styles/components/ui-builder/vue-open-api";
|
|
25
27
|
@import "@/components/vue-components/styles/components/ui-builder/ui-builder";
|
|
28
|
+
@import "@/components/vue-components/styles/components/dropdown.scss";
|
|
26
29
|
// @import "@/components/vue-components/styles/theme/appscode.scss";
|
package/package.json
CHANGED
|
@@ -56,7 +56,7 @@ $secondary-dark-grey: hsl($secondary-hue, 10%, 10%);
|
|
|
56
56
|
$secondary-light-gray: hsl($secondary-hue, 10%, 96%);
|
|
57
57
|
$secondary-dark-gray: hsl($secondary-hue, 10%, 10%);
|
|
58
58
|
|
|
59
|
-
$color-text: hsl($secondary-hue, 10%,
|
|
59
|
+
$color-text: hsl($secondary-hue, 10%, 25%);
|
|
60
60
|
$color-heading: hsl($secondary-hue, 10%, 10%);
|
|
61
61
|
$color-label: hsl($secondary-hue, 20%, 30%);
|
|
62
62
|
$color-link: hsl($secondary-hue, 40%, 20%);
|
|
@@ -333,6 +333,19 @@ hr {
|
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
+
.overflow-y-hidden {
|
|
337
|
+
overflow-y: hidden;
|
|
338
|
+
}
|
|
339
|
+
.overflow-x-hidden {
|
|
340
|
+
overflow-x: hidden;
|
|
341
|
+
}
|
|
342
|
+
.overflow-y-auto {
|
|
343
|
+
overflow-y: auto;
|
|
344
|
+
}
|
|
345
|
+
.overflow-x-auto {
|
|
346
|
+
overflow-x: auto;
|
|
347
|
+
}
|
|
348
|
+
|
|
336
349
|
.is-transparent-bg {
|
|
337
350
|
background-color: transparent !important;
|
|
338
351
|
}
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
size?: string;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
withResult?: boolean;
|
|
9
|
+
}
|
|
10
|
+
withDefaults(defineProps<Props>(), {
|
|
11
|
+
placeholder: "Search what you are looking for",
|
|
12
|
+
size: "is-small",
|
|
13
|
+
loading: false,
|
|
14
|
+
withResult: false,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const SearchIcon = defineAsyncComponent(() => import("./../icons/SearchIcon.vue"));
|
|
18
|
+
const RefreshIcon = defineAsyncComponent(() => import("./../icons/RefreshIcon.vue"));
|
|
19
|
+
</script>
|
|
1
20
|
<template>
|
|
2
21
|
<!-- searchbar -->
|
|
3
22
|
<div class="searchbar ac-single-input is-small is-relative">
|
|
4
23
|
<label for="search">
|
|
5
24
|
<span class="icon">
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
fill="none"
|
|
9
|
-
viewBox="0 0 24 24"
|
|
10
|
-
stroke-width="1.5"
|
|
11
|
-
stroke="currentColor"
|
|
12
|
-
class="w-6 h-6"
|
|
13
|
-
>
|
|
14
|
-
<path
|
|
15
|
-
stroke-linecap="round"
|
|
16
|
-
stroke-linejoin="round"
|
|
17
|
-
d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"
|
|
18
|
-
/>
|
|
19
|
-
</svg>
|
|
25
|
+
<RefreshIcon v-if="loading" class="is-spin" />
|
|
26
|
+
<SearchIcon v-else />
|
|
20
27
|
</span>
|
|
21
28
|
</label>
|
|
22
|
-
<input id="search" type="text" placeholder="
|
|
29
|
+
<input id="search" type="text" :placeholder="placeholder" class="pl-48" />
|
|
23
30
|
|
|
24
31
|
<!-- use .is-absolute -->
|
|
25
|
-
<div
|
|
26
|
-
<div class="search-content
|
|
27
|
-
<
|
|
28
|
-
<h2 class="is-size-5 has-text-primary">Changelog | <em>Kube</em>DB</h2>
|
|
29
|
-
<p class="is-ellipsis-2">
|
|
30
|
-
<em>Kube</em>DB v2020.07.10-beta.1 (2020-07-10) kubedb/apimachinery v0.14.0-beta.1 157a8724 Update for…
|
|
31
|
-
</p>
|
|
32
|
-
</a>
|
|
32
|
+
<div v-if="withResult" class="search-result-box panel is-fullwidth z-900">
|
|
33
|
+
<div class="search-content ac-vscrollbar p-0" style="max-height: 350px; overflow-y: auto">
|
|
34
|
+
<slot name="search-result" />
|
|
33
35
|
</div>
|
|
34
36
|
</div>
|
|
35
37
|
</div>
|
|
@@ -8,14 +8,14 @@ withDefaults(defineProps<{ direction?: "up" | "down" }>(), {
|
|
|
8
8
|
<svg
|
|
9
9
|
xmlns="http://www.w3.org/2000/svg"
|
|
10
10
|
fill="none"
|
|
11
|
-
width="16px"
|
|
12
11
|
height="16px"
|
|
12
|
+
width="16px"
|
|
13
13
|
viewBox="0 0 24 24"
|
|
14
14
|
stroke-width="1.5"
|
|
15
15
|
stroke="currentColor"
|
|
16
16
|
class="size-6"
|
|
17
17
|
:style="direction === 'up' ? 'transform: rotate(0deg)' : 'transform: rotate(-180deg)'"
|
|
18
18
|
>
|
|
19
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="
|
|
19
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5" />
|
|
20
20
|
</svg>
|
|
21
21
|
</template>
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
withDefaults(defineProps<{ direction?: "up" | "down" }>(), {
|
|
3
|
-
direction: "up",
|
|
4
|
-
});
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
1
|
<template>
|
|
8
2
|
<svg
|
|
9
3
|
xmlns="http://www.w3.org/2000/svg"
|
|
10
4
|
fill="none"
|
|
11
|
-
height="16px"
|
|
12
5
|
width="16px"
|
|
6
|
+
height="16px"
|
|
13
7
|
viewBox="0 0 24 24"
|
|
14
8
|
stroke-width="1.5"
|
|
15
9
|
stroke="currentColor"
|
|
16
10
|
class="size-6"
|
|
17
|
-
:style="direction === 'up' ? 'transform: rotate(0deg)' : 'transform: rotate(-180deg)'"
|
|
18
11
|
>
|
|
19
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="
|
|
12
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
|
|
20
13
|
</svg>
|
|
21
14
|
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
+
fill="none"
|
|
5
|
+
viewBox="0 0 24 24"
|
|
6
|
+
stroke-width="1.5"
|
|
7
|
+
stroke="currentColor"
|
|
8
|
+
class="size-6"
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
d="M12 6.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 12.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 18.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5Z"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
+
fill="none"
|
|
5
|
+
viewBox="0 0 24 24"
|
|
6
|
+
stroke-width="1.5"
|
|
7
|
+
stroke="currentColor"
|
|
8
|
+
class="w-6 h-6"
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
</template>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
fill?: boolean;
|
|
4
|
+
}
|
|
5
|
+
withDefaults(defineProps<Props>(), {
|
|
6
|
+
fill: false,
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<svg v-if="fill" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-6">
|
|
12
|
+
<path
|
|
13
|
+
fill-rule="evenodd"
|
|
14
|
+
d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.006 5.404.434c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.434 2.082-5.005Z"
|
|
15
|
+
clip-rule="evenodd"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
<svg
|
|
19
|
+
v-else
|
|
20
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
21
|
+
fill="none"
|
|
22
|
+
viewBox="0 0 24 24"
|
|
23
|
+
stroke-width="1.5"
|
|
24
|
+
stroke="currentColor"
|
|
25
|
+
class="size-6"
|
|
26
|
+
>
|
|
27
|
+
<path
|
|
28
|
+
stroke-linecap="round"
|
|
29
|
+
stroke-linejoin="round"
|
|
30
|
+
d="M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z"
|
|
31
|
+
/>
|
|
32
|
+
</svg>
|
|
33
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
+
fill="none"
|
|
5
|
+
viewBox="0 0 24 24"
|
|
6
|
+
stroke-width="1.5"
|
|
7
|
+
stroke="currentColor"
|
|
8
|
+
class="size-6"
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
</template>
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { setCookie } from "tiny-cookie";
|
|
3
2
|
import { computed, defineAsyncComponent, ref } from "vue";
|
|
4
3
|
|
|
5
4
|
interface Props {
|
|
6
5
|
currentApp: "console" | "db" | "platform" | "billing" | "selfhost" | "learn" | "grafana";
|
|
7
6
|
baseUrl: string;
|
|
8
|
-
activeOrganization: string;
|
|
9
|
-
rootDomain: string;
|
|
10
7
|
}
|
|
11
8
|
|
|
12
9
|
const props = withDefaults(defineProps<Props>(), {
|
|
13
10
|
currentApp: "platform",
|
|
14
11
|
baseUrl: "https://appscode.com",
|
|
15
|
-
activeOrganization: "",
|
|
16
|
-
rootDomain: "",
|
|
17
12
|
});
|
|
18
13
|
|
|
14
|
+
defineEmits(["onClick"]);
|
|
15
|
+
|
|
19
16
|
const appList = [
|
|
20
17
|
{
|
|
21
18
|
name: "console",
|
|
@@ -101,11 +98,6 @@ const filteredAppList = appListWithUrl.filter((element) => {
|
|
|
101
98
|
|
|
102
99
|
return true;
|
|
103
100
|
});
|
|
104
|
-
|
|
105
|
-
const handleClick = (url: string) => {
|
|
106
|
-
setCookie("gorg", props.activeOrganization, { domain: props.rootDomain });
|
|
107
|
-
window.open(url, "_blank");
|
|
108
|
-
};
|
|
109
101
|
</script>
|
|
110
102
|
|
|
111
103
|
<template>
|
|
@@ -148,7 +140,7 @@ const handleClick = (url: string) => {
|
|
|
148
140
|
<navbar-item-content class="navbar-dropdown-wrapper" style="right: -30px">
|
|
149
141
|
<ul class="ac-scrollbar p-0 app-drawer">
|
|
150
142
|
<li v-for="app in filteredAppList" :key="app.url">
|
|
151
|
-
<a @click.prevent.stop="
|
|
143
|
+
<a @click.prevent.stop="$emit('onClick', app.url)">
|
|
152
144
|
<article class="media">
|
|
153
145
|
<figure class="media-left">
|
|
154
146
|
<p class="image">
|
|
@@ -40,9 +40,9 @@ const printableStringObjs = computed(() => {
|
|
|
40
40
|
|
|
41
41
|
const indexOfCharacterLengthExceed = computed(() => {
|
|
42
42
|
let idx = -1;
|
|
43
|
-
let cumulativeLen =
|
|
43
|
+
let cumulativeLen = 2;
|
|
44
44
|
for (const [index, po] of printableStringObjs.value.entries()) {
|
|
45
|
-
const newLen = cumulativeLen + po.print.length +
|
|
45
|
+
const newLen = cumulativeLen + po.print.length + 2;
|
|
46
46
|
if (newLen + 4 > props.maxCharacterLength) {
|
|
47
47
|
idx = index;
|
|
48
48
|
break;
|
|
@@ -40,9 +40,9 @@ const printableStringObjs = computed(() => {
|
|
|
40
40
|
|
|
41
41
|
const indexOfCharacterLengthExceed = computed(() => {
|
|
42
42
|
let idx = -1;
|
|
43
|
-
let cumulativeLen =
|
|
43
|
+
let cumulativeLen = 2;
|
|
44
44
|
for (const [index, po] of printableStringObjs.value.entries()) {
|
|
45
|
-
const newLen = cumulativeLen + po.print.length +
|
|
45
|
+
const newLen = cumulativeLen + po.print.length + 2;
|
|
46
46
|
if (newLen + 4 > props.maxCharacterLength) {
|
|
47
47
|
idx = index;
|
|
48
48
|
break;
|