@skbkontur/react-ui 4.14.1 → 4.14.2-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cjs/components/Button/Button.d.ts +2 -6
  3. package/cjs/components/Button/Button.js +14 -5
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Button/Button.styles.js +2 -1
  6. package/cjs/components/Button/Button.styles.js.map +1 -1
  7. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  8. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  9. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  10. package/cjs/components/Kebab/Kebab.d.ts +4 -1
  11. package/cjs/components/Kebab/Kebab.js +9 -3
  12. package/cjs/components/Kebab/Kebab.js.map +1 -1
  13. package/cjs/components/Loader/Loader.js +1 -3
  14. package/cjs/components/Loader/Loader.js.map +1 -1
  15. package/cjs/components/Modal/Modal.d.ts +3 -3
  16. package/cjs/components/Modal/Modal.js +19 -2
  17. package/cjs/components/Modal/Modal.js.map +1 -1
  18. package/cjs/components/Modal/Modal.styles.d.ts +0 -2
  19. package/cjs/components/Modal/Modal.styles.js +25 -36
  20. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  21. package/cjs/components/Modal/ModalBody.js +0 -2
  22. package/cjs/components/Modal/ModalBody.js.map +1 -1
  23. package/cjs/components/Modal/ModalFooter.js +2 -5
  24. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  25. package/cjs/components/Modal/ModalHeader.js +1 -6
  26. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  27. package/cjs/components/PasswordInput/PasswordInput.js +4 -6
  28. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  29. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  30. package/cjs/components/ScrollContainer/ScrollContainer.js +9 -1
  31. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  32. package/cjs/components/SidePage/SidePage.d.ts +3 -3
  33. package/cjs/components/SidePage/SidePage.js +8 -1
  34. package/cjs/components/SidePage/SidePage.js.map +1 -1
  35. package/cjs/components/Spinner/Spinner.md +1 -1
  36. package/cjs/components/Switcher/Switcher.d.ts +4 -2
  37. package/cjs/components/Switcher/Switcher.js +13 -3
  38. package/cjs/components/Switcher/Switcher.js.map +1 -1
  39. package/cjs/components/TokenInput/TokenInput.d.ts +44 -1
  40. package/cjs/components/TokenInput/TokenInput.js +42 -0
  41. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  42. package/cjs/components/TokenInput/TokenInput.md +100 -0
  43. package/cjs/internal/CustomComboBox/CustomComboBox.js +12 -9
  44. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  45. package/cjs/internal/InputLikeText/InputLikeText.js +4 -1
  46. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  47. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
  48. package/cjs/internal/PopupMenu/PopupMenu.js +23 -3
  49. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  50. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +0 -5
  51. package/cjs/internal/ZIndex/ZIndexStorage.js +1 -6
  52. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  53. package/cjs/internal/icons/SpinnerIcon.styles.js +2 -1
  54. package/cjs/internal/icons/SpinnerIcon.styles.js.map +1 -1
  55. package/cjs/typings/html.d.ts +1 -0
  56. package/components/Button/Button/Button.js +13 -4
  57. package/components/Button/Button/Button.js.map +1 -1
  58. package/components/Button/Button.d.ts +2 -6
  59. package/components/Button/Button.styles/Button.styles.js +1 -1
  60. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  61. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +2 -1
  62. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  63. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  64. package/components/Kebab/Kebab/Kebab.js +6 -1
  65. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  66. package/components/Kebab/Kebab.d.ts +4 -1
  67. package/components/Loader/Loader/Loader.js +0 -2
  68. package/components/Loader/Loader/Loader.js.map +1 -1
  69. package/components/Modal/Modal/Modal.js +28 -11
  70. package/components/Modal/Modal/Modal.js.map +1 -1
  71. package/components/Modal/Modal.d.ts +3 -3
  72. package/components/Modal/Modal.styles/Modal.styles.js +24 -30
  73. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  74. package/components/Modal/Modal.styles.d.ts +0 -2
  75. package/components/Modal/ModalBody/ModalBody.js +0 -2
  76. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  77. package/components/Modal/ModalFooter/ModalFooter.js +2 -6
  78. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  79. package/components/Modal/ModalHeader/ModalHeader.js +2 -6
  80. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  81. package/components/PasswordInput/PasswordInput/PasswordInput.js +6 -5
  82. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  83. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +12 -4
  84. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  85. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  86. package/components/SidePage/SidePage/SidePage.js +9 -3
  87. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  88. package/components/SidePage/SidePage.d.ts +3 -3
  89. package/components/Spinner/Spinner.md +1 -1
  90. package/components/Switcher/Switcher/Switcher.js +8 -2
  91. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  92. package/components/Switcher/Switcher.d.ts +4 -2
  93. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  94. package/components/TokenInput/TokenInput.d.ts +44 -1
  95. package/components/TokenInput/TokenInput.md +100 -0
  96. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +11 -9
  97. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  98. package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
  99. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  100. package/internal/PopupMenu/PopupMenu/PopupMenu.js +13 -2
  101. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  102. package/internal/PopupMenu/PopupMenu.d.ts +8 -0
  103. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +1 -6
  104. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  105. package/internal/ZIndex/ZIndexStorage.d.ts +0 -5
  106. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js +1 -1
  107. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js.map +1 -1
  108. package/package.json +3 -3
  109. package/typings/html.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","modalWindowShadow","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","modalHeaderFontWeight","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyBorderRadius","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderMarginBottom","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterPaddingTop","modalFixedFooterMarginTop","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","modalHeaderAdditionalPaddingBottom","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer","modalSeparatorWrapper","modalSeparator","modalSeparatorBorderBottom","modalSeparatorFixed"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: ${t.modalWindowShadow};\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer() {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n font-weight: ${t.modalHeaderFontWeight};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n border-radius: ${t.modalBodyBorderRadius};\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: ${t.modalFixedHeaderMarginBottom};\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: ${t.modalFixedFooterPaddingTop};\n margin-top: ${t.modalFixedFooterMarginTop};\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding(t: Theme) {\n return css`\n padding-bottom: ${t.modalHeaderAdditionalPaddingBottom};\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader() {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: auto;\n `;\n },\n\n modalSeparatorWrapper() {\n return css`\n position: absolute;\n width: 100%;\n `;\n },\n\n modalSeparator(t: Theme) {\n return css`\n border-bottom: ${t.modalSeparatorBorderBottom};\n margin: 0 32px;\n transition: margin 0.3s;\n `;\n },\n\n modalSeparatorFixed() {\n return css`\n margin: 0 16px;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","modalWindowShadow","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","modalHeaderFontWeight","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyBorderRadius","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderMarginBottom","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterPaddingTop","modalFixedFooterMarginTop","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","modalHeaderAdditionalPaddingBottom","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer","modalSeparatorWrapper","modalSeparator","modalSeparatorBorderBottom","modalSeparatorFixed"],"mappings":"2yBAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;AAEA,SAASC,WAAT,QAA4B,yBAA5B;;AAEA,OAAO,IAAMC,MAAM,GAAGF,YAAY,CAAC;AACjCG,EAAAA,IADiC,kBAC1B;AACL,WAAOJ,GAAP;;;;;;;AAOD,GATgC;;AAWjCK,EAAAA,EAXiC,cAW9BC,CAX8B,EAWpB;AACX,WAAON,GAAP;;;;;;AAMgBM,IAAAA,CAAC,CAACC,WANlB;AAOaD,IAAAA,CAAC,CAACE,gBAPf;;AASD,GArBgC;;AAuBjCC,EAAAA,SAvBiC,uBAuBrB;AACV,WAAOT,GAAP;;;;;;;;;;;;;;;AAeD,GAvCgC;;AAyCjCU,EAAAA,MAzCiC,kBAyC1BJ,CAzC0B,EAyChB;AACf,WAAON,GAAP;;;;AAIgBM,IAAAA,CAAC,CAACK,iBAJlB;AAKgBL,IAAAA,CAAC,CAACM,OALlB;AAMmBN,IAAAA,CAAC,CAACO,iBANrB;;AAQD,GAlDgC;;AAoDjCC,EAAAA,YApDiC,0BAoDlB;AACb,WAAOd,GAAP;;;;;AAKD,GA1DgC;;AA4DjCe,EAAAA,eA5DiC,6BA4Df;AAChB,WAAOf,GAAP;;;;;;;;;AASD,GAtEgC;;AAwEjCgB,EAAAA,qBAxEiC,mCAwET;AACtB,WAAOhB,GAAP;;;;;AAKD,GA9EgC;;AAgFjCiB,EAAAA,QAhFiC,sBAgFtB;AACT,WAAOjB,GAAP;;;AAGD,GApFgC;;AAsFjCkB,EAAAA,KAtFiC,iBAsF3BZ,CAtF2B,EAsFjB;AACd,QAAMa,OAAO,GAAGC,QAAQ,CAACd,CAAC,CAACe,uBAAH,CAAxB;AACA,WAAOrB,GAAP;AACIE,IAAAA,WAAW,EADf;;;AAIWiB,IAAAA,OAJX;AAKSA,IAAAA,OALT;;;;AASWb,IAAAA,CAAC,CAACgB,qBATb;;;AAYahB,IAAAA,CAAC,CAACiB,yBAZf;AAaajB,IAAAA,CAAC,CAACiB,yBAbf;;;AAgBajB,IAAAA,CAAC,CAACkB,0BAhBf;;;;AAoBalB,IAAAA,CAAC,CAACmB,kBApBf;AAqBcnB,IAAAA,CAAC,CAACmB,kBArBhB;;;;AAyBD,GAjHgC;;AAmHjCC,EAAAA,WAnHiC,uBAmHrBpB,CAnHqB,EAmHX;AACpB,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACqB,kCADb;AAESP,IAAAA,QAAQ,CAACd,CAAC,CAACsB,gCAAH,CAAR,GAA+CR,QAAQ,CAACd,CAAC,CAACuB,wBAAH,CAFhE;AAGavB,IAAAA,CAAC,CAACwB,+BAHf;AAIaxB,IAAAA,CAAC,CAACwB,+BAJf;;;AAOaxB,IAAAA,CAAC,CAACyB,wBAPf;AAQczB,IAAAA,CAAC,CAACyB,wBARhB;;;AAWD,GA/HgC;;AAiIjCC,EAAAA,wBAjIiC,sCAiIN;AACzB,WAAOhC,GAAP;;;AAGD,GArIgC;;AAuIjCiC,EAAAA,YAvIiC,wBAuIpB3B,CAvIoB,EAuIV;AACrB,QAAMa,OAAO,GAAGC,QAAQ,CAACd,CAAC,CAACe,uBAAH,CAAxB;AACA,QAAMa,aAAa,GAAGd,QAAQ,CAACd,CAAC,CAAC6B,6BAAH,CAA9B;AACA,QAAMC,SAAS,GAAGhB,QAAQ,CAACd,CAAC,CAAC+B,0BAAH,CAA1B;AACA,QAAMC,WAAW,GAAGlB,QAAQ,CAACd,CAAC,CAACiC,2BAAH,CAA5B;AACA,QAAMC,UAAU,GAAGpB,QAAQ,CAACd,CAAC,CAACmB,kBAAH,CAAR,GAAiC,IAAIN,OAArC,GAA+CmB,WAAlE;AACA,QAAMG,UAAU,GAAGrB,QAAQ,CAACd,CAAC,CAACmB,kBAAH,CAAR,GAAiCN,OAAjC,GAA2Ce,aAA3C,GAA2DE,SAA9E;AACA,WAAOpC,GAAP;;;AAGWwC,IAAAA,UAAU,GAAGJ,SAHxB;AAIYK,IAAAA,UAJZ;;AAMD,GApJgC;;AAsJjCC,EAAAA,kBAtJiC,8BAsJdpC,CAtJc,EAsJJ;AAC3B,QAAMqC,IAAI,GAAGvB,QAAQ,CAACd,CAAC,CAACyB,wBAAH,CAAR,GAAuCX,QAAQ,CAACd,CAAC,CAACwB,+BAAH,CAAR,GAA8C,CAAlG;;AAEA,WAAO9B,GAAP;;AAEWM,IAAAA,CAAC,CAACqB,kCAFb;AAGSrB,IAAAA,CAAC,CAACsB,gCAHX;;;;;;AASWe,IAAAA,IATX;AAUYA,IAAAA,IAVZ;AAWoDrC,IAAAA,CAAC,CAACsC,SAXtD;AAYmBD,IAAAA,IAZnB;;AAcD,GAvKgC;;AAyKjCE,EAAAA,QAzKiC,oBAyKxBvC,CAzKwB,EAyKd;AACjB,WAAON,GAAP;;;AAGWM,IAAAA,CAAC,CAACwC,6BAHb;;AAKD,GA/KgC;;AAiLjCC,EAAAA,KAjLiC,iBAiL3BzC,CAjL2B,EAiLjB;AACd,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACkB,0BADb;AAEuBlB,IAAAA,CAAC,CAAC0C,gBAFzB;;AAID,GAtLgC;;AAwLjCC,EAAAA,MAxLiC,kBAwL1B3C,CAxL0B,EAwLhB;AACf,WAAON,GAAP;AACeM,IAAAA,CAAC,CAAC4C,mBADjB;AAEiB5C,IAAAA,CAAC,CAAC6C,qBAFnB;AAGa7C,IAAAA,CAAC,CAAC8C,qBAHf,EAGwC9C,CAAC,CAAC+C,iBAH1C,EAG+D/C,CAAC,CAACgD,wBAHjE,EAG6FhD,CAAC,CAACiD,gBAH/F;;;AAMWjD,IAAAA,CAAC,CAACkD,oBANb;AAOiBlD,IAAAA,CAAC,CAACmD,qBAPnB;;AASD,GAlMgC;;AAoMjCC,EAAAA,YApMiC,wBAoMpBpD,CApMoB,EAoMV;AACrB,WAAON,GAAP;;AAEeM,IAAAA,CAAC,CAACqD,yBAFjB;AAGiBrD,IAAAA,CAAC,CAACsD,2BAHnB;AAIatD,IAAAA,CAAC,CAACuB,wBAJf;;AAMD,GA3MgC;;AA6MjCgC,EAAAA,IA7MiC,gBA6M5BvD,CA7M4B,EA6MlB;AACb,WAAON,GAAP;AACmBM,IAAAA,CAAC,CAACwD,qBADrB;AAEexD,IAAAA,CAAC,CAAC+C,iBAFjB,EAEsC/C,CAAC,CAACyD,sBAFxC,EAEkEzD,CAAC,CAACiD,gBAFpE;AAGWjD,IAAAA,CAAC,CAAC0D,kBAHb;;AAKD,GAnNgC;;AAqNjCC,EAAAA,UArNiC,sBAqNtB3D,CArNsB,EAqNZ;AACnB,WAAON,GAAP;AACaM,IAAAA,CAAC,CAAC4D,sBADf;;;;;AAMe5D,IAAAA,CAAC,CAAC6D,uBANjB;;AAQD,GA9NgC;;AAgOjCC,EAAAA,eAhOiC,2BAgOjB9D,CAhOiB,EAgOP;AACxB,QAAM+D,YAAY;AAChB,QAAIjD,QAAQ,CAACd,CAAC,CAACe,uBAAH,CAAZ,GAA0CD,QAAQ,CAACd,CAAC,CAACmB,kBAAH,CAAlD,GAA2EL,QAAQ,CAACd,CAAC,CAACgE,mBAAH,CADrF;;AAGA,WAAOtE,GAAP;AACmBqE,IAAAA,YADnB;;AAGD,GAvOgC;;AAyOjCE,EAAAA,qBAzOiC,iCAyOXjE,CAzOW,EAyOD;AAC9B,WAAON,GAAP;AACmB,QAAIoB,QAAQ,CAACd,CAAC,CAACqB,kCAAH,CAAZ,GAAqDP,QAAQ,CAACd,CAAC,CAACyB,wBAAH,CADhF;;AAGD,GA7OgC;;AA+OjCyC,EAAAA,MA/OiC,kBA+O1BlE,CA/O0B,EA+OhB;AACf,WAAON,GAAP;AACaM,IAAAA,CAAC,CAACmE,qBADf,EACwCnE,CAAC,CAAC+C,iBAD1C,EAC+D/C,CAAC,CAACoE,wBADjE,EAC6FpE,CAAC,CAACiD,gBAD/F;AAEWjD,IAAAA,CAAC,CAACqE,oBAFb;AAGuBrE,IAAAA,CAAC,CAACO,iBAHzB,EAG8CP,CAAC,CAACO,iBAHhD;;AAKD,GArPgC;;AAuPjC+D,EAAAA,YAvPiC,wBAuPpBtE,CAvPoB,EAuPV;AACrB,WAAON,GAAP;AACaM,IAAAA,CAAC,CAACuE,wBADf;;AAGD,GA3PgC;;AA6PjCC,EAAAA,KA7PiC,iBA6P3BxE,CA7P2B,EA6PjB;AACd,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAACyE,0BADnB;AAEoBzE,IAAAA,CAAC,CAAC0E,6BAFtB;AAGgB1E,IAAAA,CAAC,CAAC2E,aAHlB;;AAKD,GAnQgC;;AAqQjCC,EAAAA,WArQiC,uBAqQrB5E,CArQqB,EAqQX;AACpB,WAAON,GAAP;AACmBM,IAAAA,CAAC,CAAC6E,4BADrB;AAEoB7E,IAAAA,CAAC,CAAC8E,6BAFtB;AAGgB9E,IAAAA,CAAC,CAAC+E,kBAHlB;AAImB/E,IAAAA,CAAC,CAACgF,sBAJrB;;;;;;;;;;AAckBhF,IAAAA,CAAC,CAACiF,sBAdpB;;;AAiBD,GAvRgC;;AAyRjCC,EAAAA,iBAzRiC,6BAyRflF,CAzRe,EAyRL;AAC1B,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAACuB,wBADtB;;AAGD,GA7RgC;;AA+RjC4D,EAAAA,WA/RiC,uBA+RrBnF,CA/RqB,EA+RX;AACpB,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAACoF,0BADnB;AAEgBpF,IAAAA,CAAC,CAACqF,yBAFlB;AAGgBrF,IAAAA,CAAC,CAAC+E,kBAHlB;AAIgB/E,IAAAA,CAAC,CAACsF,sBAJlB;;;;;;;;;;AAckBtF,IAAAA,CAAC,CAACuF,sBAdpB;;;AAiBD,GAjTgC;;AAmTjCC,EAAAA,UAnTiC,sBAmTtBxF,CAnTsB,EAmTZ;AACnB,WAAON,GAAP;;AAEkBM,IAAAA,CAAC,CAACyF,qBAFpB;;;AAKD,GAzTgC;;AA2TjCC,EAAAA,gBA3TiC,4BA2ThB1F,CA3TgB,EA2TN;AACzB,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAAC2F,kCADtB;;AAGD,GA/TgC;;AAiUjCC,EAAAA,iBAjUiC,6BAiUf5F,CAjUe,EAiUL;AAC1B,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAAC6F,eADnB;;AAGD,GArUgC;;AAuUjCC,EAAAA,uBAvUiC,qCAuUP;AACxB,WAAOpG,GAAP;;;AAGD,GA3UgC;;AA6UjCqG,EAAAA,kBA7UiC,gCA6UZ;AACnB,WAAOrG,GAAP;;;AAGD,GAjVgC;;AAmVjCsG,EAAAA,sBAnViC,kCAmVVhG,CAnVU,EAmVA;AAC/B,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAACiG,kBADtB;;AAGD,GAvVgC;;AAyVjCC,EAAAA,4BAzViC,wCAyVJlG,CAzVI,EAyVM;AACrC,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAAC4D,sBADtB;;AAGD,GA7VgC;;AA+VjCuC,EAAAA,mBA/ViC,iCA+VX;AACpB,WAAOzG,GAAP;;;;;;AAMD,GAtWgC;;AAwWjC0G,EAAAA,qBAxWiC,mCAwWT;AACtB,WAAO1G,GAAP;;;;AAID,GA7WgC;;AA+WjC2G,EAAAA,cA/WiC,0BA+WlBrG,CA/WkB,EA+WR;AACvB,WAAON,GAAP;AACmBM,IAAAA,CAAC,CAACsG,0BADrB;;;;AAKD,GArXgC;;AAuXjCC,EAAAA,mBAvXiC,iCAuXX;AACpB,WAAO7G,GAAP;;;AAGD,GA3XgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: ${t.modalWindowShadow};\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer() {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n font-weight: ${t.modalHeaderFontWeight};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n position: relative;\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n border-radius: ${t.modalBodyBorderRadius};\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: ${t.modalFixedHeaderMarginBottom};\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: ${t.modalFixedFooterPaddingTop};\n margin-top: ${t.modalFixedFooterMarginTop};\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding(t: Theme) {\n return css`\n padding-bottom: ${t.modalHeaderAdditionalPaddingBottom};\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader() {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: auto;\n `;\n },\n\n modalSeparatorWrapper() {\n return css`\n position: absolute;\n width: 100%;\n `;\n },\n\n modalSeparator(t: Theme) {\n return css`\n border-bottom: ${t.modalSeparatorBorderBottom};\n margin: 0 32px;\n transition: margin 0.3s;\n `;\n },\n\n modalSeparatorFixed() {\n return css`\n margin: 0 16px;\n `;\n },\n});\n"]}
