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,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