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,176 +1,176 @@
1
- <template>
2
- <div>
3
- <!-- small toggle -->
4
- <div
5
- v-if="size === 'small'"
6
- :class="[
7
- label == '' ? 'items-center' : 'items-start',
8
- disabled ? 'pointer-events-none cursor-default' : 'cursor-pointer',
9
- ]"
10
- class="flex"
11
- >
12
- <span
13
- class="mr-2 flex flex-grow flex-col"
14
- id="smallleft"
15
- v-if="direction == 'left'"
16
- @click="switchValue"
17
- >
18
- <span v-if="label" :class="classes" class="text-gray-900">{{
19
- label
20
- }}</span>
21
- <span v-if="description" class="text-sm text-gray-500">{{
22
- description
23
- }}</span>
24
- </span>
25
- <button
26
- type="button"
27
- class="group disabled-pointer-events-none focus:outline-none relative inline-flex h-5 w-10 flex-shrink-0 cursor-pointer items-center justify-center rounded-full focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:cursor-default disabled:opacity-50"
28
- aria-pressed="false"
29
- @click="switchValue"
30
- :disabled="disabled"
31
- >
32
- <span class="sr-only">Use setting</span>
33
- <span
34
- aria-hidden="true"
35
- class="pointer-events-none absolute h-full w-full rounded-md"
36
- ></span>
37
- <span
38
- aria-hidden="true"
39
- :class="{
40
- 'bg-indigo-600': isToggle,
41
- 'bg-gray-200': !isToggle || isToggle === undefined,
42
- }"
43
- class="pointer-events-none absolute mx-auto h-4 w-9 rounded-full transition-colors duration-200 ease-in-out"
44
- ></span>
45
- <span
46
- aria-hidden="true"
47
- :class="{ 'translate-x-5': isToggle, 'translate-x-0': !isToggle }"
48
- class="pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-full border border-gray-200 bg-white ring-0 transition-transform duration-200 ease-in-out"
49
- ></span>
50
- </button>
51
- <span
52
- class="ml-2 flex flex-col"
53
- id="toggleLabel"
54
- v-if="direction == 'right'"
55
- @click="switchValue"
56
- >
57
- <span v-if="label" :class="classes" class="text-gray-900">{{
58
- label
59
- }}</span>
60
- <span v-if="description" class="text-sm text-gray-500">{{
61
- description
62
- }}</span>
63
- </span>
64
- </div>
65
- <!-- large toggle -->
66
- <div
67
- v-else
68
- :class="[
69
- label == '' ? 'items-center' : 'items-start',
70
- disabled ? 'pointer-events-none cursor-default' : 'cursor-pointer',
71
- ]"
72
- class="flex cursor-pointer justify-between"
73
- >
74
- <span
75
- class="mr-2 flex flex-grow flex-col"
76
- id="toggleLabel"
77
- v-if="direction == 'left'"
78
- @click="switchValue"
79
- >
80
- <span v-if="label" :class="classes" class="text-gray-900">{{
81
- label
82
- }}</span>
83
- <span v-if="description" class="text-sm text-gray-500">{{
84
- description
85
- }}</span>
86
- </span>
87
- <button
88
- type="button"
89
- aria-pressed="false"
90
- :class="{
91
- 'bg-indigo-600': isToggle == 1,
92
- 'bg-gray-200': isToggle == 0 || isToggle === undefined,
93
- 'cursor-default': disabled,
94
- 'cursor-pointer': !disabled,
95
- }"
96
- @click.stop="switchValue"
97
- class="focus:outline-none relative inline-flex h-6 w-11 flex-shrink-0 rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
98
- :disabled="disabled"
99
- >
100
- <span class="sr-only">Use setting</span>
101
- <span
102
- aria-hidden="true"
103
- :class="{
104
- 'translate-x-5': isToggle == 1,
105
- 'translate-x-0': isToggle == 0,
106
- }"
107
- class="inline-block h-5 w-5 transform rounded-full bg-white ring-0 transition duration-200 ease-in-out"
108
- ></span>
109
- </button>
110
- <span
111
- class="ml-2 flex flex-col disabled:opacity-50"
112
- id="toggleLabel"
113
- v-if="direction == 'right'"
114
- >
115
- <span v-if="label" :class="classes" class="text-gray-900">{{
116
- label
117
- }}</span>
118
- <span v-if="description" class="text-sm text-gray-500">{{
119
- description
120
- }}</span>
121
- </span>
122
- </div>
123
- </div>
124
- </template>
125
-
126
- <script>
127
- export default {
128
- name: "CSwitch",
129
- components: {},
130
- props: {
131
- label: {
132
- type: String,
133
- },
134
- description: {
135
- type: String,
136
- },
137
- returnToggleValue: {
138
- type: Function,
139
- },
140
- classes: {
141
- type: String,
142
- },
143
- value: { type: Number },
144
- size: {
145
- type: String,
146
- },
147
- direction: {
148
- type: String,
149
- },
150
- disabled: {
151
- type: Boolean,
152
- default: false,
153
- },
154
- },
155
- data() {
156
- return {
157
- isToggle: this.value,
158
- };
159
- },
160
- methods: {
161
- switchValue() {
162
- if (!this.disabled) {
163
- this.isToggle = this.isToggle === 1 ? 0 : 1;
164
- this.$emit("returnToggleValue", this.isToggle);
165
- }
166
- },
167
- },
168
- watch: {
169
- value() {
170
- this.isToggle = this.value;
171
- },
172
- },
173
- };
174
- </script>
175
-
176
- <style></style>
1
+ <template>
2
+ <div>
3
+ <!-- small toggle -->
4
+ <div
5
+ v-if="size === 'small'"
6
+ :class="[
7
+ label == '' ? 'items-center' : 'items-start',
8
+ disabled ? 'pointer-events-none cursor-default' : 'cursor-pointer',
9
+ ]"
10
+ class="flex"
11
+ >
12
+ <span
13
+ class="mr-2 flex flex-grow flex-col"
14
+ id="smallleft"
15
+ v-if="direction == 'left'"
16
+ @click="switchValue"
17
+ >
18
+ <span v-if="label" :class="classes" class="text-gray-900">{{
19
+ label
20
+ }}</span>
21
+ <span v-if="description" class="text-sm text-gray-500">{{
22
+ description
23
+ }}</span>
24
+ </span>
25
+ <button
26
+ type="button"
27
+ class="group disabled-pointer-events-none focus:outline-none relative inline-flex h-5 w-10 flex-shrink-0 cursor-pointer items-center justify-center rounded-full focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:cursor-default disabled:opacity-50"
28
+ aria-pressed="false"
29
+ @click="switchValue"
30
+ :disabled="disabled"
31
+ >
32
+ <span class="sr-only">Use setting</span>
33
+ <span
34
+ aria-hidden="true"
35
+ class="pointer-events-none absolute h-full w-full rounded-md"
36
+ ></span>
37
+ <span
38
+ aria-hidden="true"
39
+ :class="{
40
+ 'bg-indigo-600': isToggle,
41
+ 'bg-gray-200': !isToggle || isToggle === undefined,
42
+ }"
43
+ class="pointer-events-none absolute mx-auto h-4 w-9 rounded-full transition-colors duration-200 ease-in-out"
44
+ ></span>
45
+ <span
46
+ aria-hidden="true"
47
+ :class="{ 'translate-x-5': isToggle, 'translate-x-0': !isToggle }"
48
+ class="pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-full border border-gray-200 bg-white ring-0 transition-transform duration-200 ease-in-out"
49
+ ></span>
50
+ </button>
51
+ <span
52
+ class="ml-2 flex flex-col"
53
+ id="toggleLabel"
54
+ v-if="direction == 'right'"
55
+ @click="switchValue"
56
+ >
57
+ <span v-if="label" :class="classes" class="text-gray-900">{{
58
+ label
59
+ }}</span>
60
+ <span v-if="description" class="text-sm text-gray-500">{{
61
+ description
62
+ }}</span>
63
+ </span>
64
+ </div>
65
+ <!-- large toggle -->
66
+ <div
67
+ v-else
68
+ :class="[
69
+ label == '' ? 'items-center' : 'items-start',
70
+ disabled ? 'pointer-events-none cursor-default' : 'cursor-pointer',
71
+ ]"
72
+ class="flex cursor-pointer justify-between"
73
+ >
74
+ <span
75
+ class="mr-2 flex flex-grow flex-col"
76
+ id="toggleLabel"
77
+ v-if="direction == 'left'"
78
+ @click="switchValue"
79
+ >
80
+ <span v-if="label" :class="classes" class="text-gray-900">{{
81
+ label
82
+ }}</span>
83
+ <span v-if="description" class="text-sm text-gray-500">{{
84
+ description
85
+ }}</span>
86
+ </span>
87
+ <button
88
+ type="button"
89
+ aria-pressed="false"
90
+ :class="{
91
+ 'bg-indigo-600': isToggle == 1,
92
+ 'bg-gray-200': isToggle == 0 || isToggle === undefined,
93
+ 'cursor-default': disabled,
94
+ 'cursor-pointer': !disabled,
95
+ }"
96
+ @click.stop="switchValue"
97
+ class="focus:outline-none relative inline-flex h-6 w-11 flex-shrink-0 rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
98
+ :disabled="disabled"
99
+ >
100
+ <span class="sr-only">Use setting</span>
101
+ <span
102
+ aria-hidden="true"
103
+ :class="{
104
+ 'translate-x-5': isToggle == 1,
105
+ 'translate-x-0': isToggle == 0,
106
+ }"
107
+ class="inline-block h-5 w-5 transform rounded-full bg-white ring-0 transition duration-200 ease-in-out"
108
+ ></span>
109
+ </button>
110
+ <span
111
+ class="ml-2 flex flex-col disabled:opacity-50"
112
+ id="toggleLabel"
113
+ v-if="direction == 'right'"
114
+ >
115
+ <span v-if="label" :class="classes" class="text-gray-900">{{
116
+ label
117
+ }}</span>
118
+ <span v-if="description" class="text-sm text-gray-500">{{
119
+ description
120
+ }}</span>
121
+ </span>
122
+ </div>
123
+ </div>
124
+ </template>
125
+
126
+ <script>
127
+ export default {
128
+ name: "CSwitch",
129
+ components: {},
130
+ props: {
131
+ label: {
132
+ type: String,
133
+ },
134
+ description: {
135
+ type: String,
136
+ },
137
+ returnToggleValue: {
138
+ type: Function,
139
+ },
140
+ classes: {
141
+ type: String,
142
+ },
143
+ value: { type: Number },
144
+ size: {
145
+ type: String,
146
+ },
147
+ direction: {
148
+ type: String,
149
+ },
150
+ disabled: {
151
+ type: Boolean,
152
+ default: false,
153
+ },
154
+ },
155
+ data() {
156
+ return {
157
+ isToggle: this.value,
158
+ };
159
+ },
160
+ methods: {
161
+ switchValue() {
162
+ if (!this.disabled) {
163
+ this.isToggle = this.isToggle === 1 ? 0 : 1;
164
+ this.$emit("returnToggleValue", this.isToggle);
165
+ }
166
+ },
167
+ },
168
+ watch: {
169
+ value() {
170
+ this.isToggle = this.value;
171
+ },
172
+ },
173
+ };
174
+ </script>
175
+
176
+ <style></style>
@@ -1,3 +1,3 @@
1
- import CSwitch from './CSwitch.vue'
2
-
1
+ import CSwitch from './CSwitch.vue'
2
+
3
3
  export default CSwitch