@@ -15,7 +15,6 @@ export declare const styles: {
15
15
  mobileCloseWrapper(t: Theme): string;
16
16
  disabled(t: Theme): string;
17
17
  focus(t: Theme): string;
18
- headerWrapper(): string;
19
18
  header(t: Theme): string;
20
19
  mobileHeader(t: Theme): string;
21
20
  body(t: Theme): string;
@@ -24,7 +23,6 @@ export declare const styles: {
24
23
  mobileHeaderWithClose(t: Theme): string;
25
24
  footer(t: Theme): string;
26
25
  mobileFooter(t: Theme): string;
27
- footerWrapper(): string;
28
26
  panel(t: Theme): string;
29
27
  fixedHeader(t: Theme): string;
30
28
  mobileFixedHeader(t: Theme): string;
@@ -65,8 +65,6 @@ var ModalBody = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /
65
65
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
66
66
  rootNodeRef: _this3.setRootNode
67
67
  }, _this3.props), /*#__PURE__*/React.createElement(ZIndex, {
68
- priority: 'ModalBody',
69
- createStackingContext: true,
70
68
  className: cx((_cx = {}, _cx[styles.body(_this3.theme)] = true, _cx[styles.mobileBody(_this3.theme)] = _this3.isMobileLayout, _cx[styles.bodyWithoutHeader(_this3.theme)] = !hasHeader, _cx[styles.mobileBodyWithoutHeader()] = !hasHeader && _this3.isMobileLayout, _cx[styles.bodyAddPaddingForPanel(_this3.theme)] = additionalPadding, _cx[styles.mobileBodyAddPaddingForPanel(_this3.theme)] = additionalPadding && _this3.isMobileLayout, _cx[styles.bodyWithoutPadding()] = noPadding, _cx))
71
69
  }, _this3.isMobileLayout ? /*#__PURE__*/React.createElement(ResizeDetector, {
72
70
  onResize: _this3.handleResize
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalBody.tsx"],"names":["React","ThemeContext","ZIndex","CommonWrapper","cx","responsiveLayout","LayoutEvents","ResizeDetector","rootNode","ModalContext","styles","getModalBodyTheme","ModalBody","handleResize","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,gBAAT,QAAiC,+BAAjC;AACA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,iBAAT,QAAkC,qBAAlC;;;;;;;;;;;;;;;;AAgBA,OAPA;AACA;AACA;AACA;AACA,GAGA,IAAaC,SAAb,GAFCP,gBAED,UADCG,QACD;;;;;;;;;;;;;;;AAmBUK,IAAAA,YAnBV,GAmByB,YAAM;AAC3BP,MAAAA,YAAY,CAACQ,IAAb;AACD,KArBH,uDAQSC,MART,GAQE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaL,iBAAiB,CAACK,KAAD,CAA9B,CACA,oBAAO,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,CAjBH;;AAuBSA,EAAAA,UAvBT,GAuBE,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,8BAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,8BAAC,MAAD;AACE,YAAA,QAAQ,EAAE,WADZ;AAEE,YAAA,qBAAqB,MAFvB;AAGE,YAAA,SAAS,EAAEf,EAAE;AACVM,YAAAA,MAAM,CAACa,IAAP,CAAY,MAAI,CAACP,KAAjB,CADU,IACgB,IADhB;AAEVN,YAAAA,MAAM,CAACc,UAAP,CAAkB,MAAI,CAACR,KAAvB,CAFU,IAEsB,MAAI,CAACS,cAF3B;AAGVf,YAAAA,MAAM,CAACgB,iBAAP,CAAyB,MAAI,CAACV,KAA9B,CAHU,IAG6B,CAACK,SAH9B;AAIVX,YAAAA,MAAM,CAACiB,uBAAP,EAJU,IAIyB,CAACN,SAAD,IAAc,MAAI,CAACI,cAJ5C;AAKVf,YAAAA,MAAM,CAACkB,sBAAP,CAA8B,MAAI,CAACZ,KAAnC,CALU,IAKkCI,iBALlC;AAMVV,YAAAA,MAAM,CAACmB,4BAAP,CAAoC,MAAI,CAACb,KAAzC,CANU,IAMwCI,iBAAiB,IAAI,MAAI,CAACK,cANlE;AAOVf,YAAAA,MAAM,CAACoB,kBAAP,EAPU,IAOoBZ,SAPpB,OAHf;;;AAaG,UAAA,MAAI,CAACO,cAAL;AACC,8BAAC,cAAD,IAAgB,QAAQ,EAAE,MAAI,CAACZ,YAA/B,IAA8C,MAAI,CAACM,KAAL,CAAWY,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACZ,KAAL,CAAWY,QAhBf,CADF,CADD,GADH,CADF;;;;;;;AA2BD,GApDH,oBAA+B/B,KAAK,CAACgC,SAArC,WACgBC,mBADhB,GACsC,WADtC,UAEgBC,cAFhB,GAEiC,IAFjC","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n priority={'ModalBody'}\n createStackingContext\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["ModalBody.tsx"],"names":["React","ThemeContext","ZIndex","CommonWrapper","cx","responsiveLayout","LayoutEvents","ResizeDetector","rootNode","ModalContext","styles","getModalBodyTheme","ModalBody","handleResize","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,gBAAT,QAAiC,+BAAjC;AACA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,iBAAT,QAAkC,qBAAlC;;;;;;;;;;;;;;;;AAgBA,OAPA;AACA;AACA;AACA;AACA,GAGA,IAAaC,SAAb,GAFCP,gBAED,UADCG,QACD;;;;;;;;;;;;;;;AAmBUK,IAAAA,YAnBV,GAmByB,YAAM;AAC3BP,MAAAA,YAAY,CAACQ,IAAb;AACD,KArBH,uDAQSC,MART,GAQE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaL,iBAAiB,CAACK,KAAD,CAA9B,CACA,oBAAO,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,CAjBH;;AAuBSA,EAAAA,UAvBT,GAuBE,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,8BAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,8BAAC,MAAD;AACE,YAAA,SAAS,EAAEf,EAAE;AACVM,YAAAA,MAAM,CAACa,IAAP,CAAY,MAAI,CAACP,KAAjB,CADU,IACgB,IADhB;AAEVN,YAAAA,MAAM,CAACc,UAAP,CAAkB,MAAI,CAACR,KAAvB,CAFU,IAEsB,MAAI,CAACS,cAF3B;AAGVf,YAAAA,MAAM,CAACgB,iBAAP,CAAyB,MAAI,CAACV,KAA9B,CAHU,IAG6B,CAACK,SAH9B;AAIVX,YAAAA,MAAM,CAACiB,uBAAP,EAJU,IAIyB,CAACN,SAAD,IAAc,MAAI,CAACI,cAJ5C;AAKVf,YAAAA,MAAM,CAACkB,sBAAP,CAA8B,MAAI,CAACZ,KAAnC,CALU,IAKkCI,iBALlC;AAMVV,YAAAA,MAAM,CAACmB,4BAAP,CAAoC,MAAI,CAACb,KAAzC,CANU,IAMwCI,iBAAiB,IAAI,MAAI,CAACK,cANlE;AAOVf,YAAAA,MAAM,CAACoB,kBAAP,EAPU,IAOoBZ,SAPpB,OADf;;;AAWG,UAAA,MAAI,CAACO,cAAL;AACC,8BAAC,cAAD,IAAgB,QAAQ,EAAE,MAAI,CAACZ,YAA/B,IAA8C,MAAI,CAACM,KAAL,CAAWY,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACZ,KAAL,CAAWY,QAdf,CADF,CADD,GADH,CADF;;;;;;;AAyBD,GAlDH,oBAA+B/B,KAAK,CAACgC,SAArC,WACgBC,mBADhB,GACsC,WADtC,UAEgBC,cAFhB,GAEiC,IAFjC","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
@@ -2,7 +2,6 @@ import React, { useContext, useLayoutEffect } from 'react';
2
2
  import { getScrollWidth } from "../../../lib/dom/getScrollWidth";
3
3
  import { Sticky } from "../../Sticky";
4
4
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
5
- import { ZIndex } from "../../../internal/ZIndex";
6
5
  import { CommonWrapper } from "../../../internal/CommonWrapper";
7
6
  import { cx } from "../../../lib/theming/Emotion";
8
7
  import { useResponsiveLayout } from "../../ResponsiveLayout";
@@ -54,13 +53,10 @@ function ModalFooter(props) {
54
53
  }, children) : children));
55
54
  };
