@appscode/design-system 2.4.16 → 2.4.17-alpha.1

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 CHANGED
@@ -17,6 +17,7 @@
17
17
  // @import "@/components/vue-components/styles/components/all";
18
18
  @import "@/components/vue-components/styles/components/button";
19
19
  @import "@/components/vue-components/styles/components/terminal";
20
+ @import "@/components/vue-components/styles/components/steps";
20
21
  @import "@/components/vue-components/styles/components/code-preview/all";
21
22
  @import "@/components/vue-components/styles/components/form-fields/input";
22
23
  @import "@/components/vue-components/styles/components/form-fields/custom-selectbox";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appscode/design-system",
3
- "version": "2.4.16",
3
+ "version": "2.4.17-alpha.1",
4
4
  "description": "A design system for Appscode websites and dashboards made using Bulma",
5
5
  "main": "main.scss",
6
6
  "scripts": {
@@ -31,6 +31,7 @@
31
31
  @import "terminal";
32
32
  @import "tfa";
33
33
  @import "transitions";
34
+ @import "steps";
34
35
 
35
36
  // @import "pricing-table";
36
37
  // @import "overview-info";
@@ -88,6 +88,9 @@
88
88
  visibility: hidden;
89
89
  transition: 0.3s ease-in-out;
90
90
  text-align: left;
91
+ box-shadow:
92
+ 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1),
93
+ 0 0px 0 1px rgba(10, 10, 10, 0.02);
91
94
 
92
95
  li {
93
96
  .list-button {
@@ -0,0 +1,108 @@
1
+ .steps-wrapper {
2
+ --size: 32px;
3
+ --line: 4px;
4
+ ol {
5
+ display: flex;
6
+ // gap: 48px;
7
+ &.is-column {
8
+ flex-direction: column;
9
+ align-items: self-start;
10
+ li {
11
+ --line: 2px;
12
+ flex-direction: row;
13
+ gap: 8px;
14
+ text-align: left;
15
+ align-items: baseline;
16
+ padding-bottom: 24px;
17
+ .step-header {
18
+ margin: 0;
19
+ }
20
+
21
+ &:not(&:last-child) {
22
+ &::before {
23
+ position: absolute;
24
+ content: "";
25
+ height: var(--line);
26
+ top: 0;
27
+ left: calc(var(--size) / 2 - var(--line) / 2);
28
+ order: -1;
29
+ background-color: #e2e8f0;
30
+ height: 100%;
31
+ width: 2px;
32
+ z-index: -1;
33
+ }
34
+ }
35
+ &:last-child {
36
+ &::before {
37
+ display: none;
38
+ }
39
+ }
40
+ &.is-complete {
41
+ &::before {
42
+ background-color: $ac-primary !important;
43
+ }
44
+ }
45
+ }
46
+ }
47
+ li {
48
+ display: flex;
49
+ flex: 1 1 0%;
50
+ align-items: center;
51
+ flex-direction: column;
52
+ position: relative;
53
+ text-align: center;
54
+ cursor: pointer;
55
+ z-index: 1;
56
+ opacity: 0.7;
57
+ &.is-active {
58
+ opacity: 1;
59
+ .step-header {
60
+ background-color: $ac-primary;
61
+ color: #fff;
62
+ }
63
+ }
64
+ &.is-complete {
65
+ opacity: 1;
66
+ &:not(&:first-child) {
67
+ &::before {
68
+ background-color: $ac-primary;
69
+ }
70
+ }
71
+ p {
72
+ opacity: 1;
73
+ }
74
+ }
75
+ &:not(&:first-child) {
76
+ &::before {
77
+ position: absolute;
78
+ content: "";
79
+ height: var(--line);
80
+ left: calc(-50% + 16px);
81
+ top: calc(var(--size) / 2 - var(--line) / 2);
82
+ order: -1;
83
+ background-color: #e2e8f0;
84
+ width: calc(100% - var(--size));
85
+ z-index: -1;
86
+ }
87
+ }
88
+
89
+ .step-header {
90
+ background-color: #e2e8f0;
91
+ align-items: center;
92
+ display: flex;
93
+ flex-shrink: 0;
94
+ height: var(--size);
95
+ justify-content: center;
96
+ // margin: auto auto 8px;
97
+ margin-bottom: 8px;
98
+ position: relative;
99
+ width: var(--size);
100
+ border-radius: 50%;
101
+ }
102
+ p {
103
+ margin: 0;
104
+ padding: 0;
105
+ }
106
+ }
107
+ }
108
+ }
@@ -45,6 +45,7 @@
45
45
  color: $color-heading;
46
46
  border: none;
47
47
  font-weight: 500;
48
+ background-color: $secondary-light-gray;
48
49
  // background-color: $primary-97;
49
50
  // text-transform: uppercase;
50
51
  font-weight: 500;
@@ -353,19 +354,29 @@
353
354
  }
354
355
  }
