classcard-ui 0.2.487 → 0.2.488

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 +52 -52
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.umd.js +52 -52
  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 +150 -150
  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 +120 -120
  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 +313 -313
  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 +56 -56
  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 +501 -501
  97. package/src/components/CTable/index.js +2 -2
  98. package/src/components/CTabs/CTabs.vue +107 -107
  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 +196 -196
  107. package/src/components/CUpload/index.js +2 -2
  108. package/src/components/index.js +47 -47
  109. package/src/icons.js +250 -250
  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,150 +1,150 @@
1
- <template>
2
- <div>
3
- <slot></slot>
4
- <button
5
- v-if="type == 'tertiary'"
6
- :class="customClasses"
7
- class="flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm text-indigo-600 hover:bg-indigo-100 hover:text-indigo-800 focus:outline-none focus:ring-2 focus:ring-indigo-200 focus:ring-offset-2"
8
- @click.prevent="$emit('action')"
9
- >
10
- <c-icon
11
- v-if="icon"
12
- :type="icon.type"
13
- :class="iconClasses"
14
- :name="icon.name"
15
- :viewBox="icon.viewBox"
16
- ></c-icon
17
- >{{ label }}
18
- <slot></slot>
19
- </button>
20
- <button
21
- v-else-if="type != 'tertiary' && label.length"
22
- :type="type"
23
- :class="classes"
24
- :disabled="disabled"
25
- class="inline-flex items-center rounded-md px-4 py-2 text-sm font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50"
26
- @click.prevent="$emit('action')"
27
- >
28
- <c-icon v-if="isLoading" class="mr-2 h-5 w-5" name="loader"></c-icon>
29
- <c-icon
30
- v-if="icon && !isLoading"
31
- :type="icon.type"
32
- :class="iconClasses"
33
- :name="icon.name"
34
- :viewBox="icon.viewBox"
35
- ></c-icon>
36
- {{ label }}
37
- <slot></slot>
38
- </button>
39
- <button
40
- v-else-if="type != 'tertiary' && label.length == 0"
41
- :type="type"
42
- :class="classes"
43
- :disabled="disabled"
44
- class="inline-flex items-center rounded-md px-3 py-2 text-sm font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50"
45
- @click.prevent="$emit('action')"
46
- >
47
- <c-icon v-if="isLoading" class="mr-2 h-5 w-5" name="loader"></c-icon>
48
- <c-icon
49
- v-if="icon && !isLoading"
50
- :type="icon.type"
51
- :class="iconClasses"
52
- :name="icon.name"
53
- :viewBox="icon.viewBox"
54
- ></c-icon>
55
- <slot></slot>
56
- </button>
57
- </div>
58
- </template>
59
-
60
- <script>
61
- import CIcon from "../CIcon/CIcon.vue";
62
- export default {
63
- name: "CButton",
64
- components: { CIcon },
65
- props: {
66
- label: {
67
- type: String,
68
- },
69
- icon: {
70
- type: Object,
71
- },
72
- type: {
73
- type: String,
74
- default: "primary",
75
- required: true,
76
- },
77
- isLoading: {
78
- type: Boolean,
79
- default: false,
80
- },
81
- disabled: {
82
- type: Boolean,
83
- },
84
- action: {
85
- type: Function,
86
- },
87
- customClasses: {
88
- type: String,
89
- default: "",
90
- },
91
- iconCustomClasses: {
92
- type: String,
93
- default: "",
94
- },
95
- },
96
-
97
- computed: {
98
- classes() {
99
- let classes = {
100
- "text-gray-700 border bg-white border-gray-300 hover:bg-gray-50 focus:ring-indigo-600":
101
- this.type == "white",
102
- "text-indigo-700 bg-indigo-100 hover:bg-indigo-200 focus:ring-indigo-500":
103
- this.type == "secondary",
104
- "text-white hover:bg-indigo-800 bg-indigo-700 focus:ring-indigo-600":
105
- this.type == "primary",
106
- "text-white hover:bg-red-800 bg-red-700 focus:ring-red-600 border border-transparent":
107
- this.type == "danger",
108
- "text-white hover:bg-green-800 bg-green-700 focus:ring-green-600 border border-transparent":
109
- this.type == "success",
110
- "text-green-800 border border-solid border-gray-300 bg-white hover:bg-gray-50 focus:ring-indigo-600":
111
- this.type == "secondary-success",
112
- "text-gray-700 hover:bg-gray-200 bg-gray-100":
113
- this.type == "secondary-gray",
114
- "bg-red-100 text-red-800 hover:bg-red-200 focus:ring-red-200":
115
- this.type == "light-red",
116
- "bg-green-100 text-green-800 hover:bg-green-200 focus:ring-green-200":
117
- this.type == "light-green",
118
- "bg-gray-800 text-white hover:bg-gray-700 focus:ring-gray-500":
119
- this.type == "dark-blue",
120
- "cursor-default pointer-events-none": this.isLoading,
121
- };
122
- classes[this.customClasses] = true;
123
- return classes;
124
- },
125
- iconClasses() {
126
- let iconClasses = {
127
- "h-5 w-5 mr-1": this.iconCustomClasses ? false : true,
128
- "text-indigo-400": this.type == "secondary",
129
- "text-white":
130
- this.type == "success" ||
131
- this.type == "primary" ||
132
- this.type == "danger" ||
133
- this.type == "dark-blue",
134
- "text-gray-400": this.type == "secondary-gray" || this.type == "white",
135
- "text-red-400": this.type == "light-red",
136
- };
137
- iconClasses[this.iconCustomClasses] = true;
138
- return iconClasses;
139
- },
140
- },
141
-
142
- methods: {
143
- onClick() {
144
- this.$emit("onClick");
145
- },
146
- },
147
- };
148
- </script>
149
-
150
- <style></style>
1
+ <template>
2
+ <div>
3
+ <slot></slot>
4
+ <button
5
+ v-if="type == 'tertiary'"
6
+ :class="customClasses"
7
+ class="flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm text-indigo-600 hover:bg-indigo-100 hover:text-indigo-800 focus:outline-none focus:ring-2 focus:ring-indigo-200 focus:ring-offset-2"
8
+ @click.prevent="$emit('action')"
9
+ >
10
+ <c-icon
11
+ v-if="icon"
12
+ :type="icon.type"
13
+ :class="iconClasses"
14
+ :name="icon.name"
15
+ :viewBox="icon.viewBox"
16
+ ></c-icon
17
+ >{{ label }}
18
+ <slot></slot>
19
+ </button>
20
+ <button
21
+ v-else-if="type != 'tertiary' && label.length"
22
+ :type="type"
23
+ :class="classes"
24
+ :disabled="disabled"
25
+ class="inline-flex items-center rounded-md px-4 py-2 text-sm font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50"
26
+ @click.prevent="$emit('action')"
27
+ >
28
+ <c-icon v-if="isLoading" class="mr-2 h-5 w-5" name="loader"></c-icon>
29
+ <c-icon
30
+ v-if="icon && !isLoading"
31
+ :type="icon.type"
32
+ :class="iconClasses"
33
+ :name="icon.name"
34
+ :viewBox="icon.viewBox"
35
+ ></c-icon>
36
+ {{ label }}
37
+ <slot></slot>
38
+ </button>
39
+ <button
40
+ v-else-if="type != 'tertiary' && label.length == 0"
41
+ :type="type"
42
+ :class="classes"
43
+ :disabled="disabled"
44
+ class="inline-flex items-center rounded-md px-3 py-2 text-sm font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50"
45
+ @click.prevent="$emit('action')"
46
+ >
47
+ <c-icon v-if="isLoading" class="mr-2 h-5 w-5" name="loader"></c-icon>
48
+ <c-icon
49
+ v-if="icon && !isLoading"
50
+ :type="icon.type"
51
+ :class="iconClasses"
52
+ :name="icon.name"
53
+ :viewBox="icon.viewBox"
54
+ ></c-icon>
55
+ <slot></slot>
56
+ </button>
57
+ </div>
58
+ </template>
59
+
60
+ <script>
61
+ import CIcon from "../CIcon/CIcon.vue";
62
+ export default {
63
+ name: "CButton",
64
+ components: { CIcon },
65
+ props: {
66
+ label: {
67
+ type: String,
68
+ },
69
+ icon: {
70
+ type: Object,
71
+ },
72
+ type: {
73
+ type: String,
74
+ default: "primary",
75
+ required: true,
76
+ },
77
+ isLoading: {
78
+ type: Boolean,
79
+ default: false,
80
+ },
81
+ disabled: {
82
+ type: Boolean,
83
+ },
84
+ action: {
85
+ type: Function,
86
+ },
87
+ customClasses: {
88
+ type: String,
89
+ default: "",
90
+ },
91
+ iconCustomClasses: {
92
+ type: String,
93
+ default: "",
94
+ },
95
+ },
96
+
97
+ computed: {
98
+ classes() {
99
+ let classes = {
100
+ "text-gray-700 border bg-white border-gray-300 hover:bg-gray-50 focus:ring-indigo-600":
101
+ this.type == "white",
102
+ "text-indigo-700 bg-indigo-100 hover:bg-indigo-200 focus:ring-indigo-500":
103
+ this.type == "secondary",
104
+ "text-white hover:bg-indigo-800 bg-indigo-700 focus:ring-indigo-600":
105
+ this.type == "primary",
106
+ "text-white hover:bg-red-800 bg-red-700 focus:ring-red-600 border border-transparent":
107
+ this.type == "danger",
108
+ "text-white hover:bg-green-800 bg-green-700 focus:ring-green-600 border border-transparent":
109
+ this.type == "success",
110
+ "text-green-800 border border-solid border-gray-300 bg-white hover:bg-gray-50 focus:ring-indigo-600":
111
+ this.type == "secondary-success",
112
+ "text-gray-700 hover:bg-gray-200 bg-gray-100":
113
+ this.type == "secondary-gray",
114
+ "bg-red-100 text-red-800 hover:bg-red-200 focus:ring-red-200":
115
+ this.type == "light-red",
116
+ "bg-green-100 text-green-800 hover:bg-green-200 focus:ring-green-200":
117
+ this.type == "light-green",
118
+ "bg-gray-800 text-white hover:bg-gray-700 focus:ring-gray-500":
119
+ this.type == "dark-blue",
120
+ "cursor-default pointer-events-none": this.isLoading,
121
+ };
122
+ classes[this.customClasses] = true;
123
+ return classes;
124
+ },
125
+ iconClasses() {
126
+ let iconClasses = {
127
+ "h-5 w-5 mr-1": this.iconCustomClasses ? false : true,
128
+ "text-indigo-400": this.type == "secondary",
129
+ "text-white":
130
+ this.type == "success" ||
131
+ this.type == "primary" ||
132
+ this.type == "danger" ||
133
+ this.type == "dark-blue",
134
+ "text-gray-400": this.type == "secondary-gray" || this.type == "white",
135
+ "text-red-400": this.type == "light-red",
136
+ };
137
+ iconClasses[this.iconCustomClasses] = true;
138
+ return iconClasses;
139
+ },
140
+ },
141
+
142
+ methods: {
143
+ onClick() {
144
+ this.$emit("onClick");
145
+ },
146
+ },
147
+ };
148
+ </script>
149
+
150
+ <style></style>
@@ -1,3 +1,3 @@
1
- import CButton from './CButton.vue'
2
-
1
+ import CButton from './CButton.vue'
2
+
3
3
  export default CButton
