classcard-ui 0.2.445 → 0.2.448

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 (172) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +58 -79
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.umd.js +58 -79
  5. package/dist/classcard-ui.umd.js.map +1 -1
  6. package/dist/classcard-ui.umd.min.js +1 -1
  7. package/dist/classcard-ui.umd.min.js.map +1 -1
  8. package/package.json +81 -81
  9. package/src/App.vue +16 -16
  10. package/src/components/CAlerts/CAlerts.vue +70 -70
  11. package/src/components/CAlerts/index.js +2 -2
  12. package/src/components/CAnchorTabs/CAnchorTabs.vue +104 -104
  13. package/src/components/CAnchorTabs/index.js +2 -2
  14. package/src/components/CAnchorTag/CAnchorTag.vue +62 -62
  15. package/src/components/CAnchorTag/index.js +2 -2
  16. package/src/components/CAvatar/CAvatar.vue +89 -89
  17. package/src/components/CAvatar/index.js +2 -2
  18. package/src/components/CAvatarGroup/CAvatarGroup.vue +145 -145
  19. package/src/components/CAvatarGroup/index.js +2 -2
  20. package/src/components/CBasicTable/CBasicTable.vue +184 -184
  21. package/src/components/CBasicTable/index.js +2 -2
  22. package/src/components/CBreadcrumbs/CBreadcrumbs.vue +38 -38
  23. package/src/components/CBreadcrumbs/index.js +2 -2
  24. package/src/components/CButton/CButton.vue +148 -148
  25. package/src/components/CButton/index.js +2 -2
  26. package/src/components/CButtonGroup/CButtonGroup.vue +100 -100
  27. package/src/components/CButtonGroup/index.js +2 -2
  28. package/src/components/CButtonIcon/CButtonIcon.vue +108 -108
  29. package/src/components/CButtonIcon/index.js +2 -2
  30. package/src/components/CButtonLink/CButtonLink.vue +39 -39
  31. package/src/components/CButtonLink/index.js +2 -2
  32. package/src/components/CButtonSelect/CButtonSelect.vue +103 -103
  33. package/src/components/CButtonSelect/index.js +2 -2
  34. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +168 -168
  35. package/src/components/CButtonWithDropdown/index.js +2 -2
  36. package/src/components/CCard/CCard.vue +49 -49
  37. package/src/components/CCard/index.js +2 -2
  38. package/src/components/CCheckbox/CCheckbox.vue +70 -70
  39. package/src/components/CCheckbox/index.js +2 -2
  40. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +99 -99
  41. package/src/components/CCollapsibleSection/index.js +2 -2
  42. package/src/components/CColorDots/CColorDots.vue +35 -35
  43. package/src/components/CColorDots/index.js +3 -3
  44. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +118 -118
  45. package/src/components/CConfirmActionModal/index.js +3 -3
  46. package/src/components/CDatepicker/CDatepicker.vue +134 -134
  47. package/src/components/CDatepicker/index.js +2 -2
  48. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  49. package/src/components/CDualSelect/index.js +2 -2
  50. package/src/components/CEditor/CEditor.vue +91 -91
  51. package/src/components/CEditor/index.js +2 -2
  52. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +52 -52
  53. package/src/components/CFormSectionHeading/index.js +2 -2
  54. package/src/components/CGroupedSelect/CGroupedSelect.vue +212 -212
  55. package/src/components/CGroupedSelect/index.js +3 -3
  56. package/src/components/CIcon/CIcon.vue +72 -72
  57. package/src/components/CIcon/index.js +2 -2
  58. package/src/components/CIconDropdown/CIconDropdown.vue +94 -94
  59. package/src/components/CIconDropdown/index.js +2 -2
  60. package/src/components/CInput/CInput.vue +115 -115
  61. package/src/components/CInput/index.js +2 -2
  62. package/src/components/CInputAddon/CInputAddon.vue +199 -199
  63. package/src/components/CInputAddon/index.js +2 -2
  64. package/src/components/CInputEmail/CInputEmail.vue +84 -84
  65. package/src/components/CInputEmail/index.js +2 -2
  66. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  67. package/src/components/CModalHeading/index.js +2 -2
  68. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +39 -39
  69. package/src/components/CModuleHelpLinks/index.js +3 -3
  70. package/src/components/CMultiselect/CMultiselect.vue +318 -318
  71. package/src/components/CMultiselect/index.js +2 -2
  72. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  73. package/src/components/CMultiselectr/index.js +2 -2
  74. package/src/components/CPageHeading/CPageHeading.vue +58 -79
  75. package/src/components/CPageHeading/index.js +2 -2
  76. package/src/components/CPagination/CPagination.vue +202 -202
  77. package/src/components/CPagination/index.js +2 -2
  78. package/src/components/CPhoneNumber/CPhoneNumber.vue +62 -62
  79. package/src/components/CPhoneNumber/index.js +2 -2
  80. package/src/components/CRadio/CRadio.vue +70 -70
  81. package/src/components/CRadio/index.js +2 -2
  82. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  83. package/src/components/CRangeSlider/index.js +2 -2
  84. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +89 -89
  85. package/src/components/CReorderableStackedList/index.js +2 -2
  86. package/src/components/CSelect/CSelect.vue +283 -283
  87. package/src/components/CSelect/index.js +2 -2
  88. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  89. package/src/components/CSmallTimeline/index.js +2 -2
  90. package/src/components/CStackedList/CStackedList.vue +87 -87
  91. package/src/components/CStackedList/index.js +2 -2
  92. package/src/components/CStats/CStats.vue +88 -88
  93. package/src/components/CStats/index.js +2 -2
  94. package/src/components/CSwitch/CSwitch.vue +132 -132
  95. package/src/components/CSwitch/index.js +2 -2
  96. package/src/components/CTable/CTable.vue +490 -490
  97. package/src/components/CTable/index.js +2 -2
  98. package/src/components/CTabs/CTabs.vue +110 -110
  99. package/src/components/CTabs/index.js +2 -2
  100. package/src/components/CTag/CTag.vue +36 -36
  101. package/src/components/CTag/index.js +2 -2
  102. package/src/components/CTextarea/CTextarea.vue +85 -85
  103. package/src/components/CTextarea/index.js +2 -2
  104. package/src/components/CTimeline/CTimeline.vue +237 -237
  105. package/src/components/CTimeline/index.js +2 -2
  106. package/src/components/CUpload/CUpload.vue +194 -194
  107. package/src/components/CUpload/index.js +2 -2
  108. package/src/components/index.js +47 -47
  109. package/src/icons.js +231 -231
  110. package/src/main.js +22 -22
  111. package/src/stories/CAlerts.stories.js +37 -37
  112. package/src/stories/CAnchorTabs.stories.js +29 -29
  113. package/src/stories/CAnchorTag.stories.js +36 -36
  114. package/src/stories/CAvatar.stories.js +38 -38
  115. package/src/stories/CAvatarGroup.stories.js +100 -100
  116. package/src/stories/CBasicTable.stories.js +316 -316
  117. package/src/stories/CBreadcrumbs.stories.js +24 -24
  118. package/src/stories/CButton.stories.js +46 -46
  119. package/src/stories/CButtonGroup.stories.js +33 -33
  120. package/src/stories/CButtonIcon.stories.js +27 -27
  121. package/src/stories/CButtonLink.stories.js +24 -24
  122. package/src/stories/CButtonSelect.stories.js +32 -32
  123. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  124. package/src/stories/CCard.stories.js +30 -30
  125. package/src/stories/CCheckbox.stories.js +29 -29
  126. package/src/stories/CCollapsibleSection.stories.js +28 -28
  127. package/src/stories/CColorDots.stories.js +28 -28
  128. package/src/stories/CConfirmActionModal.stories.js +59 -59
  129. package/src/stories/CDatepicker.stories.js +30 -30
  130. package/src/stories/CDualSelect.stories.js +29 -29
  131. package/src/stories/CEditor.stories.js +30 -30
  132. package/src/stories/CFormSectionHeading.stories.js +34 -34
  133. package/src/stories/CGroupedSelect.stories.js +69 -69
  134. package/src/stories/CIcon.stories.js +26 -26
  135. package/src/stories/CIconDropdown.stories.js +39 -39
  136. package/src/stories/CInput.stories.js +36 -36
  137. package/src/stories/CInputAddon.stories.js +37 -37
  138. package/src/stories/CInputEmail.stories.js +27 -27
  139. package/src/stories/CModalHeading.stories.js +25 -25
  140. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  141. package/src/stories/CMultiselect.stories.js +97 -97
  142. package/src/stories/CMultiselectr.stories.js +23 -23
  143. package/src/stories/CPageHeading.stories.js +32 -32
  144. package/src/stories/CPagination.stories.js +30 -30
  145. package/src/stories/CPhoneNumber.stories.js +29 -29
  146. package/src/stories/CRadio.stories.js +36 -36
  147. package/src/stories/CRangeSlider.stories.js +23 -23
  148. package/src/stories/CReorderableStackedList.stories.js +23 -23
  149. package/src/stories/CSelect.stories.js +50 -50
  150. package/src/stories/CSmallTimeline.stories.js +26 -26
  151. package/src/stories/CStackedList.stories.js +37 -37
  152. package/src/stories/CStats.stories.js +33 -33
  153. package/src/stories/CSwitch.stories.js +28 -28
  154. package/src/stories/CTable.stories.js +77 -77
  155. package/src/stories/CTabs.stories.js +29 -29
  156. package/src/stories/CTag.stories.js +23 -23
  157. package/src/stories/CTextarea.stories.js +32 -32
  158. package/src/stories/CTimeline.stories.js +26 -26
  159. package/src/stories/CUpload.stories.js +36 -36
  160. package/src/stories/Introduction.stories.mdx +207 -207
  161. package/src/stories/Page.vue +88 -88
  162. package/src/stories/assets/code-brackets.svg +0 -0
  163. package/src/stories/assets/colors.svg +0 -0
  164. package/src/stories/assets/comments.svg +0 -0
  165. package/src/stories/assets/direction.svg +0 -0
  166. package/src/stories/assets/flow.svg +0 -0
  167. package/src/stories/assets/plugin.svg +0 -0
  168. package/src/stories/assets/repo.svg +0 -0
  169. package/src/stories/assets/stackalt.svg +0 -0
  170. package/src/stories/header.css +26 -26
  171. package/src/stories/page.css +69 -69
  172. 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