classcard-ui 0.2.1069 → 0.2.1071

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 (190) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +62 -59
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.umd.js +62 -59
  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/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 +96 -96
  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 +212 -212
  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 +152 -152
  25. package/src/components/CButton/index.js +2 -2
  26. package/src/components/CButtonGroup/CButtonGroup.vue +118 -118
  27. package/src/components/CButtonGroup/index.js +2 -2
  28. package/src/components/CButtonIcon/CButtonIcon.vue +117 -117
  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 +134 -134
  33. package/src/components/CButtonSelect/index.js +2 -2
  34. package/src/components/CButtonSelectBorder/CButtonSelectBorder.vue +135 -135
  35. package/src/components/CButtonSelectBorder/index.js +3 -3
  36. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +135 -135
  37. package/src/components/CButtonWithDropdown/index.js +2 -2
  38. package/src/components/CCalendar/CCalendar.vue +410 -410
  39. package/src/components/CCalendar/index.js +3 -3
  40. package/src/components/CCard/CCard.vue +49 -49
  41. package/src/components/CCard/index.js +2 -2
  42. package/src/components/CCheckbox/CCheckbox.vue +123 -123
  43. package/src/components/CCheckbox/index.js +2 -2
  44. package/src/components/CCircularButton/CCircularButton.vue +53 -53
  45. package/src/components/CCircularButton/index.js +2 -2
  46. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +101 -101
  47. package/src/components/CCollapsibleSection/index.js +2 -2
  48. package/src/components/CColorDots/CColorDots.vue +51 -51
  49. package/src/components/CColorDots/index.js +3 -3
  50. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +180 -180
  51. package/src/components/CConfirmActionModal/index.js +3 -3
  52. package/src/components/CDatepicker/CDatepicker.vue +201 -201
  53. package/src/components/CDatepicker/index.js +2 -2
  54. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  55. package/src/components/CDualSelect/index.js +2 -2
  56. package/src/components/CEditor/CEditor.vue +98 -98
  57. package/src/components/CEditor/index.js +2 -2
  58. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +53 -53
  59. package/src/components/CFormSectionHeading/index.js +2 -2
  60. package/src/components/CGroupedSelect/CGroupedSelect.vue +245 -245
  61. package/src/components/CGroupedSelect/index.js +3 -3
  62. package/src/components/CIcon/CIcon.vue +91 -91
  63. package/src/components/CIcon/index.js +2 -2
  64. package/src/components/CIconDropdown/CIconDropdown.vue +146 -146
  65. package/src/components/CIconDropdown/index.js +2 -2
  66. package/src/components/CInput/CInput.vue +134 -134
  67. package/src/components/CInput/index.js +2 -2
  68. package/src/components/CInputAddon/CInputAddon.vue +228 -228
  69. package/src/components/CInputAddon/index.js +2 -2
  70. package/src/components/CInputEmail/CInputEmail.vue +93 -93
  71. package/src/components/CInputEmail/index.js +2 -2
  72. package/src/components/CInsetTabs/CInsetTabs.vue +88 -88
  73. package/src/components/CInsetTabs/index.js +3 -3
  74. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  75. package/src/components/CModalHeading/index.js +2 -2
  76. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +70 -70
  77. package/src/components/CModuleHelpLinks/index.js +3 -3
  78. package/src/components/CMultiselect/CMultiselect.vue +615 -615
  79. package/src/components/CMultiselect/index.js +2 -2
  80. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  81. package/src/components/CMultiselectr/index.js +2 -2
  82. package/src/components/CPageHeading/CPageHeading.vue +56 -56
  83. package/src/components/CPageHeading/index.js +2 -2
  84. package/src/components/CPagination/CPagination.vue +233 -233
  85. package/src/components/CPagination/index.js +2 -2
  86. package/src/components/CPhoneNumber/CPhoneNumber.vue +114 -114
  87. package/src/components/CPhoneNumber/index.js +2 -2
  88. package/src/components/CProgress/CProgress.vue +57 -57
  89. package/src/components/CProgress/index.js +2 -2
  90. package/src/components/CRadio/CRadio.vue +126 -126
  91. package/src/components/CRadio/index.js +2 -2
  92. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  93. package/src/components/CRangeSlider/index.js +2 -2
  94. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +94 -94
  95. package/src/components/CReorderableStackedList/index.js +2 -2
  96. package/src/components/CSelect/CSelect.vue +539 -539
  97. package/src/components/CSelect/index.js +2 -2
  98. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  99. package/src/components/CSmallTimeline/index.js +2 -2
  100. package/src/components/CStackedList/CStackedList.vue +150 -150
  101. package/src/components/CStackedList/index.js +2 -2
  102. package/src/components/CStats/CStats.vue +116 -116
  103. package/src/components/CStats/index.js +2 -2
  104. package/src/components/CSwitch/CSwitch.vue +176 -176
  105. package/src/components/CSwitch/index.js +2 -2
  106. package/src/components/CTabLazy/CTabLazy.vue +63 -63
  107. package/src/components/CTabLazy/index.js +2 -2
  108. package/src/components/CTable/CTable.vue +671 -671
  109. package/src/components/CTable/index.js +2 -2
  110. package/src/components/CTabs/CTabs.vue +169 -169
  111. package/src/components/CTabs/index.js +2 -2
  112. package/src/components/CTag/CTag.vue +59 -59
  113. package/src/components/CTag/index.js +2 -2
  114. package/src/components/CTextarea/CTextarea.vue +107 -107
  115. package/src/components/CTextarea/index.js +2 -2
  116. package/src/components/CTimeline/CTimeline.vue +237 -237
  117. package/src/components/CTimeline/index.js +2 -2
  118. package/src/components/CUpload/CUpload.vue +267 -267
  119. package/src/components/CUpload/index.js +2 -2
  120. package/src/components/index.js +53 -53
  121. package/src/icons.js +459 -453
  122. package/src/main.js +22 -22
  123. package/src/stories/CAlerts.stories.js +37 -37
  124. package/src/stories/CAnchorTabs.stories.js +29 -29
  125. package/src/stories/CAnchorTag.stories.js +36 -36
  126. package/src/stories/CAvatar.stories.js +38 -38
  127. package/src/stories/CAvatarGroup.stories.js +100 -100
  128. package/src/stories/CBasicTable.stories.js +316 -316
  129. package/src/stories/CBreadcrumbs.stories.js +24 -24
  130. package/src/stories/CButton.stories.js +47 -47
  131. package/src/stories/CButtonGroup.stories.js +33 -33
  132. package/src/stories/CButtonIcon.stories.js +27 -27
  133. package/src/stories/CButtonLink.stories.js +24 -24
  134. package/src/stories/CButtonSelect.stories.js +41 -41
  135. package/src/stories/CButtonSelectBorder.stories.js +48 -48
  136. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  137. package/src/stories/CCalendar.stories.js +16 -16
  138. package/src/stories/CCard.stories.js +30 -30
  139. package/src/stories/CCheckbox.stories.js +29 -29
  140. package/src/stories/CCircularButton.stories.js +29 -29
  141. package/src/stories/CCollapsibleSection.stories.js +28 -28
  142. package/src/stories/CColorDots.stories.js +28 -28
  143. package/src/stories/CConfirmActionModal.stories.js +59 -59
  144. package/src/stories/CDatepicker.stories.js +30 -30
  145. package/src/stories/CDualSelect.stories.js +29 -29
  146. package/src/stories/CEditor.stories.js +30 -30
  147. package/src/stories/CFormSectionHeading.stories.js +34 -34
  148. package/src/stories/CGroupedSelect.stories.js +71 -71
  149. package/src/stories/CIcon.stories.js +28 -28
  150. package/src/stories/CIconDropdown.stories.js +45 -45
  151. package/src/stories/CInput.stories.js +36 -36
  152. package/src/stories/CInputAddon.stories.js +37 -37
  153. package/src/stories/CInputEmail.stories.js +27 -27
  154. package/src/stories/CInsetTabs.stories.js +38 -38
  155. package/src/stories/CModalHeading.stories.js +25 -25
  156. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  157. package/src/stories/CMultiselect.stories.js +167 -167
  158. package/src/stories/CMultiselectr.stories.js +23 -23
  159. package/src/stories/CPageHeading.stories.js +32 -32
  160. package/src/stories/CPagination.stories.js +30 -30
  161. package/src/stories/CPhoneNumber.stories.js +29 -29
  162. package/src/stories/CProgress.stories.js +23 -23
  163. package/src/stories/CRadio.stories.js +36 -36
  164. package/src/stories/CRangeSlider.stories.js +23 -23
  165. package/src/stories/CReorderableStackedList.stories.js +23 -23
  166. package/src/stories/CSelect.stories.js +109 -109
  167. package/src/stories/CSmallTimeline.stories.js +26 -26
  168. package/src/stories/CStackedList.stories.js +37 -37
  169. package/src/stories/CStats.stories.js +33 -33
  170. package/src/stories/CSwitch.stories.js +28 -28
  171. package/src/stories/CTabLazy.stories.js +26 -26
  172. package/src/stories/CTable.stories.js +169 -169
  173. package/src/stories/CTabs.stories.js +36 -36
  174. package/src/stories/CTag.stories.js +34 -34
  175. package/src/stories/CTextarea.stories.js +32 -32
  176. package/src/stories/CTimeline.stories.js +26 -26
  177. package/src/stories/CUpload.stories.js +36 -36
  178. package/src/stories/Introduction.stories.mdx +207 -207
  179. package/src/stories/Page.vue +88 -88
  180. package/src/stories/assets/code-brackets.svg +0 -0
  181. package/src/stories/assets/colors.svg +0 -0
  182. package/src/stories/assets/comments.svg +0 -0
  183. package/src/stories/assets/direction.svg +0 -0
  184. package/src/stories/assets/flow.svg +0 -0
  185. package/src/stories/assets/plugin.svg +0 -0
  186. package/src/stories/assets/repo.svg +0 -0
  187. package/src/stories/assets/stackalt.svg +0 -0
  188. package/src/stories/header.css +26 -26
  189. package/src/stories/page.css +69 -69
  190. package/src/stories/utils.css +17 -17