56
55
 
57
- return /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement(ZIndex, {
58
- priority: 'ModalFooter',
59
- className: styles.footerWrapper()
60
- }, sticky ? /*#__PURE__*/React.createElement(Sticky, {
56
+ return /*#__PURE__*/React.createElement(CommonWrapper, props, sticky ? /*#__PURE__*/React.createElement(Sticky, {
61
57
  side: "bottom",
62
58
  offset: modal.horizontalScroll ? getScrollWidth() : 0
63
- }, renderContent) : renderContent()));
59
+ }, renderContent) : renderContent());
64
60
  }
65
61
 
66
62
  ModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalFooter.tsx"],"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","ZIndex","CommonWrapper","cx","useResponsiveLayout","Gapped","isNonNullable","styles","ModalContext","ModalSeparator","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","sticky","isMobile","gap","panel","children","setHasFooter","setHasPanel","renderContent","fixed","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","footerWrapper","horizontalScroll","__KONTUR_REACT_UI__","__MODAL_FOOTER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { Gapped, GappedProps } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n /**\n * Закрепляет футер снизу модального окна\n *\n * На десктопе по умолчанию равен `true`\n * На мобильных по умолчанию равен `false`\n */\n sticky?: boolean;\n /**\n * Контент футера\n */\n children?: ReactNode;\n /**\n * Задаёт отступ между элементами футера\n */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n <ZIndex priority={'ModalFooter'} className={styles.footerWrapper()}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </ZIndex>\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"]}
