@appscode/design-system 1.1.0-beta.84 → 1.1.0-beta.86

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.
@@ -1,7 +1,7 @@
1
1
  .ac-single-input {
2
2
  position: relative;
3
3
  z-index: 1;
4
- margin-bottom: 15px;
4
+ margin-bottom: 16px;
5
5
 
6
6
  &.is-disable {
7
7
  opacity: 0.5;
@@ -32,19 +32,19 @@
32
32
  }
33
33
 
34
34
  &.is-success {
35
- background-color: #27b064 !important;
35
+ background-color: $success !important;
36
36
  }
37
37
 
38
38
  &.is-danger {
39
- background-color: #ea3d2f !important;
39
+ background-color: $danger !important;
40
40
  }
41
41
 
42
42
  &.is-warning {
43
- background-color: #f7ad2a !important;
43
+ background-color: $warning !important;
44
44
  }
45
45
 
46
46
  &.is-info {
47
- background-color: #0aafff !important;
47
+ background-color: $info !important;
48
48
  }
49
49
  }
50
50
 
@@ -3,13 +3,13 @@
3
3
  .ac-object-field-wrapper {
4
4
  display: grid;
5
5
  grid-template-columns: auto auto 45px;
6
- grid-gap: 15px;
6
+ grid-gap: 16px;
7
7
  }
8
8
 
9
9
  .ac-array-field-wrapper {
10
10
  display: grid;
11
11
  grid-template-columns: auto 99px;
12
- grid-gap: 15px;
12
+ grid-gap: 16px;
13
13
  }
14
14
 
