classcard-ui 0.2.1475 → 0.2.1476

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 (209) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +86 -85
  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 +86 -85
  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 +83 -83
  10. package/src/App.vue +16 -16
  11. package/src/colorConfig.js +52 -52
  12. package/src/components/CAlertModal/CAlertModal.vue +179 -179
  13. package/src/components/CAlertModal/index.js +3 -3
  14. package/src/components/CAlerts/CAlerts.vue +114 -114
  15. package/src/components/CAlerts/index.js +2 -2
  16. package/src/components/CAnchorTabs/CAnchorTabs.vue +100 -100
  17. package/src/components/CAnchorTabs/index.js +2 -2
  18. package/src/components/CAnchorTag/CAnchorTag.vue +84 -84
  19. package/src/components/CAnchorTag/index.js +2 -2
  20. package/src/components/CAvatar/CAvatar.vue +230 -230
  21. package/src/components/CAvatar/index.js +2 -2
  22. package/src/components/CAvatarGroup/CAvatarGroup.vue +213 -213
  23. package/src/components/CAvatarGroup/index.js +2 -2
  24. package/src/components/CBasicTable/CBasicTable.vue +184 -184
  25. package/src/components/CBasicTable/index.js +2 -2
  26. package/src/components/CBreadcrumbs/CBreadcrumbs.vue +38 -38
  27. package/src/components/CBreadcrumbs/index.js +2 -2
  28. package/src/components/CButton/CButton.vue +239 -239
  29. package/src/components/CButton/index.js +2 -2
  30. package/src/components/CButtonGroup/CButtonGroup.vue +155 -155
  31. package/src/components/CButtonGroup/index.js +2 -2
  32. package/src/components/CButtonIcon/CButtonIcon.vue +166 -166
  33. package/src/components/CButtonIcon/index.js +2 -2
  34. package/src/components/CButtonLink/CButtonLink.vue +43 -43
  35. package/src/components/CButtonLink/index.js +2 -2
  36. package/src/components/CButtonSelect/CButtonSelect.vue +186 -186
  37. package/src/components/CButtonSelect/index.js +2 -2
  38. package/src/components/CButtonSelectBorder/CButtonSelectBorder.vue +265 -265
  39. package/src/components/CButtonSelectBorder/index.js +3 -3
  40. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +152 -152
  41. package/src/components/CButtonWithDropdown/index.js +2 -2
  42. package/src/components/CCalendar/CCalendar.vue +443 -443
  43. package/src/components/CCalendar/index.js +3 -3
  44. package/src/components/CCard/CCard.vue +53 -53
  45. package/src/components/CCard/index.js +2 -2
  46. package/src/components/CCheckbox/CCheckbox.vue +200 -200
  47. package/src/components/CCheckbox/index.js +2 -2
  48. package/src/components/CCircularButton/CCircularButton.vue +57 -57
  49. package/src/components/CCircularButton/index.js +2 -2
  50. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +121 -121
  51. package/src/components/CCollapsibleSection/index.js +2 -2
  52. package/src/components/CColorDots/CColorDots.vue +52 -52
  53. package/src/components/CColorDots/index.js +3 -3
  54. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +221 -221
  55. package/src/components/CConfirmActionModal/index.js +3 -3
  56. package/src/components/CDatepicker/CDatepicker.vue +235 -235
  57. package/src/components/CDatepicker/index.js +2 -2
  58. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  59. package/src/components/CDualSelect/index.js +2 -2
  60. package/src/components/CEditor/CEditor.vue +114 -114
  61. package/src/components/CEditor/index.js +2 -2
  62. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +76 -76
  63. package/src/components/CFormSectionHeading/index.js +2 -2
  64. package/src/components/CGroupedFilterDropdown/CGroupedFilterDropdown.vue +263 -263
  65. package/src/components/CGroupedFilterDropdown/index.js +2 -2
  66. package/src/components/CGroupedSelect/CGroupedSelect.vue +366 -366
  67. package/src/components/CGroupedSelect/index.js +3 -3
  68. package/src/components/CIcon/CIcon.vue +112 -112
  69. package/src/components/CIcon/index.js +2 -2
  70. package/src/components/CIconDropdown/CIconDropdown.vue +206 -206
  71. package/src/components/CIconDropdown/index.js +2 -2
  72. package/src/components/CIconSelect/CIconSelect.vue +182 -182
  73. package/src/components/CIconSelect/index.js +3 -3
  74. package/src/components/CInput/CInput.vue +173 -173
  75. package/src/components/CInput/index.js +2 -2
  76. package/src/components/CInputAddon/CInputAddon.vue +297 -297
  77. package/src/components/CInputAddon/index.js +2 -2
  78. package/src/components/CInputEmail/CInputEmail.vue +107 -107
  79. package/src/components/CInputEmail/index.js +2 -2
  80. package/src/components/CInsetTabs/CInsetTabs.vue +134 -134
  81. package/src/components/CInsetTabs/index.js +3 -3
  82. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  83. package/src/components/CModalHeading/index.js +2 -2
  84. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +88 -88
  85. package/src/components/CModuleHelpLinks/index.js +3 -3
  86. package/src/components/CMultiselect/CMultiselect.vue +1170 -1170
  87. package/src/components/CMultiselect/index.js +2 -2
  88. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  89. package/src/components/CMultiselectr/index.js +2 -2
  90. package/src/components/CPageHeading/CPageHeading.vue +83 -83
  91. package/src/components/CPageHeading/index.js +2 -2
  92. package/src/components/CPagination/CPagination.vue +239 -239
  93. package/src/components/CPagination/index.js +2 -2
  94. package/src/components/CPhoneNumber/CPhoneNumber.vue +213 -213
  95. package/src/components/CPhoneNumber/index.js +2 -2
  96. package/src/components/CProgress/CProgress.vue +91 -91
  97. package/src/components/CProgress/index.js +2 -2
  98. package/src/components/CRadio/CRadio.vue +197 -197
  99. package/src/components/CRadio/index.js +2 -2
  100. package/src/components/CRadioGroup/CRadioGroup.vue +96 -96
  101. package/src/components/CRadioGroup/index.js +2 -2
  102. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  103. package/src/components/CRangeSlider/index.js +2 -2
  104. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +94 -94
  105. package/src/components/CReorderableStackedList/index.js +2 -2
  106. package/src/components/CSelect/CSelect.vue +1210 -1210
  107. package/src/components/CSelect/index.js +2 -2
  108. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  109. package/src/components/CSmallTimeline/index.js +2 -2
  110. package/src/components/CStackedList/CStackedList.vue +162 -162
  111. package/src/components/CStackedList/index.js +2 -2
  112. package/src/components/CStats/CStats.vue +157 -157
  113. package/src/components/CStats/index.js +2 -2
  114. package/src/components/CSwitch/CSwitch.vue +200 -200
  115. package/src/components/CSwitch/index.js +2 -2
  116. package/src/components/CTabLazy/CTabLazy.vue +83 -83
  117. package/src/components/CTabLazy/index.js +2 -2
  118. package/src/components/CTable/CTable.vue +1114 -1114
  119. package/src/components/CTable/index.js +2 -2
  120. package/src/components/CTabs/CTabs.vue +250 -250
  121. package/src/components/CTabs/index.js +2 -2
  122. package/src/components/CTag/CTag.vue +109 -109
  123. package/src/components/CTag/index.js +2 -2
  124. package/src/components/CTextarea/CTextarea.vue +118 -118
  125. package/src/components/CTextarea/index.js +2 -2
  126. package/src/components/CTimeline/CTimeline.vue +237 -237
  127. package/src/components/CTimeline/index.js +2 -2
  128. package/src/components/CToolTip/CToolTip.vue +108 -108
  129. package/src/components/CToolTip/index.js +3 -3
  130. package/src/components/CUpload/CUpload.vue +331 -331
  131. package/src/components/CUpload/index.js +2 -2
  132. package/src/components/NumberAnimator.vue +112 -112
  133. package/src/components/index.js +57 -57
  134. package/src/helper.js +8 -8
  135. package/src/icons.js +831 -830
  136. package/src/main.js +22 -22
  137. package/src/stories/CAlertModal.stories.js +30 -30
  138. package/src/stories/CAlerts.stories.js +39 -39
  139. package/src/stories/CAnchorTabs.stories.js +29 -29
  140. package/src/stories/CAnchorTag.stories.js +38 -38
  141. package/src/stories/CAvatar.stories.js +38 -38
  142. package/src/stories/CAvatarGroup.stories.js +136 -136
  143. package/src/stories/CBasicTable.stories.js +316 -316
  144. package/src/stories/CBreadcrumbs.stories.js +24 -24
  145. package/src/stories/CButton.stories.js +49 -49
  146. package/src/stories/CButtonGroup.stories.js +43 -43
  147. package/src/stories/CButtonIcon.stories.js +27 -27
  148. package/src/stories/CButtonLink.stories.js +24 -24
  149. package/src/stories/CButtonSelect.stories.js +44 -44
  150. package/src/stories/CButtonSelectBorder.stories.js +56 -56
  151. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  152. package/src/stories/CCalendar.stories.js +16 -16
  153. package/src/stories/CCard.stories.js +30 -30
  154. package/src/stories/CCheckbox.stories.js +38 -38
  155. package/src/stories/CCircularButton.stories.js +29 -29
  156. package/src/stories/CCollapsibleSection.stories.js +29 -29
  157. package/src/stories/CColorDots.stories.js +37 -37
  158. package/src/stories/CConfirmActionModal.stories.js +60 -60
  159. package/src/stories/CDatepicker.stories.js +31 -31
  160. package/src/stories/CDualSelect.stories.js +29 -29
  161. package/src/stories/CEditor.stories.js +30 -30
  162. package/src/stories/CFormSectionHeading.stories.js +37 -37
  163. package/src/stories/CGroupedFilterDropdown.stories.js +176 -176
  164. package/src/stories/CGroupedSelect.stories.js +103 -103
  165. package/src/stories/CIcon.stories.js +31 -31
  166. package/src/stories/CIconDropdown.stories.js +52 -52
  167. package/src/stories/CIconSelect.stories.js +45 -45
  168. package/src/stories/CInput.stories.js +36 -36
  169. package/src/stories/CInputAddon.stories.js +37 -37
  170. package/src/stories/CInputEmail.stories.js +27 -27
  171. package/src/stories/CInsetTabs.stories.js +48 -48
  172. package/src/stories/CModalHeading.stories.js +25 -25
  173. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  174. package/src/stories/CMultiselect.stories.js +136 -136
  175. package/src/stories/CMultiselectr.stories.js +23 -23
  176. package/src/stories/CPageHeading.stories.js +32 -32
  177. package/src/stories/CPagination.stories.js +30 -30
  178. package/src/stories/CPhoneNumber.stories.js +37 -37
  179. package/src/stories/CProgress.stories.js +23 -23
  180. package/src/stories/CRadio.stories.js +44 -44
  181. package/src/stories/CRadioGroup.stories.js +51 -51
  182. package/src/stories/CRangeSlider.stories.js +23 -23
  183. package/src/stories/CReorderableStackedList.stories.js +23 -23
  184. package/src/stories/CSelect.stories.js +157 -157
  185. package/src/stories/CSmallTimeline.stories.js +26 -26
  186. package/src/stories/CStackedList.stories.js +37 -37
  187. package/src/stories/CStats.stories.js +53 -53
  188. package/src/stories/CSwitch.stories.js +28 -28
  189. package/src/stories/CTabLazy.stories.js +42 -42
  190. package/src/stories/CTable.stories.js +203 -203
  191. package/src/stories/CTabs.stories.js +36 -36
  192. package/src/stories/CTag.stories.js +37 -37
  193. package/src/stories/CTextarea.stories.js +32 -32
  194. package/src/stories/CTimeline.stories.js +26 -26
  195. package/src/stories/CToolTip.stories.js +27 -27
  196. package/src/stories/CUpload.stories.js +36 -36
  197. package/src/stories/Introduction.stories.mdx +207 -207
  198. package/src/stories/Page.vue +88 -88
  199. package/src/stories/assets/code-brackets.svg +0 -0
  200. package/src/stories/assets/colors.svg +0 -0
  201. package/src/stories/assets/comments.svg +0 -0
  202. package/src/stories/assets/direction.svg +0 -0
  203. package/src/stories/assets/flow.svg +0 -0
  204. package/src/stories/assets/plugin.svg +0 -0
  205. package/src/stories/assets/repo.svg +0 -0
  206. package/src/stories/assets/stackalt.svg +0 -0
  207. package/src/stories/header.css +26 -26
  208. package/src/stories/page.css +69 -69
  209. package/src/stories/utils.css +32 -32
