@weni/unnnic-system 3.12.0 → 3.12.1-alpha.1
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/dist/components/Alert/Alert.vue.d.ts +3 -3
- package/dist/components/Alert/Version1dot1.vue.d.ts +1 -1
- package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +92 -18
- package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +184 -36
- package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +1 -1
- package/dist/components/Button/Button.vue.d.ts +2 -2
- package/dist/components/Card/AccountCard.vue.d.ts +2 -2
- package/dist/components/Card/Card.vue.d.ts +103 -29
- package/dist/components/Card/CardCompany.vue.d.ts +2 -2
- package/dist/components/Card/CardStatusesContainer.vue.d.ts +93 -19
- package/dist/components/Card/ContentCard.vue.d.ts +1 -1
- package/dist/components/Card/DashCard.vue.d.ts +2 -2
- package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
- package/dist/components/Card/MarketplaceCard.vue.d.ts +1 -1
- package/dist/components/Card/SimpleCard.vue.d.ts +92 -18
- package/dist/components/Card/StatusCard.vue.d.ts +1 -1
- package/dist/components/Card/TitleCard.vue.d.ts +92 -18
- package/dist/components/CardImage/CardImage.vue.d.ts +5 -5
- package/dist/components/CardInformation/CardInformation.vue.d.ts +93 -19
- package/dist/components/CardProject/CardProject.vue.d.ts +2 -2
- package/dist/components/Carousel/Carousel.vue.d.ts +2 -2
- package/dist/components/Carousel/TagCarousel.vue.d.ts +2 -2
- package/dist/components/ChartBar/ChartBar.vue.d.ts +98 -24
- package/dist/components/ChartLine/ChartLine.vue.d.ts +92 -18
- package/dist/components/ChatText/ChatText.vue.d.ts +92 -18
- package/dist/components/ChatsContact/ChatsContact.vue.d.ts +6 -6
- package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +92 -18
- package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.vue.d.ts +3 -3
- package/dist/components/DataArea/DataArea.vue.d.ts +92 -18
- package/dist/components/DataTable/index.vue.d.ts +1 -1
- package/dist/components/DataTable/index.vue.d.ts.map +1 -1
- package/dist/components/DateFilter/DateFilter.vue.d.ts +13 -13
- package/dist/components/Drawer/Drawer.vue.d.ts +37 -207
- package/dist/components/Drawer/Drawer.vue.d.ts.map +1 -1
- package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
- package/dist/components/FormElement/FormElement.vue.d.ts +6 -6
- package/dist/components/ImportCard/ImportCard.vue.d.ts +6 -6
- package/dist/components/Input/Input.vue.d.ts +12 -12
- package/dist/components/Input/TextInput.vue.d.ts +2 -2
- package/dist/components/InputNext/InputNext.vue.d.ts +3 -3
- package/dist/components/Label/Label.vue.d.ts +1 -1
- package/dist/components/Label/Label.vue.d.ts.map +1 -1
- package/dist/components/Modal/Modal.vue.d.ts +1 -1
- package/dist/components/ModalDialog/ModalDialog.vue.d.ts +209 -35
- package/dist/components/ModalDialog/ModalDialog.vue.d.ts.map +1 -1
- package/dist/components/ModalNext/ModalNext.vue.d.ts +18 -18
- package/dist/components/ModalUpload/ModalUpload.vue.d.ts +12 -12
- package/dist/components/MoodRating/MoodRating.vue.d.ts +92 -18
- package/dist/components/MultiSelect/MultiSelect.vue.d.ts +18 -18
- package/dist/components/Pagination/Pagination.vue.d.ts +6 -6
- package/dist/components/Radio/Radio.vue.d.ts +6 -6
- package/dist/components/SelectSmart/SelectSmart.vue.d.ts +11 -11
- package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +2 -2
- package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +5 -5
- package/dist/components/SelectTime/index.vue.d.ts +3 -3
- package/dist/components/Slider/Slider.vue.d.ts +92 -18
- package/dist/components/Switch/Switch.vue.d.ts +3 -3
- package/dist/components/Tab/Tab.vue.d.ts +92 -18
- package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
- package/dist/components/TableNext/TablePagination.vue.d.ts +6 -6
- package/dist/components/Tag/DefaultTag.vue.d.ts +1 -1
- package/dist/components/Tag/Tag.vue.d.ts +2 -2
- package/dist/components/TextArea/TextArea.vue.d.ts +8 -8
- package/dist/components/Toast/Toast.vue.d.ts +1 -1
- package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
- package/dist/components/ToolTip/ToolTip.vue.d.ts +92 -18
- package/dist/components/ToolTip/ToolTip.vue.d.ts.map +1 -1
- package/dist/components/Tour/Tour.vue.d.ts +6 -6
- package/dist/components/Tour/TourPopover.vue.d.ts +6 -6
- package/dist/components/UploadArea/UploadArea.vue.d.ts +6 -6
- package/dist/components/ui/dialog/Dialog.vue.d.ts +23 -0
- package/dist/components/ui/dialog/Dialog.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/DialogClose.vue.d.ts +19 -0
- package/dist/components/ui/dialog/DialogClose.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +43 -0
- package/dist/components/ui/dialog/DialogContent.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/DialogFooter.vue.d.ts +25 -0
- package/dist/components/ui/dialog/DialogFooter.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/DialogHeader.vue.d.ts +29 -0
- package/dist/components/ui/dialog/DialogHeader.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/DialogTitle.vue.d.ts +23 -0
- package/dist/components/ui/dialog/DialogTitle.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +19 -0
- package/dist/components/ui/dialog/DialogTrigger.vue.d.ts.map +1 -0
- package/dist/components/ui/dialog/index.d.ts +8 -0
- package/dist/components/ui/dialog/index.d.ts.map +1 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +35 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerClose.vue.d.ts +19 -0
- package/dist/components/ui/drawer/DrawerClose.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +43 -0
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +23 -0
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +22 -0
- package/dist/components/ui/drawer/DrawerFooter.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +25 -0
- package/dist/components/ui/drawer/DrawerHeader.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +23 -0
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/DrawerTrigger.vue.d.ts +19 -0
- package/dist/components/ui/drawer/DrawerTrigger.vue.d.ts.map +1 -0
- package/dist/components/ui/drawer/index.d.ts +11 -0
- package/dist/components/ui/drawer/index.d.ts.map +1 -0
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +2 -2
- package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
- package/dist/components/ui/popover/PopoverOption.vue.d.ts +18 -0
- package/dist/components/ui/popover/PopoverOption.vue.d.ts.map +1 -0
- package/dist/components/ui/popover/PopoverTrigger.vue.d.ts.map +1 -1
- package/dist/components/ui/popover/index.d.ts +1 -0
- package/dist/components/ui/popover/index.d.ts.map +1 -1
- package/dist/components/ui/tooltip/Tooltip.vue.d.ts +23 -0
- package/dist/components/ui/tooltip/Tooltip.vue.d.ts.map +1 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +31 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts.map +1 -0
- package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +19 -0
- package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts.map +1 -0
- package/dist/components/ui/tooltip/index.d.ts +4 -0
- package/dist/components/ui/tooltip/index.d.ts.map +1 -0
- package/dist/{es-9756db6d.mjs → es-38bd0c9c.mjs} +1 -1
- package/dist/{index-ab280280.mjs → index-561a4027.mjs} +99548 -96695
- package/dist/lib/layer-manager.d.ts +16 -0
- package/dist/lib/layer-manager.d.ts.map +1 -0
- package/dist/{pt-br-55135cbc.mjs → pt-br-14a3c647.mjs} +1 -1
- package/dist/style.css +1 -1
- package/dist/unnnic.mjs +231 -203
- package/dist/unnnic.umd.js +48 -44
- package/package.json +2 -1
- package/src/assets/scss/tailwind.scss +8 -0
- package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +1 -1
- package/src/components/Drawer/Drawer.vue +190 -269
- package/src/components/Drawer/__tests__/Drawer.spec.js +37 -46
- package/src/components/Drawer/__tests__/__snapshots__/Drawer.spec.js.snap +18 -19
- package/src/components/ModalDialog/ModalDialog.vue +64 -148
- package/src/components/ModalDialog/__tests__/ModalDialog.spec.js +11 -221
- package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +1 -22
- package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +3 -1
- package/src/components/Toast/Toast.vue +16 -9
- package/src/components/ToolTip/ToolTip.vue +25 -177
- package/src/components/ToolTip/__tests__/ToolTip.spec.js +339 -61
- package/src/components/index.ts +56 -0
- package/src/components/ui/dialog/Dialog.vue +19 -0
- package/src/components/ui/dialog/DialogClose.vue +29 -0
- package/src/components/ui/dialog/DialogContent.vue +140 -0
- package/src/components/ui/dialog/DialogFooter.vue +50 -0
- package/src/components/ui/dialog/DialogHeader.vue +83 -0
- package/src/components/ui/dialog/DialogTitle.vue +38 -0
- package/src/components/ui/dialog/DialogTrigger.vue +16 -0
- package/src/components/ui/dialog/index.ts +7 -0
- package/src/components/ui/drawer/Drawer.vue +27 -0
- package/src/components/ui/drawer/DrawerClose.vue +37 -0
- package/src/components/ui/drawer/DrawerContent.vue +111 -0
- package/src/components/ui/drawer/DrawerDescription.vue +40 -0
- package/src/components/ui/drawer/DrawerFooter.vue +38 -0
- package/src/components/ui/drawer/DrawerHeader.vue +57 -0
- package/src/components/ui/drawer/DrawerOverlay.vue +33 -0
- package/src/components/ui/drawer/DrawerTitle.vue +37 -0
- package/src/components/ui/drawer/DrawerTrigger.vue +31 -0
- package/src/components/ui/drawer/index.ts +10 -0
- package/src/components/ui/popover/PopoverContent.vue +4 -2
- package/src/components/ui/popover/PopoverOption.vue +116 -0
- package/src/components/ui/popover/PopoverTrigger.vue +5 -1
- package/src/components/ui/popover/index.ts +1 -0
- package/src/components/ui/tooltip/Tooltip.vue +21 -0
- package/src/components/ui/tooltip/TooltipContent.vue +74 -0
- package/src/components/ui/tooltip/TooltipTrigger.vue +26 -0
- package/src/components/ui/tooltip/index.ts +3 -0
- package/src/lib/layer-manager.ts +84 -0
- package/src/stories/Dialog.stories.js +832 -0
- package/src/stories/Drawer.stories.js +1 -1
- package/src/stories/DrawerNext.stories.js +611 -0
- package/src/stories/LayerManager.docs.mdx +40 -0
- package/src/stories/LayerManager.stories.js +364 -0
- package/src/stories/ModalDialog.mdx +3 -0
- package/src/stories/ModalDialog.stories.js +1 -1
- package/src/stories/Popover.stories.js +56 -0
- package/src/stories/PopoverOption.stories.js +74 -0
|
@@ -5,6 +5,19 @@ import Drawer from '../Drawer.vue';
|
|
|
5
5
|
describe('Drawer.vue', () => {
|
|
6
6
|
let wrapper;
|
|
7
7
|
|
|
8
|
+
const templateSlot = { template: `<div><slot /></div>` };
|
|
9
|
+
const globalStubs = {
|
|
10
|
+
UnnnicIcon: true,
|
|
11
|
+
UnnnicButton: true,
|
|
12
|
+
Teleport: templateSlot,
|
|
13
|
+
UnnnicDrawerNext: templateSlot,
|
|
14
|
+
UnnnicDrawerContent: templateSlot,
|
|
15
|
+
UnnnicDrawerFooter: templateSlot,
|
|
16
|
+
UnnnicDrawerClose: templateSlot,
|
|
17
|
+
UnnnicDrawerTitle: templateSlot,
|
|
18
|
+
UnnnicDrawerDescription: templateSlot,
|
|
19
|
+
};
|
|
20
|
+
|
|
8
21
|
beforeEach(() => {
|
|
9
22
|
wrapper = mount(Drawer, {
|
|
10
23
|
props: {
|
|
@@ -15,15 +28,14 @@ describe('Drawer.vue', () => {
|
|
|
15
28
|
secondaryButtonText: 'Secondary Action',
|
|
16
29
|
},
|
|
17
30
|
global: {
|
|
18
|
-
stubs:
|
|
31
|
+
stubs: globalStubs,
|
|
19
32
|
},
|
|
20
33
|
});
|
|
21
34
|
});
|
|
22
35
|
|
|
23
36
|
const element = (id) => wrapper.find(`[data-testid="${id}"]`);
|
|
24
37
|
const component = (id) => wrapper.findComponent(`[data-testid="${id}"]`);
|
|
25
|
-
const
|
|
26
|
-
const overlay = () => element('overlay');
|
|
38
|
+
const drawerRoot = () => wrapper.findComponent({ name: 'UnnnicDrawerNext' });
|
|
27
39
|
const title = () => element('drawer-title');
|
|
28
40
|
const description = () => element('drawer-description');
|
|
29
41
|
const primaryButton = () => component('primary-button');
|
|
@@ -31,6 +43,8 @@ describe('Drawer.vue', () => {
|
|
|
31
43
|
const footer = () => element('footer');
|
|
32
44
|
const closeIcon = () => component('close-icon');
|
|
33
45
|
const drawerContainer = () => element('drawer-container');
|
|
46
|
+
const drawerContentComponent = () =>
|
|
47
|
+
wrapper.findComponent({ name: 'UnnnicDrawerContent' });
|
|
34
48
|
|
|
35
49
|
describe('Component Rendering', () => {
|
|
36
50
|
describe('Component Rendering', () => {
|
|
@@ -39,21 +53,21 @@ describe('Drawer.vue', () => {
|
|
|
39
53
|
});
|
|
40
54
|
|
|
41
55
|
it('should render the drawer when modelValue is true', () => {
|
|
42
|
-
expect(
|
|
56
|
+
expect(drawerRoot().props('open')).toBe(true);
|
|
43
57
|
});
|
|
44
58
|
|
|
45
59
|
it('should not render the drawer when modelValue is false', async () => {
|
|
46
60
|
await wrapper.setProps({ modelValue: false });
|
|
47
|
-
expect(
|
|
61
|
+
expect(drawerRoot().props('open')).toBe(false);
|
|
48
62
|
});
|
|
49
63
|
|
|
50
64
|
it('should render the overlay when withoutOverlay is false', () => {
|
|
51
|
-
expect(
|
|
65
|
+
expect(drawerContentComponent().props('showOverlay')).toBe(true);
|
|
52
66
|
});
|
|
53
67
|
|
|
54
68
|
it('should not render the overlay when withoutOverlay is true', async () => {
|
|
55
69
|
await wrapper.setProps({ withoutOverlay: true });
|
|
56
|
-
expect(
|
|
70
|
+
expect(drawerContentComponent().props('showOverlay')).toBe(false);
|
|
57
71
|
});
|
|
58
72
|
|
|
59
73
|
it('should display the title and description correctly', () => {
|
|
@@ -75,7 +89,11 @@ describe('Drawer.vue', () => {
|
|
|
75
89
|
slots: {
|
|
76
90
|
content: '<div data-testid="slot-content">Slot Content</div>',
|
|
77
91
|
},
|
|
92
|
+
global: {
|
|
93
|
+
stubs: globalStubs,
|
|
94
|
+
},
|
|
78
95
|
});
|
|
96
|
+
|
|
79
97
|
expect(wrapper.find('[data-testid="slot-content"]').exists()).toBe(
|
|
80
98
|
true,
|
|
81
99
|
);
|
|
@@ -93,6 +111,9 @@ describe('Drawer.vue', () => {
|
|
|
93
111
|
slots: {
|
|
94
112
|
title: '<h2 data-testid="custom-title">Custom Title Content</h2>',
|
|
95
113
|
},
|
|
114
|
+
global: {
|
|
115
|
+
stubs: globalStubs,
|
|
116
|
+
},
|
|
96
117
|
});
|
|
97
118
|
|
|
98
119
|
expect(title().exists()).toBe(false);
|
|
@@ -113,6 +134,9 @@ describe('Drawer.vue', () => {
|
|
|
113
134
|
slots: {
|
|
114
135
|
title: '<div data-testid="custom-title">Slot Title</div>',
|
|
115
136
|
},
|
|
137
|
+
global: {
|
|
138
|
+
stubs: globalStubs,
|
|
139
|
+
},
|
|
116
140
|
});
|
|
117
141
|
|
|
118
142
|
expect(title().exists()).toBe(false);
|
|
@@ -164,7 +188,7 @@ describe('Drawer.vue', () => {
|
|
|
164
188
|
});
|
|
165
189
|
});
|
|
166
190
|
|
|
167
|
-
describe('Interactions
|
|
191
|
+
describe('Interactions', () => {
|
|
168
192
|
beforeEach(() => {
|
|
169
193
|
vi.useFakeTimers();
|
|
170
194
|
});
|
|
@@ -174,9 +198,6 @@ describe('Drawer.vue', () => {
|
|
|
174
198
|
|
|
175
199
|
it('should close the drawer when the close icon is clicked', async () => {
|
|
176
200
|
await closeIcon().trigger('click');
|
|
177
|
-
|
|
178
|
-
vi.advanceTimersByTime(200);
|
|
179
|
-
|
|
180
201
|
expect(wrapper.emitted('close')).toBeTruthy();
|
|
181
202
|
});
|
|
182
203
|
|
|
@@ -184,8 +205,6 @@ describe('Drawer.vue', () => {
|
|
|
184
205
|
await wrapper.setProps({ distinctCloseBack: true });
|
|
185
206
|
await closeIcon().trigger('click');
|
|
186
207
|
|
|
187
|
-
vi.advanceTimersByTime(200);
|
|
188
|
-
|
|
189
208
|
expect(wrapper.emitted('back')).toBeTruthy();
|
|
190
209
|
});
|
|
191
210
|
|
|
@@ -193,49 +212,21 @@ describe('Drawer.vue', () => {
|
|
|
193
212
|
await closeIcon().trigger('click');
|
|
194
213
|
expect(wrapper.emitted('back')).toBeUndefined();
|
|
195
214
|
});
|
|
196
|
-
|
|
197
|
-
it('should correctly handle transitions when closing the drawer', async () => {
|
|
198
|
-
await wrapper.vm.close();
|
|
199
|
-
expect(wrapper.vm.showDrawer).toBe(false);
|
|
200
|
-
|
|
201
|
-
setTimeout(() => {
|
|
202
|
-
expect(drawer().exists()).toBe(false);
|
|
203
|
-
}, 200);
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
it('should handle overlay clicks to close the drawer when withoutOverlay is false', async () => {
|
|
207
|
-
expect(overlay().exists()).toBe(true);
|
|
208
|
-
await overlay().trigger('click');
|
|
209
|
-
|
|
210
|
-
vi.advanceTimersByTime(200);
|
|
211
|
-
|
|
212
|
-
expect(wrapper.emitted('close')).toBeTruthy();
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
it('should execute the callback after 200ms timeout and reset showDrawer', async () => {
|
|
216
|
-
const callbackMock = vi.fn();
|
|
217
|
-
wrapper.vm.transitionClose(callbackMock);
|
|
218
|
-
|
|
219
|
-
expect(wrapper.vm.showDrawer).toBe(false);
|
|
220
|
-
|
|
221
|
-
vi.advanceTimersByTime(200);
|
|
222
|
-
|
|
223
|
-
expect(callbackMock).toHaveBeenCalled();
|
|
224
|
-
expect(wrapper.vm.showDrawer).toBe(true);
|
|
225
|
-
});
|
|
226
215
|
});
|
|
227
216
|
|
|
228
217
|
describe('Props and Computed Properties', () => {
|
|
229
218
|
it('should render the correct size class based on size prop', async () => {
|
|
230
219
|
await wrapper.setProps({ size: 'lg' });
|
|
231
|
-
expect(
|
|
220
|
+
expect(drawerContentComponent().props('class')).toContain(
|
|
232
221
|
'unnnic-drawer__container--lg',
|
|
233
222
|
);
|
|
223
|
+
expect(drawerContentComponent().props('size')).toBe('large');
|
|
234
224
|
|
|
235
225
|
await wrapper.setProps({ size: 'xl' });
|
|
236
|
-
expect(
|
|
226
|
+
expect(drawerContentComponent().props('class')).toContain(
|
|
237
227
|
'unnnic-drawer__container--xl',
|
|
238
228
|
);
|
|
229
|
+
expect(drawerContentComponent().props('size')).toBe('extra-large');
|
|
239
230
|
});
|
|
240
231
|
|
|
241
232
|
it('should display footer if either primaryButtonText or secondaryButtonText is provided', async () => {
|
|
@@ -275,7 +266,7 @@ describe('Drawer.vue', () => {
|
|
|
275
266
|
|
|
276
267
|
it('should use correct icon for close button based on closeIcon prop', async () => {
|
|
277
268
|
await wrapper.setProps({ closeIcon: 'custom_close_icon' });
|
|
278
|
-
expect(closeIcon().props('
|
|
269
|
+
expect(closeIcon().props('iconCenter')).toBe('custom_close_icon');
|
|
279
270
|
});
|
|
280
271
|
|
|
281
272
|
it('should validate all size prop values correctly', () => {
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
3
|
exports[`Drawer.vue > Component Rendering > Component Rendering > matches the snapshot 1`] = `
|
|
4
|
-
"<
|
|
5
|
-
<
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
</aside>"
|
|
4
|
+
"<div data-v-e761d31f="" data-v-196de012="" disabled="false" defer="false" forcemount="false" data-testid="drawer-container">
|
|
5
|
+
<div data-v-7f241b30="" data-v-e761d31f="" data-state="open" style="pointer-events: auto;" data-vaul-overlay="" data-vaul-snap-points="false" data-vaul-snap-points-overlay="true" class="unnnic-drawer__overlay"></div>
|
|
6
|
+
<div data-v-e761d31f="" data-dismissable-layer="" style="--snap-point-height: 0; --initial-transform: calc(100% + 8px); pointer-events: auto;" tabindex="-1" data-vaul-drawer="" data-vaul-drawer-direction="right" data-vaul-delayed-snap-points="false" data-vaul-snap-points="false" size="medium" showoverlay="true" class="unnnic-drawer__content unnnic-drawer__content--medium unnnic-drawer__container unnnic-drawer__container--md" id="" role="dialog" aria-describedby="reka-dialog-description-v-1" aria-labelledby="reka-dialog-title-v-0" data-state="open">
|
|
7
|
+
<header data-v-39d0dfb8="" data-v-196de012="" class="unnnic-drawer__header unnnic-drawer__header">
|
|
8
|
+
<section data-v-196de012="" class="unnnic-drawer__title-container">
|
|
9
|
+
<h2 data-v-97709962="" data-v-196de012="" id="reka-dialog-title-v-0" class="unnnic-drawer__title unnnic-drawer__title" data-testid="drawer-title">Test Title</h2>
|
|
10
|
+
<p data-v-750ea255="" data-v-196de012="" id="reka-dialog-description-v-1" class="unnnic-drawer__description unnnic-drawer__description" data-testid="drawer-description">Test Description</p>
|
|
11
|
+
</section><button data-v-4a771f40="" data-v-196de012="" type="button" class="unnnic-drawer__close">
|
|
12
|
+
<unnnic-button-stub data-v-196de012="" size="small" text="" type="tertiary" float="false" iconleft="" iconright="" iconcenter="arrow_forward" iconsfilled="false" disabled="false" loading="false" class="unnnic-drawer__close-icon" data-testid="close-icon"></unnnic-button-stub>
|
|
13
|
+
</button>
|
|
14
|
+
</header>
|
|
15
|
+
<section data-v-196de012="" class="unnnic-drawer__content"></section>
|
|
16
|
+
<footer data-v-02ebc5b4="" data-v-196de012="" class="unnnic-drawer__footer unnnic-drawer__footer" data-testid="footer">
|
|
17
|
+
<unnnic-button-stub data-v-196de012="" size="large" text="Secondary Action" type="tertiary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="secondary-button"></unnnic-button-stub>
|
|
18
|
+
<unnnic-button-stub data-v-196de012="" size="large" text="Primary Action" type="primary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="primary-button"></unnnic-button-stub>
|
|
19
|
+
</footer>
|
|
20
|
+
</div>
|
|
21
|
+
</div>"
|
|
23
22
|
`;
|
|
@@ -1,64 +1,47 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
data-testid="modal-dialog"
|
|
2
|
+
<UnnnicDialog
|
|
3
|
+
:open="modelValue"
|
|
4
|
+
@update:open="$emit('update:modelValue', $event)"
|
|
6
5
|
>
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
`unnnic-modal-dialog__container--${size}`,
|
|
16
|
-
]"
|
|
17
|
-
data-testid="modal-container"
|
|
6
|
+
<UnnnicDialogContent
|
|
7
|
+
v-bind="$attrs"
|
|
8
|
+
:size="size === 'sm' ? 'small' : size === 'lg' ? 'large' : 'medium'"
|
|
9
|
+
:parentClass="['unnnic-modal-dialog', $attrs.class]"
|
|
10
|
+
class="unnnic-modal-dialog__container"
|
|
11
|
+
data-testid="modal-dialog"
|
|
12
|
+
@escape-key-down="persistentHandler"
|
|
13
|
+
@pointer-down-outside="persistentHandler"
|
|
18
14
|
>
|
|
19
15
|
<section
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
:class="[
|
|
17
|
+
'unnnic-modal-dialog__container__body',
|
|
18
|
+
{
|
|
19
|
+
'unnnic-modal-dialog__container__body--left-sidebar':
|
|
20
|
+
$slots.leftSidebar,
|
|
21
|
+
},
|
|
22
|
+
]"
|
|
22
23
|
>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
<section
|
|
25
|
+
v-if="$slots.leftSidebar"
|
|
26
|
+
class="unnnic-modal-dialog__container__left-sidebar"
|
|
27
|
+
>
|
|
28
|
+
<slot name="leftSidebar" />
|
|
29
|
+
</section>
|
|
30
|
+
<UnnnicDialogHeader
|
|
28
31
|
v-if="title"
|
|
29
|
-
|
|
32
|
+
:closeButton="showCloseIcon"
|
|
33
|
+
:type="type"
|
|
30
34
|
>
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class="unnnic-modal-dialog__container__title-icon"
|
|
36
|
-
:icon="icon || iconsMapper[type]?.icon"
|
|
37
|
-
:scheme="iconScheme || iconsMapper[type]?.scheme"
|
|
38
|
-
size="md"
|
|
39
|
-
/>
|
|
40
|
-
<h1
|
|
41
|
-
class="unnnic-modal-dialog__container__title-text"
|
|
42
|
-
data-testid="title-text"
|
|
43
|
-
>
|
|
44
|
-
{{ title }}
|
|
45
|
-
</h1>
|
|
46
|
-
</section>
|
|
47
|
-
<UnnnicIcon
|
|
48
|
-
v-if="showCloseIcon"
|
|
49
|
-
data-testid="close-icon"
|
|
50
|
-
icon="close"
|
|
51
|
-
clickable
|
|
52
|
-
scheme="neutral-cloudy"
|
|
53
|
-
@click="close()"
|
|
54
|
-
/>
|
|
55
|
-
</header>
|
|
35
|
+
<UnnnicDialogTitle>
|
|
36
|
+
{{ title }}
|
|
37
|
+
</UnnnicDialogTitle>
|
|
38
|
+
</UnnnicDialogHeader>
|
|
56
39
|
<section class="unnnic-modal-dialog__container__content">
|
|
57
40
|
<slot></slot>
|
|
58
41
|
</section>
|
|
59
|
-
|
|
42
|
+
|
|
43
|
+
<UnnnicDialogFooter
|
|
60
44
|
v-if="primaryButtonProps.text"
|
|
61
|
-
data-testid="actions-section"
|
|
62
45
|
:class="[
|
|
63
46
|
'unnnic-modal-dialog__container__actions',
|
|
64
47
|
{
|
|
@@ -66,6 +49,8 @@
|
|
|
66
49
|
showActionsDivider,
|
|
67
50
|
},
|
|
68
51
|
]"
|
|
52
|
+
:divider="showActionsDivider"
|
|
53
|
+
data-testid="actions-section"
|
|
69
54
|
>
|
|
70
55
|
<UnnnicButton
|
|
71
56
|
v-if="!hideSecondaryButton"
|
|
@@ -92,23 +77,32 @@
|
|
|
92
77
|
class="unnnic-modal-dialog__container__actions__primary-button"
|
|
93
78
|
@click.stop="$emit('primaryButtonClick')"
|
|
94
79
|
/>
|
|
95
|
-
</
|
|
80
|
+
</UnnnicDialogFooter>
|
|
96
81
|
</section>
|
|
97
|
-
</
|
|
98
|
-
</
|
|
82
|
+
</UnnnicDialogContent>
|
|
83
|
+
</UnnnicDialog>
|
|
99
84
|
</template>
|
|
100
85
|
|
|
101
86
|
<script>
|
|
102
|
-
import UnnnicIcon from '../Icon.vue';
|
|
103
87
|
import UnnnicButton from '../Button/Button.vue';
|
|
104
88
|
import UnnnicI18n from '../../mixins/i18n';
|
|
89
|
+
import UnnnicDialog from '../ui/dialog/Dialog.vue';
|
|
90
|
+
import UnnnicDialogContent from '../ui/dialog/DialogContent.vue';
|
|
91
|
+
import UnnnicDialogHeader from '../ui/dialog/DialogHeader.vue';
|
|
92
|
+
import UnnnicDialogTitle from '../ui/dialog/DialogTitle.vue';
|
|
93
|
+
import UnnnicDialogFooter from '../ui/dialog/DialogFooter.vue';
|
|
105
94
|
|
|
106
95
|
export default {
|
|
107
96
|
name: 'UnnnicModalDialog',
|
|
108
97
|
components: {
|
|
109
|
-
UnnnicIcon,
|
|
110
98
|
UnnnicButton,
|
|
99
|
+
UnnnicDialog,
|
|
100
|
+
UnnnicDialogContent,
|
|
101
|
+
UnnnicDialogHeader,
|
|
102
|
+
UnnnicDialogTitle,
|
|
103
|
+
UnnnicDialogFooter,
|
|
111
104
|
},
|
|
105
|
+
inheritAttrs: false,
|
|
112
106
|
mixins: [UnnnicI18n],
|
|
113
107
|
props: {
|
|
114
108
|
modelValue: {
|
|
@@ -177,11 +171,6 @@ export default {
|
|
|
177
171
|
es: 'Cancelar',
|
|
178
172
|
},
|
|
179
173
|
},
|
|
180
|
-
iconsMapper: {
|
|
181
|
-
success: { icon: 'check_circle', scheme: 'aux-green-500' },
|
|
182
|
-
warning: { icon: 'warning', scheme: 'aux-red-500' },
|
|
183
|
-
attention: { icon: 'error', scheme: 'aux-yellow-500' },
|
|
184
|
-
},
|
|
185
174
|
primaryButtonTypeMapper: {
|
|
186
175
|
success: 'primary',
|
|
187
176
|
warning: 'warning',
|
|
@@ -201,91 +190,39 @@ export default {
|
|
|
201
190
|
updateBodyOverflow(isHidden) {
|
|
202
191
|
document.body.style.overflow = isHidden ? 'hidden' : '';
|
|
203
192
|
},
|
|
193
|
+
persistentHandler(event) {
|
|
194
|
+
if (this.persistent) {
|
|
195
|
+
event.preventDefault();
|
|
196
|
+
}
|
|
197
|
+
},
|
|
204
198
|
},
|
|
205
199
|
};
|
|
206
200
|
</script>
|
|
207
201
|
|
|
208
202
|
<style lang="scss" scoped>
|
|
209
203
|
@use '@/assets/scss/unnnic' as *;
|
|
210
|
-
* {
|
|
211
|
-
margin: 0;
|
|
212
|
-
padding: 0;
|
|
213
|
-
box-sizing: border-box;
|
|
214
|
-
}
|
|
215
|
-
.unnnic-modal-dialog {
|
|
216
|
-
width: 100vw;
|
|
217
|
-
height: 100vh;
|
|
218
|
-
position: fixed;
|
|
219
|
-
left: 0;
|
|
220
|
-
top: 0;
|
|
221
|
-
display: flex;
|
|
222
|
-
justify-content: center;
|
|
223
|
-
align-items: center;
|
|
224
|
-
z-index: 9999;
|
|
225
|
-
|
|
226
|
-
&__overlay {
|
|
227
|
-
position: absolute;
|
|
228
|
-
width: 100%;
|
|
229
|
-
height: 100%;
|
|
230
|
-
background-color: rgba(0, 0, 0, 0.4);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
204
|
.unnnic-modal-dialog__container {
|
|
235
|
-
display: flex;
|
|
236
|
-
background: $unnnic-color-neutral-white;
|
|
237
|
-
border-radius: $unnnic-spacing-xs;
|
|
238
|
-
box-shadow: $unnnic-shadow-level-near;
|
|
239
|
-
position: fixed;
|
|
240
|
-
max-height: calc(100vh - $unnnic-spacing-giant);
|
|
241
|
-
overflow: hidden;
|
|
242
|
-
|
|
243
|
-
&--sm {
|
|
244
|
-
width: 400px;
|
|
245
|
-
}
|
|
246
|
-
&--md {
|
|
247
|
-
width: 600px;
|
|
248
|
-
}
|
|
249
|
-
&--lg {
|
|
250
|
-
width: 800px;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
205
|
&__left-sidebar {
|
|
254
206
|
background-color: $unnnic-color-neutral-black;
|
|
255
207
|
color: $unnnic-color-neutral-white;
|
|
208
|
+
|
|
209
|
+
grid-area: left-sidebar;
|
|
210
|
+
grid-row: span 3;
|
|
256
211
|
}
|
|
257
212
|
|
|
258
213
|
&__body {
|
|
259
214
|
flex: 1;
|
|
260
215
|
display: flex;
|
|
261
216
|
flex-direction: column;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
&__header {
|
|
265
|
-
display: flex;
|
|
266
|
-
justify-content: space-between;
|
|
267
|
-
align-items: center;
|
|
268
|
-
border-bottom: 1px solid $unnnic-color-neutral-soft;
|
|
269
|
-
padding: $unnnic-spacing-md;
|
|
270
|
-
flex-shrink: 0;
|
|
271
|
-
}
|
|
272
217
|
|
|
273
|
-
|
|
274
|
-
display: flex;
|
|
275
|
-
align-items: center;
|
|
276
|
-
gap: $unnnic-spacing-ant;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
&__title-icon {
|
|
280
|
-
font-size: 28px;
|
|
281
|
-
}
|
|
218
|
+
overflow-y: auto;
|
|
282
219
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
220
|
+
&--left-sidebar {
|
|
221
|
+
border-radius: $unnnic-radius-4 0 0 $unnnic-radius-4;
|
|
222
|
+
display: grid;
|
|
223
|
+
grid-template-columns: auto 1fr;
|
|
224
|
+
grid-template-areas: 'left-sidebar content';
|
|
225
|
+
}
|
|
289
226
|
}
|
|
290
227
|
|
|
291
228
|
&__content {
|
|
@@ -309,26 +246,5 @@ export default {
|
|
|
309
246
|
border-radius: $unnnic-border-radius-pill;
|
|
310
247
|
}
|
|
311
248
|
}
|
|
312
|
-
|
|
313
|
-
&__actions {
|
|
314
|
-
display: grid;
|
|
315
|
-
grid-template-columns: 1fr 1fr;
|
|
316
|
-
grid-template-areas: 'secondary-button primary-button';
|
|
317
|
-
gap: $unnnic-spacing-sm;
|
|
318
|
-
padding: $unnnic-spacing-md;
|
|
319
|
-
flex-shrink: 0;
|
|
320
|
-
|
|
321
|
-
&--divider {
|
|
322
|
-
border-top: 1px solid $unnnic-color-neutral-soft;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
&__secondary-button {
|
|
326
|
-
grid-area: secondary-button;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
&__primary-button {
|
|
330
|
-
grid-area: primary-button;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
249
|
}
|
|
334
250
|
</style>
|