quasar-ui-sellmate-ui-kit 2.2.2 → 2.2.4

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.
Files changed (51) hide show
  1. package/dist/index.common.js +2 -2
  2. package/dist/index.css +6984 -1
  3. package/dist/index.esm.js +2 -2
  4. package/dist/index.min.css +2 -2
  5. package/dist/index.rtl.css +6984 -1
  6. package/dist/index.rtl.min.css +2 -2
  7. package/dist/index.umd.js +120 -73
  8. package/dist/index.umd.min.js +2 -2
  9. package/package.json +1 -1
  10. package/src/components/SButton.vue +7 -1
  11. package/src/components/SButtonGroup.vue +1 -1
  12. package/src/components/SButtonToggle.vue +1 -1
  13. package/src/components/SCaution.vue +1 -1
  14. package/src/components/SCheckbox.vue +1 -1
  15. package/src/components/SChip.vue +1 -1
  16. package/src/components/SDate.vue +1 -1
  17. package/src/components/SDateAutoRangePicker.vue +1 -1
  18. package/src/components/SDatePicker.vue +23 -17
  19. package/src/components/SDateRange.vue +4 -3
  20. package/src/components/SDateRangePicker.vue +79 -81
  21. package/src/components/SDateTimePicker.vue +1 -1
  22. package/src/components/SDialog.vue +1 -1
  23. package/src/components/SDropdown.vue +1 -1
  24. package/src/components/SFilePicker.vue +62 -35
  25. package/src/components/SHelp.vue +1 -1
  26. package/src/components/SInput.vue +1 -1
  27. package/src/components/SInputCounter.vue +1 -1
  28. package/src/components/SInputNumber.vue +1 -1
  29. package/src/components/SMarkupTable.vue +1 -1
  30. package/src/components/SPagination.vue +1 -1
  31. package/src/components/SRadio.vue +1 -1
  32. package/src/components/SRouteTab.vue +1 -1
  33. package/src/components/SSelect.vue +1 -2
  34. package/src/components/SSelectCheckbox.vue +1 -1
  35. package/src/components/SSelectCustom.vue +1 -1
  36. package/src/components/SSelectGroupCheckbox.vue +1 -1
  37. package/src/components/SSelectSearch.vue +1 -1
  38. package/src/components/SSelectSearchAutoComplete.vue +1 -1
  39. package/src/components/SSelectSearchCheckbox.vue +1 -1
  40. package/src/components/STab.vue +1 -1
  41. package/src/components/STable.vue +1 -1
  42. package/src/components/STimePicker.vue +1 -1
  43. package/src/components/SToggle.vue +1 -1
  44. package/src/components/STooltip.vue +1 -1
  45. package/src/components/TimePickerCard.vue +1 -1
  46. package/src/css/app.scss +13 -8
  47. package/src/css/extends.scss +3 -3
  48. package/src/css/fonts/Pretendard-Regular.subset.woff2 +0 -0
  49. package/src/css/{variable.scss → quasar.variables.scss} +189 -189
  50. package/src/index.scss +9 -1
  51. package/src/css/fonts/PretendardVariable.woff2 +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar-ui-sellmate-ui-kit",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
4
4
  "author": "Sellmate Dev Team <dev@sellmate.co.kr>",
5
5
  "description": "Sellmate UI Kit",
6
6
  "license": "MIT",
@@ -4,6 +4,7 @@
4
4
  no-caps
5
5
  no-wrap
6
6
  unelevated
7
+ :color="color"
7
8
  :ripple="false"
8
9
  :class="{
9
10
  's-button-md': size === 'md',