@@ -1,109 +1,109 @@
1
- <template>
2
- <div>
3
- <div
4
- :class="[
5
- colorClasses,
6
- customLineHeight,
7
- tagClasses,
8
- useFlex ? 'flex' : 'inline-flex',
9
- ]"
10
- class="items-center rounded-md px-2.5 py-0.5 text-sm"
11
- >
12
- <span
13
- v-if="dotIcon"
14
- class="mr-1.5 h-1.5 w-1.5 rounded-full"
15
- :class="dotColorClasses"
16
- aria-hidden="true"
17
- ></span>
18
- <c-icon
19
- v-if="icon && iconPosition == 'left'"
20
- :type="icon.type"
21
- :class="icon.class"
22
- :name="icon.name"
23
- :viewBox="icon.viewBox"
24
- ></c-icon>
25
- {{ label }}
26
- <c-icon
27
- v-if="icon && iconPosition == 'right'"
28
- :type="icon.type"
29
- :class="icon.class"
30
- :name="icon.name"
31
- :viewBox="icon.viewBox"
32
- ></c-icon>
33
- </div>
34
- </div>
35
- </template>
36
- <script>
37
- import CIcon from "../CIcon/CIcon.vue";
38
- export default {
39
- name: "CTag",
40
- components: { CIcon },
41
- props: {
42
- label: { type: String },
43
- color: { type: String, default: "green" },
44
- tagClasses: {
45
- type: String,
46
- },
47
- icon: {
48
- type: Object,
49
- },
50
- iconPosition: {
51
- type: String,
52
- default: "left",
53
- },
54
- dotColor: {
55
- type: String,
56
- default: "green",
57
- },
58
- dotIcon: {
59
- type: Boolean,
60
- },
61
- useFlex: {
62
- type: Boolean,
63
- default: false,
64
- },
65
- customLineHeight: {
66
- type: String,
67
- default: "leading-5",
68
- },
69
- },
70
- computed: {
71
- colorClasses() {
72
- return {
73
- "bg-gray-50 text-gray-800 ring-1 ring-inset ring-gray-500/10":
74
- this.color == "gray",
75
- "bg-red-50 text-red-700 ring-1 ring-inset ring-red-600/10":
76
- this.color == "red",
77
- "bg-yellow-50 text-yellow-800 ring-1 ring-inset ring-yellow-600/20":
78
- this.color == "yellow",
79
- "bg-green-50 text-green-700 ring-1 ring-inset ring-green-600/20":
80
- this.color == "green",
81
- "bg-blue-50 text-blue-700 ring-1 ring-inset ring-blue-700/10":
82
- this.color == "blue",
83
- "bg-purple-50 text-purple-700 ring-1 ring-inset ring-purple-700/10":
84
- this.color == "purple",
85
- "bg-pink-50 text-pink-700 ring-1 ring-inset ring-pink-700/10":
86
- this.color == "pink",
87
- "bg-indigo-50 text-indigo-700 ring-1 ring-inset ring-indigo-700/10":
88
- this.color == "indigo",
89
- "bg-orange-50 text-orange-700 ring-1 ring-inset ring-orange-700/10":
90
- this.color == "orange",
91
- "bg-white text-gray-800 ring-1 ring-inset ring-gray-200":
92
- this.color == "white",
93
- };
94
- },
95
- dotColorClasses() {
96
- return {
97
- "bg-gray-500": this.dotColor == "gray",
98
- "bg-red-500": this.dotColor == "red",
99
- "bg-yellow-500": this.dotColor == "yellow",
100
- "bg-green-500": this.dotColor == "green",
101
- "bg-blue-500": this.dotColor == "indigo",
102
- "bg-purple-500": this.dotColor == "purple",
103
- "bg-pink-500": this.dotColor == "pink",
104
- "bg-indigo-500": this.dotColor == "indigo",
105
- };
106
- },
107
- },
108
- };
109
- </script>
1
+ <template>
2
+ <div>
3
+ <div
4
+ :class="[
5
+ colorClasses,
6
+ customLineHeight,
7
+ tagClasses,
8
+ useFlex ? 'flex' : 'inline-flex',
9
+ ]"
10
+ class="items-center rounded-md px-2.5 py-0.5 text-sm"
11
+ >
12
+ <span
13
+ v-if="dotIcon"
14
+ class="mr-1.5 h-1.5 w-1.5 rounded-full"
15
+ :class="dotColorClasses"
16
+ aria-hidden="true"
17
+ ></span>
18
+ <c-icon
19
+ v-if="icon && iconPosition == 'left'"
20
+ :type="icon.type"
21
+ :class="icon.class"
22
+ :name="icon.name"
23
+ :viewBox="icon.viewBox"
24
+ ></c-icon>
25
+ {{ label }}
26
+ <c-icon
27
+ v-if="icon && iconPosition == 'right'"
28
+ :type="icon.type"
29
+ :class="icon.class"
30
+ :name="icon.name"
31
+ :viewBox="icon.viewBox"
32
+ ></c-icon>
33
+ </div>
34
+ </div>
35
+ </template>
36
+ <script>
37
+ import CIcon from "../CIcon/CIcon.vue";
38
+ export default {
39
+ name: "CTag",
40
+ components: { CIcon },
41
+ props: {
42
+ label: { type: String },
43
+ color: { type: String, default: "green" },
44
+ tagClasses: {
45
+ type: String,
46
+ },
47
+ icon: {
48
+ type: Object,
49
+ },
50
+ iconPosition: {
51
+ type: String,
52
+ default: "left",
53
+ },
54
+ dotColor: {
55
+ type: String,
56
+ default: "green",
57
+ },
58
+ dotIcon: {
59
+ type: Boolean,
60
+ },
61
+ useFlex: {
62
+ type: Boolean,
63
+ default: false,
64
+ },
65
+ customLineHeight: {
66
+ type: String,
67
+ default: "leading-5",
68
+ },
69
+ },
70
+ computed: {
71
+ colorClasses() {
72
+ return {
73
+ "bg-gray-50 text-gray-800 ring-1 ring-inset ring-gray-500/10":
74
+ this.color == "gray",
75
+ "bg-red-50 text-red-700 ring-1 ring-inset ring-red-600/10":
76
+ this.color == "red",
77
+ "bg-yellow-50 text-yellow-800 ring-1 ring-inset ring-yellow-600/20":
78
+ this.color == "yellow",
79
+ "bg-green-50 text-green-700 ring-1 ring-inset ring-green-600/20":
80
+ this.color == "green",
81
+ "bg-blue-50 text-blue-700 ring-1 ring-inset ring-blue-700/10":
82
+ this.color == "blue",
83
+ "bg-purple-50 text-purple-700 ring-1 ring-inset ring-purple-700/10":
84
+ this.color == "purple",
85
+ "bg-pink-50 text-pink-700 ring-1 ring-inset ring-pink-700/10":
86
+ this.color == "pink",
87
+ "bg-indigo-50 text-indigo-700 ring-1 ring-inset ring-indigo-700/10":
88
+ this.color == "indigo",
89
+ "bg-orange-50 text-orange-700 ring-1 ring-inset ring-orange-700/10":
90
+ this.color == "orange",
91
+ "bg-white text-gray-800 ring-1 ring-inset ring-gray-200":
92
+ this.color == "white",
93
+ };
94
+ },
95
+ dotColorClasses() {
96
+ return {
97
+ "bg-gray-500": this.dotColor == "gray",
98
+ "bg-red-500": this.dotColor == "red",
99
+ "bg-yellow-500": this.dotColor == "yellow",
100
+ "bg-green-500": this.dotColor == "green",
101
+ "bg-blue-500": this.dotColor == "indigo",
102
+ "bg-purple-500": this.dotColor == "purple",
103
+ "bg-pink-500": this.dotColor == "pink",
104
+ "bg-indigo-500": this.dotColor == "indigo",
105
+ };
106
+ },
107
+ },
108
+ };
109
+ </script>
@@ -1,3 +1,3 @@
1
- import CTag from './CTag.vue'
2
-
1
+ import CTag from './CTag.vue'
2
+
3
3
  export default CTag
