@nexus-cross/design-system 2.0.3 → 2.0.5

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.
Files changed (51) hide show
  1. package/claude-rules/nexus/CLAUDE.md +109 -0
  2. package/cursor-rules/CLAUDE.md +5 -0
  3. package/cursor-rules/nexus-project-setup.mdc +106 -6
  4. package/cursor-rules/nexus-ui-api.mdc +60 -3
  5. package/dist/chunks/{chunk-3VFBPFZF.mjs → chunk-7WWQ5DS3.mjs} +10 -5
  6. package/dist/chunks/{chunk-HHXDOKXY.js → chunk-F24AY3HI.js} +2 -2
  7. package/dist/chunks/{chunk-6H7V2I3X.mjs → chunk-FY2N42XN.mjs} +6 -1
  8. package/dist/chunks/{chunk-JFZLKFFM.mjs → chunk-JBMN6DY3.mjs} +1 -1
  9. package/dist/chunks/{chunk-XEHFB62A.js → chunk-NRO7I4EI.js} +2 -6
  10. package/dist/chunks/{chunk-U53UA76K.js → chunk-R744EATX.js} +26 -21
  11. package/dist/chunks/{chunk-HUPAHDJ7.js → chunk-TAHDSSA6.js} +6 -0
  12. package/dist/chunks/{chunk-YEWKPWK3.mjs → chunk-U6OEUBIF.mjs} +2 -6
  13. package/dist/chunks/{chunk-U56AGSLE.mjs → chunk-WBCXHGRL.mjs} +2 -2
  14. package/dist/chunks/{chunk-7G7U4DP2.js → chunk-YMLPMIWX.js} +1 -1
  15. package/dist/hooks/useCheckDevice.d.ts.map +1 -1
  16. package/dist/hooks/useCheckDevice.js +2 -2
  17. package/dist/hooks/useCheckDevice.mjs +1 -1
  18. package/dist/hooks/useDraggableBottomSheet.js +2 -2
  19. package/dist/hooks/useDraggableBottomSheet.mjs +1 -1
  20. package/dist/hooks/useModal.js +2 -2
  21. package/dist/hooks/useModal.mjs +1 -1
  22. package/dist/index.js +16 -16
  23. package/dist/index.mjs +4 -4
  24. package/dist/modal/components/ModalContainer.d.ts.map +1 -1
  25. package/dist/modal/components/ModalTemplate.d.ts +1 -0
  26. package/dist/modal/components/ModalTemplate.d.ts.map +1 -1
  27. package/dist/modal/constants.d.ts +14 -0
  28. package/dist/modal/constants.d.ts.map +1 -1
  29. package/dist/modal/index.js +14 -14
  30. package/dist/modal/index.mjs +4 -4
  31. package/dist/schemas/_all.json +9 -4
  32. package/dist/schemas/modal.d.ts +3 -0
  33. package/dist/schemas/modal.d.ts.map +1 -1
  34. package/dist/schemas/modalTemplate.json +9 -4
  35. package/dist/schemas.js +17 -4
  36. package/dist/schemas.mjs +17 -4
  37. package/dist/styles/.generated/built.d.ts +1 -1
  38. package/dist/styles/.generated/built.d.ts.map +1 -1
  39. package/dist/styles/layer.js +2 -2
  40. package/dist/styles/layer.mjs +1 -1
  41. package/dist/styles.css +8 -8
  42. package/dist/styles.js +2 -2
  43. package/dist/styles.layered.css +8 -8
  44. package/dist/styles.mjs +1 -1
  45. package/dist/tokens/company.css +1 -1
  46. package/dist/tokens/css.css +1 -1
  47. package/dist/tokens-domains/gamehub-vars.css +122 -0
  48. package/dist/tokens-domains/gamehub.css +121 -0
  49. package/dist/tokens-domains/prediction-vars.css +1 -1
  50. package/dist/tokens-domains/prediction.css +1 -1
  51. package/package.json +4 -5
@@ -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,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAoDjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iBAAS,cAAc,IAAI;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAClF,iBAAS,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAC;AACjF,iBAAS,cAAc,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkDlF,eAAe,cAAc,CAAC"}
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 chunkXEHFB62A_js = require('../chunks/chunk-XEHFB62A.js');
3
+ var chunkNRO7I4EI_js = require('../chunks/chunk-NRO7I4EI.js');
4
4
 
