@ryuzaki13/react-foundation-ui 1.1.1 → 1.1.2

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 (187) hide show
  1. package/dist/advanced-search/index.js +1 -1
  2. package/dist/chunks/{TextEditorLexicalClient-bDEyimUa.js → TextEditorLexicalClient-DDe1NezE.js} +2 -2
  3. package/dist/chunks/{TextEditorLexicalClient-bDEyimUa.js.map → TextEditorLexicalClient-DDe1NezE.js.map} +1 -1
  4. package/dist/chunks/modal-DiQ-yR71.js +183 -0
  5. package/dist/chunks/modal-DiQ-yR71.js.map +1 -0
  6. package/dist/image/index.js +1 -1
  7. package/dist/modal/Modal.d.ts.map +1 -1
  8. package/dist/modal/index.js +1 -1
  9. package/dist/modal/modalMotion.d.ts +26 -0
  10. package/dist/modal/modalMotion.d.ts.map +1 -0
  11. package/dist/text-editor/index.js +1 -1
  12. package/package.json +1 -1
  13. package/storybook-static/assets/{Badge-D4ZNwyJI.js → Badge-ySHe8vmn.js} +1 -1
  14. package/storybook-static/assets/{Badge.stories-QbQZ3Lun.js → Badge.stories-BYFVnpXD.js} +1 -1
  15. package/storybook-static/assets/{Button-dAzTo4v8.js → Button-BSfih1w7.js} +1 -1
  16. package/storybook-static/assets/{Button-CO9qTYjf.js → Button-rWpfFmWo.js} +1 -1
  17. package/storybook-static/assets/{Button.stories-wcPcMM2N.js → Button.stories-BPUX-pUU.js} +1 -1
  18. package/storybook-static/assets/{CheckBox-IVs8Ft1J.js → CheckBox-BRmxHv5c.js} +1 -1
  19. package/storybook-static/assets/{CheckBox-BuWKFvO2.js → CheckBox-DJvchxuK.js} +1 -1
  20. package/storybook-static/assets/{CheckBox.stories-B2P4Xgjx.js → CheckBox.stories-Zz7HW_Tt.js} +1 -1
  21. package/storybook-static/assets/{Color-KMSTOMOX-DO11DnAB.js → Color-KMSTOMOX-Bvh-Futk.js} +1 -1
  22. package/storybook-static/assets/{ContextMenu-YIVSJPGZ.js → ContextMenu-K5hnbQwB.js} +1 -1
  23. package/storybook-static/assets/{ContextMenu.stories-pPfA4c51.js → ContextMenu.stories-q25-a_KQ.js} +1 -1
  24. package/storybook-static/assets/{DateInput-CJjcOU3w.js → DateInput-DgI18Wd3.js} +1 -1
  25. package/storybook-static/assets/{DateInput-CMk0Q3-1.js → DateInput-ElFtdL37.js} +1 -1
  26. package/storybook-static/assets/{DateInput.stories-BeYqSTLP.js → DateInput.stories-BfN_pYwR.js} +1 -1
  27. package/storybook-static/assets/{DateRangePresetSelect-HobGj82_.js → DateRangePresetSelect-BvJ0OXbG.js} +1 -1
  28. package/storybook-static/assets/{DateRangePresetSelect-CprGmjzY.js → DateRangePresetSelect-C6YNhNYJ.js} +1 -1
  29. package/storybook-static/assets/{DateRangePresetSelect.stories-C0C1Z7Ef.js → DateRangePresetSelect.stories-DJIqYv8z.js} +1 -1
  30. package/storybook-static/assets/{Detail-7DE7B2fS.js → Detail-DyISI1K8.js} +1 -1
  31. package/storybook-static/assets/{Detail.stories-BI42UERO.js → Detail.stories-DGbd09Cm.js} +1 -1
  32. package/storybook-static/assets/{Dialog-CPl9ePpk.js → Dialog-BP5LMJer.js} +1 -1
  33. package/storybook-static/assets/{Dialog.stories-DLlXkr6b.js → Dialog.stories-iAreH7Ft.js} +1 -1
  34. package/storybook-static/assets/{Disclosure-DiE1KhPu.js → Disclosure-DbzW47oB.js} +1 -1
  35. package/storybook-static/assets/{Disclosure.stories-DZj3PP0E.js → Disclosure.stories-Iiobg__i.js} +1 -1
  36. package/storybook-static/assets/{DocsRenderer-JROSPFPF-BarB-6yi.js → DocsRenderer-JROSPFPF-BoQ-Uqbl.js} +2 -2
  37. package/storybook-static/assets/{DropZone-BH0RZWxI.js → DropZone-BFChZBSC.js} +1 -1
  38. package/storybook-static/assets/{DropZone.stories-CMgWL5O8.js → DropZone.stories-yf4h971Z.js} +1 -1
  39. package/storybook-static/assets/{DropdownMenu-Bg9OjuHI.js → DropdownMenu-Dk5dGs-s.js} +1 -1
  40. package/storybook-static/assets/{ExpandableActionPanel.stories-Bs5nj5tL.js → ExpandableActionPanel.stories-kdhJaIZg.js} +1 -1
  41. package/storybook-static/assets/{Flex-B7YhSwT5.js → Flex-BHWaC8ei.js} +1 -1
  42. package/storybook-static/assets/{Flex-DTualGXt.js → Flex-D2dKtJQc.js} +1 -1
  43. package/storybook-static/assets/{Flex.stories-CJZWUeDx.js → Flex.stories-BB5qAL1v.js} +1 -1
  44. package/storybook-static/assets/{Grid-NUIGfEZg.js → Grid-sojkTYwf.js} +1 -1
  45. package/storybook-static/assets/{Grid-D3pn3Bv6.js → Grid-z6gyebzr.js} +1 -1
  46. package/storybook-static/assets/{Grid.stories-BU3qiQ_o.js → Grid.stories-D4cAyXDs.js} +1 -1
  47. package/storybook-static/assets/{ImageCropper.stories-B8LIeZot.js → ImageCropper.stories-FBR_3FWR.js} +1 -1
  48. package/storybook-static/assets/{ImageRenderer-D6m0TXv1.js → ImageRenderer-CRBJvRub.js} +1 -1
  49. package/storybook-static/assets/{ImageRenderer.stories-Bwv7-mmo.js → ImageRenderer.stories-Bm5yzrQm.js} +1 -1
  50. package/storybook-static/assets/{ImageView.stories-B2bnEYTW.js → ImageView.stories-Dy6kw_ha.js} +1 -1
  51. package/storybook-static/assets/{ImageViewer.stories-DaMTLSzl.js → ImageViewer.stories-CGTaIHxP.js} +2 -2
  52. package/storybook-static/assets/{ImageViewerRuntime-nB82ciX9.js → ImageViewerRuntime-DZ2d3UnD.js} +1 -1
  53. package/storybook-static/assets/{Input-NjYnjmpA.js → Input-BClWQm32.js} +1 -1
  54. package/storybook-static/assets/{Input-XmHlbTYH.js → Input-c3EhAUVg.js} +1 -1
  55. package/storybook-static/assets/{Input.stories-B2NJY4s9.js → Input.stories-BhCP8U4r.js} +1 -1
  56. package/storybook-static/assets/{InputDateTime-DYx7fZqV.js → InputDateTime-B3e7QSbu.js} +1 -1
  57. package/storybook-static/assets/{InputDateTime.stories-BP70hMlC.js → InputDateTime.stories-lSHRzKkd.js} +1 -1
  58. package/storybook-static/assets/{InputFile-cDPgb3yd.js → InputFile-BaUvfw0y.js} +1 -1
  59. package/storybook-static/assets/{InputFile.stories-B8l1oAAa.js → InputFile.stories-xSZykMu5.js} +1 -1
  60. package/storybook-static/assets/{InputFiles-C54yHWFW.js → InputFiles-BeIHcYkg.js} +1 -1
  61. package/storybook-static/assets/{InputFiles-RV5Ldp6x.js → InputFiles-Bz96ef5G.js} +1 -1
  62. package/storybook-static/assets/{InputFiles.stories-DBpBymQR.js → InputFiles.stories-HYB4u-mB.js} +1 -1
  63. package/storybook-static/assets/{InputImage-CCz9j5pF.js → InputImage-CZTnJ4ul.js} +1 -1
  64. package/storybook-static/assets/{InputImage.stories-_p9hjvIE.js → InputImage.stories-DqjDYlZN.js} +1 -1
  65. package/storybook-static/assets/{LayoutPicker-rkC7rVNj.js → LayoutPicker-DvKs-0Fv.js} +1 -1
  66. package/storybook-static/assets/{LayoutPicker.stories-Dua-laJ2.js → LayoutPicker.stories-DmuTHfsc.js} +1 -1
  67. package/storybook-static/assets/{Listbox-C9gRtOeO.js → Listbox-mcm1KqjJ.js} +1 -1
  68. package/storybook-static/assets/{Listbox.stories-m8Brn-ay.js → Listbox.stories-CtS-e5pi.js} +1 -1
  69. package/storybook-static/assets/{Modal-D62mL35g.js → Modal-BqeKhT7H.js} +1 -1
  70. package/storybook-static/assets/Modal.stories-Gli7XX36.js +180 -0
  71. package/storybook-static/assets/{MultiSelect-C5W7r_IH.js → MultiSelect-CIMJ-GDy.js} +1 -1
  72. package/storybook-static/assets/{MultiSelect-LhGz99f4.js → MultiSelect-Cl6rIRPU.js} +1 -1
  73. package/storybook-static/assets/{MultiSelect.stories-DcHKp4JR.js → MultiSelect.stories-Dff66BK5.js} +1 -1
  74. package/storybook-static/assets/{NotificationsHost-BSH5jCG2.js → NotificationsHost-DowbxTw1.js} +1 -1
  75. package/storybook-static/assets/{NotificationsHost.stories-DTM5-qkf.js → NotificationsHost.stories-nbb74ArB.js} +1 -1
  76. package/storybook-static/assets/{ODataMultiSelect-C2S7qyv5.js → ODataMultiSelect-BwjM7TCI.js} +1 -1
  77. package/storybook-static/assets/{ODataMultiSelect.stories-DOzE_OKZ.js → ODataMultiSelect.stories-DqjbgljQ.js} +1 -1
  78. package/storybook-static/assets/{ODataSelect-BG7NWPTV.js → ODataSelect-BfFCFPKT.js} +1 -1
  79. package/storybook-static/assets/{ODataSelect-lT0xOKvb.js → ODataSelect-CUb853Wg.js} +1 -1
  80. package/storybook-static/assets/{ODataSelect.stories-CKBvtx-H.js → ODataSelect.stories-yivutwVc.js} +1 -1
  81. package/storybook-static/assets/{ODataTreeMultiSelect-u8tiVTCb.js → ODataTreeMultiSelect-Dd7RuuQJ.js} +1 -1
  82. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CzH4V42Q.js → ODataTreeMultiSelect.stories-fr3DsJrU.js} +1 -1
  83. package/storybook-static/assets/{ODataTreeSelect-CwOHUVab.js → ODataTreeSelect-CPpbLgIt.js} +1 -1
  84. package/storybook-static/assets/{ODataTreeSelect.stories-DjVMiCJ1.js → ODataTreeSelect.stories-DmEX0dcP.js} +1 -1
  85. package/storybook-static/assets/{PeriodSelect-BFGqQf0k.js → PeriodSelect-D5kBTYIo.js} +1 -1
  86. package/storybook-static/assets/{PeriodSelect.stories-BG6WXQ18.js → PeriodSelect.stories-BQ8Fe5La.js} +1 -1
  87. package/storybook-static/assets/{Popover-OlRhMSrF.js → Popover-BXriLIId.js} +1 -1
  88. package/storybook-static/assets/{Popover.stories-C5FOSas_.js → Popover.stories-CKXTLaPn.js} +1 -1
  89. package/storybook-static/assets/{PresetRangeDateInput-Dtisg-hx.js → PresetRangeDateInput-BAeztTbq.js} +1 -1
  90. package/storybook-static/assets/{PresetRangeDateInput.stories-DKW4o_cP.js → PresetRangeDateInput.stories-DHErwmMR.js} +1 -1
  91. package/storybook-static/assets/{RadioButton-B6Kj1uHa.js → RadioButton-CHmZgd5q.js} +1 -1
  92. package/storybook-static/assets/{RadioButton.stories-0YupGfXc.js → RadioButton.stories-aa0vDs3Q.js} +1 -1
  93. package/storybook-static/assets/{RadioGroup-b972E4de.js → RadioGroup-DPeAo49R.js} +1 -1
  94. package/storybook-static/assets/{RadioGroup-g9jHDZ1a.js → RadioGroup-DvOxoOpU.js} +1 -1
  95. package/storybook-static/assets/{RadioGroup.stories-CncOV2Km.js → RadioGroup.stories-R2DhGaUo.js} +1 -1
  96. package/storybook-static/assets/{Select-V5lTi2fc.js → Select-CMFiMGUD.js} +1 -1
  97. package/storybook-static/assets/{Select-Deq1B8d4.js → Select-DAgVgEuM.js} +1 -1
  98. package/storybook-static/assets/{Select.stories-ehFtiqH9.js → Select.stories-DnDwuoSb.js} +1 -1
  99. package/storybook-static/assets/{SelectOptionContent-CCp1Zygd.js → SelectOptionContent-DlUoa2zi.js} +1 -1
  100. package/storybook-static/assets/{SerializableSelect-CvMVlLei.js → SerializableSelect-BL6Sy3b_.js} +1 -1
  101. package/storybook-static/assets/{SerializableSelect-IyNh3eLS.js → SerializableSelect-CHAD3r9t.js} +1 -1
  102. package/storybook-static/assets/{SerializableSelect.stories-wcj4bFZq.js → SerializableSelect.stories-tcz7KvtM.js} +1 -1
  103. package/storybook-static/assets/{SingleDateTimeInput-DyLXAP7B.js → SingleDateTimeInput-BTjmZ93p.js} +1 -1
  104. package/storybook-static/assets/{SingleDateTimeInput.stories-WvQxqelt.js → SingleDateTimeInput.stories-fAE8JkXx.js} +1 -1
  105. package/storybook-static/assets/{Slider-Cp8CtB-I.js → Slider-BT1LHZ79.js} +1 -1
  106. package/storybook-static/assets/{Slider.stories-BsIcLc-d.js → Slider.stories-D936g26I.js} +1 -1
  107. package/storybook-static/assets/{SliderInput-4jPJ7yM1.js → SliderInput-BhFLXhLl.js} +1 -1
  108. package/storybook-static/assets/{SliderInput.stories-DPK4tJ2q.js → SliderInput.stories-BVdD9tEX.js} +1 -1
  109. package/storybook-static/assets/{Sortable-CAX_xvIn.js → Sortable-SmbXEzK3.js} +1 -1
  110. package/storybook-static/assets/{Sortable.stories-Dn2kDyA2.js → Sortable.stories-CkCKnV-o.js} +1 -1
  111. package/storybook-static/assets/{Splitter-Blfeifky.js → Splitter-HnrBItZh.js} +1 -1
  112. package/storybook-static/assets/{Splitter.stories-k9ZItdL9.js → Splitter.stories-DW1Cs65Y.js} +1 -1
  113. package/storybook-static/assets/{StateSelect-CSDCsDb8.js → StateSelect-j73SSm6j.js} +1 -1
  114. package/storybook-static/assets/{StateSelect.stories-DwdGHqbu.js → StateSelect.stories-DlYcFCZu.js} +1 -1
  115. package/storybook-static/assets/{Switch-BUhpEhzV.js → Switch-Df9CUFzH.js} +1 -1
  116. package/storybook-static/assets/{Switch.stories-BC2DPnRn.js → Switch.stories-CLj7D165.js} +1 -1
  117. package/storybook-static/assets/{Table-9XwMCwrN.js → Table-DQNIWsu6.js} +1 -1
  118. package/storybook-static/assets/{Table.stories-BYXgzUfU.js → Table.stories-PauSY-JA.js} +1 -1
  119. package/storybook-static/assets/{Tabs-Bow33W8U.js → Tabs-Dk5gLtMV.js} +1 -1
  120. package/storybook-static/assets/{Tabs.stories-CZT7skiV.js → Tabs.stories-QbqForCs.js} +1 -1
  121. package/storybook-static/assets/{TagInput.stories-b8xiLHof.js → TagInput.stories-BKDMX-Xf.js} +1 -1
  122. package/storybook-static/assets/{Textarea-DpY7S_ja.js → Textarea-DysJ81Q0.js} +1 -1
  123. package/storybook-static/assets/{Textarea.stories-Dd223jGP.js → Textarea.stories-BjwiGsRE.js} +1 -1
  124. package/storybook-static/assets/{TimePanel-CVg_B6n6.js → TimePanel-B3ydmHaY.js} +1 -1
  125. package/storybook-static/assets/{TimePanel.stories-BLQ1P0G1.js → TimePanel.stories-BKywSX32.js} +1 -1
  126. package/storybook-static/assets/{Toggle-DFqklqKe.js → Toggle-KdmtodIb.js} +1 -1
  127. package/storybook-static/assets/{Toggle.stories-Dn1ZNjzs.js → Toggle.stories-Bhb_z8Jz.js} +1 -1
  128. package/storybook-static/assets/{TreeMultiSelect-CUVgAxbI.js → TreeMultiSelect-CwW9N9Ig.js} +1 -1
  129. package/storybook-static/assets/{TreeMultiSelect-KJZy7baA.js → TreeMultiSelect-DsmEfu72.js} +1 -1
  130. package/storybook-static/assets/{TreeMultiSelect.stories-BwgaL6Xq.js → TreeMultiSelect.stories-C6D2dAVV.js} +1 -1
  131. package/storybook-static/assets/{TreePickerBase-pdzKfA0G.js → TreePickerBase-KscLSAmI.js} +1 -1
  132. package/storybook-static/assets/{TreeSelect-CVwWW2jD.js → TreeSelect-CaZc5mMy.js} +1 -1
  133. package/storybook-static/assets/{TreeSelect-5pb94-io.js → TreeSelect-Dyzfh0j1.js} +1 -1
  134. package/storybook-static/assets/{TreeSelect.stories-BYqkPLt1.js → TreeSelect.stories-DgPobNFf.js} +1 -1
  135. package/storybook-static/assets/{TreeTable-CkBy8VlX.js → TreeTable-Cp-3yiUl.js} +1 -1
  136. package/storybook-static/assets/{TreeTable.stories-BXWFw5wG.js → TreeTable.stories-Ch5zCYJv.js} +1 -1
  137. package/storybook-static/assets/{WithTooltip-7X4HQR7L-tzCCckGL.js → WithTooltip-7X4HQR7L-Bvci3679.js} +1 -1
  138. package/storybook-static/assets/{base-table-J0VmPU8w.js → base-table-4j0yzCkY.js} +1 -1
  139. package/storybook-static/assets/{blocks-BqMyWalM.js → blocks-B-ZSUli0.js} +6 -6
  140. package/storybook-static/assets/{button-BOWFIeDh.js → button-PJeFaVDD.js} +1 -1
  141. package/storybook-static/assets/{check-box-CPBNfroU.js → check-box-B0-G8LQm.js} +1 -1
  142. package/storybook-static/assets/{chunk-3LY4VQVK-cdx-m4dV.js → chunk-3LY4VQVK-D6w4YoJz.js} +1 -1
  143. package/storybook-static/assets/{chunk-LITCR56V-B9dgggkx.js → chunk-LITCR56V-CO50GA85.js} +1 -1
  144. package/storybook-static/assets/{contextMenu-DtwOXbRw.js → contextMenu-CnU3cBnI.js} +1 -1
  145. package/storybook-static/assets/{error-C-yEsKLJ.js → error-BSGcuIkS.js} +1 -1
  146. package/storybook-static/assets/{flex-Cf2jLP1U.js → flex-DH0uZKDL.js} +1 -1
  147. package/storybook-static/assets/{floating-ui.react-6B4p8HDR.js → floating-ui.react-D1gWigwt.js} +1 -1
  148. package/storybook-static/assets/formatter-L2YTDE3Q-CTky3r2k.js +1 -0
  149. package/storybook-static/assets/{formatters-DXHNQSpS.js → formatters-q62UjZF6.js} +1 -1
  150. package/storybook-static/assets/grid-rDCrr9Aa.js +1 -0
  151. package/storybook-static/assets/{hooks-Cp3Hd96H.js → hooks-C0kO8ifn.js} +1 -1
  152. package/storybook-static/assets/{iframe-B1CjCwLr.js → iframe-D1kbCBk7.js} +3 -3
  153. package/storybook-static/assets/{input-Ciguy4IH.js → input-D8SCvYlc.js} +1 -1
  154. package/storybook-static/assets/{lucide-react-DNKi1M4I.js → lucide-react-DItxRogI.js} +1 -1
  155. package/storybook-static/assets/{mdx-react-shim-BmHrz8Qy.js → mdx-react-shim-B8QUPqDz.js} +1 -1
  156. package/storybook-static/assets/{media-CYiNdyXU.js → media-DgzbAjsg.js} +1 -1
  157. package/storybook-static/assets/{misc-C0xWU5l4.js → misc-CzV_PQE6.js} +1 -1
  158. package/storybook-static/assets/{notifications-BnIn-1bS.js → notifications-CdohXJuf.js} +1 -1
  159. package/storybook-static/assets/{odata-CBfXwTuv.js → odata-BCXcLElA.js} +1 -1
  160. package/storybook-static/assets/odata-service-tcECnUvF.js +1 -0
  161. package/storybook-static/assets/{odataStoryFixtures-B4Ph79L8.js → odataStoryFixtures-KJnMeJob.js} +1 -1
  162. package/storybook-static/assets/{picker-hyCPyMP8.js → picker-BILXnlvH.js} +1 -1
  163. package/storybook-static/assets/{popover-DLIoVp94.js → popover-Bmfe__Oe.js} +1 -1
  164. package/storybook-static/assets/{preset-select-BjG9VTrg.js → preset-select-C3eeRGrr.js} +1 -1
  165. package/storybook-static/assets/{react-18-Bz7Vh-KR.js → react-18-C05GCNzp.js} +1 -1
  166. package/storybook-static/assets/{react-D7DXSuVH.js → react-C7-n-j-7.js} +2 -2
  167. package/storybook-static/assets/{react-dom-Wlkt-dsb.js → react-dom-BuBaXqtP.js} +1 -1
  168. package/storybook-static/assets/select-DOX3d-Dq.js +1 -0
  169. package/storybook-static/assets/{slider-DMChsrbR.js → slider-mYXodgoS.js} +1 -1
  170. package/storybook-static/assets/{sortable-BPfL-XUN.js → sortable-DFt3FEPe.js} +1 -1
  171. package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-BA7fKjuW.js → syntaxhighlighter-RTCFPKCB-DpuAtHAL.js} +1 -1
  172. package/storybook-static/assets/{text-9sGnwPB7.js → text-CxC7Ibdz.js} +1 -1
  173. package/storybook-static/assets/{theming-4yGRJc-V.js → theming-LaAgw3BX.js} +1 -1
  174. package/storybook-static/assets/ui-CidvNniM.js +1 -0
  175. package/storybook-static/assets/{useODataSelectBase-CIjzs3rn.js → useODataSelectBase-D8W-kHaa.js} +1 -1
  176. package/storybook-static/assets/{useODataTreeData-BnifkleR.js → useODataTreeData-CdDBNi-n.js} +1 -1
  177. package/storybook-static/assets/{utils-BY_HhyoQ.js → utils-Bgk51jNr.js} +1 -1
  178. package/storybook-static/iframe.html +1 -1
  179. package/storybook-static/project.json +1 -1
  180. package/dist/chunks/modal-Cll8YZ7b.js +0 -153
  181. package/dist/chunks/modal-Cll8YZ7b.js.map +0 -1
  182. package/storybook-static/assets/Modal.stories-DOU0t6f-.js +0 -180
  183. package/storybook-static/assets/formatter-L2YTDE3Q-BEJcUUWn.js +0 -1
  184. package/storybook-static/assets/grid-0riWQzPS.js +0 -1
  185. package/storybook-static/assets/odata-service-C5AB3b3v.js +0 -1
  186. package/storybook-static/assets/select-C3btTxoQ.js +0 -1
  187. package/storybook-static/assets/ui-krJ8_ODv.js +0 -1