@@ -1,100 +1,100 @@
1
- <template>
2
- <div>
3
- <span class="-ml-px relative block sm:shadow-sm sm:hidden">
4
- <div>
5
- <button
6
- @click="showButtons = !showButtons"
7
- type="button"
8
- class="relative inline-flex items-center px-2 py-2 rounded-md border border-gray-300 bg-white text-sm font-medium text-gray-900 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-blue-600 focus:border-blue-600 sm:rounded-md sm:px-3"
9
- id="menu-3"
10
- aria-expanded="false"
11
- aria-haspopup="true"
12
- >
13
- <span class="">{{ buttonObject[0].label }}</span>
14
- <c-icon type="solid" name="chevron-down" class="h-5 w-5 ml-2"></c-icon>
15
- </button>
16
- </div>
17
- <div
18
- v-show="showButtons"
19
- class="origin-top-right absolute mt-2 w-full z-10 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none"
20
- role="menu"
21
- aria-orientation="vertical"
22
- >
23
- <div class="py-1">
24
- <a
25
- v-for="button in buttonObject"
26
- v-bind:key="button.label"
27
- href="#"
28
- class="flex px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:bg-gray-100 focus:text-gray-900"
29
- role="menuitem"
30
- >
31
- <div v-if="button.icon == ''" class="h-5"></div>
32
- <c-icon
33
- v-if="button.icon"
34
- :name="button.icon"
35
- type="solid"
36
- class="-ml-1 mr-2 h-5 w-5 text-gray-400"
37
- ></c-icon>
38
- {{ button.label }}
39
- </a>
40
- </div>
41
- </div>
42
- </span>
43
- <span class="relative z-0 inline-flex rounded-md hidden sm:block">
44
- <button
45
- v-for="(button, index) in buttonObject"
46
- v-bind:key="button.label"
47
- type="button"
48
- class="relative inline-flex items-center px-2 py-2 border-r border-l border-t border-b border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-indigo-500 focus:border-indigo-500"
49
- :class="{
50
- 'rounded-r-md border-l-0 border-r rounded-l-none': index == buttonObject.length - 1,
51
- 'rounded-l-md': index == 0,
52
- 'border-r-0': index == 0 && buttonObject.length != 2,
53
- 'px-4': button.label,
54
- }"
55
- @click="handleEvent(button.onClickAction)"
56
- @blur="handleEvent(button.blurAction)"
57
- >
58
- <div v-if="button.icon == ''" class="h-5"></div>
59
- <c-icon
60
- v-if="button.icon"
61
- :name="button.icon"
62
- type="solid"
63
- :class="button.label ? '-ml-1 mr-2' : ''"
64
- class="h-5 w-5 text-gray-400"
65
- ></c-icon>
66
- {{ button.label }}
67
- <slot></slot>
68
- </button>
69
- </span>
70
- </div>
71
- </template>
72
-
73
- <script>
74
- import CIcon from "../CIcon/CIcon.vue";
75
- export default {
76
- name: "CButtonGroup",
77
- components: { CIcon },
78
- props: {
79
- buttonObject: {
80
- type: Array,
81
- required: true,
82
- },
83
- },
84
- data() {
85
- return {
86
- showButtons: false,
87
- };
88
- },
89
- methods: {
90
- handleEvent(function_name) {
91
- if(function_name) function_name()
92
- },
93
- buttonAction(event, value) {
94
- this.$emit("onClick", value);
95
- }
96
- },
97
- };
98
- </script>
99
-
100
- <style></style>
1
+ <template>
2
+ <div>
3
+ <span class="-ml-px relative block sm:shadow-sm sm:hidden">
4
+ <div>
5
+ <button
6
+ @click="showButtons = !showButtons"
7
+ type="button"
8
+ class="relative inline-flex items-center px-2 py-2 rounded-md border border-gray-300 bg-white text-sm font-medium text-gray-900 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-blue-600 focus:border-blue-600 sm:rounded-md sm:px-3"
9
+ id="menu-3"
10
+ aria-expanded="false"
11
+ aria-haspopup="true"
12
+ >
13
+ <span class="">{{ buttonObject[0].label }}</span>
14
+ <c-icon type="solid" name="chevron-down" class="h-5 w-5 ml-2"></c-icon>
15
+ </button>
16
+ </div>
17
+ <div
18
+ v-show="showButtons"
19
+ class="origin-top-right absolute mt-2 w-full z-10 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none"
20
+ role="menu"
21
+ aria-orientation="vertical"
22
+ >
23
+ <div class="py-1">
24
+ <a
25
+ v-for="button in buttonObject"
26
+ v-bind:key="button.label"
27
+ href="#"
28
+ class="flex px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:bg-gray-100 focus:text-gray-900"
29
+ role="menuitem"
30
+ >
31
+ <div v-if="button.icon == ''" class="h-5"></div>
32
+ <c-icon
33
+ v-if="button.icon"
34
+ :name="button.icon"
35
+ type="solid"
36
+ class="-ml-1 mr-2 h-5 w-5 text-gray-400"
37
+ ></c-icon>
38
+ {{ button.label }}
39
+ </a>
40
+ </div>
41
+ </div>
42
+ </span>
43
+ <span class="relative z-0 inline-flex rounded-md hidden sm:block">
44
+ <button
45
+ v-for="(button, index) in buttonObject"
46
+ v-bind:key="button.label"
47
+ type="button"
48
+ class="relative inline-flex items-center px-2 py-2 border-r border-l border-t border-b border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-indigo-500 focus:border-indigo-500"
49
+ :class="{
50
+ 'rounded-r-md border-l-0 border-r rounded-l-none': index == buttonObject.length - 1,
51
+ 'rounded-l-md': index == 0,
52
+ 'border-r-0': index == 0 && buttonObject.length != 2,
53
+ 'px-4': button.label,
54
+ }"
55
+ @click="handleEvent(button.onClickAction)"
56
+ @blur="handleEvent(button.blurAction)"
57
+ >
58
+ <div v-if="button.icon == ''" class="h-5"></div>
59
+ <c-icon
60
+ v-if="button.icon"
61
+ :name="button.icon"
62
+ type="solid"
63
+ :class="button.label ? '-ml-1 mr-2' : ''"
64
+ class="h-5 w-5 text-gray-400"
65
+ ></c-icon>
66
+ {{ button.label }}
67
+ <slot></slot>
68
+ </button>
69
+ </span>
70
+ </div>
71
+ </template>
72
+
73
+ <script>
74
+ import CIcon from "../CIcon/CIcon.vue";
75
+ export default {
76
+ name: "CButtonGroup",
77
+ components: { CIcon },
78
+ props: {
79
+ buttonObject: {
80
+ type: Array,
81
+ required: true,
82
+ },
83
+ },
84
+ data() {
85
+ return {
86
+ showButtons: false,
87
+ };
88
+ },
89
+ methods: {
90
+ handleEvent(function_name) {
91
+ if(function_name) function_name()
92
+ },
93
+ buttonAction(event, value) {
94
+ this.$emit("onClick", value);
95
+ }
96
+ },
97
+ };
98
+ </script>
99
+
100
+ <style></style>
@@ -1,3 +1,3 @@
1
- import CButtonGroup from './CButtonGroup.vue'
2
-
1
+ import CButtonGroup from './CButtonGroup.vue'
2
+
3
3
  export default CButtonGroup