@@ -1,3 +1,3 @@
1
- import CCalendar from "./CCalendar.vue";
2
-
3
- export default CCalendar;
1
+ import CCalendar from "./CCalendar.vue";
2
+
3
+ export default CCalendar;
@@ -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,123 +1,123 @@
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
- :indeterminate.prop="indeterminate"
12
- />
13
- </div>
14
- <div
15
- class="ml-3 cursor-pointer text-sm"
16
- :class="isDisabled ? 'pointer-events-none' : ''"
17
- @click="changeValue"
18
- >
19
- <label
20
- :class="`cursor-pointer font-medium text-gray-900 ${
21
- isDisabled ? 'opacity-50' : ''
22
- } ${tag ? 'flex' : ''}`"
23
- >{{ label }}
24
- <c-tag
25
- v-if="tag && Object.keys(tag).length !== 0"
26
- :label="tag.label"
27
- :color="tag.color"
28
- :class="tag.class"
29
- class="ml-2"
30
- />
31
- </label>
32
- <p
33
- :class="`mt-0.5 cursor-pointer text-gray-500 ${
34
- isDisabled ? 'opacity-50' : ''
35
- }`"
36
- >
37
- {{ description }}
38
- </p>
39
- </div>
40
- </div>
41
- </div>
42
- </template>
43
- <script>
44
- import CTag from "../CTag/CTag.vue";
45
- export default {
46
- components: { CTag },
47
- name: "CCheckbox",
48
- props: {
49
- label: { type: String },
50
- description: { type: String },
51
- value: [Boolean, Number],
52
- isDisabled: {
53
- type: Boolean,
54
- },
55
- indeterminate: {
56
- type: Boolean,
57
- },
58
- tag: {
59
- type: Object,
60
- },
61
- permanentIndeterminate: {
62
- type: Boolean,
63
- },
64
- unCheckable: {
65
- type: Boolean,
66
- },
67
- checkable: {
68
- type: Boolean,
69
- },
70
- },
71
- data() {
72
- return {
73
- checkedValue: this.value,
74
- };
75
- },
76
- methods: {
77
- changeValue(e) {
78
- let selectedValue = 0;
79
- if (this.permanentIndeterminate) {
80
- // can never be in any state other than dash
81
- e.preventDefault();
82
- if (this.checkedValue == 1) {
83
- selectedValue = 0;
84
- } else if (this.checkedValue == 0) {
85
- selectedValue = 1;
86
- } else {
87
- selectedValue = 2;
88
- }
89
- } else if (this.unCheckable) {
90
- // can never be in unchecked state
91
- if (this.checkedValue == 2) {
92
- selectedValue = 1;
93
- } else {
94
- selectedValue = 2;
95
- }
96
- } else if (this.checkable) {
97
- // can never be in a checked state
98
- if (this.checkedValue == 2) {
99
- selectedValue = 0;
100
- } else {
101
- selectedValue = 2;
102
- }
103
- } else {
104
- // normal check/uncheck
105
- if (this.checkedValue == 1) {
106
- selectedValue = 0;
107
- } else {
108
- selectedValue = 1;
109
- }
110
- }
111
- this.$emit("onChange", selectedValue);
112
- },
113
- },
114
- watch: {
115
- value() {
116
- this.checkedValue = this.value;
117
- },
118
- },
119
- mounted() {
120
- this.checkedValue = this.value;
121
- },
122
- };
123
- </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
+ :indeterminate.prop="indeterminate"
12
+ />
13
+ </div>
14
+ <div
15
+ class="ml-3 cursor-pointer text-sm"
16
+ :class="isDisabled ? 'pointer-events-none' : ''"
17
+ @click="changeValue"
18
+ >
19
+ <label
20
+ :class="`cursor-pointer font-medium text-gray-900 ${
21
+ isDisabled ? 'opacity-50' : ''
22
+ } ${tag ? 'flex' : ''}`"
23
+ >{{ label }}
24
+ <c-tag
25
+ v-if="tag && Object.keys(tag).length !== 0"
26
+ :label="tag.label"
27
+ :color="tag.color"
28
+ :class="tag.class"
29
+ class="ml-2"
30
+ />
31
+ </label>
32
+ <p
33
+ :class="`mt-0.5 cursor-pointer text-gray-500 ${
34
+ isDisabled ? 'opacity-50' : ''
35
+ }`"
36
+ >
37
+ {{ description }}
38
+ </p>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </template>
43
+ <script>
44
+ import CTag from "../CTag/CTag.vue";
45
+ export default {
46
+ components: { CTag },
47
+ name: "CCheckbox",
48
+ props: {
49
+ label: { type: String },
50
+ description: { type: String },
51
+ value: [Boolean, Number],
52
+ isDisabled: {
53
+ type: Boolean,
54
+ },
55
+ indeterminate: {
56
+ type: Boolean,
57
+ },
58
+ tag: {
59
+ type: Object,
60
+ },
61
+ permanentIndeterminate: {
62
+ type: Boolean,
63
+ },
64
+ unCheckable: {
65
+ type: Boolean,
66
+ },
67
+ checkable: {
68
+ type: Boolean,
69
+ },
70
+ },
71
+ data() {
72
+ return {
73
+ checkedValue: this.value,
74
+ };
75
+ },
76
+ methods: {
77
+ changeValue(e) {
78
+ let selectedValue = 0;
79
+ if (this.permanentIndeterminate) {
80
+ // can never be in any state other than dash
81
+ e.preventDefault();
82
+ if (this.checkedValue == 1) {
83
+ selectedValue = 0;
84
+ } else if (this.checkedValue == 0) {
85
+ selectedValue = 1;
86
+ } else {
87
+ selectedValue = 2;
88
+ }
89
+ } else if (this.unCheckable) {
90
+ // can never be in unchecked state
91
+ if (this.checkedValue == 2) {
92
+ selectedValue = 1;
93
+ } else {
94
+ selectedValue = 2;
95
+ }
96
+ } else if (this.checkable) {
97
+ // can never be in a checked state
98
+ if (this.checkedValue == 2) {
99
+ selectedValue = 0;
100
+ } else {
101
+ selectedValue = 2;
102
+ }
103
+ } else {
104
+ // normal check/uncheck
105
+ if (this.checkedValue == 1) {
106
+ selectedValue = 0;
107
+ } else {
108
+ selectedValue = 1;
109
+ }
110
+ }
111
+ this.$emit("onChange", selectedValue);
112
+ },
113
+ },
114
+ watch: {
115
+ value() {
116
+ this.checkedValue = this.value;
117
+ },
118
+ },
119
+ mounted() {
120
+ this.checkedValue = this.value;
121
+ },
122
+ };
123
+ </script>
@@ -1,3 +1,3 @@
1
- import CCheckbox from './CCheckbox.vue'
2
-
1
+ import CCheckbox from './CCheckbox.vue'
2
+
3
3
  export default CCheckbox
@@ -1,53 +1,53 @@
1
- <template>
2
- <button
3
- type="button"
4
- :disabled="disabled"
5
- class="rounded-full p-1 text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:opacity-50"
6
- :class="classes"
7
- @click="$emit('action')"
8
- >
9
- <c-icon
10
- :type="icon.type"
11
- :name="icon.name"
12
- :viewBox="icon.viewBox"
13
- :class="icon.class"
14
- cursorType="cursor-pointer"
15
- />
16
- </button>
17
- </template>
18
-
19
- <script>
20
- import CIcon from "../CIcon/CIcon.vue";
21
- export default {
22
- components: { CIcon },
23
- name: "CCircularButton",
24
- props: {
25
- type: {
26
- type: String,
27
- default: "black",
28
- },
29
- icon: {
30
- type: Object,
31
- },
32
- disabled: {
33
- type: Boolean,
34
- default: false,
35
- },
36
- },
37
- computed: {
38
- classes() {
39
- const classNames = {
40
- "text-white hover:bg-indigo-800 bg-indigo-700 focus:ring-indigo-600":
41
- this.type == "primary",
42
- "text-white hover:bg-green-800 bg-green-700 focus:ring-green-600 ":
43
- this.type == "success",
44
- "text-white bg-gray-900 hover:bg-gray-800 focus:ring-gray-600 ":
45
- this.type == "black",
46
- "text-white hover:bg-red-800 bg-red-700 focus:ring-red-600 ":
47
- this.type == "danger",
48
- };
49
- return classNames;
50
- },
51
- },
52
- };
53
- </script>
1
+ <template>
2
+ <button
3
+ type="button"
4
+ :disabled="disabled"
5
+ class="rounded-full p-1 text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:opacity-50"
6
+ :class="classes"
7
+ @click="$emit('action')"
8
+ >
9
+ <c-icon
10
+ :type="icon.type"
11
+ :name="icon.name"
12
+ :viewBox="icon.viewBox"
13
+ :class="icon.class"
14
+ cursorType="cursor-pointer"
15
+ />
16
+ </button>
17
+ </template>
18
+
19
+ <script>
20
+ import CIcon from "../CIcon/CIcon.vue";
21
+ export default {
22
+ components: { CIcon },
23
+ name: "CCircularButton",
24
+ props: {
25
+ type: {
26
+ type: String,
27
+ default: "black",
28
+ },
29
+ icon: {
30
+ type: Object,
31
+ },
32
+ disabled: {
33
+ type: Boolean,
34
+ default: false,
35
+ },
36
+ },
37
+ computed: {
38
+ classes() {
39
+ const classNames = {
40
+ "text-white hover:bg-indigo-800 bg-indigo-700 focus:ring-indigo-600":
41
+ this.type == "primary",
42
+ "text-white hover:bg-green-800 bg-green-700 focus:ring-green-600 ":
43
+ this.type == "success",
44
+ "text-white bg-gray-900 hover:bg-gray-800 focus:ring-gray-600 ":
45
+ this.type == "black",
46
+ "text-white hover:bg-red-800 bg-red-700 focus:ring-red-600 ":
47
+ this.type == "danger",
48
+ };
49
+ return classNames;
50
+ },
51
+ },
52
+ };
53
+ </script>
@@ -1,2 +1,2 @@
1
- import CCircularButton from "./CCircularButton.vue";
2
- export default CCircularButton;
1
+ import CCircularButton from "./CCircularButton.vue";
2
+ export default CCircularButton;