1
+ {"version":3,"sources":["ModalFooter.tsx"],"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","Gapped","isNonNullable","styles","ModalContext","ModalSeparator","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","sticky","isMobile","gap","panel","children","setHasFooter","setHasPanel","renderContent","fixed","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","horizontalScroll","__KONTUR_REACT_UI__","__MODAL_FOOTER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { Gapped, GappedProps } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n /**\n * Закрепляет футер снизу модального окна\n *\n * На десктопе по умолчанию равен `true`\n * На мобильных по умолчанию равен `false`\n */\n sticky?: boolean;\n /**\n * Контент футера\n */\n children?: ReactNode;\n /**\n * Задаёт отступ между элементами футера\n */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"]}
@@ -1,7 +1,6 @@
1
1
  import React, { useContext, useLayoutEffect } from 'react';
2
2
  import { Sticky } from "../../Sticky";
3
3
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
4
- import { ZIndex } from "../../../internal/ZIndex";
5
4
  import { CommonWrapper } from "../../../internal/CommonWrapper";
6
5
  import { cx } from "../../../lib/theming/Emotion";
7
6
  import { useResponsiveLayout } from "../../ResponsiveLayout";
@@ -48,12 +47,9 @@ function ModalHeader(props) {
48
47
  }));
49
48
  };