15
15
  .ui-builders-wrapper {
@@ -29,7 +29,7 @@
29
29
  .key-value-save {
30
30
  display: grid;
31
31
  grid-template-columns: 1fr 1fr auto;
32
- grid-gap: 15px;
32
+ grid-gap: 16px;
33
33
 
34
34
  &.has-close {
35
35
  grid-template-columns: 1fr 1fr auto auto;
@@ -39,19 +39,19 @@
39
39
  .key-value-save-check {
40
40
  display: grid;
41
41
  grid-template-columns: 1fr 1fr auto auto;
42
- grid-gap: 15px;
42
+ grid-gap: 16px;
43
43
  }
44
44
 
45
45
  .key-save {
46
46
  display: grid;
47
47
  grid-template-columns: 1fr auto;
48
- grid-gap: 15px;
48
+ grid-gap: 16px;
49
49
  }
50
50
 
51
51
  .value-list-save {
52
52
  display: grid;
53
53
  grid-template-columns: 1fr auto;
54
- grid-gap: 15px;
54
+ grid-gap: 16px;
55
55
  }
56
56
 
57
57
  // nested elements start
@@ -213,7 +213,7 @@
213
213
  // details with checkradio
214
214
  .details-with-checkradio-wrapper {
215
215
  display: grid;
216
- gap: 15px;
216
+ gap: 16px;
217
217
  grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
218
218
  }
219
219
  .table {
@@ -252,7 +252,7 @@
252
252
  transition: 0.3s ease-in-out;
253
253
 
254
254
  img {
255
- width: 15px;
255
+ width: 16px;
256
256
  }
257
257
 
258
258
  &.label-icon {
@@ -313,9 +313,9 @@
313
313
  .resource-input {
314
314
  display: grid;
315
315
  grid-template-columns: 60px 1fr 1fr;
316
- grid-gap: 15px;
316
+ grid-gap: 16px;
317
317
  align-items: center;
318
- margin-bottom: 15px;
318
+ margin-bottom: 16px;
319
319
 
320
320
  .label-text {
321
321
  font-weight: 300;
@@ -31,7 +31,7 @@
31
31
 
32
32
  .is-warning {
33
33
  font-size: 12px;
34
- color: #ea3d2f;
34
+ color: $warning;
35
35
  padding-left: 10px;
36
36
  }
37
37
 
@@ -58,7 +58,7 @@
58
58
  margin-left: 25px;
59
59
 
60
60
  &:last-child {
61
- margin-bottom: 15px;
61
+ margin-bottom: 16px;
62
62
  }
63
63
  }
64
64
  }
@@ -109,7 +109,7 @@
109
109
  .ac-single-input {
110
110
  position: relative;
111
111
  z-index: 1;
112
- margin-bottom: 15px;
112
+ margin-bottom: 16px;
113
113
 
114
114
  &.is-disable {
115
115
  opacity: 0.5;
@@ -510,7 +510,7 @@
510
510
  textarea {
511
511
  border: 1px solid $primary-80;
512
512
  background-color: transparent;
513
- padding: 10px 15px;
513
+ padding: 10px 16px;
514
514
  min-height: 50px;
515
515
 
516
516
  &.bg-white {
@@ -534,7 +534,7 @@
534
534
  width: 100%;
535
535
  border-radius: 4px;
536
536
  border: 1px solid $primary-80;
537
- padding: 8px 15px;
537
+ padding: 8px 16px;
538
538
  font-size: 13px;
539
539
 
540
540
  &:hover {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appscode/design-system",
3
- "version": "1.1.0-beta.84",
3
+ "version": "1.1.0-beta.86",
4
4
  "description": "A design system for Appscode websites and dashboards made using Bulma",
5
5
  "main": "main.scss",
6
6
  "scripts": {
@@ -97,10 +97,18 @@ const showUnpluginIcon = computed(() => {
97
97
  border-color: transparent transparent #1c1c1c #1c1c1c !important;
98
98
  }
99
99
  }
100
+ &.is-outlined {
101
+ &:hover {
102
+ border-color: inherit;
103
+ }
104
+ }
100
105
  }
101
106
 
102
107
  &.is-small {
103
108
  padding: 4px 12px;
109
+ &:not(.is-rounded) {
110
+ border-radius: 4px;
111
+ }
104
112
  }
105
113
  &.is-medium {
106
114
  font-size: 1rem;
@@ -1,6 +1,22 @@
1
- <script setup lang="ts"></script>
1
+ <script setup lang="ts">
2
+ withDefaults(
3
+ defineProps<{
4
+ isMaxWidth?: boolean;
5
+ }>(),
6
+ { isMaxWidth: false }
7
+ );
8
+ </script>
2
9
  <template>
3
- <div class="buttons">
10
+ <div v-if="isMaxWidth" :style="{ width: 'max-content' }" class="buttons">
4
11
  <slot />
5
12
  </div>
13
+ <div v-else class="buttons"><slot /></div>
6
14
  </template>
15
+
16
+ <!-- <style lang="scss">
17
+ .buttons {
18
+ .button {
19
+ margin-bottom: 16px;
20
+ }
21
+ }
22
+ </style> -->
@@ -57,13 +57,14 @@ withDefaults(defineProps<Props>(), {
57
57
  width: 70px;
58
58
  height: 70px;
59
59
  border: 1px solid $primary-90;
60
- background-color: #fff;
60
+ background-color: $white-100;
61
61
  border-radius: 50%;
62
62
  padding: 16px;
63
63
  margin-inline: auto;
64
64
  margin-bottom: 20px;
65
65
  display: flex;
66
66
  align-items: center;
67
+ overflow: hidden;
67
68
 
68
69
  img {
69
70
  width: 100%;
@@ -52,7 +52,7 @@ onClickOutside(actionDropdown, () => emit("update:modelValue", false));
52
52
  </ac-button>
53
53
  </div>
54
54
  <div class="dropdown-menu" id="dropdown-menu3" role="menu">
55
- <div class="dropdown-content">
55
+ <div class="dropdown-content ac-scrollbar p-0">
56
56
  <slot name="list" />
57
57
  </div>
58
58
  </div>
@@ -61,11 +61,14 @@ onClickOutside(actionDropdown, () => emit("update:modelValue", false));
61
61
  </template>
62
62
  <style lang="scss">
63
63
  .dropdown-group {
64
- margin-bottom: 16px;
64
+ margin-bottom: 8px;
65
65
  }
66
66
  .dropdown-action {
67
67
  .dropdown-content {
68
68
  min-width: 220px;
69
+ max-width: 500px;
70
+ max-height: calc(100vh - 200px);
71
+ overflow-y: auto;
69
72
  border: 1px solid $primary-90;
70
73
 
71
74
  label {
@@ -7,8 +7,7 @@ interface Props {
7
7
  readOnly?: boolean;
8
8
  language?: string;
9
9
  showMinimap?: boolean;
10
- editorHeight?: string;
11
- editorWidth?: string;
10
+ editorHeight?: number;
12
11
  editorTheme?: string;
13
12
  wordWrap?: string;
14
13
  }
@@ -19,8 +18,7 @@ const props = withDefaults(defineProps<Props>(), {
19
18
  readOnly: false,
20
19
  language: "",
21
20
  showMinimap: false,
22
- editorHeight: "100%",
23
- editorWidth: "100%",
21
+ editorHeight: 40,
24
22
  editorTheme: "",
25
23
  wordWrap: "on",
26
24
  });
@@ -33,11 +31,6 @@ const Preloader = defineAsyncComponent(
33
31
  () => import("../preloader/Preloader.vue")
34
32
  );
35
33
 
36
- const calcShowMinimap = computed(() => {
37
- const noOfLines = editorContent.value.split("\n").length;
38
- return props.showMinimap && noOfLines > 25;
39
- });
40
-
41
34
  const Banner = defineAsyncComponent(() => import("../banner/Banner.vue"));
42
35
 
43
36
  const MonacoEditor = defineAsyncComponent({
@@ -53,6 +46,11 @@ const activeTab = ref("edit");
53
46
  const editorContent = ref("");
54
47
  const originalEditorContent = ref("");
55
48
 
49
+ const calcShowMinimap = computed(() => {
50
+ const noOfLines = editorContent.value.split("\n").length;
51
+ return props.showMinimap && noOfLines * 2 > props.editorHeight;
52
+ });
53
+
56
54
  const theme = computed(() => {
57
55
  return (
58
56
  props.editorTheme ||
@@ -111,11 +109,10 @@ watch(
111
109
  v-if="activeTab === 'edit'"
112
110
  @editorDidMount="onEditorMount"
113
111
  key="edit"
114
- class="is-clipped"
112
+ :class="`vh-${editorHeight} is-clipped`"
115
113
  :value="editorContent"
114
+ @change="onChange"
116
115
  :language="language"
117
- :height="editorHeight"
118
- :width="editorWidth"
119
116
  :options="{
120
117
  minimap: {
121
118
  enabled: calcShowMinimap,
@@ -126,7 +123,6 @@ watch(
126
123
  scrollBeyondLastLine: false,
127
124
  }"
128
125
  data-testid="monaco-editor-edit-section"
129
- @change="onChange"
130
126
  />
131
127
  <monaco-editor
132
128
  v-if="activeTab === 'preview'"
@@ -9,8 +9,7 @@ interface Props {
9
9
  isEditorReadOnly?: boolean;
10
10
  previewYamls?: Array<PreviewYamlType>;
11
11
  showMinimap?: boolean;
12
- editorHeight?: string;
13
- editorWidth?: string;
12
+ editorHeight?: number;
14
13
  wordWrap?: string;
15
14
  }
16
15
 
@@ -21,8 +20,7 @@ const props = withDefaults(defineProps<Props>(), {
21
20
  isEditorReadOnly: false,
22
21
  previewYamls: () => [],
23
22
  showMinimap: false,
24
- editorHeight: "100%",
25
- editorWidth: "100%",
23
+ editorHeight: 60,
26
24
  wordWrap: "on",
27
25
  });
28
26
 
@@ -130,7 +128,7 @@ watch(
130
128
  <div class="ac-preview-inner">
131
129
  <!-- preview body start -->
132
130
  <div
133
- class="ac-preview-body"
131
+ class="ac-preview-body mt-0 pt-20"
134
132
  :class="{
135
133
  'is-justify-content-center': isYamlsEmpty && !isPreviewLoading,
136
134
  }"
@@ -177,7 +175,6 @@ watch(
177
175
  :language="activeFile.type"
178
176
  :read-only="isEditorReadOnly"
179
177
  :editor-height="editorHeight"
180
- :editor-width="editorWidth"
181
178
  :show-minimap="showMinimap"
182
179
  :word-wrap="wordWrap"
183
180
  />
@@ -239,6 +236,20 @@ watch(
239
236
  // border-radius: 10px 0px 0px 10px;
240
237
  // height: calc(100% - 90px);
241
238
 
239
+ &:after {
240
+ // position: absolute;
241
+ // content: "";
242
+ // left: -90px;
243
+ // top: -50px;
244
+ // width: calc(100% + 90px);
245
+ // height: 100%;
246
+ // background-color: $white-100;
247
+
248
+ // remove opacity for fix cluster ui project
249
+ // opacity: 0.8;
250
+ // z-index: -1;
251
+ }
252
+
242
253
  // .ac-preview-header {
243
254
  // padding: 20px;
244
255
  // border-bottom: 1px solid $black-60;
@@ -10,8 +10,8 @@ export default defineComponent({
10
10
  name: "MonacoEditor",
11
11
  props: {
12
12
  diffEditor: { type: Boolean, default: false },
13
- width: { type: String, default: "100%" },
14
- height: { type: String, default: "100%" },
13
+ width: { type: [String, Number], default: "100%" },
14
+ height: { type: [String, Number], default: "100%" },
15
15
  original: String,
16
16
  value: String,
17
17
  language: { type: String, default: "javascript" },
@@ -27,8 +27,12 @@ export default defineComponent({
27
27
  setup(props) {
28
28
  const { width, height } = toRefs(props);
29
29
  const style = computed(() => {
30
- const fixedWidth = width.value;
31
- const fixedHeight = height.value;
30
+ const fixedWidth = width.value.toString().includes("%")
31
+ ? width.value
32
+ : `${width.value}px`;
33
+ const fixedHeight = height.value.toString().includes("%")
34
+ ? height.value
35
+ : `${height.value}px`;
32
36
  return {
33
37
  width: fixedWidth,
34
38
  height: fixedHeight,
@@ -124,4 +128,4 @@ export default defineComponent({
124
128
  },
125
129
  },
126
130
  });
127
- </script>
131
+ </script>
@@ -12,8 +12,7 @@ interface Props {
12
12
  showMinimap?: boolean;
13
13
  isUpdateActive?: boolean;
14
14
  deleteModalStatus?: string;
15
- editorHeight?: string;
16
- editorWidth?: string;
15
+ editorHeight?: number;
17
16
  hideHeader?: boolean;
18
17
  editorWordWrap?: string;
19
18
  }
@@ -28,8 +27,7 @@ const props = withDefaults(defineProps<Props>(), {
28
27
  showMinimap: false,
29
28
  isUpdateActive: false,
30
29
  deleteModalStatus: "closed",
31
- editorHeight: "100%",
32
- editorWidth: "100%",
30
+ editorHeight: 60,
33
31
  hideHeader: false,
34
32
  editorWordWrap: "on",
35
33
  });
@@ -73,37 +71,34 @@ watch(
73
71
  </script>
74
72
 
75
73
  <template>
76
- <div>
77
- <content-table
78
- :table-title="title"
79
- :searchable="isSearchable"
80
- :hide-header="hideHeader"
81
- >
82
- <template #content-right-controls>
83
- <header-item v-if="showHideBtn">
84
- <ac-button
85
- modifier-classes="is-square is-primary"
86
- :icon-class="toggleHideValue ? 'eye-slash' : 'eye'"
87
- :disabled="previewYamls.length === 0"
88
- @click.prevent="toggleHideValue = !toggleHideValue"
89
- />
90
- </header-item>
91
- <slot name="content-action" />
92
- </template>
93
- <template #content="{ searchText }">
94
- <filtered-file-editor
95
- :search-text="searchText"
96
- :toggle-hide-value="toggleHideValue"
97
- :is-preview-loading="isPreviewLoading"
98
- :is-editor-read-only="isEditorReadOnly"
99
- :preview-yamls="previewYamls"
100
- :show-minimap="showMinimap"
101
- :editor-height="editorHeight"
102
- :editor-width="editorWidth"
103
- @setActiveKey="setActiveKey"
104
- :word-wrap="editorWordWrap"
74
+ <content-table
75
+ :table-title="title"
76
+ :searchable="isSearchable"
77
+ :hide-header="hideHeader"
78
+ >
79
+ <template #content-right-controls>
80
+ <header-item v-if="showHideBtn">
81
+ <ac-button
82
+ modifier-classes="is-square is-primary"
83
+ :icon-class="toggleHideValue ? 'eye-slash' : 'eye'"
84
+ :disabled="previewYamls.length === 0"
85
+ @click.prevent="toggleHideValue = !toggleHideValue"
105
86
  />
106
- </template>
107
- </content-table>
108
- </div>
87
+ </header-item>
88
+ <slot name="content-action" />
89
+ </template>
90
+ <template #content="{ searchText }">
91
+ <filtered-file-editor
92
+ :search-text="searchText"
93
+ :toggle-hide-value="toggleHideValue"
94
+ :is-preview-loading="isPreviewLoading"
95
+ :is-editor-read-only="isEditorReadOnly"
96
+ :preview-yamls="previewYamls"
97
+ :show-minimap="showMinimap"
98
+ :editor-height="editorHeight"
99
+ @setActiveKey="setActiveKey"
100
+ :word-wrap="editorWordWrap"
101
+ />
102
+ </template>
103
+ </content-table>
109
104
  </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <div class="form-footer">
5
+ <div class="footer-left">
6
+ <slot name="footer-left" />
7
+ </div>
8
+ <div class="footer-right">
9
+ <slot name="footer-right" />
10
+ </div>
11
+ </div>
12
+ </template>
13
+
14
+ <style lang="scss" scoped>
15
+ .form-footer {
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ margin-left: -20px;
20
+ margin-right: -20px;
21
+ border-top: 1px solid $primary-90;
22
+ padding: 16px 20px;
23
+ }
24
+ </style>
@@ -18,506 +18,4 @@ withDefaults(defineProps<Props>(), {
18
18
  </div>
19
19
  </template>
20
20
 
21
- <style lang="scss">
22
- .ac-single-input {
23
- position: relative;
24
- z-index: 1;
25
- margin-bottom: 15px;
26
-
27
- &.is-disable {
28
- opacity: 0.5;
29
-
30
- input,
31
- .button.is-information,
32
- .eye i.fa {
33
- cursor: not-allowed;
34
- }
35
- }
36
-
37
- &.is-information {
38
- input {
39
- padding-right: 45px;
40
-
41
- &[type="password"] {
42
- padding-right: 80px;
43
- }
44
- }
45
-
46
- span.eye i.fa {
47
- right: 35px;
48
- }
49
- }
50
-
51
- &.is-success {
52
- input,
53
- .ac-card,
54
- textarea {
55
- border: 1px solid $primary !important;
56
- }
57
-
58
- p {
59
- color: $primary;
60
- }
61
- }
62
-
63
- &.is-danger {
64
- input,
65
- .ac-card,
66
- textarea {
67
- border: 1px solid $danger;
68
- }
69
-
70
- p {
71
- color: $danger;
72
- }
73
- }
74
-
75
- &.is-loading {
76
- input,
77
- .ac-card,
78
- textarea {
79
- border: 1px solid $info;
80
- opacity: 0.5;
81
- }
82
-
83
- p {
84
- color: $info;
85
- opacity: 0.5;
86
- }
87
- }
88
-
89
- &.borderless-input {
90
- input {
91
- border: none;
92
- font-size: 13px;
93
- padding: 4px 7px;
94
- height: 30px;
95
- background-color: $white-100;
96
- padding-right: 30px;
97
-
98
- &[type="password"] {
99
- padding-right: 30px;
100
- }
101
-
102
- &:focus {
103
- outline: none;
104
- border: none;
105
- }
106
- }
107
-
108
- span.eye {
109
- i.fa {
110
- padding: 9px;
111
- font-size: 12px;
112
- }
113
- }
114
- }
115
-
116
- &.is-normal {
117
- input {
118
- height: 45px;
119
- font-size: 15px;
120
- font-weight: 400;
121
- }
122
-
123
- .button {
124
- &.is-information {
125
- height: 45px;
126
- width: 45px;
127
- margin-top: 0;
128
- }
129
- }
130
-
131
- span.eye i.fa {
132
- padding: 14px 10px;
133
- }
134
-
135
- .ac-search-button {
136
- margin-top: -22.5px;
137
- }
138
-
139
- label {
140
- top: 13px;
141
- font-size: 13px;
142
-
143
- &.show-label {
144
- font-size: 12px;
145
- color: $primary-20;
146
- top: -9px;
147
- font-weight: 500;
148
- background-color: $white-100;
149
- }
150
- }
151
-
152
- .control {
153
- &.has-icons-right {
154
- .icon {
155
- height: 45px;
156
- width: 30px;
157
- font-size: 13px;
158
- }
159
- }
160
- }
161
- }
162
-
163
- &.is-small {
164
- input {
165
- height: 36px;
166
- font-size: 13px;
167
- font-weight: 400;
168
- }
169
-
170
- .button {
171
- &.is-information {
172
- height: 36px;
173
- width: 36px;
174
- margin-top: 0;
175
- padding: 10px;
176
- }
177
- }
178
-
179
- span.eye i.fa {
180
- padding: 10px;
181
- }
182
-
183
- .ac-search-button {
184
- margin-top: -18px;
185
- }
186
-
187
- label {
188
- top: 8px;
189
- font-size: 13px;
190
-
191
- &.switch-label {
192
- top: 0;
193
- }
194
-
195
- &.show-label {
196
- font-size: 12px;
197
- top: -9px;
198
- font-weight: 500;
199
- color: $black-40;
200
-
201
- &.is-required {
202
- &:after {
203
- width: calc(100% + 10px);
204
- }
205
- }
206
- }
207
- }
208
-
209
- .control {
210
- &.has-icons-right {
211
- .icon {
212
- height: 36px;
213
- width: 25px;
214
- font-size: 13px;
215
- }
216
- }
217
- }
218
- }
219
-
220
- &.is-extra-small {
221
- input {
222
- height: 32px;
223
- font-size: 13px;
224
- font-weight: 400;
225
- }
226
-
227
- .button {
228
- &.is-information {
229
- height: 32px;
230
- width: 32px;
231
- margin-top: 0;
232
- }
233
- }
234
-
235
- span.eye i.fa {
236
- padding: 10px;
237
- }
238
-
239
- .ac-search-button {
240
- margin-top: 0px;
241
- top: 0;
242
- display: flex;
243
- align-items: center;
244
- width: 40px;
245
- justify-content: center;
246
-
247
- svg {
248
- width: 18px;
249
- }
250
- }
251
-
252
- label {
253
- top: 8px;
254
- font-size: 13px;
255
-
256
- &.switch-label {
257
- top: 0;
258
- }
259
-
260
- &.show-label {
261
- font-size: 12px;
262
- top: -9px;
263
- }
264
- }
265
-
266
- .control {
267
- &.has-icons-right {
268
- .icon {
269
- height: 32px;
270
- width: 25px;
271
- font-size: 13px;
272
- }
273
- }
274
- }
275
- }
276
-
277
- &:last-child {
278
- margin-bottom: 0;
279
- }
280
-
281
- &.is-dark {
282
- input {
283
- background-color: $primary-10;
284
- border-color: transparent;
285
- color: $white-100;
286
-
287
- &::placeholder {
288
- color: $primary-10;
289
- }
290
-
291
- button {
292
- i.fa {
293
- color: $white-100;
294
- }
295
- }
296
- }
297
- }
298
-
299
- label {
300
- font-size: 13px;
301
- left: 15px;
302
- top: 11px;
303
- cursor: text;
304
- color: $primary-10;
305
- position: absolute;
306
- z-index: 2;
307
- transition: 0.3s ease-in-out;
308
-
309
- .is-required {
310
- color: $danger;
311
-
312
- img {
313
- position: absolute;
314
- top: 7px;
315
- padding-left: 3px;
316
- }
317
- }
318
-
319
- &.show-label {
320
- top: -9px;
321
- left: 10px;
322
- padding: 0 5px;
323
- font-size: 13px;
324
- color: $black-40;
325
-
326
- &:after {
327
- position: absolute;
328
- content: "";
329
- left: 0;
330
- top: 50%;
331
- background-color: $white-100;
332
- width: 100%;
333
- height: 2px;
334
- margin-top: -1px;
335
- z-index: -1;
336
- }
337
-
338
- // &.is-required {
339
- // &:after {
340
- // width: calc(100% + 10px);
341
- // }
342
- // }
343
- }
344
- }
345
-
346
- .button {
347
- &.is-information {
348
- background-color: transparent;
349
- border: none;
350
- position: absolute;
351
- right: 0;
352
- height: 32px;
353
- width: 32px;
354
- margin-top: 0;
355
-
356
- &:focus {
357
- outline: none;
358
- box-shadow: none;
359
- background-color: #e4e8ef;
360
- transform: scale(0.8);
361
- }
362
- }
363
- }
364
-
365
- .ac-search-button {
366
- background-color: transparent;
367
- border: none;
368
- position: absolute;
369
- left: 0;
370
- top: 50%;
371
- width: 32px;
372
- height: 100%;
373
- margin-top: -15px;
374
- color: $primary-20;
375
- cursor: pointer;
376
- }
377
-
378
- .ac-dropdown-content {
379
- position: absolute;
380
- background-color: $primary-90;
381
- width: 100%;
382
- height: auto;
383
- box-shadow: 0px 4px 16px rgba(132, 147, 168, 0.6);
384
- border-radius: 4px;
385
- overflow: hidden;
386
-
387
- ul {
388
- li {
389
- a {
390
- color: $primary-10;
391
- display: block;
392
- font-size: 13px;
393
- padding: 8px 20px;
394
- transition: 0.3s;
395
-
396
- &:hover {
397
- background-color: $primary-30;
398
- color: $primary;
399
- }
400
- }
401
- }
402
- }
403
- }
404
-
405
- .ac-textarea {
406
- .ac-label {
407
- &.is-required {
408
- &:after {
409
- width: calc(100% + 10px);
410
- }
411
- }
412
- }
413
-
414
- textarea {
415
- border: 1px solid $primary-80;
416
- background-color: transparent;
417
- padding: 10px 15px;
418
- min-height: 50px;
419
-
420
- &.bg-white {
421
- background-color: transparent;
422
- }
423
-
424
- &:focus {
425
- outline: none;
426
- border: 1px solid $primary;
427
- }
428
- }
429
- }
430
-
431
- input,
432
- .ac-card,
433
- textarea {
434
- background-color: $white-100;
435
- color: $primary-10;
436
- height: 45px;
437
- font-weight: 400;
438
- width: 100%;
439
- border-radius: 4px;
440
- border: 1px solid $primary-80;
441
- padding: 8px 15px;
442
- font-size: 13px;
443
-
444
- &:hover {
445
- border-color: $black-70;
446
- }
447
-
448
- &.bg-white {
449
- background-color: $white-100;
450
- }
451
-
452
- &.StripeElement--focus {
453
- border: 1px solid $primary;
454
- }
455
-
456
- &:focus {
457
- border: 1px solid $primary;
458
- outline: none;
459
- background-color: $white-100;
460
- }
461
-
462
- &[type="password"] {
463
- padding-right: 40px;
464
- }
465
-
466
- &[type="search"] {
467
- padding-left: 30px;
468
- }
469
-
470
- transition: background-color 0.3s ease-in-out;
471
- }
472
-
473
- .ac-card {
474
- height: 36px;
475
- padding: 10px 20px;
476
- }
477
-
478
- textarea {
479
- height: 55px;
480
- }
481
-
482
- b.isRequired {
483
- color: $danger;
484
- font-size: 13px;
485
- position: absolute;
486
- right: 5px;
487
- z-index: 9;
488
- }
489
-
490
- span.eye {
491
- i.fa {
492
- color: $primary-70;
493
- position: absolute;
494
- cursor: pointer;
495
- padding: 15px;
496
- right: 0;
497
- top: 0;
498
- }
499
- }
500
-
501
- .is-danger {
502
- font-size: 12px;
503
- line-height: 22px;
504
- color: $danger;
505
- text-align: left;
506
-
507
- i.fa {
508
- padding-right: 10px;
509
- }
510
- }
511
- }
512
-
513
- .ac-input.ac-search {
514
- width: 42px;
515
- transition: 0.3s ease-in-out;
516
- padding: 0;
517
- }
518
-
519
- .ac-search:focus {
520
- width: 200px !important;
521
- padding-right: 10px;
522
- }
523
- </style>
21
+ <style lang="scss"></style>
@@ -0,0 +1,89 @@
1
+ <template>
2
+ <div class="file-upload" data-testid="image-upload-drag-section">
3
+ <label
4
+ for="image-upload-with-cropping"
5
+ class="has-text-centered"
6
+ title="Click to upload new avatar"
7
+ >
8
+ <div class="ms-upload-logo" title="Click to upload new avatar">
9
+ <div class="upload-icon">
10
+ <svg
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ fill="none"
13
+ viewBox="0 0 24 24"
14
+ stroke-width="1"
15
+ stroke="currentColor"
16
+ class="w-6 h-6"
17
+ >
18
+ <path
19
+ stroke-linecap="round"
20
+ stroke-linejoin="round"
21
+ d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5"
22
+ />
23
+ </svg>
24
+ </div>
25
+ </div>
26
+ <div class="ms-upload-description">
27
+ <p class="drag-and-drop-msg">
28
+ Drag &amp; Drop here <strong>or</strong> Choose image From Storage
29
+ </p>
30
+ <p class="img-size-msg">
31
+ Size should not a exceed 1MB &amp; Dimension prefarable 4096 X 3072
32
+ </p>
33
+ </div>
34
+ </label>
35
+ <input
36
+ id="image-upload-with-cropping"
37
+ type="file"
38
+ name="image-upload"
39
+ class="is-hidden"
40
+ data-testid="image-upload-input"
41
+ />
42
+ </div>
43
+ </template>
44
+
45
+ <style lang="scss" scoped>
46
+ // file upload large
47
+ .file-upload {
48
+ border: 1px dashed $primary-80;
49
+ border-radius: 4px;
50
+ &:hover {
51
+ background-color: $primary-97;
52
+
53
+ label {
54
+ .upload-icon {
55
+ border: 1px solid $primary-80;
56
+ svg {
57
+ color: $primary-10;
58
+ }
59
+ }
60
+ }
61
+ }
62
+ label {
63
+ cursor: pointer;
64
+ padding: 32px;
65
+ display: block;
66
+ .upload-icon {
67
+ border: 1px solid $primary-90;
68
+ display: inline-flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ border-radius: 50%;
72
+ width: 100px;
73
+ height: 100px;
74
+ margin-bottom: 24px;
75
+ padding: 24px;
76
+
77
+ svg {
78
+ color: $primary-30;
79
+ }
80
+ }
81
+ p {
82
+ color: $primary-10;
83
+ strong {
84
+ font-weight: 600;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ </style>
@@ -63,7 +63,7 @@ const NavbarItemContent = defineAsyncComponent(
63
63
  </template>
64
64
  <template #navbar-content>
65
65
  <navbar-item-content class="navbar-dropdown-wrapper" style="right: -30px">
66
- <ul>
66
+ <ul class="ac-scrollbar p-0">
67
67
  <li v-for="app in apps" :key="app.url">
68
68
  <a :href="app.url">
69
69
  <article class="media">
@@ -103,6 +103,8 @@ const NavbarItemContent = defineAsyncComponent(
103
103
  background-color: $white-100;
104
104
  border: 1px solid $primary-90;
105
105
  // box-shadow: 0px 6px 16px rgba(0, 0, 0, 0.16);
106
+ max-height: calc(100vh - 100px);
107
+ overflow-y: auto;
106
108
 
107
109
  li {
108
110
  display: block;
@@ -11,7 +11,6 @@
11
11
  position: absolute;
12
12
  right: 0;
13
13
  top: 80px;
14
- // box-shadow: $ac-shadow-1;
15
14
  min-width: 180px;
16
15
  opacity: 0;
17
16
  visibility: hidden;
@@ -20,10 +19,6 @@
20
19
  box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1),
21
20
  0 0px 0 1px rgba(10, 10, 10, 0.02);
22
21
 
23
- // &.theme-choice {
24
- // left: 0;
25
- // }
26
-
27
22
  &.quick-access {
28
23
  background-color: $white-100;
29
24
  padding: 20px;
@@ -66,7 +66,7 @@ function notificationTime(time: number) {
66
66
  <span>{{ notifications.length }}</span>
67
67
  </div>
68
68
 
69
- <div class="notification-body">
69
+ <div class="notification-body ac-scrollbar p-0">
70
70
  <a
71
71
  v-for="data in notifications"
72
72
  href="#"
@@ -141,6 +141,8 @@ function notificationTime(time: number) {
141
141
  }
142
142
  }
143
143
  .notification-body {
144
+ max-height: calc(100vh - 100px);
145
+ overflow-y: auto;
144
146
  a {
145
147
  display: flex;
146
148
  color: $primary-20;
@@ -136,7 +136,11 @@ watch(dropDownStatus, (n) => {
136
136
  <a :href="`mailto:${user.email}`"> {{ user.email }}</a>
137
137
  </div>
138
138
  </div>
139
- <transition-group name="list" tag="ul" class="list-items py-2">
139
+ <transition-group
140
+ name="list"
141
+ tag="ul"
142
+ class="list-items py-2 ac-scrollbar px-0"
143
+ >
140
144
  <li key="settings">
141
145
  <a
142
146
  data-testid="user-settings-link"
@@ -302,6 +306,10 @@ watch(dropDownStatus, (n) => {
302
306
  }
303
307
  }
304
308
  }
309
+ .list-items {
310
+ max-height: calc(100vh - 100px);
311
+ overflow-y: auto;
312
+ }
305
313
  }
306
314
 
307
315
  .ac-menu-item {
@@ -58,15 +58,6 @@ watch(searchText, (n) => {
58
58
  .ac-single-input {
59
59
  width: 200px;
60
60
  transition: 0.3s all;
61
- input {
62
- // padding: 0 20px;
63
- &::placeholder {
64
- // opacity: 0;
65
- }
66
- &:focus {
67
- // opacity: 1;
68
- }
69
- }
70
61
  }
71
62
  }
72
63
  </style>
@@ -7,3 +7,24 @@
7
7
  </ul>
8
8
  </div>
9
9
  </template>
10
+
11
+ <style lang="scss">
12
+ .tabs {
13
+ &.ac-tabs {
14
+ ul {
15
+ border-color: $primary-90;
16
+ }
17
+ a {
18
+ padding: 8px 20px;
19
+ color: $primary-10;
20
+ }
21
+ li {
22
+ &.is-active {
23
+ a {
24
+ font-weight: 500;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
30
+ </style>