5
5
 
6
6
 
7
- module.exports = chunkXEHFB62A_js.useCheckDevice_default;
7
+ module.exports = chunkNRO7I4EI_js.useCheckDevice_default;
@@ -1 +1 @@
1
- export { useCheckDevice_default as default } from '../chunks/chunk-YEWKPWK3.mjs';
1
+ export { useCheckDevice_default as default } from '../chunks/chunk-U6OEUBIF.mjs';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkHHXDOKXY_js = require('../chunks/chunk-HHXDOKXY.js');
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 chunkHHXDOKXY_js.useDraggableBottomSheet; }
9
+ get: function () { return chunkF24AY3HI_js.useDraggableBottomSheet; }
10
10
  });
@@ -1 +1 @@
1
- export { useDraggableBottomSheet } from '../chunks/chunk-U56AGSLE.mjs';
1
+ export { useDraggableBottomSheet } from '../chunks/chunk-WBCXHGRL.mjs';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkHUPAHDJ7_js = require('../chunks/chunk-HUPAHDJ7.js');
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 chunkHUPAHDJ7_js.useModal; }
9
+ get: function () { return chunkTAHDSSA6_js.useModal; }
10
10
  });
@@ -1 +1 @@
1
- export { useModal } from '../chunks/chunk-6H7V2I3X.mjs';
1
+ export { useModal } from '../chunks/chunk-FY2N42XN.mjs';
package/dist/index.js CHANGED
@@ -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 chunkU53UA76K_js = require('./chunks/chunk-U53UA76K.js');
48
- var chunkHHXDOKXY_js = require('./chunks/chunk-HHXDOKXY.js');
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 chunkXEHFB62A_js = require('./chunks/chunk-XEHFB62A.js');
51
+ var chunkNRO7I4EI_js = require('./chunks/chunk-NRO7I4EI.js');
52
52
  var chunkINP2AH3B_js = require('./chunks/chunk-INP2AH3B.js');
53
- var chunkHUPAHDJ7_js = require('./chunks/chunk-HUPAHDJ7.js');
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');
@@ -794,43 +794,43 @@ Object.defineProperty(exports, "avatarVariants", {
794
794
  });
795
795
  Object.defineProperty(exports, "ModalContainer", {
796
796
  enumerable: true,
797
- get: function () { return chunkU53UA76K_js.ModalContainer_default; }
797
+ get: function () { return chunkR744EATX_js.ModalContainer_default; }
798
798
  });
799
799
  Object.defineProperty(exports, "ModalPortalTarget", {
800
800
  enumerable: true,
801
- get: function () { return chunkU53UA76K_js.ModalPortalTarget_default; }
801
+ get: function () { return chunkR744EATX_js.ModalPortalTarget_default; }
802
802
  });
803
803
  Object.defineProperty(exports, "ModalTemplate", {
804
804
  enumerable: true,
805
- get: function () { return chunkU53UA76K_js.ModalTemplate_default; }
805
+ get: function () { return chunkR744EATX_js.ModalTemplate_default; }
806
806
  });
807
807
  Object.defineProperty(exports, "checkModal", {
808
808
  enumerable: true,
809
- get: function () { return chunkU53UA76K_js.checkModal; }
809
+ get: function () { return chunkR744EATX_js.checkModal; }
810
810
  });
811
811
  Object.defineProperty(exports, "closeModal", {
812
812
  enumerable: true,
813
- get: function () { return chunkU53UA76K_js.closeModal; }
813
+ get: function () { return chunkR744EATX_js.closeModal; }
814
814
  });
815
815
  Object.defineProperty(exports, "getModalDefaultOption", {
816
816
  enumerable: true,
817
- get: function () { return chunkU53UA76K_js.getModalDefaultOption; }
817
+ get: function () { return chunkR744EATX_js.getModalDefaultOption; }
818
818
  });
819
819
  Object.defineProperty(exports, "modal", {
820
820
  enumerable: true,
821
- get: function () { return chunkU53UA76K_js.openModal; }
821
+ get: function () { return chunkR744EATX_js.openModal; }
822
822
  });
