@kne/react-modal 0.1.9 → 0.1.11

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ### 描述
4
4
 
5
- 基于 antd 的 React 弹层组件,提供 Modal/Drawer、useModal/useDrawer/useConfirmModal、共用 TabsLayout/ScrollRegion 布局与 createModalRender/createDrawerRender,支持 SimpleBar 与移动端适配。
5
+ 基于 antd 的 React 弹层组件,提供 Modal/Drawer、useModal/useDrawer/useConfirmModal、共用 TabsLayout/ScrollRegion 布局与 createModalRender/createDrawerRender支持 SimpleBar 与移动端适配。
6
6
 
7
7
  ### 关键词
8
8
 
package/dist/index.css CHANGED
@@ -296,9 +296,12 @@
296
296
  .kne-react-modal_kkILR.kne-react-modal_LtgJz .kne-react-modal_W-QFz {
297
297
  flex: 1 1 auto;
298
298
  min-height: 0;
299
+ height: auto !important;
300
+ max-height: none !important;
299
301
  }
300
302
  .kne-react-modal_kkILR.kne-react-modal_LtgJz .kne-react-modal_meVfy {
301
303
  flex: none;
304
+ margin-top: auto;
302
305
  }
303
306
 
304
307
  .kne-react-modal_tG9MF {
@@ -842,6 +845,21 @@
842
845
  max-height: 100%;
843
846
  }
844
847
 
848
+ .kne-react-modal_G-qXe.ant-drawer {
849
+ display: block;
850
+ inset: 0 !important;
851
+ width: var(--kne-viewport-width, 100vw) !important;
852
+ height: var(--kne-viewport-height, 100vh) !important;
853
+ max-height: var(--kne-viewport-height, 100vh) !important;
854
+ box-sizing: border-box;
855
+ overflow: hidden !important;
856
+ overscroll-behavior: none;
857
+ touch-action: none;
858
+ }
859
+ .kne-react-modal_G-qXe.ant-drawer .ant-drawer-content-wrapper,
860
+ .kne-react-modal_G-qXe.ant-drawer .ant-drawer-content {
861
+ touch-action: auto;
862
+ }
845
863
  .kne-react-modal_G-qXe.ant-drawer .ant-drawer-content {
846
864
  width: 100%;
847
865
  max-width: 100%;
@@ -851,9 +869,10 @@
851
869
  }
852
870
  .kne-react-modal_G-qXe.ant-drawer.kne-is-boundary {
853
871
  position: absolute !important;
854
- inset: 0 !important;
855
872
  width: 100% !important;
856
873
  height: 100% !important;
874
+ min-height: 100% !important;
875
+ max-height: 100% !important;
857
876
  }