355
356
 
356
- &.is-middle-aligned {
357
- thead {
357
+ &.is-middle {
358
+ tbody {
358
359
  tr {
359
- th {
360
+ td {
360
361
  vertical-align: middle;
361
362
  }
362
363
  }
363
364
  }
364
-
365
+ }
366
+ &.is-baseline {
365
367
  tbody {
366
368
  tr {
367
369
  td {
368
- vertical-align: middle;
370
+ vertical-align: baseline;
371
+ }
372
+ }
373
+ }
374
+ }
375
+ &.is-bottom {
376
+ tbody {
377
+ tr {
378
+ td {
379
+ vertical-align: bottom;
369
380
  }
370
381
  }
371
382
  }
@@ -3,6 +3,7 @@
3
3
  border-right: 1px solid $color-border;
4
4
  padding: 8px;
5
5
  height: calc(100vh - 50px);
6
+ overflow-y: auto;
6
7
  ul {
7
8
  li {
8
9
  a {
@@ -27,7 +27,7 @@ function hideAlert() {
27
27
  <span class="status-icon">
28
28
  <slot name="icon"></slot>
29
29
  </span>
30
- <p>{{ message }}</p>
30
+ <p v-if="message">{{ message }}</p>
31
31
  <slot name="custom-text"></slot>
32
32
  </div>
33
33
  <slot name="buttons"></slot>
@@ -0,0 +1,10 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 16 16">
3
+ <path
4
+ fill="currentColor"
5
+ fill-rule="evenodd"
6
+ d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353l4.493-6.74a.75.75 0 0 1 1.04-.207"
7
+ clip-rule="evenodd"
8
+ />
9
+ </svg>
10
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
3
+ <path
4
+ fill="currentColor"
5
+ d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8s-3.58 8-8 8m-.22-13h-.06c-.4 0-.72.32-.72.72v4.72c0 .35.18.68.49.86l4.15 2.49c.34.2.78.1.98-.24a.71.71 0 0 0-.25-.99l-3.87-2.3V7.72c0-.4-.32-.72-.72-.72"
6
+ />
7
+ </svg>
8
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256">
3
+ <path
4
+ fill="currentColor"
5
+ d="M152 96h-48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8m-8 48h-32v-32h32Zm88 0h-16v-32h16a8 8 0 0 0 0-16h-16V56a16 16 0 0 0-16-16h-40V24a8 8 0 0 0-16 0v16h-32V24a8 8 0 0 0-16 0v16H56a16 16 0 0 0-16 16v40H24a8 8 0 0 0 0 16h16v32H24a8 8 0 0 0 0 16h16v40a16 16 0 0 0 16 16h40v16a8 8 0 0 0 16 0v-16h32v16a8 8 0 0 0 16 0v-16h40a16 16 0 0 0 16-16v-40h16a8 8 0 0 0 0-16m-32 56H56V56h144z"
6
+ />
7
+ </svg>
8
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 14 14">
3
+ <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
4
+ <path d="M7 4.5V3M5.5 8.5c0 .75.67 1 1.5 1s1.5 0 1.5-1c0-1.5-3-1.5-3-3c0-1 .67-1 1.5-1s1.5.38 1.5 1M7 9.5V11" />
5
+ <circle cx="7" cy="7" r="6.5" />
6
+ </g>
7
+ </svg>
8
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256">
3
+ <path
4
+ fill="currentColor"
5
+ d="M232 56H24A16 16 0 0 0 8 72v128a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0v-16h16v16a8 8 0 0 0 16 0V72a16 16 0 0 0-16-16M24 72h208v96H24Zm88 80a8 8 0 0 0 8-8V96a8 8 0 0 0-8-8H48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8Zm-56-48h48v32H56Zm88 48h64a8 8 0 0 0 8-8V96a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8m8-48h48v32h-48Z"
6
+ />
7
+ </svg>
8
+ </template>
@@ -0,0 +1,39 @@
1
+ <script setup lang="ts">
2
+ import { defineAsyncComponent } from "vue";
3
+ const CheckIcon = defineAsyncComponent(() => import("../icons/CheckIcon.vue"));
4
+ interface Props {
5
+ direction?: string;
6
+ active?: boolean;
7
+ complete?: boolean;
8
+ title?: string;
9
+ description?: string;
10
+ count?: string;
11
+ }
12
+
13
+ withDefaults(defineProps<Props>(), {
14
+ direction: "is-row",
15
+ active: false,
16
+ complete: false,
17
+ title: "Title",
18
+ description: "Description",
19
+ count: "1",
20
+ });
21
+ </script>
22
+
23
+ <template>
24
+ <div class="steps-wrapper">
25
+ <ol class="steps" :class="direction">
26
+ <!-- 'is-active': if active, 'is-complete': if complete -->
27
+ <li class="step" :class="{ 'is-active': active, 'is-complete': complete }" v-for="i in 4" :key="i">
28
+ <div class="step-header">
29
+ <span class="icon" v-if="complete"><CheckIcon /></span>
30
+ <span v-else>{{ count }}</span>
31
+ </div>
32
+ <div class="is-flex is-flex-direction-column">
33
+ <h5>{{ title }}</h5>
34
+ <p>{{ description }}</p>
35
+ </div>
36
+ </li>
37
+ </ol>
38
+ </div>
39
+ </template>
@@ -15,6 +15,8 @@ interface Props {
15
15
  modifierClass?: string;
16
16
  isCustom?: boolean;
17
17
  tableClass?: string;
18
+ tableStyle?: string;
19
+ dataAlign?: string;
18
20
  }
19
21
 
20
22
  const props = withDefaults(defineProps<Props>(), {
@@ -30,6 +32,8 @@ const props = withDefaults(defineProps<Props>(), {
30
32
  modifierClass: "",
31
33
  isCustom: false,
32
34
  tableClass: "",
35
+ tableStyle: "is-bordered",
36
+ dataAlign: "is-middle",
33
37
  });
34
38
 
35
39
  const emit = defineEmits(["sort", "scroller"]);
@@ -136,10 +140,12 @@ onUpdated(() => {
136
140
  <table-container ref="ac_table_container" @scroller="handleScroller">
137
141
  <table
138
142
  ref="ac_table"
139
- class="table ac-table is-bordered"
143
+ class="table ac-table"
140
144
  :class="[
141
145
  !isDynamicWidthTable || isFullTableLoaderActive || isTableEmpty || isLoaderActive ? 'is-fullwidth' : '',
142
146
  tableClass,
147
+ tableStyle,
148
+ dataAlign,
143
149
  // 'ac-striped': !columnStriped,
144
150
  // 'is-bordered': columnStriped,
145
151
  ]"
@@ -1,85 +0,0 @@
1
- <script setup lang="ts">
2
- interface Props {
3
- modifierClasses?: string;
4
- }
5
-
6
- withDefaults(defineProps<Props>(), {
7
- modifierClasses: "",
8
- });
9
- </script>
10
-
11
- <template>
12
- <div class="colored-steps" :class="modifierClasses">
13
- <ol class="steps">
14
- <li class="step">
15
- <div class="step-header bg-primary"></div>
16
- <p>Step 1</p>
17
- </li>
18
- <li class="step">
19
- <div class="step-header bg-info"></div>
20
- <p>Step 2</p>
21
- </li>
22
- <li class="step">
23
- <div class="step-header bg-info"></div>
24
- <p>Step 2</p>
25
- </li>
26
- <li class="step">
27
- <div class="step-header bg-error"></div>
28
- <p>Step 2</p>
29
- </li>
30
- <li class="step">
31
- <div class="step-header bg-warning"></div>
32
- <p>Step 2</p>
33
- </li>
34
- </ol>
35
- </div>
36
- </template>
37
-
38
- <style lang="scss">
39
- .colored-steps {
40
- --size: 8px;
41
- --line: 1px;
42
- ol {
43
- display: flex;
44
- // gap: 48px;
45
-
46
- li {
47
- display: flex;
48
- align-items: center;
49
- flex-direction: column;
50
- position: relative;
51
- width: 100px;
52
- &:not(&:last-child) {
53
- &::before {
54
- position: absolute;
55
- content: "";
56
- height: var(--line);
57
- left: 50%;
58
- top: calc(var(--size) / 2 - var(--line) / 2);
59
- order: -1;
60
- background-color: #333;
61
- width: calc(100% - var(--size));
62
- }
63
- }
64
-
65
- .step-header {
66
- background-color: $ac-primary;
67
- align-items: center;
68
- display: flex;
69
- flex-shrink: 0;
70
- height: var(--size);
71
- justify-content: center;
72
- margin: auto auto var(--size);
73
- position: relative;
74
- width: var(--size);
75
- border-radius: 50%;
76
- }
77
- p {
78
- font-size: 12px;
79
- margin: 0;
80
- padding: 0;
81
- }
82
- }
83
- }
84
- }
85
- </style>