823
823
  Object.defineProperty(exports, "openModal", {
824
824
  enumerable: true,
825
- get: function () { return chunkU53UA76K_js.openModal; }
825
+ get: function () { return chunkR744EATX_js.openModal; }
826
826
  });
827
827
  Object.defineProperty(exports, "resetModal", {
828
828
  enumerable: true,
829
- get: function () { return chunkU53UA76K_js.resetModal; }
829
+ get: function () { return chunkR744EATX_js.resetModal; }
830
830
  });
831
831
  Object.defineProperty(exports, "useDraggableBottomSheet", {
832
832
  enumerable: true,
833
- get: function () { return chunkHHXDOKXY_js.useDraggableBottomSheet; }
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 chunkXEHFB62A_js.useCheckDevice_default; }
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 chunkHUPAHDJ7_js.useModal; }
857
+ get: function () { return chunkTAHDSSA6_js.useModal; }
858
858
  });
859
859
  Object.defineProperty(exports, "Button", {
860
860
  enumerable: true,
package/dist/index.mjs CHANGED
@@ -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-3VFBPFZF.mjs';
46
- export { useDraggableBottomSheet } from './chunks/chunk-U56AGSLE.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-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-YEWKPWK3.mjs';
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-6H7V2I3X.mjs';
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;AAM9D,KAAK,KAAK,GAAG,kBAAkB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,8CAAmD,KAAK,4CA4D/E,CAAC;AAEF,eAAe,cAAc,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"}
@@ -5,6 +5,7 @@ interface PropsType extends ModalTemplatePropsType {
5
5
  layout?: ModalLayout;
6
6
  hideHeader?: boolean;
7
7
  hideFooter?: boolean;
8
+ hideCloseBtn?: boolean;
8
9
  footer?: ReactElement | string;
9
10
  innerClassName?: string;
10
11
  bodyClassName?: string;
@@ -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,kFA0PlB,CAAC;AAIF,YAAY,EAAE,SAAS,IAAI,kBAAkB,EAAE,CAAC;AAChD,eAAe,aAAa,CAAC"}
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"}
@@ -1,53 +1,53 @@
1
1
  'use strict';
2
2
 
3
- var chunkU53UA76K_js = require('../chunks/chunk-U53UA76K.js');
4
- require('../chunks/chunk-HHXDOKXY.js');
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-XEHFB62A.js');
7
+ require('../chunks/chunk-NRO7I4EI.js');
8
8
  require('../chunks/chunk-INP2AH3B.js');
9
- var chunkHUPAHDJ7_js = require('../chunks/chunk-HUPAHDJ7.js');
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 chunkU53UA76K_js.ModalContainer_default; }
16
+ get: function () { return chunkR744EATX_js.ModalContainer_default; }
17
17
  });
18
18
  Object.defineProperty(exports, "ModalPortalTarget", {
19
19
  enumerable: true,
20
- get: function () { return chunkU53UA76K_js.ModalPortalTarget_default; }
20
+ get: function () { return chunkR744EATX_js.ModalPortalTarget_default; }
21
21
  });
22
22
  Object.defineProperty(exports, "ModalTemplate", {
23
23
  enumerable: true,
24
- get: function () { return chunkU53UA76K_js.ModalTemplate_default; }
24
+ get: function () { return chunkR744EATX_js.ModalTemplate_default; }
25
25
  });
26
26
  Object.defineProperty(exports, "checkModal", {
27
27
  enumerable: true,
28
- get: function () { return chunkU53UA76K_js.checkModal; }
28
+ get: function () { return chunkR744EATX_js.checkModal; }
29
29
  });
30
30
  Object.defineProperty(exports, "closeModal", {
31
31
  enumerable: true,
32
- get: function () { return chunkU53UA76K_js.closeModal; }
32
+ get: function () { return chunkR744EATX_js.closeModal; }
33
33
  });
34
34
  Object.defineProperty(exports, "getModalDefaultOption", {
35
35
  enumerable: true,
36
- get: function () { return chunkU53UA76K_js.getModalDefaultOption; }
36
+ get: function () { return chunkR744EATX_js.getModalDefaultOption; }
37
37
  });