@@ -32,6 +33,10 @@ export default defineComponent({
32
33
  type: String,
33
34
  default: 'sm',
34
35
  },
36
+ color: {
37
+ type: String,
38
+ default: 'Blue_B_Default',
39
+ },
35
40
  noHover: {
36
41
  type: Boolean,
37
42
  default: false,
@@ -41,7 +46,8 @@ export default defineComponent({
41
46
  </script>
42
47
 
43
48
  <style lang="scss">
44
- @import "../css/variable.scss";
49
+ @import "../css/quasar.variables.scss";
50
+
45
51
  // TODO: hover 색 맞추기
46
52
  .s-button {
47
53
  &.q-btn {
@@ -28,7 +28,7 @@ export default defineComponent({
28
28
  </script>
29
29
 
30
30
  <style lang="scss">
31
- @import "../css/variable.scss";
31
+ @import "../css/quasar.variables.scss";
32
32
 
33
33
  .s-btn-group {
34
34
  .disabled {
@@ -54,7 +54,7 @@
54
54
  </script>
55
55
 
56
56
  <style lang="scss">
57
- @import '../css/variable.scss';
57
+ @import '../css/quasar.variables.scss';
58
58
 
59
59
  .s-btn-toggle {
60
60
  .q-btn {
@@ -45,7 +45,7 @@ export default defineComponent({
45
45
  </script>
46
46
 
47
47
  <style lang="scss">
48
- @import "../css/variable.scss";
48
+ @import "../css/quasar.variables.scss";
49
49
 
50
50
  .s-caution {
51
51
  padding: 20px 0;
@@ -26,7 +26,7 @@ export default defineComponent({
26
26
  </script>
27
27
 
28
28
  <style lang="scss">
29
- @import "../css/variable.scss";
29
+ @import "../css/quasar.variables.scss";
30
30
 
31
31
  .s-checkbox {
32
32
  margin: 0;
@@ -62,7 +62,7 @@ export default defineComponent({
62
62
  </script>
63
63
 
64
64
  <style lang="scss">
65
- @import "../css/variable.scss";
65
+ @import "../css/quasar.variables.scss";
66
66
 
67
67
  .s-chip {
68
68
  padding: $with-icon-padding !important;
@@ -551,7 +551,7 @@
551
551
  </script>
552
552
 
553
553
  <style lang="scss">
554
- @import '../css/variable.scss';
554
+ @import '../css/quasar.variables.scss';
555
555
 
556
556
  .s-date {
557
557
  width: fit-content;
@@ -248,7 +248,7 @@
248
248
  </script>
249
249
 
250
250
  <style lang="scss">
251
- @import '../css/variable.scss';
251
+ @import '../css/quasar.variables.scss';
252
252
 
253
253
  .s-date-auto-range-picker {
254
254
  width: v-bind(dateWidth);
@@ -4,22 +4,24 @@
4
4
  outlined
5
5
  :class="{
6
6
  's-date-picker-range': range,
7
- 'text-Grey_Default bg-Grey_Lighten-5': $props.isDisable,
7
+ 'text-Grey_Default bg-Grey_Lighten-5': isDisable,
8
8
  's-date-picker-inside': insideLabel,
9
9
  }"
10
10
  readonly
11
11
  class="q-pa-none s-date-picker"
12
- :placeholder="$props.dateText"
12
+ :placeholder="dateText"
13
13
  v-model="inputDate"
14
- :disable="$props.isDisable"
14
+ :disable="isDisable"
15
15
  @click="calendarOpen = true"
16
+ :name="name"
17
+ :type="type"
16
18
  >
17
- <template v-slot:before>
18
- <div class="date-picker-label" v-if="insideLabel && label">
19
+ <template #before v-if="insideLabel">
20
+ <div class="date-picker-label">
19
21
  {{ label }}
20
22
  </div>
21
23
  </template>
22
- <template v-slot:prepend>
24
+ <template #prepend>
23
25
  <div v-if="!range">
24
26
  <q-btn
25
27
  :icon="dateRangeIcon"
@@ -28,6 +30,9 @@
28
30
  flat
29
31
  color="Grey_Darken-4"
30
32
  class="q-pa-none no-hover"
33
+ :nativeEl="{
34
+ 'aria-label': 'date-button'
35
+ }"
31
36
  >
32
37
  <q-menu v-model="calendarOpen" fit class="date-picker-wrapper" :offset="[12, 12]">
33
38
  <q-date
@@ -50,6 +55,7 @@
50
55
  class="q-pa-none no-hover"
51
56
  @click="clickDateIcon"
52
57
  color="Grey_Darken-4"
58
+ aria-label="date-button"
53
59
  >
54
60
  <q-menu v-model="calendarOpen" fit class="date-picker-wrapper" :offset="[12, 12]">
55
61
  <q-date
@@ -67,13 +73,14 @@
67
73
  </q-btn>
68
74
  </div>
69
75
  </template>
70
- <template v-if="useDelete" v-slot:append>
76
+ <template #append v-if="useDelete">
71
77
  <q-icon
72
78
  :name="closeIcon"
73
79
  size="16px"
74
80
  color="Grey_Lighten-1"
75
81
  class="cursor-pointer"
76
82
  @click="deleteDate"
83
+ aria-label="close-button"
77
84
  />
78
85
  </template>
79
86
  </q-input>
@@ -93,18 +100,17 @@
93
100
  QMenu,
94
101
  QIcon,
95
102
  },
96
- data() {
97
- return {
98
- dateRangeIcon,
99
- };
100
- },
101
103
  props: {
102
104
  range: { type: Boolean, default: false },
103
- isDisable: Boolean,
104
- insideLabel: Boolean,
105
- label: String,
105
+ isDisable: { type: Boolean, default: false },
106
+ insideLabel: { type: Boolean, default: false },
107
+ label: { type: String, default: '' },
108
+ name: { type: String, default: '' },
109
+ type: { type: String, default: 'text' },
106
110
  modelValue: {
107
111
  type: [String, Object],
112
+ required: true,
113
+ default: () => ({ from: '', to: '' }),
108
114
  },
109
115
  dateText: String,
110
116
  subtractDate: {
@@ -235,6 +241,7 @@
235
241
  }
236
242
 
237
243
  return {
244
+ dateRangeIcon,
238
245
  calendarOpen,
239
246
  dateValue,
240
247
  inputDate,
@@ -251,9 +258,8 @@
251
258
  </script>
252
259
 
253
260
  <style lang="scss">
254
- @import '../css/variable.scss';
261
+ @import '../css/quasar.variables.scss';
255
262
 
256
- // TODO : min width 만 지정 하고 넓이 빼기
257
263
  .s-date-picker {
258
264
  height: $default-height;
259
265
  .q-field__before {
@@ -7,7 +7,7 @@
7
7
  readonly
8
8
  :disable="isDisable"
9
9
  >
10
- <template v-slot:before v-if="insideLabel">
10
+ <template v-if="insideLabel" #before>
11
11
  <div class="date-picker-label">
12
12
  {{ insideLabel }}
13
13
  </div>
@@ -124,7 +124,7 @@
124
124
  </q-input>
125
125
  </div>
126
126
  </template>
127
- <template v-if="useDelete" v-slot:append>
127
+ <template v-if="useDelete" #append>
128
128
  <q-icon
129
129
  :name="closeIcon"
130
130
  size="16px"
@@ -227,6 +227,7 @@
227
227
  },
228
228
  insideLabel: {
229
229
  type: String,
230
+ default: '',
230
231
  },
231
232
  lang: {
232
233
  type: String,
@@ -337,7 +338,7 @@
337
338
  </script>
338
339
 
339
340
  <style lang="scss">
340
- @import '../css/variable.scss';
341
+ @import '../css/quasar.variables.scss';
341
342
 
342
343
  .s-date-range {
343
344
  width: fit-content;
@@ -4,21 +4,21 @@
4
4
  outlined
5
5
  :class="{
6
6
  'text-Grey_Default bg-Grey_Lighten-5': isDisable,
7
- 's-date-range-picker-inside': insideLabel,
7
+ 's-date-range-picker--inside': insideLabel,
8
8
  }"
9
9
  readonly
10
- class="q-pa-none s-date-range-picker-input bg-white"
10
+ class="q-pa-none s-date-range-picker bg-white"
11
11
  v-model="inputDate"
12
- :disable="$props.isDisable"
12
+ :disable="isDisable"
13
13
  @click="calendarOpen = true"
14
14
  data-cy="rangeCalendar"
15
15
  >
16
- <template v-slot:before>
17
- <div class="date-picker-label" v-if="insideLabel">
16
+ <template #before v-if="insideLabel">
17
+ <div class="date-picker-label">
18
18
  {{ insideLabel }}
19
19
  </div>
20
20
  </template>
21
- <template v-slot:prepend>
21
+ <template #prepend>
22
22
  <q-btn
23
23
  :icon="dateRangeIcon"
24
24
  dense
@@ -67,16 +67,7 @@
67
67
  </q-menu>
68
68
  </q-btn>
69
69
  </template>
70
- <template v-if="useDelete" v-slot:append>
71
- <q-icon
72
- :name="closeIcon"
73
- size="16px"
74
- class="cursor-pointer"
75
- @click="deleteDate"
76
- data-cy="delete-icon"
77
- />
78
- </template>
79
- <template v-slot:default>
70
+ <template #default>
80
71
  <div class="flex no-wrap items-center">
81
72
  <q-input
82
73
  v-if="useInput"
@@ -105,6 +96,15 @@
105
96
  }}</span>
106
97
  </div>
107
98
  </template>
99
+ <template #append v-if="useDelete">
100
+ <q-icon
101
+ :name="closeIcon"
102
+ size="16px"
103
+ class="cursor-pointer"
104
+ @click="deleteDate"
105
+ data-cy="delete-icon"
106
+ />
107
+ </template>
108
108
  </q-input>
109
109
  </template>
110
110
 
@@ -338,76 +338,15 @@
338
338
  </script>
339
339
 
340
340
  <style lang="scss">
341
- @import '../css/variable.scss';
342
-
343
- // TODO : min width 만 지정 하고 넓이 빼기
344
- .s-date-range-picker-inside {
345
- height: 28px;
346
-
347
- .q-field__before {
348
- height: 100%;
349
- padding: 4px 12px !important;
350
- border: 1px solid $Grey_Lighten-1;
351
- border-right: none;
352
- border-radius: $generic-border-radius 0 0 $generic-border-radius;
353
- background: $Grey_Lighten-5;
354
-
355
- .date-picker-label {
356
- font-size: $default-font;
357
- font-weight: $default-font-weight;
358
- color: $Grey_Darken-4;
359
- }
360
- }
341
+ @import '../css/quasar.variables.scss';
361
342
 
362
- .q-field__inner {
363
- .q-field__control {
364
- border-radius: 0 2px 2px 0;
365
- width: 220px;
366
-
367
- .q-field__prepend {
368
- .q-icon {
369
- width: 20px;
370
- height: 20px;
371
- color: $Grey_Darken-1;
372
- }
373
- }
374
-
375
- &-container {
376
- > input {
377
- display: none;
378
- }
379
-
380
- > div {
381
- margin-left: 6.5px;
382
-
383
- > span {
384
- display: inline-flex;
385
- min-width: 70px;
386
- font-size: 12px !important;
387
- }
388
- }
389
- }
390
- }
391
- }
392
-
393
- &.q-field--disabled {
394
- .q-field__before {
395
- border: 1px solid $Grey_Lighten-2;
396
- border-right: none;
397
-
398
- .date-picker-label {
399
- color: $Grey_Default;
400
- }
401
- }
402
- }
403
- }
404
-
405
- .s-date-range-picker-input {
343
+ .s-date-range-picker {
406
344
  width: fit-content;
407
345
  height: $default-height;
408
346
 
409
- .q-field__before {
347
+ &.q-field--dense .q-field__before {
410
348
  padding: 0;
349
+ height: 100%;
411
350
  }
412
351
 
413
352
  .q-field__inner {
@@ -521,6 +460,65 @@
521
460
  line-height: $default-content-height;
522
461
  justify-content: center;
523
462
  }
463
+
464
+ &--inside {
465
+ .q-field__before {
466
+ height: 100%;
467
+ padding: 4px 12px !important;
468
+ border: 1px solid $Grey_Lighten-1;
469
+ border-right: none;
470
+ border-radius: $generic-border-radius 0 0 $generic-border-radius;
471
+ background: $Grey_Lighten-5;
472
+
473
+ .date-picker-label {
474
+ font-size: $default-font;
475
+ font-weight: $default-font-weight;
476
+ color: $Grey_Darken-4;
477
+ }
478
+ }
479
+
480
+ .q-field__inner {
481
+ .q-field__control {
482
+ border-radius: 0 2px 2px 0;
483
+ width: 220px;
484
+
485
+ .q-field__prepend {
486
+ .q-icon {
487
+ width: 20px;
488
+ height: 20px;
489
+ color: $Grey_Darken-1;
490
+ }
491
+ }
492
+
493
+ &-container {
494
+ > input {
495
+ display: none;
496
+ }
497
+
498
+ > div {
499
+ margin-left: 6.5px;
500
+
501
+ > span {
502
+ display: inline-flex;
503
+ min-width: 70px;
504
+ font-size: 12px !important;
505
+ }
506
+ }
507
+ }
508
+ }
509
+ }
510
+
511
+ &.q-field--disabled {
512
+ .q-field__before {
513
+ border: 1px solid $Grey_Lighten-2;
514
+ border-right: none;
515
+
516
+ .date-picker-label {
517
+ color: $Grey_Default;
518
+ }
519
+ }
520
+ }
521
+ }
524
522
  }
525
523
 
526
524
  .date-picker-range-wrapper.q-menu {
@@ -260,7 +260,7 @@
260
260
  </script>
261
261
 
262
262
  <style lang="scss">
263
- @import '../css/variable.scss';
263
+ @import '../css/quasar.variables.scss';
264
264
 
265
265
  .s-date-time-picker {
266
266
  width: fit-content;
@@ -162,7 +162,7 @@ export default defineComponent({
162
162
  </script>
163
163
 
164
164
  <style lang="scss">
165
- @import "../css/variable.scss";
165
+ @import "../css/quasar.variables.scss";
166
166
 
167
167
  .s-confirm {
168
168
  border-radius: 8px;
@@ -73,7 +73,7 @@
73
73
  </script>
74
74
 
75
75
  <style lang="scss">
76
- @import '../css/variable.scss';
76
+ @import '../css/quasar.variables.scss';
77
77
 
78
78
  .s-dropdown {
79
79
  min-height: 0;
@@ -2,33 +2,35 @@
2
2
  <q-file
3
3
  outlined
4
4
  dense
5
- v-model="file"
6
- @update:modelValue="$emit('update:modelValue', file)"
5
+ :model-value="modelValue"
6
+ @update:model-value="value => $emit('update:modelValue', value)"
7
7
  class="s-file rounded-borders"
8
8
  ref="sFilePickerRef"
9
+ :disable="disable"
10
+ :class="{ 's-file--nodata': displayPlaceholder }"
9
11
  >
10
- <template v-slot:prepend>
11
- <q-icon
12
- :name="attachFileIcon"
13
- size="20px"
14
- color="Grey_Darken-4"
15
- @click.stop
16
- />
17
- <div
18
- v-if="((Array.isArray(file) && !file.length) || !file) && placeholder"
19
- class="file-placeholder text-Grey_Lighten-2"
20
- @click.stop
21
- >
12
+ <template #prepend>
13
+ <q-icon :name="attachFileIcon" size="20px" color="Grey_Darken-4" @click.stop />
14
+ <div v-if="displayPlaceholder" class="file-placeholder text-Grey_Lighten-2" @click.stop>
22
15
  {{ placeholder }}
23
16
  </div>
24
17
  </template>
18
+ <template v-slot:append v-if="clearable">
19
+ <q-icon
20
+ :name="closeIcon"
21
+ size="16px"
22
+ class="cursor-pointer"
23
+ @click="clearFile"
24
+ data-cy="delete-icon"
25
+ />
26
+ </template>
25
27
  </q-file>
26
28
  </template>
27
29
 
28
30
  <script>
29
- import { defineComponent, ref, watch } from 'vue';
31
+ import { defineComponent, ref, computed } from 'vue';
30
32
  import { QFile, QIcon } from 'quasar';
31
- import { attachFileIcon } from '../assets/icons.js';
33
+ import { attachFileIcon, closeIcon } from '../assets/icons.js';
32
34
 
33
35
  export default defineComponent({
34
36
  name: 'SFilePicker',
@@ -41,33 +43,50 @@
41
43
  type: String,
42
44
  default: '파일을 업로드 해주세요',
43
45
  },
44
- modelValue: [File, FileList, Array, null, undefined],
46
+ disable: {
47
+ type: Boolean,
48
+ default: false,
49
+ },
50
+ clearable: {
51
+ type: Boolean,
52
+ default: false,
53
+ },
54
+ modelValue: {
55
+ type: [File, FileList, Array, null],
56
+ required: true,
57
+ },
45
58
  },
46
- setup(props) {
47
- const sFilePickerRef = ref(null);
48
- const file = ref(props.modelValue);
49
-
50
- watch(
51
- () => props.modelValue,
52
- newVal => {
53
- file.value = newVal;
54
- },
55
- );
56
-
59
+ setup(props, { emit }) {
60
+ function clearFile() {
61
+ emit('update:modelValue', null);
62
+ }
57
63
  return {
64
+ closeIcon,
65
+ clearFile,
58
66
  attachFileIcon,
59
- sFilePickerRef,
60
- file,
67
+ sFilePickerRef: ref(null),
68
+ displayPlaceholder: computed(
69
+ () => {
70
+ if (Array.isArray(props.modelValue)) {
71
+ return props.modelValue.length === 0 || (props.modelValue.length > 0
72
+ && props.modelValue.every(file => file instanceof File && file.size === 0));
73
+ }
74
+ if (props.modelValue === null) {
75
+ return true;
76
+ }
77
+ return props.modelValue instanceof File && props.modelValue.size === 0;
78
+ },
79
+ ),
61
80
  };
62
81
  },
63
82
  });
64
83
  </script>
65
84
 
66
85
  <style lang="scss">
67
- @import '../css/variable.scss';
86
+ @import '../css/quasar.variables.scss';
68
87
 
69
- .s-file.q-file {
70
- width: 290px;
88
+ .s-file {
89
+ width: fit-content;
71
90
  max-height: $default-height;
72
91
 
73
92
  .q-field__inner {
@@ -96,14 +115,13 @@
96
115
  > .q-icon {
97
116
  margin-right: $between-margin-md;
98
117
  }
99
-
100
118
  .file-placeholder {
101
119
  line-height: $default-line-height;
102
120
  font-size: $default-font;
103
121
  font-weight: $default-font-weight;
104
122
  height: 100%;
105
123
  display: block;
106
- width: 85%;
124
+ width: fit-content;
107
125
  }
108
126
  }
109
127
 
@@ -129,6 +147,9 @@
129
147
  font-size: $default-font;
130
148
  width: 20px;
131
149
  padding: 0;
150
+ justify-content: center;
151
+ align-items: center;
152
+ margin-left: 8px;
132
153
 
133
154
  > .q-icon {
134
155
  font-size: 20px;
@@ -136,6 +157,12 @@
136
157
  }
137
158
  }
138
159
  }
160
+
161
+ &--nodata {
162
+ .q-field__inner .q-field__control .q-field__control-container {
163
+ display: none;
164
+ }
165
+ }
139
166
  }
140
167
 
141
168
  .s-file.q-field--disabled {
@@ -67,7 +67,7 @@ export default defineComponent({
67
67
  </script>
68
68
 
69
69
  <style lang="scss">
70
- @import "../css/variable.scss";
70
+ @import "../css/quasar.variables.scss";
71
71
 
72
72
  .s-help-btn {
73
73
  padding: 4px 16px 4px 10px;
@@ -149,7 +149,7 @@
149
149
  </script>
150
150
 
151
151
  <style lang="scss">
152
- @import '../css/variable.scss';
152
+ @import '../css/quasar.variables.scss';
153
153
 
154
154
  .s-input {
155
155
  height: auto;
@@ -42,5 +42,5 @@ export default defineComponent({
42
42
  </script>
43
43
 
44
44
  <style lang="scss">
45
- @import "../css/variable.scss";
45
+ @import "../css/quasar.variables.scss";
46
46
  </style>
@@ -83,7 +83,7 @@
83
83
  </script>
84
84
 
85
85
  <style lang="scss">
86
- @import '../css/variable.scss';
86
+ @import '../css/quasar.variables.scss';
87
87
 
88
88
  .s-input-number {
89
89
  height: $default-height;