@nexus-cross/design-system 2.0.2 → 2.0.4
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/claude-rules/nexus/CLAUDE.md +109 -0
- package/cursor-rules/CLAUDE.md +5 -0
- package/cursor-rules/nexus-project-setup.mdc +106 -6
- package/cursor-rules/nexus-ui-api.mdc +60 -3
- package/dist/chunks/{chunk-JICW6KWH.js → chunk-7G7U4DP2.js} +1 -1
- package/dist/chunks/{chunk-3VFBPFZF.mjs → chunk-7WWQ5DS3.mjs} +10 -5
- package/dist/chunks/{chunk-HHXDOKXY.js → chunk-F24AY3HI.js} +2 -2
- package/dist/chunks/{chunk-6H7V2I3X.mjs → chunk-FY2N42XN.mjs} +6 -1
- package/dist/chunks/{chunk-3NSJMG3G.mjs → chunk-JFZLKFFM.mjs} +1 -1
- package/dist/chunks/{chunk-XEHFB62A.js → chunk-NRO7I4EI.js} +2 -6
- package/dist/chunks/{chunk-LNC3TV6N.mjs → chunk-P4JV4WRB.mjs} +1 -1
- package/dist/chunks/{chunk-U53UA76K.js → chunk-R744EATX.js} +26 -21
- package/dist/chunks/{chunk-HUPAHDJ7.js → chunk-TAHDSSA6.js} +6 -0
- package/dist/chunks/{chunk-YEWKPWK3.mjs → chunk-U6OEUBIF.mjs} +2 -6
- package/dist/chunks/{chunk-VCN7DMCQ.js → chunk-USPFWZ7H.js} +1 -1
- package/dist/chunks/{chunk-U56AGSLE.mjs → chunk-WBCXHGRL.mjs} +2 -2
- package/dist/hooks/useCheckDevice.d.ts.map +1 -1
- package/dist/hooks/useCheckDevice.js +2 -2
- package/dist/hooks/useCheckDevice.mjs +1 -1
- package/dist/hooks/useDraggableBottomSheet.js +2 -2
- package/dist/hooks/useDraggableBottomSheet.mjs +1 -1
- package/dist/hooks/useModal.js +2 -2
- package/dist/hooks/useModal.mjs +1 -1
- package/dist/image-upload.js +3 -3
- package/dist/image-upload.mjs +1 -1
- package/dist/index.js +19 -19
- package/dist/index.mjs +5 -5
- package/dist/modal/components/ModalContainer.d.ts.map +1 -1
- package/dist/modal/components/ModalTemplate.d.ts +1 -0
- package/dist/modal/components/ModalTemplate.d.ts.map +1 -1
- package/dist/modal/constants.d.ts +14 -0
- package/dist/modal/constants.d.ts.map +1 -1
- package/dist/modal/index.js +14 -14
- package/dist/modal/index.mjs +4 -4
- package/dist/schemas/_all.json +9 -4
- package/dist/schemas/modal.d.ts +3 -0
- package/dist/schemas/modal.d.ts.map +1 -1
- package/dist/schemas/modalTemplate.json +9 -4
- package/dist/schemas.js +17 -4
- package/dist/schemas.mjs +17 -4
- package/dist/styles/.generated/built.d.ts +1 -1
- package/dist/styles/.generated/built.d.ts.map +1 -1
- package/dist/styles/layer.js +2 -2
- package/dist/styles/layer.mjs +1 -1
- package/dist/styles.css +15 -3
- package/dist/styles.js +2 -2
- package/dist/styles.layered.css +15 -3
- package/dist/styles.mjs +1 -1
- package/dist/tokens/company.css +1 -1
- package/dist/tokens/css.css +1 -1
- package/dist/tokens-domains/gamehub-vars.css +122 -0
- package/dist/tokens-domains/gamehub.css +121 -0
- package/dist/tokens-domains/prediction-vars.css +1 -1
- package/dist/tokens-domains/prediction.css +1 -1
- package/package.json +4 -5
|
@@ -3,10 +3,6 @@
|
|
|
3
3
|
var react = require('react');
|
|
4
4
|
|
|
5
5
|
// src/hooks/useCheckDevice.ts
|
|
6
|
-
function getMatchMedia(query) {
|
|
7
|
-
if (typeof window === "undefined") return false;
|
|
8
|
-
return window.matchMedia(query).matches;
|
|
9
|
-
}
|
|
10
6
|
var DEFAULT_BREAKPOINTS = {
|
|
11
7
|
mobile: 0,
|
|
12
8
|
tablet: 768,
|
|
@@ -47,8 +43,8 @@ function useCheckDevice(breakPoints) {
|
|
|
47
43
|
}, [serialized]);
|
|
48
44
|
const [result, setResult] = react.useState(() => {
|
|
49
45
|
const init = {};
|
|
50
|
-
for (const
|
|
51
|
-
init[key] =
|
|
46
|
+
for (const key of Object.keys(queries)) {
|
|
47
|
+
init[key] = false;
|
|
52
48
|
}
|
|
53
49
|
return init;
|
|
54
50
|
});
|
|
@@ -209,7 +209,7 @@ var ImageUpload = React.forwardRef(
|
|
|
209
209
|
]
|
|
210
210
|
}
|
|
211
211
|
);
|
|
212
|
-
const coverPreview = /* @__PURE__ */ jsx("div", { className: "nexus-image-upload__container", children: /* @__PURE__ */ jsxs(
|
|
212
|
+
const coverPreview = /* @__PURE__ */ jsx("div", { className: "nexus-image-upload__container nexus-image-upload__container--preview-cover", children: /* @__PURE__ */ jsxs(
|
|
213
213
|
"div",
|
|
214
214
|
{
|
|
215
215
|
role: "button",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkF24AY3HI_js = require('./chunk-F24AY3HI.js');
|
|
4
4
|
var chunkNHDGKOAM_js = require('./chunk-NHDGKOAM.js');
|
|
5
5
|
var chunkT2IY2TSR_js = require('./chunk-T2IY2TSR.js');
|
|
6
|
-
var
|
|
6
|
+
var chunkNRO7I4EI_js = require('./chunk-NRO7I4EI.js');
|
|
7
7
|
var chunkINP2AH3B_js = require('./chunk-INP2AH3B.js');
|
|
8
|
-
var
|
|
8
|
+
var chunkTAHDSSA6_js = require('./chunk-TAHDSSA6.js');
|
|
9
9
|
var chunkCZC76ZD5_js = require('./chunk-CZC76ZD5.js');
|
|
10
10
|
var React = require('react');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -51,7 +51,7 @@ var Component = ({
|
|
|
51
51
|
};
|
|
52
52
|
var ModalComponent = React.forwardRef(
|
|
53
53
|
({ className, modal, breakPoints, scrollFreeze: scrollFreeze2, scrollRelease: scrollRelease2, deleteModal, resolveModal }, ref) => {
|
|
54
|
-
const { isMobile } =
|
|
54
|
+
const { isMobile } = chunkNRO7I4EI_js.useCheckDevice_default(breakPoints);
|
|
55
55
|
const [status, setStatus] = React.useState("");
|
|
56
56
|
const clickOutSideTarget = React.useMemo(() => {
|
|
57
57
|
if (modal.props?.clickOutSideRef) {
|
|
@@ -190,21 +190,25 @@ var ModalPortal = ({ children, selector }) => {
|
|
|
190
190
|
return mounted && element && children ? reactDom.createPortal(children, element) : null;
|
|
191
191
|
};
|
|
192
192
|
var ModalPortal_default = ModalPortal;
|
|
193
|
-
var ModalContainer = ({
|
|
194
|
-
|
|
193
|
+
var ModalContainer = ({
|
|
194
|
+
className = "",
|
|
195
|
+
breakPoints = chunkTAHDSSA6_js.defaultBreakPoints,
|
|
196
|
+
...defaultOption
|
|
197
|
+
}) => {
|
|
198
|
+
const [modals, setModals] = React.useState(chunkTAHDSSA6_js.Modal_default.modalList);
|
|
195
199
|
const setModalClose = React.useCallback((params) => {
|
|
196
200
|
if (!params) return;
|
|
197
201
|
const { modalId, hasClose, close } = params;
|
|
198
202
|
if (!hasClose) {
|
|
199
|
-
|
|
203
|
+
chunkTAHDSSA6_js.Modal_default.modalList = chunkTAHDSSA6_js.Modal_default.modalList.map(
|
|
200
204
|
(m) => m.id === modalId ? { ...m, close } : m
|
|
201
205
|
);
|
|
202
206
|
}
|
|
203
207
|
}, []);
|
|
204
208
|
React.useEffect(() => {
|
|
205
|
-
|
|
209
|
+
chunkTAHDSSA6_js.Modal_default.observe({ options: defaultOption, observeFunction: setModals });
|
|
206
210
|
return () => {
|
|
207
|
-
|
|
211
|
+
chunkTAHDSSA6_js.Modal_default.unobserve();
|
|
208
212
|
};
|
|
209
213
|
}, [defaultOption]);
|
|
210
214
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { id: "modal-wrapper", className, children: modals.map(
|
|
@@ -214,8 +218,8 @@ var ModalContainer = ({ className = "", breakPoints, ...defaultOption }) => {
|
|
|
214
218
|
ref: setModalClose,
|
|
215
219
|
modal: m,
|
|
216
220
|
breakPoints,
|
|
217
|
-
deleteModal: (id) =>
|
|
218
|
-
resolveModal: (params) =>
|
|
221
|
+
deleteModal: (id) => chunkTAHDSSA6_js.Modal_default.deleteModal(id),
|
|
222
|
+
resolveModal: (params) => chunkTAHDSSA6_js.Modal_default.resolveModal(params),
|
|
219
223
|
scrollFreeze: chunkT2IY2TSR_js.scrollFreeze,
|
|
220
224
|
scrollRelease: chunkT2IY2TSR_js.scrollRelease
|
|
221
225
|
},
|
|
@@ -226,8 +230,8 @@ var ModalContainer = ({ className = "", breakPoints, ...defaultOption }) => {
|
|
|
226
230
|
ref: setModalClose,
|
|
227
231
|
modal: m,
|
|
228
232
|
breakPoints,
|
|
229
|
-
deleteModal: (id) =>
|
|
230
|
-
resolveModal: (params) =>
|
|
233
|
+
deleteModal: (id) => chunkTAHDSSA6_js.Modal_default.deleteModal(id),
|
|
234
|
+
resolveModal: (params) => chunkTAHDSSA6_js.Modal_default.resolveModal(params),
|
|
231
235
|
scrollFreeze: chunkT2IY2TSR_js.scrollFreeze,
|
|
232
236
|
scrollRelease: chunkT2IY2TSR_js.scrollRelease
|
|
233
237
|
},
|
|
@@ -414,6 +418,7 @@ var ModalTemplate = React.forwardRef(
|
|
|
414
418
|
desc,
|
|
415
419
|
hideHeader = false,
|
|
416
420
|
hideFooter = true,
|
|
421
|
+
hideCloseBtn = false,
|
|
417
422
|
dimClose,
|
|
418
423
|
footer,
|
|
419
424
|
close,
|
|
@@ -427,7 +432,7 @@ var ModalTemplate = React.forwardRef(
|
|
|
427
432
|
const { dimCloseEnable } = getModalDefaultOption();
|
|
428
433
|
const isBottomSheet = layout === "bottom-sheet";
|
|
429
434
|
const isDraggable = layout === "draggable";
|
|
430
|
-
const dragHandlers =
|
|
435
|
+
const dragHandlers = chunkF24AY3HI_js.useDraggableBottomSheet({
|
|
431
436
|
enabled: isBottomSheet && enableDrag,
|
|
432
437
|
onClose: () => close(false),
|
|
433
438
|
threshold: 0.5,
|
|
@@ -568,7 +573,7 @@ var ModalTemplate = React.forwardRef(
|
|
|
568
573
|
ref: modalHeaderRef,
|
|
569
574
|
onMouseDown: isDraggable && enableDrag ? windowDrag.handleMouseDown : void 0,
|
|
570
575
|
children: [
|
|
571
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
576
|
+
!hideCloseBtn && /* @__PURE__ */ jsxRuntime.jsx(
|
|
572
577
|
"button",
|
|
573
578
|
{
|
|
574
579
|
type: "button",
|
|
@@ -619,28 +624,28 @@ var ModalTemplate_default = ModalTemplate;
|
|
|
619
624
|
var openModal = ((arg1, arg2 = {}) => {
|
|
620
625
|
if ("component" in arg1) {
|
|
621
626
|
const { component, props = {}, options = {} } = arg1;
|
|
622
|
-
return
|
|
627
|
+
return chunkTAHDSSA6_js.Modal_default.openModal({
|
|
623
628
|
component,
|
|
624
629
|
props: { ...props, ...options }
|
|
625
630
|
});
|
|
626
631
|
} else {
|
|
627
|
-
return
|
|
632
|
+
return chunkTAHDSSA6_js.Modal_default.openModal({
|
|
628
633
|
component: arg1,
|
|
629
634
|
props: arg2
|
|
630
635
|
});
|
|
631
636
|
}
|
|
632
637
|
});
|
|
633
638
|
var closeModal = (id, isAnimation) => {
|
|
634
|
-
return
|
|
639
|
+
return chunkTAHDSSA6_js.Modal_default.closeModal(id, isAnimation);
|
|
635
640
|
};
|
|
636
641
|
var checkModal = (params) => {
|
|
637
|
-
return
|
|
642
|
+
return chunkTAHDSSA6_js.Modal_default.checkModal(params);
|
|
638
643
|
};
|
|
639
644
|
var resetModal = () => {
|
|
640
|
-
return
|
|
645
|
+
return chunkTAHDSSA6_js.Modal_default.resetModal();
|
|
641
646
|
};
|
|
642
647
|
var getModalDefaultOption = () => {
|
|
643
|
-
return
|
|
648
|
+
return chunkTAHDSSA6_js.Modal_default.getDefaultOption();
|
|
644
649
|
};
|
|
645
650
|
|
|
646
651
|
exports.ModalContainer_default = ModalContainer_default;
|
|
@@ -10,6 +10,11 @@ var defaultModalOption = {
|
|
|
10
10
|
animation: { name: "pop-fade", duration: 300 },
|
|
11
11
|
dimCloseEnable: true
|
|
12
12
|
};
|
|
13
|
+
var defaultBreakPoints = {
|
|
14
|
+
isDesktop: "(min-width: 1280px)",
|
|
15
|
+
isTablet: "screen and (min-width: 768px) and (max-width: 1279px)",
|
|
16
|
+
isMobile: "(max-width: 767px)"
|
|
17
|
+
};
|
|
13
18
|
|
|
14
19
|
// src/modal/Modal.ts
|
|
15
20
|
var Modal = class {
|
|
@@ -270,4 +275,5 @@ function useModal() {
|
|
|
270
275
|
}
|
|
271
276
|
|
|
272
277
|
exports.Modal_default = Modal_default;
|
|
278
|
+
exports.defaultBreakPoints = defaultBreakPoints;
|
|
273
279
|
exports.useModal = useModal;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { useMemo, useState, useEffect } from 'react';
|
|
2
2
|
|
|
3
3
|
// src/hooks/useCheckDevice.ts
|
|
4
|
-
function getMatchMedia(query) {
|
|
5
|
-
if (typeof window === "undefined") return false;
|
|
6
|
-
return window.matchMedia(query).matches;
|
|
7
|
-
}
|
|
8
4
|
var DEFAULT_BREAKPOINTS = {
|
|
9
5
|
mobile: 0,
|
|
10
6
|
tablet: 768,
|
|
@@ -45,8 +41,8 @@ function useCheckDevice(breakPoints) {
|
|
|
45
41
|
}, [serialized]);
|
|
46
42
|
const [result, setResult] = useState(() => {
|
|
47
43
|
const init = {};
|
|
48
|
-
for (const
|
|
49
|
-
init[key] =
|
|
44
|
+
for (const key of Object.keys(queries)) {
|
|
45
|
+
init[key] = false;
|
|
50
46
|
}
|
|
51
47
|
return init;
|
|
52
48
|
});
|
|
@@ -231,7 +231,7 @@ var ImageUpload = React__namespace.forwardRef(
|
|
|
231
231
|
]
|
|
232
232
|
}
|
|
233
233
|
);
|
|
234
|
-
const coverPreview = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nexus-image-upload__container", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
234
|
+
const coverPreview = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nexus-image-upload__container nexus-image-upload__container--preview-cover", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
235
235
|
"div",
|
|
236
236
|
{
|
|
237
237
|
role: "button",
|
|
@@ -23,9 +23,9 @@ function useDraggableBottomSheet({
|
|
|
23
23
|
if (!enabled) return;
|
|
24
24
|
const touch = e.touches[0];
|
|
25
25
|
const target = e.currentTarget;
|
|
26
|
-
const modalInner = target.querySelector(".modal-inner");
|
|
26
|
+
const modalInner = target.querySelector(".nexus-modal-inner");
|
|
27
27
|
if (!modalInner) return;
|
|
28
|
-
const scrollableElement = e.target.closest(".modal-body");
|
|
28
|
+
const scrollableElement = e.target.closest(".nexus-modal-body");
|
|
29
29
|
if (scrollableElement && scrollableElement.scrollTop > 0) return;
|
|
30
30
|
dragStateRef.current = {
|
|
31
31
|
isDragging: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckDevice.d.ts","sourceRoot":"","sources":["../../src/hooks/useCheckDevice.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useCheckDevice.d.ts","sourceRoot":"","sources":["../../src/hooks/useCheckDevice.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAiDhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iBAAS,cAAc,IAAI;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,iBAAS,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAA;AAChF,iBAAS,cAAc,CACrB,WAAW,EAAE,kBAAkB,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAmD1B,eAAe,cAAc,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkNRO7I4EI_js = require('../chunks/chunk-NRO7I4EI.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
module.exports =
|
|
7
|
+
module.exports = chunkNRO7I4EI_js.useCheckDevice_default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { useCheckDevice_default as default } from '../chunks/chunk-
|
|
1
|
+
export { useCheckDevice_default as default } from '../chunks/chunk-U6OEUBIF.mjs';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkF24AY3HI_js = require('../chunks/chunk-F24AY3HI.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "useDraggableBottomSheet", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkF24AY3HI_js.useDraggableBottomSheet; }
|
|
10
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { useDraggableBottomSheet } from '../chunks/chunk-
|
|
1
|
+
export { useDraggableBottomSheet } from '../chunks/chunk-WBCXHGRL.mjs';
|
package/dist/hooks/useModal.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTAHDSSA6_js = require('../chunks/chunk-TAHDSSA6.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "useModal", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkTAHDSSA6_js.useModal; }
|
|
10
10
|
});
|
package/dist/hooks/useModal.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { useModal } from '../chunks/chunk-
|
|
1
|
+
export { useModal } from '../chunks/chunk-FY2N42XN.mjs';
|
package/dist/image-upload.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkUSPFWZ7H_js = require('./chunks/chunk-USPFWZ7H.js');
|
|
4
4
|
require('./chunks/chunk-CZC76ZD5.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "ImageUpload", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkUSPFWZ7H_js.ImageUpload; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "imageUploadVariants", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkUSPFWZ7H_js.imageUploadVariants; }
|
|
15
15
|
});
|
package/dist/image-upload.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ImageUpload, imageUploadVariants } from './chunks/chunk-
|
|
1
|
+
export { ImageUpload, imageUploadVariants } from './chunks/chunk-P4JV4WRB.mjs';
|
|
2
2
|
import './chunks/chunk-MCKOWMLS.mjs';
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var chunkDICN6GKE_js = require('./chunks/chunk-DICN6GKE.js');
|
|
|
9
9
|
var chunkDYPPVXQF_js = require('./chunks/chunk-DYPPVXQF.js');
|
|
10
10
|
var chunkLYPBQI3Y_js = require('./chunks/chunk-LYPBQI3Y.js');
|
|
11
11
|
var chunkLTS674LF_js = require('./chunks/chunk-LTS674LF.js');
|
|
12
|
-
var
|
|
12
|
+
var chunkUSPFWZ7H_js = require('./chunks/chunk-USPFWZ7H.js');
|
|
13
13
|
var chunkQK6NCII4_js = require('./chunks/chunk-QK6NCII4.js');
|
|
14
14
|
var chunkBLGQHR3M_js = require('./chunks/chunk-BLGQHR3M.js');
|
|
15
15
|
var chunkDLFV7ZZV_js = require('./chunks/chunk-DLFV7ZZV.js');
|
|
@@ -44,13 +44,13 @@ var chunkXGIJZ3NZ_js = require('./chunks/chunk-XGIJZ3NZ.js');
|
|
|
44
44
|
var chunk2BINGHGR_js = require('./chunks/chunk-2BINGHGR.js');
|
|
45
45
|
var chunk4ENXP7WH_js = require('./chunks/chunk-4ENXP7WH.js');
|
|
46
46
|
var chunkMA2VCCIY_js = require('./chunks/chunk-MA2VCCIY.js');
|
|
47
|
-
var
|
|
48
|
-
var
|
|
47
|
+
var chunkR744EATX_js = require('./chunks/chunk-R744EATX.js');
|
|
48
|
+
var chunkF24AY3HI_js = require('./chunks/chunk-F24AY3HI.js');
|
|
49
49
|
var chunkNHDGKOAM_js = require('./chunks/chunk-NHDGKOAM.js');
|
|
50
50
|
var chunkT2IY2TSR_js = require('./chunks/chunk-T2IY2TSR.js');
|
|
51
|
-
var
|
|
51
|
+
var chunkNRO7I4EI_js = require('./chunks/chunk-NRO7I4EI.js');
|
|
52
52
|
var chunkINP2AH3B_js = require('./chunks/chunk-INP2AH3B.js');
|
|
53
|
-
var
|
|
53
|
+
var chunkTAHDSSA6_js = require('./chunks/chunk-TAHDSSA6.js');
|
|
54
54
|
var chunkP3DZKXG4_js = require('./chunks/chunk-P3DZKXG4.js');
|
|
55
55
|
var chunkWKCXACMZ_js = require('./chunks/chunk-WKCXACMZ.js');
|
|
56
56
|
var chunkS2GMEC43_js = require('./chunks/chunk-S2GMEC43.js');
|
|
@@ -438,11 +438,11 @@ Object.defineProperty(exports, "DatePicker", {
|
|
|
438
438
|
});
|
|
439
439
|
Object.defineProperty(exports, "ImageUpload", {
|
|
440
440
|
enumerable: true,
|
|
441
|
-
get: function () { return
|
|
441
|
+
get: function () { return chunkUSPFWZ7H_js.ImageUpload; }
|
|
442
442
|
});
|
|
443
443
|
Object.defineProperty(exports, "imageUploadVariants", {
|
|
444
444
|
enumerable: true,
|
|
445
|
-
get: function () { return
|
|
445
|
+
get: function () { return chunkUSPFWZ7H_js.imageUploadVariants; }
|
|
446
446
|
});
|
|
447
447
|
Object.defineProperty(exports, "ClientOnly", {
|
|
448
448
|
enumerable: true,
|
|
@@ -794,43 +794,43 @@ Object.defineProperty(exports, "avatarVariants", {
|
|
|
794
794
|
});
|
|
795
795
|
Object.defineProperty(exports, "ModalContainer", {
|
|
796
796
|
enumerable: true,
|
|
797
|
-
get: function () { return
|
|
797
|
+
get: function () { return chunkR744EATX_js.ModalContainer_default; }
|
|
798
798
|
});
|
|
799
799
|
Object.defineProperty(exports, "ModalPortalTarget", {
|
|
800
800
|
enumerable: true,
|
|
801
|
-
get: function () { return
|
|
801
|
+
get: function () { return chunkR744EATX_js.ModalPortalTarget_default; }
|
|
802
802
|
});
|
|
803
803
|
Object.defineProperty(exports, "ModalTemplate", {
|
|
804
804
|
enumerable: true,
|
|
805
|
-
get: function () { return
|
|
805
|
+
get: function () { return chunkR744EATX_js.ModalTemplate_default; }
|
|
806
806
|
});
|
|
807
807
|
Object.defineProperty(exports, "checkModal", {
|
|
808
808
|
enumerable: true,
|
|
809
|
-
get: function () { return
|
|
809
|
+
get: function () { return chunkR744EATX_js.checkModal; }
|
|
810
810
|
});
|
|
811
811
|
Object.defineProperty(exports, "closeModal", {
|
|
812
812
|
enumerable: true,
|
|
813
|
-
get: function () { return
|
|
813
|
+
get: function () { return chunkR744EATX_js.closeModal; }
|
|
814
814
|
});
|
|
815
815
|
Object.defineProperty(exports, "getModalDefaultOption", {
|
|
816
816
|
enumerable: true,
|
|
817
|
-
get: function () { return
|
|
817
|
+
get: function () { return chunkR744EATX_js.getModalDefaultOption; }
|
|
818
818
|
});
|
|
819
819
|
Object.defineProperty(exports, "modal", {
|
|
820
820
|
enumerable: true,
|
|
821
|
-
get: function () { return
|
|
821
|
+
get: function () { return chunkR744EATX_js.openModal; }
|
|
822
822
|
});
|
|
823
823
|
Object.defineProperty(exports, "openModal", {
|
|
824
824
|
enumerable: true,
|
|
825
|
-
get: function () { return
|
|
825
|
+
get: function () { return chunkR744EATX_js.openModal; }
|
|
826
826
|
});
|
|
827
827
|
Object.defineProperty(exports, "resetModal", {
|
|
828
828
|
enumerable: true,
|
|
829
|
-
get: function () { return
|
|
829
|
+
get: function () { return chunkR744EATX_js.resetModal; }
|
|
830
830
|
});
|
|
831
831
|
Object.defineProperty(exports, "useDraggableBottomSheet", {
|
|
832
832
|
enumerable: true,
|
|
833
|
-
get: function () { return
|
|
833
|
+
get: function () { return chunkF24AY3HI_js.useDraggableBottomSheet; }
|
|
834
834
|
});
|
|
835
835
|
Object.defineProperty(exports, "useDraggableWindow", {
|
|
836
836
|
enumerable: true,
|
|
@@ -846,7 +846,7 @@ Object.defineProperty(exports, "scrollRelease", {
|
|
|
846
846
|
});
|
|
847
847
|
Object.defineProperty(exports, "useCheckDevice", {
|
|
848
848
|
enumerable: true,
|
|
849
|
-
get: function () { return
|
|
849
|
+
get: function () { return chunkNRO7I4EI_js.useCheckDevice_default; }
|
|
850
850
|
});
|
|
851
851
|
Object.defineProperty(exports, "useClickOutside", {
|
|
852
852
|
enumerable: true,
|
|
@@ -854,7 +854,7 @@ Object.defineProperty(exports, "useClickOutside", {
|
|
|
854
854
|
});
|
|
855
855
|
Object.defineProperty(exports, "useModal", {
|
|
856
856
|
enumerable: true,
|
|
857
|
-
get: function () { return
|
|
857
|
+
get: function () { return chunkTAHDSSA6_js.useModal; }
|
|
858
858
|
});
|
|
859
859
|
Object.defineProperty(exports, "Button", {
|
|
860
860
|
enumerable: true,
|
package/dist/index.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export { Slider, sliderVariants } from './chunks/chunk-H2G5FMRN.mjs';
|
|
|
7
7
|
export { TagInput, tagInputVariants } from './chunks/chunk-H2V7RHYV.mjs';
|
|
8
8
|
export { NxImage } from './chunks/chunk-WZFKTTVX.mjs';
|
|
9
9
|
export { DatePicker } from './chunks/chunk-FBC53TOS.mjs';
|
|
10
|
-
export { ImageUpload, imageUploadVariants } from './chunks/chunk-
|
|
10
|
+
export { ImageUpload, imageUploadVariants } from './chunks/chunk-P4JV4WRB.mjs';
|
|
11
11
|
export { ClientOnly } from './chunks/chunk-AOXXE5UQ.mjs';
|
|
12
12
|
export { Skeleton } from './chunks/chunk-P2T72N62.mjs';
|
|
13
13
|
export { Countdown, useCountdown } from './chunks/chunk-LI7SFBUQ.mjs';
|
|
@@ -42,13 +42,13 @@ export { TextArea, textAreaVariants } from './chunks/chunk-ZU4AWAFT.mjs';
|
|
|
42
42
|
export { NumberInput, numberInputBind, numberInputVariants } from './chunks/chunk-RL5UAEGQ.mjs';
|
|
43
43
|
export { PriceInput, priceInputVariants } from './chunks/chunk-WGGBE4ZD.mjs';
|
|
44
44
|
export { Avatar, avatarVariants } from './chunks/chunk-YLO4UKSC.mjs';
|
|
45
|
-
export { ModalContainer_default as ModalContainer, ModalPortalTarget_default as ModalPortalTarget, ModalTemplate_default as ModalTemplate, checkModal, closeModal, getModalDefaultOption, openModal as modal, openModal, resetModal } from './chunks/chunk-
|
|
46
|
-
export { useDraggableBottomSheet } from './chunks/chunk-
|
|
45
|
+
export { ModalContainer_default as ModalContainer, ModalPortalTarget_default as ModalPortalTarget, ModalTemplate_default as ModalTemplate, checkModal, closeModal, getModalDefaultOption, openModal as modal, openModal, resetModal } from './chunks/chunk-7WWQ5DS3.mjs';
|
|
46
|
+
export { useDraggableBottomSheet } from './chunks/chunk-WBCXHGRL.mjs';
|
|
47
47
|
export { useDraggableWindow } from './chunks/chunk-4J3GCZ7W.mjs';
|
|
48
48
|
export { scrollFreeze, scrollRelease } from './chunks/chunk-54IA2P2Z.mjs';
|
|
49
|
-
export { useCheckDevice_default as useCheckDevice } from './chunks/chunk-
|
|
49
|
+
export { useCheckDevice_default as useCheckDevice } from './chunks/chunk-U6OEUBIF.mjs';
|
|
50
50
|
export { useClickOutside_default as useClickOutside } from './chunks/chunk-OTGS6BDQ.mjs';
|
|
51
|
-
export { useModal } from './chunks/chunk-
|
|
51
|
+
export { useModal } from './chunks/chunk-FY2N42XN.mjs';
|
|
52
52
|
export { Button, buttonVariants } from './chunks/chunk-VVXQZ4XH.mjs';
|
|
53
53
|
export { Chip, chipVariants } from './chunks/chunk-RX5UKRYK.mjs';
|
|
54
54
|
export { Badge, badgeVariants } from './chunks/chunk-CUTMLBC3.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContainer.d.ts","sourceRoot":"","sources":["../../../src/modal/components/ModalContainer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ModalContainer.d.ts","sourceRoot":"","sources":["../../../src/modal/components/ModalContainer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAO9D,KAAK,KAAK,GAAG,kBAAkB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,8CAIrB,KAAK,4CA4DP,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalTemplate.d.ts","sourceRoot":"","sources":["../../../src/modal/components/ModalTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,YAAY,EAMlB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAKvD,OAAO,EACL,KAAK,WAAW,EASjB,MAAM,0BAA0B,CAAC;AAElC,UAAU,SAAU,SAAQ,sBAAsB;IAChD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAkBD,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"ModalTemplate.d.ts","sourceRoot":"","sources":["../../../src/modal/components/ModalTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,YAAY,EAMlB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAKvD,OAAO,EACL,KAAK,WAAW,EASjB,MAAM,0BAA0B,CAAC;AAElC,UAAU,SAAU,SAAQ,sBAAsB;IAChD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAkBD,QAAA,MAAM,aAAa,kFA6PlB,CAAC;AAIF,YAAY,EAAE,SAAS,IAAI,kBAAkB,EAAE,CAAC;AAChD,eAAe,aAAa,CAAC"}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
import type { BreakPoints } from '../hooks/useCheckDevice';
|
|
1
2
|
import type { DefaultModalOption } from './types';
|
|
2
3
|
export declare const defaultModalOption: DefaultModalOption;
|
|
4
|
+
/**
|
|
5
|
+
* ModalContainer 의 기본 breakPoints.
|
|
6
|
+
*
|
|
7
|
+
* useCheckDevice 의 숫자형 default { mobile: 0, tablet: 768, desktop: 1280 } 와
|
|
8
|
+
* 매칭 영역이 동일하다. ModalComponent 가 `isMobile` 키로 디바이스를 판별하므로,
|
|
9
|
+
* 키 이름을 legacy 형식 (`isMobile`, `isTablet`, `isDesktop`) 으로 통일하기 위해
|
|
10
|
+
* 기본값을 별도로 둔다.
|
|
11
|
+
*
|
|
12
|
+
* - mobile : 0 ~ 767px
|
|
13
|
+
* - tablet : 768 ~ 1279px
|
|
14
|
+
* - desktop : 1280px+
|
|
15
|
+
*/
|
|
16
|
+
export declare const defaultBreakPoints: Required<BreakPoints>;
|
|
3
17
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/modal/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,kBAAkB,EAAE,kBAGhC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/modal/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,kBAAkB,EAAE,kBAGhC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAIpD,CAAC"}
|
package/dist/modal/index.js
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunks/chunk-
|
|
3
|
+
var chunkR744EATX_js = require('../chunks/chunk-R744EATX.js');
|
|
4
|
+
require('../chunks/chunk-F24AY3HI.js');
|
|
5
5
|
require('../chunks/chunk-NHDGKOAM.js');
|
|
6
6
|
require('../chunks/chunk-T2IY2TSR.js');
|
|
7
|
-
require('../chunks/chunk-
|
|
7
|
+
require('../chunks/chunk-NRO7I4EI.js');
|
|
8
8
|
require('../chunks/chunk-INP2AH3B.js');
|
|
9
|
-
var
|
|
9
|
+
var chunkTAHDSSA6_js = require('../chunks/chunk-TAHDSSA6.js');
|
|
10
10
|
require('../chunks/chunk-CZC76ZD5.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
Object.defineProperty(exports, "ModalContainer", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return chunkR744EATX_js.ModalContainer_default; }
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "ModalPortalTarget", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function () { return
|
|
20
|
+
get: function () { return chunkR744EATX_js.ModalPortalTarget_default; }
|
|
21
21
|
});
|
|
22
22
|
Object.defineProperty(exports, "ModalTemplate", {
|
|
23
23
|
enumerable: true,
|
|
24
|
-
get: function () { return
|
|
24
|
+
get: function () { return chunkR744EATX_js.ModalTemplate_default; }
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(exports, "checkModal", {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () { return
|
|
28
|
+
get: function () { return chunkR744EATX_js.checkModal; }
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "closeModal", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
32
|
+
get: function () { return chunkR744EATX_js.closeModal; }
|
|
33
33
|
});
|
|
34
34
|
Object.defineProperty(exports, "getModalDefaultOption", {
|
|
35
35
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
36
|
+
get: function () { return chunkR744EATX_js.getModalDefaultOption; }
|
|
37
37
|
});
|
|
38
38
|
Object.defineProperty(exports, "modal", {
|
|
39
39
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunkR744EATX_js.openModal; }
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "openModal", {
|
|
43
43
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkR744EATX_js.openModal; }
|
|
45
45
|
});
|
|
46
46
|
Object.defineProperty(exports, "resetModal", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunkR744EATX_js.resetModal; }
|
|
49
49
|
});
|
|
50
50
|
Object.defineProperty(exports, "useModal", {
|
|
51
51
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunkTAHDSSA6_js.useModal; }
|
|
53
53
|
});
|
package/dist/modal/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { ModalContainer_default as ModalContainer, ModalPortalTarget_default as ModalPortalTarget, ModalTemplate_default as ModalTemplate, checkModal, closeModal, getModalDefaultOption, openModal as modal, openModal, resetModal } from '../chunks/chunk-
|
|
2
|
-
import '../chunks/chunk-
|
|
1
|
+
export { ModalContainer_default as ModalContainer, ModalPortalTarget_default as ModalPortalTarget, ModalTemplate_default as ModalTemplate, checkModal, closeModal, getModalDefaultOption, openModal as modal, openModal, resetModal } from '../chunks/chunk-7WWQ5DS3.mjs';
|
|
2
|
+
import '../chunks/chunk-WBCXHGRL.mjs';
|
|
3
3
|
import '../chunks/chunk-4J3GCZ7W.mjs';
|
|
4
4
|
import '../chunks/chunk-54IA2P2Z.mjs';
|
|
5
|
-
import '../chunks/chunk-
|
|
5
|
+
import '../chunks/chunk-U6OEUBIF.mjs';
|
|
6
6
|
import '../chunks/chunk-OTGS6BDQ.mjs';
|
|
7
|
-
export { useModal } from '../chunks/chunk-
|
|
7
|
+
export { useModal } from '../chunks/chunk-FY2N42XN.mjs';
|
|
8
8
|
import '../chunks/chunk-MCKOWMLS.mjs';
|
package/dist/schemas/_all.json
CHANGED
|
@@ -1828,6 +1828,11 @@
|
|
|
1828
1828
|
"default": true,
|
|
1829
1829
|
"description": "Hide footer"
|
|
1830
1830
|
},
|
|
1831
|
+
"hideCloseBtn": {
|
|
1832
|
+
"type": "boolean",
|
|
1833
|
+
"default": false,
|
|
1834
|
+
"description": "Hide the X close button in the header"
|
|
1835
|
+
},
|
|
1831
1836
|
"footer": {
|
|
1832
1837
|
"description": "Custom footer (ReactElement)"
|
|
1833
1838
|
},
|
|
@@ -1879,15 +1884,15 @@
|
|
|
1879
1884
|
},
|
|
1880
1885
|
"className": {
|
|
1881
1886
|
"type": "string",
|
|
1882
|
-
"description": "Root wrapper style"
|
|
1887
|
+
"description": "Root wrapper style — applied to the full-screen `position: fixed; inset: 0` flex container that centers the modal. NOTE: width / max-width / height utilities (`w-[400px]`, `max-w-[92vw]`, `h-*`) MUST NOT go here — they will resize the wrap layer, not the panel. Put sizing on `innerClassName` instead."
|
|
1883
1888
|
},
|
|
1884
1889
|
"innerClassName": {
|
|
1885
1890
|
"type": "string",
|
|
1886
|
-
"description": "Modal
|
|
1891
|
+
"description": "Modal panel (the actual dialog box) style — apply ALL sizing utilities here: `w-[400px]`, `max-w-[92vw]`, `min-h-*`, `max-h-[80vh]`, `rounded-*`, panel background, etc. This is the most common override point."
|
|
1887
1892
|
},
|
|
1888
1893
|
"bodyClassName": {
|
|
1889
1894
|
"type": "string",
|
|
1890
|
-
"description": "Body area style"
|
|
1895
|
+
"description": "Body area style (inside the panel, between header and footer)"
|
|
1891
1896
|
},
|
|
1892
1897
|
"footerClassName": {
|
|
1893
1898
|
"type": "string",
|
|
@@ -1903,7 +1908,7 @@
|
|
|
1903
1908
|
}
|
|
1904
1909
|
},
|
|
1905
1910
|
"additionalProperties": false,
|
|
1906
|
-
"description": "Modal template. All modal components must be wrapped with ModalTemplate.\n\nWHEN TO USE:\n • Force user decision (delete confirm, submit confirm, blocking dialog)\n • Long form/flow that needs full attention\n • Side panel that doesn't block main flow → Drawer instead\n • Inline contextual UI → Popover instead\n • Short hint → Tooltip instead\n\nPREFERRED API: use modal() / useModal() imperative API rather than mounting <ModalTemplate> directly. modal() handles stacking, focus return, ESC, and background scroll automatically.\n\nANTI-PATTERNS:\n ✗ Custom <div className=\"fixed inset-0\"> → modal() (loses focus trap, a11y)\n ✗ Direct <ModalTemplate> mount in render tree → wrap with modal()\n ✗ Modal with no title for screen readers → always pass title prop\n ✗ Multiple modals stacking confusingly → use isAlone:true to close prior modals"
|
|
1911
|
+
"description": "Modal template. All modal components must be wrapped with ModalTemplate.\n\nWHEN TO USE:\n • Force user decision (delete confirm, submit confirm, blocking dialog)\n • Long form/flow that needs full attention\n • Side panel that doesn't block main flow → Drawer instead\n • Inline contextual UI → Popover instead\n • Short hint → Tooltip instead\n\nPREFERRED API: use modal() / useModal() imperative API rather than mounting <ModalTemplate> directly. modal() handles stacking, focus return, ESC, and background scroll automatically.\n\nSIZING (must read — most common AI mistake):\n • The modal has TWO layers:\n 1. wrap = full-screen `position: fixed; inset: 0` flex container → controlled by `className`\n 2. panel = the actual dialog box rendered at the center → controlled by `innerClassName`\n • Sizing utilities (`w-*`, `max-w-*`, `min-w-*`, `h-*`, `max-h-*`) MUST go on `innerClassName`.\n • Putting `w-[400px] max-w-[92vw]` on `className` shrinks the wrap (the centering layer), NOT the panel — the panel keeps its default width and the modal looks broken.\n\nANTI-PATTERNS:\n ✗ Custom <div className=\"fixed inset-0\"> → modal() (loses focus trap, a11y)\n ✗ Direct <ModalTemplate> mount in render tree → wrap with modal()\n ✗ Modal with no title for screen readers → always pass title prop\n ✗ Multiple modals stacking confusingly → use isAlone:true to close prior modals\n ✗ <ModalTemplate className=\"w-[400px] max-w-[92vw]\"> → put sizing on `innerClassName` instead"
|
|
1907
1912
|
}
|
|
1908
1913
|
},
|
|
1909
1914
|
"$schema": "http://json-schema.org/draft-07/schema#"
|