858
877
  .kne-react-modal_G-qXe.ant-drawer.kne-is-viewport {
859
878
  position: fixed !important;
@@ -1 +1 @@
1
- {"version":3,"sources":["layouts.module.scss","style.module.scss","drawer.module.scss","confirmModal.module.scss"],"names":[],"mappings":"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EE,gCAAgC;EAChC,kCAAkC;AACpC;AACA;EACE,2BAA2B;AAC7B;;AAEA;;EAEE,aAAa;EACb,uBAAuB;EACvB,QAAQ;AACV;;AAEA;EACE,cAAc;EACd,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,cAAc;AAChB;;AAEA;EACE,eAAe;AACjB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;;AAEA;EACE,OAAO;EACP,YAAY;EACZ,cAAc;EACd,iBAAiB;EACjB,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,OAAO;EACP,YAAY;EACZ,0BAA0B;EAC1B,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,uBAAuB;EACvB,mBAAmB;EACnB,kBAAkB;EAClB,QAAQ;AACV;AACA;EACE,QAAQ;AACV;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;EACd,eAAe;EACf,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE;;IAEE,QAAQ;EACV;EACA;IACE,2CAA2C;EAC7C;EACA;IACE,8FAA8F;IAC9F,kGAAkG;EACpG;EACA;IACE,uBAAuB;EACzB;EACA;IACE,mBAAmB;EACrB;EACA;IACE,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;IACpB,WAAW;IACX,gBAAgB;IAChB,SAAS;EACX;EACA;IACE,OAAO;IACP,WAAW;IACX,iCAAiC;IACjC,YAAY;EACd;EACA;IACE,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;EACpB;EACA;IACE,kBAAkB;EACpB;EACA;IACE,eAAe;EACjB;EACA;IACE,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,kBAAkB;EACpB;EACA;IACE,WAAW;IACX,YAAY;IACZ,aAAa;EACf;EACA;IACE,eAAe;EACjB;AACF","file":"index.css","sourcesContent":[".modal-tabs-layout:global(.ant-tabs) {\n height: var(--kne-modal-content-height);\n max-height: var(--kne-modal-content-height);\n flex: 1 1 0%;\n min-height: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n box-sizing: border-box;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) {\n flex: none;\n height: var(--kne-modal-close-align-height, 48px);\n margin: 0;\n padding: 0 86px 0 24px;\n align-items: center;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav)::before {\n border-bottom-color: #f0f0f0;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) :global(.ant-tabs-nav-wrap) {\n align-self: stretch;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) :global(.ant-tabs-tab) {\n margin: 0 28px 0 0;\n padding: 0;\n font-weight: 600;\n display: inline-flex;\n align-items: center;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) :global(.ant-tabs-tab) :global(.ant-tabs-tab-btn) {\n padding: 0;\n line-height: var(--kne-modal-close-align-height, 48px);\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-body-holder) {\n flex: 1 1 0% !important;\n height: 0 !important;\n min-height: 0;\n overflow: hidden;\n}\n.modal-tabs-layout:global(.ant-tabs) :global(.ant-tabs-body) {\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n.modal-tabs-layout:global(.ant-tabs) :global(.ant-tabs-content) {\n height: 100%;\n min-height: 0;\n overflow: hidden;\n outline: none;\n}\n.modal-tabs-layout:global(.ant-tabs) :global(.ant-tabs-content-hidden) {\n display: none;\n}\n\n.modal-columns-layout {\n display: flex;\n flex-direction: row;\n height: 100%;\n max-height: 100%;\n min-height: 0;\n width: 100%;\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.modal-columns-layout__col {\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.modal-columns-layout__col:not(:first-child) {\n border-left: 1px solid #f0f0f0;\n}\n\n.modal-columns-layout__col:first-child :global(.modal-scroll-region) {\n background: #fafafa;\n}\n.modal-columns-layout__col:first-child :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fafafa;\n}\n.modal-columns-layout__col:first-child :global(.modal-scroll-region) :global(.modal-scroll-region-sticky) {\n background: #fafafa;\n}\n\n.modal-columns-layout__col:last-child :global(.modal-scroll-region) {\n background: #fff;\n}\n.modal-columns-layout__col:last-child :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fff;\n}\n\n.modal-columns-layout__col:only-child :global(.modal-scroll-region) {\n background: #fff;\n}\n.modal-columns-layout__col:only-child :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fff;\n}\n\n.modal-scroll-region {\n height: 100%;\n max-height: 100%;\n min-height: 0;\n box-sizing: border-box;\n}\n.modal-scroll-region :global(.simplebar-wrapper),\n.modal-scroll-region :global(.simplebar-mask),\n.modal-scroll-region :global(.simplebar-offset) {\n height: 100%;\n min-height: 0;\n}\n.modal-scroll-region :global(.simplebar-content-wrapper) {\n height: 100%;\n min-height: 0;\n}\n\n.modal-scroll-region-inner {\n box-sizing: border-box;\n min-height: 100%;\n}\n\n.modal-scroll-region.is-inset .modal-scroll-region-inner {\n padding: 16px 20px;\n}\n\n:global(.modal-scroll-region-sticky) {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: 12px 16px 10px;\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n}\n\n:global(.react-modal-splitter.ant-splitter) {\n height: 100% !important;\n max-height: 100%;\n min-height: 0;\n overflow: hidden;\n box-sizing: border-box;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel) {\n min-height: 0;\n overflow: hidden;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:first-child) :global(.modal-scroll-region) {\n background: #fafafa;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:first-child) :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fafafa;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:first-child) :global(.modal-scroll-region) :global(.modal-scroll-region-sticky) {\n background: #fafafa;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:last-child) :global(.modal-scroll-region) {\n background: #fff;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:last-child) :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fff;\n}\n\n:global(.react-modal-steps-form) :global(.modal-body-inner) {\n min-width: 0;\n max-width: 100%;\n overflow-x: hidden;\n}\n:global(.react-modal-steps-form) :global(.simplebar-content-wrapper),\n:global(.react-modal-steps-form) :global(.simplebar-content) {\n overflow-x: hidden !important;\n}\n:global(.react-modal-steps-form) :global(.kne-form-steps.ant-steps-horizontal) {\n padding-inline: 0 !important;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}","@charset \"UTF-8\";\n.kne-responsive-boundary {\n position: relative;\n}\n\n.kne-responsive-scroll {\n overflow: auto;\n}\n\n:root {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.kne-responsive-boundary {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.modal {\n --kne-modal-viewport-height: var(--kne-viewport-height, 100vh);\n --kne-modal-viewport-width: var(--kne-viewport-width, 100vw);\n --kne-modal-title-height: 48px;\n --kne-modal-footer-height: 58px;\n --kne-modal-viewport-gutter: 120px;\n --kne-modal-body-padding-vertical: 48px;\n --kne-modal-body-padding-horizontal: 48px;\n --kne-modal-body-min-height: 394px;\n --kne-modal-body-height: calc(var(--kne-modal-viewport-height) - var(--kne-modal-title-height) - var(--kne-modal-footer-height) - var(--kne-modal-viewport-gutter));\n --kne-modal-body-max-height: var(--kne-modal-body-height);\n --kne-modal-content-height: calc(var(--kne-modal-body-height) - var(--kne-modal-body-padding-vertical));\n --kne-modal-content-min-height: calc(var(--kne-modal-body-min-height) - var(--kne-modal-body-padding-vertical));\n --kne-modal-content-width: calc(100% - var(--kne-modal-body-padding-horizontal));\n}\n.modal.small {\n --kne-modal-body-min-height: 252px;\n}\n.modal.large .modal-body-inner {\n min-width: 1000px;\n}\n.modal.is-mobile {\n --kne-modal-viewport-gutter: 0px;\n --kne-modal-body-padding-vertical: 24px;\n --kne-modal-body-padding-horizontal: 24px;\n max-width: 100% !important;\n width: 100% !important;\n height: 100% !important;\n max-height: 100% !important;\n margin: 0 !important;\n top: 0 !important;\n padding-bottom: 0 !important;\n}\n.modal.is-mobile.large .modal-body-inner {\n min-width: 0;\n}\n.modal .modal-container {\n padding: 0;\n border-radius: 8px;\n /* 无 footer 时 body 贴底,需裁切子层直角才能露出底部圆角 */\n overflow: hidden;\n}\n.modal .modal-container.is-mobile {\n border-radius: 0 !important;\n height: 100% !important;\n max-height: 100% !important;\n overflow: hidden !important;\n box-sizing: border-box;\n padding: 0 !important;\n}\n\n.modal-antd-header,\n.modal-antd-footer {\n display: none;\n}\n\n.modal-antd-body {\n padding: 0;\n}\n.modal-antd-body.is-mobile {\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n}\n\n.modal-outer {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n.modal-outer.no-title {\n --kne-modal-title-height: 0px;\n /* 无 title 时关闭按钮仍按标题栏高度垂直居中(如 Tabs 顶栏) */\n --kne-modal-close-align-height: 48px;\n}\n.modal-outer.no-footer {\n --kne-modal-footer-height: 0px;\n}\n.modal-outer.no-padding {\n --kne-modal-body-padding-vertical: 0px;\n --kne-modal-body-padding-horizontal: 0px;\n}\n.modal-outer.is-mobile {\n width: 100%;\n height: var(--kne-modal-viewport-height);\n max-height: var(--kne-modal-viewport-height);\n min-height: var(--kne-modal-viewport-height);\n overflow: hidden;\n}\n.modal-outer.is-mobile .modal-title {\n flex: none;\n}\n.modal-outer.is-mobile .modal-body {\n flex: 1 1 auto;\n min-height: 0;\n}\n.modal-outer.is-mobile .modal-footer {\n flex: none;\n}\n\n.modal-title {\n flex: none;\n height: var(--kne-modal-title-height);\n display: flex;\n align-items: center;\n color: var(--font-color, rgba(0, 0, 0, 0.88));\n font-size: 16px;\n font-weight: 700;\n line-height: 1.2;\n padding: 0 48px 0 24px;\n margin-bottom: 0;\n box-sizing: border-box;\n}\n\n.modal-body {\n flex: 1 1 auto;\n min-height: 0;\n min-height: var(--kne-modal-body-min-height);\n max-height: var(--kne-modal-body-max-height);\n height: var(--kne-modal-body-height);\n box-sizing: border-box;\n}\n.modal-body.body-scroll-off {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n --kne-modal-content-height: 100%;\n --kne-modal-content-min-height: 0px;\n}\n.modal-body.body-scroll-off .modal-body-inner {\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.modal-body-inner {\n padding: calc(var(--kne-modal-body-padding-vertical) / 2) calc(var(--kne-modal-body-padding-horizontal) / 2);\n min-height: var(--kne-modal-content-height);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n.modal-body-inner.no-padding {\n padding: 0;\n}\n\n.modal-footer {\n flex: none;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px 24px;\n box-sizing: border-box;\n}\n.modal-footer.is-mobile {\n justify-content: center;\n border-top: 1px solid var(--bg-color-grey-3, #f0f0f0);\n}\n.modal-footer {\n /* footerButtons=[] + 宿主 footer(如 FormModal Submit/Cancel) */\n}\n.modal-footer.is-mobile.is-embedded-footer .modal-footer-extra {\n flex: 1 1 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n /* form-info ModalFooter:外层 Flex space-between → 移动端居中 */\n}\n.modal-footer.is-mobile.is-embedded-footer .modal-footer-extra > :global(.ant-flex) {\n width: auto;\n max-width: 100%;\n justify-content: center !important;\n}\n.modal-footer.is-mobile.is-embedded-footer .modal-footer-extra > :global(.ant-flex) > :global(div:first-child:empty) {\n display: none;\n}\n\n.modal-footer-extra {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.modal-footer-actions {\n flex: none;\n min-width: 0;\n}\n\n.modal-close {\n position: absolute;\n top: calc((var(--kne-modal-close-align-height, var(--kne-modal-title-height, 48px)) - 22px) / 2);\n inset-inline-end: 17px;\n z-index: 1010;\n padding: 0;\n color: var(--font-color-grey, rgba(0, 0, 0, 0.45));\n flex-shrink: 0;\n}\n.modal-close:global(.ant-btn.ant-btn-icon-only.ant-btn-text) {\n width: 22px;\n height: 22px;\n}\n\n.modal-host {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.modal-form-host :global(.ant-modal-body) :global(.react-form--inner) {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.modal-form-host :global(.ant-modal-body) :global(.react-form--inner) > :global(.ant-flex) {\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.modal-form-host .modal-outer {\n width: 100%;\n min-width: 0;\n}\n\n:global(.ant-modal-root) .modal-wrap:global(.ant-modal-wrap) {\n overflow: hidden;\n /* useModal 走 modal.info(),antd 会给内容包 .ant-modal-confirm-paragraph 并扣 12px 宽 */\n}\n:global(.ant-modal-root) .modal-wrap:global(.ant-modal-wrap) :global(.ant-modal-confirm-paragraph) {\n max-width: 100% !important;\n}\n\n/* 测试用:明显压低 body 可用高度,便于验证滚动与居中 */\n.modal:global(.kne-modal-height-limited) {\n --kne-modal-viewport-gutter: 360px;\n --kne-modal-body-max-height: 420px;\n --kne-modal-body-height: min(420px, calc(var(--kne-modal-viewport-height) - var(--kne-modal-title-height) - var(--kne-modal-footer-height) - var(--kne-modal-viewport-gutter)));\n --kne-modal-content-height: calc(var(--kne-modal-body-height) - var(--kne-modal-body-padding-vertical));\n}\n\n.modal-wrap-centered:global(.ant-modal-wrap) {\n display: flex;\n align-items: center !important;\n justify-content: center;\n min-height: var(--kne-viewport-height, 100vh);\n max-height: var(--kne-viewport-height, 100vh);\n padding: 16px;\n box-sizing: border-box;\n overflow: hidden;\n}\n.modal-wrap-centered:global(.ant-modal-wrap)::before {\n display: none !important;\n}\n.modal-wrap-centered:global(.ant-modal-wrap) :global(.ant-modal) {\n top: auto !important;\n display: block;\n padding-bottom: 0 !important;\n margin: 0 auto;\n vertical-align: initial;\n}\n.modal-wrap-centered:global(.ant-modal-wrap):global(.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n min-height: 100% !important;\n max-height: 100% !important;\n}\n.modal-wrap-centered:global(.ant-modal-wrap):global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n.modal-wrap-fullscreen:global(.ant-modal-wrap) {\n display: block;\n inset: 0 !important;\n width: var(--kne-viewport-width, 100vw) !important;\n height: var(--kne-viewport-height, 100vh) !important;\n max-height: var(--kne-viewport-height, 100vh) !important;\n padding: 0 !important;\n box-sizing: border-box;\n overflow: hidden !important;\n overscroll-behavior: none;\n touch-action: none;\n text-align: start;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap)::before {\n display: none !important;\n content: none !important;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap) :global(.ant-modal) {\n top: 0 !important;\n width: 100% !important;\n max-width: 100% !important;\n height: 100% !important;\n max-height: 100% !important;\n padding-bottom: 0 !important;\n margin: 0 !important;\n vertical-align: initial;\n touch-action: auto;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap):global(.kne-is-boundary) {\n position: absolute !important;\n width: 100% !important;\n height: 100% !important;\n min-height: 100% !important;\n max-height: 100% !important;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap):global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n.modal-mask-fullscreen:global(.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n}\n.modal-mask-fullscreen:global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n@container kne-responsive (max-width: 768px) {\n .modal-body-inner:not(.no-padding) {\n --kne-modal-body-padding-vertical: 24px;\n --kne-modal-body-padding-horizontal: 24px;\n }\n .modal-title {\n padding: 0 40px 0 16px;\n }\n .modal-footer {\n padding: 12px 16px 16px;\n border-top: 1px solid var(--bg-color-grey-3, #f0f0f0);\n }\n}","@charset \"UTF-8\";\n.kne-responsive-boundary {\n position: relative;\n}\n\n.kne-responsive-scroll {\n overflow: auto;\n}\n\n:root {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.kne-responsive-boundary {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.drawer :global(.ant-drawer-body) {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: 0;\n height: 100%;\n}\n.drawer {\n --kne-drawer-viewport-height: var(--kne-viewport-height, 100vh);\n --kne-drawer-viewport-width: var(--kne-viewport-width, 100vw);\n --kne-drawer-title-height: 48px;\n /* 12 top + ~32 btn + 24 bottom + 1 border-top;须与真实 footer 一致,避免 SimpleBar calc 顶裁底部 padding */\n --kne-drawer-footer-height: 69px;\n --kne-drawer-viewport-gutter: 0px;\n --kne-drawer-body-padding-vertical: 48px;\n --kne-drawer-body-padding-horizontal: 48px;\n --kne-drawer-body-min-height: 200px;\n --kne-drawer-body-height: calc(var(--kne-drawer-viewport-height) - var(--kne-drawer-title-height) - var(--kne-drawer-footer-height) - var(--kne-drawer-viewport-gutter));\n --kne-drawer-body-max-height: var(--kne-drawer-body-height);\n --kne-drawer-content-height: calc(var(--kne-drawer-body-height) - var(--kne-drawer-body-padding-vertical));\n --kne-drawer-content-min-height: calc(var(--kne-drawer-body-min-height) - var(--kne-drawer-body-padding-vertical));\n --kne-drawer-content-width: calc(100% - var(--kne-drawer-body-padding-horizontal));\n}\n.drawer.small {\n --kne-drawer-body-min-height: 180px;\n}\n.drawer.is-mobile {\n --kne-drawer-viewport-gutter: 0px;\n --kne-drawer-body-padding-vertical: 24px;\n --kne-drawer-body-padding-horizontal: 24px;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n.drawer.is-mobile.large .drawer-body-inner {\n min-width: 0;\n}\n.drawer.large .drawer-body-inner {\n min-width: 0;\n}\n.drawer:global(.ant-drawer-left) :global(.ant-drawer-content-wrapper), .drawer:global(.ant-drawer-right) :global(.ant-drawer-content-wrapper) {\n height: 100%;\n top: 0;\n bottom: 0;\n}\n.drawer:global(.ant-drawer-left) :global(.ant-drawer-content), .drawer:global(.ant-drawer-right) :global(.ant-drawer-content) {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.drawer-antd-header,\n.drawer-antd-footer {\n display: none;\n}\n\n.drawer-antd-body {\n padding: 0;\n flex: 1 1 auto;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.drawer-antd-body.is-mobile {\n height: 100%;\n max-height: 100%;\n}\n\n.drawer-outer {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n overflow: hidden;\n --kne-modal-content-height: var(--kne-drawer-content-height);\n --kne-modal-content-min-height: var(--kne-drawer-content-min-height);\n --kne-modal-close-align-height: var(--kne-drawer-close-align-height, 48px);\n}\n.drawer-outer :global(.modal-footer) {\n flex: none;\n}\n.drawer-outer.no-title {\n --kne-drawer-title-height: 0px;\n --kne-drawer-close-align-height: 48px;\n}\n.drawer-outer.no-footer {\n --kne-drawer-footer-height: 0px;\n}\n.drawer-outer.no-padding {\n --kne-drawer-body-padding-vertical: 0px;\n --kne-drawer-body-padding-horizontal: 0px;\n}\n.drawer-outer.is-mobile {\n width: 100%;\n height: var(--kne-drawer-viewport-height);\n max-height: var(--kne-drawer-viewport-height);\n min-height: var(--kne-drawer-viewport-height);\n overflow: hidden;\n}\n.drawer-outer.is-mobile .drawer-title {\n flex: none;\n}\n.drawer-outer.is-mobile .drawer-body {\n flex: 1 1 auto;\n min-height: 0;\n}\n.drawer-outer.is-mobile :global(.modal-footer) {\n flex: none;\n}\n\n.drawer-title {\n flex: none;\n height: var(--kne-drawer-title-height);\n display: flex;\n align-items: center;\n color: var(--font-color, rgba(0, 0, 0, 0.88));\n font-size: 16px;\n font-weight: 700;\n line-height: 1.2;\n padding: 0 48px 0 24px;\n margin-bottom: 0;\n box-sizing: border-box;\n border-bottom: 1px solid var(--bg-color-grey-3, #f0f0f0);\n}\n\n.drawer-body {\n flex: 1 1 auto;\n min-height: 0;\n min-height: var(--kne-drawer-body-min-height);\n max-height: var(--kne-drawer-body-max-height);\n height: var(--kne-drawer-body-height);\n box-sizing: border-box;\n}\n.drawer-body.body-scroll-off {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto;\n min-height: 0;\n height: auto;\n max-height: none;\n --kne-drawer-content-height: 100%;\n --kne-drawer-content-min-height: 0px;\n --kne-modal-content-height: 100%;\n --kne-modal-content-min-height: 0px;\n}\n.drawer-body.body-scroll-off .drawer-body-inner {\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.drawer-body-inner {\n padding: calc(var(--kne-drawer-body-padding-vertical) / 2) calc(var(--kne-drawer-body-padding-horizontal) / 2);\n min-height: var(--kne-drawer-content-height);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n.drawer-body-inner.no-padding {\n padding: 0;\n}\n\n.drawer-outer :global(.modal-footer) {\n border-top: 1px solid var(--bg-color-grey-3, #f0f0f0);\n}\n\n.drawer-outer.is-mobile :global(.modal-footer.is-mobile.is-embedded-footer) .modal-footer-extra {\n flex: 1 1 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.drawer-outer.is-mobile :global(.modal-footer.is-mobile.is-embedded-footer) .modal-footer-extra > :global(.ant-flex) {\n width: auto;\n max-width: 100%;\n justify-content: center !important;\n}\n.drawer-outer.is-mobile :global(.modal-footer.is-mobile.is-embedded-footer) .modal-footer-extra > :global(.ant-flex) > :global(div:first-child:empty) {\n display: none;\n}\n\n.drawer-close {\n position: absolute;\n top: calc((var(--kne-drawer-close-align-height, var(--kne-drawer-title-height, 48px)) - 22px) / 2);\n inset-inline-end: 17px;\n z-index: 1010;\n padding: 0;\n color: var(--font-color-grey, rgba(0, 0, 0, 0.45));\n flex-shrink: 0;\n}\n.drawer-close:global(.ant-btn.ant-btn-icon-only.ant-btn-text) {\n width: 22px;\n height: 22px;\n}\n\n.drawer-host {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.drawer-host-render :global(.ant-drawer-content-wrapper) :global(.react-form),\n.drawer-host-render :global(.ant-drawer-content-wrapper) :global(.react-form--inner) {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n width: 100%;\n}\n.drawer-host-render :global(.ant-drawer-content-wrapper) :global(.info-page) {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n}\n\n.drawer-panel-host {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.drawer-panel-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.drawer-form-host :global(.ant-drawer-body) :global(.react-form--inner) {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.drawer-form-host :global(.ant-drawer-body) :global(.react-form--inner) > :global(.ant-flex) {\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.drawer-form-host .drawer-panel-host,\n.drawer-form-host .drawer-panel-body,\n.drawer-form-host .drawer-outer {\n width: 100%;\n min-width: 0;\n}\n\n.drawer-wrapper-mobile:global(.ant-drawer-content-wrapper) {\n width: var(--kne-viewport-width, 100vw) !important;\n max-width: 100%;\n}\n\n.drawer-wrapper-mobile-vertical:global(.ant-drawer-content-wrapper) {\n height: var(--kne-viewport-height, 100vh) !important;\n max-height: 100%;\n}\n\n.drawer-root-mobile:global(.ant-drawer) :global(.ant-drawer-content) {\n width: 100%;\n max-width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.drawer-root-mobile:global(.ant-drawer):global(.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n}\n.drawer-root-mobile:global(.ant-drawer):global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n:global(.ant-drawer-mask.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n}\n\n:global(.ant-drawer-mask.kne-is-viewport) {\n position: fixed !important;\n inset: 0 !important;\n}\n\n@container kne-responsive (max-width: 768px) {\n .drawer {\n /* 移动端 footer: 12 + ~32 + 16 + 1 border */\n --kne-drawer-footer-height: 61px;\n }\n .drawer-body-inner:not(.no-padding) {\n --kne-drawer-body-padding-vertical: 24px;\n --kne-drawer-body-padding-horizontal: 24px;\n }\n .drawer-title {\n padding: 0 40px 0 16px;\n }\n .drawer-outer :global(.modal-footer.is-mobile) {\n padding: 12px 16px 16px;\n }\n}",".kne-responsive-boundary {\n position: relative;\n}\n\n.kne-responsive-scroll {\n overflow: auto;\n}\n\n:root {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.kne-responsive-boundary {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.confirm-modal-wrap :global .ant-modal-confirm .ant-modal-confirm-body .ant-modal-confirm-title + .ant-modal-confirm-content {\n max-width: 100% !important;\n}\n.confirm-modal-wrap :global .ant-modal-confirm-body-wrapper {\n min-height: 96px;\n display: flex;\n flex-direction: column;\n}\n.confirm-modal-wrap :global .ant-modal-content {\n border-radius: 8px;\n max-width: 400px;\n box-sizing: border-box;\n}\n.confirm-modal-wrap :global .ant-modal-confirm-btns {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n flex: 1;\n gap: 8px;\n}\n.confirm-modal-wrap.is-mobile {\n --kne-confirm-modal-mobile-max-width: 400px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-content {\n width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n max-width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-body {\n padding: 20px 20px 12px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-title {\n margin-bottom: 16px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-btns {\n flex-direction: row;\n justify-content: stretch;\n align-items: stretch;\n width: 100%;\n margin-top: 16px;\n gap: 12px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-btns .ant-btn {\n flex: 1;\n width: auto;\n margin-inline-start: 0 !important;\n height: 40px;\n}\n.confirm-modal-wrap.is-danger {\n --color-warning: #d14343;\n}\n.confirm-modal-wrap.is-danger :global .ant-popover-buttons .ant-btn-primary,\n.confirm-modal-wrap.is-danger :global .ant-modal-confirm-btns .ant-btn-primary {\n background: var(--color-warning);\n border-color: var(--color-warning);\n}\n.confirm-modal-wrap.is-danger .title-icon {\n color: var(--color-warning);\n}\n\n.titleRow,\n.contentRow {\n display: flex;\n align-items: flex-start;\n gap: 6px;\n}\n\n.titleIcon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n margin-top: 0;\n line-height: 1;\n}\n\n.title-icon {\n font-size: 16px;\n}\n.title-icon-confirm {\n color: #1677ff;\n}\n.title-icon-info {\n color: #1677ff;\n}\n.title-icon-success {\n color: #52c41a;\n}\n.title-icon-warning {\n color: #faad14;\n}\n.title-icon-error {\n color: #ff4d4f;\n}\n\n.titleText {\n flex: 1;\n min-width: 0;\n color: #222222;\n font-weight: bold;\n font-size: 14px;\n line-height: 20px;\n}\n\n.contentText {\n flex: 1;\n min-width: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n line-height: 20px;\n}\n\n.contentRow.has-title.has-icon .contentText {\n padding-left: 26px;\n}\n\n.is-mobile-block.contentRow.has-title.has-icon .contentText {\n padding-left: 32px;\n}\n\n.is-mobile-block.titleRow {\n justify-content: center;\n align-items: center;\n margin-bottom: 4px;\n gap: 8px;\n}\n.is-mobile-block.contentRow {\n gap: 8px;\n}\n.is-mobile-block.contentRow.has-title .contentText {\n text-align: center;\n}\n.is-mobile-block.contentRow.has-title.has-icon .contentText {\n padding-left: 0;\n}\n.is-mobile-block .titleText {\n flex: 0 1 auto;\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n}\n.is-mobile-block .titleIcon {\n width: 24px;\n height: 24px;\n margin-top: 0;\n}\n.is-mobile-block .title-icon {\n font-size: 24px;\n}\n.is-mobile-block .contentText {\n font-size: 14px;\n line-height: 22px;\n}\n\n@container kne-responsive (max-width: 768px) {\n .titleRow,\n .contentRow {\n gap: 8px;\n }\n .confirm-modal-wrap {\n --kne-confirm-modal-mobile-max-width: 400px;\n }\n .confirm-modal-wrap :global .ant-modal-content {\n width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n max-width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n }\n .confirm-modal-wrap :global .ant-modal-confirm-body {\n padding: 20px 20px 12px;\n }\n .confirm-modal-wrap :global .ant-modal-confirm-title {\n margin-bottom: 16px;\n }\n .confirm-modal-wrap :global .ant-modal-confirm-btns {\n flex-direction: row;\n justify-content: stretch;\n align-items: stretch;\n width: 100%;\n margin-top: 16px;\n gap: 12px;\n }\n .confirm-modal-wrap :global .ant-modal-confirm-btns .ant-btn {\n flex: 1;\n width: auto;\n margin-inline-start: 0 !important;\n height: 40px;\n }\n .titleRow {\n justify-content: center;\n align-items: center;\n margin-bottom: 4px;\n }\n .contentRow.has-title .contentText {\n text-align: center;\n }\n .contentRow.has-title.has-icon .contentText {\n padding-left: 0;\n }\n .titleText {\n flex: 0 1 auto;\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n }\n .titleIcon {\n width: 24px;\n height: 24px;\n margin-top: 0;\n }\n .title-icon {\n font-size: 24px;\n }\n}"]}
1
+ {"version":3,"sources":["layouts.module.scss","style.module.scss","drawer.module.scss","confirmModal.module.scss"],"names":[],"mappings":"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AAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,wBAAwB;EACxB,oBAAoB;EACpB,WAAW;EACX,gBAAgB;EAChB,SAAS;AACX;AACA;EACE,OAAO;EACP,WAAW;EACX,iCAAiC;EACjC,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;;EAEE,gCAAgC;EAChC,kCAAkC;AACpC;AACA;EACE,2BAA2B;AAC7B;;AAEA;;EAEE,aAAa;EACb,uBAAuB;EACvB,QAAQ;AACV;;AAEA;EACE,cAAc;EACd,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,cAAc;AAChB;;AAEA;EACE,eAAe;AACjB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;;AAEA;EACE,OAAO;EACP,YAAY;EACZ,cAAc;EACd,iBAAiB;EACjB,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,OAAO;EACP,YAAY;EACZ,0BAA0B;EAC1B,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,uBAAuB;EACvB,mBAAmB;EACnB,kBAAkB;EAClB,QAAQ;AACV;AACA;EACE,QAAQ;AACV;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;EACd,eAAe;EACf,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE;;IAEE,QAAQ;EACV;EACA;IACE,2CAA2C;EAC7C;EACA;IACE,8FAA8F;IAC9F,kGAAkG;EACpG;EACA;IACE,uBAAuB;EACzB;EACA;IACE,mBAAmB;EACrB;EACA;IACE,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;IACpB,WAAW;IACX,gBAAgB;IAChB,SAAS;EACX;EACA;IACE,OAAO;IACP,WAAW;IACX,iCAAiC;IACjC,YAAY;EACd;EACA;IACE,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;EACpB;EACA;IACE,kBAAkB;EACpB;EACA;IACE,eAAe;EACjB;EACA;IACE,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,kBAAkB;EACpB;EACA;IACE,WAAW;IACX,YAAY;IACZ,aAAa;EACf;EACA;IACE,eAAe;EACjB;AACF","file":"index.css","sourcesContent":[".modal-tabs-layout:global(.ant-tabs) {\n height: var(--kne-modal-content-height);\n max-height: var(--kne-modal-content-height);\n flex: 1 1 0%;\n min-height: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n box-sizing: border-box;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) {\n flex: none;\n height: var(--kne-modal-close-align-height, 48px);\n margin: 0;\n padding: 0 86px 0 24px;\n align-items: center;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav)::before {\n border-bottom-color: #f0f0f0;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) :global(.ant-tabs-nav-wrap) {\n align-self: stretch;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) :global(.ant-tabs-tab) {\n margin: 0 28px 0 0;\n padding: 0;\n font-weight: 600;\n display: inline-flex;\n align-items: center;\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-nav) :global(.ant-tabs-tab) :global(.ant-tabs-tab-btn) {\n padding: 0;\n line-height: var(--kne-modal-close-align-height, 48px);\n}\n.modal-tabs-layout:global(.ant-tabs) > :global(.ant-tabs-body-holder) {\n flex: 1 1 0% !important;\n height: 0 !important;\n min-height: 0;\n overflow: hidden;\n}\n.modal-tabs-layout:global(.ant-tabs) :global(.ant-tabs-body) {\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n.modal-tabs-layout:global(.ant-tabs) :global(.ant-tabs-content) {\n height: 100%;\n min-height: 0;\n overflow: hidden;\n outline: none;\n}\n.modal-tabs-layout:global(.ant-tabs) :global(.ant-tabs-content-hidden) {\n display: none;\n}\n\n.modal-columns-layout {\n display: flex;\n flex-direction: row;\n height: 100%;\n max-height: 100%;\n min-height: 0;\n width: 100%;\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.modal-columns-layout__col {\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.modal-columns-layout__col:not(:first-child) {\n border-left: 1px solid #f0f0f0;\n}\n\n.modal-columns-layout__col:first-child :global(.modal-scroll-region) {\n background: #fafafa;\n}\n.modal-columns-layout__col:first-child :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fafafa;\n}\n.modal-columns-layout__col:first-child :global(.modal-scroll-region) :global(.modal-scroll-region-sticky) {\n background: #fafafa;\n}\n\n.modal-columns-layout__col:last-child :global(.modal-scroll-region) {\n background: #fff;\n}\n.modal-columns-layout__col:last-child :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fff;\n}\n\n.modal-columns-layout__col:only-child :global(.modal-scroll-region) {\n background: #fff;\n}\n.modal-columns-layout__col:only-child :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fff;\n}\n\n.modal-scroll-region {\n height: 100%;\n max-height: 100%;\n min-height: 0;\n box-sizing: border-box;\n}\n.modal-scroll-region :global(.simplebar-wrapper),\n.modal-scroll-region :global(.simplebar-mask),\n.modal-scroll-region :global(.simplebar-offset) {\n height: 100%;\n min-height: 0;\n}\n.modal-scroll-region :global(.simplebar-content-wrapper) {\n height: 100%;\n min-height: 0;\n}\n\n.modal-scroll-region-inner {\n box-sizing: border-box;\n min-height: 100%;\n}\n\n.modal-scroll-region.is-inset .modal-scroll-region-inner {\n padding: 16px 20px;\n}\n\n:global(.modal-scroll-region-sticky) {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: 12px 16px 10px;\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n}\n\n:global(.react-modal-splitter.ant-splitter) {\n height: 100% !important;\n max-height: 100%;\n min-height: 0;\n overflow: hidden;\n box-sizing: border-box;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel) {\n min-height: 0;\n overflow: hidden;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:first-child) :global(.modal-scroll-region) {\n background: #fafafa;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:first-child) :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fafafa;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:first-child) :global(.modal-scroll-region) :global(.modal-scroll-region-sticky) {\n background: #fafafa;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:last-child) :global(.modal-scroll-region) {\n background: #fff;\n}\n:global(.react-modal-splitter.ant-splitter) :global(.ant-splitter-panel:last-child) :global(.modal-scroll-region) :global(.simplebar-content) {\n background: #fff;\n}\n\n:global(.react-modal-steps-form) :global(.modal-body-inner) {\n min-width: 0;\n max-width: 100%;\n overflow-x: hidden;\n}\n:global(.react-modal-steps-form) :global(.simplebar-content-wrapper),\n:global(.react-modal-steps-form) :global(.simplebar-content) {\n overflow-x: hidden !important;\n}\n:global(.react-modal-steps-form) :global(.kne-form-steps.ant-steps-horizontal) {\n padding-inline: 0 !important;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}","@charset \"UTF-8\";\n.kne-responsive-boundary {\n position: relative;\n}\n\n.kne-responsive-scroll {\n overflow: auto;\n}\n\n:root {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.kne-responsive-boundary {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.modal {\n --kne-modal-viewport-height: var(--kne-viewport-height, 100vh);\n --kne-modal-viewport-width: var(--kne-viewport-width, 100vw);\n --kne-modal-title-height: 48px;\n --kne-modal-footer-height: 58px;\n --kne-modal-viewport-gutter: 120px;\n --kne-modal-body-padding-vertical: 48px;\n --kne-modal-body-padding-horizontal: 48px;\n --kne-modal-body-min-height: 394px;\n --kne-modal-body-height: calc(var(--kne-modal-viewport-height) - var(--kne-modal-title-height) - var(--kne-modal-footer-height) - var(--kne-modal-viewport-gutter));\n --kne-modal-body-max-height: var(--kne-modal-body-height);\n --kne-modal-content-height: calc(var(--kne-modal-body-height) - var(--kne-modal-body-padding-vertical));\n --kne-modal-content-min-height: calc(var(--kne-modal-body-min-height) - var(--kne-modal-body-padding-vertical));\n --kne-modal-content-width: calc(100% - var(--kne-modal-body-padding-horizontal));\n}\n.modal.small {\n --kne-modal-body-min-height: 252px;\n}\n.modal.large .modal-body-inner {\n min-width: 1000px;\n}\n.modal.is-mobile {\n --kne-modal-viewport-gutter: 0px;\n --kne-modal-body-padding-vertical: 24px;\n --kne-modal-body-padding-horizontal: 24px;\n max-width: 100% !important;\n width: 100% !important;\n height: 100% !important;\n max-height: 100% !important;\n margin: 0 !important;\n top: 0 !important;\n padding-bottom: 0 !important;\n}\n.modal.is-mobile.large .modal-body-inner {\n min-width: 0;\n}\n.modal .modal-container {\n padding: 0;\n border-radius: 8px;\n /* 无 footer 时 body 贴底,需裁切子层直角才能露出底部圆角 */\n overflow: hidden;\n}\n.modal .modal-container.is-mobile {\n border-radius: 0 !important;\n height: 100% !important;\n max-height: 100% !important;\n overflow: hidden !important;\n box-sizing: border-box;\n padding: 0 !important;\n}\n\n.modal-antd-header,\n.modal-antd-footer {\n display: none;\n}\n\n.modal-antd-body {\n padding: 0;\n}\n.modal-antd-body.is-mobile {\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n}\n\n.modal-outer {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n.modal-outer.no-title {\n --kne-modal-title-height: 0px;\n /* 无 title 时关闭按钮仍按标题栏高度垂直居中(如 Tabs 顶栏) */\n --kne-modal-close-align-height: 48px;\n}\n.modal-outer.no-footer {\n --kne-modal-footer-height: 0px;\n}\n.modal-outer.no-padding {\n --kne-modal-body-padding-vertical: 0px;\n --kne-modal-body-padding-horizontal: 0px;\n}\n.modal-outer.is-mobile {\n width: 100%;\n height: var(--kne-modal-viewport-height);\n max-height: var(--kne-modal-viewport-height);\n min-height: var(--kne-modal-viewport-height);\n overflow: hidden;\n}\n.modal-outer.is-mobile .modal-title {\n flex: none;\n}\n.modal-outer.is-mobile .modal-body {\n flex: 1 1 auto;\n min-height: 0;\n height: auto !important;\n max-height: none !important;\n}\n.modal-outer.is-mobile .modal-footer {\n flex: none;\n margin-top: auto;\n}\n\n.modal-title {\n flex: none;\n height: var(--kne-modal-title-height);\n display: flex;\n align-items: center;\n color: var(--font-color, rgba(0, 0, 0, 0.88));\n font-size: 16px;\n font-weight: 700;\n line-height: 1.2;\n padding: 0 48px 0 24px;\n margin-bottom: 0;\n box-sizing: border-box;\n}\n\n.modal-body {\n flex: 1 1 auto;\n min-height: 0;\n min-height: var(--kne-modal-body-min-height);\n max-height: var(--kne-modal-body-max-height);\n height: var(--kne-modal-body-height);\n box-sizing: border-box;\n}\n.modal-body.body-scroll-off {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n --kne-modal-content-height: 100%;\n --kne-modal-content-min-height: 0px;\n}\n.modal-body.body-scroll-off .modal-body-inner {\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.modal-body-inner {\n padding: calc(var(--kne-modal-body-padding-vertical) / 2) calc(var(--kne-modal-body-padding-horizontal) / 2);\n min-height: var(--kne-modal-content-height);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n.modal-body-inner.no-padding {\n padding: 0;\n}\n\n.modal-footer {\n flex: none;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px 24px;\n box-sizing: border-box;\n}\n.modal-footer.is-mobile {\n justify-content: center;\n border-top: 1px solid var(--bg-color-grey-3, #f0f0f0);\n}\n.modal-footer {\n /* footerButtons=[] + 宿主 footer(如 FormModal Submit/Cancel) */\n}\n.modal-footer.is-mobile.is-embedded-footer .modal-footer-extra {\n flex: 1 1 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n /* form-info ModalFooter:外层 Flex space-between → 移动端居中 */\n}\n.modal-footer.is-mobile.is-embedded-footer .modal-footer-extra > :global(.ant-flex) {\n width: auto;\n max-width: 100%;\n justify-content: center !important;\n}\n.modal-footer.is-mobile.is-embedded-footer .modal-footer-extra > :global(.ant-flex) > :global(div:first-child:empty) {\n display: none;\n}\n\n.modal-footer-extra {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.modal-footer-actions {\n flex: none;\n min-width: 0;\n}\n\n.modal-close {\n position: absolute;\n top: calc((var(--kne-modal-close-align-height, var(--kne-modal-title-height, 48px)) - 22px) / 2);\n inset-inline-end: 17px;\n z-index: 1010;\n padding: 0;\n color: var(--font-color-grey, rgba(0, 0, 0, 0.45));\n flex-shrink: 0;\n}\n.modal-close:global(.ant-btn.ant-btn-icon-only.ant-btn-text) {\n width: 22px;\n height: 22px;\n}\n\n.modal-host {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.modal-form-host :global(.ant-modal-body) :global(.react-form--inner) {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.modal-form-host :global(.ant-modal-body) :global(.react-form--inner) > :global(.ant-flex) {\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.modal-form-host .modal-outer {\n width: 100%;\n min-width: 0;\n}\n\n:global(.ant-modal-root) .modal-wrap:global(.ant-modal-wrap) {\n overflow: hidden;\n /* useModal 走 modal.info(),antd 会给内容包 .ant-modal-confirm-paragraph 并扣 12px 宽 */\n}\n:global(.ant-modal-root) .modal-wrap:global(.ant-modal-wrap) :global(.ant-modal-confirm-paragraph) {\n max-width: 100% !important;\n}\n\n/* 测试用:明显压低 body 可用高度,便于验证滚动与居中 */\n.modal:global(.kne-modal-height-limited) {\n --kne-modal-viewport-gutter: 360px;\n --kne-modal-body-max-height: 420px;\n --kne-modal-body-height: min(420px, calc(var(--kne-modal-viewport-height) - var(--kne-modal-title-height) - var(--kne-modal-footer-height) - var(--kne-modal-viewport-gutter)));\n --kne-modal-content-height: calc(var(--kne-modal-body-height) - var(--kne-modal-body-padding-vertical));\n}\n\n.modal-wrap-centered:global(.ant-modal-wrap) {\n display: flex;\n align-items: center !important;\n justify-content: center;\n min-height: var(--kne-viewport-height, 100vh);\n max-height: var(--kne-viewport-height, 100vh);\n padding: 16px;\n box-sizing: border-box;\n overflow: hidden;\n}\n.modal-wrap-centered:global(.ant-modal-wrap)::before {\n display: none !important;\n}\n.modal-wrap-centered:global(.ant-modal-wrap) :global(.ant-modal) {\n top: auto !important;\n display: block;\n padding-bottom: 0 !important;\n margin: 0 auto;\n vertical-align: initial;\n}\n.modal-wrap-centered:global(.ant-modal-wrap):global(.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n min-height: 100% !important;\n max-height: 100% !important;\n}\n.modal-wrap-centered:global(.ant-modal-wrap):global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n.modal-wrap-fullscreen:global(.ant-modal-wrap) {\n display: block;\n inset: 0 !important;\n width: var(--kne-viewport-width, 100vw) !important;\n height: var(--kne-viewport-height, 100vh) !important;\n max-height: var(--kne-viewport-height, 100vh) !important;\n padding: 0 !important;\n box-sizing: border-box;\n overflow: hidden !important;\n overscroll-behavior: none;\n touch-action: none;\n text-align: start;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap)::before {\n display: none !important;\n content: none !important;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap) :global(.ant-modal) {\n top: 0 !important;\n width: 100% !important;\n max-width: 100% !important;\n height: 100% !important;\n max-height: 100% !important;\n padding-bottom: 0 !important;\n margin: 0 !important;\n vertical-align: initial;\n touch-action: auto;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap):global(.kne-is-boundary) {\n position: absolute !important;\n width: 100% !important;\n height: 100% !important;\n min-height: 100% !important;\n max-height: 100% !important;\n}\n.modal-wrap-fullscreen:global(.ant-modal-wrap):global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n.modal-mask-fullscreen:global(.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n}\n.modal-mask-fullscreen:global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n@container kne-responsive (max-width: 768px) {\n .modal-body-inner:not(.no-padding) {\n --kne-modal-body-padding-vertical: 24px;\n --kne-modal-body-padding-horizontal: 24px;\n }\n .modal-title {\n padding: 0 40px 0 16px;\n }\n .modal-footer {\n padding: 12px 16px 16px;\n border-top: 1px solid var(--bg-color-grey-3, #f0f0f0);\n }\n}","@charset \"UTF-8\";\n.kne-responsive-boundary {\n position: relative;\n}\n\n.kne-responsive-scroll {\n overflow: auto;\n}\n\n:root {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.kne-responsive-boundary {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.drawer :global(.ant-drawer-body) {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: 0;\n height: 100%;\n}\n.drawer {\n --kne-drawer-viewport-height: var(--kne-viewport-height, 100vh);\n --kne-drawer-viewport-width: var(--kne-viewport-width, 100vw);\n --kne-drawer-title-height: 48px;\n /* 12 top + ~32 btn + 24 bottom + 1 border-top;须与真实 footer 一致,避免 SimpleBar calc 顶裁底部 padding */\n --kne-drawer-footer-height: 69px;\n --kne-drawer-viewport-gutter: 0px;\n --kne-drawer-body-padding-vertical: 48px;\n --kne-drawer-body-padding-horizontal: 48px;\n --kne-drawer-body-min-height: 200px;\n --kne-drawer-body-height: calc(var(--kne-drawer-viewport-height) - var(--kne-drawer-title-height) - var(--kne-drawer-footer-height) - var(--kne-drawer-viewport-gutter));\n --kne-drawer-body-max-height: var(--kne-drawer-body-height);\n --kne-drawer-content-height: calc(var(--kne-drawer-body-height) - var(--kne-drawer-body-padding-vertical));\n --kne-drawer-content-min-height: calc(var(--kne-drawer-body-min-height) - var(--kne-drawer-body-padding-vertical));\n --kne-drawer-content-width: calc(100% - var(--kne-drawer-body-padding-horizontal));\n}\n.drawer.small {\n --kne-drawer-body-min-height: 180px;\n}\n.drawer.is-mobile {\n --kne-drawer-viewport-gutter: 0px;\n --kne-drawer-body-padding-vertical: 24px;\n --kne-drawer-body-padding-horizontal: 24px;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n.drawer.is-mobile.large .drawer-body-inner {\n min-width: 0;\n}\n.drawer.large .drawer-body-inner {\n min-width: 0;\n}\n.drawer:global(.ant-drawer-left) :global(.ant-drawer-content-wrapper), .drawer:global(.ant-drawer-right) :global(.ant-drawer-content-wrapper) {\n height: 100%;\n top: 0;\n bottom: 0;\n}\n.drawer:global(.ant-drawer-left) :global(.ant-drawer-content), .drawer:global(.ant-drawer-right) :global(.ant-drawer-content) {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.drawer-antd-header,\n.drawer-antd-footer {\n display: none;\n}\n\n.drawer-antd-body {\n padding: 0;\n flex: 1 1 auto;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.drawer-antd-body.is-mobile {\n height: 100%;\n max-height: 100%;\n}\n\n.drawer-outer {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n overflow: hidden;\n --kne-modal-content-height: var(--kne-drawer-content-height);\n --kne-modal-content-min-height: var(--kne-drawer-content-min-height);\n --kne-modal-close-align-height: var(--kne-drawer-close-align-height, 48px);\n}\n.drawer-outer :global(.modal-footer) {\n flex: none;\n}\n.drawer-outer.no-title {\n --kne-drawer-title-height: 0px;\n --kne-drawer-close-align-height: 48px;\n}\n.drawer-outer.no-footer {\n --kne-drawer-footer-height: 0px;\n}\n.drawer-outer.no-padding {\n --kne-drawer-body-padding-vertical: 0px;\n --kne-drawer-body-padding-horizontal: 0px;\n}\n.drawer-outer.is-mobile {\n width: 100%;\n height: var(--kne-drawer-viewport-height);\n max-height: var(--kne-drawer-viewport-height);\n min-height: var(--kne-drawer-viewport-height);\n overflow: hidden;\n}\n.drawer-outer.is-mobile .drawer-title {\n flex: none;\n}\n.drawer-outer.is-mobile .drawer-body {\n flex: 1 1 auto;\n min-height: 0;\n}\n.drawer-outer.is-mobile :global(.modal-footer) {\n flex: none;\n}\n\n.drawer-title {\n flex: none;\n height: var(--kne-drawer-title-height);\n display: flex;\n align-items: center;\n color: var(--font-color, rgba(0, 0, 0, 0.88));\n font-size: 16px;\n font-weight: 700;\n line-height: 1.2;\n padding: 0 48px 0 24px;\n margin-bottom: 0;\n box-sizing: border-box;\n border-bottom: 1px solid var(--bg-color-grey-3, #f0f0f0);\n}\n\n.drawer-body {\n flex: 1 1 auto;\n min-height: 0;\n min-height: var(--kne-drawer-body-min-height);\n max-height: var(--kne-drawer-body-max-height);\n height: var(--kne-drawer-body-height);\n box-sizing: border-box;\n}\n.drawer-body.body-scroll-off {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto;\n min-height: 0;\n height: auto;\n max-height: none;\n --kne-drawer-content-height: 100%;\n --kne-drawer-content-min-height: 0px;\n --kne-modal-content-height: 100%;\n --kne-modal-content-min-height: 0px;\n}\n.drawer-body.body-scroll-off .drawer-body-inner {\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.drawer-body-inner {\n padding: calc(var(--kne-drawer-body-padding-vertical) / 2) calc(var(--kne-drawer-body-padding-horizontal) / 2);\n min-height: var(--kne-drawer-content-height);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n.drawer-body-inner.no-padding {\n padding: 0;\n}\n\n.drawer-outer :global(.modal-footer) {\n border-top: 1px solid var(--bg-color-grey-3, #f0f0f0);\n}\n\n.drawer-outer.is-mobile :global(.modal-footer.is-mobile.is-embedded-footer) .modal-footer-extra {\n flex: 1 1 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.drawer-outer.is-mobile :global(.modal-footer.is-mobile.is-embedded-footer) .modal-footer-extra > :global(.ant-flex) {\n width: auto;\n max-width: 100%;\n justify-content: center !important;\n}\n.drawer-outer.is-mobile :global(.modal-footer.is-mobile.is-embedded-footer) .modal-footer-extra > :global(.ant-flex) > :global(div:first-child:empty) {\n display: none;\n}\n\n.drawer-close {\n position: absolute;\n top: calc((var(--kne-drawer-close-align-height, var(--kne-drawer-title-height, 48px)) - 22px) / 2);\n inset-inline-end: 17px;\n z-index: 1010;\n padding: 0;\n color: var(--font-color-grey, rgba(0, 0, 0, 0.45));\n flex-shrink: 0;\n}\n.drawer-close:global(.ant-btn.ant-btn-icon-only.ant-btn-text) {\n width: 22px;\n height: 22px;\n}\n\n.drawer-host {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.drawer-host-render :global(.ant-drawer-content-wrapper) :global(.react-form),\n.drawer-host-render :global(.ant-drawer-content-wrapper) :global(.react-form--inner) {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n width: 100%;\n}\n.drawer-host-render :global(.ant-drawer-content-wrapper) :global(.info-page) {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n height: 100%;\n}\n\n.drawer-panel-host {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.drawer-panel-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.drawer-form-host :global(.ant-drawer-body) :global(.react-form--inner) {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.drawer-form-host :global(.ant-drawer-body) :global(.react-form--inner) > :global(.ant-flex) {\n flex: 1 1 auto;\n min-height: 0;\n width: 100%;\n}\n.drawer-form-host .drawer-panel-host,\n.drawer-form-host .drawer-panel-body,\n.drawer-form-host .drawer-outer {\n width: 100%;\n min-width: 0;\n}\n\n.drawer-wrapper-mobile:global(.ant-drawer-content-wrapper) {\n width: var(--kne-viewport-width, 100vw) !important;\n max-width: 100%;\n}\n\n.drawer-wrapper-mobile-vertical:global(.ant-drawer-content-wrapper) {\n height: var(--kne-viewport-height, 100vh) !important;\n max-height: 100%;\n}\n\n.drawer-root-mobile:global(.ant-drawer) {\n display: block;\n inset: 0 !important;\n width: var(--kne-viewport-width, 100vw) !important;\n height: var(--kne-viewport-height, 100vh) !important;\n max-height: var(--kne-viewport-height, 100vh) !important;\n box-sizing: border-box;\n overflow: hidden !important;\n overscroll-behavior: none;\n touch-action: none;\n}\n.drawer-root-mobile:global(.ant-drawer) :global(.ant-drawer-content-wrapper),\n.drawer-root-mobile:global(.ant-drawer) :global(.ant-drawer-content) {\n touch-action: auto;\n}\n.drawer-root-mobile:global(.ant-drawer) :global(.ant-drawer-content) {\n width: 100%;\n max-width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.drawer-root-mobile:global(.ant-drawer):global(.kne-is-boundary) {\n position: absolute !important;\n width: 100% !important;\n height: 100% !important;\n min-height: 100% !important;\n max-height: 100% !important;\n}\n.drawer-root-mobile:global(.ant-drawer):global(.kne-is-viewport) {\n position: fixed !important;\n}\n\n:global(.ant-drawer-mask.kne-is-boundary) {\n position: absolute !important;\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n}\n\n:global(.ant-drawer-mask.kne-is-viewport) {\n position: fixed !important;\n inset: 0 !important;\n}\n\n@container kne-responsive (max-width: 768px) {\n .drawer {\n /* 移动端 footer: 12 + ~32 + 16 + 1 border */\n --kne-drawer-footer-height: 61px;\n }\n .drawer-body-inner:not(.no-padding) {\n --kne-drawer-body-padding-vertical: 24px;\n --kne-drawer-body-padding-horizontal: 24px;\n }\n .drawer-title {\n padding: 0 40px 0 16px;\n }\n .drawer-outer :global(.modal-footer.is-mobile) {\n padding: 12px 16px 16px;\n }\n}",".kne-responsive-boundary {\n position: relative;\n}\n\n.kne-responsive-scroll {\n overflow: auto;\n}\n\n:root {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.kne-responsive-boundary {\n --kne-viewport-width: 100vw;\n --kne-viewport-height: 100dvh;\n --kne-viewport-inline-size: 100vw;\n --kne-viewport-block-size: 100dvh;\n}\n\n.confirm-modal-wrap :global .ant-modal-confirm .ant-modal-confirm-body .ant-modal-confirm-title + .ant-modal-confirm-content {\n max-width: 100% !important;\n}\n.confirm-modal-wrap :global .ant-modal-confirm-body-wrapper {\n min-height: 96px;\n display: flex;\n flex-direction: column;\n}\n.confirm-modal-wrap :global .ant-modal-content {\n border-radius: 8px;\n max-width: 400px;\n box-sizing: border-box;\n}\n.confirm-modal-wrap :global .ant-modal-confirm-btns {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n flex: 1;\n gap: 8px;\n}\n.confirm-modal-wrap.is-mobile {\n --kne-confirm-modal-mobile-max-width: 400px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-content {\n width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n max-width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-body {\n padding: 20px 20px 12px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-title {\n margin-bottom: 16px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-btns {\n flex-direction: row;\n justify-content: stretch;\n align-items: stretch;\n width: 100%;\n margin-top: 16px;\n gap: 12px;\n}\n.confirm-modal-wrap.is-mobile :global .ant-modal-confirm-btns .ant-btn {\n flex: 1;\n width: auto;\n margin-inline-start: 0 !important;\n height: 40px;\n}\n.confirm-modal-wrap.is-danger {\n --color-warning: #d14343;\n}\n.confirm-modal-wrap.is-danger :global .ant-popover-buttons .ant-btn-primary,\n.confirm-modal-wrap.is-danger :global .ant-modal-confirm-btns .ant-btn-primary {\n background: var(--color-warning);\n border-color: var(--color-warning);\n}\n.confirm-modal-wrap.is-danger .title-icon {\n color: var(--color-warning);\n}\n\n.titleRow,\n.contentRow {\n display: flex;\n align-items: flex-start;\n gap: 6px;\n}\n\n.titleIcon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n margin-top: 0;\n line-height: 1;\n}\n\n.title-icon {\n font-size: 16px;\n}\n.title-icon-confirm {\n color: #1677ff;\n}\n.title-icon-info {\n color: #1677ff;\n}\n.title-icon-success {\n color: #52c41a;\n}\n.title-icon-warning {\n color: #faad14;\n}\n.title-icon-error {\n color: #ff4d4f;\n}\n\n.titleText {\n flex: 1;\n min-width: 0;\n color: #222222;\n font-weight: bold;\n font-size: 14px;\n line-height: 20px;\n}\n\n.contentText {\n flex: 1;\n min-width: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n line-height: 20px;\n}\n\n.contentRow.has-title.has-icon .contentText {\n padding-left: 26px;\n}\n\n.is-mobile-block.contentRow.has-title.has-icon .contentText {\n padding-left: 32px;\n}\n\n.is-mobile-block.titleRow {\n justify-content: center;\n align-items: center;\n margin-bottom: 4px;\n gap: 8px;\n}\n.is-mobile-block.contentRow {\n gap: 8px;\n}\n.is-mobile-block.contentRow.has-title .contentText {\n text-align: center;\n}\n.is-mobile-block.contentRow.has-title.has-icon .contentText {\n padding-left: 0;\n}\n.is-mobile-block .titleText {\n flex: 0 1 auto;\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n}\n.is-mobile-block .titleIcon {\n width: 24px;\n height: 24px;\n margin-top: 0;\n}\n.is-mobile-block .title-icon {\n font-size: 24px;\n}\n.is-mobile-block .contentText {\n font-size: 14px;\n line-height: 22px;\n}\n\n@container kne-responsive (max-width: 768px) {\n .titleRow,\n .contentRow {\n gap: 8px;\n }\n .confirm-modal-wrap {\n --kne-confirm-modal-mobile-max-width: 400px;\n }\n .confirm-modal-wrap :global .ant-modal-content {\n width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n max-width: min(var(--kne-confirm-modal-mobile-max-width), var(--kne-viewport-width, 100vw) - 32px);\n }\n .confirm-modal-wrap :global .ant-modal-confirm-body {\n padding: 20px 20px 12px;\n }\n .confirm-modal-wrap :global .ant-modal-confirm-title {\n margin-bottom: 16px;\n }\n .confirm-modal-wrap :global .ant-modal-confirm-btns {\n flex-direction: row;\n justify-content: stretch;\n align-items: stretch;\n width: 100%;\n margin-top: 16px;\n gap: 12px;\n }\n .confirm-modal-wrap :global .ant-modal-confirm-btns .ant-btn {\n flex: 1;\n width: auto;\n margin-inline-start: 0 !important;\n height: 40px;\n }\n .titleRow {\n justify-content: center;\n align-items: center;\n margin-bottom: 4px;\n }\n .contentRow.has-title .contentText {\n text-align: center;\n }\n .contentRow.has-title.has-icon .contentText {\n padding-left: 0;\n }\n .titleText {\n flex: 0 1 auto;\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n }\n .titleIcon {\n width: 24px;\n height: 24px;\n margin-top: 0;\n }\n .title-icon {\n font-size: 24px;\n }\n}"]}
package/dist/index.js CHANGED
@@ -116,6 +116,54 @@ const Footer = ({
116
116
  });
117
117
  };
