classcard-ui 0.2.985 → 0.2.986

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 (188) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +70 -58
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.umd.js +70 -58
  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 +82 -82
  9. package/src/.DS_Store +0 -0
  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 +96 -96
  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 +136 -136
  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 +152 -152
  26. package/src/components/CButton/index.js +2 -2
  27. package/src/components/CButtonGroup/CButtonGroup.vue +118 -118
  28. package/src/components/CButtonGroup/index.js +2 -2
  29. package/src/components/CButtonIcon/CButtonIcon.vue +117 -117
  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 +124 -124
  34. package/src/components/CButtonSelect/index.js +2 -2
  35. package/src/components/CButtonSelectBorder/CButtonSelectBorder.vue +135 -135
  36. package/src/components/CButtonSelectBorder/index.js +3 -3
  37. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +135 -135
  38. package/src/components/CButtonWithDropdown/index.js +2 -2
  39. package/src/components/CCalendar/CCalendar.vue +410 -410
  40. package/src/components/CCalendar/index.js +3 -3
  41. package/src/components/CCard/CCard.vue +49 -49
  42. package/src/components/CCard/index.js +2 -2
  43. package/src/components/CCheckbox/CCheckbox.vue +85 -85
  44. package/src/components/CCheckbox/index.js +2 -2
  45. package/src/components/CCircularButton/CCircularButton.vue +52 -52
  46. package/src/components/CCircularButton/index.js +2 -2
  47. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +101 -101
  48. package/src/components/CCollapsibleSection/index.js +2 -2
  49. package/src/components/CColorDots/CColorDots.vue +46 -46
  50. package/src/components/CColorDots/index.js +3 -3
  51. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +171 -171
  52. package/src/components/CConfirmActionModal/index.js +3 -3
  53. package/src/components/CDatepicker/CDatepicker.vue +158 -158
  54. package/src/components/CDatepicker/index.js +2 -2
  55. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  56. package/src/components/CDualSelect/index.js +2 -2
  57. package/src/components/CEditor/CEditor.vue +98 -98
  58. package/src/components/CEditor/index.js +2 -2
  59. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +53 -53
  60. package/src/components/CFormSectionHeading/index.js +2 -2
  61. package/src/components/CGroupedSelect/CGroupedSelect.vue +245 -245
  62. package/src/components/CGroupedSelect/index.js +3 -3
  63. package/src/components/CIcon/CIcon.vue +77 -77
  64. package/src/components/CIcon/index.js +2 -2
  65. package/src/components/CIconDropdown/CIconDropdown.vue +131 -120
  66. package/src/components/CIconDropdown/index.js +2 -2
  67. package/src/components/CInput/CInput.vue +134 -134
  68. package/src/components/CInput/index.js +2 -2
  69. package/src/components/CInputAddon/CInputAddon.vue +228 -228
  70. package/src/components/CInputAddon/index.js +2 -2
  71. package/src/components/CInputEmail/CInputEmail.vue +93 -93
  72. package/src/components/CInputEmail/index.js +2 -2
  73. package/src/components/CInsetTabs/CInsetTabs.vue +88 -88
  74. package/src/components/CInsetTabs/index.js +3 -3
  75. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  76. package/src/components/CModalHeading/index.js +2 -2
  77. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +70 -70
  78. package/src/components/CModuleHelpLinks/index.js +3 -3
  79. package/src/components/CMultiselect/CMultiselect.vue +479 -479
  80. package/src/components/CMultiselect/index.js +2 -2
  81. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  82. package/src/components/CMultiselectr/index.js +2 -2
  83. package/src/components/CPageHeading/CPageHeading.vue +56 -56
  84. package/src/components/CPageHeading/index.js +2 -2
  85. package/src/components/CPagination/CPagination.vue +233 -233
  86. package/src/components/CPagination/index.js +2 -2
  87. package/src/components/CPhoneNumber/CPhoneNumber.vue +114 -114
  88. package/src/components/CPhoneNumber/index.js +2 -2
  89. package/src/components/CRadio/CRadio.vue +124 -124
  90. package/src/components/CRadio/index.js +2 -2
  91. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  92. package/src/components/CRangeSlider/index.js +2 -2
  93. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +94 -94
  94. package/src/components/CReorderableStackedList/index.js +2 -2
  95. package/src/components/CSelect/CSelect.vue +417 -417
  96. package/src/components/CSelect/index.js +2 -2
  97. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  98. package/src/components/CSmallTimeline/index.js +2 -2
  99. package/src/components/CStackedList/CStackedList.vue +150 -150
  100. package/src/components/CStackedList/index.js +2 -2
  101. package/src/components/CStats/CStats.vue +116 -116
  102. package/src/components/CStats/index.js +2 -2
  103. package/src/components/CSwitch/CSwitch.vue +171 -171
  104. package/src/components/CSwitch/index.js +2 -2
  105. package/src/components/CTabLazy/CTabLazy.vue +58 -58
  106. package/src/components/CTabLazy/index.js +2 -2
  107. package/src/components/CTable/CTable.vue +671 -671
  108. package/src/components/CTable/index.js +2 -2
  109. package/src/components/CTabs/CTabs.vue +125 -125
  110. package/src/components/CTabs/index.js +2 -2
  111. package/src/components/CTag/CTag.vue +59 -59
  112. package/src/components/CTag/index.js +2 -2
  113. package/src/components/CTextarea/CTextarea.vue +107 -107
  114. package/src/components/CTextarea/index.js +2 -2
  115. package/src/components/CTimeline/CTimeline.vue +237 -237
  116. package/src/components/CTimeline/index.js +2 -2
  117. package/src/components/CUpload/CUpload.vue +267 -267
  118. package/src/components/CUpload/index.js +2 -2
  119. package/src/components/index.js +52 -52
  120. package/src/icons.js +364 -364
  121. package/src/main.js +22 -22
  122. package/src/stories/CAlerts.stories.js +37 -37
  123. package/src/stories/CAnchorTabs.stories.js +29 -29
  124. package/src/stories/CAnchorTag.stories.js +36 -36
  125. package/src/stories/CAvatar.stories.js +38 -38
  126. package/src/stories/CAvatarGroup.stories.js +100 -100
  127. package/src/stories/CBasicTable.stories.js +316 -316
  128. package/src/stories/CBreadcrumbs.stories.js +24 -24
  129. package/src/stories/CButton.stories.js +47 -47
  130. package/src/stories/CButtonGroup.stories.js +33 -33
  131. package/src/stories/CButtonIcon.stories.js +27 -27
  132. package/src/stories/CButtonLink.stories.js +24 -24
  133. package/src/stories/CButtonSelect.stories.js +41 -41
  134. package/src/stories/CButtonSelectBorder.stories.js +48 -48
  135. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  136. package/src/stories/CCalendar.stories.js +16 -16
  137. package/src/stories/CCard.stories.js +30 -30
  138. package/src/stories/CCheckbox.stories.js +29 -29
  139. package/src/stories/CCircularButton.stories.js +29 -29
  140. package/src/stories/CCollapsibleSection.stories.js +28 -28
  141. package/src/stories/CColorDots.stories.js +28 -28
  142. package/src/stories/CConfirmActionModal.stories.js +59 -59
  143. package/src/stories/CDatepicker.stories.js +30 -30
  144. package/src/stories/CDualSelect.stories.js +29 -29
  145. package/src/stories/CEditor.stories.js +30 -30
  146. package/src/stories/CFormSectionHeading.stories.js +34 -34
  147. package/src/stories/CGroupedSelect.stories.js +71 -71
  148. package/src/stories/CIcon.stories.js +26 -26
  149. package/src/stories/CIconDropdown.stories.js +45 -45
  150. package/src/stories/CInput.stories.js +36 -36
  151. package/src/stories/CInputAddon.stories.js +37 -37
  152. package/src/stories/CInputEmail.stories.js +27 -27
  153. package/src/stories/CInsetTabs.stories.js +38 -38
  154. package/src/stories/CModalHeading.stories.js +25 -25
  155. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  156. package/src/stories/CMultiselect.stories.js +157 -157
  157. package/src/stories/CMultiselectr.stories.js +23 -23
  158. package/src/stories/CPageHeading.stories.js +32 -32
  159. package/src/stories/CPagination.stories.js +30 -30
  160. package/src/stories/CPhoneNumber.stories.js +29 -29
  161. package/src/stories/CRadio.stories.js +36 -36
  162. package/src/stories/CRangeSlider.stories.js +23 -23
  163. package/src/stories/CReorderableStackedList.stories.js +23 -23
  164. package/src/stories/CSelect.stories.js +96 -96
  165. package/src/stories/CSmallTimeline.stories.js +26 -26
  166. package/src/stories/CStackedList.stories.js +37 -37
  167. package/src/stories/CStats.stories.js +33 -33
  168. package/src/stories/CSwitch.stories.js +28 -28
  169. package/src/stories/CTabLazy.stories.js +24 -24
  170. package/src/stories/CTable.stories.js +169 -169
  171. package/src/stories/CTabs.stories.js +33 -33
  172. package/src/stories/CTag.stories.js +34 -34
  173. package/src/stories/CTextarea.stories.js +32 -32
  174. package/src/stories/CTimeline.stories.js +26 -26
  175. package/src/stories/CUpload.stories.js +36 -36
  176. package/src/stories/Introduction.stories.mdx +207 -207
  177. package/src/stories/Page.vue +88 -88
  178. package/src/stories/assets/code-brackets.svg +0 -0
  179. package/src/stories/assets/colors.svg +0 -0
  180. package/src/stories/assets/comments.svg +0 -0
  181. package/src/stories/assets/direction.svg +0 -0
  182. package/src/stories/assets/flow.svg +0 -0
  183. package/src/stories/assets/plugin.svg +0 -0
  184. package/src/stories/assets/repo.svg +0 -0
  185. package/src/stories/assets/stackalt.svg +0 -0
  186. package/src/stories/header.css +26 -26
  187. package/src/stories/page.css +69 -69
  188. package/src/stories/utils.css +17 -17
