@kne/react-modal 0.1.11 → 0.1.12

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/dist/index.css CHANGED
@@ -205,9 +205,10 @@
205
205
  --kne-modal-viewport-width: var(--kne-viewport-width, 100vw);
206
206
  --kne-modal-title-height: 48px;
207
207
  --kne-modal-footer-height: 58px;
208
- --kne-modal-viewport-gutter: 120px;
208
+ --kne-modal-viewport-gutter: 80px;
209
209
  --kne-modal-body-padding-vertical: 48px;
210
210
  --kne-modal-body-padding-horizontal: 48px;
211
+ /* body 最低高度随 size(JS 会按是否有 footer 再扣 chrome);上限见 body-max-height */
211
212
  --kne-modal-body-min-height: 394px;
212
213
  --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));
213
214
  --kne-modal-body-max-height: var(--kne-modal-body-height);
@@ -320,13 +321,14 @@
320
321
 
321
322
  .kne-react-modal_W-QFz {
322
323
  flex: 1 1 auto;
323
- min-height: 0;
324
324
  min-height: var(--kne-modal-body-min-height);
325
325
  max-height: var(--kne-modal-body-max-height);
326
- height: var(--kne-modal-body-height);
326
+ /* 默认跟内容;超出由 max-height + SimpleBar 滚动。bodyScroll=false 见下方写死满高 */
327
+ height: auto;
327
328
  box-sizing: border-box;
328
329
  }
329
330
  .kne-react-modal_W-QFz.kne-react-modal_l627I {
331
+ height: var(--kne-modal-body-height);
330
332
  display: flex;
331
333
  flex-direction: column;
332
334
  overflow: hidden;
@@ -346,7 +348,8 @@
346
348
 
347
349
  .kne-react-modal_fFnva {
348
350
  padding: calc(var(--kne-modal-body-padding-vertical) / 2) calc(var(--kne-modal-body-padding-horizontal) / 2);
349
- min-height: var(--kne-modal-content-height);
351
+ /* 与 body-min 对齐的小地板,不再用 content-height 把短内容撑满 */
352
+ min-height: var(--kne-modal-content-min-height);
350
353
  width: 100%;
351
354
  max-width: 100%;
352
355
  box-sizing: border-box;
@@ -1 +1 @@
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}"]}
1
+ {"version":3,"sources":["layouts.module.scss","style.module.scss","drawer.module.scss","confirmModal.module.scss"],"names":[],"mappings":"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,8FAA8F;EAC9F,kGAAkG;AACpG;AACA;EACE,uBAAuB;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: 80px;\n --kne-modal-body-padding-vertical: 48px;\n --kne-modal-body-padding-horizontal: 48px;\n /* body 最低高度随 size(JS 会按是否有 footer 再扣 chrome);上限见 body-max-height */\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: var(--kne-modal-body-min-height);\n max-height: var(--kne-modal-body-max-height);\n /* 默认跟内容;超出由 max-height + SimpleBar 滚动。bodyScroll=false 见下方写死满高 */\n height: auto;\n box-sizing: border-box;\n}\n.modal-body.body-scroll-off {\n height: var(--kne-modal-body-height);\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 /* 与 body-min 对齐的小地板,不再用 content-height 把短内容撑满 */\n min-height: var(--kne-modal-content-min-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
@@ -164,6 +164,49 @@ const useLockParentScroll = (enabled, getScrollElement) => {
164
164
  }, [enabled, getScrollElement]);
165
165
  };
166
166
 
167
+ const usePatchElement = () => {
168
+ const [elements, setElements] = react.useState([]);
169
+ const patchElement = react.useCallback(element => {
170
+ setElements(originElements => [...originElements, element]);
171
+ return () => {
172
+ setElements(originElements => originElements.filter(ele => ele !== element));
173
+ };
174
+ }, []);
175
+ return [elements, patchElement];
176
+ };
177
+
178
+ const ModalLayerContext = /*#__PURE__*/react.createContext(null);
179
+ const useModalLayer = () => react.useContext(ModalLayerContext);
180
+
181
+ /**
182
+ * 挂在 Modal 内容树内(antd ZIndexContext 之下),
183
+ * 使就近 useModal 打开的内层成为本层 React 子树,从而自动叠层。
184
+ */
185
+ const ModalLayerProvider = ({
186
+ children
187
+ }) => {
188
+ const [elements, patchElement] = usePatchElement();
189
+ const value = react.useMemo(() => ({
190
+ patchElement
191
+ }), [patchElement]);
192
+ return /*#__PURE__*/jsxRuntime.jsxs(ModalLayerContext.Provider, {
193
+ value: value,
194
+ children: [children, elements]
195
+ });
196
+ };
197
+
198
+ /** 根级命令式打开(页面首次弹层);不包 ModalLayerContext。 */
199
+ const rootModalPatchRef = {
200
+ current: null
201
+ };
202
+ const ModalContextHolder = () => {
203
+ const [elements, patchElement] = usePatchElement();
204
+ rootModalPatchRef.current = patchElement;
205
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
206
+ children: elements
207
+ });
208
+ };
209
+
167
210
  const ModalLocaleRoot = withLocale(({
168
211
  children
169
212
  }) => children);