118
118
 
119
+ let parentScrollLockCount = 0;
120
+ let parentScrollLocked = [];
121
+
122
+ /** Modal / Drawer 共用:锁 body + layout scroll,避免背后页面滚动 */
123
+ const lockParentScroll = getScrollElement => {
124
+ parentScrollLockCount += 1;
125
+ if (parentScrollLockCount === 1) {
126
+ const targets = [document.body];
127
+ const scrollEl = typeof getScrollElement === 'function' ? getScrollElement() : null;
128
+ if (scrollEl && scrollEl !== document.body && !targets.includes(scrollEl)) {
129
+ targets.push(scrollEl);
130
+ }
131
+ parentScrollLocked = targets.map(el => {
132
+ const prev = {
133
+ overflow: el.style.overflow,
134
+ overscrollBehavior: el.style.overscrollBehavior
135
+ };
136
+ el.style.overflow = 'hidden';
137
+ el.style.overscrollBehavior = 'none';
138
+ return {
139
+ el,
140
+ prev
141
+ };
142
+ });
143
+ }
144
+ return () => {
145
+ parentScrollLockCount = Math.max(0, parentScrollLockCount - 1);
146
+ if (parentScrollLockCount === 0) {
147
+ parentScrollLocked.forEach(({
148
+ el,
149
+ prev
150
+ }) => {
151
+ el.style.overflow = prev.overflow;
152
+ el.style.overscrollBehavior = prev.overscrollBehavior;
153
+ });
154
+ parentScrollLocked = [];
155
+ }
156
+ };
157
+ };
158
+ const useLockParentScroll = (enabled, getScrollElement) => {
159
+ react.useEffect(() => {
160
+ if (!enabled) {
161
+ return undefined;
162
+ }
163
+ return lockParentScroll(getScrollElement);
164
+ }, [enabled, getScrollElement]);
165
+ };
166
+
119
167
  const ModalLocaleRoot = withLocale(({
120
168
  children
121
169
  }) => children);