50
49
 
51
- return /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement(ZIndex, {
52
- priority: 'ModalHeader',
53
- className: styles.headerWrapper()
54
- }, sticky ? /*#__PURE__*/React.createElement(Sticky, {
50
+ return /*#__PURE__*/React.createElement(CommonWrapper, props, sticky ? /*#__PURE__*/React.createElement(Sticky, {
55
51
  side: "top"
56
- }, renderContent) : renderContent()));
52
+ }, renderContent) : renderContent());
57
53
  }
58
54
 
59
55
  ModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalHeader.tsx"],"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","ZIndex","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalSeparator","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","sticky","isMobile","children","setHasHeader","renderContent","fixed","header","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","mobileFixedHeader","close","headerWithClose","mobileHeaderWithClose","requestClose","disableClose","headerWrapper","__KONTUR_REACT_UI__","__MODAL_HEADER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n <ZIndex priority={'ModalHeader'} className={styles.headerWrapper()}>\n {sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}\n </ZIndex>\n </CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"]}
1
+ {"version":3,"sources":["ModalHeader.tsx"],"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalSeparator","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","sticky","isMobile","children","setHasHeader","renderContent","fixed","header","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","mobileFixedHeader","close","headerWithClose","mobileHeaderWithClose","requestClose","disableClose","__KONTUR_REACT_UI__","__MODAL_HEADER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </>\n );\n };\n\n return (\n <CommonWrapper {...props}>{sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}</CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"]}
@@ -131,14 +131,15 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
131
131
  className: styles.capsLockDetector(),
132
132
  "data-tid": PasswordInputDataTids.capsLockDetector
133
133
  }), /*#__PURE__*/React.createElement("span", {
134
- "data-tid": PasswordInputDataTids.eyeIcon,
135
- className: cx(styles.toggleVisibility(_this.theme), _this.getEyeWrapperClassname()),
136
- onClick: _this.handleToggleVisibility
137
- }, !_this.props.disabled && /*#__PURE__*/React.createElement(PasswordInputIcon, {
134
+ className: cx(styles.toggleVisibility(_this.theme), _this.getEyeWrapperClassname())
135
+ }, !_this.props.disabled && /*#__PURE__*/React.createElement("span", {
136
+ onClick: _this.handleToggleVisibility,
137
+ "data-tid": PasswordInputDataTids.eyeIcon
138
+ }, /*#__PURE__*/React.createElement(PasswordInputIcon, {
138
139
  size: _this.props.size,
139
140
  visible: _this.state.visible,
140
141
  isTheme2022: isTheme2022(_this.theme)
141
- })));
142
+ }))));
142
143
  };
143
144
 
144
145
  _this.refInput = function (element) {
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","createPropsGetter","isTheme2022","styles","PasswordInputIcon","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname() {\n switch (this.getProps().size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span\n data-tid={PasswordInputDataTids.eyeIcon}\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && (\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","createPropsGetter","isTheme2022","styles","PasswordInputIcon","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname() {\n switch (this.getProps().size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <span onClick={this.handleToggleVisibility} data-tid={PasswordInputDataTids.eyeIcon}>\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </span>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
@@ -185,16 +185,20 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
185
185
  (_this$scrollX3 = _this.scrollX) == null ? void 0 : _this$scrollX3.setHover(false);
186
186
  };
187
187
 
188
+ _this.updateInnerElement = function () {
189
+ var _this$scrollX4, _this$scrollY4;
190
+
191
+ (_this$scrollX4 = _this.scrollX) == null ? void 0 : _this$scrollX4.setInnerElement(_this.inner);
192
+ (_this$scrollY4 = _this.scrollY) == null ? void 0 : _this$scrollY4.setInnerElement(_this.inner);
193
+ };
194
+
188
195
  return _this;
189
196
  }
190
197
 
191
198
  var _proto = ScrollContainer.prototype;
192
199
 
193
200
  _proto.componentDidMount = function componentDidMount() {
194
- var _this$scrollX4, _this$scrollY4;
195
-
196
- (_this$scrollX4 = this.scrollX) == null ? void 0 : _this$scrollX4.setInnerElement(this.inner);
197
- (_this$scrollY4 = this.scrollY) == null ? void 0 : _this$scrollY4.setInnerElement(this.inner);
201
+ this.updateInnerElement();
198
202
  };
199
203
 
200
204
  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
@@ -211,6 +215,10 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
211
215
  });
212
216
  }
213
217
  }
218
+
219
+ if (prevProps.disabled !== this.props.disabled && !this.props.disabled) {
220
+ this.updateInnerElement();
221
+ }
214
222
  };
