classcard-ui 0.2.473 → 0.2.479

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 (173) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +67 -64
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.css +1 -1
  5. package/dist/classcard-ui.umd.js +67 -64
  6. package/dist/classcard-ui.umd.js.map +1 -1
  7. package/dist/classcard-ui.umd.min.js +1 -1
  8. package/dist/classcard-ui.umd.min.js.map +1 -1
  9. package/package.json +81 -81
  10. package/src/App.vue +16 -16
  11. package/src/components/CAlerts/CAlerts.vue +70 -70
  12. package/src/components/CAlerts/index.js +2 -2
  13. package/src/components/CAnchorTabs/CAnchorTabs.vue +104 -104
  14. package/src/components/CAnchorTabs/index.js +2 -2
  15. package/src/components/CAnchorTag/CAnchorTag.vue +62 -62
  16. package/src/components/CAnchorTag/index.js +2 -2
  17. package/src/components/CAvatar/CAvatar.vue +89 -89
  18. package/src/components/CAvatar/index.js +2 -2
  19. package/src/components/CAvatarGroup/CAvatarGroup.vue +145 -145
  20. package/src/components/CAvatarGroup/index.js +2 -2
  21. package/src/components/CBasicTable/CBasicTable.vue +184 -184
  22. package/src/components/CBasicTable/index.js +2 -2
  23. package/src/components/CBreadcrumbs/CBreadcrumbs.vue +38 -38
  24. package/src/components/CBreadcrumbs/index.js +2 -2
  25. package/src/components/CButton/CButton.vue +150 -150
  26. package/src/components/CButton/index.js +2 -2
  27. package/src/components/CButtonGroup/CButtonGroup.vue +100 -100
  28. package/src/components/CButtonGroup/index.js +2 -2
  29. package/src/components/CButtonIcon/CButtonIcon.vue +108 -108
  30. package/src/components/CButtonIcon/index.js +2 -2
  31. package/src/components/CButtonLink/CButtonLink.vue +39 -39
  32. package/src/components/CButtonLink/index.js +2 -2
  33. package/src/components/CButtonSelect/CButtonSelect.vue +103 -103
  34. package/src/components/CButtonSelect/index.js +2 -2
  35. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +168 -168
  36. package/src/components/CButtonWithDropdown/index.js +2 -2
  37. package/src/components/CCard/CCard.vue +49 -49
  38. package/src/components/CCard/index.js +2 -2
  39. package/src/components/CCheckbox/CCheckbox.vue +70 -70
  40. package/src/components/CCheckbox/index.js +2 -2
  41. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +99 -99
  42. package/src/components/CCollapsibleSection/index.js +2 -2
  43. package/src/components/CColorDots/CColorDots.vue +35 -35
  44. package/src/components/CColorDots/index.js +3 -3
  45. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +120 -118
  46. package/src/components/CConfirmActionModal/index.js +3 -3
  47. package/src/components/CDatepicker/CDatepicker.vue +134 -134
  48. package/src/components/CDatepicker/index.js +2 -2
  49. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  50. package/src/components/CDualSelect/index.js +2 -2
  51. package/src/components/CEditor/CEditor.vue +91 -91
  52. package/src/components/CEditor/index.js +2 -2
  53. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +52 -52
  54. package/src/components/CFormSectionHeading/index.js +2 -2
  55. package/src/components/CGroupedSelect/CGroupedSelect.vue +212 -212
  56. package/src/components/CGroupedSelect/index.js +3 -3
  57. package/src/components/CIcon/CIcon.vue +72 -72
  58. package/src/components/CIcon/index.js +2 -2
  59. package/src/components/CIconDropdown/CIconDropdown.vue +94 -94
  60. package/src/components/CIconDropdown/index.js +2 -2
  61. package/src/components/CInput/CInput.vue +115 -115
  62. package/src/components/CInput/index.js +2 -2
  63. package/src/components/CInputAddon/CInputAddon.vue +199 -199
  64. package/src/components/CInputAddon/index.js +2 -2
  65. package/src/components/CInputEmail/CInputEmail.vue +84 -84
  66. package/src/components/CInputEmail/index.js +2 -2
  67. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  68. package/src/components/CModalHeading/index.js +2 -2
  69. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +39 -39
  70. package/src/components/CModuleHelpLinks/index.js +3 -3
  71. package/src/components/CMultiselect/CMultiselect.vue +313 -311
  72. package/src/components/CMultiselect/index.js +2 -2
  73. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  74. package/src/components/CMultiselectr/index.js +2 -2
  75. package/src/components/CPageHeading/CPageHeading.vue +56 -56
  76. package/src/components/CPageHeading/index.js +2 -2
  77. package/src/components/CPagination/CPagination.vue +202 -202
  78. package/src/components/CPagination/index.js +2 -2
  79. package/src/components/CPhoneNumber/CPhoneNumber.vue +62 -62
  80. package/src/components/CPhoneNumber/index.js +2 -2
  81. package/src/components/CRadio/CRadio.vue +70 -70
  82. package/src/components/CRadio/index.js +2 -2
  83. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  84. package/src/components/CRangeSlider/index.js +2 -2
  85. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +89 -89
  86. package/src/components/CReorderableStackedList/index.js +2 -2
  87. package/src/components/CSelect/CSelect.vue +283 -283
  88. package/src/components/CSelect/index.js +2 -2
  89. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  90. package/src/components/CSmallTimeline/index.js +2 -2
  91. package/src/components/CStackedList/CStackedList.vue +87 -87
  92. package/src/components/CStackedList/index.js +2 -2
  93. package/src/components/CStats/CStats.vue +88 -88
  94. package/src/components/CStats/index.js +2 -2
  95. package/src/components/CSwitch/CSwitch.vue +132 -132
  96. package/src/components/CSwitch/index.js +2 -2
  97. package/src/components/CTable/CTable.vue +495 -495
  98. package/src/components/CTable/index.js +2 -2
  99. package/src/components/CTabs/CTabs.vue +107 -107
  100. package/src/components/CTabs/index.js +2 -2
  101. package/src/components/CTag/CTag.vue +36 -36
  102. package/src/components/CTag/index.js +2 -2
  103. package/src/components/CTextarea/CTextarea.vue +85 -85
  104. package/src/components/CTextarea/index.js +2 -2
  105. package/src/components/CTimeline/CTimeline.vue +237 -237
  106. package/src/components/CTimeline/index.js +2 -2
  107. package/src/components/CUpload/CUpload.vue +196 -196
  108. package/src/components/CUpload/index.js +2 -2
  109. package/src/components/index.js +47 -47
  110. package/src/icons.js +244 -244
  111. package/src/main.js +22 -22
  112. package/src/stories/CAlerts.stories.js +37 -37
  113. package/src/stories/CAnchorTabs.stories.js +29 -29
  114. package/src/stories/CAnchorTag.stories.js +36 -36
  115. package/src/stories/CAvatar.stories.js +38 -38
  116. package/src/stories/CAvatarGroup.stories.js +100 -100
  117. package/src/stories/CBasicTable.stories.js +316 -316
  118. package/src/stories/CBreadcrumbs.stories.js +24 -24
  119. package/src/stories/CButton.stories.js +46 -46
  120. package/src/stories/CButtonGroup.stories.js +33 -33
  121. package/src/stories/CButtonIcon.stories.js +27 -27
  122. package/src/stories/CButtonLink.stories.js +24 -24
  123. package/src/stories/CButtonSelect.stories.js +32 -32
  124. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  125. package/src/stories/CCard.stories.js +30 -30
  126. package/src/stories/CCheckbox.stories.js +29 -29
  127. package/src/stories/CCollapsibleSection.stories.js +28 -28
  128. package/src/stories/CColorDots.stories.js +28 -28
  129. package/src/stories/CConfirmActionModal.stories.js +59 -59
  130. package/src/stories/CDatepicker.stories.js +30 -30
  131. package/src/stories/CDualSelect.stories.js +29 -29
  132. package/src/stories/CEditor.stories.js +30 -30
  133. package/src/stories/CFormSectionHeading.stories.js +34 -34
  134. package/src/stories/CGroupedSelect.stories.js +69 -69
  135. package/src/stories/CIcon.stories.js +26 -26
  136. package/src/stories/CIconDropdown.stories.js +39 -39
  137. package/src/stories/CInput.stories.js +36 -36
  138. package/src/stories/CInputAddon.stories.js +37 -37
  139. package/src/stories/CInputEmail.stories.js +27 -27
  140. package/src/stories/CModalHeading.stories.js +25 -25
  141. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  142. package/src/stories/CMultiselect.stories.js +97 -97
  143. package/src/stories/CMultiselectr.stories.js +23 -23
  144. package/src/stories/CPageHeading.stories.js +32 -32
  145. package/src/stories/CPagination.stories.js +30 -30
  146. package/src/stories/CPhoneNumber.stories.js +29 -29
  147. package/src/stories/CRadio.stories.js +36 -36
  148. package/src/stories/CRangeSlider.stories.js +23 -23
  149. package/src/stories/CReorderableStackedList.stories.js +23 -23
  150. package/src/stories/CSelect.stories.js +50 -50
  151. package/src/stories/CSmallTimeline.stories.js +26 -26
  152. package/src/stories/CStackedList.stories.js +37 -37
  153. package/src/stories/CStats.stories.js +33 -33
  154. package/src/stories/CSwitch.stories.js +28 -28
  155. package/src/stories/CTable.stories.js +77 -77
  156. package/src/stories/CTabs.stories.js +29 -29
  157. package/src/stories/CTag.stories.js +23 -23
  158. package/src/stories/CTextarea.stories.js +32 -32
  159. package/src/stories/CTimeline.stories.js +26 -26
  160. package/src/stories/CUpload.stories.js +36 -36
  161. package/src/stories/Introduction.stories.mdx +207 -207
  162. package/src/stories/Page.vue +88 -88
  163. package/src/stories/assets/code-brackets.svg +0 -0
  164. package/src/stories/assets/colors.svg +0 -0
  165. package/src/stories/assets/comments.svg +0 -0
  166. package/src/stories/assets/direction.svg +0 -0
  167. package/src/stories/assets/flow.svg +0 -0
  168. package/src/stories/assets/plugin.svg +0 -0
  169. package/src/stories/assets/repo.svg +0 -0
  170. package/src/stories/assets/stackalt.svg +0 -0
  171. package/src/stories/header.css +26 -26
  172. package/src/stories/page.css +69 -69
  173. package/src/stories/utils.css +17 -17
