@plusui/library 0.1.14 → 0.1.16
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 +340 -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 +339 -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-CAh2WTyo.js → if-defined-DzyJw9oN.js} +1 -1
- package/dist/index.css +2 -2
- package/dist/{live-CSPSCWrs.js → live-Dlj-D15j.js} +1 -1
- package/dist/{property-BXP8koCN.js → property-DRwbRRVL.js} +1 -1
- package/dist/{query-DixClzz3.js → query-CVSIfDVf.js} +1 -1
- package/dist/{query-assigned-elements-tu2Z4Umd.js → query-assigned-elements-CGjtMDM7.js} +1 -1
- package/dist/{state-CRctcY5E.js → state-DibUHyPK.js} +1 -1
- package/dist/{style-map-BP6cVC6K.js → style-map-DE-r4ozp.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 +406 -124
- package/public/react/index.d.ts +145 -33
- package/public/react/index.js +430 -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-8uGSRUk7.js +0 -31
- package/cdn/global-DklV2dCX.js +0 -1
- /package/dist/{base-CesIX8_4.js → base-CJK80TT1.js} +0 -0
- /package/dist/{directive-BUtBNK63.js → directive-DJonW9K-.js} +0 -0
- /package/dist/{floating-ui.dom-DEPWsfNe.js → floating-ui.dom-Cx1F5m3b.js} +0 -0
- /package/dist/{index-CwglOP_H.js → index-B49PNGQM.js} +0 -0
- /package/dist/{lit-element-u_ybFE-X.js → lit-element-BS9RbLkf.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,283 @@ 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
|
+
// Stop propagation to prevent backdrop click
|
|
296
|
+
e.stopPropagation();
|
|
297
|
+
// Use composedPath to work with shadow DOM and slots
|
|
298
|
+
const path = e.composedPath();
|
|
299
|
+
const dismissElement = path.find(el => el.hasAttribute?.('data-dismiss'));
|
|
300
|
+
const closeModalElement = path.find(el => el.hasAttribute?.('data-close-modal'));
|
|
301
|
+
if (dismissElement) {
|
|
146
302
|
this.hide();
|
|
303
|
+
e.preventDefault();
|
|
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
|
+
this.hide();
|
|
310
|
+
e.preventDefault();
|
|
311
|
+
}
|
|
147
312
|
}
|
|
148
313
|
}
|
|
314
|
+
shakeModal() {
|
|
315
|
+
this.shake = true;
|
|
316
|
+
setTimeout(() => {
|
|
317
|
+
this.shake = false;
|
|
318
|
+
}, this.animationDuration);
|
|
319
|
+
}
|
|
320
|
+
getModalStyle() {
|
|
321
|
+
if (this.fullScreen) {
|
|
322
|
+
return {
|
|
323
|
+
width: '100vw',
|
|
324
|
+
height: '100vh',
|
|
325
|
+
maxWidth: 'none',
|
|
326
|
+
maxHeight: 'none',
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
if (this.fullWidth) {
|
|
330
|
+
return {
|
|
331
|
+
width: '100%',
|
|
332
|
+
maxWidth: '100%',
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
const widths = {
|
|
336
|
+
sm: '400px',
|
|
337
|
+
md: '600px',
|
|
338
|
+
lg: '800px',
|
|
339
|
+
xl: '1024px',
|
|
340
|
+
'2xl': '1200px',
|
|
341
|
+
full: '100%',
|
|
342
|
+
};
|
|
343
|
+
return {
|
|
344
|
+
width: widths[this.size],
|
|
345
|
+
maxWidth: this.fullScreen ? 'none' : '90vw',
|
|
346
|
+
maxHeight: this.fullScreen ? 'none' : '90vh',
|
|
347
|
+
};
|
|
348
|
+
}
|
|
149
349
|
render() {
|
|
150
|
-
const {
|
|
151
|
-
|
|
350
|
+
const { dialog, container, modal, header, headerContent, body, footer, closeButton, } = modalStyle({
|
|
351
|
+
open: this.isOpen,
|
|
352
|
+
placement: this.placement,
|
|
353
|
+
size: this.size,
|
|
354
|
+
fullScreen: this.fullScreen,
|
|
355
|
+
shake: this.shake,
|
|
356
|
+
noHeader: this.noHeader,
|
|
357
|
+
noFooter: this.noFooter,
|
|
358
|
+
fullWidth: this.fullWidth,
|
|
359
|
+
});
|
|
152
360
|
return x `
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
361
|
+
<dialog
|
|
362
|
+
part="dialog"
|
|
363
|
+
class=${dialog()}
|
|
364
|
+
@click=${this.handleBackdropClick}
|
|
365
|
+
@cancel=${this.handleDialogCancel}
|
|
366
|
+
@keydown=${this.handleKeydown}
|
|
157
367
|
aria-modal="true"
|
|
158
|
-
aria-hidden=${!isOpen}
|
|
159
|
-
aria-label="Modal"
|
|
160
368
|
>
|
|
161
369
|
<div
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
>
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
370
|
+
part="container"
|
|
371
|
+
class=${container()}
|
|
372
|
+
>
|
|
373
|
+
<div
|
|
374
|
+
part="modal"
|
|
375
|
+
class=${modal()}
|
|
376
|
+
style=${o(this.getModalStyle())}
|
|
377
|
+
role="document"
|
|
378
|
+
@click=${this.handleClick}
|
|
379
|
+
>
|
|
380
|
+
${!this.noHeader ? x `
|
|
381
|
+
<div part="header" class=${header()}>
|
|
382
|
+
<div part="header-content" class=${headerContent()}>
|
|
383
|
+
<slot name="header"></slot>
|
|
384
|
+
</div>
|
|
385
|
+
<slot name="close">
|
|
386
|
+
<button
|
|
387
|
+
part="close-button"
|
|
388
|
+
class=${closeButton()}
|
|
389
|
+
@click=${() => this.hide()}
|
|
390
|
+
aria-label="Close modal"
|
|
391
|
+
type="button"
|
|
392
|
+
>
|
|
393
|
+
<plus-icon icon-name="xmark"></plus-icon>
|
|
394
|
+
</button>
|
|
395
|
+
</slot>
|
|
396
|
+
</div>
|
|
397
|
+
` : ''}
|
|
398
|
+
|
|
399
|
+
<div part="body" class=${body()}>
|
|
182
400
|
<slot name="body"></slot>
|
|
183
401
|
<slot></slot>
|
|
184
402
|
</div>
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
403
|
+
|
|
404
|
+
${!this.noFooter ? x `
|
|
405
|
+
<div part="footer" class=${footer()}>
|
|
406
|
+
<slot name="footer"></slot>
|
|
407
|
+
</div>
|
|
408
|
+
` : ''}
|
|
188
409
|
</div>
|
|
189
410
|
</div>
|
|
190
|
-
</
|
|
411
|
+
</dialog>
|
|
191
412
|
`;
|
|
192
413
|
}
|
|
193
414
|
}
|
|
415
|
+
__decorate([
|
|
416
|
+
e('dialog')
|
|
417
|
+
], PlusModal.prototype, "dialogRef", void 0);
|
|
194
418
|
__decorate([
|
|
195
419
|
n({ type: String, reflect: true })
|
|
196
420
|
], PlusModal.prototype, "size", void 0);
|
|
421
|
+
__decorate([
|
|
422
|
+
n({ type: String, reflect: true })
|
|
423
|
+
], PlusModal.prototype, "placement", void 0);
|
|
197
424
|
__decorate([
|
|
198
425
|
n({
|
|
199
426
|
type: Boolean,
|
|
@@ -210,6 +437,17 @@ __decorate([
|
|
|
210
437
|
converter: booleanConverter,
|
|
211
438
|
})
|
|
212
439
|
], PlusModal.prototype, "fullWidth", void 0);
|
|
440
|
+
__decorate([
|
|
441
|
+
n({
|
|
442
|
+
type: Boolean,
|
|
443
|
+
reflect: true,
|
|
444
|
+
attribute: 'full-screen',
|
|
445
|
+
converter: booleanConverter,
|
|
446
|
+
})
|
|
447
|
+
], PlusModal.prototype, "fullScreen", void 0);
|
|
448
|
+
__decorate([
|
|
449
|
+
n({ type: String, reflect: true })
|
|
450
|
+
], PlusModal.prototype, "backdrop", void 0);
|
|
213
451
|
__decorate([
|
|
214
452
|
n({
|
|
215
453
|
type: Boolean,
|
|
@@ -226,11 +464,30 @@ __decorate([
|
|
|
226
464
|
attribute: 'close-on-esc',
|
|
227
465
|
})
|
|
228
466
|
], PlusModal.prototype, "closeOnEsc", void 0);
|
|
467
|
+
__decorate([
|
|
468
|
+
n({
|
|
469
|
+
type: Boolean,
|
|
470
|
+
reflect: true,
|
|
471
|
+
attribute: 'no-header',
|
|
472
|
+
converter: booleanConverter,
|
|
473
|
+
})
|
|
474
|
+
], PlusModal.prototype, "noHeader", void 0);
|
|
475
|
+
__decorate([
|
|
476
|
+
n({
|
|
477
|
+
type: Boolean,
|
|
478
|
+
reflect: true,
|
|
479
|
+
attribute: 'no-footer',
|
|
480
|
+
converter: booleanConverter,
|
|
481
|
+
})
|
|
482
|
+
], PlusModal.prototype, "noFooter", void 0);
|
|
229
483
|
__decorate([
|
|
230
484
|
n({ type: Number, reflect: true, attribute: 'animation-duration' })
|
|
231
485
|
], PlusModal.prototype, "animationDuration", void 0);
|
|
232
486
|
__decorate([
|
|
233
487
|
r()
|
|
234
488
|
], PlusModal.prototype, "isAnimating", void 0);
|
|
489
|
+
__decorate([
|
|
490
|
+
r()
|
|
491
|
+
], PlusModal.prototype, "shake", void 0);
|
|
235
492
|
|
|
236
493
|
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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"}
|