classcard-ui 0.2.442 → 0.2.444

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 +55 -56
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.umd.js +55 -56
  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 +148 -148
  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 +118 -118
  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 +318 -318
  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 +490 -490
  97. package/src/components/CTable/index.js +2 -2
  98. package/src/components/CTabs/CTabs.vue +110 -109
  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 +194 -194
  107. package/src/components/CUpload/index.js +2 -2
  108. package/src/components/index.js +47 -47
  109. package/src/icons.js +231 -231
  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,99 +1,99 @@
1
- <template>
2
- <div>
3
- <div
4
- :class="divider || showSection ? 'border-b border-gray-200 pb-2' : ''"
5
- class="flex flex-row items-center justify-between cursor-pointer"
6
- @click.self="collapse"
7
- >
8
- <!-- left and right arrow icon as per opening and closing of collapsible -->
9
- <div
10
- class="flex flex-row items-center"
11
- @click="collapse"
12
- >
13
- <c-icon
14
- :name="showSection ? 'chevron-down' : 'chevron-right'"
15
- class="text-gray-900 h-5 w-5"
16
- type="solid"
17
- ></c-icon>
18
- <!-- label of the collapsible section -->
19
- <div
20
- :class="{ 'py-2': tabAction }"
21
- class="border-transparent text-gray-900 hover:text-gray-700 hover:border-gray-300 whitespace-nowrap font-semibold text-base ml-1"
22
- >
23
- {{ label }}
24
- </div>
25
- </div>
26
- <!-- tertiary button to render on right side of collapsible section -->
27
- <c-button
28
- v-if="tabAction && showSection"
29
- type="tertiary"
30
- :label="buttonLabel"
31
- @action="action"
32
- ></c-button>
33
- <!-- anchor tag to render on right side of collapsible section -->
34
- <c-anchor-tag
35
- v-if="tabLink && showSection"
36
- :label="tabLink.label"
37
- :action="action"
38
- ></c-anchor-tag>
39
- </div>
40
- <!-- content to render in collapsible section -->
41
- <div class="text-sm text-gray-500 mt-5" v-if="showSection">
42
- <slot></slot>
43
- </div>
44
- </div>
45
- </template>
46
-
47
- <script>
48
- import CIcon from "../CIcon/CIcon.vue";
49
- import CButton from "../CButton/CButton.vue";
50
- import CAnchorTag from "../CAnchorTag/CAnchorTag.vue";
51
- export default {
52
- name: "CCollapsibleSection",
53
- components: { CIcon, CButton, CAnchorTag },
54
- props: {
55
- // label of section
56
- label: {
57
- type: String,
58
- },
59
- // text to render on tertiary button
60
- buttonLabel: {
61
- type: String,
62
- },
63
- // whether to show the divider below section heading
64
- divider: {
65
- type: Boolean,
66
- },
67
- isCollapsed: {
68
- type: Boolean,
69
- default: true,
70
- },
71
- // to render button on right side of section heading
72
- tabAction: { type: Boolean },
73
- // link to render on right side of section
74
- tabLink: { type: Object },
75
- // action to emit on click of link/button
76
- action: {
77
- type: Function,
78
- },
79
- },
80
- data() {
81
- return {
82
- showSection: this.isCollapsed,
83
- };
84
- },
85
- methods: {
86
- collapse() {
87
- console.log("collapsing")
88
- this.showSection = !this.showSection;
89
- },
90
- },
91
- watch: {
92
- isCollapsed() {
93
- this.showSection = this.isCollapsed;
94
- },
95
- },
96
- };
97
- </script>
98
-
99
- <style></style>
1
+ <template>
2
+ <div>
3
+ <div
4
+ :class="divider || showSection ? 'border-b border-gray-200 pb-2' : ''"
5
+ class="flex flex-row items-center justify-between cursor-pointer"
6
+ @click.self="collapse"
7
+ >
8
+ <!-- left and right arrow icon as per opening and closing of collapsible -->
9
+ <div
10
+ class="flex flex-row items-center"
11
+ @click="collapse"
12
+ >
13
+ <c-icon
14
+ :name="showSection ? 'chevron-down' : 'chevron-right'"
15
+ class="text-gray-900 h-5 w-5"
16
+ type="solid"
17
+ ></c-icon>
18
+ <!-- label of the collapsible section -->
19
+ <div
20
+ :class="{ 'py-2': tabAction }"
21
+ class="border-transparent text-gray-900 hover:text-gray-700 hover:border-gray-300 whitespace-nowrap font-semibold text-base ml-1"
22
+ >
23
+ {{ label }}
24
+ </div>
25
+ </div>
26
+ <!-- tertiary button to render on right side of collapsible section -->
27
+ <c-button
28
+ v-if="tabAction && showSection"
29
+ type="tertiary"
30
+ :label="buttonLabel"
31
+ @action="action"
32
+ ></c-button>
33
+ <!-- anchor tag to render on right side of collapsible section -->
34
+ <c-anchor-tag
35
+ v-if="tabLink && showSection"
36
+ :label="tabLink.label"
37
+ :action="action"
38
+ ></c-anchor-tag>
39
+ </div>
40
+ <!-- content to render in collapsible section -->
41
+ <div class="text-sm text-gray-500 mt-5" v-if="showSection">
42
+ <slot></slot>
43
+ </div>
44
+ </div>
45
+ </template>
46
+
47
+ <script>
48
+ import CIcon from "../CIcon/CIcon.vue";
49
+ import CButton from "../CButton/CButton.vue";
50
+ import CAnchorTag from "../CAnchorTag/CAnchorTag.vue";
51
+ export default {
52
+ name: "CCollapsibleSection",
53
+ components: { CIcon, CButton, CAnchorTag },
54
+ props: {
55
+ // label of section
56
+ label: {
57
+ type: String,
58
+ },
59
+ // text to render on tertiary button
60
+ buttonLabel: {
61
+ type: String,
62
+ },
63
+ // whether to show the divider below section heading
64
+ divider: {
65
+ type: Boolean,
66
+ },
67
+ isCollapsed: {
68
+ type: Boolean,
69
+ default: true,
70
+ },
71
+ // to render button on right side of section heading
72
+ tabAction: { type: Boolean },
73
+ // link to render on right side of section
74
+ tabLink: { type: Object },
75
+ // action to emit on click of link/button
76
+ action: {
77
+ type: Function,
78
+ },
79
+ },
80
+ data() {
81
+ return {
82
+ showSection: this.isCollapsed,
83
+ };
84
+ },
85
+ methods: {
86
+ collapse() {
87
+ console.log("collapsing")
88
+ this.showSection = !this.showSection;
89
+ },
90
+ },
91
+ watch: {
92
+ isCollapsed() {
93
+ this.showSection = this.isCollapsed;
94
+ },
95
+ },
96
+ };
97
+ </script>
98
+
99
+ <style></style>
@@ -1,3 +1,3 @@
1
- import CCollapsibleSection from './CCollapsibleSection.vue'
2
-
1
+ import CCollapsibleSection from './CCollapsibleSection.vue'
2
+
3
3
  export default CCollapsibleSection