@@ -1,168 +1,168 @@
1
- <template>
2
- <div>
3
- <span class="relative inline-flex shadow-sm rounded-md">
4
- <button
5
- :class="classes"
6
- :type="type"
7
- @click="handleButtonClick"
8
- class="
9
- relative
10
- inline-flex
11
- items-center
12
- px-4
13
- py-2
14
- rounded-l-md
15
- text-sm
16
- font-medium
17
- focus:z-10
18
- focus:outline-none
19
- focus:ring-1
20
- "
21
- >
22
- {{ selectedValue ? selectedValue : label }}
23
- </button>
24
- <span class="-ml-px relative block">
25
- <button
26
- @click="toggleDropdown = !toggleDropdown"
27
- @blur="close()"
28
- :type="type"
29
- :class="classes"
30
- class="
31
- relative
32
- inline-flex
33
- items-center
34
- px-2
35
- py-2
36
- rounded-r-md
37
- text-sm
38
- font-medium
39
- t
40
- focus:z-10
41
- focus:outline-none
42
- focus:ring-1
43
- "
44
- >
45
- <span class="sr-only">Open options</span>
46
- <c-icon name="chevron-down" type="solid" class="h-5 w-5"></c-icon>
47
- </button>
48
- <div
49
- v-if="toggleDropdown"
50
- :class="dropdownPositionClass"
51
- class="
52
- origin-top-right
53
- absolute
54
- right-0
55
- z-10
56
- mt-2
57
- w-56
58
- rounded-md
59
- shadow-lg
60
- bg-white
61
- ring-1 ring-gray-900 ring-opacity-5
62
- "
63
- >
64
- <div
65
- class="py-1"
66
- role="menu"
67
- aria-orientation="vertical"
68
- aria-labelledby="option-menu"
69
- >
70
- <li
71
- v-for="item in items"
72
- v-bind:key="item.items"
73
- @mousedown="selectOption($event, item.value)"
74
- class="
75
- block
76
- px-4
77
- py-2
78
- text-sm text-left text-gray-700
79
- hover:bg-gray-100
80
- hover:text-gray-900
81
- cursor-pointer
82
- "
83
- role="menuitem"
84
- >
85
- {{ item.text }}
86
- </li>
87
- </div>
88
- </div>
89
- </span>
90
- </span>
91
- </div>
92
- </template>
93
-
94
- <script>
95
- import CIcon from "../CIcon/CIcon.vue";
96
- export default {
97
- name: "CButtonWithDropdown",
98
- components: { CIcon },
99
- props: {
100
- label: {
101
- type: String,
102
- required: true,
103
- },
104
- type: {
105
- type: String,
106
- default: "secondary",
107
- },
108
- value: {
109
- type: String,
110
- },
111
- items: {
112
- type: Array,
113
- required: true,
114
- },
115
- dropdownPositionClass: {
116
- type: String,
117
- },
118
- },
119
- data() {
120
- return {
121
- toggleDropdown: false,
122
- isSelected: false,
123
- selectedValue: this.value,
124
- };
125
- },
126
-
127
- computed: {
128
- classes() {
129
- return {
130
- "border text-white hover:bg-indigo-800 bg-indigo-700 focus:ring-indigo-600":
131
- this.type == "primary",
132
- "border text-gray-700 border-gray-300 hover:bg-gray-50 focus:ring-indigo-600":
133
- this.type == "secondary",
134
- "border text-white hover:bg-green-800 bg-green-700 focus:ring-green-600":
135
- this.type == "success",
136
- "border text-white hover:bg-red-800 bg-red-700 focus:ring-red-600":
137
- this.type == "danger",
138
- "border border-green-800 bg-green-100 text-green-800 hover:bg-green-200 focus:ring-green-200":
139
- this.type == "light-green",
140
- "border border-red-800 bg-red-100 text-red-800 hover:bg-red-200 focus:ring-red-200":
141
- this.type == "light-red",
142
- "cursor-default pointer-events-none": this.isLoading,
143
- };
144
- },
145
- },
146
- methods: {
147
- selectOption(event, value) {
148
- this.selectedValue = event.target.innerText;
149
- this.$emit("onSelectOption", value);
150
- this.toggleDropdown = false;
151
- this.isSelected = true;
152
- },
153
- close() {
154
- this.toggleDropdown = false;
155
- },
156
- handleButtonClick() {
157
- this.$emit("action", this.selectedValue);
158
- },
159
- },
160
- watch: {
161
- value() {
162
- this.selectedValue = this.value;
163
- },
164
- },
165
- };
166
- </script>
167
-
168
- <style></style>
1
+ <template>
2
+ <div>
3
+ <span class="relative inline-flex shadow-sm rounded-md">
4
+ <button
5
+ :class="classes"
6
+ :type="type"
7
+ @click="handleButtonClick"
8
+ class="
9
+ relative
10
+ inline-flex
11
+ items-center
12
+ px-4
13
+ py-2
14
+ rounded-l-md
15
+ text-sm
16
+ font-medium
17
+ focus:z-10
18
+ focus:outline-none
19
+ focus:ring-1
20
+ "
21
+ >
22
+ {{ selectedValue ? selectedValue : label }}
23
+ </button>
24
+ <span class="-ml-px relative block">
25
+ <button
26
+ @click="toggleDropdown = !toggleDropdown"
27
+ @blur="close()"
28
+ :type="type"
29
+ :class="classes"
30
+ class="
31
+ relative
32
+ inline-flex
33
+ items-center
34
+ px-2
35
+ py-2
36
+ rounded-r-md
37
+ text-sm
38
+ font-medium
39
+ t
40
+ focus:z-10
41
+ focus:outline-none
42
+ focus:ring-1
43
+ "
44
+ >
45
+ <span class="sr-only">Open options</span>
46
+ <c-icon name="chevron-down" type="solid" class="h-5 w-5"></c-icon>
47
+ </button>
48
+ <div
49
+ v-if="toggleDropdown"
50
+ :class="dropdownPositionClass"
51
+ class="
52
+ origin-top-right
53
+ absolute
54
+ right-0
55
+ z-10
56
+ mt-2
57
+ w-56
58
+ rounded-md
59
+ shadow-lg
60
+ bg-white
61
+ ring-1 ring-gray-900 ring-opacity-5
62
+ "
63
+ >
64
+ <div
65
+ class="py-1"
66
+ role="menu"
67
+ aria-orientation="vertical"
68
+ aria-labelledby="option-menu"
69
+ >
70
+ <li
71
+ v-for="item in items"
72
+ v-bind:key="item.items"
73
+ @mousedown="selectOption($event, item.value)"
74
+ class="
75
+ block
76
+ px-4
77
+ py-2
78
+ text-sm text-left text-gray-700
79
+ hover:bg-gray-100
80
+ hover:text-gray-900
81
+ cursor-pointer
82
+ "
83
+ role="menuitem"
84
+ >
85
+ {{ item.text }}
86
+ </li>
87
+ </div>
88
+ </div>
89
+ </span>
90
+ </span>
91
+ </div>
92
+ </template>
93
+
94
+ <script>
95
+ import CIcon from "../CIcon/CIcon.vue";
96
+ export default {
97
+ name: "CButtonWithDropdown",
98
+ components: { CIcon },
99
+ props: {
100
+ label: {
101
+ type: String,
102
+ required: true,
103
+ },
104
+ type: {
105
+ type: String,
106
+ default: "secondary",
107
+ },
108
+ value: {
109
+ type: String,
110
+ },
111
+ items: {
112
+ type: Array,
113
+ required: true,
114
+ },
115
+ dropdownPositionClass: {
116
+ type: String,
117
+ },
118
+ },
119
+ data() {
120
+ return {
121
+ toggleDropdown: false,
122
+ isSelected: false,
123
+ selectedValue: this.value,
124
+ };
125
+ },
126
+
127
+ computed: {
128
+ classes() {
129
+ return {
130
+ "border text-white hover:bg-indigo-800 bg-indigo-700 focus:ring-indigo-600":
131
+ this.type == "primary",
132
+ "border text-gray-700 border-gray-300 hover:bg-gray-50 focus:ring-indigo-600":
133
+ this.type == "secondary",
134
+ "border text-white hover:bg-green-800 bg-green-700 focus:ring-green-600":
135
+ this.type == "success",
136
+ "border text-white hover:bg-red-800 bg-red-700 focus:ring-red-600":
137
+ this.type == "danger",
138
+ "border border-green-800 bg-green-100 text-green-800 hover:bg-green-200 focus:ring-green-200":
139
+ this.type == "light-green",
140
+ "border border-red-800 bg-red-100 text-red-800 hover:bg-red-200 focus:ring-red-200":
141
+ this.type == "light-red",
142
+ "cursor-default pointer-events-none": this.isLoading,
143
+ };
144
+ },
145
+ },
146
+ methods: {
147
+ selectOption(event, value) {
148
+ this.selectedValue = event.target.innerText;
149
+ this.$emit("onSelectOption", value);
150
+ this.toggleDropdown = false;
151
+ this.isSelected = true;
152
+ },
153
+ close() {
154
+ this.toggleDropdown = false;
155
+ },
156
+ handleButtonClick() {
157
+ this.$emit("action", this.selectedValue);
158
+ },
159
+ },
160
+ watch: {
161
+ value() {
162
+ this.selectedValue = this.value;
163
+ },
164
+ },
165
+ };
166
+ </script>
167
+
168
+ <style></style>
@@ -1,3 +1,3 @@
1
- import CButtonWithDropdown from './CButtonWithDropdown.vue'
2
-
1
+ import CButtonWithDropdown from './CButtonWithDropdown.vue'
2
+
3
3
  export default CButtonWithDropdown