@@ -1,118 +1,118 @@
1
- <template>
2
- <div>
3
- <div class="flex justify-between">
4
- <div class="flex items-center">
5
- <!-- label of input field -->
6
- <label v-if="label" class="block text-sm font-medium text-gray-900">
7
- {{ label }}
8
- </label>
9
- <!-- asterisk sign to render if field is required -->
10
- <p v-if="isRequired" class="ml-1 text-red-600">*</p>
11
- </div>
12
-
13
- <span v-if="hint" class="text-sm text-gray-500">{{ hint }}</span>
14
- </div>
15
-
16
- <div class="mt-1">
17
- <textarea
18
- :value="textareaValue"
19
- @input="$emit('input', $event.target.value)"
20
- @blur="$emit('blur', $event.target.value)"
21
- @keyup="updateCursorPosition"
22
- @click="updateCursorPosition"
23
- :placeholder="placeholder"
24
- :id="id"
25
- :rows="rows"
26
- :class="[
27
- errorClasses,
28
- extraClasses,
29
- disableResize ? 'resize-none' : '',
30
- ]"
31
- :disabled="disabled"
32
- class="block w-full rounded-md text-gray-900 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 disabled:opacity-50 sm:text-sm"
33
- ></textarea>
34
- <!-- <div
35
- v-if="!isValidate"
36
- class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-red-600"
37
- >
38
- <c-icon name="exclamation-circle" type="solid" class="h-5 w-5"></c-icon>
39
- </div> -->
40
- </div>
41
- <p v-if="!isValidate" class="mt-2 text-sm text-red-600">
42
- {{ errorMessage }}
43
- </p>
44
- <p v-if="helpText && isValidate == true" class="mt-2 text-sm text-gray-500">
45
- {{ helpText }}
46
- </p>
47
- </div>
48
- </template>
49
- <script>
50
- // import CIcon from "../CIcon/CIcon.vue";
51
- export default {
52
- name: "CTextarea",
53
- // components: { CIcon },
54
- props: {
55
- id: {
56
- type: String,
57
- },
58
- label: {
59
- type: String,
60
- },
61
- extraClasses: {
62
- type: String,
63
- },
64
- placeholder: {
65
- type: String,
66
- },
67
- value: {
68
- type: String,
69
- },
70
- rows: { type: String, default: "3" },
71
- helpText: {
72
- type: String,
73
- },
74
- hint: { type: String },
75
- isValidate: { type: Boolean },
76
- errorMessage: {
77
- type: String,
78
- },
79
- // whether the textarea field is mandatory or not
80
- isRequired: {
81
- type: Boolean,
82
- },
83
- disabled: {
84
- type: Boolean,
85
- default: false,
86
- },
87
- //disable the resize
88
- disableResize: {
89
- type: Boolean,
90
- default: false,
91
- },
92
- },
93
- computed: {
94
- errorClasses() {
95
- return {
96
- "border-red-300 text-red-900 placeholder-red-300 focus:ring-red-500 focus:border-red-500":
97
- this.isValidate == false,
98
- "border-gray-300": this.isValidate == true,
99
- };
100
- },
101
- },
102
- methods: {
103
- updateCursorPosition(event) {
104
- this.$emit("handleCursorIndex", event.target.selectionStart);
105
- },
106
- },
107
- data() {
108
- return {
109
- textareaValue: this.value,
110
- };
111
- },
112
- watch: {
113
- value() {
114
- this.textareaValue = this.value;
115
- },
116
- },
117
- };
118
- </script>
1
+ <template>
2
+ <div>
3
+ <div class="flex justify-between">
4
+ <div class="flex items-center">
5
+ <!-- label of input field -->
6
+ <label v-if="label" class="block text-sm font-medium text-gray-900">
7
+ {{ label }}
8
+ </label>
9
+ <!-- asterisk sign to render if field is required -->
10
+ <p v-if="isRequired" class="ml-1 text-red-600">*</p>
11
+ </div>
12
+
13
+ <span v-if="hint" class="text-sm text-gray-500">{{ hint }}</span>
14
+ </div>
15
+
16
+ <div class="mt-1">
17
+ <textarea
18
+ :value="textareaValue"
19
+ @input="$emit('input', $event.target.value)"
20
+ @blur="$emit('blur', $event.target.value)"
21
+ @keyup="updateCursorPosition"
22
+ @click="updateCursorPosition"
23
+ :placeholder="placeholder"
24
+ :id="id"
25
+ :rows="rows"
26
+ :class="[
27
+ errorClasses,
28
+ extraClasses,
29
+ disableResize ? 'resize-none' : '',
30
+ ]"
31
+ :disabled="disabled"
32
+ class="block w-full rounded-md text-gray-900 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 disabled:opacity-50 sm:text-sm"
33
+ ></textarea>
34
+ <!-- <div
35
+ v-if="!isValidate"
36
+ class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-red-600"
37
+ >
38
+ <c-icon name="exclamation-circle" type="solid" class="h-5 w-5"></c-icon>
39
+ </div> -->
40
+ </div>
41
+ <p v-if="!isValidate" class="mt-2 text-sm text-red-600">
42
+ {{ errorMessage }}
43
+ </p>
44
+ <p v-if="helpText && isValidate == true" class="mt-2 text-sm text-gray-500">
45
+ {{ helpText }}
46
+ </p>
47
+ </div>
48
+ </template>
49
+ <script>
50
+ // import CIcon from "../CIcon/CIcon.vue";
51
+ export default {
52
+ name: "CTextarea",
53
+ // components: { CIcon },
54
+ props: {
55
+ id: {
56
+ type: String,
57
+ },
58
+ label: {
59
+ type: String,
60
+ },
61
+ extraClasses: {
62
+ type: String,
63
+ },
64
+ placeholder: {
65
+ type: String,
66
+ },
67
+ value: {
68
+ type: String,
69
+ },
70
+ rows: { type: String, default: "3" },
71
+ helpText: {
72
+ type: String,
73
+ },
74
+ hint: { type: String },
75
+ isValidate: { type: Boolean },
76
+ errorMessage: {
77
+ type: String,
78
+ },
79
+ // whether the textarea field is mandatory or not
80
+ isRequired: {
81
+ type: Boolean,
82
+ },
83
+ disabled: {
84
+ type: Boolean,
85
+ default: false,
86
+ },
87
+ //disable the resize
88
+ disableResize: {
89
+ type: Boolean,
90
+ default: false,
91
+ },
92
+ },
93
+ computed: {
94
+ errorClasses() {
95
+ return {
96
+ "border-red-300 text-red-900 placeholder-red-300 focus:ring-red-500 focus:border-red-500":
97
+ this.isValidate == false,
98
+ "border-gray-300": this.isValidate == true,
99
+ };
100
+ },
101
+ },
102
+ methods: {
103
+ updateCursorPosition(event) {
104
+ this.$emit("handleCursorIndex", event.target.selectionStart);
105
+ },
106
+ },
107
+ data() {
108
+ return {
109
+ textareaValue: this.value,
110
+ };
111
+ },
112
+ watch: {
113
+ value() {
114
+ this.textareaValue = this.value;
115
+ },
116
+ },
117
+ };
118
+ </script>
@@ -1,3 +1,3 @@
1
- import CTextarea from './CTextarea.vue'
2
-
1
+ import CTextarea from './CTextarea.vue'
2
+
3
3
  export default CTextarea