classcard-ui 0.2.1539 → 0.2.1541
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/dist/classcard-ui.common.js +187 -110
- package/dist/classcard-ui.common.js.map +1 -1
- package/dist/classcard-ui.css +2 -2
- package/dist/classcard-ui.umd.js +187 -110
- package/dist/classcard-ui.umd.js.map +1 -1
- package/dist/classcard-ui.umd.min.js +4 -4
- package/dist/classcard-ui.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/CDatepicker/CDatepicker.vue +27 -6
- package/src/components/CMultiselect/CMultiselect.vue +21 -2
- package/src/components/CRadio/CRadio.vue +25 -15
- package/src/icons.js +2 -1
- package/src/stories/CDatepicker.stories.js +6 -0
package/package.json
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
<label v-if="label" class="block text-sm font-medium text-gray-900">
|
|
6
6
|
{{ label }}
|
|
7
7
|
</label>
|
|
8
|
-
<!-- asterisk sign to render if field is required -->
|
|
9
8
|
<p v-if="isRequired" class="ml-1 text-red-600">*</p>
|
|
10
9
|
</div>
|
|
11
10
|
<span v-if="hint" class="text-sm text-gray-500">{{ hint }}</span>
|
|
@@ -34,13 +33,18 @@
|
|
|
34
33
|
<div v-if="showOnlyDatePickerIcon">
|
|
35
34
|
<button
|
|
36
35
|
type="button"
|
|
37
|
-
class="relative flex h-9 w-9 cursor-pointer items-center justify-center rounded focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:custom-disabled-state"
|
|
36
|
+
class="datepicker-button relative flex h-9 w-9 cursor-pointer items-center justify-center rounded focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:custom-disabled-state"
|
|
38
37
|
:id="id + '_button_toggle_dropdown'"
|
|
39
38
|
:disabled="disabled"
|
|
39
|
+
:style="computedStyles"
|
|
40
|
+
:aria-disabled="disabled"
|
|
41
|
+
:aria-label="disabled ? 'Disabled' : 'Open datepicker'"
|
|
42
|
+
:title="disabled ? 'Disabled' : 'Open datepicker'"
|
|
40
43
|
@click="togglePopover()"
|
|
41
44
|
>
|
|
42
45
|
<c-icon
|
|
43
46
|
:name="calendarIcon.iconName"
|
|
47
|
+
:cursorType="disabled ? 'not-allowed' : 'pointer'"
|
|
44
48
|
class="text-gray-400 flex h-5 w-5 justify-center"
|
|
45
49
|
:type="calendarIcon.type ? calendarIcon.type : 'solid'"
|
|
46
50
|
:viewBox="calendarIcon.viewBox ? calendarIcon.viewBox : ''"
|
|
@@ -60,8 +64,9 @@
|
|
|
60
64
|
<c-icon
|
|
61
65
|
:name="calendarIcon.iconName"
|
|
62
66
|
class="text-gray-400 h-5 w-5"
|
|
63
|
-
:type="calendarIcon.type ? calendarIcon.type : 'solid'"
|
|
64
67
|
:viewBox="calendarIcon.viewBox"
|
|
68
|
+
:cursorType="disabled ? 'not-allowed' : 'pointer'"
|
|
69
|
+
:type="calendarIcon.type ? calendarIcon.type : 'solid'"
|
|
65
70
|
></c-icon>
|
|
66
71
|
</button>
|
|
67
72
|
<input
|
|
@@ -77,7 +82,6 @@
|
|
|
77
82
|
</template>
|
|
78
83
|
</v-date-picker>
|
|
79
84
|
</div>
|
|
80
|
-
<!-- validation error message -->
|
|
81
85
|
<p v-if="!isValidate" class="mt-2 text-sm text-red-600">
|
|
82
86
|
{{ errorMessage }}
|
|
83
87
|
</p>
|
|
@@ -87,13 +91,12 @@
|
|
|
87
91
|
</div>
|
|
88
92
|
</template>
|
|
89
93
|
<script>
|
|
94
|
+
import { COLOR_CONFIG } from "../../colorConfig";
|
|
90
95
|
import CIcon from "../CIcon/CIcon.vue";
|
|
91
|
-
// import Calendar from "v-calendar/lib/components/calendar.umd";
|
|
92
96
|
import VDatePicker from "v-calendar/lib/components/date-picker.umd";
|
|
93
97
|
export default {
|
|
94
98
|
name: "CDatepicker",
|
|
95
99
|
components: {
|
|
96
|
-
// Calendar,
|
|
97
100
|
VDatePicker,
|
|
98
101
|
CIcon,
|
|
99
102
|
},
|
|
@@ -188,6 +191,10 @@ export default {
|
|
|
188
191
|
type: Boolean,
|
|
189
192
|
default: false,
|
|
190
193
|
},
|
|
194
|
+
preferredColor: {
|
|
195
|
+
type: String,
|
|
196
|
+
default: "indigo",
|
|
197
|
+
},
|
|
191
198
|
},
|
|
192
199
|
data() {
|
|
193
200
|
const masks = {
|
|
@@ -213,6 +220,14 @@ export default {
|
|
|
213
220
|
],
|
|
214
221
|
};
|
|
215
222
|
},
|
|
223
|
+
computed: {
|
|
224
|
+
computedStyles() {
|
|
225
|
+
const colors = COLOR_CONFIG[this.preferredColor] || COLOR_CONFIG.indigo;
|
|
226
|
+
return {
|
|
227
|
+
"--primary-ring-color": colors.shade600,
|
|
228
|
+
};
|
|
229
|
+
},
|
|
230
|
+
},
|
|
216
231
|
methods: {
|
|
217
232
|
onDayClick(date) {
|
|
218
233
|
this.$emit("input", date);
|
|
@@ -233,3 +248,9 @@ export default {
|
|
|
233
248
|
},
|
|
234
249
|
};
|
|
235
250
|
</script>
|
|
251
|
+
|
|
252
|
+
<style scoped>
|
|
253
|
+
.datepicker-button:focus {
|
|
254
|
+
outline-color: var(--primary-ring-color);
|
|
255
|
+
}
|
|
256
|
+
</style>
|
|
@@ -180,9 +180,19 @@
|
|
|
180
180
|
<div v-if="!isGrouped">
|
|
181
181
|
<div v-if="option.hasNoData" class="dropdown-menu-bordered"></div>
|
|
182
182
|
<div v-else class="group mt-1 flex h-full w-full items-center">
|
|
183
|
-
<div
|
|
183
|
+
<div
|
|
184
|
+
@click.stop
|
|
185
|
+
v-if="addCheckBox"
|
|
186
|
+
:class="[
|
|
187
|
+
'flex-shrink-0',
|
|
188
|
+
option.isDisabled || option.disabled
|
|
189
|
+
? 'pointer-events-none'
|
|
190
|
+
: '',
|
|
191
|
+
]"
|
|
192
|
+
>
|
|
184
193
|
<c-checkbox
|
|
185
194
|
:value="isChecked(option)"
|
|
195
|
+
:isDisabled="option.isDisabled || option.disabled"
|
|
186
196
|
@onChange="handleSingleSelect(option)"
|
|
187
197
|
/>
|
|
188
198
|
</div>
|
|
@@ -298,9 +308,18 @@
|
|
|
298
308
|
option.description ? 'items-start' : 'items-center',
|
|
299
309
|
]"
|
|
300
310
|
>
|
|
301
|
-
<div
|
|
311
|
+
<div
|
|
312
|
+
@click.stop
|
|
313
|
+
v-if="addCheckBox && !option.header"
|
|
314
|
+
:class="
|
|
315
|
+
option.isDisabled || option.disabled
|
|
316
|
+
? 'pointer-events-none'
|
|
317
|
+
: ''
|
|
318
|
+
"
|
|
319
|
+
>
|
|
302
320
|
<c-checkbox
|
|
303
321
|
:value="isChecked(option)"
|
|
322
|
+
:isDisabled="option.isDisabled || option.disabled"
|
|
304
323
|
@onChange="handleSingleSelect(option)"
|
|
305
324
|
/>
|
|
306
325
|
</div>
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div
|
|
3
|
+
<div
|
|
4
|
+
class="-space-y-px rounded-md bg-white"
|
|
5
|
+
:class="customWrapperClasses"
|
|
6
|
+
>
|
|
4
7
|
<div
|
|
5
8
|
v-for="(item, index) in items"
|
|
6
|
-
:class="
|
|
9
|
+
:class="[
|
|
10
|
+
'relative first:rounded-t-md last:rounded-b-md',
|
|
7
11
|
index != items.length - 1
|
|
8
12
|
? useIncreasedPadding
|
|
9
13
|
? 'pb-6'
|
|
10
14
|
: 'pb-4'
|
|
11
|
-
: ''
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
: '',
|
|
16
|
+
customClasses ? classes(item, index) : '',
|
|
17
|
+
isDisabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer',
|
|
18
|
+
]"
|
|
15
19
|
v-bind:key="item[labelName]"
|
|
16
20
|
>
|
|
17
21
|
<div class="flex items-start">
|
|
@@ -19,22 +23,21 @@
|
|
|
19
23
|
type="radio"
|
|
20
24
|
:value="item.value"
|
|
21
25
|
:name="name"
|
|
22
|
-
:id="id"
|
|
26
|
+
:id="id + '_input_' + item.value"
|
|
23
27
|
v-model="selectedItem"
|
|
24
28
|
@click="onChange(item.value)"
|
|
25
|
-
class="radio-state mt-0.5 h-4 w-4
|
|
29
|
+
class="radio-state mt-0.5 h-4 w-4 disabled:opacity-50 disabled:cursor-not-allowed"
|
|
26
30
|
:disabled="isDisabled"
|
|
27
31
|
:style="colorStyles"
|
|
28
32
|
/>
|
|
29
33
|
<div
|
|
30
|
-
:
|
|
31
|
-
|
|
32
|
-
}`"
|
|
33
|
-
:id="id"
|
|
34
|
+
:id="id + '_label_' + item.value"
|
|
35
|
+
class="ml-3 flex flex-col"
|
|
34
36
|
@click="onChange(item.value)"
|
|
35
37
|
>
|
|
36
38
|
<div class="flex items-center gap-2">
|
|
37
39
|
<p
|
|
40
|
+
:id="id + '_label_text_' + item.value"
|
|
38
41
|
class="text-sm font-medium text-gray-900"
|
|
39
42
|
:class="
|
|
40
43
|
customClasses && item.value === selectedItem
|
|
@@ -43,7 +46,11 @@
|
|
|
43
46
|
"
|
|
44
47
|
>
|
|
45
48
|
{{ item[labelName] }}
|
|
46
|
-
<span
|
|
49
|
+
<span
|
|
50
|
+
v-if="item.labelHelperText"
|
|
51
|
+
:class="item.labelHelperTextClass"
|
|
52
|
+
>{{ item.labelHelperText }}</span
|
|
53
|
+
>
|
|
47
54
|
</p>
|
|
48
55
|
<c-tag
|
|
49
56
|
v-if="item.tag"
|
|
@@ -52,6 +59,7 @@
|
|
|
52
59
|
></c-tag>
|
|
53
60
|
</div>
|
|
54
61
|
<p
|
|
62
|
+
:id="id + '_description_' + item.value"
|
|
55
63
|
class="block text-sm"
|
|
56
64
|
:class="
|
|
57
65
|
customClasses && item.value === selectedItem
|
|
@@ -65,13 +73,14 @@
|
|
|
65
73
|
</div>
|
|
66
74
|
<slot v-if="item.value === selectedItem" :name="item.value" />
|
|
67
75
|
</div>
|
|
68
|
-
<
|
|
76
|
+
<button
|
|
69
77
|
v-if="showClearSelection"
|
|
78
|
+
type="button"
|
|
70
79
|
class="cursor-pointer pt-4 text-sm text-gray-400 hover:text-gray-700 hover:underline"
|
|
71
80
|
@click="clearSelection"
|
|
72
81
|
>
|
|
73
82
|
Clear selection
|
|
74
|
-
</
|
|
83
|
+
</button>
|
|
75
84
|
</div>
|
|
76
85
|
</div>
|
|
77
86
|
</template>
|
|
@@ -86,6 +95,7 @@ export default {
|
|
|
86
95
|
props: {
|
|
87
96
|
id: {
|
|
88
97
|
type: String,
|
|
98
|
+
default: "c-radio",
|
|
89
99
|
},
|
|
90
100
|
items: {
|
|
91
101
|
type: Array,
|
package/src/icons.js
CHANGED
|
@@ -900,5 +900,6 @@ export default {
|
|
|
900
900
|
"arrows-pointing-in-solid-v2":
|
|
901
901
|
"M3.22 3.22a.75.75 0 0 1 1.06 0l3.97 3.97V4.5a.75.75 0 0 1 1.5 0V9a.75.75 0 0 1-.75.75H4.5a.75.75 0 0 1 0-1.5h2.69L3.22 4.28a.75.75 0 0 1 0-1.06Zm17.56 0a.75.75 0 0 1 0 1.06l-3.97 3.97h2.69a.75.75 0 0 1 0 1.5H15a.75.75 0 0 1-.75-.75V4.5a.75.75 0 0 1 1.5 0v2.69l3.97-3.97a.75.75 0 0 1 1.06 0ZM3.75 15a.75.75 0 0 1 .75-.75H9a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0v-2.69l-3.97 3.97a.75.75 0 0 1-1.06-1.06l3.97-3.97H4.5a.75.75 0 0 1-.75-.75Zm10.5 0a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-2.69l3.97 3.97a.75.75 0 1 1-1.06 1.06l-3.97-3.97v2.69a.75.75 0 0 1-1.5 0V15Z",
|
|
902
902
|
"ticket-solid-v2": "M1.5 6.375c0-1.036.84-1.875 1.875-1.875h17.25c1.035 0 1.875.84 1.875 1.875v3.026a.75.75 0 0 1-.375.65 2.249 2.249 0 0 0 0 3.898.75.75 0 0 1 .375.65v3.026c0 1.035-.84 1.875-1.875 1.875H3.375A1.875 1.875 0 0 1 1.5 17.625v-3.026a.75.75 0 0 1 .374-.65 2.249 2.249 0 0 0 0-3.898.75.75 0 0 1-.374-.65V6.375Zm15-1.125a.75.75 0 0 1 .75.75v.75a.75.75 0 0 1-1.5 0V6a.75.75 0 0 1 .75-.75Zm.75 4.5a.75.75 0 0 0-1.5 0v.75a.75.75 0 0 0 1.5 0v-.75Zm-.75 3a.75.75 0 0 1 .75.75v.75a.75.75 0 0 1-1.5 0v-.75a.75.75 0 0 1 .75-.75Zm.75 4.5a.75.75 0 0 0-1.5 0V18a.75.75 0 0 0 1.5 0v-.75ZM6 12a.75.75 0 0 1 .75-.75H12a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 12Zm.75 2.25a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5h-3Z",
|
|
903
|
-
"adjustments-horizontal-mini-v2": "M10 3.75a2 2 0 1 0-4 0 2 2 0 0 0 4 0ZM17.25 4.5a.75.75 0 0 0 0-1.5h-5.5a.75.75 0 0 0 0 1.5h5.5ZM5 3.75a.75.75 0 0 1-.75.75h-1.5a.75.75 0 0 1 0-1.5h1.5a.75.75 0 0 1 .75.75ZM4.25 17a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5h1.5ZM17.25 17a.75.75 0 0 0 0-1.5h-5.5a.75.75 0 0 0 0 1.5h5.5ZM9 10a.75.75 0 0 1-.75.75h-5.5a.75.75 0 0 1 0-1.5h5.5A.75.75 0 0 1 9 10ZM17.25 10.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5h1.5ZM14 10a2 2 0 1 0-4 0 2 2 0 0 0 4 0ZM10 16.25a2 2 0 1 0-4 0 2 2 0 0 0 4 0Z"
|
|
903
|
+
"adjustments-horizontal-mini-v2": "M10 3.75a2 2 0 1 0-4 0 2 2 0 0 0 4 0ZM17.25 4.5a.75.75 0 0 0 0-1.5h-5.5a.75.75 0 0 0 0 1.5h5.5ZM5 3.75a.75.75 0 0 1-.75.75h-1.5a.75.75 0 0 1 0-1.5h1.5a.75.75 0 0 1 .75.75ZM4.25 17a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5h1.5ZM17.25 17a.75.75 0 0 0 0-1.5h-5.5a.75.75 0 0 0 0 1.5h5.5ZM9 10a.75.75 0 0 1-.75.75h-5.5a.75.75 0 0 1 0-1.5h5.5A.75.75 0 0 1 9 10ZM17.25 10.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5h1.5ZM14 10a2 2 0 1 0-4 0 2 2 0 0 0 4 0ZM10 16.25a2 2 0 1 0-4 0 2 2 0 0 0 4 0Z",
|
|
904
|
+
"photo-solid-v2": "M1.5 6a2.25 2.25 0 0 1 2.25-2.25h16.5A2.25 2.25 0 0 1 22.5 6v12a2.25 2.25 0 0 1-2.25 2.25H3.75A2.25 2.25 0 0 1 1.5 18V6ZM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0 0 21 18v-1.94l-2.69-2.689a1.5 1.5 0 0 0-2.12 0l-.88.879.97.97a.75.75 0 1 1-1.06 1.06l-5.16-5.159a1.5 1.5 0 0 0-2.12 0L3 16.061Zm10.125-7.81a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Z",
|
|
904
905
|
};
|