@@ -1,49 +1,49 @@
1
- <template>
2
- <div
3
- class="relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400 focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-indigo-500"
4
- >
5
- <div class="flex-shrink-0 p-2 rounded-md bg-gray-100">
6
- <c-avatar
7
- :image="image.image"
8
- :rounded="image.rounded"
9
- :size="image.size"
10
- imageClasses="object-contain"
11
- ></c-avatar>
12
- </div>
13
- <div class="flex-1 min-w-0">
14
- <a href="#" class="focus:outline-none">
15
- <span class="absolute inset-0" aria-hidden="true"></span>
16
- <div class="flex">
17
- <p class="text-sm text-gray-900">
18
- {{ name }}
19
- </p>
20
- <slot></slot>
21
- </div>
22
- <p class="text-sm text-gray-500 truncate">
23
- {{ description }}
24
- </p>
25
- </a>
26
- </div>
27
- </div>
28
- </template>
29
-
30
- <script>
31
- import CAvatar from "../CAvatar/CAvatar.vue";
32
- export default {
33
- name: "CCard",
34
- components: { CAvatar },
35
- props: {
36
- image: {
37
- type: Object,
38
- },
39
- name: {
40
- type: String,
41
- },
42
- description: {
43
- type: String,
44
- },
45
- },
46
- };
47
- </script>
48
-
49
- <style></style>
1
+ <template>
2
+ <div
3
+ class="relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400 focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-indigo-500"
4
+ >
5
+ <div class="flex-shrink-0 p-2 rounded-md bg-gray-100">
6
+ <c-avatar
7
+ :image="image.image"
8
+ :rounded="image.rounded"
9
+ :size="image.size"
10
+ imageClasses="object-contain"
11
+ ></c-avatar>
12
+ </div>
13
+ <div class="flex-1 min-w-0">
14
+ <a href="#" class="focus:outline-none">
15
+ <span class="absolute inset-0" aria-hidden="true"></span>
16
+ <div class="flex">
17
+ <p class="text-sm text-gray-900">
18
+ {{ name }}
19
+ </p>
20
+ <slot></slot>
21
+ </div>
22
+ <p class="text-sm text-gray-500 truncate">
23
+ {{ description }}
24
+ </p>
25
+ </a>
26
+ </div>
27
+ </div>
28
+ </template>
29
+
30
+ <script>
31
+ import CAvatar from "../CAvatar/CAvatar.vue";
32
+ export default {
33
+ name: "CCard",
34
+ components: { CAvatar },
35
+ props: {
36
+ image: {
37
+ type: Object,
38
+ },
39
+ name: {
40
+ type: String,
41
+ },
42
+ description: {
43
+ type: String,
44
+ },
45
+ },
46
+ };
47
+ </script>
48
+
49
+ <style></style>
@@ -1,3 +1,3 @@
1
- import CCard from './CCard.vue'
2
-
1
+ import CCard from './CCard.vue'
2
+
3
3
  export default CCard