@@ -209,6 +252,7 @@ const resolveModalGetContainer = ({
209
252
  };
210
253
  };
211
254
  const sizeStyleVars$1 = (size, hasFooter) => {
255
+ // body 最低高度随 size:small 基准 300,default/large 基准 500(再扣 title/footer chrome)
212
256
  const minBase = size === 'small' ? 300 : 500;
213
257
  const chrome = 48 + (hasFooter ? 58 : 0);
214
258
  const minHeight = `${Math.max(0, minBase - chrome)}px`;
@@ -254,11 +298,15 @@ const ModalOuter = ({
254
298
  });
255
299
  const bodyClassName = classnames__default["default"](modalStyle['modal-body'], 'modal-body');
256
300
  // 移动端全屏:body 用 flex 吃满 title/footer 之间剩余高度,footer 才能贴底;
257
- // 勿写死 --kne-modal-body-height(高度受限类会把该值压矮,footer 悬在中间)
301
+ // 桌面默认:height:auto + max-height,短内容不撑满;bodyScroll=false 仍写死满高供 Tabs/分栏
258
302
  const bodyStyle = isMobile ? {
259
303
  flex: '1 1 auto',
260
304
  minHeight: 0,
261
305
  height: 'auto'
306
+ } : bodyScroll !== false ? {
307
+ height: 'auto',
308
+ maxHeight: 'var(--kne-modal-body-max-height)',
309
+ minHeight: 'var(--kne-modal-body-min-height)'
262
310
  } : {
263
311
  height: 'var(--kne-modal-body-height)'
264
312
  };
@@ -288,10 +336,7 @@ const ModalOuter = ({
288
336
  children: bodyInner
289
337
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
290
338
  className: classnames__default["default"](bodyClassName, modalStyle['body-scroll-off']),
291
- style: isMobile ? {
292
- flex: '1 1 auto',
293
- minHeight: 0
294
- } : undefined,
339
+ style: bodyStyle,
295
340
  children: bodyInner
296
341
  }), footer === null && footerButtons === undefined ? null : /*#__PURE__*/jsxRuntime.jsx(Footer, {
297
342
  footer: footer,
@@ -419,8 +464,11 @@ const computedCommonProps = ({
419
464
  } : null)
420
465
  }
421
466
  },
467
+ // LayerProvider 须在 antd Modal 内容树内(ZIndexContext 下),内层命令式才能自动 +100
422
468
  children: /*#__PURE__*/jsxRuntime.jsx(ModalLocaleRoot, {
423
- children: runChildren({})
469
+ children: /*#__PURE__*/jsxRuntime.jsx(ModalLayerProvider, {
470
+ children: runChildren({})
471
+ })
424
472
  })
425
473
  };
426
474
  };
@@ -472,84 +520,123 @@ const Modal = withLocale(({
472
520
  })]
473
521
  });
474
522
  });
