@appscode/design-system 2.4.26 → 2.4.27-alpha-3
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 +4 -0
- package/package.json +1 -1
- package/vue-components/styles/base/utilities/_colors.scss +26 -9
- package/vue-components/styles/base/utilities/_customize-bulma.scss +1 -1
- package/vue-components/styles/base/utilities/_global.scss +15 -2
- package/vue-components/styles/base/utilities/_typography.scss +5 -5
- package/vue-components/styles/components/_ac-calendar.scss +3 -3
- package/vue-components/styles/components/_ac-code-highlight.scss +1 -1
- package/vue-components/styles/components/_ac-drag.scss +1 -1
- package/vue-components/styles/components/_accordion.scss +1 -1
- package/vue-components/styles/components/_breadcrumb.scss +1 -1
- package/vue-components/styles/components/_dropdown.scss +1 -1
- package/vue-components/styles/components/_getkeeper.scss +1 -1
- package/vue-components/styles/components/_graph.scss +1 -1
- package/vue-components/styles/components/_options.scss +2 -2
- package/vue-components/styles/components/_pagination.scss +2 -2
- package/vue-components/styles/components/_preview-modal.scss +1 -1
- package/vue-components/styles/components/_progress-bar.scss +2 -2
- package/vue-components/styles/components/_table-of-content.scss +3 -3
- package/vue-components/styles/components/_table.scss +4 -4
- package/vue-components/styles/components/_tabs.scss +3 -3
- package/vue-components/styles/components/_terminal.scss +3 -3
- package/vue-components/styles/components/_widget-menu.scss +6 -6
- package/vue-components/styles/components/_wizard.scss +8 -8
- package/vue-components/styles/components/ac-toaster/_ac-toasted.scss +2 -2
- package/vue-components/styles/components/alert/_alert.scss +1 -1
- package/vue-components/styles/components/alert/_toast.scss +1 -1
- package/vue-components/styles/components/bbum/_card-team.scss +2 -2
- package/vue-components/styles/components/bbum/_left-sidebar.scss +2 -2
- package/vue-components/styles/components/bbum/_sign-up-notification.scss +2 -2
- package/vue-components/styles/components/bbum/_single-post-preview.scss +1 -1
- package/vue-components/styles/components/bbum/_user-profile.scss +1 -1
- package/vue-components/styles/components/cards/_cluster.scss +1 -1
- package/vue-components/styles/components/cards/_info.scss +1 -1
- package/vue-components/styles/components/cards/_payment-card.scss +1 -1
- package/vue-components/styles/components/cards/_vendor.scss +1 -1
- package/vue-components/styles/components/editor/_filtered-file-editor.scss +1 -1
- package/vue-components/styles/components/form-fields/_check-radio-switch.scss +4 -4
- package/vue-components/styles/components/form-fields/_image-upload.scss +1 -1
- package/vue-components/styles/components/form-fields/_input-card.scss +3 -3
- package/vue-components/styles/components/form-fields/_input.scss +16 -16
- package/vue-components/styles/components/inbox/all.scss +73 -0
- package/vue-components/styles/components/navbar/_menu-content.scss +10 -10
- package/vue-components/styles/components/select-box/_ac-select-box.scss +1 -1
- package/vue-components/styles/components/select-box/_multi-select.scss +23 -22
- package/vue-components/styles/components/sidebar/_left-sidebar.scss +1 -1
- package/vue-components/styles/components/ui-builder/_ui-builder.scss +3 -3
- package/vue-components/styles/components/ui-builder/_vue-open-api.scss +14 -14
- package/vue-components/v3/form-fields/CheckBox.vue +1 -1
- package/vue-components/v3/form-fields/CheckRadio.vue +2 -3
- 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/InfoIcon.vue +9 -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/inbox/Inbox.vue +13 -0
- package/vue-components/v3/inbox/MessageDetails.vue +102 -0
- package/vue-components/v3/inbox/MessageList.vue +95 -0
- package/vue-components/v3/navbar/Appdrawer.vue +7 -8
- package/vue-components/v3/pagination/Pagination.vue +1 -1
- package/vue-components/v3/table/InfoTable.vue +1 -1
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
&.borderless-input {
|
|
171
171
|
input {
|
|
172
172
|
border: none;
|
|
173
|
-
font-size:
|
|
173
|
+
font-size: 14px;
|
|
174
174
|
padding: 4px 7px;
|
|
175
175
|
height: 30px;
|
|
176
176
|
background-color: $white-100;
|
|
@@ -222,8 +222,8 @@
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
label {
|
|
225
|
-
top:
|
|
226
|
-
font-size:
|
|
225
|
+
top: 14px;
|
|
226
|
+
font-size: 14px;
|
|
227
227
|
|
|
228
228
|
&.show-label {
|
|
229
229
|
font-size: 12px;
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
.icon {
|
|
240
240
|
height: 45px;
|
|
241
241
|
width: 30px;
|
|
242
|
-
font-size:
|
|
242
|
+
font-size: 14px;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
}
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
&.is-small {
|
|
249
249
|
input {
|
|
250
250
|
height: 36px;
|
|
251
|
-
font-size:
|
|
251
|
+
font-size: 14px;
|
|
252
252
|
font-weight: 400;
|
|
253
253
|
}
|
|
254
254
|
|
|
@@ -271,7 +271,7 @@
|
|
|
271
271
|
|
|
272
272
|
label {
|
|
273
273
|
top: 8px;
|
|
274
|
-
font-size:
|
|
274
|
+
font-size: 14px;
|
|
275
275
|
|
|
276
276
|
&.switch-label {
|
|
277
277
|
top: 0;
|
|
@@ -296,7 +296,7 @@
|
|
|
296
296
|
.icon {
|
|
297
297
|
height: 36px;
|
|
298
298
|
width: 25px;
|
|
299
|
-
font-size:
|
|
299
|
+
font-size: 14px;
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
}
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
&.is-extra-small {
|
|
306
306
|
input {
|
|
307
307
|
height: 32px;
|
|
308
|
-
font-size:
|
|
308
|
+
font-size: 14px;
|
|
309
309
|
font-weight: 400;
|
|
310
310
|
}
|
|
311
311
|
|
|
@@ -336,7 +336,7 @@
|
|
|
336
336
|
|
|
337
337
|
label {
|
|
338
338
|
top: 8px;
|
|
339
|
-
font-size:
|
|
339
|
+
font-size: 14px;
|
|
340
340
|
|
|
341
341
|
&.switch-label {
|
|
342
342
|
top: 0;
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
.icon {
|
|
354
354
|
height: 32px;
|
|
355
355
|
width: 25px;
|
|
356
|
-
font-size:
|
|
356
|
+
font-size: 14px;
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
359
|
}
|
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
}
|
|
383
383
|
|
|
384
384
|
label {
|
|
385
|
-
font-size:
|
|
385
|
+
font-size: 14px;
|
|
386
386
|
left: 15px;
|
|
387
387
|
top: 11px;
|
|
388
388
|
cursor: text;
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
top: -9px;
|
|
406
406
|
left: 10px;
|
|
407
407
|
padding: 0 5px;
|
|
408
|
-
font-size:
|
|
408
|
+
font-size: 14px;
|
|
409
409
|
color: $gray-40;
|
|
410
410
|
|
|
411
411
|
&:after {
|
|
@@ -474,7 +474,7 @@
|
|
|
474
474
|
a {
|
|
475
475
|
color: $color-heading;
|
|
476
476
|
display: block;
|
|
477
|
-
font-size:
|
|
477
|
+
font-size: 14px;
|
|
478
478
|
padding: 8px 20px;
|
|
479
479
|
transition: 0.3s;
|
|
480
480
|
|
|
@@ -520,7 +520,7 @@
|
|
|
520
520
|
|
|
521
521
|
b.isRequired {
|
|
522
522
|
color: $danger;
|
|
523
|
-
font-size:
|
|
523
|
+
font-size: 14px;
|
|
524
524
|
position: absolute;
|
|
525
525
|
right: 5px;
|
|
526
526
|
z-index: 9;
|
|
@@ -28,14 +28,13 @@ const model = defineModel();
|
|
|
28
28
|
:id="name + option.label"
|
|
29
29
|
type="radio"
|
|
30
30
|
:name="name"
|
|
31
|
-
l
|
|
32
31
|
:value="option.value"
|
|
33
32
|
/>
|
|
34
33
|
<label :for="name + option.label">{{ option.label }}</label>
|
|
35
|
-
<p v-show="errorMsg" class="
|
|
34
|
+
<p v-show="errorMsg" class="has-text-danger">
|
|
36
35
|
<slot name="message" />
|
|
37
36
|
</p>
|
|
38
|
-
<p v-show="errorMsg" class="
|
|
37
|
+
<p v-show="errorMsg" class="has-text-danger mb-16">
|
|
39
38
|
{{ errorMsg }}
|
|
40
39
|
</p>
|
|
41
40
|
</div>
|
|
@@ -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-40" />
|
|
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,9 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="width-32">
|
|
3
|
+
<path
|
|
4
|
+
fill-rule="evenodd"
|
|
5
|
+
d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.34l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z"
|
|
6
|
+
clip-rule="evenodd"
|
|
7
|
+
/>
|
|
8
|
+
</svg>
|
|
9
|
+
</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>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
|
+
import MessageDetails from "./MessageDetails.vue";
|
|
4
|
+
|
|
5
|
+
const MessageList = defineAsyncComponent(() => import("@/components/vue-components/v3/inbox/MessageList.vue"));
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<div class="is-flex">
|
|
10
|
+
<MessageList />
|
|
11
|
+
<MessageDetails />
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
|
+
const AlertMessage = defineAsyncComponent(() => import("@/components/vue-components/v3/alert/AlertMessage.vue"));
|
|
4
|
+
const AcSingleInput = defineAsyncComponent(
|
|
5
|
+
() => import("@/components/vue-components/v3/form-fields/AcSingleInput.vue"),
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
const EllipsisVertical = defineAsyncComponent(() => import("../icons/EllipsisVertical.vue"));
|
|
9
|
+
const StarIcon = defineAsyncComponent(() => import("../icons/StarIcon.vue"));
|
|
10
|
+
const TrashIcon = defineAsyncComponent(() => import("../icons/TrashIcon.vue"));
|
|
11
|
+
const InfoIcon = defineAsyncComponent(() => import("../icons/InfoIcon.vue"));
|
|
12
|
+
</script>
|
|
13
|
+
<template>
|
|
14
|
+
<div class="message-details">
|
|
15
|
+
<div class="is-flex is-justify-content-space-between">
|
|
16
|
+
<div class="is-flex gap-16">
|
|
17
|
+
<figure class="avatar image is-48x48">
|
|
18
|
+
<!-- <span class="dots"></span> -->
|
|
19
|
+
<div class="is-initial is-rounded is-size-2 has-text-weight-bold">S</div>
|
|
20
|
+
</figure>
|
|
21
|
+
<div class="is-flex is-flex-direction-column">
|
|
22
|
+
<h5>Support @AppsCode.com</h5>
|
|
23
|
+
<p>@appscode</p>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div class="is-flex">
|
|
28
|
+
<button class="button ac-button is-white is-small" title="Star">
|
|
29
|
+
<span class="icon">
|
|
30
|
+
<StarIcon :fill="true" />
|
|
31
|
+
</span>
|
|
32
|
+
</button>
|
|
33
|
+
|
|
34
|
+
<button class="button ac-button is-white is-small" title="Trash">
|
|
35
|
+
<span class="icon">
|
|
36
|
+
<TrashIcon />
|
|
37
|
+
</span>
|
|
38
|
+
</button>
|
|
39
|
+
|
|
40
|
+
<button class="button ac-button is-white is-small" title="More Options">
|
|
41
|
+
<span class="icon">
|
|
42
|
+
<EllipsisVertical />
|
|
43
|
+
</span>
|
|
44
|
+
</button>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div class="message-content mt-24">
|
|
49
|
+
<h2 class="mb-4">Update scanner addons</h2>
|
|
50
|
+
<p>
|
|
51
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the Lorem Ipsum
|
|
52
|
+
is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the...Lorem Ipsum is simply
|
|
53
|
+
dummy text of the printing and typesetting industry. Lorem Ipsum has been the...
|
|
54
|
+
</p>
|
|
55
|
+
|
|
56
|
+
<alert-message class="is-info mt-24 mb-24">
|
|
57
|
+
<template #icon>
|
|
58
|
+
<InfoIcon />
|
|
59
|
+
</template>
|
|
60
|
+
<template #custom-text>
|
|
61
|
+
Flux CD is not installed. We are going to install it. By default, we are going to enable Helm Controller and
|
|
62
|
+
Source controller feature of Flux CD. You will be able to configure Flux CD options from Settings > Flux CD of
|
|
63
|
+
your cluster dashboard.
|
|
64
|
+
</template>
|
|
65
|
+
</alert-message>
|
|
66
|
+
|
|
67
|
+
<!-- recommended actions -->
|
|
68
|
+
<div class="recommended-actions mb-16">
|
|
69
|
+
<div class="recommended-heading">
|
|
70
|
+
<h4>Recommend Actions</h4>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<div class="recommended-body">
|
|
74
|
+
<div class="single-action" :class="{ 'mb-16': i === 1 }" v-for="i in 2" :key="i">
|
|
75
|
+
<h5 class="mb-4">Remedy Actions {{ i }}</h5>
|
|
76
|
+
<p>
|
|
77
|
+
Simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the Lorem Ipsum is simply
|
|
78
|
+
dummy text of the printing and typesetting industry.
|
|
79
|
+
</p>
|
|
80
|
+
|
|
81
|
+
<div class="grid grid-cols-2 mt-16">
|
|
82
|
+
<ac-single-input modifier-classes="is-primary mr-16" v-for="i in 4" :key="i">
|
|
83
|
+
<label for="email" class="ac-label is-required show-label"
|
|
84
|
+
>Email {{ i }}
|
|
85
|
+
<!-- <span class="has-text-danger">*</span> -->
|
|
86
|
+
</label>
|
|
87
|
+
|
|
88
|
+
<input id="email" name="email" type="email" class="ac-input bg-white" value="user@appscode.com" />
|
|
89
|
+
</ac-single-input>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<div class="buttons">
|
|
93
|
+
<button class="button ac-button is-primary">Execute</button>
|
|
94
|
+
<button class="button ac-button">Ignore</button>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<!-- recommended actions -->
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</template>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
|
+
const Searchbar = defineAsyncComponent(() => import("@/components/vue-components/v3/form-fields/Searchbar.vue"));
|
|
4
|
+
|
|
5
|
+
const ArrowDownIcon = defineAsyncComponent(() => import("../icons/ArrowDownIcon.vue"));
|
|
6
|
+
const RefreshIcon = defineAsyncComponent(() => import("../icons/RefreshIcon.vue"));
|
|
7
|
+
const StarIcon = defineAsyncComponent(() => import("../icons/StarIcon.vue"));
|
|
8
|
+
const EllipsisVertical = defineAsyncComponent(() => import("../icons/EllipsisVertical.vue"));
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<div class="inbox-sidebar">
|
|
13
|
+
<div class="head">
|
|
14
|
+
<!-- search -->
|
|
15
|
+
<Searchbar placeholder="Search..." />
|
|
16
|
+
<!-- search -->
|
|
17
|
+
|
|
18
|
+
<!-- filter -->
|
|
19
|
+
<div class="is-flex is-justify-content-space-between">
|
|
20
|
+
<div class="is-flex gap-8">
|
|
21
|
+
<label class="ac-checkbox" for="checkbox16">
|
|
22
|
+
<input class="is-danger" id="checkbox16" type="checkbox" /><span class="checkmark"></span>
|
|
23
|
+
</label>
|
|
24
|
+
<button class="button ac-button is-white is-small" title="Filter">
|
|
25
|
+
<span class="icon">
|
|
26
|
+
<ArrowDownIcon />
|
|
27
|
+
</span>
|
|
28
|
+
</button>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div class="is-flex gap-4">
|
|
32
|
+
<button class="button ac-button is-white is-small" title="Refresh">
|
|
33
|
+
<span class="icon">
|
|
34
|
+
<RefreshIcon />
|
|
35
|
+
</span>
|
|
36
|
+
</button>
|
|
37
|
+
<!-- is-active -->
|
|
38
|
+
<div class="dropdown-action dropdown">
|
|
39
|
+
<button class="button ac-button is-white is-small" title="More">
|
|
40
|
+
<span class="icon">
|
|
41
|
+
<EllipsisVertical />
|
|
42
|
+
</span>
|
|
43
|
+
</button>
|
|
44
|
+
<!-- dropdown -->
|
|
45
|
+
<div class="dropdown-menu" id="dropdown-menu3" role="menu" style="left: auto; right: 0">
|
|
46
|
+
<div class="dropdown-content ac-scrollbar p-0">
|
|
47
|
+
<div class="dropdown-group">
|
|
48
|
+
<label>Options</label>
|
|
49
|
+
<a href="#" class="dropdown-item">
|
|
50
|
+
<span class="icon">
|
|
51
|
+
<RefreshIcon />
|
|
52
|
+
</span>
|
|
53
|
+
<span>Read</span>
|
|
54
|
+
</a>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
<!-- dropdown -->
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<!-- filter -->
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="message-list ac-vscrollbar pt-0 pb-0">
|
|
66
|
+
<!-- messages '.is-unread' -->
|
|
67
|
+
<div
|
|
68
|
+
class="is-flex gap-16 is-clickable single-message"
|
|
69
|
+
v-for="i in 10"
|
|
70
|
+
:key="i"
|
|
71
|
+
:class="{ 'is-unread': i % 2 !== 0 }"
|
|
72
|
+
>
|
|
73
|
+
<label class="ac-checkbox is-align-items-flex-start" :for="'check' + i">
|
|
74
|
+
<input class="is-danger" :id="'check' + i" type="checkbox" /><span class="checkmark"></span>
|
|
75
|
+
</label>
|
|
76
|
+
<div class="is-flex gap-4 is-flex-direction-column">
|
|
77
|
+
<div class="is-flex is-flex-direction-column">
|
|
78
|
+
<span>Category</span>
|
|
79
|
+
<h6 class="has-text-weight-medium is-size-5">Update scanner addons</h6>
|
|
80
|
+
</div>
|
|
81
|
+
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been</p>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="is-flex is-flex-direction-column is-justify-content-space-between">
|
|
84
|
+
<p class="is-size-7">2mins</p>
|
|
85
|
+
<button class="button ac-button is-transparent is-small">
|
|
86
|
+
<span class="icon">
|
|
87
|
+
<StarIcon />
|
|
88
|
+
</span>
|
|
89
|
+
</button>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<!-- messages -->
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</template>
|
|
@@ -3,10 +3,10 @@ import { setCookie } from "tiny-cookie";
|
|
|
3
3
|
import { computed, defineAsyncComponent, ref } from "vue";
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
|
-
currentApp
|
|
7
|
-
baseUrl
|
|
8
|
-
activeOrganization
|
|
9
|
-
rootDomain
|
|
6
|
+
currentApp?: "console" | "db" | "platform" | "billing" | "selfhost" | "learn" | "grafana";
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
activeOrganization?: string;
|
|
9
|
+
rootDomain?: string;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const props = withDefaults(defineProps<Props>(), {
|
|
@@ -102,9 +102,8 @@ const filteredAppList = appListWithUrl.filter((element) => {
|
|
|
102
102
|
return true;
|
|
103
103
|
});
|
|
104
104
|
|
|
105
|
-
const handleClick = (
|
|
106
|
-
setCookie("gorg", props.activeOrganization, { domain: props.rootDomain });
|
|
107
|
-
window.open(url, "_blank");
|
|
105
|
+
const handleClick = (name: string) => {
|
|
106
|
+
if (name === "grafana") setCookie("gorg", props.activeOrganization, { domain: props.rootDomain });
|
|
108
107
|
};
|
|
109
108
|
</script>
|
|
110
109
|
|
|
@@ -148,7 +147,7 @@ const handleClick = (url: string) => {
|
|
|
148
147
|
<navbar-item-content class="navbar-dropdown-wrapper" style="right: -30px">
|
|
149
148
|
<ul class="ac-scrollbar p-0 app-drawer">
|
|
150
149
|
<li v-for="app in filteredAppList" :key="app.url">
|
|
151
|
-
<a @click
|
|
150
|
+
<a :href="app.url" target="_blank" @click="handleClick(app.name)">
|
|
152
151
|
<article class="media">
|
|
153
152
|
<figure class="media-left">
|
|
154
153
|
<p class="image">
|