@@ -135,20 +183,10 @@ const wrapCustomGetContainer$2 = customGetContainer => {
135
183
  return () => customGetContainer;
136
184
  };
137
185
  const VIEWPORT_EXAMPLE_SELECTORS$3 = ['.example-driver-device-scroll'];
138
- const viewportPopupMountOptions$1 = {
186
+ const viewportPopupMountOptions$3 = {
139
187
  cover: 'viewport',
140
188
  exampleSelectors: VIEWPORT_EXAMPLE_SELECTORS$3
141
189
  };
142
- const findParentModalMountHost = node => {
143
- if (!node || typeof node.closest !== 'function') {
144
- return null;
145
- }
146
- const parentRoot = node.closest('.ant-modal-root');
147
- if (!parentRoot) {
148
- return null;
149
- }
150
- return parentRoot.parentElement || (typeof document !== 'undefined' ? document.body : null);
151
- };
152
190
  const resolveModalGetContainer = ({
153
191
  customGetContainer,
154
192
  getPopupContainer,
@@ -163,58 +201,13 @@ const resolveModalGetContainer = ({
163
201
  }
164
202
  }
165
203
  const from = triggerNode || (typeof getHostNode === 'function' ? getHostNode() : null);
166
- const nestedHost = findParentModalMountHost(from);
204
+ const nestedHost = responsiveUtils.hoistOutOfModalRoot(from);
167
205
  if (nestedHost) {
168
206
  return nestedHost;
169
207
  }
170
208
  return getPopupContainer(triggerNode);
171
209
  };
172
210
  };
173
- let parentScrollLockCount$1 = 0;
174
- let parentScrollLocked$1 = [];
175
- const lockParentScroll$1 = getScrollElement => {
176
- parentScrollLockCount$1 += 1;
177
- if (parentScrollLockCount$1 === 1) {
178
- const targets = [document.body];
179
- const scrollEl = typeof getScrollElement === 'function' ? getScrollElement() : null;
180
- if (scrollEl && scrollEl !== document.body && !targets.includes(scrollEl)) {
181
- targets.push(scrollEl);
182
- }
183
- parentScrollLocked$1 = targets.map(el => {
184
- const prev = {
185
- overflow: el.style.overflow,
186
- overscrollBehavior: el.style.overscrollBehavior
187
- };
188
- el.style.overflow = 'hidden';
189
- el.style.overscrollBehavior = 'none';
190
- return {
191
- el,
192
- prev
193
- };
194
- });
195
- }
196
- return () => {
197
- parentScrollLockCount$1 = Math.max(0, parentScrollLockCount$1 - 1);
198
- if (parentScrollLockCount$1 === 0) {
199
- parentScrollLocked$1.forEach(({
200
- el,
201
- prev
202
- }) => {
203
- el.style.overflow = prev.overflow;
204
- el.style.overscrollBehavior = prev.overscrollBehavior;
205
- });
206
- parentScrollLocked$1 = [];
207
- }
208
- };
209
- };
210
- const useLockParentScroll$1 = (enabled, getScrollElement) => {
211
- react.useEffect(() => {
212
- if (!enabled) {
213
- return undefined;
214
- }
215
- return lockParentScroll$1(getScrollElement);
216
- }, [enabled, getScrollElement]);
217
- };
218
211
  const sizeStyleVars$1 = (size, hasFooter) => {
219
212
  const minBase = size === 'small' ? 300 : 500;
220
213
  const chrome = 48 + (hasFooter ? 58 : 0);
@@ -260,6 +253,15 @@ const ModalOuter = ({
260
253
  children: children
261
254
  });
262
255
  const bodyClassName = classnames__default["default"](modalStyle['modal-body'], 'modal-body');
256
+ // 移动端全屏:body 用 flex 吃满 title/footer 之间剩余高度,footer 才能贴底;
257
+ // 勿写死 --kne-modal-body-height(高度受限类会把该值压矮,footer 悬在中间)
258
+ const bodyStyle = isMobile ? {
259
+ flex: '1 1 auto',
260
+ minHeight: 0,
261
+ height: 'auto'
262
+ } : {
263
+ height: 'var(--kne-modal-body-height)'
264
+ };
263
265
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
264
266
  className: classnames__default["default"](modalStyle['modal-outer'], 'modal-container', {
265
267
  [modalStyle['is-mobile']]: isMobile,
@@ -282,12 +284,14 @@ const ModalOuter = ({
282
284
  children: title
283
285
  }) : null, bodyScroll !== false ? /*#__PURE__*/jsxRuntime.jsx(SimpleBar__default["default"], {
284
286
  className: bodyClassName,
285
- style: {
286
- height: 'var(--kne-modal-body-height)'
287
- },
287
+ style: bodyStyle,
288
288
  children: bodyInner
289
289
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
290
290
  className: classnames__default["default"](bodyClassName, modalStyle['body-scroll-off']),
291
+ style: isMobile ? {
292
+ flex: '1 1 auto',
293
+ minHeight: 0
294
+ } : undefined,
291
295
  children: bodyInner
292
296
  }), footer === null && footerButtons === undefined ? null : /*#__PURE__*/jsxRuntime.jsx(Footer, {
293
297
  footer: footer,
@@ -434,12 +438,12 @@ const Modal = withLocale(({
434
438
  fixedModeClass,
435
439
  getPopupContainer,
436
440
  anchorRef
437
- } = responsiveUtils.useMobilePopupMount({
438
- ...viewportPopupMountOptions$1,
441
+ } = responsiveUtils.usePopupMount({
442
+ ...viewportPopupMountOptions$3,
439
443
  getPopupContainer: wrapCustomGetContainer$2(getContainer)
440
444
  });
441
445
  const getScrollElement = responsiveUtils.useScrollElement();
442
- useLockParentScroll$1(!!open, getScrollElement);
446
+ useLockParentScroll(!!open, getScrollElement);
443
447
  const setAnchorRef = node => {
444
448
  hostRef.current = node;
445
449
  anchorRef(node);
@@ -475,7 +479,7 @@ const useModal = () => {
475
479
  const {
476
480
  resolveMount,
477
481
  getPopupContainer
478
- } = responsiveUtils.useMobilePopupMount(viewportPopupMountOptions$1);
482
+ } = responsiveUtils.usePopupMount(viewportPopupMountOptions$3);
479
483
  const getScrollElement = responsiveUtils.useScrollElement();
480
484
  return props => {
481
485
  const anchor = typeof document !== 'undefined' ? document.activeElement : null;
@@ -483,7 +487,7 @@ const useModal = () => {
483
487
  isMobile,
484
488
  fixedModeClass
485
489
  } = resolveMount(anchor);
486
- const unlock = lockParentScroll$1(getScrollElement);
490
+ const unlock = lockParentScroll(getScrollElement);
487
491
  const api = {};
488
492
  const {
489
493
  afterClose: userAfterClose,
@@ -554,8 +558,10 @@ const DrawerLocaleRoot = withLocale(({
554
558
  children
555
559
  }) => children);
556
560
  const VIEWPORT_EXAMPLE_SELECTORS$2 = ['.example-driver-device-scroll'];
557
- const boundaryPopupMountOptions$1 = {
558
- cover: 'boundary',
561
+
562
+ // 与 Modal 一致:真机挂 body+fixed;示例框 / container 模式仍走 boundary(usePopupMount 内判定)
563
+ const viewportPopupMountOptions$2 = {
564
+ cover: 'viewport',
559
565
  exampleSelectors: VIEWPORT_EXAMPLE_SELECTORS$2
560
566
  };
561
567
  const renderWithOptions = (value, options) => {
@@ -605,51 +611,6 @@ const resolveDrawerGetContainer = ({
605
611
  return getPopupContainer(triggerNode);
606
612
  };
607
613
  };
608
- let parentScrollLockCount = 0;
609
- let parentScrollLocked = [];
610
- const lockParentScroll = getScrollElement => {
611
- parentScrollLockCount += 1;
612
- if (parentScrollLockCount === 1) {
613
- const targets = [document.body];
614
- const scrollEl = typeof getScrollElement === 'function' ? getScrollElement() : null;
615
- if (scrollEl && scrollEl !== document.body && !targets.includes(scrollEl)) {
616
- targets.push(scrollEl);
617
- }
618
- parentScrollLocked = targets.map(el => {
619
- const prev = {
620
- overflow: el.style.overflow,
621
- overscrollBehavior: el.style.overscrollBehavior
622
- };
623
- el.style.overflow = 'hidden';
624
- el.style.overscrollBehavior = 'none';
625
- return {
626
- el,
627
- prev
628
- };
629
- });
630
- }
631
- return () => {
632
- parentScrollLockCount = Math.max(0, parentScrollLockCount - 1);
633
- if (parentScrollLockCount === 0) {
634
- parentScrollLocked.forEach(({
635
- el,
636
- prev
637
- }) => {
638
- el.style.overflow = prev.overflow;
639
- el.style.overscrollBehavior = prev.overscrollBehavior;
640
- });
641
- parentScrollLocked = [];
642
- }
643
- };
644
- };
645
- const useLockParentScroll = (enabled, getScrollElement) => {
646
- react.useEffect(() => {
647
- if (!enabled) {
648
- return undefined;
649
- }
650
- return lockParentScroll(getScrollElement);
651
- }, [enabled, getScrollElement]);
652
- };
653
614
  const sizeStyleVars = (size, hasFooter) => {
654
615
  const minBase = size === 'small' ? 300 : 500;
655
616
  const chrome = 48 + (hasFooter ? 69 : 0);
@@ -896,8 +857,8 @@ const Drawer = withLocale(({
896
857
  fixedModeClass,
897
858
  getPopupContainer,
898
859
  anchorRef
899
- } = responsiveUtils.useMobilePopupMount({
900
- ...boundaryPopupMountOptions$1,
860
+ } = responsiveUtils.usePopupMount({
861
+ ...viewportPopupMountOptions$2,
901
862
  getPopupContainer: wrapCustomGetContainer$1(getContainer)
902
863
  });
903
864
  const getScrollElement = responsiveUtils.useScrollElement();
@@ -943,8 +904,10 @@ const usePatchElement = () => {
943
904
  };
944
905
 
945
906
  const VIEWPORT_EXAMPLE_SELECTORS$1 = ['.example-driver-device-scroll'];
946
- const boundaryPopupMountOptions = {
947
- cover: 'boundary',
907
+
908
+ // 与 Modal / Drawer 一致:真机 viewport;示例框 / container 仍 boundary
909
+ const viewportPopupMountOptions$1 = {
910
+ cover: 'viewport',
948
911
  exampleSelectors: VIEWPORT_EXAMPLE_SELECTORS$1
949
912
  };
950
913
  const wrapCustomGetContainer = customGetContainer => {
@@ -970,8 +933,8 @@ const HookDrawer = /*#__PURE__*/react.forwardRef(({
970
933
  const {
971
934
  getPopupContainer,
972
935
  anchorRef
973
- } = responsiveUtils.useMobilePopupMount({
974
- ...boundaryPopupMountOptions,
936
+ } = responsiveUtils.usePopupMount({
937
+ ...viewportPopupMountOptions$1,
975
938
  getPopupContainer: wrapCustomGetContainer(innerConfig.getContainer)
976
939
  });
977
940
  const close = () => {
@@ -1038,7 +1001,7 @@ const useDrawerHolder = () => {
1038
1001
  const {
1039
1002
  resolveMount,
1040
1003
  getPopupContainer
1041
- } = responsiveUtils.useMobilePopupMount(boundaryPopupMountOptions);
1004
+ } = responsiveUtils.usePopupMount(viewportPopupMountOptions$1);
1042
1005
  const getScrollElement = responsiveUtils.useScrollElement();
1043
1006
  react.useEffect(() => {
1044
1007
  if (actionQueue.length) {
@@ -1298,7 +1261,7 @@ const useConfirmModal = () => {
1298
1261
  const {
1299
1262
  resolveMount,
1300
1263
  getPopupContainer
1301
- } = responsiveUtils.useMobilePopupMount(viewportPopupMountOptions);
1264
+ } = responsiveUtils.usePopupMount(viewportPopupMountOptions);
1302
1265
  const getScrollElement = responsiveUtils.useScrollElement();
1303
1266
  return props => {
1304
1267
  const anchor = typeof document !== 'undefined' ? document.activeElement : null;
@@ -1306,7 +1269,7 @@ const useConfirmModal = () => {
1306
1269
  isMobile,
1307
1270
  fixedModeClass
1308
1271
  } = resolveMount(anchor);
1309
- const unlock = lockParentScroll$1(getScrollElement);
1272
+ const unlock = lockParentScroll(getScrollElement);
1310
1273
  const api = {};
1311
1274
  const {
1312
1275
  afterClose: userAfterClose,