@plusui/library 0.1.15 → 0.1.17
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/cdn/components/accordion/accordion.js +1 -1
- package/cdn/components/accordion/index.js +1 -1
- package/cdn/components/accordion-group/accordion-group.js +1 -1
- package/cdn/components/accordion-group/index.js +1 -1
- package/cdn/components/alert/alert.js +1 -1
- package/cdn/components/alert/index.js +1 -1
- package/cdn/components/avatar/avatar.js +1 -1
- package/cdn/components/avatar/index.js +1 -1
- package/cdn/components/badge/badge.js +1 -1
- package/cdn/components/badge/index.js +1 -1
- package/cdn/components/base/index.js +1 -1
- package/cdn/components/base/tailwind-base.js +1 -1
- package/cdn/components/breadcrumb/breadcrumb.js +1 -1
- package/cdn/components/breadcrumb/index.js +1 -1
- package/cdn/components/breadcrumb-item/breadcrumb-item.js +1 -1
- package/cdn/components/breadcrumb-item/index.js +1 -1
- package/cdn/components/button/button.js +1 -1
- package/cdn/components/button/index.js +1 -1
- package/cdn/components/button-group/button-group.js +1 -1
- package/cdn/components/button-group/index.js +1 -1
- package/cdn/components/checkbox/checkbox.js +1 -1
- package/cdn/components/checkbox/index.js +1 -1
- package/cdn/components/checkbox-group/checkbox-group.js +1 -1
- package/cdn/components/checkbox-group/index.js +1 -1
- package/cdn/components/chip/chip.js +1 -1
- package/cdn/components/chip/index.js +1 -1
- package/cdn/components/divider/divider.js +1 -1
- package/cdn/components/divider/index.js +1 -1
- package/cdn/components/drawer/drawer.js +1 -1
- package/cdn/components/drawer/index.js +1 -1
- package/cdn/components/dropdown/dropdown.js +1 -1
- package/cdn/components/dropdown/index.js +1 -1
- package/cdn/components/dropdown-item/dropdown-item.js +1 -1
- package/cdn/components/dropdown-item/index.js +1 -1
- package/cdn/components/index.js +1 -1
- package/cdn/components/input/index.js +1 -1
- package/cdn/components/input/input.js +1 -1
- package/cdn/components/link/index.js +1 -1
- package/cdn/components/link/link.js +1 -1
- package/cdn/components/list-box-item/index.js +1 -1
- package/cdn/components/list-box-item/list-box-item.js +1 -1
- package/cdn/components/modal/index.js +5 -1
- package/cdn/components/modal/modal.js +343 -83
- package/cdn/components/modal/modal.style.js +70 -41
- package/cdn/components/popconfirm/index.js +1 -1
- package/cdn/components/popconfirm/popconfirm.js +1 -1
- package/cdn/components/popover/index.js +1 -1
- package/cdn/components/popover/popover.js +1 -1
- package/cdn/components/radio/index.js +1 -1
- package/cdn/components/radio/radio.js +1 -1
- package/cdn/components/radio-group/index.js +1 -1
- package/cdn/components/radio-group/radio-group.js +1 -1
- package/cdn/components/rating/index.js +1 -1
- package/cdn/components/rating/rating.js +1 -1
- package/cdn/components/segmented-picker/index.js +1 -1
- package/cdn/components/segmented-picker/segmented-picker.component.js +1 -1
- package/cdn/components/segmented-picker-item/index.js +1 -1
- package/cdn/components/segmented-picker-item/segmented-picker-item.component.js +1 -1
- package/cdn/components/select/index.js +1 -1
- package/cdn/components/select/select.js +1 -1
- package/cdn/components/select-item/index.js +1 -1
- package/cdn/components/select-item/select-item.js +1 -1
- package/cdn/components/service/index.js +1 -1
- package/cdn/components/service/service.js +1 -1
- package/cdn/components/tab/index.js +1 -1
- package/cdn/components/tab/tab.js +1 -1
- package/cdn/components/tab-group/index.js +1 -1
- package/cdn/components/tab-group/tab-group.js +1 -1
- package/cdn/components/tab-panel/index.js +1 -1
- package/cdn/components/tab-panel/tab-panel.js +1 -1
- package/cdn/components/tag/index.js +1 -1
- package/cdn/components/tag/tag.js +1 -1
- package/cdn/components/text/index.js +1 -1
- package/cdn/components/text/text.js +1 -1
- package/cdn/components/textarea/index.js +1 -1
- package/cdn/components/textarea/textarea.js +1 -1
- package/cdn/components/toast/index.js +1 -1
- package/cdn/components/toast/toast.js +1 -1
- package/cdn/components/toast-container/index.js +1 -1
- package/cdn/components/toast-container/toast-container.js +1 -1
- package/cdn/components/toggle/index.js +1 -1
- package/cdn/components/toggle/toggle.js +1 -1
- package/cdn/components/tooltip/index.js +1 -1
- package/cdn/components/tooltip/tooltip.js +1 -1
- package/cdn/factory/tailwind-factory.js +1 -1
- package/cdn/global-BfmuDcaf.js +1 -0
- package/cdn/global-m-W73pez.js +31 -0
- package/custom-elements.json +226 -25
- package/dist/components/modal/index.js +4 -0
- package/dist/components/modal/modal.d.ts +95 -22
- package/dist/components/modal/modal.d.ts.map +1 -1
- package/dist/components/modal/modal.js +342 -82
- package/dist/components/modal/modal.js.map +1 -1
- package/dist/components/modal/modal.style.d.ts +297 -122
- package/dist/components/modal/modal.style.d.ts.map +1 -1
- package/dist/components/modal/modal.style.js +70 -41
- package/dist/components/modal/modal.style.js.map +1 -1
- package/dist/{if-defined-DKbfGhXu.js → if-defined-DBB3AQZw.js} +1 -1
- package/dist/index.css +1 -1
- package/dist/{live-CtqYa7Iz.js → live-Db5nLVo0.js} +1 -1
- package/dist/{property-DhJ1LIGX.js → property-C9Hzx3kj.js} +1 -1
- package/dist/{query-CJZ9rve2.js → query-RewOgxYG.js} +1 -1
- package/dist/{query-assigned-elements-BTKIEABn.js → query-assigned-elements-DY-CICub.js} +1 -1
- package/dist/{state-BJT7gLGV.js → state-B4zcCODl.js} +1 -1
- package/dist/{style-map-4vJ38bCf.js → style-map-sUMHadXp.js} +1 -1
- package/dist/styles/global.js +2 -2
- package/eslint/custom-element-eslint-rules.js +16 -0
- package/package.json +1 -1
- package/public/html/index.js +409 -124
- package/public/react/index.d.ts +145 -33
- package/public/react/index.js +433 -125
- package/react/PlusModal.d.ts +50 -11
- package/react/PlusModal.js +31 -2
- package/types/custom-element-jsx.d.ts +42 -11
- package/types/custom-element-solidjs.d.ts +42 -11
- package/types/custom-element-svelte.d.ts +42 -11
- package/types/custom-element-vuejs.d.ts +42 -11
- package/vscode.css-custom-data.json +10 -6
- package/vscode.html-custom-data.json +26 -1
- package/web-types.json +106 -11
- package/cdn/global-DGCiKnca.js +0 -1
- package/cdn/global-GTfSG3gU.js +0 -31
- /package/dist/{base-ByZpKIDU.js → base-CBi-OLn2.js} +0 -0
- /package/dist/{directive-rJcjnQEi.js → directive-B_gs7lGG.js} +0 -0
- /package/dist/{floating-ui.dom-CnRf1aAR.js → floating-ui.dom-Cv67XeEd.js} +0 -0
- /package/dist/{index-DUwBBqWm.js → index-Cobjj9Q1.js} +0 -0
- /package/dist/{lit-element-Bu7TYzc7.js → lit-element-naXdLm94.js} +0 -0
|
@@ -1,44 +1,68 @@
|
|
|
1
1
|
import { _ as __decorate, n } from '../../property-DiPQx9S3.js';
|
|
2
2
|
import { x } from '../../lit-element-ByzbtpGk.js';
|
|
3
3
|
import { r } from '../../state-D1d5Sfj8.js';
|
|
4
|
+
import { e } from '../../query-CHb9Ft_d.js';
|
|
5
|
+
import { o } from '../../style-map-DC_vNus2.js';
|
|
4
6
|
import { booleanConverter } from '../../utils/boolean-converter.js';
|
|
5
7
|
import { modalStyle } from './modal.style.js';
|
|
6
8
|
import Tailwind from '../base/tailwind-base.js';
|
|
9
|
+
import '../../base-Cl6v8-BZ.js';
|
|
10
|
+
import '../../directive-DZCF8pFJ.js';
|
|
7
11
|
import '../../index-B9iart53.js';
|
|
8
12
|
import '../../styles/global.js';
|
|
9
13
|
import '../../style-inject.es-tgCJW-Cu.js';
|
|
10
14
|
|
|
11
15
|
/**
|
|
12
16
|
* @tag plus-modal
|
|
13
|
-
* @summary Modal dialog component
|
|
17
|
+
* @summary Modal dialog component built on native HTML Dialog API. Displays content in a layer above the page with full keyboard and focus management.
|
|
14
18
|
*
|
|
19
|
+
* @slot - Main content area (same as body slot)
|
|
15
20
|
* @slot header - The header content of the modal
|
|
16
|
-
* @slot body - The main content of the modal
|
|
21
|
+
* @slot body - The main content of the modal (alternative to default slot)
|
|
17
22
|
* @slot footer - The footer content of the modal
|
|
18
23
|
* @slot close - Custom close button (defaults to an X icon)
|
|
19
24
|
*
|
|
20
|
-
* @csspart
|
|
21
|
-
* @csspart
|
|
22
|
-
* @csspart modal - The modal
|
|
23
|
-
* @csspart header - The header
|
|
24
|
-
* @csspart
|
|
25
|
-
* @csspart
|
|
25
|
+
* @csspart dialog - The native dialog element
|
|
26
|
+
* @csspart container - The container wrapper for centering and scrolling
|
|
27
|
+
* @csspart modal - The main modal box
|
|
28
|
+
* @csspart header - The header section
|
|
29
|
+
* @csspart header-content - The content wrapper inside header
|
|
30
|
+
* @csspart body - The main content area
|
|
31
|
+
* @csspart footer - The footer section
|
|
26
32
|
* @csspart close-button - The close button element
|
|
27
33
|
*
|
|
34
|
+
* @event plus-modal-open - Emitted after the modal has opened
|
|
35
|
+
* @event plus-modal-close - Emitted after the modal has closed
|
|
36
|
+
* @event plus-modal-before-open - Emitted before the modal opens (cancelable)
|
|
37
|
+
* @event plus-modal-before-close - Emitted before the modal closes (cancelable)
|
|
38
|
+
*
|
|
28
39
|
* @example
|
|
29
40
|
* ```html
|
|
30
|
-
*
|
|
41
|
+
* <!-- Basic usage -->
|
|
42
|
+
* <plus-modal is-open>
|
|
31
43
|
* <div slot="header">Modal Title</div>
|
|
32
44
|
* <div slot="body">Modal Content</div>
|
|
33
45
|
* <div slot="footer">
|
|
34
|
-
* <button>
|
|
46
|
+
* <button data-dismiss>Close</button>
|
|
35
47
|
* </div>
|
|
36
48
|
* </plus-modal>
|
|
49
|
+
*
|
|
50
|
+
* <!-- Full screen modal -->
|
|
51
|
+
* <plus-modal full-screen>
|
|
52
|
+
* <div slot="header">Full Screen</div>
|
|
53
|
+
* <p>Content here</p>
|
|
54
|
+
* </plus-modal>
|
|
55
|
+
*
|
|
56
|
+
* <!-- Static backdrop (shake on outside click) -->
|
|
57
|
+
* <plus-modal backdrop="static">
|
|
58
|
+
* <div slot="header">Can't Close Outside</div>
|
|
59
|
+
* <p>Must use close button</p>
|
|
60
|
+
* </plus-modal>
|
|
37
61
|
* ```
|
|
38
62
|
*/
|
|
39
63
|
class PlusModal extends Tailwind {
|
|
40
64
|
constructor() {
|
|
41
|
-
super();
|
|
65
|
+
super(...arguments);
|
|
42
66
|
/**
|
|
43
67
|
* The size of the modal
|
|
44
68
|
* @type {'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'}
|
|
@@ -46,6 +70,13 @@ class PlusModal extends Tailwind {
|
|
|
46
70
|
* @attr size
|
|
47
71
|
*/
|
|
48
72
|
this.size = 'md';
|
|
73
|
+
/**
|
|
74
|
+
* The placement of the modal on the screen
|
|
75
|
+
* @type {'center' | 'top'}
|
|
76
|
+
* @default 'center'
|
|
77
|
+
* @attr placement
|
|
78
|
+
*/
|
|
79
|
+
this.placement = 'center';
|
|
49
80
|
/**
|
|
50
81
|
* Whether the modal is open
|
|
51
82
|
* @type {boolean}
|
|
@@ -60,6 +91,23 @@ class PlusModal extends Tailwind {
|
|
|
60
91
|
* @attr full-width
|
|
61
92
|
*/
|
|
62
93
|
this.fullWidth = false;
|
|
94
|
+
/**
|
|
95
|
+
* Makes the modal take the full screen (100vw x 100vh, no border radius)
|
|
96
|
+
* @type {boolean}
|
|
97
|
+
* @default false
|
|
98
|
+
* @attr full-screen
|
|
99
|
+
*/
|
|
100
|
+
this.fullScreen = false;
|
|
101
|
+
/**
|
|
102
|
+
* Controls backdrop behavior
|
|
103
|
+
* - true: Shows backdrop, modal can be closed by clicking outside
|
|
104
|
+
* - false: No backdrop
|
|
105
|
+
* - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
|
|
106
|
+
* @type {boolean | 'static'}
|
|
107
|
+
* @default true
|
|
108
|
+
* @attr backdrop
|
|
109
|
+
*/
|
|
110
|
+
this.backdrop = true;
|
|
63
111
|
/**
|
|
64
112
|
* Whether the modal should close when clicking the backdrop
|
|
65
113
|
* @type {boolean}
|
|
@@ -74,6 +122,20 @@ class PlusModal extends Tailwind {
|
|
|
74
122
|
* @attr close-on-esc
|
|
75
123
|
*/
|
|
76
124
|
this.closeOnEsc = true;
|
|
125
|
+
/**
|
|
126
|
+
* Hides the header section completely
|
|
127
|
+
* @type {boolean}
|
|
128
|
+
* @default false
|
|
129
|
+
* @attr no-header
|
|
130
|
+
*/
|
|
131
|
+
this.noHeader = false;
|
|
132
|
+
/**
|
|
133
|
+
* Hides the footer section completely
|
|
134
|
+
* @type {boolean}
|
|
135
|
+
* @default false
|
|
136
|
+
* @attr no-footer
|
|
137
|
+
*/
|
|
138
|
+
this.noFooter = false;
|
|
77
139
|
/**
|
|
78
140
|
* The duration of the animation in milliseconds
|
|
79
141
|
* @type {number}
|
|
@@ -82,118 +144,286 @@ class PlusModal extends Tailwind {
|
|
|
82
144
|
*/
|
|
83
145
|
this.animationDuration = 300;
|
|
84
146
|
this.isAnimating = false;
|
|
85
|
-
this.
|
|
147
|
+
this.shake = false;
|
|
86
148
|
}
|
|
87
149
|
connectedCallback() {
|
|
88
150
|
super.connectedCallback();
|
|
89
|
-
this.addEventListener('plus-modal-before-
|
|
90
|
-
this.addEventListener('plus-modal-before-
|
|
151
|
+
this.addEventListener('plus-modal-before-open', this.handleBeforeOpen);
|
|
152
|
+
this.addEventListener('plus-modal-before-close', this.handleBeforeClose);
|
|
153
|
+
}
|
|
154
|
+
disconnectedCallback() {
|
|
155
|
+
super.disconnectedCallback();
|
|
156
|
+
this.removeEventListener('plus-modal-before-open', this.handleBeforeOpen);
|
|
157
|
+
this.removeEventListener('plus-modal-before-close', this.handleBeforeClose);
|
|
158
|
+
if (this.dialogRef && this.isOpen) {
|
|
159
|
+
this.dialogRef.close();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
firstUpdated() {
|
|
163
|
+
if (this.isOpen && this.dialogRef) {
|
|
164
|
+
this.dialogRef.showModal();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
updated(changedProperties) {
|
|
168
|
+
super.updated(changedProperties);
|
|
169
|
+
if (changedProperties.has('isOpen')) {
|
|
170
|
+
if (this.isOpen) {
|
|
171
|
+
this.handleOpenChange();
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.handleCloseChange();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
91
177
|
}
|
|
92
178
|
/**
|
|
93
|
-
*
|
|
94
|
-
* @returns {void}
|
|
179
|
+
* Shows the modal with animation
|
|
180
|
+
* @returns {Promise<void>}
|
|
95
181
|
*/
|
|
96
|
-
|
|
97
|
-
if (this.isAnimating)
|
|
182
|
+
async show() {
|
|
183
|
+
if (this.isAnimating || this.isOpen)
|
|
98
184
|
return;
|
|
99
|
-
this.
|
|
185
|
+
this.isOpen = true;
|
|
100
186
|
}
|
|
101
|
-
|
|
102
|
-
|
|
187
|
+
/**
|
|
188
|
+
* Hides the modal with animation
|
|
189
|
+
* @returns {Promise<void>}
|
|
190
|
+
*/
|
|
191
|
+
async hide() {
|
|
192
|
+
if (this.isAnimating || !this.isOpen)
|
|
193
|
+
return;
|
|
103
194
|
this.isOpen = false;
|
|
104
|
-
setTimeout(() => {
|
|
105
|
-
this.isAnimating = false;
|
|
106
|
-
this.emit('plus-modal-hide');
|
|
107
|
-
}, this.animationDuration);
|
|
108
195
|
}
|
|
109
196
|
/**
|
|
110
|
-
*
|
|
111
|
-
* @returns {void}
|
|
197
|
+
* Toggles the modal open/closed state
|
|
198
|
+
* @returns {Promise<void>}
|
|
112
199
|
*/
|
|
113
|
-
|
|
114
|
-
if (this.
|
|
200
|
+
async toggle() {
|
|
201
|
+
if (this.isOpen) {
|
|
202
|
+
await this.hide();
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
await this.show();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
async handleOpenChange() {
|
|
209
|
+
this.isAnimating = true;
|
|
210
|
+
const event = this.emit('plus-modal-before-open', { cancelable: true });
|
|
211
|
+
if (event.defaultPrevented) {
|
|
212
|
+
this.isOpen = false;
|
|
213
|
+
this.isAnimating = false;
|
|
115
214
|
return;
|
|
116
|
-
|
|
215
|
+
}
|
|
216
|
+
if (this.dialogRef) {
|
|
217
|
+
this.dialogRef.showModal();
|
|
218
|
+
// Small delay for animation
|
|
219
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
220
|
+
this.isAnimating = false;
|
|
221
|
+
this.emit('plus-modal-open');
|
|
222
|
+
}
|
|
117
223
|
}
|
|
118
|
-
|
|
224
|
+
async handleCloseChange() {
|
|
119
225
|
this.isAnimating = true;
|
|
120
|
-
this.
|
|
121
|
-
|
|
226
|
+
const event = this.emit('plus-modal-before-close', { cancelable: true });
|
|
227
|
+
if (event.defaultPrevented) {
|
|
228
|
+
this.isOpen = true;
|
|
122
229
|
this.isAnimating = false;
|
|
123
|
-
|
|
124
|
-
}, this.animationDuration);
|
|
125
|
-
if (this.closeOnEsc) {
|
|
126
|
-
document.addEventListener('keydown', this.keydownHandler);
|
|
230
|
+
return;
|
|
127
231
|
}
|
|
232
|
+
// Wait for animation before closing
|
|
233
|
+
await new Promise(resolve => setTimeout(resolve, this.animationDuration));
|
|
234
|
+
if (this.dialogRef) {
|
|
235
|
+
this.dialogRef.close();
|
|
236
|
+
}
|
|
237
|
+
this.isAnimating = false;
|
|
238
|
+
this.emit('plus-modal-close');
|
|
128
239
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
240
|
+
handleBeforeOpen() {
|
|
241
|
+
// Hook for internal use if needed
|
|
242
|
+
}
|
|
243
|
+
handleBeforeClose() {
|
|
244
|
+
// Hook for internal use if needed
|
|
245
|
+
}
|
|
246
|
+
handleBackdropClick(e) {
|
|
247
|
+
const target = e.target;
|
|
248
|
+
// Check if click is on the container (backdrop area), not on modal content
|
|
249
|
+
if (target.getAttribute('part') === 'container') {
|
|
250
|
+
if (this.backdrop === 'static') {
|
|
251
|
+
this.shakeModal();
|
|
252
|
+
}
|
|
253
|
+
else if (this.closeOnBackdrop) {
|
|
254
|
+
this.hide();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
handleDialogCancel(e) {
|
|
259
|
+
e.preventDefault();
|
|
260
|
+
if (this.closeOnEsc) {
|
|
261
|
+
if (this.backdrop === 'static') {
|
|
262
|
+
this.shakeModal();
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this.hide();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
else if (this.backdrop === 'static') {
|
|
269
|
+
this.shakeModal();
|
|
270
|
+
}
|
|
137
271
|
}
|
|
138
272
|
handleKeydown(e) {
|
|
139
|
-
if (e.key === 'Escape' && this.
|
|
140
|
-
this
|
|
273
|
+
if (e.key === 'Escape' && this.isOpen) {
|
|
274
|
+
// Only handle ESC if this is the topmost modal
|
|
275
|
+
const openModals = Array.from(document.querySelectorAll('plus-modal[is-open]'));
|
|
276
|
+
const topModal = openModals[openModals.length - 1];
|
|
277
|
+
if (topModal !== this) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
e.preventDefault();
|
|
281
|
+
if (this.closeOnEsc) {
|
|
282
|
+
if (this.backdrop === 'static') {
|
|
283
|
+
this.shakeModal();
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
this.hide();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
else if (this.backdrop === 'static') {
|
|
290
|
+
this.shakeModal();
|
|
291
|
+
}
|
|
141
292
|
}
|
|
142
293
|
}
|
|
143
|
-
|
|
144
|
-
//
|
|
145
|
-
|
|
294
|
+
handleClick(e) {
|
|
295
|
+
// Use composedPath to work with shadow DOM and slots
|
|
296
|
+
const path = e.composedPath();
|
|
297
|
+
const dismissElement = path.find(el => el.hasAttribute?.('data-dismiss'));
|
|
298
|
+
const closeModalElement = path.find(el => el.hasAttribute?.('data-close-modal'));
|
|
299
|
+
if (dismissElement) {
|
|
300
|
+
// Stop propagation only when dismissing the modal
|
|
301
|
+
e.stopPropagation();
|
|
302
|
+
e.preventDefault();
|
|
146
303
|
this.hide();
|
|
147
304
|
}
|
|
305
|
+
else if (closeModalElement) {
|
|
306
|
+
const modalId = closeModalElement.getAttribute('data-close-modal');
|
|
307
|
+
// If modalId matches this modal's id, close it
|
|
308
|
+
if (!modalId || modalId === this.id) {
|
|
309
|
+
// Stop propagation only when closing the modal
|
|
310
|
+
e.stopPropagation();
|
|
311
|
+
e.preventDefault();
|
|
312
|
+
this.hide();
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// Don't stop propagation for normal clicks - let them bubble to child elements
|
|
316
|
+
}
|
|
317
|
+
shakeModal() {
|
|
318
|
+
this.shake = true;
|
|
319
|
+
setTimeout(() => {
|
|
320
|
+
this.shake = false;
|
|
321
|
+
}, this.animationDuration);
|
|
322
|
+
}
|
|
323
|
+
getModalStyle() {
|
|
324
|
+
if (this.fullScreen) {
|
|
325
|
+
return {
|
|
326
|
+
width: '100vw',
|
|
327
|
+
height: '100vh',
|
|
328
|
+
maxWidth: 'none',
|
|
329
|
+
maxHeight: 'none',
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
if (this.fullWidth) {
|
|
333
|
+
return {
|
|
334
|
+
width: '100%',
|
|
335
|
+
maxWidth: '100%',
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
const widths = {
|
|
339
|
+
sm: '400px',
|
|
340
|
+
md: '600px',
|
|
341
|
+
lg: '800px',
|
|
342
|
+
xl: '1024px',
|
|
343
|
+
'2xl': '1200px',
|
|
344
|
+
full: '100%',
|
|
345
|
+
};
|
|
346
|
+
return {
|
|
347
|
+
width: widths[this.size],
|
|
348
|
+
maxWidth: this.fullScreen ? 'none' : '90vw',
|
|
349
|
+
maxHeight: this.fullScreen ? 'none' : '90vh',
|
|
350
|
+
};
|
|
148
351
|
}
|
|
149
352
|
render() {
|
|
150
|
-
const {
|
|
151
|
-
|
|
353
|
+
const { dialog, container, modal, header, headerContent, body, footer, closeButton, } = modalStyle({
|
|
354
|
+
open: this.isOpen,
|
|
355
|
+
placement: this.placement,
|
|
356
|
+
size: this.size,
|
|
357
|
+
fullScreen: this.fullScreen,
|
|
358
|
+
shake: this.shake,
|
|
359
|
+
noHeader: this.noHeader,
|
|
360
|
+
noFooter: this.noFooter,
|
|
361
|
+
fullWidth: this.fullWidth,
|
|
362
|
+
});
|
|
152
363
|
return x `
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
364
|
+
<dialog
|
|
365
|
+
part="dialog"
|
|
366
|
+
class=${dialog()}
|
|
367
|
+
@click=${this.handleBackdropClick}
|
|
368
|
+
@cancel=${this.handleDialogCancel}
|
|
369
|
+
@keydown=${this.handleKeydown}
|
|
157
370
|
aria-modal="true"
|
|
158
|
-
aria-hidden=${!isOpen}
|
|
159
|
-
aria-label="Modal"
|
|
160
371
|
>
|
|
161
372
|
<div
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
>
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
373
|
+
part="container"
|
|
374
|
+
class=${container()}
|
|
375
|
+
>
|
|
376
|
+
<div
|
|
377
|
+
part="modal"
|
|
378
|
+
class=${modal()}
|
|
379
|
+
style=${o(this.getModalStyle())}
|
|
380
|
+
role="document"
|
|
381
|
+
@click=${this.handleClick}
|
|
382
|
+
>
|
|
383
|
+
${!this.noHeader ? x `
|
|
384
|
+
<div part="header" class=${header()}>
|
|
385
|
+
<div part="header-content" class=${headerContent()}>
|
|
386
|
+
<slot name="header"></slot>
|
|
387
|
+
</div>
|
|
388
|
+
<slot name="close">
|
|
389
|
+
<button
|
|
390
|
+
part="close-button"
|
|
391
|
+
class=${closeButton()}
|
|
392
|
+
@click=${() => this.hide()}
|
|
393
|
+
aria-label="Close modal"
|
|
394
|
+
type="button"
|
|
395
|
+
>
|
|
396
|
+
<plus-icon icon-name="xmark"></plus-icon>
|
|
397
|
+
</button>
|
|
398
|
+
</slot>
|
|
399
|
+
</div>
|
|
400
|
+
` : ''}
|
|
401
|
+
|
|
402
|
+
<div part="body" class=${body()}>
|
|
182
403
|
<slot name="body"></slot>
|
|
183
404
|
<slot></slot>
|
|
184
405
|
</div>
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
406
|
+
|
|
407
|
+
${!this.noFooter ? x `
|
|
408
|
+
<div part="footer" class=${footer()}>
|
|
409
|
+
<slot name="footer"></slot>
|
|
410
|
+
</div>
|
|
411
|
+
` : ''}
|
|
188
412
|
</div>
|
|
189
413
|
</div>
|
|
190
|
-
</
|
|
414
|
+
</dialog>
|
|
191
415
|
`;
|
|
192
416
|
}
|
|
193
417
|
}
|
|
418
|
+
__decorate([
|
|
419
|
+
e('dialog')
|
|
420
|
+
], PlusModal.prototype, "dialogRef", void 0);
|
|
194
421
|
__decorate([
|
|
195
422
|
n({ type: String, reflect: true })
|
|
196
423
|
], PlusModal.prototype, "size", void 0);
|
|
424
|
+
__decorate([
|
|
425
|
+
n({ type: String, reflect: true })
|
|
426
|
+
], PlusModal.prototype, "placement", void 0);
|
|
197
427
|
__decorate([
|
|
198
428
|
n({
|
|
199
429
|
type: Boolean,
|
|
@@ -210,6 +440,17 @@ __decorate([
|
|
|
210
440
|
converter: booleanConverter,
|
|
211
441
|
})
|
|
212
442
|
], PlusModal.prototype, "fullWidth", void 0);
|
|
443
|
+
__decorate([
|
|
444
|
+
n({
|
|
445
|
+
type: Boolean,
|
|
446
|
+
reflect: true,
|
|
447
|
+
attribute: 'full-screen',
|
|
448
|
+
converter: booleanConverter,
|
|
449
|
+
})
|
|
450
|
+
], PlusModal.prototype, "fullScreen", void 0);
|
|
451
|
+
__decorate([
|
|
452
|
+
n({ type: String, reflect: true })
|
|
453
|
+
], PlusModal.prototype, "backdrop", void 0);
|
|
213
454
|
__decorate([
|
|
214
455
|
n({
|
|
215
456
|
type: Boolean,
|
|
@@ -226,11 +467,30 @@ __decorate([
|
|
|
226
467
|
attribute: 'close-on-esc',
|
|
227
468
|
})
|
|
228
469
|
], PlusModal.prototype, "closeOnEsc", void 0);
|
|
470
|
+
__decorate([
|
|
471
|
+
n({
|
|
472
|
+
type: Boolean,
|
|
473
|
+
reflect: true,
|
|
474
|
+
attribute: 'no-header',
|
|
475
|
+
converter: booleanConverter,
|
|
476
|
+
})
|
|
477
|
+
], PlusModal.prototype, "noHeader", void 0);
|
|
478
|
+
__decorate([
|
|
479
|
+
n({
|
|
480
|
+
type: Boolean,
|
|
481
|
+
reflect: true,
|
|
482
|
+
attribute: 'no-footer',
|
|
483
|
+
converter: booleanConverter,
|
|
484
|
+
})
|
|
485
|
+
], PlusModal.prototype, "noFooter", void 0);
|
|
229
486
|
__decorate([
|
|
230
487
|
n({ type: Number, reflect: true, attribute: 'animation-duration' })
|
|
231
488
|
], PlusModal.prototype, "animationDuration", void 0);
|
|
232
489
|
__decorate([
|
|
233
490
|
r()
|
|
234
491
|
], PlusModal.prototype, "isAnimating", void 0);
|
|
492
|
+
__decorate([
|
|
493
|
+
r()
|
|
494
|
+
], PlusModal.prototype, "shake", void 0);
|
|
235
495
|
|
|
236
496
|
export { PlusModal, PlusModal as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":"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"}
|