@@ -1,153 +0,0 @@
1
- import { o as e } from "./flex-DYZ0IbU6.js";
2
- import { n as t } from "./button-CC0Jdx1j.js";
3
- import { r as n } from "./grid-dI94AAbi.js";
4
- import { c as r } from "./misc-DIF5h9ba.js";
5
- import { Children as i, createContext as a, useCallback as o, useContext as s, useEffect as c, useEffectEvent as l, useId as u, useRef as d, useState as f } from "react";
6
- import { cn as p } from "@ryuzaki13/react-foundation-lib/utils";
7
- import { X as m } from "lucide-react";
8
- import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
9
- import { getOrCreatePortalRoot as v, useEscapeDismiss as y, useFocusTrap as b } from "@ryuzaki13/react-foundation-lib/dom";
10
- import { createPortal as x } from "react-dom";
11
- var S = {
12
- modal: "vGPUKV",
13
- sm: "O7gb7P",
14
- md: "RVq8v3",
15
- lg: "PCSUAL",
16
- xl: "XDCHzq",
17
- xxl: "t1kl8L",
18
- inside: "o3PEEB",
19
- header: "WhUkxm",
20
- body: "NDgdMi",
21
- headerText: "JDlse5",
22
- headerButton: "FaDKSt"
23
- }, C = a({
24
- modals: [],
25
- openModal: () => {},
26
- closeModal: () => {},
27
- isTopModal: () => !1
28
- }), w = () => s(C), T = ({ children: e, className: t }) => /* @__PURE__ */ g("div", {
29
- className: p("surface2 paddingMd borderBottom", t),
30
- children: e
31
- });
32
- T.displayName = "Modal.Toolbar";
33
- var E = ({ children: e, className: t, scrollable: n }) => /* @__PURE__ */ g("div", {
34
- className: p("paddingMd h100 overflowHidden", t),
35
- children: n ? /* @__PURE__ */ g(r, {
36
- className: "h100",
37
- children: e
38
- }) : e
39
- });
40
- E.displayName = "Modal.Content";
41
- var D = ({ children: t, className: n }) => /* @__PURE__ */ g("div", {
42
- className: p("surface2 borderTop paddingMd", n),
43
- children: /* @__PURE__ */ g(e, {
44
- gap: "sm",
45
- align: "center",
46
- justify: "end",
47
- children: t
48
- })
49
- });
50
- D.displayName = "Modal.Footer";
51
- var O = ({ isOpen: e, title: r, size: a = "sm", height: o, onClose: s, children: d }) => {
52
- let C = u(), O = u(), { modals: k, openModal: A, closeModal: j, isTopModal: M } = w(), [N, P] = f(!1), F = l(() => P(!0)), I = l(() => P(!1)), L = e && (k.length === 0 || M(C)), R = b(e || !1);
53
- if (y({
54
- active: L || !1,
55
- onDismiss: s,
56
- containerRef: R
57
- }), c(() => (e && (A(C), F()), () => {
58
- j(C), I();
59
- }), [
60
- j,
61
- e,
62
- C,
63
- A
64
- ]), !N) return null;
65
- let z = v("modal-root");
66
- if (!z) return null;
67
- let B = null, V = null, H = null, U = i.toArray(d);
68
- for (let e of U) switch (e.type.displayName) {
69
- case T.displayName:
70
- if (B) throw Error("Modal: duplicate <Toolbar> found");
71
- B = e;
72
- break;
73
- case D.displayName:
74
- if (H) throw Error("Modal: duplicate <Footer> found");
75
- H = e;
76
- break;
77
- case E.displayName:
78
- if (V) throw Error("Modal: duplicate <Content> found");
79
- V = e;
80
- break;
81
- }
82
- return x(/* @__PURE__ */ g(h, { children: /* @__PURE__ */ _("div", {
83
- ref: R,
84
- className: p(S.modal, S[a]),
85
- style: { height: o },
86
- role: "dialog",
87
- "aria-modal": "true",
88
- "aria-labelledby": O,
89
- "aria-describedby": `${O}-content`,
90
- children: [/* @__PURE__ */ _("div", {
91
- className: p(S.header, B ? "" : "borderBottom"),
92
- children: [/* @__PURE__ */ g("h3", {
93
- className: S.headerText,
94
- id: O,
95
- children: r
96
- }), /* @__PURE__ */ g(t, {
97
- icon: /* @__PURE__ */ g(m, {}),
98
- className: S.headerButton,
99
- variant: "ghost",
100
- autoFocus: !0,
101
- "aria-label": "Закрыть модальное окно",
102
- onClick: s
103
- })]
104
- }), /* @__PURE__ */ _(n, {
105
- id: `${O}-content`,
106
- templateRows: `${B ? "auto" : ""} 1fr ${H ? "auto" : ""}`.trim(),
107
- className: S.body,
108
- children: [
109
- B,
110
- V,
111
- H
112
- ]
113
- })]
114
- }) }), z);
115
- };
116
- //#endregion
117
- //#region src/modal/ModalManagerProvider.tsx
118
- function k({ children: e, compensateScrollbar: t = !1 }) {
119
- let [n, r] = f([]), i = d(0), a = d(0), s = d(""), l = d(!1), u = o((e) => {
120
- r((t) => [...t, e]);
121
- }, []), p = o((e) => {
122
- r((t) => t.filter((t) => t !== e));
123
- }, []), m = o((e) => n[n.length - 1] === e, [n]);
124
- return c(() => {
125
- let e = i.current === 0;
126
- if (e && n.length > 0) {
127
- let e = window.scrollY, r = document.querySelector("#app-root");
128
- a.current = Math.max(0, window.innerWidth - document.documentElement.clientWidth), s.current = document.body.style.paddingRight, document.body.style.position = "fixed", document.body.style.top = `-${e}px`, document.body.style.width = "100%", t && (document.body.style.paddingRight = `${a.current}px`, l.current = !0), r?.setAttribute("inert", "true"), i.current = n.length;
129
- return;
130
- }
131
- if (!e && n.length > 0 && t !== l.current && (document.body.style.paddingRight = t ? `${a.current}px` : s.current, l.current = t), !e && n.length === 0) {
132
- let e = document.querySelector("#app-root"), t = parseInt(document.body.style.top || "0") * -1;
133
- document.body.style.position = "", document.body.style.top = "", document.body.style.width = "", l.current &&= (document.body.style.paddingRight = s.current, !1), e?.removeAttribute("inert"), window.scrollTo({
134
- top: t,
135
- left: 0,
136
- behavior: "instant"
137
- });
138
- }
139
- i.current = n.length;
140
- }, [t, n.length]), /* @__PURE__ */ g(C.Provider, {
141
- value: {
142
- modals: n,
143
- openModal: u,
144
- closeModal: p,
145
- isTopModal: m
146
- },
147
- children: e
148
- });
149
- }
150
- //#endregion
151
- export { T as a, D as i, O as n, C as o, E as r, w as s, k as t };
152
-
153
- //# sourceMappingURL=modal-Cll8YZ7b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal-Cll8YZ7b.js","names":[],"sources":["../../src/modal/Modal.module.scss","../../src/modal/useModalManager.ts","../../src/modal/Modal.tsx","../../src/modal/ModalManagerProvider.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.modal {\n\tdisplay: grid;\n\tgrid-auto-rows: auto 1fr;\n\n\tposition: fixed;\n\tinset: 0;\n\tmargin: auto;\n\tz-index: var(--z-modal);\n\twidth: 90%;\n\theight: fit-content;\n\tmax-height: calc(100dvh - var(--space-lg));\n\tborder: var(--border);\n\tborder-radius: var(--radius-md);\n\tbackground-color: var(--surface-1);\n\tbox-shadow: var(--shadow-lg);\n\n\t&:not(:last-child) {\n\t\tpointer-events: none;\n\t\tfilter: grayscale(0.5) opacity(0.75);\n\t\t// opacity: 0.5;\n\t}\n\n\t&.sm {\n\t\tmax-width: min(30em, 93dvw);\n\t}\n\n\t&.md {\n\t\tmax-width: min(50em, 93dvw);\n\t}\n\n\t&.lg {\n\t\tmax-width: min(70em, 93dvw);\n\t}\n\n\t&.xl {\n\t\tmax-width: min(80em, 93dvw);\n\t}\n\n\t&.xxl {\n\t\twidth: 93dvw;\n\t\theight: 90dvh;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\t}\n\n\t&.inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\n\t\t.header,\n\t\t.body {\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbackground-color: var(--surface-2);\n\tborder-top-left-radius: var(--radius-md);\n\tborder-top-right-radius: var(--radius-md);\n}\n\n.headerText {\n\tmargin: 0;\n\tpadding-inline: var(--space-md);\n\tfont-size: var(--font-size-md);\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.headerButton {\n\tmargin-block: var(--space-xs);\n\tmargin-inline: var(--space-sm);\n\tflex: 0;\n}\n\n.body {\n\toverflow: hidden;\n\tborder-bottom-left-radius: var(--radius-md);\n\tborder-bottom-right-radius: var(--radius-md);\n}\n","import { createContext, useContext } from \"react\";\n\nexport const ModalManagerContext = createContext<{\n\tmodals: string[];\n\topenModal: (id: string) => void;\n\tcloseModal: (id: string) => void;\n\tisTopModal: (id: string) => boolean;\n}>({\n\tmodals: [],\n\topenModal: () => {},\n\tcloseModal: () => {},\n\tisTopModal: () => false\n});\n\nexport const useModalManager = () => useContext(ModalManagerContext);\n","import React, { Children, useEffect, useEffectEvent, useId, useState } from \"react\";\n\nimport { getOrCreatePortalRoot, useEscapeDismiss, useFocusTrap } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { X } from \"lucide-react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Button } from \"../button\";\nimport { FlexContainer } from \"../flex\";\nimport { GridContainer } from \"../grid\";\nimport { Scrollable } from \"../misc\";\n\nimport styles from \"./Modal.module.scss\";\nimport { ModalSize } from \"./types\";\nimport { useModalManager } from \"./useModalManager\";\n\n// Подкомпоненты\nexport interface ModalCompositionProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport const ModalToolbar: React.FC<ModalCompositionProps> = ({ children, className }) => {\n\treturn <div className={cn(\"surface2 paddingMd borderBottom\", className)}>{children}</div>;\n};\nModalToolbar.displayName = \"Modal.Toolbar\";\n\nexport const ModalContent: React.FC<ModalCompositionProps & { scrollable?: boolean }> = ({ children, className, scrollable }) => {\n\treturn (\n\t\t<div className={cn(\"paddingMd h100 overflowHidden\", className)}>\n\t\t\t{scrollable ? <Scrollable className=\"h100\">{children}</Scrollable> : children}\n\t\t</div>\n\t);\n};\nModalContent.displayName = \"Modal.Content\";\n\nexport const ModalFooter: React.FC<ModalCompositionProps> = ({ children, className }) => {\n\treturn (\n\t\t<div className={cn(\"surface2 borderTop paddingMd\", className)}>\n\t\t\t<FlexContainer gap=\"sm\" align=\"center\" justify=\"end\">\n\t\t\t\t{children}\n\t\t\t</FlexContainer>\n\t\t</div>\n\t);\n};\nModalFooter.displayName = \"Modal.Footer\";\n\ntype ToolbarElement = React.ReactElement<ModalCompositionProps, typeof ModalToolbar>;\ntype ContentElement = React.ReactElement<ModalCompositionProps, typeof ModalContent>;\ntype FooterElement = React.ReactElement<ModalCompositionProps, typeof ModalFooter>;\n\ntype ModalChildren =\n\t[ToolbarElement, ContentElement, FooterElement] | [ToolbarElement, ContentElement] | [ContentElement, FooterElement] | ContentElement;\n\nexport interface ModalProps {\n\t/** Открыто ли модальное окно */\n\tisOpen?: boolean;\n\t/** Заголовок */\n\ttitle?: string;\n\t/** Размер модального окна */\n\tsize?: keyof typeof ModalSize;\n\theight?: string;\n\t/** Обработчик закрытия */\n\tonClose: () => void;\n\tchildren: ModalChildren;\n}\n\nexport const Modal: React.FC<ModalProps> = ({ isOpen, title, size = \"sm\", height, onClose, children }) => {\n\tconst modalId = useId();\n\tconst titleId = useId();\n\n\tconst { modals, openModal, closeModal, isTopModal } = useModalManager();\n\tconst [isMounted, setIsMounted] = useState(false);\n\tconst mountModal = useEffectEvent(() => setIsMounted(true));\n\tconst unmountModal = useEffectEvent(() => setIsMounted(false));\n\n\t/**\n\t * Если provider менеджера не подключен, считаем одиночную модалку активной,\n\t * иначе логика Escape/focus trap никогда не включится.\n\t */\n\tconst isActive = isOpen && (modals.length === 0 || isTopModal(modalId));\n\n\tconst modalRef = useFocusTrap(isOpen || false);\n\n\tuseEscapeDismiss({\n\t\tactive: isActive || false,\n\t\tonDismiss: onClose,\n\t\tcontainerRef: modalRef\n\t});\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\topenModal(modalId);\n\t\t\tmountModal();\n\t\t}\n\n\t\treturn () => {\n\t\t\tcloseModal(modalId);\n\t\t\tunmountModal();\n\t\t};\n\t}, [closeModal, isOpen, modalId, openModal]);\n\n\tif (!isMounted) return null;\n\n\tconst modalRoot = getOrCreatePortalRoot(\"modal-root\");\n\n\tif (!modalRoot) {\n\t\treturn null;\n\t}\n\n\tlet toolbar: React.ReactNode = null;\n\tlet content: React.ReactNode = null;\n\tlet footer: React.ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarElement | ContentElement | FooterElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ModalToolbar.displayName:\n\t\t\t\tif (toolbar) throw new Error(\"Modal: duplicate <Toolbar> found\");\n\t\t\t\ttoolbar = child; //.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalFooter.displayName:\n\t\t\t\tif (footer) throw new Error(\"Modal: duplicate <Footer> found\");\n\t\t\t\tfooter = child; //props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalContent.displayName:\n\t\t\t\tif (content) throw new Error(\"Modal: duplicate <Content> found\");\n\t\t\t\tcontent = child; //.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={modalRef}\n\t\t\t\tclassName={cn(styles.modal, styles[size])}\n\t\t\t\tstyle={{ height }}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\taria-labelledby={titleId}\n\t\t\t\taria-describedby={`${titleId}-content`}>\n\t\t\t\t<div className={cn(styles.header, toolbar ? \"\" : \"borderBottom\")}>\n\t\t\t\t\t<h3 className={styles.headerText} id={titleId}>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h3>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={<X />}\n\t\t\t\t\t\tclassName={styles.headerButton}\n\t\t\t\t\t\tvariant={\"ghost\"}\n\t\t\t\t\t\tautoFocus={true}\n\t\t\t\t\t\taria-label={\"Закрыть модальное окно\"}\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<GridContainer\n\t\t\t\t\tid={`${titleId}-content`}\n\t\t\t\t\ttemplateRows={`${toolbar ? \"auto\" : \"\"} 1fr ${footer ? \"auto\" : \"\"}`.trim()}\n\t\t\t\t\t// gap=\"md\"\n\t\t\t\t\tclassName={styles.body}>\n\t\t\t\t\t{toolbar}\n\t\t\t\t\t{content}\n\t\t\t\t\t{footer}\n\t\t\t\t</GridContainer>\n\t\t\t</div>\n\t\t</>,\n\t\tmodalRoot\n\t);\n};\n","// ModalManagerContext.tsx\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { ModalManagerContext } from \"./useModalManager\";\n\nexport interface ModalManagerProviderProps {\n\tchildren: React.ReactNode;\n\t/** Компенсирует исчезновение скроллбара правым padding у body. */\n\tcompensateScrollbar?: boolean;\n}\n\n/**\n * Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.\n */\nexport function ModalManagerProvider({ children, compensateScrollbar = false }: ModalManagerProviderProps) {\n\tconst [modals, setModals] = useState<string[]>([]);\n\tconst prevModalsLength = useRef(0);\n\tconst scrollbarWidth = useRef(0);\n\tconst bodyPaddingRight = useRef(\"\");\n\tconst isScrollbarCompensated = useRef(false);\n\n\tconst openModal = useCallback((id: string) => {\n\t\tsetModals((prev) => [...prev, id]);\n\t}, []);\n\n\tconst closeModal = useCallback((id: string) => {\n\t\tsetModals((prev) => prev.filter((mid) => mid !== id));\n\t}, []);\n\n\tconst isTopModal = useCallback(\n\t\t(id: string) => {\n\t\t\treturn modals[modals.length - 1] === id;\n\t\t},\n\t\t[modals]\n\t);\n\n\tuseEffect(() => {\n\t\tconst wasEmpty = prevModalsLength.current === 0;\n\n\t\tif (wasEmpty && modals.length > 0) {\n\t\t\t// первая модалка открыта — ставим стили\n\t\t\tconst scrollY = window.scrollY;\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tscrollbarWidth.current = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n\t\t\tbodyPaddingRight.current = document.body.style.paddingRight;\n\n\t\t\tdocument.body.style.position = \"fixed\";\n\t\t\tdocument.body.style.top = `-${scrollY}px`;\n\t\t\tdocument.body.style.width = \"100%\";\n\n\t\t\tif (compensateScrollbar) {\n\t\t\t\tdocument.body.style.paddingRight = `${scrollbarWidth.current}px`;\n\t\t\t\tisScrollbarCompensated.current = true;\n\t\t\t}\n\n\t\t\tappRoot?.setAttribute(\"inert\", \"true\");\n\n\t\t\tprevModalsLength.current = modals.length;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length > 0 && compensateScrollbar !== isScrollbarCompensated.current) {\n\t\t\tdocument.body.style.paddingRight = compensateScrollbar ? `${scrollbarWidth.current}px` : bodyPaddingRight.current;\n\t\t\tisScrollbarCompensated.current = compensateScrollbar;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length === 0) {\n\t\t\t// последняя модалка закрыта — снимаем стили\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tconst scrollY = parseInt(document.body.style.top || \"0\") * -1;\n\n\t\t\tdocument.body.style.position = \"\";\n\t\t\tdocument.body.style.top = \"\";\n\t\t\tdocument.body.style.width = \"\";\n\n\t\t\tif (isScrollbarCompensated.current) {\n\t\t\t\tdocument.body.style.paddingRight = bodyPaddingRight.current;\n\t\t\t\tisScrollbarCompensated.current = false;\n\t\t\t}\n\n\t\t\tappRoot?.removeAttribute(\"inert\");\n\n\t\t\twindow.scrollTo({ top: scrollY, left: 0, behavior: \"instant\" });\n\t\t}\n\n\t\tprevModalsLength.current = modals.length;\n\t}, [compensateScrollbar, modals.length]);\n\n\treturn <ModalManagerContext.Provider value={{ modals, openModal, closeModal, isTopModal }}>{children}</ModalManagerContext.Provider>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;GCEa,IAAsB,EAKhC;CACF,QAAQ,CAAC;CACT,iBAAiB,CAAC;CAClB,kBAAkB,CAAC;CACnB,kBAAkB;AACnB,CAAC,GAEY,UAAwB,EAAW,CAAmB,GCQtD,KAAiD,EAAE,aAAU,mBAClE,kBAAC,OAAD;CAAK,WAAW,EAAG,mCAAmC,CAAS;CAAI;AAAc,CAAA;AAEzF,EAAa,cAAc;AAE3B,IAAa,KAA4E,EAAE,aAAU,cAAW,oBAE9G,kBAAC,OAAD;CAAK,WAAW,EAAG,iCAAiC,CAAS;WAC3D,IAAa,kBAAC,GAAD;EAAY,WAAU;EAAQ;CAAqB,CAAA,IAAI;AACjE,CAAA;AAGP,EAAa,cAAc;AAE3B,IAAa,KAAgD,EAAE,aAAU,mBAEvE,kBAAC,OAAD;CAAK,WAAW,EAAG,gCAAgC,CAAS;WAC3D,kBAAC,GAAD;EAAe,KAAI;EAAK,OAAM;EAAS,SAAQ;EAC7C;CACa,CAAA;AACX,CAAA;AAGP,EAAY,cAAc;AAsB1B,IAAa,KAA+B,EAAE,WAAQ,UAAO,UAAO,MAAM,WAAQ,YAAS,kBAAe;CACzG,IAAM,IAAU,EAAM,GAChB,IAAU,EAAM,GAEhB,EAAE,WAAQ,cAAW,eAAY,kBAAe,EAAgB,GAChE,CAAC,GAAW,KAAgB,EAAS,EAAK,GAC1C,IAAa,QAAqB,EAAa,EAAI,CAAC,GACpD,IAAe,QAAqB,EAAa,EAAK,CAAC,GAMvD,IAAW,MAAW,EAAO,WAAW,KAAK,EAAW,CAAO,IAE/D,IAAW,EAAa,KAAU,EAAK;CAoB7C,IAlBA,EAAiB;EAChB,QAAQ,KAAY;EACpB,WAAW;EACX,cAAc;CACf,CAAC,GAED,SACK,MACH,EAAU,CAAO,GACjB,EAAW,UAGC;EAEZ,AADA,EAAW,CAAO,GAClB,EAAa;CACd,IACE;EAAC;EAAY;EAAQ;EAAS;CAAS,CAAC,GAEvC,CAAC,GAAW,OAAO;CAEvB,IAAM,IAAY,EAAsB,YAAY;CAEpD,IAAI,CAAC,GACJ,OAAO;CAGR,IAAI,IAA2B,MAC3B,IAA2B,MAC3B,IAA0B,MAExB,IAAa,EAAS,QAAQ,CAAQ;CAE5C,KAAK,IAAM,KAAS,GAGnB,QAFiB,EAAM,KAAK,aAE5B;EACC,KAAK,EAAa;GACjB,IAAI,GAAS,MAAU,MAAM,kCAAkC;GAC/D,IAAU;GACV;EACD,KAAK,EAAY;GAChB,IAAI,GAAQ,MAAU,MAAM,iCAAiC;GAC7D,IAAS;GACT;EACD,KAAK,EAAa;GACjB,IAAI,GAAS,MAAU,MAAM,kCAAkC;GAC/D,IAAU;GACV;CACF;CAGD,OAAO,EACN,kBAAA,GAAA,EAAA,UACC,kBAAC,OAAD;EACC,KAAK;EACL,WAAW,EAAG,EAAO,OAAO,EAAO,EAAK;EACxC,OAAO,EAAE,UAAO;EAChB,MAAK;EACL,cAAW;EACX,mBAAiB;EACjB,oBAAkB,GAAG,EAAQ;YAP9B,CAQC,kBAAC,OAAD;GAAK,WAAW,EAAG,EAAO,QAAQ,IAAU,KAAK,cAAc;aAA/D,CACC,kBAAC,MAAD;IAAI,WAAW,EAAO;IAAY,IAAI;cACpC;GACE,CAAA,GACJ,kBAAC,GAAD;IACC,MAAM,kBAAC,GAAD,CAAI,CAAA;IACV,WAAW,EAAO;IAClB,SAAS;IACT,WAAW;IACX,cAAY;IACZ,SAAS;GACT,CAAA,CACG;MAEL,kBAAC,GAAD;GACC,IAAI,GAAG,EAAQ;GACf,cAAc,GAAG,IAAU,SAAS,GAAG,OAAO,IAAS,SAAS,KAAK,KAAK;GAE1E,WAAW,EAAO;aAJnB;IAKE;IACA;IACA;GACa;IACX;IACJ,CAAA,GACF,CACD;AACD;;;AC9JA,SAAgB,EAAqB,EAAE,aAAU,yBAAsB,MAAoC;CAC1G,IAAM,CAAC,GAAQ,KAAa,EAAmB,CAAC,CAAC,GAC3C,IAAmB,EAAO,CAAC,GAC3B,IAAiB,EAAO,CAAC,GACzB,IAAmB,EAAO,EAAE,GAC5B,IAAyB,EAAO,EAAK,GAErC,IAAY,GAAa,MAAe;EAC7C,GAAW,MAAS,CAAC,GAAG,GAAM,CAAE,CAAC;CAClC,GAAG,CAAC,CAAC,GAEC,IAAa,GAAa,MAAe;EAC9C,GAAW,MAAS,EAAK,QAAQ,MAAQ,MAAQ,CAAE,CAAC;CACrD,GAAG,CAAC,CAAC,GAEC,IAAa,GACjB,MACO,EAAO,EAAO,SAAS,OAAO,GAEtC,CAAC,CAAM,CACR;CAsDA,OApDA,QAAgB;EACf,IAAM,IAAW,EAAiB,YAAY;EAE9C,IAAI,KAAY,EAAO,SAAS,GAAG;GAElC,IAAM,IAAU,OAAO,SACjB,IAAU,SAAS,cAAc,WAAW;GAelD,AAdA,EAAe,UAAU,KAAK,IAAI,GAAG,OAAO,aAAa,SAAS,gBAAgB,WAAW,GAC7F,EAAiB,UAAU,SAAS,KAAK,MAAM,cAE/C,SAAS,KAAK,MAAM,WAAW,SAC/B,SAAS,KAAK,MAAM,MAAM,IAAI,EAAQ,KACtC,SAAS,KAAK,MAAM,QAAQ,QAExB,MACH,SAAS,KAAK,MAAM,eAAe,GAAG,EAAe,QAAQ,KAC7D,EAAuB,UAAU,KAGlC,GAAS,aAAa,SAAS,MAAM,GAErC,EAAiB,UAAU,EAAO;GAClC;EACD;EAOA,IALI,CAAC,KAAY,EAAO,SAAS,KAAK,MAAwB,EAAuB,YACpF,SAAS,KAAK,MAAM,eAAe,IAAsB,GAAG,EAAe,QAAQ,MAAM,EAAiB,SAC1G,EAAuB,UAAU,IAG9B,CAAC,KAAY,EAAO,WAAW,GAAG;GAErC,IAAM,IAAU,SAAS,cAAc,WAAW,GAC5C,IAAU,SAAS,SAAS,KAAK,MAAM,OAAO,GAAG,IAAI;GAa3D,AAXA,SAAS,KAAK,MAAM,WAAW,IAC/B,SAAS,KAAK,MAAM,MAAM,IAC1B,SAAS,KAAK,MAAM,QAAQ,IAE5B,AAEC,EAAuB,aADvB,SAAS,KAAK,MAAM,eAAe,EAAiB,SACnB,KAGlC,GAAS,gBAAgB,OAAO,GAEhC,OAAO,SAAS;IAAE,KAAK;IAAS,MAAM;IAAG,UAAU;GAAU,CAAC;EAC/D;EAEA,EAAiB,UAAU,EAAO;CACnC,GAAG,CAAC,GAAqB,EAAO,MAAM,CAAC,GAEhC,kBAAC,EAAoB,UAArB;EAA8B,OAAO;GAAE;GAAQ;GAAW;GAAY;EAAW;EAAI;CAAuC,CAAA;AACpI"}
@@ -1,180 +0,0 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1CjCwLr.js";import{t as i}from"./react-dom-Wlkt-dsb.js";import{t as a}from"./jsx-runtime-BBQGix-2.js";import{a as o,i as s}from"./utils-BY_HhyoQ.js";import{o as c,t as l}from"./lucide-react-DNKi1M4I.js";import{a as u,i as ee,r as te,s as ne}from"./error-C-yEsKLJ.js";import{o as d}from"./Flex-DTualGXt.js";import{t as f}from"./flex-Cf2jLP1U.js";import{t as p}from"./Button-CO9qTYjf.js";import{t as m}from"./button-BOWFIeDh.js";import{t as h}from"./Input-XmHlbTYH.js";import{t as g}from"./input-Ciguy4IH.js";import{i as re}from"./Grid-NUIGfEZg.js";import{t as ie}from"./grid-0riWQzPS.js";import{i as _,t as v}from"./misc-C0xWU5l4.js";var y,b,x,S,C,w,T,ae,E,D,O,k,oe=n((()=>{y=`vGPUKV`,b=`O7gb7P`,x=`RVq8v3`,S=`PCSUAL`,C=`XDCHzq`,w=`t1kl8L`,T=`o3PEEB`,ae=`WhUkxm`,E=`NDgdMi`,D=`JDlse5`,O=`FaDKSt`,k={modal:y,sm:b,md:x,lg:S,xl:C,xxl:w,inside:T,header:ae,body:E,headerText:D,headerButton:O}})),A,j,M,N=n((()=>{A=t(r(),1),j=(0,A.createContext)({modals:[],openModal:()=>{},closeModal:()=>{},isTopModal:()=>!1}),M=()=>(0,A.useContext)(j)})),P,F,I,L,R,z,B,se=n((()=>{P=t(r(),1),u(),s(),l(),F=t(i(),1),m(),f(),ie(),v(),oe(),N(),I=a(),L=({children:e,className:t})=>(0,I.jsx)(`div`,{className:o(`surface2 paddingMd borderBottom`,t),children:e}),L.displayName=`Modal.Toolbar`,R=({children:e,className:t,scrollable:n})=>(0,I.jsx)(`div`,{className:o(`paddingMd h100 overflowHidden`,t),children:n?(0,I.jsx)(_,{className:`h100`,children:e}):e}),R.displayName=`Modal.Content`,z=({children:e,className:t})=>(0,I.jsx)(`div`,{className:o(`surface2 borderTop paddingMd`,t),children:(0,I.jsx)(d,{gap:`sm`,align:`center`,justify:`end`,children:e})}),z.displayName=`Modal.Footer`,B=({isOpen:e,title:t,size:n=`sm`,height:r,onClose:i,children:a})=>{let s=(0,P.useId)(),l=(0,P.useId)(),{modals:u,openModal:d,closeModal:f,isTopModal:m}=M(),[h,g]=(0,P.useState)(!1),ie=(0,P.useEffectEvent)(()=>g(!0)),_=(0,P.useEffectEvent)(()=>g(!1)),v=e&&(u.length===0||m(s)),y=ne(e||!1);if(ee({active:v||!1,onDismiss:i,containerRef:y}),(0,P.useEffect)(()=>(e&&(d(s),ie()),()=>{f(s),_()}),[f,e,s,d]),!h)return null;let b=te(`modal-root`);if(!b)return null;let x=null,S=null,C=null,w=P.Children.toArray(a);for(let e of w)switch(e.type.displayName){case L.displayName:if(x)throw Error(`Modal: duplicate <Toolbar> found`);x=e;break;case z.displayName:if(C)throw Error(`Modal: duplicate <Footer> found`);C=e;break;case R.displayName:if(S)throw Error(`Modal: duplicate <Content> found`);S=e;break}return(0,F.createPortal)((0,I.jsx)(I.Fragment,{children:(0,I.jsxs)(`div`,{ref:y,className:o(k.modal,k[n]),style:{height:r},role:`dialog`,"aria-modal":`true`,"aria-labelledby":l,"aria-describedby":`${l}-content`,children:[(0,I.jsxs)(`div`,{className:o(k.header,x?``:`borderBottom`),children:[(0,I.jsx)(`h3`,{className:k.headerText,id:l,children:t}),(0,I.jsx)(p,{icon:(0,I.jsx)(c,{}),className:k.headerButton,variant:`ghost`,autoFocus:!0,"aria-label":`Закрыть модальное окно`,onClick:i})]}),(0,I.jsxs)(re,{id:`${l}-content`,templateRows:`${x?`auto`:``} 1fr ${C?`auto`:``}`.trim(),className:k.body,children:[x,S,C]})]})}),b)},L.__docgenInfo={description:``,methods:[],displayName:`Modal.Toolbar`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}},R.__docgenInfo={description:``,methods:[],displayName:`Modal.Content`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``},scrollable:{required:!1,tsType:{name:`boolean`},description:``}}},z.__docgenInfo={description:``,methods:[],displayName:`Modal.Footer`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}}));function V({children:e,compensateScrollbar:t=!1}){let[n,r]=(0,H.useState)([]),i=(0,H.useRef)(0),a=(0,H.useRef)(0),o=(0,H.useRef)(``),s=(0,H.useRef)(!1),c=(0,H.useCallback)(e=>{r(t=>[...t,e])},[]),l=(0,H.useCallback)(e=>{r(t=>t.filter(t=>t!==e))},[]),u=(0,H.useCallback)(e=>n[n.length-1]===e,[n]);return(0,H.useEffect)(()=>{let e=i.current===0;if(e&&n.length>0){let e=window.scrollY,r=document.querySelector(`#app-root`);a.current=Math.max(0,window.innerWidth-document.documentElement.clientWidth),o.current=document.body.style.paddingRight,document.body.style.position=`fixed`,document.body.style.top=`-${e}px`,document.body.style.width=`100%`,t&&(document.body.style.paddingRight=`${a.current}px`,s.current=!0),r?.setAttribute(`inert`,`true`),i.current=n.length;return}if(!e&&n.length>0&&t!==s.current&&(document.body.style.paddingRight=t?`${a.current}px`:o.current,s.current=t),!e&&n.length===0){let e=document.querySelector(`#app-root`),t=parseInt(document.body.style.top||`0`)*-1;document.body.style.position=``,document.body.style.top=``,document.body.style.width=``,s.current&&=(document.body.style.paddingRight=o.current,!1),e?.removeAttribute(`inert`),window.scrollTo({top:t,left:0,behavior:`instant`})}i.current=n.length},[t,n.length]),(0,U.jsx)(j.Provider,{value:{modals:n,openModal:c,closeModal:l,isTopModal:u},children:e})}var H,U,ce=n((()=>{H=t(r(),1),N(),U=a(),V.__docgenInfo={description:`Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.`,methods:[],displayName:`ModalManagerProvider`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},compensateScrollbar:{required:!1,tsType:{name:`boolean`},description:`Компенсирует исчезновение скроллбара правым padding у body.`,defaultValue:{value:`false`,computed:!1}}}}})),le=n((()=>{se(),ce(),N()})),ue=e({Controlled:()=>J,ScrollableContent:()=>X,Sizes:()=>Z,StackedModals:()=>Q,WithToolbarAndFooter:()=>Y,__namedExportsOrder:()=>$,default:()=>q});function de({children:e}){return(0,K.jsx)(`div`,{style:{minHeight:`60dvh`,padding:24,display:`flex`,alignItems:`center`,justifyContent:`center`},children:e})}function W(){let[e,t]=(0,G.useState)(`Алексей`),[n,r]=(0,G.useState)(`Департамент автоматизации бизнеса`);return(0,K.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,K.jsx)(h,{label:`Имя`,value:e,onChange:t,placeholder:`Введите имя`}),(0,K.jsx)(h,{label:`Подразделение`,value:n,onChange:r,placeholder:`Введите подразделение`}),(0,K.jsxs)(`div`,{style:{padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[`Текущие значения: `,e||`не указано`,`, `,n||`не указано`]})]})}var G,K,q,J,Y,X,Z,Q,$,fe=n((()=>{G=t(r(),1),m(),g(),le(),K=a(),q={title:`Shared/UI/Modal`,component:B,parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:"Композиционная модалка с `Toolbar`, `Content` и `Footer`, поддержкой focus trap, возврата фокуса, закрытия по `Escape` и менеджером стека через `ModalManagerProvider`."}}},decorators:[e=>(0,K.jsx)(V,{children:(0,K.jsx)(de,{children:e()})})],args:{isOpen:!1,title:`Редактирование профиля`,size:`md`,height:void 0,onClose:()=>{},children:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(R,{children:(0,K.jsx)(W,{})}),(0,K.jsxs)(z,{children:[(0,K.jsx)(p,{variant:`transparent`,children:`Отмена`}),(0,K.jsx)(p,{children:`Сохранить`})]})]})},argTypes:{isOpen:{description:`Управляет видимостью модального окна.`,control:`boolean`},title:{description:`Заголовок модального окна.`,control:`text`},size:{description:`Предустановленный размер модального окна.`,control:`inline-radio`,options:[`sm`,`md`,`lg`,`xl`,`inside`]},height:{description:`Явная высота body-области модалки.`,control:`text`},onClose:{description:"Вызывается при закрытии по кнопке, `Escape` или пользовательскому действию.",control:!1},children:{description:"Композиция из `ModalToolbar`, `ModalContent`, `ModalFooter`.",control:!1}}},J={name:`Управляемая модалка`,render:e=>{let[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(p,{onClick:()=>n(!0),children:`Открыть модалку`}),(0,K.jsxs)(B,{...e,isOpen:t,onClose:()=>n(!1),children:[(0,K.jsx)(R,{children:(0,K.jsx)(W,{})}),(0,K.jsxs)(z,{children:[(0,K.jsx)(p,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,K.jsx)(p,{onClick:()=>n(!1),children:`Сохранить`})]})]})]})}},Y={name:`Полная композиция`,render:e=>{let[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(p,{onClick:()=>n(!0),children:`Открыть сценарий редактирования`}),(0,K.jsxs)(B,{...e,isOpen:t,onClose:()=>n(!1),height:`min(34rem, 70dvh)`,children:[(0,K.jsx)(L,{children:(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{style:{fontWeight:600},children:`Черновик обновлён автоматически`}),(0,K.jsx)(`div`,{style:{opacity:.72},children:`Последнее сохранение: 2 минуты назад`})]}),(0,K.jsx)(p,{variant:`transparent`,children:`Сбросить`})]})}),(0,K.jsx)(R,{children:(0,K.jsx)(W,{})}),(0,K.jsxs)(z,{children:[(0,K.jsx)(p,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,K.jsx)(p,{variant:`success`,onClick:()=>n(!1),children:`Применить`})]})]})]})}},X={name:`Длинный контент`,render:e=>{let[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(p,{onClick:()=>n(!0),children:`Открыть длинный контент`}),(0,K.jsxs)(B,{...e,isOpen:t,onClose:()=>n(!1),size:`lg`,height:`min(38rem, 75dvh)`,title:`Журнал изменений`,children:[(0,K.jsx)(R,{children:(0,K.jsx)(`div`,{style:{display:`grid`,gap:12},children:Array.from({length:18},(e,t)=>(0,K.jsxs)(`div`,{style:{padding:12,borderRadius:8,border:`1px solid var(--border-1)`,background:`var(--surface-1)`},children:[(0,K.jsxs)(`div`,{style:{fontWeight:600},children:[`Событие #`,t+1]}),(0,K.jsx)(`div`,{style:{opacity:.72},children:`Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.`})]},t))})}),(0,K.jsx)(z,{children:(0,K.jsx)(p,{onClick:()=>n(!1),children:`Закрыть`})})]})]})}},Z={name:`Размеры`,render:()=>{let[e,t]=(0,G.useState)(null);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:12,justifyContent:`center`},children:[`sm`,`md`,`lg`,`xl`,`inside`].map(e=>(0,K.jsx)(p,{variant:`transparent`,onClick:()=>t(e),children:e.toUpperCase()},e))}),e&&(0,K.jsxs)(B,{isOpen:!0,onClose:()=>t(null),size:e,title:`Размер ${e.toUpperCase()}`,children:[(0,K.jsx)(R,{children:(0,K.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,K.jsx)(`div`,{children:`Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.`}),(0,K.jsx)(`div`,{style:{opacity:.72},children:"Проверьте отступы, читабельность и поведение при `Escape`."})]})}),(0,K.jsx)(z,{children:(0,K.jsx)(p,{onClick:()=>t(null),children:`Понятно`})})]})]})}},Q={name:`Стек модалок`,render:e=>{let[t,n]=(0,G.useState)(!1),[r,i]=(0,G.useState)(!1);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(p,{onClick:()=>n(!0),children:`Открыть первую модалку`}),(0,K.jsxs)(B,{...e,isOpen:t,onClose:()=>{i(!1),n(!1)},size:`lg`,title:`Первая модалка`,children:[(0,K.jsx)(R,{children:(0,K.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,K.jsx)(`div`,{children:"Откройте вторую модалку и проверьте, что `Escape` закрывает только верхний слой."}),(0,K.jsx)(p,{variant:`transparent`,onClick:()=>i(!0),children:`Открыть вторую модалку`})]})}),(0,K.jsx)(z,{children:(0,K.jsx)(p,{variant:`transparent`,onClick:()=>n(!1),children:`Закрыть первую`})})]}),(0,K.jsxs)(B,{isOpen:r,onClose:()=>i(!1),size:`sm`,title:`Вторая модалка`,children:[(0,K.jsx)(R,{children:(0,K.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,K.jsx)(`div`,{children:`Эта модалка должна считаться верхней в стеке.`}),(0,K.jsx)(h,{label:`Короткое поле`,value:`Фокус внутри`,onChange:()=>{}})]})}),(0,K.jsx)(z,{children:(0,K.jsx)(p,{onClick:()=>i(!1),children:`Закрыть вторую`})})]})]})}},J.parameters={...J.parameters,docs:{...J.parameters?.docs,source:{originalSource:`{
2
- name: "Управляемая модалка",
3
- render: args => {
4
- const [open, setOpen] = useState(false);
5
- return <>
6
- <Button onClick={() => setOpen(true)}>Открыть модалку</Button>
7
- <Modal {...args} isOpen={open} onClose={() => setOpen(false)}>
8
- <ModalContent>
9
- <DemoFormContent />
10
- </ModalContent>
11
- <ModalFooter>
12
- <Button variant="transparent" onClick={() => setOpen(false)}>
13
- Отмена
14
- </Button>
15
- <Button onClick={() => setOpen(false)}>Сохранить</Button>
16
- </ModalFooter>
17
- </Modal>
18
- </>;
19
- }
20
- }`,...J.parameters?.docs?.source}}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
21
- name: "Полная композиция",
22
- render: args => {
23
- const [open, setOpen] = useState(false);
24
- return <>
25
- <Button onClick={() => setOpen(true)}>Открыть сценарий редактирования</Button>
26
- <Modal {...args} isOpen={open} onClose={() => setOpen(false)} height="min(34rem, 70dvh)">
27
- <ModalToolbar>
28
- <div style={{
29
- display: "flex",
30
- alignItems: "center",
31
- justifyContent: "space-between",
32
- gap: 12,
33
- padding: 12,
34
- borderRadius: 8,
35
- background: "var(--surface-1)",
36
- border: "1px solid var(--border-1)"
37
- }}>
38
- <div>
39
- <div style={{
40
- fontWeight: 600
41
- }}>Черновик обновлён автоматически</div>
42
- <div style={{
43
- opacity: 0.72
44
- }}>Последнее сохранение: 2 минуты назад</div>
45
- </div>
46
- <Button variant="transparent">Сбросить</Button>
47
- </div>
48
- </ModalToolbar>
49
- <ModalContent>
50
- <DemoFormContent />
51
- </ModalContent>
52
- <ModalFooter>
53
- <Button variant="transparent" onClick={() => setOpen(false)}>
54
- Отмена
55
- </Button>
56
- <Button variant="success" onClick={() => setOpen(false)}>
57
- Применить
58
- </Button>
59
- </ModalFooter>
60
- </Modal>
61
- </>;
62
- }
63
- }`,...Y.parameters?.docs?.source}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
64
- name: "Длинный контент",
65
- render: args => {
66
- const [open, setOpen] = useState(false);
67
- return <>
68
- <Button onClick={() => setOpen(true)}>Открыть длинный контент</Button>
69
- <Modal {...args} isOpen={open} onClose={() => setOpen(false)} size="lg" height="min(38rem, 75dvh)" title="Журнал изменений">
70
- <ModalContent>
71
- <div style={{
72
- display: "grid",
73
- gap: 12
74
- }}>
75
- {Array.from({
76
- length: 18
77
- }, (_, index) => <div key={index} style={{
78
- padding: 12,
79
- borderRadius: 8,
80
- border: "1px solid var(--border-1)",
81
- background: "var(--surface-1)"
82
- }}>
83
- <div style={{
84
- fontWeight: 600
85
- }}>Событие #{index + 1}</div>
86
- <div style={{
87
- opacity: 0.72
88
- }}>
89
- Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.
90
- </div>
91
- </div>)}
92
- </div>
93
- </ModalContent>
94
- <ModalFooter>
95
- <Button onClick={() => setOpen(false)}>Закрыть</Button>
96
- </ModalFooter>
97
- </Modal>
98
- </>;
99
- }
100
- }`,...X.parameters?.docs?.source}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
101
- name: "Размеры",
102
- render: () => {
103
- const [openSize, setOpenSize] = useState<"sm" | "md" | "lg" | "xl" | "inside" | null>(null);
104
- return <>
105
- <div style={{
106
- display: "flex",
107
- flexWrap: "wrap",
108
- gap: 12,
109
- justifyContent: "center"
110
- }}>
111
- {(["sm", "md", "lg", "xl", "inside"] as const).map(size => <Button key={size} variant="transparent" onClick={() => setOpenSize(size)}>
112
- {size.toUpperCase()}
113
- </Button>)}
114
- </div>
115
-
116
- {openSize && <Modal isOpen onClose={() => setOpenSize(null)} size={openSize} title={\`Размер \${openSize.toUpperCase()}\`}>
117
- <ModalContent>
118
- <div style={{
119
- display: "grid",
120
- gap: 12
121
- }}>
122
- <div>Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.</div>
123
- <div style={{
124
- opacity: 0.72
125
- }}>Проверьте отступы, читабельность и поведение при \`Escape\`.</div>
126
- </div>
127
- </ModalContent>
128
- <ModalFooter>
129
- <Button onClick={() => setOpenSize(null)}>Понятно</Button>
130
- </ModalFooter>
131
- </Modal>}
132
- </>;
133
- }
134
- }`,...Z.parameters?.docs?.source}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
135
- name: "Стек модалок",
136
- render: args => {
137
- const [outerOpen, setOuterOpen] = useState(false);
138
- const [innerOpen, setInnerOpen] = useState(false);
139
- return <>
140
- <Button onClick={() => setOuterOpen(true)}>Открыть первую модалку</Button>
141
-
142
- <Modal {...args} isOpen={outerOpen} onClose={() => {
143
- setInnerOpen(false);
144
- setOuterOpen(false);
145
- }} size="lg" title="Первая модалка">
146
- <ModalContent>
147
- <div style={{
148
- display: "grid",
149
- gap: 16
150
- }}>
151
- <div>Откройте вторую модалку и проверьте, что \`Escape\` закрывает только верхний слой.</div>
152
- <Button variant="transparent" onClick={() => setInnerOpen(true)}>
153
- Открыть вторую модалку
154
- </Button>
155
- </div>
156
- </ModalContent>
157
- <ModalFooter>
158
- <Button variant="transparent" onClick={() => setOuterOpen(false)}>
159
- Закрыть первую
160
- </Button>
161
- </ModalFooter>
162
- </Modal>
163
-
164
- <Modal isOpen={innerOpen} onClose={() => setInnerOpen(false)} size="sm" title="Вторая модалка">
165
- <ModalContent>
166
- <div style={{
167
- display: "grid",
168
- gap: 12
169
- }}>
170
- <div>Эта модалка должна считаться верхней в стеке.</div>
171
- <Input label="Короткое поле" value={"Фокус внутри"} onChange={() => {}} />
172
- </div>
173
- </ModalContent>
174
- <ModalFooter>
175
- <Button onClick={() => setInnerOpen(false)}>Закрыть вторую</Button>
176
- </ModalFooter>
177
- </Modal>
178
- </>;
179
- }
180
- }`,...Q.parameters?.docs?.source}}},$=[`Controlled`,`WithToolbarAndFooter`,`ScrollableContent`,`Sizes`,`StackedModals`]}));fe();export{J as Controlled,X as ScrollableContent,Z as Sizes,Q as StackedModals,Y as WithToolbarAndFooter,$ as __namedExportsOrder,q as default,fe as n,ue as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{m as t,p as n}from"./iframe-B1CjCwLr.js";import{i as r,n as i,r as a,t as o}from"./chunk-3LY4VQVK-cdx-m4dV.js";var s;e((()=>{a(),i(),t(),s=(0,n(r(),1).default)(2)(async(e,t)=>e===!1?t:o(t))}))();export{s as formatter};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{a as t,n,r}from"./Grid-NUIGfEZg.js";var i=e((()=>{n(),t(),r()}));export{i as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{P as t}from"./formatters-DXHNQSpS.js";var n=e((()=>{t()}));export{n as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{n as t}from"./Select-V5lTi2fc.js";import{n}from"./ODataSelect-BG7NWPTV.js";import{n as r}from"./SerializableSelect-CvMVlLei.js";var i=e((()=>{n(),t(),r()}));export{i as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{a as t,r as n}from"./DateInput-CJjcOU3w.js";var r=e((()=>{t(),n()}));export{r as t};