215
223
  /**
216
224
  * @public
@@ -1 +1 @@
1
- {"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","getDOMRect","createPropsGetter","isTestEnv","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainerDataTids","root","inner","ScrollContainer","getProps","defaultProps","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","handleMouseMove","handleMouseLeave","refInner","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","offsetY","offsetX","invert","hideScrollBar","disableAnimations","hideScrollBarDelay","offset","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,MAAT,QAAuB,kBAAvB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,UAAT,QAA2B,0BAA3B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,SAAT,QAA0B,8BAA1B;;AAEA,SAASC,MAAT,EAAiBC,aAAjB,QAAsC,0BAAtC;AACA,SAASC,yBAAT,QAA0C,6BAA1C;AACA;AACEC,gBADF;AAEEC,4BAFF;AAGEC,4BAHF;AAIO,2BAJP;AAKA,SAAqBC,SAArB,QAA4D,aAA5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,OAAO,IAAMC,uBAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,KAAK,EAAE,wBAF8B,EAAhC;;;;;;;;;;;AAaP,WAAaC,eAAb,GADCd,QACD;;;;;;;;;;;;;;;;;;;;;AAqBUe,IAAAA,QArBV,GAqBqBb,iBAAiB,CAACY,eAAe,CAACE,YAAjB,CArBtC;;;;;;;;;;;;;;;;;;;;;;;;AA6CSC,IAAAA,MA7CT,GA6CkB,YAAM;AACpB,UAAMC,KAAK,GAAG,MAAKA,KAAnB;;AAEA,UAAI,MAAKA,KAAL,CAAWC,QAAf,EAAyB;AACvB,eAAO,MAAKD,KAAL,CAAWE,QAAlB;AACD;;AAED,UAAMC,UAA+B,GAAG;AACtCC,QAAAA,cAAc,EAAE,MAAKP,QAAL,GAAgBQ,eADM;AAEtCC,QAAAA,SAAS,EAAEN,KAAK,CAACM,SAFqB;AAGtCC,QAAAA,QAAQ,EAAEP,KAAK,CAACO,QAHsB,EAAxC;;;AAMA,UAAMC,UAAU,GAAG,MAAKC,eAAL,CAAqB,GAArB,CAAnB;AACA,UAAMC,UAAU,GAAG,MAAKD,eAAL,CAAqB,GAArB,CAAnB;;AAEA;AACE,4BAAC,aAAD,aAAe,WAAW,EAAE,MAAKE,WAAjC,IAAkD,MAAKX,KAAvD;AACE;AACE,sBAAUP,uBAAuB,CAACC,IADpC;AAEE,UAAA,SAAS,EAAER,MAAM,CAACQ,IAAP,EAFb;AAGE,UAAA,WAAW,EAAE,MAAKkB,eAHpB;AAIE,UAAA,YAAY,EAAE,MAAKC,gBAJrB;;AAMGL,QAAAA,UANH;AAOGE,QAAAA,UAPH;AAQE;AACE,UAAA,KAAK,EAAEP,UADT;AAEE,UAAA,GAAG,EAAE,MAAKW,QAFZ;AAGE,UAAA,SAAS,EAAElC,EAAE,CAACM,MAAM,CAACS,KAAP,EAAD,EAAiBR,aAAa,CAACQ,KAA/B,EAAsCd,MAAM,IAAIK,MAAM,CAAC6B,SAAP,EAAhD,CAHf;AAIE,sBAAUtB,uBAAuB,CAACE,KAJpC;AAKE,UAAA,QAAQ,EAAE,MAAKqB,kBALjB;;AAOGhB,QAAAA,KAAK,CAACE,QAPT,CARF,CADF,CADF;;;;;AAsBD,KAnFH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqJUO,IAAAA,eArJV,GAqJ4B,UAACQ,IAAD,EAAsB;AAC9C,UAAMC,YAAY,GAAGD,IAAI,KAAK,GAAT,GAAe,MAAKE,aAApB,GAAoC,MAAKC,aAA9D;AACA,2BAA2F,MAAKvB,QAAL,EAA3F,CAAQwB,OAAR,kBAAQA,OAAR,CAAiBC,OAAjB,kBAAiBA,OAAjB,CAA0BC,MAA1B,kBAA0BA,MAA1B,CAAkCC,aAAlC,kBAAkCA,aAAlC,CAAiDC,iBAAjD,kBAAiDA,iBAAjD,CAAoEC,kBAApE,kBAAoEA,kBAApE;;AAEA,UAAMC,MAAM,GAAGV,IAAI,KAAK,GAAT,GAAeK,OAAf,GAAyBD,OAAxC;;AAEA;AACE,4BAAC,SAAD;AACE,UAAA,IAAI,EAAEJ,IADR;AAEE,UAAA,GAAG,EAAEC,YAFP;AAGE,UAAA,MAAM,EAAEK,MAHV;AAIE,UAAA,mBAAmB,EAAE,MAAKK,uBAJ5B;AAKE,UAAA,MAAM,EAAED,MALV;AAME,UAAA,aAAa,EAAEH,aANjB;AAOE,UAAA,iBAAiB,EAAEC,iBAPrB;AAQE,UAAA,kBAAkB,EAAEC,kBARtB,GADF;;;AAYD,KAvKH;;AAyKUE,IAAAA,uBAzKV,GAyKoC,UAACC,WAAD,EAAoCZ,IAApC,EAAyD;AACzF,UAAI,CAAC,MAAKa,OAAN,IAAiB,CAAC,MAAKC,OAA3B,EAAoC;AAClC;AACD;;AAED,UAAId,IAAI,KAAK,GAAb,EAAkB;AAChB,YAAMe,YAAY,GAAG1C,4BAA4B,CAACuC,WAAD,CAAjD;;AAEA,cAAK7B,KAAL,CAAWiC,oBAAX,0BAAKjC,KAAL,CAAWiC,oBAAX,CAAkCD,YAAlC;AACA;AACD;;AAED,UAAME,YAAY,GAAG3C,4BAA4B,CAACsC,WAAD,CAAjD;;AAEA,YAAK7B,KAAL,CAAWmC,mBAAX,0BAAKnC,KAAL,CAAWmC,mBAAX,CAAiCD,YAAjC;AACA,YAAKlC,KAAL,CAAWoC,oBAAX,0BAAKpC,KAAL,CAAWoC,oBAAX,CAAkCF,YAAlC;AACD,KAzLH;;AA2LUd,IAAAA,aA3LV,GA2L0B,UAACiB,SAAD,EAAoC;AAC1D,YAAKP,OAAL,GAAeO,SAAf;AACD,KA7LH;;AA+LUlB,IAAAA,aA/LV,GA+L0B,UAACkB,SAAD,EAAoC;AAC1D,YAAKN,OAAL,GAAeM,SAAf;AACD,KAjMH;;AAmMUvB,IAAAA,QAnMV,GAmMqB,UAACwB,OAAD,EAAiC;AAClD,UAAI,CAAC,MAAK3C,KAAN,IAAe2C,OAAf,IAA0B,MAAKzC,QAAL,GAAgB0C,mBAA9C,EAAmE;AACjED,QAAAA,OAAO,CAACE,gBAAR,CAAyB,OAAzB,EAAkC,MAAKC,sBAAvC,EAA+D,EAAEC,OAAO,EAAE,KAAX,EAA/D;AACD;AACD,UAAI,MAAK/C,KAAL,IAAc,CAAC2C,OAAnB,EAA4B;AAC1B,cAAK3C,KAAL,CAAWgD,mBAAX,CAA+B,OAA/B,EAAwC,MAAKF,sBAA7C;AACD;AACD,YAAK9C,KAAL,GAAa2C,OAAb;AACD,KA3MH;;AA6MUtB,IAAAA,kBA7MV,GA6M+B,UAAC4B,KAAD,EAA0C;AACrE,6BAAKd,OAAL,mCAAce,MAAd,CAAqBD,KAArB;AACA,6BAAKb,OAAL,mCAAcc,MAAd,CAAqBD,KAArB;;AAEA,YAAK5C,KAAL,CAAW8C,QAAX,0BAAK9C,KAAL,CAAW8C,QAAX,CAAsBF,KAAtB;AACA,UAAI,MAAK/C,QAAL,GAAgB0C,mBAApB,EAAyC;AACvCK,QAAAA,KAAK,CAACG,cAAN;AACA;AACD;AACDrE,MAAAA,YAAY,CAACsE,IAAb;AACD,KAvNH;;AAyNUP,IAAAA,sBAzNV,GAyNmC,UAACG,KAAD,EAAkB;AACjD,UAAI,CAAC,MAAKjD,KAAN,IAAe,EAAEiD,KAAK,YAAYK,UAAnB,CAAnB,EAAmD;AACjD;AACD;;AAED,UAAMhC,IAAgB,GAAG2B,KAAK,CAACM,QAAN,GAAiB,GAAjB,GAAuB,GAAhD;;AAEA,UAAI,MAAKC,YAAL,CAAkBlC,IAAlB,CAAJ,EAA6B;AAC3B,oCAA8B7B,yBAAyB,CAAC6B,IAAD,CAAvD,CAAQmC,GAAR,yBAAQA,GAAR,CAAaC,IAAb,yBAAaA,IAAb,CAAmB1B,MAAnB,yBAAmBA,MAAnB;;AAEA,YAAIiB,KAAK,CAACU,MAAN,GAAe,CAAf,IAAoB,MAAK3D,KAAL,CAAW0D,IAAX,KAAoB,MAAK1D,KAAL,CAAWyD,GAAX,IAAkB,MAAKzD,KAAL,CAAWgC,MAAX,CAA9D,EAAkF;AAChFiB,UAAAA,KAAK,CAACG,cAAN;AACA,iBAAO,KAAP;AACD;AACD,YAAIH,KAAK,CAACU,MAAN,GAAe,CAAf,IAAoB,MAAK3D,KAAL,CAAWyD,GAAX,KAAmB,CAA3C,EAA8C;AAC5CR,UAAAA,KAAK,CAACG,cAAN;AACA,iBAAO,KAAP;AACD;AACF;AACF,KA5OH;;AA8OUnC,IAAAA,eA9OV,GA8O4B,UAACgC,KAAD,EAA6C;AACrE,UAAMW,KAAK,GAAGxE,UAAU,CAAC6D,KAAK,CAACY,aAAP,CAAV,CAAgCD,KAAhC,GAAwCX,KAAK,CAACa,KAA5D;AACA,UAAMC,MAAM,GAAG3E,UAAU,CAAC6D,KAAK,CAACY,aAAP,CAAV,CAAgCE,MAAhC,GAAyCd,KAAK,CAACe,KAA9D;;AAEA,8BAAK7B,OAAL,oCAAc8B,QAAd,CAAuBL,KAAK,IAAI,EAAhC;AACA,8BAAKxB,OAAL,oCAAc6B,QAAd,CAAuBL,KAAK,IAAI,EAAT,IAAeG,MAAM,IAAI,EAAhD;AACD,KApPH;;AAsPU7C,IAAAA,gBAtPV,GAsP6B,YAAM;AAC/B,8BAAKiB,OAAL,oCAAc8B,QAAd,CAAuB,KAAvB;AACA,8BAAK7B,OAAL,oCAAc6B,QAAd,CAAuB,KAAvB;AACD,KAzPH,6DA4BSC,iBA5BT,GA4BE,6BAA2B,oCACzB,uBAAK9B,OAAL,oCAAc+B,eAAd,CAA8B,KAAKnE,KAAnC,EACA,uBAAKmC,OAAL,oCAAcgC,eAAd,CAA8B,KAAKnE,KAAnC,EACD,CA/BH,QAiCSoE,kBAjCT,GAiCE,4BAA0BC,SAA1B,EAA2D,CACzD,IAAMzB,mBAAmB,GAAG,KAAK1C,QAAL,GAAgB0C,mBAA5C,CACA,IAAI,KAAK5C,KAAT,EAAgB,CACd,IAAIqE,SAAS,CAACzB,mBAAV,IAAiC,CAACA,mBAAtC,EAA2D,CACzD,KAAK5C,KAAL,CAAWgD,mBAAX,CAA+B,OAA/B,EAAwC,KAAKF,sBAA7C,EACD,CACD,IAAI,CAACuB,SAAS,CAACzB,mBAAX,IAAkCA,mBAAtC,EAA2D,CACzD,KAAK5C,KAAL,CAAW6C,gBAAX,CAA4B,OAA5B,EAAqC,KAAKC,sBAA1C,EAAkE,EAAEC,OAAO,EAAE,KAAX,EAAlE,EACD,CACF,CACF,CA3CH,EAqFE;AACF;AACA;AACA,KAxFA,OAyFSuB,QAzFT,GAyFE,kBAAgB3B,OAAhB,EAAgD,CAC9C,IAAI,CAACA,OAAD,IAAY,CAAC,KAAK3C,KAAtB,EAA6B,CAC3B,OACD,CAED,KAAKA,KAAL,CAAWuE,UAAX,GAAwB5B,OAAO,CAAC6B,UAAhC,CACA,KAAKxE,KAAL,CAAWyE,SAAX,GAAuB/E,gBAAgB,CAACiD,OAAD,EAAU,KAAK3C,KAAf,CAAvC,CACD,CAhGH,CAkGE;AACF;AACA,KApGA,QAqGS0E,WArGT,GAqGE,uBAAqB,CACnB,IAAI,CAAC,KAAK1E,KAAV,EAAiB,CACf,OACD,CACD,KAAKA,KAAL,CAAWyE,SAAX,GAAuB,CAAvB,CACD,CA1GH,CA4GE;AACF;AACA,KA9GA,QA+GSE,cA/GT,GA+GE,0BAAwB,CACtB,IAAI,CAAC,KAAK3E,KAAV,EAAiB,CACf,OACD,CACD,KAAKA,KAAL,CAAWyE,SAAX,GAAuB,KAAKzE,KAAL,CAAW4E,YAAX,GAA0B,KAAK5E,KAAL,CAAW6E,YAA5D,CACD,CApHH,CAsHE;AACF;AACA,KAxHA,QAyHSC,YAzHT,GAyHE,wBAAsB,CACpB,IAAI,CAAC,KAAK9E,KAAV,EAAiB,CACf,OACD,CACD,KAAKA,KAAL,CAAWuE,UAAX,GAAwB,CAAxB,CACD,CA9HH,CAgIE;AACF;AACA,KAlIA,QAmISQ,aAnIT,GAmIE,yBAAuB,CACrB,IAAI,CAAC,KAAK/E,KAAV,EAAiB,CACf,OACD,CAED,KAAKA,KAAL,CAAWuE,UAAX,GAAwB,KAAKvE,KAAL,CAAWgF,WAAX,GAAyB,KAAKhF,KAAL,CAAWiF,WAA5D,CACD,CAzIH,QA2IUzB,YA3IV,GA2IE,sBAAqBlC,IAArB,EAAuC,CACrC,IAAI,CAAC,KAAKtB,KAAV,EAAiB,CACf,OAAO,KAAP,CACD,CAED,OAAOsB,IAAI,KAAK,GAAT,GACH,KAAKtB,KAAL,CAAWiF,WAAX,GAAyB,KAAKjF,KAAL,CAAWgF,WADjC,GAEH,KAAKhF,KAAL,CAAW6E,YAAX,GAA0B,KAAK7E,KAAL,CAAW4E,YAFzC,CAGD,CAnJH,0BAAqC/F,KAAK,CAACqG,SAA3C,WACgBC,mBADhB,GACsC,iBADtC,UAGgBC,SAHhB,GAG4B,EACxBxD,MAAM,EAAE9C,SAAS,CAACuG,IADM,EAExBzE,QAAQ,EAAE9B,SAAS,CAACwG,SAAV,CAAoB,CAACxG,SAAS,CAACyG,MAAX,EAAmBzG,SAAS,CAAC0G,MAA7B,CAApB,CAFc,EAGxB7E,SAAS,EAAE7B,SAAS,CAACwG,SAAV,CAAoB,CAACxG,SAAS,CAACyG,MAAX,EAAmBzG,SAAS,CAAC0G,MAA7B,CAApB,CAHa,EAIxB9E,eAAe,EAAE5B,SAAS,CAAC2G,KAAV,CAAgB,CAAC,MAAD,EAAS,QAAT,CAAhB,CAJO,EAKxB7C,mBAAmB,EAAE9D,SAAS,CAACuG,IALP,EAMxB7C,mBAAmB,EAAE1D,SAAS,CAAC4G,IANP,EAH5B,UAYgBvF,YAZhB,GAY6C,EACzCyB,MAAM,EAAE,KADiC,EAEzClB,eAAe,EAAE,MAFwB,EAGzCkC,mBAAmB,EAAE,KAHoB,EAIzCf,aAAa,EAAE,KAJ0B,EAKzCC,iBAAiB,EAAExC,SALsB,EAMzCyC,kBAAkB,EAAE,GANqB,EAZ7C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\ntype OffsetCSSPropsY = 'top' | 'right' | 'bottom';\ntype OffsetCSSPropsX = 'right' | 'bottom' | 'left';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert?: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll?: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Отключение кастомного скролла\n */\n disabled?: boolean;\n /**\n * Смещение вертикального скроллбара\n */\n offsetY?: Partial<Record<OffsetCSSPropsY, React.CSSProperties[OffsetCSSPropsY]>>;\n /**\n * Смещение горизонтального скроллбара\n */\n offsetX?: Partial<Record<OffsetCSSPropsX, React.CSSProperties[OffsetCSSPropsX]>>;\n /**\n * Скрывать скроллбар при отсутствии активности пользователя\n */\n hideScrollBar?: boolean;\n /**\n * Задержка перед скрытием скроллбара, ms. Работает только если `hideScrollBar = true`\n */\n hideScrollBarDelay?: number;\n /**\n * Отключить анимации\n */\n disableAnimations?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n ScrollContainerProps,\n 'invert' | 'scrollBehaviour' | 'preventWindowScroll' | 'hideScrollBar' | 'disableAnimations' | 'hideScrollBarDelay'\n >\n>;\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n hideScrollBar: false,\n disableAnimations: isTestEnv,\n hideScrollBarDelay: 500,\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {Element} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n const { offsetY, offsetX, invert, hideScrollBar, disableAnimations, hideScrollBarDelay } = this.getProps();\n\n const offset = axis === 'x' ? offsetX : offsetY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={invert}\n onScrollStateChange={this.handleScrollStateChange}\n offset={offset}\n hideScrollBar={hideScrollBar}\n disableAnimations={disableAnimations}\n hideScrollBarDelay={hideScrollBarDelay}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.getProps().preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollY?.reflow(event);\n this.scrollX?.reflow(event);\n\n this.props.onScroll?.(event);\n if (this.getProps().preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n}\n"]}
1
+ {"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","getDOMRect","createPropsGetter","isTestEnv","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainerDataTids","root","inner","ScrollContainer","getProps","defaultProps","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","handleMouseMove","handleMouseLeave","refInner","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","offsetY","offsetX","invert","hideScrollBar","disableAnimations","hideScrollBarDelay","offset","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","updateInnerElement","setInnerElement","componentDidMount","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\ntype OffsetCSSPropsY = 'top' | 'right' | 'bottom';\ntype OffsetCSSPropsX = 'right' | 'bottom' | 'left';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert?: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll?: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Отключение кастомного скролла\n */\n disabled?: boolean;\n /**\n * Смещение вертикального скроллбара\n */\n offsetY?: Partial<Record<OffsetCSSPropsY, React.CSSProperties[OffsetCSSPropsY]>>;\n /**\n * Смещение горизонтального скроллбара\n */\n offsetX?: Partial<Record<OffsetCSSPropsX, React.CSSProperties[OffsetCSSPropsX]>>;\n /**\n * Скрывать скроллбар при отсутствии активности пользователя\n */\n hideScrollBar?: boolean;\n /**\n * Задержка перед скрытием скроллбара, ms. Работает только если `hideScrollBar = true`\n */\n hideScrollBarDelay?: number;\n /**\n * Отключить анимации\n */\n disableAnimations?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n ScrollContainerProps,\n 'invert' | 'scrollBehaviour' | 'preventWindowScroll' | 'hideScrollBar' | 'disableAnimations' | 'hideScrollBarDelay'\n >\n>;\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n hideScrollBar: false,\n disableAnimations: isTestEnv,\n hideScrollBarDelay: 500,\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.updateInnerElement();\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n\n if (prevProps.disabled !== this.props.disabled && !this.props.disabled) {\n this.updateInnerElement();\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {Element} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n const { offsetY, offsetX, invert, hideScrollBar, disableAnimations, hideScrollBarDelay } = this.getProps();\n\n const offset = axis === 'x' ? offsetX : offsetY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={invert}\n onScrollStateChange={this.handleScrollStateChange}\n offset={offset}\n hideScrollBar={hideScrollBar}\n disableAnimations={disableAnimations}\n hideScrollBarDelay={hideScrollBarDelay}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.getProps().preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollY?.reflow(event);\n this.scrollX?.reflow(event);\n\n this.props.onScroll?.(event);\n if (this.getProps().preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n\n private updateInnerElement = () => {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n };\n}\n"]}
@@ -109,5 +109,6 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
109
109
  private handleInnerScrollWheel;
