@moni-labs/moni-ui 0.3.1 → 0.3.2
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/custom-elements.json +5181 -1043
- package/dist/components/_base/moni-element.d.ts +16 -9
- package/dist/components/_base/moni-element.d.ts.map +1 -1
- package/dist/components/_base/moni-element.js +63 -9
- package/dist/components/index.js +2 -2
- package/dist/components/loading-shapes.d.ts +19 -0
- package/dist/components/loading-shapes.d.ts.map +1 -1
- package/dist/components/loading-shapes.js +19 -0
- package/dist/components/moni-app-bar.d.ts +72 -62
- package/dist/components/moni-app-bar.d.ts.map +1 -1
- package/dist/components/moni-app-bar.js +72 -62
- package/dist/components/moni-badge.d.ts +64 -65
- package/dist/components/moni-badge.d.ts.map +1 -1
- package/dist/components/moni-badge.js +64 -66
- package/dist/components/moni-bottom-sheet.d.ts +129 -61
- package/dist/components/moni-bottom-sheet.d.ts.map +1 -1
- package/dist/components/moni-bottom-sheet.js +217 -131
- package/dist/components/moni-button-group.d.ts +107 -29
- package/dist/components/moni-button-group.d.ts.map +1 -1
- package/dist/components/moni-button-group.js +107 -29
- package/dist/components/moni-button-segment.d.ts +53 -12
- package/dist/components/moni-button-segment.d.ts.map +1 -1
- package/dist/components/moni-button-segment.js +53 -12
- package/dist/components/moni-button.d.ts +116 -38
- package/dist/components/moni-button.d.ts.map +1 -1
- package/dist/components/moni-button.js +128 -38
- package/dist/components/moni-card.d.ts +68 -50
- package/dist/components/moni-card.d.ts.map +1 -1
- package/dist/components/moni-card.js +68 -50
- package/dist/components/moni-carousel.d.ts +471 -53
- package/dist/components/moni-carousel.d.ts.map +1 -1
- package/dist/components/moni-carousel.js +862 -264
- package/dist/components/moni-checkbox.d.ts +49 -46
- package/dist/components/moni-checkbox.d.ts.map +1 -1
- package/dist/components/moni-checkbox.js +55 -48
- package/dist/components/moni-chip.d.ts +100 -33
- package/dist/components/moni-chip.d.ts.map +1 -1
- package/dist/components/moni-chip.js +104 -34
- package/dist/components/moni-color-field.d.ts +99 -24
- package/dist/components/moni-color-field.d.ts.map +1 -1
- package/dist/components/moni-color-field.js +99 -24
- package/dist/components/moni-context-menu.d.ts +72 -26
- package/dist/components/moni-context-menu.d.ts.map +1 -1
- package/dist/components/moni-context-menu.js +76 -30
- package/dist/components/moni-dialog.d.ts +84 -59
- package/dist/components/moni-dialog.d.ts.map +1 -1
- package/dist/components/moni-dialog.js +105 -58
- package/dist/components/moni-divider.d.ts +39 -27
- package/dist/components/moni-divider.d.ts.map +1 -1
- package/dist/components/moni-divider.js +42 -30
- package/dist/components/moni-expansion.d.ts +32 -22
- package/dist/components/moni-expansion.d.ts.map +1 -1
- package/dist/components/moni-expansion.js +32 -22
- package/dist/components/moni-fab-menu.d.ts +61 -23
- package/dist/components/moni-fab-menu.d.ts.map +1 -1
- package/dist/components/moni-fab-menu.js +69 -31
- package/dist/components/moni-fab.d.ts +86 -28
- package/dist/components/moni-fab.d.ts.map +1 -1
- package/dist/components/moni-fab.js +92 -34
- package/dist/components/moni-file-field.d.ts +118 -30
- package/dist/components/moni-file-field.d.ts.map +1 -1
- package/dist/components/moni-file-field.js +118 -30
- package/dist/components/moni-icon.d.ts +40 -35
- package/dist/components/moni-icon.d.ts.map +1 -1
- package/dist/components/moni-icon.js +43 -38
- package/dist/components/moni-list-item.d.ts +46 -33
- package/dist/components/moni-list-item.d.ts.map +1 -1
- package/dist/components/moni-list-item.js +61 -41
- package/dist/components/moni-list.d.ts +30 -20
- package/dist/components/moni-list.d.ts.map +1 -1
- package/dist/components/moni-list.js +36 -21
- package/dist/components/moni-loading-indicator.d.ts +54 -22
- package/dist/components/moni-loading-indicator.d.ts.map +1 -1
- package/dist/components/moni-loading-indicator.js +54 -22
- package/dist/components/moni-menu-item.d.ts +23 -16
- package/dist/components/moni-menu-item.d.ts.map +1 -1
- package/dist/components/moni-menu-item.js +23 -16
- package/dist/components/moni-menu.d.ts +81 -28
- package/dist/components/moni-menu.d.ts.map +1 -1
- package/dist/components/moni-menu.js +81 -30
- package/dist/components/moni-morph-modal.d.ts +141 -0
- package/dist/components/moni-morph-modal.d.ts.map +1 -1
- package/dist/components/moni-morph-modal.js +295 -58
- package/dist/components/moni-nav-item.d.ts +59 -29
- package/dist/components/moni-nav-item.d.ts.map +1 -1
- package/dist/components/moni-nav-item.js +59 -29
- package/dist/components/moni-nav.d.ts +94 -35
- package/dist/components/moni-nav.d.ts.map +1 -1
- package/dist/components/moni-nav.js +94 -35
- package/dist/components/moni-progress.d.ts +99 -55
- package/dist/components/moni-progress.d.ts.map +1 -1
- package/dist/components/moni-progress.js +99 -55
- package/dist/components/moni-radio.d.ts +62 -50
- package/dist/components/moni-radio.d.ts.map +1 -1
- package/dist/components/moni-radio.js +65 -52
- package/dist/components/moni-ripple.d.ts +74 -59
- package/dist/components/moni-ripple.d.ts.map +1 -1
- package/dist/components/moni-ripple.js +74 -59
- package/dist/components/moni-segmented-button.d.ts +91 -16
- package/dist/components/moni-segmented-button.d.ts.map +1 -1
- package/dist/components/moni-segmented-button.js +94 -17
- package/dist/components/moni-select-option.d.ts +30 -23
- package/dist/components/moni-select-option.d.ts.map +1 -1
- package/dist/components/moni-select-option.js +30 -23
- package/dist/components/moni-select.d.ts +300 -35
- package/dist/components/moni-select.d.ts.map +1 -1
- package/dist/components/moni-select.js +323 -39
- package/dist/components/moni-side-sheet.d.ts +94 -32
- package/dist/components/moni-side-sheet.d.ts.map +1 -1
- package/dist/components/moni-side-sheet.js +94 -32
- package/dist/components/moni-slider.d.ts +152 -41
- package/dist/components/moni-slider.d.ts.map +1 -1
- package/dist/components/moni-slider.js +154 -42
- package/dist/components/moni-snackbar.d.ts +53 -43
- package/dist/components/moni-snackbar.d.ts.map +1 -1
- package/dist/components/moni-snackbar.js +53 -43
- package/dist/components/moni-split-button.d.ts +63 -18
- package/dist/components/moni-split-button.d.ts.map +1 -1
- package/dist/components/moni-split-button.js +63 -18
- package/dist/components/moni-step.d.ts +36 -24
- package/dist/components/moni-step.d.ts.map +1 -1
- package/dist/components/moni-step.js +41 -29
- package/dist/components/moni-stepper.d.ts +64 -27
- package/dist/components/moni-stepper.d.ts.map +1 -1
- package/dist/components/moni-stepper.js +72 -34
- package/dist/components/moni-switch.d.ts +57 -46
- package/dist/components/moni-switch.d.ts.map +1 -1
- package/dist/components/moni-switch.js +59 -47
- package/dist/components/moni-tab.d.ts +26 -18
- package/dist/components/moni-tab.d.ts.map +1 -1
- package/dist/components/moni-tab.js +29 -21
- package/dist/components/moni-tabs.d.ts +34 -28
- package/dist/components/moni-tabs.d.ts.map +1 -1
- package/dist/components/moni-tabs.js +34 -28
- package/dist/components/moni-text-field.d.ts +139 -29
- package/dist/components/moni-text-field.d.ts.map +1 -1
- package/dist/components/moni-text-field.js +157 -31
- package/dist/components/moni-textarea.d.ts +127 -29
- package/dist/components/moni-textarea.d.ts.map +1 -1
- package/dist/components/moni-textarea.js +131 -32
- package/dist/components/moni-time-picker.d.ts +114 -24
- package/dist/components/moni-time-picker.d.ts.map +1 -1
- package/dist/components/moni-time-picker.js +127 -33
- package/dist/components/moni-toolbar.d.ts +37 -23
- package/dist/components/moni-toolbar.d.ts.map +1 -1
- package/dist/components/moni-toolbar.js +37 -23
- package/dist/components/moni-tooltip.d.ts +100 -36
- package/dist/components/moni-tooltip.d.ts.map +1 -1
- package/dist/components/moni-tooltip.js +104 -40
- package/dist/components/moni-typography.d.ts +68 -30
- package/dist/components/moni-typography.d.ts.map +1 -1
- package/dist/components/moni-typography.js +70 -32
- package/dist/styles/tokens.css +7 -7
- package/dist/types/events.d.ts +17 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +1 -0
- package/dist/utils/event-emitter.d.ts +13 -0
- package/dist/utils/event-emitter.d.ts.map +1 -0
- package/dist/utils/event-emitter.js +13 -0
- package/package.json +2 -1
- package/src/components/_base/moni-element.ts +73 -9
- package/src/components/index.ts +2 -2
- package/src/components/loading-shapes.ts +19 -0
- package/src/components/moni-app-bar.test.ts +10 -10
- package/src/components/moni-app-bar.ts +72 -62
- package/src/components/moni-badge.ts +64 -66
- package/src/components/moni-bottom-sheet.test.ts +39 -45
- package/src/components/moni-bottom-sheet.ts +222 -131
- package/src/components/moni-button-group.test.ts +14 -14
- package/src/components/moni-button-group.ts +107 -29
- package/src/components/moni-button-segment.ts +53 -12
- package/src/components/moni-button.test.ts +28 -26
- package/src/components/moni-button.ts +139 -39
- package/src/components/moni-card.test.ts +6 -6
- package/src/components/moni-card.ts +70 -50
- package/src/components/moni-carousel.test.ts +12 -12
- package/src/components/moni-carousel.ts +953 -290
- package/src/components/moni-checkbox.test.ts +7 -7
- package/src/components/moni-checkbox.ts +62 -48
- package/src/components/moni-chip.test.ts +17 -17
- package/src/components/moni-chip.ts +112 -34
- package/src/components/moni-color-field.test.ts +5 -5
- package/src/components/moni-color-field.ts +108 -24
- package/src/components/moni-context-menu.test.ts +11 -11
- package/src/components/moni-context-menu.ts +76 -30
- package/src/components/moni-dialog.ts +108 -59
- package/src/components/moni-divider.test.ts +4 -4
- package/src/components/moni-divider.ts +42 -30
- package/src/components/moni-expansion.ts +32 -22
- package/src/components/moni-fab-menu.test.ts +11 -11
- package/src/components/moni-fab-menu.ts +69 -31
- package/src/components/moni-fab.test.ts +16 -16
- package/src/components/moni-fab.ts +100 -34
- package/src/components/moni-file-field.test.ts +8 -8
- package/src/components/moni-file-field.ts +132 -30
- package/src/components/moni-icon.test.ts +11 -11
- package/src/components/moni-icon.ts +43 -38
- package/src/components/moni-list-item.test.ts +10 -10
- package/src/components/moni-list-item.ts +61 -41
- package/src/components/moni-list.ts +37 -21
- package/src/components/moni-loading-indicator.test.ts +3 -3
- package/src/components/moni-loading-indicator.ts +54 -22
- package/src/components/moni-menu-item.ts +23 -16
- package/src/components/moni-menu.test.ts +7 -7
- package/src/components/moni-menu.ts +87 -30
- package/src/components/moni-morph-modal.test.ts +18 -17
- package/src/components/moni-morph-modal.ts +327 -60
- package/src/components/moni-nav-item.ts +59 -29
- package/src/components/moni-nav.test.ts +11 -11
- package/src/components/moni-nav.ts +94 -35
- package/src/components/moni-progress.test.ts +9 -9
- package/src/components/moni-progress.ts +100 -56
- package/src/components/moni-radio.test.ts +8 -8
- package/src/components/moni-radio.ts +71 -51
- package/src/components/moni-ripple.ts +74 -59
- package/src/components/moni-segmented-button.test.ts +4 -4
- package/src/components/moni-segmented-button.ts +94 -17
- package/src/components/moni-select-option.ts +30 -23
- package/src/components/moni-select.test.ts +11 -11
- package/src/components/moni-select.ts +361 -50
- package/src/components/moni-side-sheet.test.ts +7 -7
- package/src/components/moni-side-sheet.ts +94 -32
- package/src/components/moni-slider.test.ts +7 -7
- package/src/components/moni-slider.ts +165 -42
- package/src/components/moni-snackbar.test.ts +8 -8
- package/src/components/moni-snackbar.ts +53 -43
- package/src/components/moni-split-button.ts +63 -18
- package/src/components/moni-step.test.ts +7 -7
- package/src/components/moni-step.ts +41 -29
- package/src/components/moni-stepper.test.ts +7 -7
- package/src/components/moni-stepper.ts +72 -34
- package/src/components/moni-switch.test.ts +12 -12
- package/src/components/moni-switch.ts +66 -47
- package/src/components/moni-tab.test.ts +5 -5
- package/src/components/moni-tab.ts +29 -21
- package/src/components/moni-tabs.ts +34 -28
- package/src/components/moni-text-field.test.ts +13 -13
- package/src/components/moni-text-field.ts +181 -30
- package/src/components/moni-textarea.test.ts +17 -17
- package/src/components/moni-textarea.ts +155 -31
- package/src/components/moni-time-picker.test.ts +5 -5
- package/src/components/moni-time-picker.ts +128 -33
- package/src/components/moni-toolbar.test.ts +8 -8
- package/src/components/moni-toolbar.ts +37 -23
- package/src/components/moni-tooltip.test.ts +15 -15
- package/src/components/moni-tooltip.ts +107 -40
- package/src/components/moni-typography.test.ts +10 -10
- package/src/components/moni-typography.ts +73 -32
- package/src/styles/tokens.css +7 -7
- package/src/types/events.ts +17 -0
- package/src/utils/event-emitter.ts +26 -0
|
@@ -14,21 +14,21 @@ describe('moni-bottom-sheet', () => {
|
|
|
14
14
|
el.remove();
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
-
it('
|
|
17
|
+
it('renderiza el diálogo cerrado por defecto', async () => {
|
|
18
18
|
await el.updateComplete;
|
|
19
19
|
const dialog = el.shadowRoot?.querySelector('dialog');
|
|
20
20
|
expect(dialog).toBeTruthy();
|
|
21
21
|
expect(dialog?.hasAttribute('open')).toBe(false);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
it('
|
|
24
|
+
it('renderiza el diálogo abierto cuando el atributo open está establecido', async () => {
|
|
25
25
|
el.open = true;
|
|
26
26
|
await el.updateComplete;
|
|
27
27
|
const dialog = el.shadowRoot?.querySelector('dialog');
|
|
28
28
|
expect(dialog?.hasAttribute('open')).toBe(true);
|
|
29
29
|
});
|
|
30
30
|
|
|
31
|
-
it('
|
|
31
|
+
it('emite el evento close y establece open en false cuando se arrastra hacia abajo más allá del umbral', async () => {
|
|
32
32
|
el.open = true;
|
|
33
33
|
await el.updateComplete;
|
|
34
34
|
|
|
@@ -37,11 +37,11 @@ describe('moni-bottom-sheet', () => {
|
|
|
37
37
|
expect(dialog).toBeTruthy();
|
|
38
38
|
expect(handle).toBeTruthy();
|
|
39
39
|
|
|
40
|
-
//
|
|
40
|
+
// Simular setPointerCapture y releasePointerCapture
|
|
41
41
|
handle.setPointerCapture = vi.fn();
|
|
42
42
|
handle.releasePointerCapture = vi.fn();
|
|
43
43
|
|
|
44
|
-
//
|
|
44
|
+
// Simular getBoundingClientRect para la altura
|
|
45
45
|
vi.spyOn(dialog, 'getBoundingClientRect').mockReturnValue({
|
|
46
46
|
height: 300,
|
|
47
47
|
width: 375,
|
|
@@ -57,7 +57,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
57
57
|
const closeSpy = vi.fn();
|
|
58
58
|
el.addEventListener('close', closeSpy);
|
|
59
59
|
|
|
60
|
-
//
|
|
60
|
+
// Desencadenar pointerdown en el handle
|
|
61
61
|
handle.dispatchEvent(
|
|
62
62
|
new PointerEvent('pointerdown', {
|
|
63
63
|
bubbles: true,
|
|
@@ -67,7 +67,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
67
67
|
})
|
|
68
68
|
);
|
|
69
69
|
|
|
70
|
-
//
|
|
70
|
+
// Desencadenar pointermove hacia abajo (200px)
|
|
71
71
|
dialog.dispatchEvent(
|
|
72
72
|
new PointerEvent('pointermove', {
|
|
73
73
|
bubbles: true,
|
|
@@ -77,7 +77,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
77
77
|
})
|
|
78
78
|
);
|
|
79
79
|
|
|
80
|
-
//
|
|
80
|
+
// Desencadenar pointerup
|
|
81
81
|
handle.dispatchEvent(
|
|
82
82
|
new PointerEvent('pointerup', {
|
|
83
83
|
bubbles: true,
|
|
@@ -87,7 +87,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
87
87
|
})
|
|
88
88
|
);
|
|
89
89
|
|
|
90
|
-
//
|
|
90
|
+
// Simular la finalización de la transición
|
|
91
91
|
dialog.dispatchEvent(new Event('transitionend'));
|
|
92
92
|
|
|
93
93
|
await el.updateComplete;
|
|
@@ -96,7 +96,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
96
96
|
expect(el.open).toBe(false);
|
|
97
97
|
});
|
|
98
98
|
|
|
99
|
-
it('
|
|
99
|
+
it('no emite el evento close cuando se arrastra hacia abajo menos del umbral', async () => {
|
|
100
100
|
el.open = true;
|
|
101
101
|
await el.updateComplete;
|
|
102
102
|
|
|
@@ -134,7 +134,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
134
134
|
new PointerEvent('pointermove', {
|
|
135
135
|
bubbles: true,
|
|
136
136
|
clientX: 100,
|
|
137
|
-
clientY: 420, // 20px
|
|
137
|
+
clientY: 420, // 20px de diferencia (por debajo del umbral de Math.min(150, 300*0.4=120))
|
|
138
138
|
pointerId: 1
|
|
139
139
|
})
|
|
140
140
|
);
|
|
@@ -154,7 +154,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
154
154
|
expect(el.open).toBe(true);
|
|
155
155
|
});
|
|
156
156
|
|
|
157
|
-
it('
|
|
157
|
+
it('aumenta la altura del diálogo cuando se arrastra hacia arriba', async () => {
|
|
158
158
|
el.open = true;
|
|
159
159
|
await el.updateComplete;
|
|
160
160
|
|
|
@@ -176,7 +176,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
176
176
|
toJSON: () => {}
|
|
177
177
|
});
|
|
178
178
|
|
|
179
|
-
//
|
|
179
|
+
// Desencadenar pointerdown
|
|
180
180
|
handle.dispatchEvent(
|
|
181
181
|
new PointerEvent('pointerdown', {
|
|
182
182
|
bubbles: true,
|
|
@@ -186,19 +186,19 @@ describe('moni-bottom-sheet', () => {
|
|
|
186
186
|
})
|
|
187
187
|
);
|
|
188
188
|
|
|
189
|
-
//
|
|
189
|
+
// Desencadenar pointermove hacia arriba (por 50px)
|
|
190
190
|
dialog.dispatchEvent(
|
|
191
191
|
new PointerEvent('pointermove', {
|
|
192
192
|
bubbles: true,
|
|
193
193
|
clientX: 100,
|
|
194
|
-
clientY: 350, // clientY
|
|
194
|
+
clientY: 350, // clientY pasó de 400 a 350, así que deltaY = -50
|
|
195
195
|
pointerId: 1
|
|
196
196
|
})
|
|
197
197
|
);
|
|
198
198
|
|
|
199
199
|
expect(dialog.style.height).toBe('350px'); // 300px + 50px
|
|
200
200
|
|
|
201
|
-
//
|
|
201
|
+
// Desencadenar pointerup
|
|
202
202
|
handle.dispatchEvent(
|
|
203
203
|
new PointerEvent('pointerup', {
|
|
204
204
|
bubbles: true,
|
|
@@ -210,12 +210,12 @@ describe('moni-bottom-sheet', () => {
|
|
|
210
210
|
|
|
211
211
|
await el.updateComplete;
|
|
212
212
|
|
|
213
|
-
//
|
|
213
|
+
// La altura y el estilo de transformación deben restablecerse
|
|
214
214
|
expect(dialog.style.height).toBe('');
|
|
215
215
|
expect(dialog.style.transform).toBe('');
|
|
216
216
|
});
|
|
217
217
|
|
|
218
|
-
it('
|
|
218
|
+
it('se ajusta a la clase expanded cuando se arrastra hacia arriba más allá del umbral', async () => {
|
|
219
219
|
el.open = true;
|
|
220
220
|
await el.updateComplete;
|
|
221
221
|
|
|
@@ -237,7 +237,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
237
237
|
toJSON: () => {}
|
|
238
238
|
});
|
|
239
239
|
|
|
240
|
-
//
|
|
240
|
+
// Iniciar arrastre
|
|
241
241
|
handle.dispatchEvent(
|
|
242
242
|
new PointerEvent('pointerdown', {
|
|
243
243
|
bubbles: true,
|
|
@@ -247,7 +247,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
247
247
|
})
|
|
248
248
|
);
|
|
249
249
|
|
|
250
|
-
//
|
|
250
|
+
// Arrastrar hacia arriba 100px (mayor al umbral de 80px)
|
|
251
251
|
dialog.dispatchEvent(
|
|
252
252
|
new PointerEvent('pointermove', {
|
|
253
253
|
bubbles: true,
|
|
@@ -257,7 +257,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
257
257
|
})
|
|
258
258
|
);
|
|
259
259
|
|
|
260
|
-
//
|
|
260
|
+
// Soltar
|
|
261
261
|
handle.dispatchEvent(
|
|
262
262
|
new PointerEvent('pointerup', {
|
|
263
263
|
bubbles: true,
|
|
@@ -269,31 +269,31 @@ describe('moni-bottom-sheet', () => {
|
|
|
269
269
|
|
|
270
270
|
await el.updateComplete;
|
|
271
271
|
|
|
272
|
-
//
|
|
272
|
+
// La lista de clases ahora debería contener 'expanded'
|
|
273
273
|
expect(dialog.classList.contains('expanded')).toBe(true);
|
|
274
274
|
});
|
|
275
275
|
|
|
276
|
-
it('
|
|
276
|
+
it('teletransporta el elemento a document.body cuando positioning=body y open=true, y lo restaura al cerrarse', async () => {
|
|
277
277
|
const originalParent = el.parentNode;
|
|
278
278
|
el.positioning = 'body';
|
|
279
279
|
await el.updateComplete;
|
|
280
280
|
|
|
281
|
-
//
|
|
281
|
+
// Establecer open en true
|
|
282
282
|
el.open = true;
|
|
283
283
|
await el.updateComplete;
|
|
284
284
|
|
|
285
|
-
//
|
|
285
|
+
// Debería ser hijo de document.body
|
|
286
286
|
expect(el.parentNode).toBe(document.body);
|
|
287
287
|
|
|
288
|
-
//
|
|
288
|
+
// Establecer open en false
|
|
289
289
|
el.open = false;
|
|
290
290
|
await el.updateComplete;
|
|
291
291
|
|
|
292
|
-
//
|
|
292
|
+
// Debería restaurarse al padre original
|
|
293
293
|
expect(el.parentNode).toBe(originalParent);
|
|
294
294
|
});
|
|
295
295
|
|
|
296
|
-
it('
|
|
296
|
+
it('aplica la clase correcta para positioning=absolute y positioning=static', async () => {
|
|
297
297
|
const dialog = el.shadowRoot?.querySelector('dialog');
|
|
298
298
|
|
|
299
299
|
el.positioning = 'absolute';
|
|
@@ -307,7 +307,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
307
307
|
expect(dialog?.classList.contains('absolute')).toBe(false);
|
|
308
308
|
});
|
|
309
309
|
|
|
310
|
-
it('
|
|
310
|
+
it('establece la propiedad personalizada CSS para expandedHeight', async () => {
|
|
311
311
|
el.expandedHeight = '75%';
|
|
312
312
|
await el.updateComplete;
|
|
313
313
|
expect(el.style.getPropertyValue('--moni-bottom-sheet-expanded-height')).toBe('75%');
|
|
@@ -317,7 +317,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
317
317
|
expect(el.style.getPropertyValue('--moni-bottom-sheet-expanded-height')).toBe('600px');
|
|
318
318
|
});
|
|
319
319
|
|
|
320
|
-
it('
|
|
320
|
+
it('cierra el bottom sheet al hacer clic fuera del diálogo (clic en el backdrop)', async () => {
|
|
321
321
|
el.open = true;
|
|
322
322
|
el.modal = true;
|
|
323
323
|
await el.updateComplete;
|
|
@@ -330,13 +330,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
330
330
|
const closeSpy = vi.fn();
|
|
331
331
|
el.addEventListener('close', closeSpy);
|
|
332
332
|
|
|
333
|
-
//
|
|
334
|
-
dialog.dispatchEvent(new MouseEvent('click', {
|
|
335
|
-
bubbles: true,
|
|
336
|
-
cancelable: true
|
|
337
|
-
}));
|
|
338
|
-
// Wait, MouseEvent dispatched on dialog directly has e.target === dialog.
|
|
339
|
-
// To simulate click on handle, dispatch click event on handle, which bubbles to dialog:
|
|
333
|
+
// Clic adentro (el objetivo es handle): no debería cerrarse
|
|
340
334
|
handle.dispatchEvent(new MouseEvent('click', {
|
|
341
335
|
bubbles: true,
|
|
342
336
|
cancelable: true
|
|
@@ -346,13 +340,13 @@ describe('moni-bottom-sheet', () => {
|
|
|
346
340
|
expect(closeSpy).not.toHaveBeenCalled();
|
|
347
341
|
expect(el.open).toBe(true);
|
|
348
342
|
|
|
349
|
-
//
|
|
343
|
+
// Clic afuera (el objetivo es el propio diálogo): debería cerrarse
|
|
350
344
|
dialog.dispatchEvent(new MouseEvent('click', {
|
|
351
345
|
bubbles: true,
|
|
352
346
|
cancelable: true
|
|
353
347
|
}));
|
|
354
348
|
|
|
355
|
-
//
|
|
349
|
+
// Simular la finalización de la transición
|
|
356
350
|
dialog.dispatchEvent(new Event('transitionend'));
|
|
357
351
|
|
|
358
352
|
await el.updateComplete;
|
|
@@ -360,7 +354,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
360
354
|
expect(el.open).toBe(false);
|
|
361
355
|
});
|
|
362
356
|
|
|
363
|
-
it('
|
|
357
|
+
it('establece la propiedad personalizada CSS para maxWidth', async () => {
|
|
364
358
|
el.maxWidth = '500px';
|
|
365
359
|
await el.updateComplete;
|
|
366
360
|
expect(el.style.getPropertyValue('--moni-bottom-sheet-max-width')).toBe('500px');
|
|
@@ -370,7 +364,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
370
364
|
expect(el.style.getPropertyValue('--moni-bottom-sheet-max-width')).toBe('80%');
|
|
371
365
|
});
|
|
372
366
|
|
|
373
|
-
it('
|
|
367
|
+
it('no cierra el bottom sheet al hacer clic en el backdrop si acaba de ser arrastrado', async () => {
|
|
374
368
|
el.open = true;
|
|
375
369
|
el.modal = true;
|
|
376
370
|
await el.updateComplete;
|
|
@@ -380,14 +374,14 @@ describe('moni-bottom-sheet', () => {
|
|
|
380
374
|
expect(dialog).toBeTruthy();
|
|
381
375
|
expect(handle).toBeTruthy();
|
|
382
376
|
|
|
383
|
-
//
|
|
377
|
+
// Simular métodos de puntero
|
|
384
378
|
handle.setPointerCapture = vi.fn();
|
|
385
379
|
handle.releasePointerCapture = vi.fn();
|
|
386
380
|
|
|
387
381
|
const closeSpy = vi.fn();
|
|
388
382
|
el.addEventListener('close', closeSpy);
|
|
389
383
|
|
|
390
|
-
//
|
|
384
|
+
// Realizar un gesto de arrastre (pointerdown, pointermove, pointerup)
|
|
391
385
|
handle.dispatchEvent(new PointerEvent('pointerdown', {
|
|
392
386
|
bubbles: true,
|
|
393
387
|
clientX: 100,
|
|
@@ -397,7 +391,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
397
391
|
dialog.dispatchEvent(new PointerEvent('pointermove', {
|
|
398
392
|
bubbles: true,
|
|
399
393
|
clientX: 100,
|
|
400
|
-
clientY: 350, //
|
|
394
|
+
clientY: 350, // arrastre hacia arriba de 50px
|
|
401
395
|
pointerId: 1
|
|
402
396
|
}));
|
|
403
397
|
handle.dispatchEvent(new PointerEvent('pointerup', {
|
|
@@ -407,7 +401,7 @@ describe('moni-bottom-sheet', () => {
|
|
|
407
401
|
pointerId: 1
|
|
408
402
|
}));
|
|
409
403
|
|
|
410
|
-
//
|
|
404
|
+
// Un evento click inmediatamente después del arrastre
|
|
411
405
|
dialog.dispatchEvent(new MouseEvent('click', {
|
|
412
406
|
bubbles: true,
|
|
413
407
|
cancelable: true
|