@@ -1,114 +1,114 @@
1
- <template>
2
- <div>
3
- <div class="flex items-center">
4
- <!-- label of phone field -->
5
- <label
6
- class="text-sm text-gray-900"
7
- :class="[isBlock ? ' font-medium' : '']"
8
- >{{ label }}</label
9
- >
10
- <!-- asterisk sign to render if field is required -->
11
- <p v-if="isRequired" class="ml-1 text-red-600">*</p>
12
- </div>
13
- <div class="mt-1 w-full shadow-sm">
14
- <vue-tel-input
15
- v-bind="bindProps"
16
- :autoFormat="false"
17
- v-model="value"
18
- @blur="handleBlur"
19
- ></vue-tel-input>
20
- </div>
21
- <p v-if="!isValidate" class="mt-1 text-sm text-red-600">
22
- {{ errorMessage }}
23
- </p>
24
- <!-- description about the input field -->
25
- <p v-if="helpText && isValidate == true" class="mt-2 text-sm text-gray-500">
26
- {{ helpText }}
27
- </p>
28
- </div>
29
- </template>
30
- <script>
31
- import { VueTelInput } from "vue-tel-input";
32
- export default {
33
- name: "CPhoneNumber",
34
- components: {
35
- VueTelInput,
36
- },
37
- props: {
38
- // eslint-disable-next-line vue/require-prop-type-constructor
39
- phone: {
40
- type: String,
41
- },
42
- label: String,
43
- isValidate: {
44
- type: Boolean,
45
- default: true,
46
- },
47
- isRequired: {
48
- type: Boolean,
49
- default: false,
50
- },
51
- errorMessage: {
52
- type: String,
53
- },
54
- // description about the field
55
- helpText: {
56
- type: String,
57
- },
58
- //label font-weight medium
59
- isBlock: {
60
- type: Boolean,
61
- default: false,
62
- },
63
- },
64
- data() {
65
- return {
66
- value: this.phone,
67
- bindProps: {
68
- placeholder: "",
69
- inputClasses: ["px-3", "py-2", "text-sm"],
70
- inputId: "c-phone",
71
- wrapperClasses: "c-phone-wrapper",
72
- showDialCode: false,
73
- enabledCountryCode: false,
74
- mode: "international",
75
- validCharactersOnly: true,
76
- },
77
- };
78
- },
79
- methods: {
80
- handleBlur() {
81
- this.$emit("blur", this.value);
82
- },
83
- },
84
- watch: {
85
- phone: {
86
- handler(newValue) {
87
- this.value = newValue;
88
- },
89
- deep: true,
90
- },
91
- value(newVal) {
92
- this.$emit("onChange", newVal);
93
- },
94
- },
95
- };
96
- </script>
97
- <style>
98
- .vue-tel-input {
99
- border: 1px solid #d1d5db !important;
100
- @apply text-gray-900;
101
- }
102
-
103
- #c-phone {
104
- border-top-right-radius: 0.375rem;
105
- border-bottom-right-radius: 0.375rem;
106
- }
107
- .c-phone-wrapper {
108
- border-radius: 0.375rem !important;
109
- }
110
- .vti__dropdown:hover {
111
- border-top-left-radius: 0.375rem;
112
- border-bottom-left-radius: 0.375rem;
113
- }
114
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="flex items-center">
4
+ <!-- label of phone field -->
5
+ <label
6
+ class="text-sm text-gray-900"
7
+ :class="[isBlock ? ' font-medium' : '']"
8
+ >{{ label }}</label
9
+ >
10
+ <!-- asterisk sign to render if field is required -->
11
+ <p v-if="isRequired" class="ml-1 text-red-600">*</p>
12
+ </div>
13
+ <div class="mt-1 w-full shadow-sm">
14
+ <vue-tel-input
15
+ v-bind="bindProps"
16
+ :autoFormat="false"
17
+ v-model="value"
18
+ @blur="handleBlur"
19
+ ></vue-tel-input>
20
+ </div>
21
+ <p v-if="!isValidate" class="mt-1 text-sm text-red-600">
22
+ {{ errorMessage }}
23
+ </p>
24
+ <!-- description about the input field -->
25
+ <p v-if="helpText && isValidate == true" class="mt-2 text-sm text-gray-500">
26
+ {{ helpText }}
27
+ </p>
28
+ </div>
29
+ </template>
30
+ <script>
31
+ import { VueTelInput } from "vue-tel-input";
32
+ export default {
33
+ name: "CPhoneNumber",
34
+ components: {
35
+ VueTelInput,
36
+ },
37
+ props: {
38
+ // eslint-disable-next-line vue/require-prop-type-constructor
39
+ phone: {
40
+ type: String,
41
+ },
42
+ label: String,
43
+ isValidate: {
44
+ type: Boolean,
45
+ default: true,
46
+ },
47
+ isRequired: {
48
+ type: Boolean,
49
+ default: false,
50
+ },
51
+ errorMessage: {
52
+ type: String,
53
+ },
54
+ // description about the field
55
+ helpText: {
56
+ type: String,
57
+ },
58
+ //label font-weight medium
59
+ isBlock: {
60
+ type: Boolean,
61
+ default: false,
62
+ },
63
+ },
64
+ data() {
65
+ return {
66
+ value: this.phone,
67
+ bindProps: {
68
+ placeholder: "",
69
+ inputClasses: ["px-3", "py-2", "text-sm"],
70
+ inputId: "c-phone",
71
+ wrapperClasses: "c-phone-wrapper",
72
+ showDialCode: false,
73
+ enabledCountryCode: false,
74
+ mode: "international",
75
+ validCharactersOnly: true,
76
+ },
77
+ };
78
+ },
79
+ methods: {
80
+ handleBlur() {
81
+ this.$emit("blur", this.value);
82
+ },
83
+ },
84
+ watch: {
85
+ phone: {
86
+ handler(newValue) {
87
+ this.value = newValue;
88
+ },
89
+ deep: true,
90
+ },
91
+ value(newVal) {
92
+ this.$emit("onChange", newVal);
93
+ },
94
+ },
95
+ };
96
+ </script>
97
+ <style>
98
+ .vue-tel-input {
99
+ border: 1px solid #d1d5db !important;
100
+ @apply text-gray-900;
101
+ }
102
+
103
+ #c-phone {
104
+ border-top-right-radius: 0.375rem;
105
+ border-bottom-right-radius: 0.375rem;
106
+ }
107
+ .c-phone-wrapper {
108
+ border-radius: 0.375rem !important;
109
+ }
110
+ .vti__dropdown:hover {
111
+ border-top-left-radius: 0.375rem;
112
+ border-bottom-left-radius: 0.375rem;
113
+ }
114
+ </style>
@@ -1,3 +1,3 @@
1
- import CPhoneNumber from './CPhoneNumber.vue'
2
-
1
+ import CPhoneNumber from './CPhoneNumber.vue'
2
+
3
3
  export default CPhoneNumber