@@ -1,70 +1,70 @@
1
- <template>
2
- <div>
3
- <div class="relative flex items-start">
4
- <div class="flex h-5 items-center">
5
- <input
6
- type="checkbox"
7
- v-model="checkedValue"
8
- class="h-4 w-4 cursor-pointer rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 disabled:opacity-50"
9
- @click="changeValue"
10
- :disabled="isDisabled"
11
- />
12
- </div>
13
- <div
14
- class="ml-3 cursor-pointer text-sm"
15
- :class="isDisabled ? 'pointer-events-none' : ''"
16
- @click="changeValue"
17
- >
18
- <label
19
- :class="`cursor-pointer font-medium text-gray-900 ${
20
- isDisabled ? 'opacity-50' : ''
21
- }`"
22
- >{{ label }}</label
23
- >
24
- <p
25
- :class="`mt-0.5 cursor-pointer text-gray-500 ${
26
- isDisabled ? 'opacity-50' : ''
27
- }`"
28
- >
29
- {{ description }}
30
- </p>
31
- </div>
32
- </div>
33
- </div>
34
- </template>
35
- <script>
36
- export default {
37
- name: "CCheckbox",
38
- props: {
39
- label: { type: String },
40
- description: { type: String },
41
- value: [Boolean, Number],
42
- isDisabled: {
43
- type: Boolean,
44
- },
45
- },
46
- data() {
47
- return {
48
- checkedValue: this.value == 0 ? false : true,
49
- };
50
- },
51
- methods: {
52
- changeValue() {
53
- let selectedValue = 0;
54
- if (this.checkedValue) {
55
- this.checkedValue = false;
56
- selectedValue = 0;
57
- } else if (!this.checkedValue) {
58
- this.checkedValue = true;
59
- selectedValue = 1;
60
- }
61
- this.$emit("onChange", selectedValue);
62
- },
63
- },
64
- watch: {
65
- value() {
66
- this.checkedValue = this.value;
67
- },
68
- },
69
- };
70
- </script>
1
+ <template>
2
+ <div>
3
+ <div class="relative flex items-start">
4
+ <div class="flex h-5 items-center">
5
+ <input
6
+ type="checkbox"
7
+ v-model="checkedValue"
8
+ class="h-4 w-4 cursor-pointer rounded border-gray-300 text-indigo-600 focus:ring-indigo-500 disabled:opacity-50"
9
+ @click="changeValue"
10
+ :disabled="isDisabled"
11
+ />
12
+ </div>
13
+ <div
14
+ class="ml-3 cursor-pointer text-sm"
15
+ :class="isDisabled ? 'pointer-events-none' : ''"
16
+ @click="changeValue"
17
+ >
18
+ <label
19
+ :class="`cursor-pointer font-medium text-gray-900 ${
20
+ isDisabled ? 'opacity-50' : ''
21
+ }`"
22
+ >{{ label }}</label
23
+ >
24
+ <p
25
+ :class="`mt-0.5 cursor-pointer text-gray-500 ${
26
+ isDisabled ? 'opacity-50' : ''
27
+ }`"
28
+ >
29
+ {{ description }}
30
+ </p>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </template>
35
+ <script>
36
+ export default {
37
+ name: "CCheckbox",
38
+ props: {
39
+ label: { type: String },
40
+ description: { type: String },
41
+ value: [Boolean, Number],
42
+ isDisabled: {
43
+ type: Boolean,
44
+ },
45
+ },
46
+ data() {
47
+ return {
48
+ checkedValue: this.value == 0 ? false : true,
49
+ };
50
+ },
51
+ methods: {
52
+ changeValue() {
53
+ let selectedValue = 0;
54
+ if (this.checkedValue) {
55
+ this.checkedValue = false;
56
+ selectedValue = 0;
57
+ } else if (!this.checkedValue) {
58
+ this.checkedValue = true;
59
+ selectedValue = 1;
60
+ }
61
+ this.$emit("onChange", selectedValue);
62
+ },
63
+ },
64
+ watch: {
65
+ value() {
66
+ this.checkedValue = this.value;
67
+ },
68
+ },
69
+ };
70
+ </script>
@@ -1,3 +1,3 @@
1
- import CCheckbox from './CCheckbox.vue'
2
-
1
+ import CCheckbox from './CCheckbox.vue'
2
+
3
3
  export default CCheckbox