@@ -1,35 +1,35 @@
1
- <template>
2
- <div class="flex items-center">
3
- <span class="h-1.5 w-1.5 rounded-full" :class="colorClasses" aria-hidden="true"></span>
4
- <div class="ml-2 text-sm font-medium">
5
- {{ label }}
6
- </div>
7
- </div>
8
- </template>
9
- <script>
10
- export default {
11
- name: "CColorDots",
12
- props: {
13
- color: {
14
- type: String,
15
- },
16
- label: {
17
- type: String,
18
- },
19
- },
20
- computed: {
21
- colorClasses() {
22
- return {
23
- "bg-gray-500": this.color == "gray",
24
- "bg-red-500": this.color == "red",
25
- "bg-yellow-500": this.color == "yellow",
26
- "bg-green-500": this.color == "green",
27
- "bg-blue-500": this.color == "indigo",
28
- "bg-purple-500": this.color == "purple",
29
- "bg-pink-500": this.color == "pink",
30
- "bg-indigo-500": this.color == "indigo",
31
- };
32
- },
33
- },
34
- };
35
- </script>
1
+ <template>
2
+ <div class="flex items-center">
3
+ <span class="h-1.5 w-1.5 rounded-full" :class="colorClasses" aria-hidden="true"></span>
4
+ <div class="ml-2 text-sm font-medium">
5
+ {{ label }}
6
+ </div>
7
+ </div>
8
+ </template>
9
+ <script>
10
+ export default {
11
+ name: "CColorDots",
12
+ props: {
13
+ color: {
14
+ type: String,
15
+ },
16
+ label: {
17
+ type: String,
18
+ },
19
+ },
20
+ computed: {
21
+ colorClasses() {
22
+ return {
23
+ "bg-gray-500": this.color == "gray",
24
+ "bg-red-500": this.color == "red",
25
+ "bg-yellow-500": this.color == "yellow",
26
+ "bg-green-500": this.color == "green",
27
+ "bg-blue-500": this.color == "indigo",
28
+ "bg-purple-500": this.color == "purple",
29
+ "bg-pink-500": this.color == "pink",
30
+ "bg-indigo-500": this.color == "indigo",
31
+ };
32
+ },
33
+ },
34
+ };
35
+ </script>
@@ -1,3 +1,3 @@
1
- import CColorDots from "./CColorDots.vue";
2
-
3
- export default CColorDots;
1
+ import CColorDots from "./CColorDots.vue";
2
+
3
+ export default CColorDots;
@@ -1,118 +1,118 @@
1
- <template>
2
- <focus-trap :active="true" :escapeDeactivates="false">
3
- <div v-scroll-lock="true" class="z-100 fixed inset-0 overflow-y-auto">
4
- <div
5
- class="flex min-h-screen items-end justify-center px-4 pt-4 pb-20 text-center sm:block sm:p-0"
6
- @click="$emit('close')"
7
- >
8
- <transition
9
- enter-active-class="ease-out duration-300"
10
- enter-class="opacity-0"
11
- enter-to-class="opacity-100"
12
- leave-active-class="ease-in duration-200"
13
- leave-class="opacity-100"
14
- leave-to-class="opacity-0"
15
- >
16
- <div class="fixed inset-0 transition-opacity" aria-hidden="true">
17
- <div class="absolute inset-0 bg-gray-500 opacity-75"></div>
18
- </div>
19
- </transition>
20
-
21
- <!-- This element is to trick the browser into centering the modal contents. -->
22
- <span
23
- class="hidden sm:inline-block sm:h-screen sm:align-middle"
24
- aria-hidden="true"
25
- >&#8203;</span
26
- >
27
- <transition
28
- enter-active-class="ease-out duration-300"
29
- enter-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
30
- enter-to-class="opacity-100 translate-y-0 sm:scale-100"
31
- leave-active-class="ease-in duration-200"
32
- leave-class="opacity-100 translate-y-0 sm:scale-100"
33
- leave-to-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
34
- >
35
- <div
36
- class="inline-block transform overflow-y-visible rounded-lg bg-white text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-sm sm:align-middle md:max-w-2xl"
37
- role="dialog"
38
- aria-modal="true"
39
- aria-labelledby="modal-headline"
40
- @click.stop
41
- >
42
- <div class="bg-white shadow sm:rounded-lg">
43
- <div class="px-4 py-5 sm:p-6">
44
- <h3 class="text-lg font-medium leading-6 text-gray-900">
45
- {{ title }}
46
- </h3>
47
- <div class="mt-2 max-w-xl text-sm text-gray-500">
48
- <p>{{ message }}</p>
49
- </div>
50
- <div class="mt-5 flex justify-end space-x-2">
51
- <c-button
52
- @action="$emit('action-one')"
53
- :type="actionOneType"
54
- :label="actionOneLabel"
55
- ></c-button>
56
- <c-button
57
- @action="$emit('action-two')"
58
- :type="actionTwoType"
59
- :label="actionTwoLabel"
60
- :isLoading="loadButton"
61
- :disabled="loadButton"
62
- ></c-button>
63
- </div>
64
- </div>
65
- </div>
66
- </div>
67
- </transition>
68
- </div>
69
- </div>
70
- </focus-trap>
71
- </template>
72
-
73
- <script>
74
- import CButton from "../CButton";
75
-
76
- export default {
77
- name: "CConfirmActionModal",
78
- components: {
79
- CButton,
80
- },
81
- props: {
82
- title: {
83
- type: String,
84
- default: "Are you sure?",
85
- },
86
- message: {
87
- type: String,
88
- default: "",
89
- },
90
- actionOneLabel: {
91
- type: String,
92
- default: "Cancel",
93
- },
94
- actionTwoLabel: {
95
- type: String,
96
- default: "Ok",
97
- },
98
- actionOneType: {
99
- type: String,
100
- default: "secondary-gray",
101
- },
102
- actionTwoType: {
103
- type: String,
104
- default: "secondary-gray",
105
- },
106
- loadButton: {
107
- type: Boolean,
108
- default: false,
109
- },
110
- },
111
- };
112
- </script>
113
-
114
- <style>
115
- .form-content {
116
- max-height: calc(100vh - 200px);
117
- }
118
- </style>
1
+ <template>
2
+ <focus-trap :active="true" :escapeDeactivates="false">
3
+ <div v-scroll-lock="true" class="z-100 fixed inset-0 overflow-y-auto">
4
+ <div
5
+ class="flex min-h-screen items-end justify-center px-4 pt-4 pb-20 text-center sm:block sm:p-0"
6
+ @click="$emit('close')"
7
+ >
8
+ <transition
9
+ enter-active-class="ease-out duration-300"
10
+ enter-class="opacity-0"
11
+ enter-to-class="opacity-100"
12
+ leave-active-class="ease-in duration-200"
13
+ leave-class="opacity-100"
14
+ leave-to-class="opacity-0"
15
+ >
16
+ <div class="fixed inset-0 transition-opacity" aria-hidden="true">
17
+ <div class="absolute inset-0 bg-gray-500 opacity-75"></div>
18
+ </div>
19
+ </transition>
20
+
21
+ <!-- This element is to trick the browser into centering the modal contents. -->
22
+ <span
23
+ class="hidden sm:inline-block sm:h-screen sm:align-middle"
24
+ aria-hidden="true"
25
+ >&#8203;</span
26
+ >
27
+ <transition
28
+ enter-active-class="ease-out duration-300"
29
+ enter-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
30
+ enter-to-class="opacity-100 translate-y-0 sm:scale-100"
31
+ leave-active-class="ease-in duration-200"
32
+ leave-class="opacity-100 translate-y-0 sm:scale-100"
33
+ leave-to-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
34
+ >
35
+ <div
36
+ class="inline-block transform overflow-y-visible rounded-lg bg-white text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-sm sm:align-middle md:max-w-2xl"
37
+ role="dialog"
38
+ aria-modal="true"
39
+ aria-labelledby="modal-headline"
40
+ @click.stop
41
+ >
42
+ <div class="bg-white shadow sm:rounded-lg">
43
+ <div class="px-4 py-5 sm:p-6">
44
+ <h3 class="text-lg font-medium leading-6 text-gray-900">
45
+ {{ title }}
46
+ </h3>
47
+ <div class="mt-2 max-w-xl text-sm text-gray-500">
48
+ <p>{{ message }}</p>
49
+ </div>
50
+ <div class="mt-5 flex justify-end space-x-2">
51
+ <c-button
52
+ @action="$emit('action-one')"
53
+ :type="actionOneType"
54
+ :label="actionOneLabel"
55
+ ></c-button>
56
+ <c-button
57
+ @action="$emit('action-two')"
58
+ :type="actionTwoType"
59
+ :label="actionTwoLabel"
60
+ :isLoading="loadButton"
61
+ :disabled="loadButton"
62
+ ></c-button>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </transition>
68
+ </div>
69
+ </div>
70
+ </focus-trap>
71
+ </template>
72
+
73
+ <script>
74
+ import CButton from "../CButton";
75
+
76
+ export default {
77
+ name: "CConfirmActionModal",
78
+ components: {
79
+ CButton,
80
+ },
81
+ props: {
82
+ title: {
83
+ type: String,
84
+ default: "Are you sure?",
85
+ },
86
+ message: {
87
+ type: String,
88
+ default: "",
89
+ },
90
+ actionOneLabel: {
91
+ type: String,
92
+ default: "Cancel",
93
+ },
94
+ actionTwoLabel: {
95
+ type: String,
96
+ default: "Ok",
97
+ },
98
+ actionOneType: {
99
+ type: String,
100
+ default: "secondary-gray",
101
+ },
102
+ actionTwoType: {
103
+ type: String,
104
+ default: "secondary-gray",
105
+ },
106
+ loadButton: {
107
+ type: Boolean,
108
+ default: false,
109
+ },
110
+ },
111
+ };
112
+ </script>
113
+
114
+ <style>
115
+ .form-content {
116
+ max-height: calc(100vh - 200px);
117
+ }
118
+ </style>
@@ -1,3 +1,3 @@
1
- import CConfirmActionModal from "./CConfirmActionModal.vue";
2
-
3
- export default CConfirmActionModal;
1
+ import CConfirmActionModal from "./CConfirmActionModal.vue";
2
+
3
+ export default CConfirmActionModal;