38
38
  Object.defineProperty(exports, "modal", {
39
39
  enumerable: true,
40
- get: function () { return chunkU53UA76K_js.openModal; }
40
+ get: function () { return chunkR744EATX_js.openModal; }
41
41
  });
42
42
  Object.defineProperty(exports, "openModal", {
43
43
  enumerable: true,
44
- get: function () { return chunkU53UA76K_js.openModal; }
44
+ get: function () { return chunkR744EATX_js.openModal; }
45
45
  });
46
46
  Object.defineProperty(exports, "resetModal", {
47
47
  enumerable: true,
48
- get: function () { return chunkU53UA76K_js.resetModal; }
48
+ get: function () { return chunkR744EATX_js.resetModal; }
49
49
  });
50
50
  Object.defineProperty(exports, "useModal", {
51
51
  enumerable: true,
52
- get: function () { return chunkHUPAHDJ7_js.useModal; }
52
+ get: function () { return chunkTAHDSSA6_js.useModal; }
53
53
  });
@@ -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-3VFBPFZF.mjs';
2
- import '../chunks/chunk-U56AGSLE.mjs';
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-YEWKPWK3.mjs';
5
+ import '../chunks/chunk-U6OEUBIF.mjs';
6
6
  import '../chunks/chunk-OTGS6BDQ.mjs';
7
- export { useModal } from '../chunks/chunk-6H7V2I3X.mjs';
7
+ export { useModal } from '../chunks/chunk-FY2N42XN.mjs';
8
8
  import '../chunks/chunk-MCKOWMLS.mjs';
@@ -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 body style"
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#"
@@ -7,6 +7,7 @@ export declare const modalTemplatePropsSchema: z.ZodObject<{
7
7
  dimClose: z.ZodDefault<z.ZodBoolean>;
8
8
  hideHeader: z.ZodDefault<z.ZodBoolean>;
9
9
  hideFooter: z.ZodDefault<z.ZodBoolean>;
10
+ hideCloseBtn: z.ZodDefault<z.ZodBoolean>;
10
11
  footer: z.ZodOptional<z.ZodAny>;
11
12
  animation: z.ZodOptional<z.ZodObject<{
12
13
  name: z.ZodOptional<z.ZodString>;
@@ -44,6 +45,7 @@ export declare const modalTemplatePropsSchema: z.ZodObject<{
44
45
  layout: "draggable" | "default" | "bottom-sheet" | "slide-left" | "slide-right" | "full-page" | "full-page-reverse";
45
46
  hideHeader: boolean;
46
47
  hideFooter: boolean;
48
+ hideCloseBtn: boolean;
47
49
  enableDrag: boolean;
48
50
  showDim: boolean;
49
51
  dimClose: boolean;
@@ -85,6 +87,7 @@ export declare const modalTemplatePropsSchema: z.ZodObject<{
85
87
  desc?: any;
86
88
  hideHeader?: boolean | undefined;
87
89
  hideFooter?: boolean | undefined;
90
+ hideCloseBtn?: boolean | undefined;
88
91
  innerClassName?: string | undefined;
89
92
  bodyClassName?: string | undefined;
90
93
  footerClassName?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/schemas/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DlC,CAAC;AAEJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BzB,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/schemas/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFlC,CAAC;AAEJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BzB,CAAC"}
@@ -44,6 +44,11 @@
44
44
  "default": true,
45
45
  "description": "Hide footer"
46
46
  },
47
+ "hideCloseBtn": {
48
+ "type": "boolean",
49
+ "default": false,
50
+ "description": "Hide the X close button in the header"
51
+ },
47
52
  "footer": {
48
53
  "description": "Custom footer (ReactElement)"
49
54
  },
@@ -95,15 +100,15 @@
95
100
  },
96
101
  "className": {
97
102
  "type": "string",
98
- "description": "Root wrapper style"
103
+ "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."
99
104
  },
100
105
  "innerClassName": {
101
106
  "type": "string",
102
- "description": "Modal body style"
107
+ "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."
103
108
  },
104
109
  "bodyClassName": {
105
110
  "type": "string",
106
- "description": "Body area style"
111
+ "description": "Body area style (inside the panel, between header and footer)"
107
112
  },
108
113
  "footerClassName": {
109
114
  "type": "string",
@@ -119,7 +124,7 @@
119
124
  }
120
125
  },
121
126
  "additionalProperties": false,
122
- "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"
127
+ "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"
123
128
  }
