classcard-ui 0.2.471 → 0.2.472

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 (173) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +61 -65
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.css +1 -1
  5. package/dist/classcard-ui.umd.js +61 -65
  6. package/dist/classcard-ui.umd.js.map +1 -1
  7. package/dist/classcard-ui.umd.min.js +1 -1
  8. package/dist/classcard-ui.umd.min.js.map +1 -1
  9. package/package.json +81 -81
  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 +104 -104
  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 +89 -89
  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 +148 -148
  26. package/src/components/CButton/index.js +2 -2
  27. package/src/components/CButtonGroup/CButtonGroup.vue +100 -100
  28. package/src/components/CButtonGroup/index.js +2 -2
  29. package/src/components/CButtonIcon/CButtonIcon.vue +108 -108
  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 +103 -103
  34. package/src/components/CButtonSelect/index.js +2 -2
  35. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +168 -168
  36. package/src/components/CButtonWithDropdown/index.js +2 -2
  37. package/src/components/CCard/CCard.vue +49 -49
  38. package/src/components/CCard/index.js +2 -2
  39. package/src/components/CCheckbox/CCheckbox.vue +70 -70
  40. package/src/components/CCheckbox/index.js +2 -2
  41. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +99 -99
  42. package/src/components/CCollapsibleSection/index.js +2 -2
  43. package/src/components/CColorDots/CColorDots.vue +35 -35
  44. package/src/components/CColorDots/index.js +3 -3
  45. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +118 -118
  46. package/src/components/CConfirmActionModal/index.js +3 -3
  47. package/src/components/CDatepicker/CDatepicker.vue +134 -134
  48. package/src/components/CDatepicker/index.js +2 -2
  49. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  50. package/src/components/CDualSelect/index.js +2 -2
  51. package/src/components/CEditor/CEditor.vue +91 -91
  52. package/src/components/CEditor/index.js +2 -2
  53. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +52 -52
  54. package/src/components/CFormSectionHeading/index.js +2 -2
  55. package/src/components/CGroupedSelect/CGroupedSelect.vue +212 -212
  56. package/src/components/CGroupedSelect/index.js +3 -3
  57. package/src/components/CIcon/CIcon.vue +72 -72
  58. package/src/components/CIcon/index.js +2 -2
  59. package/src/components/CIconDropdown/CIconDropdown.vue +94 -94
  60. package/src/components/CIconDropdown/index.js +2 -2
  61. package/src/components/CInput/CInput.vue +115 -115
  62. package/src/components/CInput/index.js +2 -2
  63. package/src/components/CInputAddon/CInputAddon.vue +199 -199
  64. package/src/components/CInputAddon/index.js +2 -2
  65. package/src/components/CInputEmail/CInputEmail.vue +84 -84
  66. package/src/components/CInputEmail/index.js +2 -2
  67. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  68. package/src/components/CModalHeading/index.js +2 -2
  69. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +39 -39
  70. package/src/components/CModuleHelpLinks/index.js +3 -3
  71. package/src/components/CMultiselect/CMultiselect.vue +311 -318
  72. package/src/components/CMultiselect/index.js +2 -2
  73. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  74. package/src/components/CMultiselectr/index.js +2 -2
  75. package/src/components/CPageHeading/CPageHeading.vue +56 -56
  76. package/src/components/CPageHeading/index.js +2 -2
  77. package/src/components/CPagination/CPagination.vue +202 -202
  78. package/src/components/CPagination/index.js +2 -2
  79. package/src/components/CPhoneNumber/CPhoneNumber.vue +62 -62
  80. package/src/components/CPhoneNumber/index.js +2 -2
  81. package/src/components/CRadio/CRadio.vue +70 -70
  82. package/src/components/CRadio/index.js +2 -2
  83. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  84. package/src/components/CRangeSlider/index.js +2 -2
  85. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +89 -89
  86. package/src/components/CReorderableStackedList/index.js +2 -2
  87. package/src/components/CSelect/CSelect.vue +283 -283
  88. package/src/components/CSelect/index.js +2 -2
  89. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  90. package/src/components/CSmallTimeline/index.js +2 -2
  91. package/src/components/CStackedList/CStackedList.vue +87 -87
  92. package/src/components/CStackedList/index.js +2 -2
  93. package/src/components/CStats/CStats.vue +88 -88
  94. package/src/components/CStats/index.js +2 -2
  95. package/src/components/CSwitch/CSwitch.vue +132 -132
  96. package/src/components/CSwitch/index.js +2 -2
  97. package/src/components/CTable/CTable.vue +495 -495
  98. package/src/components/CTable/index.js +2 -2
  99. package/src/components/CTabs/CTabs.vue +107 -107
  100. package/src/components/CTabs/index.js +2 -2
  101. package/src/components/CTag/CTag.vue +36 -36
  102. package/src/components/CTag/index.js +2 -2
  103. package/src/components/CTextarea/CTextarea.vue +85 -85
  104. package/src/components/CTextarea/index.js +2 -2
  105. package/src/components/CTimeline/CTimeline.vue +237 -237
  106. package/src/components/CTimeline/index.js +2 -2
  107. package/src/components/CUpload/CUpload.vue +196 -194
  108. package/src/components/CUpload/index.js +2 -2
  109. package/src/components/index.js +47 -47
  110. package/src/icons.js +244 -244
  111. package/src/main.js +22 -22
  112. package/src/stories/CAlerts.stories.js +37 -37
  113. package/src/stories/CAnchorTabs.stories.js +29 -29
  114. package/src/stories/CAnchorTag.stories.js +36 -36
  115. package/src/stories/CAvatar.stories.js +38 -38
  116. package/src/stories/CAvatarGroup.stories.js +100 -100
  117. package/src/stories/CBasicTable.stories.js +316 -316
  118. package/src/stories/CBreadcrumbs.stories.js +24 -24
  119. package/src/stories/CButton.stories.js +46 -46
  120. package/src/stories/CButtonGroup.stories.js +33 -33
  121. package/src/stories/CButtonIcon.stories.js +27 -27
  122. package/src/stories/CButtonLink.stories.js +24 -24
  123. package/src/stories/CButtonSelect.stories.js +32 -32
  124. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  125. package/src/stories/CCard.stories.js +30 -30
  126. package/src/stories/CCheckbox.stories.js +29 -29
  127. package/src/stories/CCollapsibleSection.stories.js +28 -28
  128. package/src/stories/CColorDots.stories.js +28 -28
  129. package/src/stories/CConfirmActionModal.stories.js +59 -59
  130. package/src/stories/CDatepicker.stories.js +30 -30
  131. package/src/stories/CDualSelect.stories.js +29 -29
  132. package/src/stories/CEditor.stories.js +30 -30
  133. package/src/stories/CFormSectionHeading.stories.js +34 -34
  134. package/src/stories/CGroupedSelect.stories.js +69 -69
  135. package/src/stories/CIcon.stories.js +26 -26
  136. package/src/stories/CIconDropdown.stories.js +39 -39
  137. package/src/stories/CInput.stories.js +36 -36
  138. package/src/stories/CInputAddon.stories.js +37 -37
  139. package/src/stories/CInputEmail.stories.js +27 -27
  140. package/src/stories/CModalHeading.stories.js +25 -25
  141. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  142. package/src/stories/CMultiselect.stories.js +97 -97
  143. package/src/stories/CMultiselectr.stories.js +23 -23
  144. package/src/stories/CPageHeading.stories.js +32 -32
  145. package/src/stories/CPagination.stories.js +30 -30
  146. package/src/stories/CPhoneNumber.stories.js +29 -29
  147. package/src/stories/CRadio.stories.js +36 -36
  148. package/src/stories/CRangeSlider.stories.js +23 -23
  149. package/src/stories/CReorderableStackedList.stories.js +23 -23
  150. package/src/stories/CSelect.stories.js +50 -50
  151. package/src/stories/CSmallTimeline.stories.js +26 -26
  152. package/src/stories/CStackedList.stories.js +37 -37
  153. package/src/stories/CStats.stories.js +33 -33
  154. package/src/stories/CSwitch.stories.js +28 -28
  155. package/src/stories/CTable.stories.js +77 -77
  156. package/src/stories/CTabs.stories.js +29 -29
  157. package/src/stories/CTag.stories.js +23 -23
  158. package/src/stories/CTextarea.stories.js +32 -32
  159. package/src/stories/CTimeline.stories.js +26 -26
  160. package/src/stories/CUpload.stories.js +36 -36
  161. package/src/stories/Introduction.stories.mdx +207 -207
  162. package/src/stories/Page.vue +88 -88
  163. package/src/stories/assets/code-brackets.svg +0 -0
  164. package/src/stories/assets/colors.svg +0 -0
  165. package/src/stories/assets/comments.svg +0 -0
  166. package/src/stories/assets/direction.svg +0 -0
  167. package/src/stories/assets/flow.svg +0 -0
  168. package/src/stories/assets/plugin.svg +0 -0
  169. package/src/stories/assets/repo.svg +0 -0
  170. package/src/stories/assets/stackalt.svg +0 -0
  171. package/src/stories/header.css +26 -26
  172. package/src/stories/page.css +69 -69
  173. package/src/stories/utils.css +17 -17