110
110
  private handleMouseMove;
111
111
  private handleMouseLeave;
112
+ private updateInnerElement;
112
113
  }
113
114
  export {};
@@ -251,13 +251,18 @@ export var SidePage = /*#__PURE__*/function (_React$Component) {
251
251
  var _this$props2 = this.props,
252
252
  width = _this$props2.width,
253
253
  blockBackground = _this$props2.blockBackground,
254
- fromLeft = _this$props2.fromLeft;
254
+ fromLeft = _this$props2.fromLeft,
255
+ ariaLabel = _this$props2['aria-label'];
255
256
 
256
257
  var _this$getProps = this.getProps(),
257
258
  disableFocusLock = _this$getProps.disableFocusLock,
258
- offset = _this$getProps.offset;
259
+ offset = _this$getProps.offset,
260
+ role = _this$getProps.role;
259
261
 
260
262
  return /*#__PURE__*/React.createElement(ZIndex, {
263
+ "aria-modal": true,
264
+ role: role,
265
+ "aria-label": ariaLabel,
261
266
  priority: 'Sidepage',
262
267
  "data-tid": SidePageDataTids.root,
263
268
  className: cx((_cx = {}, _cx[styles.root()] = true, _cx[styles.mobileRoot()] = isMobile, _cx)),
@@ -322,5 +327,6 @@ SidePage.Container = SidePageContainer;
322
327
  SidePage.defaultProps = {
323
328
  disableAnimations: isTestEnv,
324
329
  disableFocusLock: true,
325
- offset: 0
330
+ offset: 0,
331
+ role: 'dialog'
326
332
  };