classcard-ui 0.2.498 → 0.2.501
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.
- package/README.md +24 -24
- package/dist/classcard-ui.common.js +81 -86
- package/dist/classcard-ui.common.js.map +1 -1
- package/dist/classcard-ui.umd.js +81 -86
- package/dist/classcard-ui.umd.js.map +1 -1
- package/dist/classcard-ui.umd.min.js +1 -1
- package/dist/classcard-ui.umd.min.js.map +1 -1
- package/package.json +81 -81
- package/src/App.vue +16 -16
- package/src/components/CAlerts/CAlerts.vue +70 -70
- package/src/components/CAlerts/index.js +2 -2
- package/src/components/CAnchorTabs/CAnchorTabs.vue +104 -104
- package/src/components/CAnchorTabs/index.js +2 -2
- package/src/components/CAnchorTag/CAnchorTag.vue +62 -62
- package/src/components/CAnchorTag/index.js +2 -2
- package/src/components/CAvatar/CAvatar.vue +89 -89
- package/src/components/CAvatar/index.js +2 -2
- package/src/components/CAvatarGroup/CAvatarGroup.vue +145 -145
- package/src/components/CAvatarGroup/index.js +2 -2
- package/src/components/CBasicTable/CBasicTable.vue +184 -184
- package/src/components/CBasicTable/index.js +2 -2
- package/src/components/CBreadcrumbs/CBreadcrumbs.vue +38 -38
- package/src/components/CBreadcrumbs/index.js +2 -2
- package/src/components/CButton/CButton.vue +150 -150
- package/src/components/CButton/index.js +2 -2
- package/src/components/CButtonGroup/CButtonGroup.vue +116 -116
- package/src/components/CButtonGroup/index.js +2 -2
- package/src/components/CButtonIcon/CButtonIcon.vue +91 -108
- package/src/components/CButtonIcon/index.js +2 -2
- package/src/components/CButtonLink/CButtonLink.vue +39 -39
- package/src/components/CButtonLink/index.js +2 -2
- package/src/components/CButtonSelect/CButtonSelect.vue +103 -103
- package/src/components/CButtonSelect/index.js +2 -2
- package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +168 -168
- package/src/components/CButtonWithDropdown/index.js +2 -2
- package/src/components/CCard/CCard.vue +49 -49
- package/src/components/CCard/index.js +2 -2
- package/src/components/CCheckbox/CCheckbox.vue +70 -70
- package/src/components/CCheckbox/index.js +2 -2
- package/src/components/CCollapsibleSection/CCollapsibleSection.vue +99 -99
- package/src/components/CCollapsibleSection/index.js +2 -2
- package/src/components/CColorDots/CColorDots.vue +35 -35
- package/src/components/CColorDots/index.js +3 -3
- package/src/components/CConfirmActionModal/CConfirmActionModal.vue +120 -120
- package/src/components/CConfirmActionModal/index.js +3 -3
- package/src/components/CDatepicker/CDatepicker.vue +134 -134
- package/src/components/CDatepicker/index.js +2 -2
- package/src/components/CDualSelect/CDualSelect.vue +193 -193
- package/src/components/CDualSelect/index.js +2 -2
- package/src/components/CEditor/CEditor.vue +91 -91
- package/src/components/CEditor/index.js +2 -2
- package/src/components/CFormSectionHeading/CFormSectionHeading.vue +52 -52
- package/src/components/CFormSectionHeading/index.js +2 -2
- package/src/components/CGroupedSelect/CGroupedSelect.vue +217 -212
- package/src/components/CGroupedSelect/index.js +3 -3
- package/src/components/CIcon/CIcon.vue +72 -72
- package/src/components/CIcon/index.js +2 -2
- package/src/components/CIconDropdown/CIconDropdown.vue +94 -94
- package/src/components/CIconDropdown/index.js +2 -2
- package/src/components/CInput/CInput.vue +115 -115
- package/src/components/CInput/index.js +2 -2
- package/src/components/CInputAddon/CInputAddon.vue +199 -199
- package/src/components/CInputAddon/index.js +2 -2
- package/src/components/CInputEmail/CInputEmail.vue +84 -84
- package/src/components/CInputEmail/index.js +2 -2
- package/src/components/CModalHeading/CModalHeading.vue +22 -22
- package/src/components/CModalHeading/index.js +2 -2
- package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +39 -39
- package/src/components/CModuleHelpLinks/index.js +3 -3
- package/src/components/CMultiselect/CMultiselect.vue +313 -313
- package/src/components/CMultiselect/index.js +2 -2
- package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
- package/src/components/CMultiselectr/index.js +2 -2
- package/src/components/CPageHeading/CPageHeading.vue +56 -56
- package/src/components/CPageHeading/index.js +2 -2
- package/src/components/CPagination/CPagination.vue +202 -202
- package/src/components/CPagination/index.js +2 -2
- package/src/components/CPhoneNumber/CPhoneNumber.vue +62 -62
- package/src/components/CPhoneNumber/index.js +2 -2
- package/src/components/CRadio/CRadio.vue +70 -70
- package/src/components/CRadio/index.js +2 -2
- package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
- package/src/components/CRangeSlider/index.js +2 -2
- package/src/components/CReorderableStackedList/CReorderableStackedList.vue +94 -94
- package/src/components/CReorderableStackedList/index.js +2 -2
- package/src/components/CSelect/CSelect.vue +286 -286
- package/src/components/CSelect/index.js +2 -2
- package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
- package/src/components/CSmallTimeline/index.js +2 -2
- package/src/components/CStackedList/CStackedList.vue +87 -87
- package/src/components/CStackedList/index.js +2 -2
- package/src/components/CStats/CStats.vue +88 -88
- package/src/components/CStats/index.js +2 -2
- package/src/components/CSwitch/CSwitch.vue +132 -132
- package/src/components/CSwitch/index.js +2 -2
- package/src/components/CTable/CTable.vue +501 -501
- package/src/components/CTable/index.js +2 -2
- package/src/components/CTabs/CTabs.vue +107 -107
- package/src/components/CTabs/index.js +2 -2
- package/src/components/CTag/CTag.vue +36 -36
- package/src/components/CTag/index.js +2 -2
- package/src/components/CTextarea/CTextarea.vue +85 -85
- package/src/components/CTextarea/index.js +2 -2
- package/src/components/CTimeline/CTimeline.vue +237 -237
- package/src/components/CTimeline/index.js +2 -2
- package/src/components/CUpload/CUpload.vue +196 -196
- package/src/components/CUpload/index.js +2 -2
- package/src/components/index.js +47 -47
- package/src/icons.js +254 -254
- package/src/main.js +22 -22
- package/src/stories/CAlerts.stories.js +37 -37
- package/src/stories/CAnchorTabs.stories.js +29 -29
- package/src/stories/CAnchorTag.stories.js +36 -36
- package/src/stories/CAvatar.stories.js +38 -38
- package/src/stories/CAvatarGroup.stories.js +100 -100
- package/src/stories/CBasicTable.stories.js +316 -316
- package/src/stories/CBreadcrumbs.stories.js +24 -24
- package/src/stories/CButton.stories.js +46 -46
- package/src/stories/CButtonGroup.stories.js +33 -33
- package/src/stories/CButtonIcon.stories.js +27 -27
- package/src/stories/CButtonLink.stories.js +24 -24
- package/src/stories/CButtonSelect.stories.js +32 -32
- package/src/stories/CButtonWithDropdown.stories.js +41 -41
- package/src/stories/CCard.stories.js +30 -30
- package/src/stories/CCheckbox.stories.js +29 -29
- package/src/stories/CCollapsibleSection.stories.js +28 -28
- package/src/stories/CColorDots.stories.js +28 -28
- package/src/stories/CConfirmActionModal.stories.js +59 -59
- package/src/stories/CDatepicker.stories.js +30 -30
- package/src/stories/CDualSelect.stories.js +29 -29
- package/src/stories/CEditor.stories.js +30 -30
- package/src/stories/CFormSectionHeading.stories.js +34 -34
- package/src/stories/CGroupedSelect.stories.js +69 -69
- package/src/stories/CIcon.stories.js +26 -26
- package/src/stories/CIconDropdown.stories.js +39 -39
- package/src/stories/CInput.stories.js +36 -36
- package/src/stories/CInputAddon.stories.js +37 -37
- package/src/stories/CInputEmail.stories.js +27 -27
- package/src/stories/CModalHeading.stories.js +25 -25
- package/src/stories/CModuleHelpLinks.stories.js +25 -25
- package/src/stories/CMultiselect.stories.js +97 -97
- package/src/stories/CMultiselectr.stories.js +23 -23
- package/src/stories/CPageHeading.stories.js +32 -32
- package/src/stories/CPagination.stories.js +30 -30
- package/src/stories/CPhoneNumber.stories.js +29 -29
- package/src/stories/CRadio.stories.js +36 -36
- package/src/stories/CRangeSlider.stories.js +23 -23
- package/src/stories/CReorderableStackedList.stories.js +23 -23
- package/src/stories/CSelect.stories.js +50 -50
- package/src/stories/CSmallTimeline.stories.js +26 -26
- package/src/stories/CStackedList.stories.js +37 -37
- package/src/stories/CStats.stories.js +33 -33
- package/src/stories/CSwitch.stories.js +28 -28
- package/src/stories/CTable.stories.js +77 -77
- package/src/stories/CTabs.stories.js +29 -29
- package/src/stories/CTag.stories.js +23 -23
- package/src/stories/CTextarea.stories.js +32 -32
- package/src/stories/CTimeline.stories.js +26 -26
- package/src/stories/CUpload.stories.js +36 -36
- package/src/stories/Introduction.stories.mdx +207 -207
- package/src/stories/Page.vue +88 -88
- package/src/stories/assets/code-brackets.svg +0 -0
- package/src/stories/assets/colors.svg +0 -0
- package/src/stories/assets/comments.svg +0 -0
- package/src/stories/assets/direction.svg +0 -0
- package/src/stories/assets/flow.svg +0 -0
- package/src/stories/assets/plugin.svg +0 -0
- package/src/stories/assets/repo.svg +0 -0
- package/src/stories/assets/stackalt.svg +0 -0
- package/src/stories/header.css +26 -26
- package/src/stories/page.css +69 -69
- 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,120 +1,120 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<focus-trap :active="true" :escapeDeactivates="false">
|
|
3
|
-
<div v-scroll-lock="true" class="fixed inset-0 z-100 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 class="hidden sm:inline-block sm:h-screen sm:align-middle" aria-hidden="true"
|
|
23
|
-
>​</span
|
|
24
|
-
>
|
|
25
|
-
<transition
|
|
26
|
-
enter-active-class="ease-out duration-300"
|
|
27
|
-
enter-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
28
|
-
enter-to-class="opacity-100 translate-y-0 sm:scale-100"
|
|
29
|
-
leave-active-class="ease-in duration-200"
|
|
30
|
-
leave-class="opacity-100 translate-y-0 sm:scale-100"
|
|
31
|
-
leave-to-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
32
|
-
>
|
|
33
|
-
<div
|
|
34
|
-
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"
|
|
35
|
-
role="dialog"
|
|
36
|
-
aria-modal="true"
|
|
37
|
-
aria-labelledby="modal-headline"
|
|
38
|
-
@click.stop
|
|
39
|
-
>
|
|
40
|
-
<div class="bg-white shadow sm:rounded-lg">
|
|
41
|
-
<div class="px-4 py-5 sm:p-6">
|
|
42
|
-
<h3 class="text-lg font-medium leading-6 text-gray-900">
|
|
43
|
-
{{ title }}
|
|
44
|
-
</h3>
|
|
45
|
-
<div class="mt-2 max-w-xl text-sm text-gray-500">
|
|
46
|
-
<p>{{ message }}</p>
|
|
47
|
-
<p v-if="description" class="mt-1 text-gray-500">{{ description }}</p>
|
|
48
|
-
</div>
|
|
49
|
-
<div class="mt-5 flex justify-end space-x-2">
|
|
50
|
-
<c-button
|
|
51
|
-
@action="$emit('action-one')"
|
|
52
|
-
:type="actionOneType"
|
|
53
|
-
:label="actionOneLabel"
|
|
54
|
-
></c-button>
|
|
55
|
-
<c-button
|
|
56
|
-
@action="$emit('action-two')"
|
|
57
|
-
:type="actionTwoType"
|
|
58
|
-
:label="actionTwoLabel"
|
|
59
|
-
:isLoading="loadButton"
|
|
60
|
-
:disabled="loadButton"
|
|
61
|
-
></c-button>
|
|
62
|
-
</div>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
</transition>
|
|
67
|
-
</div>
|
|
68
|
-
</div>
|
|
69
|
-
</focus-trap>
|
|
70
|
-
</template>
|
|
71
|
-
|
|
72
|
-
<script>
|
|
73
|
-
import CButton from "../CButton";
|
|
74
|
-
|
|
75
|
-
export default {
|
|
76
|
-
name: "CConfirmActionModal",
|
|
77
|
-
components: {
|
|
78
|
-
CButton,
|
|
79
|
-
},
|
|
80
|
-
props: {
|
|
81
|
-
title: {
|
|
82
|
-
type: String,
|
|
83
|
-
default: "Are you sure?",
|
|
84
|
-
},
|
|
85
|
-
message: {
|
|
86
|
-
type: String,
|
|
87
|
-
default: "",
|
|
88
|
-
},
|
|
89
|
-
description: {
|
|
90
|
-
type: String,
|
|
91
|
-
},
|
|
92
|
-
actionOneLabel: {
|
|
93
|
-
type: String,
|
|
94
|
-
default: "Cancel",
|
|
95
|
-
},
|
|
96
|
-
actionTwoLabel: {
|
|
97
|
-
type: String,
|
|
98
|
-
default: "Ok",
|
|
99
|
-
},
|
|
100
|
-
actionOneType: {
|
|
101
|
-
type: String,
|
|
102
|
-
default: "secondary-gray",
|
|
103
|
-
},
|
|
104
|
-
actionTwoType: {
|
|
105
|
-
type: String,
|
|
106
|
-
default: "secondary-gray",
|
|
107
|
-
},
|
|
108
|
-
loadButton: {
|
|
109
|
-
type: Boolean,
|
|
110
|
-
default: false,
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
</script>
|
|
115
|
-
|
|
116
|
-
<style>
|
|
117
|
-
.form-content {
|
|
118
|
-
max-height: calc(100vh - 200px);
|
|
119
|
-
}
|
|
120
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<focus-trap :active="true" :escapeDeactivates="false">
|
|
3
|
+
<div v-scroll-lock="true" class="fixed inset-0 z-100 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 class="hidden sm:inline-block sm:h-screen sm:align-middle" aria-hidden="true"
|
|
23
|
+
>​</span
|
|
24
|
+
>
|
|
25
|
+
<transition
|
|
26
|
+
enter-active-class="ease-out duration-300"
|
|
27
|
+
enter-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
28
|
+
enter-to-class="opacity-100 translate-y-0 sm:scale-100"
|
|
29
|
+
leave-active-class="ease-in duration-200"
|
|
30
|
+
leave-class="opacity-100 translate-y-0 sm:scale-100"
|
|
31
|
+
leave-to-class="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
32
|
+
>
|
|
33
|
+
<div
|
|
34
|
+
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"
|
|
35
|
+
role="dialog"
|
|
36
|
+
aria-modal="true"
|
|
37
|
+
aria-labelledby="modal-headline"
|
|
38
|
+
@click.stop
|
|
39
|
+
>
|
|
40
|
+
<div class="bg-white shadow sm:rounded-lg">
|
|
41
|
+
<div class="px-4 py-5 sm:p-6">
|
|
42
|
+
<h3 class="text-lg font-medium leading-6 text-gray-900">
|
|
43
|
+
{{ title }}
|
|
44
|
+
</h3>
|
|
45
|
+
<div class="mt-2 max-w-xl text-sm text-gray-500">
|
|
46
|
+
<p>{{ message }}</p>
|
|
47
|
+
<p v-if="description" class="mt-1 text-gray-500">{{ description }}</p>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="mt-5 flex justify-end space-x-2">
|
|
50
|
+
<c-button
|
|
51
|
+
@action="$emit('action-one')"
|
|
52
|
+
:type="actionOneType"
|
|
53
|
+
:label="actionOneLabel"
|
|
54
|
+
></c-button>
|
|
55
|
+
<c-button
|
|
56
|
+
@action="$emit('action-two')"
|
|
57
|
+
:type="actionTwoType"
|
|
58
|
+
:label="actionTwoLabel"
|
|
59
|
+
:isLoading="loadButton"
|
|
60
|
+
:disabled="loadButton"
|
|
61
|
+
></c-button>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</transition>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</focus-trap>
|
|
70
|
+
</template>
|
|
71
|
+
|
|
72
|
+
<script>
|
|
73
|
+
import CButton from "../CButton";
|
|
74
|
+
|
|
75
|
+
export default {
|
|
76
|
+
name: "CConfirmActionModal",
|
|
77
|
+
components: {
|
|
78
|
+
CButton,
|
|
79
|
+
},
|
|
80
|
+
props: {
|
|
81
|
+
title: {
|
|
82
|
+
type: String,
|
|
83
|
+
default: "Are you sure?",
|
|
84
|
+
},
|
|
85
|
+
message: {
|
|
86
|
+
type: String,
|
|
87
|
+
default: "",
|
|
88
|
+
},
|
|
89
|
+
description: {
|
|
90
|
+
type: String,
|
|
91
|
+
},
|
|
92
|
+
actionOneLabel: {
|
|
93
|
+
type: String,
|
|
94
|
+
default: "Cancel",
|
|
95
|
+
},
|
|
96
|
+
actionTwoLabel: {
|
|
97
|
+
type: String,
|
|
98
|
+
default: "Ok",
|
|
99
|
+
},
|
|
100
|
+
actionOneType: {
|
|
101
|
+
type: String,
|
|
102
|
+
default: "secondary-gray",
|
|
103
|
+
},
|
|
104
|
+
actionTwoType: {
|
|
105
|
+
type: String,
|
|
106
|
+
default: "secondary-gray",
|
|
107
|
+
},
|
|
108
|
+
loadButton: {
|
|
109
|
+
type: Boolean,
|
|
110
|
+
default: false,
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
</script>
|
|
115
|
+
|
|
116
|
+
<style>
|
|
117
|
+
.form-content {
|
|
118
|
+
max-height: calc(100vh - 200px);
|
|
119
|
+
}
|
|
120
|
+
</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;
|