124
129
  },
125
130
  "$schema": "http://json-schema.org/draft-07/schema#"
package/dist/schemas.js CHANGED
@@ -1331,15 +1331,20 @@ var modalTemplatePropsSchema = zod.z.object({
1331
1331
  dimClose: zod.z.boolean().default(true).describe("Close on dim click"),
1332
1332
  hideHeader: zod.z.boolean().default(false).describe("Hide header"),
1333
1333
  hideFooter: zod.z.boolean().default(true).describe("Hide footer"),
1334
+ hideCloseBtn: zod.z.boolean().default(false).describe("Hide the X close button in the header"),
1334
1335
  footer: zod.z.any().optional().describe("Custom footer (ReactElement)"),
1335
1336
  animation: animationOptionsSchema.optional().describe("Modal animation"),
1336
1337
  enableDrag: zod.z.boolean().default(true).describe("Enable drag (bottom-sheet/draggable layouts)"),
1337
1338
  dragPersistKey: zod.z.string().optional().describe("Drag position persistence key"),
1338
1339
  close: zod.z.any().describe("Modal close function (isAnimation?: boolean) => void (auto-injected)"),
1339
1340
  children: zod.z.any().describe("Modal body (ReactNode, required)"),
1340
- className: zod.z.string().optional().describe("Root wrapper style"),
1341
- innerClassName: zod.z.string().optional().describe("Modal body style"),
1342
- bodyClassName: zod.z.string().optional().describe("Body area style"),
1341
+ className: zod.z.string().optional().describe(
1342
+ "Root wrapper style \u2014 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 \u2014 they will resize the wrap layer, not the panel. Put sizing on `innerClassName` instead."
1343
+ ),
1344
+ innerClassName: zod.z.string().optional().describe(
1345
+ "Modal panel (the actual dialog box) style \u2014 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."
1346
+ ),
1347
+ bodyClassName: zod.z.string().optional().describe("Body area style (inside the panel, between header and footer)"),
1343
1348
  footerClassName: zod.z.string().optional().describe("Footer area style"),
1344
1349
  dimClassName: zod.z.string().optional().describe("Dim overlay style"),
1345
1350
  headerClassName: zod.z.string().optional().describe("Header area style")
@@ -1355,11 +1360,19 @@ WHEN TO USE:
1355
1360
 
1356
1361
  PREFERRED API: use modal() / useModal() imperative API rather than mounting <ModalTemplate> directly. modal() handles stacking, focus return, ESC, and background scroll automatically.
1357
1362
 
1363
+ SIZING (must read \u2014 most common AI mistake):
1364
+ \u2022 The modal has TWO layers:
1365
+ 1. wrap = full-screen \`position: fixed; inset: 0\` flex container \u2192 controlled by \`className\`
1366
+ 2. panel = the actual dialog box rendered at the center \u2192 controlled by \`innerClassName\`
1367
+ \u2022 Sizing utilities (\`w-*\`, \`max-w-*\`, \`min-w-*\`, \`h-*\`, \`max-h-*\`) MUST go on \`innerClassName\`.
1368
+ \u2022 Putting \`w-[400px] max-w-[92vw]\` on \`className\` shrinks the wrap (the centering layer), NOT the panel \u2014 the panel keeps its default width and the modal looks broken.
1369
+
1358
1370
  ANTI-PATTERNS:
1359
1371
  \u2717 Custom <div className="fixed inset-0"> \u2192 modal() (loses focus trap, a11y)
1360
1372
  \u2717 Direct <ModalTemplate> mount in render tree \u2192 wrap with modal()
1361
1373
  \u2717 Modal with no title for screen readers \u2192 always pass title prop
1362
- \u2717 Multiple modals stacking confusingly \u2192 use isAlone:true to close prior modals`
1374
+ \u2717 Multiple modals stacking confusingly \u2192 use isAlone:true to close prior modals
1375
+ \u2717 <ModalTemplate className="w-[400px] max-w-[92vw]"> \u2192 put sizing on \`innerClassName\` instead`
1363
1376
  );
1364
1377
  var modalCallSchema = zod.z.object({
1365
1378
  component: zod.z.any().describe("Modal component (required). Automatically receives close/resolve as props"),
package/dist/schemas.mjs CHANGED
@@ -1329,15 +1329,20 @@ var modalTemplatePropsSchema = z.object({
1329
1329
  dimClose: z.boolean().default(true).describe("Close on dim click"),
1330
1330
  hideHeader: z.boolean().default(false).describe("Hide header"),
1331
1331
  hideFooter: z.boolean().default(true).describe("Hide footer"),
1332
+ hideCloseBtn: z.boolean().default(false).describe("Hide the X close button in the header"),
1332
1333
  footer: z.any().optional().describe("Custom footer (ReactElement)"),
1333
1334
  animation: animationOptionsSchema.optional().describe("Modal animation"),
1334
1335
  enableDrag: z.boolean().default(true).describe("Enable drag (bottom-sheet/draggable layouts)"),
1335
1336
  dragPersistKey: z.string().optional().describe("Drag position persistence key"),
1336
1337
  close: z.any().describe("Modal close function (isAnimation?: boolean) => void (auto-injected)"),
1337
1338
  children: z.any().describe("Modal body (ReactNode, required)"),
1338
- className: z.string().optional().describe("Root wrapper style"),
1339
- innerClassName: z.string().optional().describe("Modal body style"),
1340
- bodyClassName: z.string().optional().describe("Body area style"),
1339
+ className: z.string().optional().describe(
1340
+ "Root wrapper style \u2014 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 \u2014 they will resize the wrap layer, not the panel. Put sizing on `innerClassName` instead."
1341
+ ),
1342
+ innerClassName: z.string().optional().describe(
1343
+ "Modal panel (the actual dialog box) style \u2014 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."
1344
+ ),
1345
+ bodyClassName: z.string().optional().describe("Body area style (inside the panel, between header and footer)"),
1341
1346
  footerClassName: z.string().optional().describe("Footer area style"),
1342
1347
  dimClassName: z.string().optional().describe("Dim overlay style"),
1343
1348
  headerClassName: z.string().optional().describe("Header area style")
@@ -1353,11 +1358,19 @@ WHEN TO USE:
1353
1358
 
1354
1359
  PREFERRED API: use modal() / useModal() imperative API rather than mounting <ModalTemplate> directly. modal() handles stacking, focus return, ESC, and background scroll automatically.
1355
1360
 
1361
+ SIZING (must read \u2014 most common AI mistake):
1362
+ \u2022 The modal has TWO layers:
1363
+ 1. wrap = full-screen \`position: fixed; inset: 0\` flex container \u2192 controlled by \`className\`
1364
+ 2. panel = the actual dialog box rendered at the center \u2192 controlled by \`innerClassName\`
1365
+ \u2022 Sizing utilities (\`w-*\`, \`max-w-*\`, \`min-w-*\`, \`h-*\`, \`max-h-*\`) MUST go on \`innerClassName\`.
1366
+ \u2022 Putting \`w-[400px] max-w-[92vw]\` on \`className\` shrinks the wrap (the centering layer), NOT the panel \u2014 the panel keeps its default width and the modal looks broken.
1367
+
1356
1368
  ANTI-PATTERNS:
1357
1369
  \u2717 Custom <div className="fixed inset-0"> \u2192 modal() (loses focus trap, a11y)
1358
1370
  \u2717 Direct <ModalTemplate> mount in render tree \u2192 wrap with modal()
1359
1371
  \u2717 Modal with no title for screen readers \u2192 always pass title prop
1360
- \u2717 Multiple modals stacking confusingly \u2192 use isAlone:true to close prior modals`
1372
+ \u2717 Multiple modals stacking confusingly \u2192 use isAlone:true to close prior modals
1373
+ \u2717 <ModalTemplate className="w-[400px] max-w-[92vw]"> \u2192 put sizing on \`innerClassName\` instead`
1361
1374
  );
1362
1375
  var modalCallSchema = z.object({
1363
1376
  component: z.any().describe("Modal component (required). Automatically receives close/resolve as props"),