@@ -1,124 +1,124 @@
1
- <template>
2
- <div>
3
- <div class="-space-y-px rounded-md bg-white" :class="customWrapperClasses">
4
- <div
5
- v-for="(item, index) in items"
6
- :class="`relative ${index != items.length - 1 ? 'pb-4' : ''} ${
7
- customClasses ? classes(item, index) : ''
8
- } first:rounded-t-md last:rounded-b-md`"
9
- v-bind:key="item[labelName]"
10
- >
11
- <div class="flex items-start">
12
- <input
13
- type="radio"
14
- :value="item.value"
15
- :name="name"
16
- v-model="selectedItem"
17
- @click="onChange(item.value)"
18
- class="mt-0.5 h-4 w-4 cursor-pointer border-gray-300 text-indigo-600 focus:ring-indigo-500 disabled:opacity-50"
19
- :disabled="isDisabled"
20
- />
21
- <label
22
- class="ml-3 flex cursor-pointer flex-col"
23
- @click="onChange(item.value)"
24
- >
25
- <span
26
- class="block text-sm font-medium text-gray-900"
27
- :class="
28
- customClasses && item.value === selectedItem
29
- ? 'text-indigo-900'
30
- : ''
31
- "
32
- >
33
- {{ item[labelName] }}
34
- </span>
35
- <span
36
- class="block text-sm"
37
- :class="
38
- customClasses && item.value === selectedItem
39
- ? 'text-indigo-700'
40
- : 'text-gray-500'
41
- "
42
- >
43
- {{ item.description }}
44
- </span>
45
- </label>
46
- </div>
47
- <slot v-if="item.value === selectedItem" :name="item.value" />
48
- </div>
49
- </div>
50
- </div>
51
- </template>
52
-
53
- <script>
54
- export default {
55
- name: "CRadio",
56
- props: {
57
- items: {
58
- type: Array,
59
- required: true,
60
- },
61
- selectedOption: {
62
- type: String,
63
- },
64
- isDisabled: {
65
- type: Boolean,
66
- },
67
- customClasses: {
68
- type: Boolean,
69
- default: false,
70
- },
71
- customWrapperClasses: {
72
- type: String,
73
- },
74
- name: {
75
- type: String,
76
- required: true,
77
- },
78
- labelName: {
79
- type: String,
80
- default: "label",
81
- },
82
- },
83
- data() {
84
- return {
85
- selectedItem: this.selectedOption,
86
- };
87
- },
88
- methods: {
89
- onChange(selectedValue) {
90
- if (!this.isDisabled) {
91
- this.$emit("onChange", selectedValue);
92
- this.selectedItem = selectedValue;
93
- }
94
- },
95
- classes(item, index) {
96
- let classForRadio = "";
97
- if (item.value === this.selectedItem && index === 0) {
98
- classForRadio =
99
- "border p-4 border-indigo-200 rounded-t-md bg-indigo-50";
100
- } else if (
101
- item.value === this.selectedItem &&
102
- index === this.items.length - 1
103
- ) {
104
- classForRadio =
105
- "border p-4 border-indigo-200 rounded-b-md bg-indigo-50";
106
- } else if (
107
- item.value === this.selectedItem &&
108
- 0 < index < this.items.length - 1
109
- ) {
110
- classForRadio = "border p-4 border-indigo-200 bg-indigo-50";
111
- } else {
112
- classForRadio = "border p-4 border-gray-200";
113
- }
114
-
115
- return classForRadio;
116
- },
117
- },
118
- watch: {
119
- selectedOption() {
120
- this.selectedItem = this.selectedOption;
121
- },
122
- },
123
- };
124
- </script>
1
+ <template>
2
+ <div>
3
+ <div class="-space-y-px rounded-md bg-white" :class="customWrapperClasses">
4
+ <div
5
+ v-for="(item, index) in items"
6
+ :class="`relative ${index != items.length - 1 ? 'pb-4' : ''} ${
7
+ customClasses ? classes(item, index) : ''
8
+ } first:rounded-t-md last:rounded-b-md`"
9
+ v-bind:key="item[labelName]"
10
+ >
11
+ <div class="flex items-start">
12
+ <input
13
+ type="radio"
14
+ :value="item.value"
15
+ :name="name"
16
+ v-model="selectedItem"
17
+ @click="onChange(item.value)"
18
+ class="mt-0.5 h-4 w-4 cursor-pointer border-gray-300 text-indigo-600 focus:ring-indigo-500 disabled:opacity-50"
19
+ :disabled="isDisabled"
20
+ />
21
+ <label
22
+ class="ml-3 flex cursor-pointer flex-col"
23
+ @click="onChange(item.value)"
24
+ >
25
+ <span
26
+ class="block text-sm font-medium text-gray-900"
27
+ :class="
28
+ customClasses && item.value === selectedItem
29
+ ? 'text-indigo-900'
30
+ : ''
31
+ "
32
+ >
33
+ {{ item[labelName] }}
34
+ </span>
35
+ <span
36
+ class="block text-sm"
37
+ :class="
38
+ customClasses && item.value === selectedItem
39
+ ? 'text-indigo-700'
40
+ : 'text-gray-500'
41
+ "
42
+ >
43
+ {{ item.description }}
44
+ </span>
45
+ </label>
46
+ </div>
47
+ <slot v-if="item.value === selectedItem" :name="item.value" />
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </template>
52
+
53
+ <script>
54
+ export default {
55
+ name: "CRadio",
56
+ props: {
57
+ items: {
58
+ type: Array,
59
+ required: true,
60
+ },
61
+ selectedOption: {
62
+ type: String,
63
+ },
64
+ isDisabled: {
65
+ type: Boolean,
66
+ },
67
+ customClasses: {
68
+ type: Boolean,
69
+ default: false,
70
+ },
71
+ customWrapperClasses: {
72
+ type: String,
73
+ },
74
+ name: {
75
+ type: String,
76
+ required: true,
77
+ },
78
+ labelName: {
79
+ type: String,
80
+ default: "label",
81
+ },
82
+ },
83
+ data() {
84
+ return {
85
+ selectedItem: this.selectedOption,
86
+ };
87
+ },
88
+ methods: {
89
+ onChange(selectedValue) {
90
+ if (!this.isDisabled) {
91
+ this.$emit("onChange", selectedValue);
92
+ this.selectedItem = selectedValue;
93
+ }
94
+ },
95
+ classes(item, index) {
96
+ let classForRadio = "";
97
+ if (item.value === this.selectedItem && index === 0) {
98
+ classForRadio =
99
+ "border p-4 border-indigo-200 rounded-t-md bg-indigo-50";
100
+ } else if (
101
+ item.value === this.selectedItem &&
102
+ index === this.items.length - 1
103
+ ) {
104
+ classForRadio =
105
+ "border p-4 border-indigo-200 rounded-b-md bg-indigo-50";
106
+ } else if (
107
+ item.value === this.selectedItem &&
108
+ 0 < index < this.items.length - 1
109
+ ) {
110
+ classForRadio = "border p-4 border-indigo-200 bg-indigo-50";
111
+ } else {
112
+ classForRadio = "border p-4 border-gray-200";
113
+ }
114
+
115
+ return classForRadio;
116
+ },
117
+ },
118
+ watch: {
119
+ selectedOption() {
120
+ this.selectedItem = this.selectedOption;
121
+ },
122
+ },
123
+ };
124
+ </script>
@@ -1,3 +1,3 @@
1
- import CRadio from './CRadio.vue'
2
-
1
+ import CRadio from './CRadio.vue'
2
+
3
3
  export default CRadio
@@ -1,55 +1,55 @@
1
- <template>
2
- <div class="flex w-64 m-auto items-center h-32 justify-center">
3
- <div class="py-1 relative min-w-full">
4
- <div class="h-2 bg-gray-200 rounded-full">
5
- <div
6
- class="absolute h-2 rounded-full bg-teal-600 w-0"
7
- style="width: 58.5714%;"
8
- ></div>
9
- <div
10
- class="absolute h-4 flex items-center justify-center w-4 rounded-full bg-white shadow border border-gray-300 -ml-2 top-0 cursor-pointer"
11
- unselectable="on"
12
- onselectstart="return false;"
13
- style="left: 58.5714%;"
14
- >
15
- <div class="relative -mt-2 w-1">
16
- <div
17
- class="absolute z-40 opacity-100 bottom-100 mb-2 left-0 min-w-full"
18
- style="margin-left: -20.5px;"
19
- >
20
- <div class="relative shadow-md">
21
- <div
22
- class="bg-black -mt-8 text-white truncate text-xs rounded py-1 px-4"
23
- >
24
- 92
25
- </div>
26
- <svg
27
- class="absolute text-black w-full h-2 left-0 top-100"
28
- x="0px"
29
- y="0px"
30
- viewBox="0 0 255 255"
31
- xml:space="preserve"
32
- >
33
- <polygon
34
- class="fill-current"
35
- points="0,0 127.5,127.5 255,0"
36
- ></polygon>
37
- </svg>
38
- </div>
39
- </div>
40
- </div>
41
- </div>
42
- <div class="absolute text-gray-800 -ml-1 bottom-0 left-0 -mb-6">10</div>
43
- <div class="absolute text-gray-800 -mr-1 bottom-0 right-0 -mb-6">
44
- 150
45
- </div>
46
- </div>
47
- </div>
48
- </div>
49
- </template>
50
- <script>
51
- export default {
52
- name: "CRangeSlider",
53
- props: {},
54
- };
55
- </script>
1
+ <template>
2
+ <div class="flex w-64 m-auto items-center h-32 justify-center">
3
+ <div class="py-1 relative min-w-full">
4
+ <div class="h-2 bg-gray-200 rounded-full">
5
+ <div
6
+ class="absolute h-2 rounded-full bg-teal-600 w-0"
7
+ style="width: 58.5714%;"
8
+ ></div>
9
+ <div
10
+ class="absolute h-4 flex items-center justify-center w-4 rounded-full bg-white shadow border border-gray-300 -ml-2 top-0 cursor-pointer"
11
+ unselectable="on"
12
+ onselectstart="return false;"
13
+ style="left: 58.5714%;"
14
+ >
15
+ <div class="relative -mt-2 w-1">
16
+ <div
17
+ class="absolute z-40 opacity-100 bottom-100 mb-2 left-0 min-w-full"
18
+ style="margin-left: -20.5px;"
19
+ >
20
+ <div class="relative shadow-md">
21
+ <div
22
+ class="bg-black -mt-8 text-white truncate text-xs rounded py-1 px-4"
23
+ >
24
+ 92
25
+ </div>
26
+ <svg
27
+ class="absolute text-black w-full h-2 left-0 top-100"
28
+ x="0px"
29
+ y="0px"
30
+ viewBox="0 0 255 255"
31
+ xml:space="preserve"
32
+ >
33
+ <polygon
34
+ class="fill-current"
35
+ points="0,0 127.5,127.5 255,0"
36
+ ></polygon>
37
+ </svg>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <div class="absolute text-gray-800 -ml-1 bottom-0 left-0 -mb-6">10</div>
43
+ <div class="absolute text-gray-800 -mr-1 bottom-0 right-0 -mb-6">
44
+ 150
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </template>
50
+ <script>
51
+ export default {
52
+ name: "CRangeSlider",
53
+ props: {},
54
+ };
55
+ </script>
@@ -1,3 +1,3 @@
1
- import CRangeSlider from './CRangeSlider.vue'
2
-
1
+ import CRangeSlider from './CRangeSlider.vue'
2
+
3
3
  export default CRangeSlider