475
- const useModal = () => {
476
- const {
477
- modal
478
- } = antd.App.useApp();
523
+
524
+ let hookModalUuid = 0;
525
+ const HookModal = /*#__PURE__*/react.forwardRef(({
526
+ config,
527
+ afterClose: hookAfterClose
528
+ }, ref) => {
529
+ const [open, setOpen] = react.useState(true);
530
+ const [innerConfig, setInnerConfig] = react.useState(config);
531
+ const close = () => {
532
+ setOpen(false);
533
+ };
534
+ react.useImperativeHandle(ref, () => ({
535
+ destroy: close,
536
+ update: newConfig => {
537
+ setInnerConfig(origin => Object.assign({}, origin, typeof newConfig === 'function' ? newConfig(origin) : newConfig));
538
+ }
539
+ }));
479
540
  const {
480
- resolveMount,
481
- getPopupContainer
482
- } = responsiveUtils.usePopupMount(viewportPopupMountOptions$3);
541
+ afterClose: userAfterClose,
542
+ onClose: userOnClose,
543
+ onConfirm: userOnConfirm,
544
+ onCancel: userOnCancel,
545
+ ...restConfig
546
+ } = innerConfig;
547
+ return /*#__PURE__*/jsxRuntime.jsx(Modal, {
548
+ ...restConfig,
549
+ open: open,
550
+ onClose: () => {
551
+ userOnClose?.();
552
+ close();
553
+ },
554
+ onCancel: function () {
555
+ userOnCancel?.(...[].slice.call(arguments));
556
+ close();
557
+ },
558
+ onConfirm: function () {
559
+ try {
560
+ const _arguments = arguments;
561
+ return Promise.resolve(Promise.resolve(userOnConfirm?.(...[].slice.call(_arguments)))).then(function (res) {
562
+ if (res !== false) {
563
+ close();
564
+ }
565
+ return res;
566
+ });
567
+ } catch (e) {
568
+ return Promise.reject(e);
569
+ }
570
+ },
571
+ afterClose: function () {
572
+ var args = [].slice.call(arguments);
573
+ hookAfterClose?.(...args);
574
+ userAfterClose?.(...args);
575
+ }
576
+ });
577
+ });
578
+
579
+ /**
580
+ * 命令式内容弹窗:就近 patch 到 ModalLayerProvider(多层)或根 ModalContextHolder。
581
+ * 不走 App.modal.info / ConfirmDialog,层级交给 antd ZIndexContext。
582
+ */
583
+ const useModal = () => {
584
+ const layer = react.useContext(ModalLayerContext);
483
585
  const getScrollElement = responsiveUtils.useScrollElement();
484
- return props => {
485
- const anchor = typeof document !== 'undefined' ? document.activeElement : null;
486
- const {
487
- isMobile,
488
- fixedModeClass
489
- } = resolveMount(anchor);
490
- const unlock = lockParentScroll(getScrollElement);
586
+ const [actionQueue, setActionQueue] = react.useState([]);
587
+ react.useEffect(() => {
588
+ if (actionQueue.length) {
589
+ const cloneQueue = [...actionQueue];
590
+ cloneQueue.forEach(action => action());
591
+ setActionQueue([]);
592
+ }
593
+ }, [actionQueue]);
594
+ return react.useCallback(props => {
595
+ hookModalUuid += 1;
596
+ const modalRef = /*#__PURE__*/react.createRef();
491
597
  const api = {};
492
- const {
493
- afterClose: userAfterClose,
494
- getContainer: customGetContainer,
495
- onClose: userOnClose,
496
- onConfirm: userOnConfirm,
497
- onCancel: userOnCancel,
498
- ...restProps
499
- } = props;
500
- const closeModal = () => {
501
- api.close?.();
502
- };
503
- const {
504
- children,
505
- getContainer,
506
- afterClose,
507
- ...otherProps
508
- } = computedCommonProps({
509
- ...restProps,
510
- isMobile,
511
- fixedModeClass,
512
- onClose: () => {
513
- userOnClose?.();
514
- closeModal();
515
- },
516
- onCancel: function () {
517
- userOnCancel?.(...[].slice.call(arguments));
518
- closeModal();
519
- },
520
- onConfirm: function () {
521
- try {
522
- const _arguments = arguments;
523
- return Promise.resolve(Promise.resolve(userOnConfirm?.(...[].slice.call(_arguments)))).then(function (res) {
524
- if (res !== false) {
525
- closeModal();
526
- }
527
- return res;
528
- });
529
- } catch (e) {
530
- return Promise.reject(e);
598
+ let closeFunc;
599
+ let unlock = () => {};
600
+ const resolvePatch = () => layer?.patchElement || rootModalPatchRef.current;
601
+ const runOpen = () => {
602
+ const patch = resolvePatch();
603
+ if (typeof patch !== 'function') {
604
+ throw new Error('useModal requires <ModalContextHolder /> mounted inside <App> before calling useModal()');
605
+ }
606
+ unlock = lockParentScroll(getScrollElement);
607
+ const {
608
+ afterClose: userAfterClose,
609
+ ...restProps
610
+ } = props;
611
+ const modalEl = /*#__PURE__*/jsxRuntime.jsx(HookModal, {
612
+ ref: modalRef,
613
+ config: {
614
+ ...restProps,
615
+ afterClose: function () {
616
+ unlock();
617
+ userAfterClose?.(...[].slice.call(arguments));
618
+ }
619
+ },
620
+ afterClose: () => {
621
+ closeFunc && closeFunc();
531
622
  }
532
- },
533
- afterClose: function () {
534
- unlock();
535
- userAfterClose?.(...[].slice.call(arguments));
623
+ }, `react-modal-${hookModalUuid}`);
624
+ closeFunc = patch(modalEl);
625
+ };
626
+ if (resolvePatch()) {
627
+ runOpen();
628
+ } else {
629
+ setActionQueue(prev => [...prev, runOpen]);
630
+ }
631
+ api.close = () => {
632
+ if (modalRef.current) {
633
+ modalRef.current.destroy();
634
+ } else {
635
+ setActionQueue(prev => [...prev, () => modalRef.current?.destroy()]);
536
636
  }
537
- });
538
- const {
539
- destroy
540
- } = modal.info({
541
- ...otherProps,
542
- afterClose,
543
- content: children,
544
- getContainer: resolveModalGetContainer({
545
- customGetContainer: customGetContainer ?? getContainer,
546
- getPopupContainer,
547
- getHostNode: () => anchor
548
- })
549
- });
550
- api.close = destroy;
637
+ };
551
638
  return api;
552
- };
639
+ }, [getScrollElement, layer]);
553
640
  };
554
641
 
555
642
  var style = {"kne-responsive-boundary":"kne-react-modal_qwqLr","kne-responsive-scroll":"kne-react-modal_vmry7","drawer":"kne-react-modal_cDsbq","small":"kne-react-modal_3QgK-","is-mobile":"kne-react-modal_FFf73","large":"kne-react-modal_8lell","drawer-body-inner":"kne-react-modal_xgX4D","drawer-antd-header":"kne-react-modal_3EUxr","drawer-antd-footer":"kne-react-modal_2G81L","drawer-antd-body":"kne-react-modal_eKVMu","drawer-outer":"kne-react-modal_P3Cw8","no-title":"kne-react-modal_upRot","no-footer":"kne-react-modal_j4sGu","no-padding":"kne-react-modal_pg37M","drawer-title":"kne-react-modal_-hw5V","drawer-body":"kne-react-modal_nJj7Y","body-scroll-off":"kne-react-modal_2Wh1H","modal-footer-extra":"kne-react-modal_M4hy9","drawer-close":"kne-react-modal_dVh38","drawer-host":"kne-react-modal_Nsxi9","drawer-host-render":"kne-react-modal_iGDWP","drawer-panel-host":"kne-react-modal_A0h-2","drawer-panel-body":"kne-react-modal_E4tcc","drawer-form-host":"kne-react-modal_vKkQW","drawer-wrapper-mobile":"kne-react-modal_vsxOs","drawer-wrapper-mobile-vertical":"kne-react-modal_HG8Vz","drawer-root-mobile":"kne-react-modal_G-qXe"};
@@ -892,17 +979,6 @@ const Drawer = withLocale(({
892
979
  });
893
980
  });
894
981
 
895
- const usePatchElement = () => {
896
- const [elements, setElements] = react.useState([]);
897
- const patchElement = react.useCallback(element => {
898
- setElements(originElements => [...originElements, element]);
899
- return () => {
900
- setElements(originElements => originElements.filter(ele => ele !== element));
901
- };
902
- }, []);
903
- return [elements, patchElement];
904
- };
905
-
906
982
  const VIEWPORT_EXAMPLE_SELECTORS$1 = ['.example-driver-device-scroll'];
907
983
 
908
984
  // 与 Modal / Drawer 一致:真机 viewport;示例框 / container 仍 boundary
@@ -1215,43 +1291,48 @@ const mapConfirmProps = (props, {
1215
1291
  icon,
1216
1292
  isMobile
1217
1293
  });
1294
+
1295
+ // Confirm 走 antd ConfirmDialog:未传 zIndex 时用 static 顶层,适合真确认框盖住内容弹窗
1296
+ const config = {
1297
+ ...otherProps,
1298
+ okText: confirmText ?? otherProps.okText,
1299
+ cancelText: cancelText ?? otherProps.cancelText,
1300
+ onOk: onConfirm ?? otherProps.onOk,
1301
+ onCancel: onCancel ?? otherProps.onCancel,
1302
+ getContainer: resolveModalGetContainer({
1303
+ customGetContainer,
1304
+ getPopupContainer,
1305
+ getHostNode: () => anchor
1306
+ }),
1307
+ centered: true,
1308
+ afterClose: function () {
1309
+ var args = [].slice.call(arguments);
1310
+ unlock();
1311
+ userAfterClose && userAfterClose(...args);
1312
+ afterClose && afterClose(...args);
1313
+ },
1314
+ icon: null,
1315
+ classNames: {
1316
+ mask: classnames__default["default"](isMobile && modalStyle['modal-mask-fullscreen'], isMobile && fixedModeClass, otherProps.classNames?.mask)
1317
+ },
1318
+ wrapClassName: classnames__default["default"](modalStyle['modal-wrap'], modalStyle['modal-wrap-centered'], confirmStyle['confirm-modal-wrap'], wrapClassName, {
1319
+ [confirmStyle['is-danger']]: danger,
1320
+ [confirmStyle['is-mobile']]: isMobile,
1321
+ [fixedModeClass]: isMobile
1322
+ }),
1323
+ title: confirmTitle ? /*#__PURE__*/jsxRuntime.jsx(ConfirmLocaleRoot, {
1324
+ children: confirmTitle
1325
+ }) : null,
1326
+ content: /*#__PURE__*/jsxRuntime.jsx(ConfirmLocaleRoot, {
1327
+ children: content
1328
+ })
1329
+ };
1330
+ if (zIndex !== undefined) {
1331
+ config.zIndex = zIndex;
1332
+ }
1218
1333
  return {
1219
1334
  modalMethod: type,
1220
- config: {
1221
- ...otherProps,
1222
- zIndex: zIndex ?? 1100,
1223
- okText: confirmText ?? otherProps.okText,
1224
- cancelText: cancelText ?? otherProps.cancelText,
1225
- onOk: onConfirm ?? otherProps.onOk,
1226
- onCancel: onCancel ?? otherProps.onCancel,
1227
- getContainer: resolveModalGetContainer({
1228
- customGetContainer,
1229
- getPopupContainer,
1230
- getHostNode: () => anchor
1231
- }),
1232
- centered: true,
1233
- afterClose: function () {
1234
- var args = [].slice.call(arguments);
1235
- unlock();
1236
- userAfterClose && userAfterClose(...args);
1237
- afterClose && afterClose(...args);
1238
- },
1239
- icon: null,
1240
- classNames: {
1241
- mask: classnames__default["default"](isMobile && modalStyle['modal-mask-fullscreen'], isMobile && fixedModeClass, otherProps.classNames?.mask)
1242
- },
1243
- wrapClassName: classnames__default["default"](modalStyle['modal-wrap'], modalStyle['modal-wrap-centered'], confirmStyle['confirm-modal-wrap'], wrapClassName, {
1244
- [confirmStyle['is-danger']]: danger,
1245
- [confirmStyle['is-mobile']]: isMobile,
1246
- [fixedModeClass]: isMobile
1247
- }),
1248
- title: confirmTitle ? /*#__PURE__*/jsxRuntime.jsx(ConfirmLocaleRoot, {
1249
- children: confirmTitle
1250
- }) : null,
1251
- content: /*#__PURE__*/jsxRuntime.jsx(ConfirmLocaleRoot, {
1252
- children: content
1253
- })
1254
- }
1335
+ config
1255
1336
  };
1256
1337
  };
1257
1338
  const useConfirmModal = () => {
@@ -1375,6 +1456,8 @@ const modalClassNames = {
1375
1456
  exports.ColumnsLayout = ColumnsLayout;
1376
1457
  exports.Drawer = Drawer;
1377
1458
  exports.DrawerContextHolder = DrawerContextHolder;
1459
+ exports.ModalContextHolder = ModalContextHolder;
1460
+ exports.ModalLayerContext = ModalLayerContext;
1378
1461
  exports.ScrollRegion = ScrollRegion;
1379
1462
  exports.TabsLayout = TabsLayout;
1380
1463
  exports.createDrawerRender = createDrawerRender;
@@ -1384,4 +1467,5 @@ exports.modalClassNames = modalClassNames;
1384
1467
  exports.useConfirmModal = useConfirmModal;
1385
1468
  exports.useDrawer = useDrawer;
1386
1469
  exports.useModal = useModal;
1470
+ exports.useModalLayer = useModalLayer;
1387
1471
  //# sourceMappingURL=index.js.map