@@ -1,63 +1,63 @@
1
- <template>
2
- <div>
3
- <div class="border-b border-gray-200">
4
- <div class="mt-2 max-w-5xl pr-4">
5
- <nav class="-mb-px flex space-x-8" aria-label="Tabs">
6
- <button
7
- v-for="(tab, i) in tabs"
8
- :key="i"
9
- :class="[
10
- activeTab === tab
11
- ? 'border-b-2 border-indigo-500 text-indigo-500'
12
- : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700',
13
- 'whitespace-nowrap py-4 px-1 text-sm font-medium',
14
- ]"
15
- @click="handleChangeTab(tab)"
16
- aria-current="page"
17
- >
18
- {{ tab }}
19
- </button>
20
- </nav>
21
- </div>
22
- </div>
23
- <div>
24
- <component
25
- :is="currentTabComponent"
26
- :currentTabComponent="currentTabComponent"
27
- :activeTab="activeTab"
28
- :data="data"
29
- />
30
- </div>
31
- </div>
32
- </template>
33
-
34
- <script>
35
- export default {
36
- name: "CTabLazy",
37
- props: {
38
- tabs: {
39
- type: Array,
40
- required: true,
41
- },
42
- currentTabComponent: {
43
- type: String,
44
- required: true,
45
- },
46
- data: {
47
- type: Object,
48
- required: false,
49
- },
50
- },
51
- data() {
52
- return {
53
- activeTab: this.tabs[0],
54
- };
55
- },
56
- methods: {
57
- handleChangeTab(tab) {
58
- this.activeTab = tab;
59
- this.$emit("switcTab", this.activeTab);
60
- },
61
- },
62
- };
63
- </script>
1
+ <template>
2
+ <div>
3
+ <div class="border-b border-gray-200">
4
+ <div class="mt-2 max-w-5xl pr-4">
5
+ <nav class="-mb-px flex space-x-8" aria-label="Tabs">
6
+ <button
7
+ v-for="(tab, i) in tabs"
8
+ :key="i"
9
+ :class="[
10
+ activeTab === tab
11
+ ? 'border-b-2 border-indigo-500 text-indigo-500'
12
+ : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700',
13
+ 'whitespace-nowrap py-4 px-1 text-sm font-medium',
14
+ ]"
15
+ @click="handleChangeTab(tab)"
16
+ aria-current="page"
17
+ >
18
+ {{ tab }}
19
+ </button>
20
+ </nav>
21
+ </div>
22
+ </div>
23
+ <div>
24
+ <component
25
+ :is="currentTabComponent"
26
+ :currentTabComponent="currentTabComponent"
27
+ :activeTab="activeTab"
28
+ :data="data"
29
+ />
30
+ </div>
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ export default {
36
+ name: "CTabLazy",
37
+ props: {
38
+ tabs: {
39
+ type: Array,
40
+ required: true,
41
+ },
42
+ currentTabComponent: {
43
+ type: String,
44
+ required: true,
45
+ },
46
+ data: {
47
+ type: Object,
48
+ required: false,
49
+ },
50
+ },
51
+ data() {
52
+ return {
53
+ activeTab: this.tabs[0],
54
+ };
55
+ },
56
+ methods: {
57
+ handleChangeTab(tab) {
58
+ this.activeTab = tab;
59
+ this.$emit("switcTab", this.activeTab);
60
+ },
61
+ },
62
+ };
63
+ </script>
@@ -1,2 +1,2 @@
1
- import CTabLazy from "./CTabLazy.vue";
2
- export default CTabLazy;
1
+ import CTabLazy from "./CTabLazy.vue";
2
+ export default CTabLazy;