@@ -1,62 +1,62 @@
1
- <template>
2
- <div>
3
- <label class="text-sm text-gray-900">{{ label }}</label>
4
- <div class="mt-1 w-full shadow-sm">
5
- <vue-tel-input v-bind="bindProps" :autoFormat="false" v-model="value"></vue-tel-input>
6
- </div>
7
- </div>
8
- </template>
9
- <script>
10
- import { VueTelInput } from "vue-tel-input";
11
- export default {
12
- name: "CPhoneNumber",
13
- components: {
14
- VueTelInput,
15
- },
16
- props: {
17
- // eslint-disable-next-line vue/require-prop-type-constructor
18
- phone: {
19
- type: String,
20
- },
21
- label: String,
22
- },
23
- data() {
24
- return {
25
- value: this.phone,
26
- bindProps: {
27
- placeholder: "Enter phone number",
28
- inputClasses: ["px-3", "py-2", "text-sm"],
29
- inputId: "c-phone",
30
- wrapperClasses: "c-phone-wrapper",
31
- showDialCode: false,
32
- enabledCountryCode: false,
33
- mode: "international",
34
- validCharactersOnly: true,
35
- },
36
- };
37
- },
38
- watch: {
39
- value(newVal) {
40
- this.$emit("onChange", newVal);
41
- },
42
- },
43
- };
44
- </script>
45
- <style>
46
- .vue-tel-input {
47
- border: 1px solid #d1d5db !important;
48
- @apply text-gray-900;
49
- }
50
-
51
- #c-phone {
52
- border-top-right-radius: 0.375rem;
53
- border-bottom-right-radius: 0.375rem;
54
- }
55
- .c-phone-wrapper {
56
- border-radius: 0.375rem !important;
57
- }
58
- .vti__dropdown:hover {
59
- border-top-left-radius: 0.375rem;
60
- border-bottom-left-radius: 0.375rem;
61
- }
62
- </style>
1
+ <template>
2
+ <div>
3
+ <label class="text-sm text-gray-900">{{ label }}</label>
4
+ <div class="mt-1 w-full shadow-sm">
5
+ <vue-tel-input v-bind="bindProps" :autoFormat="false" v-model="value"></vue-tel-input>
6
+ </div>
7
+ </div>
8
+ </template>
9
+ <script>
10
+ import { VueTelInput } from "vue-tel-input";
11
+ export default {
12
+ name: "CPhoneNumber",
13
+ components: {
14
+ VueTelInput,
15
+ },
16
+ props: {
17
+ // eslint-disable-next-line vue/require-prop-type-constructor
18
+ phone: {
19
+ type: String,
20
+ },
21
+ label: String,
22
+ },
23
+ data() {
24
+ return {
25
+ value: this.phone,
26
+ bindProps: {
27
+ placeholder: "Enter phone number",
28
+ inputClasses: ["px-3", "py-2", "text-sm"],
29
+ inputId: "c-phone",
30
+ wrapperClasses: "c-phone-wrapper",
31
+ showDialCode: false,
32
+ enabledCountryCode: false,
33
+ mode: "international",
34
+ validCharactersOnly: true,
35
+ },
36
+ };
37
+ },
38
+ watch: {
39
+ value(newVal) {
40
+ this.$emit("onChange", newVal);
41
+ },
42
+ },
43
+ };
44
+ </script>
45
+ <style>
46
+ .vue-tel-input {
47
+ border: 1px solid #d1d5db !important;
48
+ @apply text-gray-900;
49
+ }
50
+
51
+ #c-phone {
52
+ border-top-right-radius: 0.375rem;
53
+ border-bottom-right-radius: 0.375rem;
54
+ }
55
+ .c-phone-wrapper {
56
+ border-radius: 0.375rem !important;
57
+ }
58
+ .vti__dropdown:hover {
59
+ border-top-left-radius: 0.375rem;
60
+ border-bottom-left-radius: 0.375rem;
61
+ }
62
+ </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,70 +1,70 @@
1
- <template>
2
- <div>
3
- <div class="bg-white rounded-md -space-y-px">
4
- <div
5
- class="relative rounded-tl-md rounded-tr-md pb-5"
6
- v-for="item in items"
7
- v-bind:key="item.label"
8
- >
9
- <div class="flex items-center h-5">
10
- <input
11
- type="radio"
12
- :value="item.value"
13
- :name="name"
14
- v-model="selectedItem"
15
- @click="onChange(item.value)"
16
- class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 cursor-pointer border-gray-300 disabled:opacity-50"
17
- :disabled="isDisabled"
18
- />
19
- <label class="ml-3 flex flex-col cursor-pointer" @click="onChange(item.value)">
20
- <span class="block text-sm font-medium">
21
- {{ item.label }}
22
- </span>
23
- <span class="block text-sm text-gray-500">
24
- {{ item.description }}
25
- </span>
26
- </label>
27
- </div>
28
- <slot v-if="item.value === selectedItem" :name="item.value" />
29
- </div>
30
- </div>
31
- </div>
32
- </template>
33
-
34
- <script>
35
- export default {
36
- name: "CRadio",
37
- props: {
38
- items: {
39
- type: Array,
40
- required: true,
41
- },
42
- selectedOption: {
43
- type: String,
44
- },
45
- isDisabled: {
46
- type: Boolean,
47
- },
48
- name: {
49
- type: String,
50
- required: true,
51
- },
52
- },
53
- data() {
54
- return {
55
- selectedItem: this.selectedOption,
56
- };
57
- },
58
- methods: {
59
- onChange(selectedValue) {
60
- this.$emit("onChange", selectedValue);
61
- this.selectedItem = selectedValue;
62
- },
63
- },
64
- watch: {
65
- selectedOption() {
66
- this.selectedItem = this.selectedOption;
67
- },
68
- },
69
- };
70
- </script>
1
+ <template>
2
+ <div>
3
+ <div class="bg-white rounded-md -space-y-px">
4
+ <div
5
+ class="relative rounded-tl-md rounded-tr-md pb-5"
6
+ v-for="item in items"
7
+ v-bind:key="item.label"
8
+ >
9
+ <div class="flex items-center h-5">
10
+ <input
11
+ type="radio"
12
+ :value="item.value"
13
+ :name="name"
14
+ v-model="selectedItem"
15
+ @click="onChange(item.value)"
16
+ class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 cursor-pointer border-gray-300 disabled:opacity-50"
17
+ :disabled="isDisabled"
18
+ />
19
+ <label class="ml-3 flex flex-col cursor-pointer" @click="onChange(item.value)">
20
+ <span class="block text-sm font-medium">
21
+ {{ item.label }}
22
+ </span>
23
+ <span class="block text-sm text-gray-500">
24
+ {{ item.description }}
25
+ </span>
26
+ </label>
27
+ </div>
28
+ <slot v-if="item.value === selectedItem" :name="item.value" />
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ export default {
36
+ name: "CRadio",
37
+ props: {
38
+ items: {
39
+ type: Array,
40
+ required: true,
41
+ },
42
+ selectedOption: {
43
+ type: String,
44
+ },
45
+ isDisabled: {
46
+ type: Boolean,
47
+ },
48
+ name: {
49
+ type: String,
50
+ required: true,
51
+ },
52
+ },
53
+ data() {
54
+ return {
55
+ selectedItem: this.selectedOption,
56
+ };
57
+ },
58
+ methods: {
59
+ onChange(selectedValue) {
60
+ this.$emit("onChange", selectedValue);
61
+ this.selectedItem = selectedValue;
62
+ },
63
+ },
64
+ watch: {
65
+ selectedOption() {
66
+ this.selectedItem = this.selectedOption;
67
+ },
68
+ },
69
+ };
70
+ </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
@@ -1,89 +1,89 @@
1
- <template>
2
- <div>
3
- <ul>
4
- <li
5
- v-for="items in listItems"
6
- v-bind:key="items.size"
7
- class="flex items-center py-3"
8
- :class="{ 'cursor-pointer': items.collapse }"
9
- v-on="items.collapse ? { click: () => collapseList() } : null"
10
- >
11
- <c-icon
12
- v-if="items.collapse"
13
- :name="showSection ? 'chevron-down' : 'chevron-right'"
14
- type="solid"
15
- class="mt-3 mr-3 h-5 w-5 flex-none text-gray-900"
16
- ></c-icon>
17
- <c-icon
18
- v-if="items.reorder"
19
- name="menu-solid"
20
- type="solid"
21
- class="handle mr-3 h-5 w-5 flex-none text-gray-500"
22
- ></c-icon>
23
- <c-avatar
24
- :size="items.size"
25
- :rounded="items.rounded"
26
- :image="items.image"
27
- :imageClasses="items.imageClasses"
28
- class="flex-none"
29
- ></c-avatar>
30
- <div class="flex min-w-0 flex-1 items-center justify-between">
31
- <div class="ml-3 min-w-0 flex-1">
32
- <div>
33
- <div class="-m-1 flex flex-wrap items-center">
34
- <p class="m-1 text-sm font-medium text-gray-900">
35
- {{ items.heading }}
36
- </p>
37
- <c-tag v-if="items.tag" label="Active" class="m-1"></c-tag>
38
- <c-tag v-if="items.tag" label="Inactive" class="m-1"></c-tag>
39
- <c-tag v-if="items.tag" label="Tag 1" class="m-1"></c-tag>
40
- <c-tag v-if="items.tag" label="Tag 2" class="m-1"></c-tag>
41
- </div>
42
- <p class="mt-1 text-sm text-gray-500">{{ items.description }}</p>
43
- <div v-if="showSection" class="mt-3">
44
- <slot></slot>
45
- </div>
46
- </div>
47
- </div>
48
- <div class="flex flex-none items-center">
49
- <slot name="icons"></slot>
50
- <button
51
- type="button"
52
- v-if="items.listIcon"
53
- @click="$emit('remove')"
54
- class="focus:outline-none"
55
- >
56
- <!-- slot for delete icons -->
57
- <slot name="removeIcons"></slot>
58
- </button>
59
- </div>
60
- </div>
61
- </li>
62
- </ul>
63
- </div>
64
- </template>
65
- <script>
66
- import CAvatar from "../CAvatar/CAvatar.vue";
67
- import CTag from "../CTag/CTag.vue";
68
- import CIcon from "../CIcon/CIcon.vue";
69
- export default {
70
- name: "CReorderableStackedList",
71
- components: { CAvatar, CTag, CIcon },
72
- props: {
73
- listItems: {
74
- type: Array,
75
- required: true,
76
- },
77
- },
78
- data() {
79
- return {
80
- showSection: false,
81
- };
82
- },
83
- methods: {
84
- collapseList() {
85
- this.showSection = !this.showSection;
86
- },
87
- },
88
- };
89
- </script>
1
+ <template>
2
+ <div>
3
+ <ul>
4
+ <li
5
+ v-for="items in listItems"
6
+ v-bind:key="items.size"
7
+ class="flex items-center py-3"
8
+ :class="{ 'cursor-pointer': items.collapse }"
9
+ v-on="items.collapse ? { click: () => collapseList() } : null"
10
+ >
11
+ <c-icon
12
+ v-if="items.collapse"
13
+ :name="showSection ? 'chevron-down' : 'chevron-right'"
14
+ type="solid"
15
+ class="mt-3 mr-3 h-5 w-5 flex-none text-gray-900"
16
+ ></c-icon>
17
+ <c-icon
18
+ v-if="items.reorder"
19
+ name="menu-solid"
20
+ type="solid"
21
+ class="handle mr-3 h-5 w-5 flex-none text-gray-500"
22
+ ></c-icon>
23
+ <c-avatar
24
+ :size="items.size"
25
+ :rounded="items.rounded"
26
+ :image="items.image"
27
+ :imageClasses="items.imageClasses"
28
+ class="flex-none"
29
+ ></c-avatar>
30
+ <div class="flex min-w-0 flex-1 items-center justify-between">
31
+ <div class="ml-3 min-w-0 flex-1">
32
+ <div>
33
+ <div class="-m-1 flex flex-wrap items-center">
34
+ <p class="m-1 text-sm font-medium text-gray-900">
35
+ {{ items.heading }}
36
+ </p>
37
+ <c-tag v-if="items.tag" label="Active" class="m-1"></c-tag>
38
+ <c-tag v-if="items.tag" label="Inactive" class="m-1"></c-tag>
39
+ <c-tag v-if="items.tag" label="Tag 1" class="m-1"></c-tag>
40
+ <c-tag v-if="items.tag" label="Tag 2" class="m-1"></c-tag>
41
+ </div>
42
+ <p class="mt-1 text-sm text-gray-500">{{ items.description }}</p>
43
+ <div v-if="showSection" class="mt-3">
44
+ <slot></slot>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <div class="flex flex-none items-center">
49
+ <slot name="icons"></slot>
50
+ <button
51
+ type="button"
52
+ v-if="items.listIcon"
53
+ @click="$emit('remove')"
54
+ class="focus:outline-none"
55
+ >
56
+ <!-- slot for delete icons -->
57
+ <slot name="removeIcons"></slot>
58
+ </button>
59
+ </div>
60
+ </div>
61
+ </li>
62
+ </ul>
63
+ </div>
64
+ </template>
65
+ <script>
66
+ import CAvatar from "../CAvatar/CAvatar.vue";
67
+ import CTag from "../CTag/CTag.vue";
68
+ import CIcon from "../CIcon/CIcon.vue";
69
+ export default {
70
+ name: "CReorderableStackedList",
71
+ components: { CAvatar, CTag, CIcon },
72
+ props: {
73
+ listItems: {
74
+ type: Array,
75
+ required: true,
76
+ },
77
+ },
78
+ data() {
79
+ return {
80
+ showSection: false,
81
+ };
82
+ },
83
+ methods: {
84
+ collapseList() {
85
+ this.showSection = !this.showSection;
86
+ },
87
+ },
88
+ };
89
+ </script>
@@ -1,3 +1,3 @@
1
- import CReorderableStackedList from './CReorderableStackedList.vue'
2
-
1
+ import CReorderableStackedList from './CReorderableStackedList.vue'
2
+
3
3
  export default CReorderableStackedList