@ryuzaki13/react-foundation-ui 1.0.13 → 1.0.15

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 (178) hide show
  1. package/dist/advanced-search/index.js +1 -1
  2. package/dist/chunks/{TextEditorLexicalClient-CxOJuwOC.js → TextEditorLexicalClient-jQ7V9jFm.js} +2 -2
  3. package/dist/chunks/{TextEditorLexicalClient-CxOJuwOC.js.map → TextEditorLexicalClient-jQ7V9jFm.js.map} +1 -1
  4. package/dist/chunks/{modal-C0j0hEIt.js → modal-4vYSSbAa.js} +19 -19
  5. package/dist/chunks/{modal-C0j0hEIt.js.map → modal-4vYSSbAa.js.map} +1 -1
  6. package/dist/image/index.js +1 -1
  7. package/dist/modal/ModalManagerProvider.d.ts +6 -3
  8. package/dist/modal/ModalManagerProvider.d.ts.map +1 -1
  9. package/dist/modal/index.js +1 -1
  10. package/dist/text-editor/index.js +1 -1
  11. package/package.json +1 -1
  12. package/src/styles/_base.scss +13 -46
  13. package/storybook-static/assets/{Badge-Q8iX86Mn.js → Badge-BJuMBcdz.js} +1 -1
  14. package/storybook-static/assets/{Badge.stories-BEMBzR2f.js → Badge.stories-IgBcw1Cf.js} +1 -1
  15. package/storybook-static/assets/{Button-CfX05aoR.js → Button-B_GEc_r4.js} +1 -1
  16. package/storybook-static/assets/{Button-BUkCW8Zg.js → Button-DRBTSyRM.js} +1 -1
  17. package/storybook-static/assets/{Button.stories-BoNLZb6w.js → Button.stories-Di4OQvY8.js} +1 -1
  18. package/storybook-static/assets/{CheckBox-CcXGzkSE.js → CheckBox-57qzcUkX.js} +1 -1
  19. package/storybook-static/assets/{CheckBox-DTSi8Yok.js → CheckBox-WHmt7FbU.js} +1 -1
  20. package/storybook-static/assets/{CheckBox.stories-Bo53TxC7.js → CheckBox.stories-BItLovUs.js} +1 -1
  21. package/storybook-static/assets/{Color-KMSTOMOX-Mbprgrbi.js → Color-KMSTOMOX-CWP56kfm.js} +1 -1
  22. package/storybook-static/assets/{ContextMenu-DYlSojIE.js → ContextMenu-DKl_ZfMI.js} +1 -1
  23. package/storybook-static/assets/{ContextMenu.stories-BJr53bsq.js → ContextMenu.stories-D-Xnld63.js} +1 -1
  24. package/storybook-static/assets/{DateInput-BrmilavO.js → DateInput-B2X74zQf.js} +1 -1
  25. package/storybook-static/assets/{DateInput-C72jV86j.js → DateInput-BSyYH-et.js} +1 -1
  26. package/storybook-static/assets/{DateInput.stories-0hU_T1iZ.js → DateInput.stories-Dwk-9ZjA.js} +1 -1
  27. package/storybook-static/assets/{DateRangePresetSelect-C7gJVkMB.js → DateRangePresetSelect-CPeX_HRn.js} +1 -1
  28. package/storybook-static/assets/{DateRangePresetSelect-BklzgpCR.js → DateRangePresetSelect-DTSWmoT_.js} +1 -1
  29. package/storybook-static/assets/{DateRangePresetSelect.stories-DQKDcAdP.js → DateRangePresetSelect.stories-CGNvBg03.js} +1 -1
  30. package/storybook-static/assets/{Detail-BMu0MY4h.js → Detail-BQwyVo2M.js} +1 -1
  31. package/storybook-static/assets/{Detail.stories-CgBJjWQd.js → Detail.stories-x4juDK19.js} +1 -1
  32. package/storybook-static/assets/{Dialog-M7Uy3LiO.js → Dialog-CH9J4tmL.js} +1 -1
  33. package/storybook-static/assets/{Dialog.stories-BZ0opvaJ.js → Dialog.stories-Cp3J86ce.js} +1 -1
  34. package/storybook-static/assets/{Disclosure-BXnfHC6v.js → Disclosure-B7i9P4YG.js} +1 -1
  35. package/storybook-static/assets/{Disclosure.stories-C7wh6KJU.js → Disclosure.stories-DzZ5RLXm.js} +1 -1
  36. package/storybook-static/assets/{DocsRenderer-JROSPFPF-BjXFJaat.js → DocsRenderer-JROSPFPF-D61SC7UY.js} +2 -2
  37. package/storybook-static/assets/{DropZone-cd1aCNT1.js → DropZone-MiBUScxG.js} +1 -1
  38. package/storybook-static/assets/{DropZone.stories-CVu731Lk.js → DropZone.stories-C2qhbfNj.js} +1 -1
  39. package/storybook-static/assets/{DropdownMenu-B97Ad5Dg.js → DropdownMenu-X7PLdfVp.js} +1 -1
  40. package/storybook-static/assets/{ExpandableActionPanel.stories-k-eTxMyV.js → ExpandableActionPanel.stories-Ca2AoCI0.js} +1 -1
  41. package/storybook-static/assets/{Flex-BQkqAqL5.js → Flex-BaD8FRom.js} +1 -1
  42. package/storybook-static/assets/{Flex-C_VnI9xY.js → Flex-CML6WrKV.js} +1 -1
  43. package/storybook-static/assets/{Flex.stories-C1VO9Ct3.js → Flex.stories-F8YaKEO0.js} +1 -1
  44. package/storybook-static/assets/{Grid-y8wKyEwc.js → Grid-BewDzBtv.js} +1 -1
  45. package/storybook-static/assets/{Grid-Dr3BuEgd.js → Grid-ZTR_R-m1.js} +1 -1
  46. package/storybook-static/assets/{Grid.stories-6WUp6Tof.js → Grid.stories-Cu78z_oE.js} +1 -1
  47. package/storybook-static/assets/{Input-B7DWcGCL.js → Input-D6z--4tm.js} +1 -1
  48. package/storybook-static/assets/{Input-yly8wxYE.js → Input-DjRjmBbJ.js} +1 -1
  49. package/storybook-static/assets/{Input.stories-CkVqvY-C.js → Input.stories-CBkJ60Z3.js} +1 -1
  50. package/storybook-static/assets/{InputDateTime-DHirw8rp.js → InputDateTime-B2V4I801.js} +1 -1
  51. package/storybook-static/assets/{InputDateTime.stories-Dci_81MA.js → InputDateTime.stories-gepL7zcB.js} +1 -1
  52. package/storybook-static/assets/{InputFile-DBFfWIkJ.js → InputFile-B_rtgdVs.js} +1 -1
  53. package/storybook-static/assets/{InputFile.stories-Bar27dP5.js → InputFile.stories-CVD-PTav.js} +1 -1
  54. package/storybook-static/assets/{InputFiles-DPz7PiOC.js → InputFiles-CFlxBgsw.js} +1 -1
  55. package/storybook-static/assets/{InputFiles-tULKp1KR.js → InputFiles-Cy_fvMYT.js} +1 -1
  56. package/storybook-static/assets/{InputFiles.stories-CkZ8et32.js → InputFiles.stories-DIbO_ACP.js} +1 -1
  57. package/storybook-static/assets/{InputImage-D8VckxKl.js → InputImage-BWbT8pGH.js} +1 -1
  58. package/storybook-static/assets/{InputImage.stories-Dq8ORce3.js → InputImage.stories-SyFATair.js} +1 -1
  59. package/storybook-static/assets/{LayoutPicker-l3XFAkqv.js → LayoutPicker-0dJNS0bb.js} +1 -1
  60. package/storybook-static/assets/{LayoutPicker.stories-BjUmm2cg.js → LayoutPicker.stories-BUohHOWt.js} +1 -1
  61. package/storybook-static/assets/{Listbox-B_6QVPAJ.js → Listbox-Cn1Z-r2n.js} +1 -1
  62. package/storybook-static/assets/{Listbox.stories-Cf_ApbmT.js → Listbox.stories-c1NSeGUa.js} +1 -1
  63. package/storybook-static/assets/{Modal-BzienAaa.js → Modal-Db2Ne_PP.js} +1 -1
  64. package/storybook-static/assets/Modal.stories-CZum1nVD.js +180 -0
  65. package/storybook-static/assets/{MultiSelect-CK2D25RA.js → MultiSelect-CkHso-Za.js} +1 -1
  66. package/storybook-static/assets/{MultiSelect-CjGBd2pC.js → MultiSelect-D-r3_Bry.js} +1 -1
  67. package/storybook-static/assets/{MultiSelect.stories--f_FoBzR.js → MultiSelect.stories-CjNtbPvc.js} +1 -1
  68. package/storybook-static/assets/{NotificationsHost-DKmlmqh0.js → NotificationsHost-DcsexLl8.js} +1 -1
  69. package/storybook-static/assets/{NotificationsHost.stories-1bPUJXfm.js → NotificationsHost.stories-DxB9wp4P.js} +1 -1
  70. package/storybook-static/assets/{ODataMultiSelect-BWUXuzlr.js → ODataMultiSelect-BB6pa_2a.js} +1 -1
  71. package/storybook-static/assets/{ODataMultiSelect.stories-DA0f6SUG.js → ODataMultiSelect.stories-D4108lSt.js} +1 -1
  72. package/storybook-static/assets/{ODataSelect-aNdHSjo_.js → ODataSelect-BcrPaLAR.js} +1 -1
  73. package/storybook-static/assets/{ODataSelect-D7GAFOcM.js → ODataSelect-BppTAIqx.js} +1 -1
  74. package/storybook-static/assets/{ODataSelect.stories-CjXA9Y9l.js → ODataSelect.stories-DteYVpiQ.js} +1 -1
  75. package/storybook-static/assets/{ODataTreeMultiSelect-DKodulQ8.js → ODataTreeMultiSelect-CVjcPuI1.js} +1 -1
  76. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BjRcb4W0.js → ODataTreeMultiSelect.stories-C6xU81uc.js} +1 -1
  77. package/storybook-static/assets/{ODataTreeSelect-Ck8HCh74.js → ODataTreeSelect-BRHxD-vG.js} +1 -1
  78. package/storybook-static/assets/{ODataTreeSelect.stories-BgDj08mH.js → ODataTreeSelect.stories-CyqwAaqI.js} +1 -1
  79. package/storybook-static/assets/{PeriodSelect-Db7QmUfi.js → PeriodSelect-oi5rAN2N.js} +1 -1
  80. package/storybook-static/assets/{PeriodSelect.stories-BI6yLRCK.js → PeriodSelect.stories-C7UftRku.js} +1 -1
  81. package/storybook-static/assets/{Popover-DR-r8iC5.js → Popover-DFJPXALP.js} +1 -1
  82. package/storybook-static/assets/{Popover.stories-ReRFMWiO.js → Popover.stories-DTNaGax4.js} +1 -1
  83. package/storybook-static/assets/{PresetRangeDateInput-tSpiPAT9.js → PresetRangeDateInput-Cm4EbMNS.js} +1 -1
  84. package/storybook-static/assets/{PresetRangeDateInput.stories-LVQa2_DG.js → PresetRangeDateInput.stories-Y5uojvsz.js} +1 -1
  85. package/storybook-static/assets/{RadioButton-sEzdlL1y.js → RadioButton-B1xWc03x.js} +1 -1
  86. package/storybook-static/assets/{RadioButton.stories-CR0km0zF.js → RadioButton.stories-CFZrSdeX.js} +1 -1
  87. package/storybook-static/assets/{RadioGroup-DR0H6Z0w.js → RadioGroup-CRnLGdRq.js} +1 -1
  88. package/storybook-static/assets/{RadioGroup-BtNCd3Je.js → RadioGroup-dt4vRt66.js} +1 -1
  89. package/storybook-static/assets/{RadioGroup.stories-FEqmkrs7.js → RadioGroup.stories-Cq8jrT3o.js} +1 -1
  90. package/storybook-static/assets/{Select-CUAevk01.js → Select-COzu9R1S.js} +1 -1
  91. package/storybook-static/assets/{Select-DYVS7SCZ.js → Select-CWfg857u.js} +1 -1
  92. package/storybook-static/assets/{Select.stories-Df_c0IfC.js → Select.stories-ajlw6UD7.js} +1 -1
  93. package/storybook-static/assets/{SelectOptionContent-B7W0Mned.js → SelectOptionContent-5fpSAPpp.js} +1 -1
  94. package/storybook-static/assets/{SerializableSelect-D63xBqOT.js → SerializableSelect-CtF_5hDV.js} +1 -1
  95. package/storybook-static/assets/{SerializableSelect-DwCnuBgv.js → SerializableSelect-D7k-0rpL.js} +1 -1
  96. package/storybook-static/assets/{SerializableSelect.stories-BLPXVOtP.js → SerializableSelect.stories-DXink3F3.js} +1 -1
  97. package/storybook-static/assets/{SingleDateTimeInput-xMkDodYz.js → SingleDateTimeInput-CiZs4GCq.js} +1 -1
  98. package/storybook-static/assets/{SingleDateTimeInput.stories-kcuSwx76.js → SingleDateTimeInput.stories-5QJlrw4f.js} +1 -1
  99. package/storybook-static/assets/{Slider-BHZgpCjC.js → Slider-CxK-n_Qh.js} +1 -1
  100. package/storybook-static/assets/{Slider.stories-Bias_Soq.js → Slider.stories-B0tho-fR.js} +1 -1
  101. package/storybook-static/assets/{SliderInput-jzFZcWr7.js → SliderInput-ZN9vpT2S.js} +1 -1
  102. package/storybook-static/assets/{SliderInput.stories-B7w8bp86.js → SliderInput.stories-B9oU6kyp.js} +1 -1
  103. package/storybook-static/assets/{Sortable-DcmDaPBw.js → Sortable-Cyr7iTZO.js} +1 -1
  104. package/storybook-static/assets/{Sortable.stories-CwhHGCih.js → Sortable.stories-BhF3AZgC.js} +1 -1
  105. package/storybook-static/assets/{Splitter-Bn7AJiD_.js → Splitter-peLMiwre.js} +1 -1
  106. package/storybook-static/assets/{Splitter.stories-CSvjKF-O.js → Splitter.stories-nr3eJ5GM.js} +1 -1
  107. package/storybook-static/assets/{StateSelect-MIGiXD10.js → StateSelect-B_fxrXNN.js} +1 -1
  108. package/storybook-static/assets/{StateSelect.stories-BGDCnVqb.js → StateSelect.stories-CDdWdRLe.js} +1 -1
  109. package/storybook-static/assets/{Switch-C5zxOq_O.js → Switch-DM50QWxA.js} +1 -1
  110. package/storybook-static/assets/{Switch.stories-BmCl_Ts5.js → Switch.stories-D5LjDVPS.js} +1 -1
  111. package/storybook-static/assets/{Table-CoySXvs5.js → Table-5aluIGdo.js} +1 -1
  112. package/storybook-static/assets/{Table.stories-CA7ARhwC.js → Table.stories-DGKBAzL2.js} +1 -1
  113. package/storybook-static/assets/{Tabs-CQdzU18E.js → Tabs-CO7DsnUr.js} +1 -1
  114. package/storybook-static/assets/{Tabs.stories-SBWTpiy2.js → Tabs.stories-DTgCMxUb.js} +1 -1
  115. package/storybook-static/assets/{Textarea-Bo-I0cnE.js → Textarea-DSvLZptc.js} +1 -1
  116. package/storybook-static/assets/{Textarea.stories-C1wO9PKR.js → Textarea.stories-kqd0YbmQ.js} +1 -1
  117. package/storybook-static/assets/{TimePanel-0-mzaXky.js → TimePanel-DDaX01do.js} +1 -1
  118. package/storybook-static/assets/{TimePanel.stories-C1VM13qN.js → TimePanel.stories-CerMQLRf.js} +1 -1
  119. package/storybook-static/assets/{Toggle-B9H63WWC.js → Toggle-t1lVxQz6.js} +1 -1
  120. package/storybook-static/assets/{Toggle.stories-CKlGFcZW.js → Toggle.stories-CeJwV-Ek.js} +1 -1
  121. package/storybook-static/assets/{TreeMultiSelect-AXIl2Ge2.js → TreeMultiSelect-Cqt4O9BU.js} +1 -1
  122. package/storybook-static/assets/{TreeMultiSelect-Ci3bUpmv.js → TreeMultiSelect-D6Au72K2.js} +1 -1
  123. package/storybook-static/assets/{TreeMultiSelect.stories-CXGt4Q_u.js → TreeMultiSelect.stories-C_BIcIv6.js} +1 -1
  124. package/storybook-static/assets/{TreePickerBase-Md6Mt9qF.js → TreePickerBase-DLVYUhCD.js} +1 -1
  125. package/storybook-static/assets/{TreeSelect-BWoURakw.js → TreeSelect-CIWXiLSp.js} +1 -1
  126. package/storybook-static/assets/{TreeSelect-bOgRYtQQ.js → TreeSelect-CgDLk4ka.js} +1 -1
  127. package/storybook-static/assets/{TreeSelect.stories-By0h6wRi.js → TreeSelect.stories-DJJQpAG-.js} +1 -1
  128. package/storybook-static/assets/{TreeTable-C52Jh7O_.js → TreeTable-6VwdbiOA.js} +1 -1
  129. package/storybook-static/assets/{TreeTable.stories-BH9Q8NPP.js → TreeTable.stories-CexcAFDG.js} +1 -1
  130. package/storybook-static/assets/{WithTooltip-7X4HQR7L-DQXHhZoH.js → WithTooltip-7X4HQR7L-CceOi7V4.js} +1 -1
  131. package/storybook-static/assets/{base-table-BSkQBgdx.js → base-table-C0Zyxki6.js} +1 -1
  132. package/storybook-static/assets/{blocks-CwEU-ME1.js → blocks-CcO3Y_Rh.js} +6 -6
  133. package/storybook-static/assets/{button-Bl3Hu8CS.js → button-0yIdCp_-.js} +1 -1
  134. package/storybook-static/assets/{check-box-BrnNQnSi.js → check-box-vfk8jzFK.js} +1 -1
  135. package/storybook-static/assets/{chunk-3LY4VQVK-BxHCYS2R.js → chunk-3LY4VQVK-CZm0s4iL.js} +1 -1
  136. package/storybook-static/assets/{chunk-LITCR56V-euffoZAN.js → chunk-LITCR56V-C1XleE0V.js} +1 -1
  137. package/storybook-static/assets/{contextMenu-Do6qEwKB.js → contextMenu-DJTYsh3u.js} +1 -1
  138. package/storybook-static/assets/{error-RVOk7zpw.js → error-7f4bI5b8.js} +1 -1
  139. package/storybook-static/assets/{flex-DuYzsEBQ.js → flex-fN9xAXRx.js} +1 -1
  140. package/storybook-static/assets/{floating-ui.react-BR04wkLx.js → floating-ui.react-C-t718F2.js} +1 -1
  141. package/storybook-static/assets/formatter-L2YTDE3Q-BYPWeXB6.js +1 -0
  142. package/storybook-static/assets/{formatters-yIBztcem.js → formatters-c68ZHiVV.js} +1 -1
  143. package/storybook-static/assets/grid-DnGlfdqF.js +1 -0
  144. package/storybook-static/assets/{hooks-BEB2Gqy0.js → hooks-Cia2yw95.js} +1 -1
  145. package/storybook-static/assets/{iframe-SfMJGCsn.js → iframe-B1ZJmGrq.js} +3 -3
  146. package/storybook-static/assets/{input-Be5K9_B7.js → input-Bfb8MLis.js} +1 -1
  147. package/storybook-static/assets/{lucide-react-CK2oyDtF.js → lucide-react-Cw6QPvVA.js} +1 -1
  148. package/storybook-static/assets/{mdx-react-shim-DnKFgFHy.js → mdx-react-shim-BGEl8pi6.js} +1 -1
  149. package/storybook-static/assets/{media-Djn0SUaN.js → media-DsA0K_ZS.js} +1 -1
  150. package/storybook-static/assets/{misc-CPvLzCFJ.js → misc-zL4hFipW.js} +1 -1
  151. package/storybook-static/assets/{notifications-Zk996KvR.js → notifications-BYXcjAgk.js} +1 -1
  152. package/storybook-static/assets/{odata-C2BNbnc9.js → odata-CZ14RE2x.js} +1 -1
  153. package/storybook-static/assets/odata-service-FtP1kYQx.js +1 -0
  154. package/storybook-static/assets/{odataStoryFixtures-BBfdskiC.js → odataStoryFixtures-Cv8XAuzz.js} +1 -1
  155. package/storybook-static/assets/{picker-De4ZbESe.js → picker-DBhG__oJ.js} +1 -1
  156. package/storybook-static/assets/{popover-DWA5VOMQ.js → popover-CahYWIfo.js} +1 -1
  157. package/storybook-static/assets/{preset-select-DozCGhmu.js → preset-select-C5XCvtZE.js} +1 -1
  158. package/storybook-static/assets/{react-18-CfpYK14y.js → react-18-BpKMg-Cr.js} +1 -1
  159. package/storybook-static/assets/{react-BWN-5oQj.js → react-DzMAKl9o.js} +1 -1
  160. package/storybook-static/assets/{react-dom-CncQzc_h.js → react-dom-BfFG7H_X.js} +1 -1
  161. package/storybook-static/assets/select-C1fXLf5x.js +1 -0
  162. package/storybook-static/assets/{slider-39Mty47U.js → slider-CWiv9HFe.js} +1 -1
  163. package/storybook-static/assets/{sortable-CgCCp3dq.js → sortable-D_PcZ-1o.js} +1 -1
  164. package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-Di6cCrDX.js → syntaxhighlighter-RTCFPKCB-DatthS1s.js} +1 -1
  165. package/storybook-static/assets/{text-BxA8yj6Z.js → text-6oBGbhcX.js} +1 -1
  166. package/storybook-static/assets/{theming-DZauqOKI.js → theming-c9hibVvV.js} +1 -1
  167. package/storybook-static/assets/ui-Cq8WdcMq.js +1 -0
  168. package/storybook-static/assets/{useODataSelectBase-D33B4x2W.js → useODataSelectBase-BP43aYQp.js} +1 -1
  169. package/storybook-static/assets/{useODataTreeData-CDdzN-LC.js → useODataTreeData-D-13yhFk.js} +1 -1
  170. package/storybook-static/assets/{utils-CReRlw17.js → utils-B7W0zPTP.js} +1 -1
  171. package/storybook-static/iframe.html +1 -1
  172. package/storybook-static/project.json +1 -1
  173. package/storybook-static/assets/Modal.stories-cPIHRa9a.js +0 -180
  174. package/storybook-static/assets/formatter-L2YTDE3Q-Cdp-Jp2M.js +0 -1
  175. package/storybook-static/assets/grid-D0WOuGlB.js +0 -1
  176. package/storybook-static/assets/odata-service-8sDCOQ3I.js +0 -1
  177. package/storybook-static/assets/select-BPvMbVDe.js +0 -1
  178. package/storybook-static/assets/ui-CmVy0trY.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{n as i,t as a}from"./Flex-C_VnI9xY.js";var o=e({AlignItems:()=>g,BasicColumn:()=>p,BasicRow:()=>f,Directions:()=>m,FlexItems:()=>y,Gaps:()=>v,InlineFlex:()=>x,JustifyContent:()=>h,Predefined:()=>b,RealWorld:()=>S,Wrapping:()=>_,__namedExportsOrder:()=>C,default:()=>d}),s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w=t((()=>{n(),i(),s=r(),c={container:{border:`2px dashed var(--border-0)`,padding:`2em`,marginBlock:`1em`},item:{padding:`16px`,textAlign:`center`,fontWeight:`bold`,color:`white`,minHeight:`5em`,minWidth:`10em`,display:`flex`,alignItems:`center`,justifyContent:`center`},itemColors:[`#ff6b6b`,`#4ecdc4`,`#45b7d1`,`#96ceb4`,`#feca57`,`#ff9ff3`]},l=e=>c.itemColors[e%c.itemColors.length],u=({children:e,index:t=0})=>(0,s.jsx)(a.Item,{style:{...c.item,backgroundColor:l(t)},children:e}),d={title:`Shared/Layout/Flex`,component:a.Container,parameters:{layout:`padded`}},f={render:e=>(0,s.jsx)(a.Container,{...e,style:c.container}),args:{children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u,{index:0,children:`Item 1`}),(0,s.jsx)(u,{index:1,children:`Item 2`}),(0,s.jsx)(u,{index:2,children:`Item 3`})]}),row:!0}},p={render:e=>(0,s.jsx)(a.Container,{...e,style:c.container}),args:{children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u,{index:0,children:`Header`}),(0,s.jsx)(u,{index:1,children:`Content`}),(0,s.jsx)(u,{index:2,children:`Footer`})]}),column:!0}},m={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Row (default)`}),(0,s.jsxs)(a.Container,{row:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]}),(0,s.jsx)(`h3`,{children:`Row Reverse`}),(0,s.jsxs)(a.Container,{rowReverse:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]}),(0,s.jsx)(`h3`,{children:`Column`}),(0,s.jsxs)(a.Container,{column:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]}),(0,s.jsx)(`h3`,{children:`Column Reverse`}),(0,s.jsxs)(a.Container,{columnReverse:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]})]}),args:{children:void 0}},h={render:()=>(0,s.jsx)(`div`,{children:[`start`,`center`,`end`,`between`,`around`,`evenly`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Justify: `,e]}),(0,s.jsxs)(a.Container,{row:!0,justify:e,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Item 1`}),(0,s.jsx)(u,{index:1,children:`Item 2`}),(0,s.jsx)(u,{index:2,children:`Item 3`})]})]},e))}),args:{children:void 0}},g={render:()=>(0,s.jsx)(`div`,{children:[`start`,`center`,`end`,`stretch`,`baseline`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Align: `,e]}),(0,s.jsxs)(a.Container,{row:!0,align:e,style:{...c.container,height:`120px`},children:[(0,s.jsx)(u,{index:0,children:(0,s.jsx)(`div`,{children:`Short`})}),(0,s.jsx)(u,{index:1,children:(0,s.jsx)(`div`,{style:{padding:`40px`},children:`Tall`})}),(0,s.jsx)(u,{index:2,children:(0,s.jsx)(`div`,{style:{padding:`24px`},children:`Medium`})})]})]},e))}),args:{children:void 0}},_={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`No Wrap (default)`}),(0,s.jsx)(a.Container,{row:!0,nowrap:!0,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))}),(0,s.jsx)(`h3`,{children:`Wrap`}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))}),(0,s.jsx)(`h3`,{children:`Wrap Reverse`}),(0,s.jsx)(a.Container,{row:!0,wrapReverse:!0,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]}),args:{children:void 0}},v={render:()=>(0,s.jsxs)(`div`,{children:[[`xs`,`sm`,`md`,`lg`,`xl`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Gap: `,e]}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,gap:e,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]},e)),(0,s.jsx)(`h3`,{children:`Different Row and Column Gaps`}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,gapRow:`lg`,gapColumn:`sm`,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]}),args:{children:void 0}},y={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Grow Properties`}),(0,s.jsxs)(a.Container,{row:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Default`}),(0,s.jsx)(a.Item,{grow:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(1)},children:`Grow`})}),(0,s.jsx)(u,{index:2,children:`Default`})]}),(0,s.jsx)(`h3`,{children:`Shrink Properties`}),(0,s.jsxs)(a.Container,{row:!0,style:{...c.container,width:`300px`},children:[(0,s.jsx)(a.Item,{shrink:!1,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(0),width:`150px`},children:`No Shrink`})}),(0,s.jsx)(a.Item,{children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(1),width:`150px`},children:`Shrink (default)`})})]}),(0,s.jsx)(`h3`,{children:`Composite Classes`}),(0,s.jsxs)(a.Container,{row:!0,style:c.container,children:[(0,s.jsx)(a.Item,{flex0:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(0)},children:`flex0`})}),(0,s.jsx)(a.Item,{flex1:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(1)},children:`flex1`})}),(0,s.jsx)(a.Item,{flex0:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(2)},children:`flex0`})})]})]}),args:{children:void 0}},b={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Center`}),(0,s.jsx)(a.Predefined,{variant:`center`,style:{...c.container,height:`100px`},children:(0,s.jsx)(u,{index:0,children:`Centered Content`})}),(0,s.jsx)(`h3`,{children:`Center Between`}),(0,s.jsxs)(a.Predefined,{variant:`centerBetween`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Left`}),(0,s.jsx)(u,{index:1,children:`Right`})]})]}),args:{children:void 0}},x={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`p`,{children:[`This is text with`,(0,s.jsxs)(a.Container,{inline:!0,align:`center`,gap:`sm`,style:{margin:`0 8px`},children:[(0,s.jsx)(u,{index:0,children:`inline`}),(0,s.jsx)(u,{index:1,children:`flex`})]}),`elements inside.`]}),(0,s.jsxs)(`p`,{children:[`Another example with`,(0,s.jsxs)(a.Container,{inline:!0,column:!0,gap:`xs`,style:{margin:`0 8px`},children:[(0,s.jsx)(u,{index:2,children:`vertical`}),(0,s.jsx)(u,{index:3,children:`inline`})]}),`flex.`]})]}),args:{children:void 0}},S={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Navigation Bar`}),(0,s.jsxs)(a.Predefined,{variant:`centerBetween`,style:c.container,children:[(0,s.jsxs)(a.Container,{row:!0,align:`center`,gap:`md`,children:[(0,s.jsx)(u,{index:0,children:`Logo`}),(0,s.jsx)(u,{index:1,children:`Home`}),(0,s.jsx)(u,{index:2,children:`About`}),(0,s.jsx)(u,{index:3,children:`Contact`})]}),(0,s.jsx)(u,{index:4,children:`Login`})]}),(0,s.jsx)(`h3`,{children:`Card Layout`}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,gap:`lg`,style:c.container,children:[1,2,3,4].map(e=>(0,s.jsx)(a.Item,{flex1:!0,style:{minWidth:`200px`},children:(0,s.jsxs)(`div`,{style:{border:`1px solid #ddd`,borderRadius:`8px`,padding:`16px`,textAlign:`center`,backgroundColor:l(e)},children:[(0,s.jsxs)(`h4`,{children:[`Card `,e]}),(0,s.jsx)(`p`,{children:`Card content goes here`})]})},e))}),(0,s.jsx)(`h3`,{children:`Form Layout`}),(0,s.jsxs)(a.Container,{column:!0,gap:`md`,style:c.container,children:[(0,s.jsxs)(a.Container,{row:!0,gap:`md`,children:[(0,s.jsx)(a.Item,{flex1:!0,children:(0,s.jsx)(u,{index:0,children:`First Name`})}),(0,s.jsx)(a.Item,{flex1:!0,children:(0,s.jsx)(u,{index:1,children:`Last Name`})})]}),(0,s.jsx)(u,{index:2,children:`Email`}),(0,s.jsx)(u,{index:3,children:`Message`})]})]}),args:{children:void 0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{n as i,t as a}from"./Flex-CML6WrKV.js";var o=e({AlignItems:()=>g,BasicColumn:()=>p,BasicRow:()=>f,Directions:()=>m,FlexItems:()=>y,Gaps:()=>v,InlineFlex:()=>x,JustifyContent:()=>h,Predefined:()=>b,RealWorld:()=>S,Wrapping:()=>_,__namedExportsOrder:()=>C,default:()=>d}),s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w=t((()=>{n(),i(),s=r(),c={container:{border:`2px dashed var(--border-0)`,padding:`2em`,marginBlock:`1em`},item:{padding:`16px`,textAlign:`center`,fontWeight:`bold`,color:`white`,minHeight:`5em`,minWidth:`10em`,display:`flex`,alignItems:`center`,justifyContent:`center`},itemColors:[`#ff6b6b`,`#4ecdc4`,`#45b7d1`,`#96ceb4`,`#feca57`,`#ff9ff3`]},l=e=>c.itemColors[e%c.itemColors.length],u=({children:e,index:t=0})=>(0,s.jsx)(a.Item,{style:{...c.item,backgroundColor:l(t)},children:e}),d={title:`Shared/Layout/Flex`,component:a.Container,parameters:{layout:`padded`}},f={render:e=>(0,s.jsx)(a.Container,{...e,style:c.container}),args:{children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u,{index:0,children:`Item 1`}),(0,s.jsx)(u,{index:1,children:`Item 2`}),(0,s.jsx)(u,{index:2,children:`Item 3`})]}),row:!0}},p={render:e=>(0,s.jsx)(a.Container,{...e,style:c.container}),args:{children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u,{index:0,children:`Header`}),(0,s.jsx)(u,{index:1,children:`Content`}),(0,s.jsx)(u,{index:2,children:`Footer`})]}),column:!0}},m={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Row (default)`}),(0,s.jsxs)(a.Container,{row:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]}),(0,s.jsx)(`h3`,{children:`Row Reverse`}),(0,s.jsxs)(a.Container,{rowReverse:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]}),(0,s.jsx)(`h3`,{children:`Column`}),(0,s.jsxs)(a.Container,{column:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]}),(0,s.jsx)(`h3`,{children:`Column Reverse`}),(0,s.jsxs)(a.Container,{columnReverse:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`})]})]}),args:{children:void 0}},h={render:()=>(0,s.jsx)(`div`,{children:[`start`,`center`,`end`,`between`,`around`,`evenly`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Justify: `,e]}),(0,s.jsxs)(a.Container,{row:!0,justify:e,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Item 1`}),(0,s.jsx)(u,{index:1,children:`Item 2`}),(0,s.jsx)(u,{index:2,children:`Item 3`})]})]},e))}),args:{children:void 0}},g={render:()=>(0,s.jsx)(`div`,{children:[`start`,`center`,`end`,`stretch`,`baseline`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Align: `,e]}),(0,s.jsxs)(a.Container,{row:!0,align:e,style:{...c.container,height:`120px`},children:[(0,s.jsx)(u,{index:0,children:(0,s.jsx)(`div`,{children:`Short`})}),(0,s.jsx)(u,{index:1,children:(0,s.jsx)(`div`,{style:{padding:`40px`},children:`Tall`})}),(0,s.jsx)(u,{index:2,children:(0,s.jsx)(`div`,{style:{padding:`24px`},children:`Medium`})})]})]},e))}),args:{children:void 0}},_={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`No Wrap (default)`}),(0,s.jsx)(a.Container,{row:!0,nowrap:!0,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))}),(0,s.jsx)(`h3`,{children:`Wrap`}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))}),(0,s.jsx)(`h3`,{children:`Wrap Reverse`}),(0,s.jsx)(a.Container,{row:!0,wrapReverse:!0,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]}),args:{children:void 0}},v={render:()=>(0,s.jsxs)(`div`,{children:[[`xs`,`sm`,`md`,`lg`,`xl`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Gap: `,e]}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,gap:e,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]},e)),(0,s.jsx)(`h3`,{children:`Different Row and Column Gaps`}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,gapRow:`lg`,gapColumn:`sm`,style:c.container,children:[1,2,3,4,5,6,7,8,9,10,11,12].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]}),args:{children:void 0}},y={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Grow Properties`}),(0,s.jsxs)(a.Container,{row:!0,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Default`}),(0,s.jsx)(a.Item,{grow:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(1)},children:`Grow`})}),(0,s.jsx)(u,{index:2,children:`Default`})]}),(0,s.jsx)(`h3`,{children:`Shrink Properties`}),(0,s.jsxs)(a.Container,{row:!0,style:{...c.container,width:`300px`},children:[(0,s.jsx)(a.Item,{shrink:!1,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(0),width:`150px`},children:`No Shrink`})}),(0,s.jsx)(a.Item,{children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(1),width:`150px`},children:`Shrink (default)`})})]}),(0,s.jsx)(`h3`,{children:`Composite Classes`}),(0,s.jsxs)(a.Container,{row:!0,style:c.container,children:[(0,s.jsx)(a.Item,{flex0:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(0)},children:`flex0`})}),(0,s.jsx)(a.Item,{flex1:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(1)},children:`flex1`})}),(0,s.jsx)(a.Item,{flex0:!0,children:(0,s.jsx)(`div`,{style:{...c.item,backgroundColor:l(2)},children:`flex0`})})]})]}),args:{children:void 0}},b={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Center`}),(0,s.jsx)(a.Predefined,{variant:`center`,style:{...c.container,height:`100px`},children:(0,s.jsx)(u,{index:0,children:`Centered Content`})}),(0,s.jsx)(`h3`,{children:`Center Between`}),(0,s.jsxs)(a.Predefined,{variant:`centerBetween`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Left`}),(0,s.jsx)(u,{index:1,children:`Right`})]})]}),args:{children:void 0}},x={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`p`,{children:[`This is text with`,(0,s.jsxs)(a.Container,{inline:!0,align:`center`,gap:`sm`,style:{margin:`0 8px`},children:[(0,s.jsx)(u,{index:0,children:`inline`}),(0,s.jsx)(u,{index:1,children:`flex`})]}),`elements inside.`]}),(0,s.jsxs)(`p`,{children:[`Another example with`,(0,s.jsxs)(a.Container,{inline:!0,column:!0,gap:`xs`,style:{margin:`0 8px`},children:[(0,s.jsx)(u,{index:2,children:`vertical`}),(0,s.jsx)(u,{index:3,children:`inline`})]}),`flex.`]})]}),args:{children:void 0}},S={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Navigation Bar`}),(0,s.jsxs)(a.Predefined,{variant:`centerBetween`,style:c.container,children:[(0,s.jsxs)(a.Container,{row:!0,align:`center`,gap:`md`,children:[(0,s.jsx)(u,{index:0,children:`Logo`}),(0,s.jsx)(u,{index:1,children:`Home`}),(0,s.jsx)(u,{index:2,children:`About`}),(0,s.jsx)(u,{index:3,children:`Contact`})]}),(0,s.jsx)(u,{index:4,children:`Login`})]}),(0,s.jsx)(`h3`,{children:`Card Layout`}),(0,s.jsx)(a.Container,{row:!0,wrap:!0,gap:`lg`,style:c.container,children:[1,2,3,4].map(e=>(0,s.jsx)(a.Item,{flex1:!0,style:{minWidth:`200px`},children:(0,s.jsxs)(`div`,{style:{border:`1px solid #ddd`,borderRadius:`8px`,padding:`16px`,textAlign:`center`,backgroundColor:l(e)},children:[(0,s.jsxs)(`h4`,{children:[`Card `,e]}),(0,s.jsx)(`p`,{children:`Card content goes here`})]})},e))}),(0,s.jsx)(`h3`,{children:`Form Layout`}),(0,s.jsxs)(a.Container,{column:!0,gap:`md`,style:c.container,children:[(0,s.jsxs)(a.Container,{row:!0,gap:`md`,children:[(0,s.jsx)(a.Item,{flex1:!0,children:(0,s.jsx)(u,{index:0,children:`First Name`})}),(0,s.jsx)(a.Item,{flex1:!0,children:(0,s.jsx)(u,{index:1,children:`Last Name`})})]}),(0,s.jsx)(u,{index:2,children:`Email`}),(0,s.jsx)(u,{index:3,children:`Message`})]})]}),args:{children:void 0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
2
  render: args => <Flex.Container {...args} style={demoStyles.container} />,
3
3
  args: {
4
4
  children: <>
@@ -1,4 +1,4 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{i as r,r as i,t as ee}from"./media-Djn0SUaN.js";var a,o,s,c,l,u,d,f,p,m,h,g,_,v,te,ne,re,ie,ae,oe,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,se,U,W,G,K,ce,le,ue,de,fe,pe,me,he,ge,q,_e=t((()=>{a=`_5Z2YQF`,o=`gAEXju`,s=`KdmGbk`,c=`uOpH1m`,l=`EOUgpE`,u=`PoMD0P`,d=`FBebhA`,f=`rwvhfS`,p=`ZIsGgj`,m=`lbAie9`,h=`ylmmN3`,g=`Fg86QU`,_=`_3qWtbZ`,v=`gIXZ8P`,te=`xXxHZM`,ne=`zRgpft`,re=`Fb1W2U`,ie=`_2EojT9`,ae=`gYCGa5`,oe=`JN0CZr`,y=`_2QvtUb`,b=`_1kRriS`,x=`ocLWZU`,S=`TS1qri`,C=`FXfvI7`,w=`biKmzi`,T=`_4-sIS7`,E=`lbdoyi`,D=`WvAC9I`,O=`LN4Ak-`,k=`XC0FuJ`,A=`_6b9wZI`,j=`KevE4M`,M=`Sn-je4`,N=`Wnx9iF`,P=`RAoqm2`,F=`nUjbmv`,I=`TjTsA7`,L=`VdpzYk`,R=`peszxb`,z=`E98bqx`,B=`CdaBbu`,V=`leVL0N`,H=`_6mOZVj`,se=`XHgjM3`,U=`wtrn5A`,W=`LkIh-N`,G=`Vhdvpo`,K=`cyg2du`,ce=`Ptd1ad`,le=`Z22Yty`,ue=`gycEgN`,de=`s69iy2`,fe=`pKEJ9k`,pe=`qWkZVw`,me=`gUbUDY`,he=`S0HulN`,ge=`K2fFKT`,q={grid:a,inline:o,row:s,column:c,dense:l,gapNone:u,gapRowXs:d,gapRowSm:f,gapRowMd:p,gapRowLg:m,gapRowXl:h,gapColumnXs:g,gapColumnSm:_,gapColumnMd:v,gapColumnLg:te,gapColumnXl:ne,gapXs:re,gapSm:ie,gapMd:ae,gapLg:oe,gapXl:y,alignStart:b,alignCenter:x,alignEnd:S,alignStretch:C,alignBaseline:w,justifyStart:T,justifyCenter:E,justifyEnd:D,justifyStretch:O,alignContentStart:k,alignContentCenter:A,alignContentEnd:j,alignContentStretch:M,alignContentBetween:N,alignContentAround:P,alignContentEvenly:F,justifyContentStart:I,justifyContentCenter:L,justifyContentEnd:R,justifyContentStretch:z,justifyContentBetween:B,justifyContentAround:V,justifyContentEvenly:H,item:se,areaAuto:U,alignSelfStart:W,alignSelfCenter:G,alignSelfEnd:K,alignSelfStretch:ce,alignSelfBaseline:le,justifySelfStart:ue,justifySelfCenter:de,justifySelfEnd:fe,justifySelfStretch:pe,autoRows1fr:me,columnsAuto1fr:he,singleColumn:ge}})),J,ve,ye,be,xe,Se=t((()=>{J=e(n(),1),_e(),ve=e=>(0,J.useMemo)(()=>{let t=[q.grid];return e.inline&&t.push(q.inline),e.column?t.push(q.column):e.dense?t.push(q.dense):e.row&&t.push(q.row),e.align&&t.push(q[`align${e.align.charAt(0).toUpperCase()+e.align.slice(1)}`]),e.justify&&t.push(q[`justify${e.justify.charAt(0).toUpperCase()+e.justify.slice(1)}`]),e.justifyContent&&t.push(q[`justifyContent${e.justifyContent.charAt(0).toUpperCase()+e.justifyContent.slice(1)}`]),e.alignContent&&t.push(q[`alignContent${e.alignContent.charAt(0).toUpperCase()+e.alignContent.slice(1)}`]),e.gap===`none`?t.push(q.gapNone):e.gap&&t.push(q[`gap${e.gap.charAt(0).toUpperCase()+e.gap.slice(1)}`]),e.gapRow&&t.push(q[`gapRow${e.gapRow.charAt(0).toUpperCase()+e.gapRow.slice(1)}`]),e.gapColumn&&t.push(q[`gapColumn${e.gapColumn.charAt(0).toUpperCase()+e.gapColumn.slice(1)}`]),e.variant===`single-column`?t.push(q.singleColumn):e.variant===`auto-1fr`?t.push(q.autoRows1fr):e.variant===`auto1fr-rows-auto`&&t.push(q.columnsAuto1fr),t.filter(Boolean).join(` `)},[e]),ye=e=>(0,J.useMemo)(()=>{let t={};return e.templateColumns&&(t.gridTemplateColumns=e.templateColumns),e.templateRows&&(t.gridTemplateRows=e.templateRows),e.autoColumns&&(t.gridAutoColumns=e.autoColumns),e.autoRows&&(t.gridAutoRows=e.autoRows),e.areas&&(t.gridTemplateAreas=e.areas),t},[e.templateColumns,e.templateRows,e.autoColumns,e.autoRows,e.areas]),be=e=>(0,J.useMemo)(()=>{let t=[q.item];return e.alignSelf&&t.push(q[`alignSelf${e.alignSelf.charAt(0).toUpperCase()+e.alignSelf.slice(1)}`]),e.justifySelf&&t.push(q[`justifySelf${e.justifySelf.charAt(0).toUpperCase()+e.justifySelf.slice(1)}`]),t.filter(Boolean).join(` `)},[e]),xe=e=>(0,J.useMemo)(()=>{let t={};return e.area&&(t.gridArea=e.area),e.column&&(t.gridColumn=e.column),e.row&&(t.gridRow=e.row),t},[e.area,e.column,e.row])})),Y,X,Z=t((()=>{Y=e(n(),1),i(),Se(),X=(0,Y.forwardRef)(({children:e,className:t=``,as:n,style:i,templateColumns:a,templateRows:o,autoColumns:s,autoRows:c,areas:l,...u},d)=>{let{activeBreakpoint:f}=ee(),p=(0,Y.useMemo)(()=>({...u,inline:r(u.inline,f),row:r(u.row,f),column:r(u.column,f),dense:r(u.dense,f),gap:r(u.gap,f),gapRow:r(u.gapRow,f),gapColumn:r(u.gapColumn,f),align:r(u.align,f),justify:r(u.justify,f),alignContent:r(u.alignContent,f),justifyContent:r(u.justifyContent,f),variant:r(u.variant,f)}),[f,u]),m=(0,Y.useMemo)(()=>({templateColumns:r(a,f),templateRows:r(o,f),autoColumns:r(s,f),autoRows:r(c,f),areas:r(l,f)}),[f,a,o,s,c,l]),h=ve(p),g=ye(m),_=[h,t].filter(Boolean).join(` `),v={...g,...i};return(0,Y.createElement)(n||`div`,{ref:d,className:_,style:v},e)}),X.displayName=`GridContainer`,X.__docgenInfo={description:``,methods:[],displayName:`GridContainer`,props:{id:{required:!1,tsType:{name:`string`},description:``},inline:{required:!1,tsType:{name:`ResponsiveValue`,elements:[{name:`boolean`}],raw:`ResponsiveValue<boolean>`},description:`Включение inline-grid вместо обычного grid
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{i as r,r as i,t as ee}from"./media-DsA0K_ZS.js";var a,o,s,c,l,u,d,f,p,m,h,g,_,v,te,ne,re,ie,ae,oe,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,se,U,W,G,K,ce,le,ue,de,fe,pe,me,he,ge,q,_e=t((()=>{a=`_5Z2YQF`,o=`gAEXju`,s=`KdmGbk`,c=`uOpH1m`,l=`EOUgpE`,u=`PoMD0P`,d=`FBebhA`,f=`rwvhfS`,p=`ZIsGgj`,m=`lbAie9`,h=`ylmmN3`,g=`Fg86QU`,_=`_3qWtbZ`,v=`gIXZ8P`,te=`xXxHZM`,ne=`zRgpft`,re=`Fb1W2U`,ie=`_2EojT9`,ae=`gYCGa5`,oe=`JN0CZr`,y=`_2QvtUb`,b=`_1kRriS`,x=`ocLWZU`,S=`TS1qri`,C=`FXfvI7`,w=`biKmzi`,T=`_4-sIS7`,E=`lbdoyi`,D=`WvAC9I`,O=`LN4Ak-`,k=`XC0FuJ`,A=`_6b9wZI`,j=`KevE4M`,M=`Sn-je4`,N=`Wnx9iF`,P=`RAoqm2`,F=`nUjbmv`,I=`TjTsA7`,L=`VdpzYk`,R=`peszxb`,z=`E98bqx`,B=`CdaBbu`,V=`leVL0N`,H=`_6mOZVj`,se=`XHgjM3`,U=`wtrn5A`,W=`LkIh-N`,G=`Vhdvpo`,K=`cyg2du`,ce=`Ptd1ad`,le=`Z22Yty`,ue=`gycEgN`,de=`s69iy2`,fe=`pKEJ9k`,pe=`qWkZVw`,me=`gUbUDY`,he=`S0HulN`,ge=`K2fFKT`,q={grid:a,inline:o,row:s,column:c,dense:l,gapNone:u,gapRowXs:d,gapRowSm:f,gapRowMd:p,gapRowLg:m,gapRowXl:h,gapColumnXs:g,gapColumnSm:_,gapColumnMd:v,gapColumnLg:te,gapColumnXl:ne,gapXs:re,gapSm:ie,gapMd:ae,gapLg:oe,gapXl:y,alignStart:b,alignCenter:x,alignEnd:S,alignStretch:C,alignBaseline:w,justifyStart:T,justifyCenter:E,justifyEnd:D,justifyStretch:O,alignContentStart:k,alignContentCenter:A,alignContentEnd:j,alignContentStretch:M,alignContentBetween:N,alignContentAround:P,alignContentEvenly:F,justifyContentStart:I,justifyContentCenter:L,justifyContentEnd:R,justifyContentStretch:z,justifyContentBetween:B,justifyContentAround:V,justifyContentEvenly:H,item:se,areaAuto:U,alignSelfStart:W,alignSelfCenter:G,alignSelfEnd:K,alignSelfStretch:ce,alignSelfBaseline:le,justifySelfStart:ue,justifySelfCenter:de,justifySelfEnd:fe,justifySelfStretch:pe,autoRows1fr:me,columnsAuto1fr:he,singleColumn:ge}})),J,ve,ye,be,xe,Se=t((()=>{J=e(n(),1),_e(),ve=e=>(0,J.useMemo)(()=>{let t=[q.grid];return e.inline&&t.push(q.inline),e.column?t.push(q.column):e.dense?t.push(q.dense):e.row&&t.push(q.row),e.align&&t.push(q[`align${e.align.charAt(0).toUpperCase()+e.align.slice(1)}`]),e.justify&&t.push(q[`justify${e.justify.charAt(0).toUpperCase()+e.justify.slice(1)}`]),e.justifyContent&&t.push(q[`justifyContent${e.justifyContent.charAt(0).toUpperCase()+e.justifyContent.slice(1)}`]),e.alignContent&&t.push(q[`alignContent${e.alignContent.charAt(0).toUpperCase()+e.alignContent.slice(1)}`]),e.gap===`none`?t.push(q.gapNone):e.gap&&t.push(q[`gap${e.gap.charAt(0).toUpperCase()+e.gap.slice(1)}`]),e.gapRow&&t.push(q[`gapRow${e.gapRow.charAt(0).toUpperCase()+e.gapRow.slice(1)}`]),e.gapColumn&&t.push(q[`gapColumn${e.gapColumn.charAt(0).toUpperCase()+e.gapColumn.slice(1)}`]),e.variant===`single-column`?t.push(q.singleColumn):e.variant===`auto-1fr`?t.push(q.autoRows1fr):e.variant===`auto1fr-rows-auto`&&t.push(q.columnsAuto1fr),t.filter(Boolean).join(` `)},[e]),ye=e=>(0,J.useMemo)(()=>{let t={};return e.templateColumns&&(t.gridTemplateColumns=e.templateColumns),e.templateRows&&(t.gridTemplateRows=e.templateRows),e.autoColumns&&(t.gridAutoColumns=e.autoColumns),e.autoRows&&(t.gridAutoRows=e.autoRows),e.areas&&(t.gridTemplateAreas=e.areas),t},[e.templateColumns,e.templateRows,e.autoColumns,e.autoRows,e.areas]),be=e=>(0,J.useMemo)(()=>{let t=[q.item];return e.alignSelf&&t.push(q[`alignSelf${e.alignSelf.charAt(0).toUpperCase()+e.alignSelf.slice(1)}`]),e.justifySelf&&t.push(q[`justifySelf${e.justifySelf.charAt(0).toUpperCase()+e.justifySelf.slice(1)}`]),t.filter(Boolean).join(` `)},[e]),xe=e=>(0,J.useMemo)(()=>{let t={};return e.area&&(t.gridArea=e.area),e.column&&(t.gridColumn=e.column),e.row&&(t.gridRow=e.row),t},[e.area,e.column,e.row])})),Y,X,Z=t((()=>{Y=e(n(),1),i(),Se(),X=(0,Y.forwardRef)(({children:e,className:t=``,as:n,style:i,templateColumns:a,templateRows:o,autoColumns:s,autoRows:c,areas:l,...u},d)=>{let{activeBreakpoint:f}=ee(),p=(0,Y.useMemo)(()=>({...u,inline:r(u.inline,f),row:r(u.row,f),column:r(u.column,f),dense:r(u.dense,f),gap:r(u.gap,f),gapRow:r(u.gapRow,f),gapColumn:r(u.gapColumn,f),align:r(u.align,f),justify:r(u.justify,f),alignContent:r(u.alignContent,f),justifyContent:r(u.justifyContent,f),variant:r(u.variant,f)}),[f,u]),m=(0,Y.useMemo)(()=>({templateColumns:r(a,f),templateRows:r(o,f),autoColumns:r(s,f),autoRows:r(c,f),areas:r(l,f)}),[f,a,o,s,c,l]),h=ve(p),g=ye(m),_=[h,t].filter(Boolean).join(` `),v={...g,...i};return(0,Y.createElement)(n||`div`,{ref:d,className:_,style:v},e)}),X.displayName=`GridContainer`,X.__docgenInfo={description:``,methods:[],displayName:`GridContainer`,props:{id:{required:!1,tsType:{name:`string`},description:``},inline:{required:!1,tsType:{name:`ResponsiveValue`,elements:[{name:`boolean`}],raw:`ResponsiveValue<boolean>`},description:`Включение inline-grid вместо обычного grid
2
2
 
3
3
  Позволяет grid-контейнеру вести себя как строчный элемент,
4
4
  обтекаясь текстом и другими элементами. Полезно для встраивания grid-раскладки
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Alignment as p,AutoFlow as m,BasicGrid as h,ComplexTemplates as g,Gaps as _,GridAreas as v,InlineGrid as y,ItemPlacement as b,PredefinedVariants as x,RealWorld as S,Responsive as C,n as w,t as T}from"./Grid.stories-6WUp6Tof.js";function E(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(a,{of:T,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Alignment as p,AutoFlow as m,BasicGrid as h,ComplexTemplates as g,Gaps as _,GridAreas as v,InlineGrid as y,ItemPlacement as b,PredefinedVariants as x,RealWorld as S,Responsive as C,n as w,t as T}from"./Grid.stories-Cu78z_oE.js";function E(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(a,{of:T,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,O.jsx)(c,{children:`Grid`}),`
3
3
  `,(0,O.jsx)(i,{children:`Композиция для построения grid-раскладок с управлением колонками, строками и позиционированием элементов`}),`
4
4
  `,(0,O.jsx)(o.p,{children:`Grid уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{n as i,t as a}from"./Grid-y8wKyEwc.js";var o=e({Alignment:()=>m,AutoFlow:()=>p,BasicGrid:()=>f,ComplexTemplates:()=>_,Gaps:()=>h,GridAreas:()=>v,InlineGrid:()=>b,ItemPlacement:()=>y,PredefinedVariants:()=>g,RealWorld:()=>x,Responsive:()=>S,__namedExportsOrder:()=>C,default:()=>d}),s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w=t((()=>{n(),i(),s=r(),c={container:{border:`2px dashed var(--border-0)`,padding:`2em`,marginBlock:`1em`},item:{textAlign:`center`,fontWeight:`bold`,color:`white`,minHeight:`5em`,minWidth:`10em`,display:`flex`,alignItems:`center`,justifyContent:`center`},itemColors:[`#ff6b6b`,`#4ecdc4`,`#45b7d1`,`#96ceb4`,`#feca57`,`#ff9ff3`,`#54a0ff`,`#5f27cd`]},l=e=>c.itemColors[e%c.itemColors.length],u=({children:e,index:t=0,style:n})=>(0,s.jsx)(a.Item,{style:{...c.item,backgroundColor:l(t),...n},children:e}),d={title:`Shared/Layout/Grid`,component:a.Container,parameters:{layout:`padded`}},f={render:({children:e,...t})=>(0,s.jsx)(a.Container,{...t,templateColumns:`1fr 1fr 1fr`,style:c.container,children:e}),args:{children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`})]})}},p={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Row (default)`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(3, 100px)`,templateRows:`repeat(2, 60px)`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`})]}),(0,s.jsx)(`h3`,{children:`Column`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(2, 100px)`,templateRows:`repeat(3, 60px)`,column:!0,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`})]}),(0,s.jsx)(`h3`,{children:`Dense`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(4, 80px)`,templateRows:`repeat(3, 60px)`,dense:!0,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{gridColumn:`span 2`},children:`Span 2`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,style:{gridRow:`span 2`},children:`Span 2`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`}),(0,s.jsx)(u,{index:6,children:`7`})]})]}),args:{children:void 0}},m={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{style:{marginBlock:`1em`},children:`Align Items`}),[`start`,`center`,`end`,`stretch`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h4`,{children:e}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(3, 1fr)`,align:e,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{height:e===`stretch`?`auto`:`5em`},children:`Short`}),(0,s.jsx)(u,{index:1,style:{height:e===`stretch`?`auto`:`10em`},children:`Tall`}),(0,s.jsx)(u,{index:2,style:{height:e===`stretch`?`auto`:`8em`},children:`Medium`})]})]},e)),(0,s.jsx)(`h3`,{style:{marginBlock:`1em`},children:`Justify Items`}),[`start`,`center`,`end`,`stretch`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h4`,{children:e}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(3, 20em)`,justify:e,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{width:e===`stretch`?`auto`:`10em`},children:`Item`}),(0,s.jsx)(u,{index:1,style:{width:e===`stretch`?`auto`:`10em`},children:`Item`}),(0,s.jsx)(u,{index:2,style:{width:e===`stretch`?`auto`:`10em`},children:`Item`})]})]},e))]}),args:{children:void 0}},h={render:()=>(0,s.jsxs)(`div`,{children:[[`xs`,`sm`,`md`,`lg`,`xl`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Gap: `,e]}),(0,s.jsx)(a.Container,{templateColumns:`repeat(3, 1fr)`,gap:e,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]},e)),(0,s.jsx)(`h3`,{children:`Different Row and Column Gaps`}),(0,s.jsx)(a.Container,{templateColumns:`repeat(3, 1fr)`,gapRow:`lg`,gapColumn:`sm`,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]}),args:{children:void 0}},g={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Single Column (grid-template-columns: 100%; grid-auto-rows: auto 1fr)`}),(0,s.jsxs)(a.Container,{variant:`single-column`,style:{...c.container,height:`200px`},children:[(0,s.jsx)(u,{index:0,children:`Header (auto)`}),(0,s.jsx)(u,{index:1,children:`Content (1fr)`})]}),(0,s.jsx)(`h3`,{children:`Auto 1fr Rows (grid-auto-rows: 1fr)`}),(0,s.jsxs)(a.Container,{variant:`auto-1fr`,templateColumns:`1fr 1fr`,style:{...c.container,height:`150px`},children:[(0,s.jsx)(u,{index:0,children:`Equal`}),(0,s.jsx)(u,{index:1,children:`Height`})]}),(0,s.jsx)(`h3`,{children:`Auto 1fr Columns (grid-template-columns: auto 1fr; grid-auto-rows: auto)`}),(0,s.jsxs)(a.Container,{variant:`auto1fr-rows-auto`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Label`}),(0,s.jsx)(u,{index:1,children:`Content that takes remaining space`}),(0,s.jsx)(u,{index:2,children:`Another`}),(0,s.jsx)(u,{index:3,children:`More content here`})]})]}),args:{children:void 0}},_={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Auto-fit with Minmax`}),(0,s.jsx)(a.Container,{templateColumns:`repeat(auto-fit, minmax(150px, 1fr))`,gap:`md`,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Card `,e]},e))}),(0,s.jsx)(`h3`,{children:`Fixed and Flexible Columns`}),(0,s.jsxs)(a.Container,{templateColumns:`200px 1fr 100px`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Sidebar`}),(0,s.jsx)(u,{index:1,children:`Main Content`}),(0,s.jsx)(u,{index:2,children:`Tools`})]}),(0,s.jsx)(`h3`,{children:`Masonry-like Layout`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(4, 1fr)`,autoRows:`100px`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{gridRow:`span 2`},children:`Tall`}),(0,s.jsx)(u,{index:1,children:`Normal`}),(0,s.jsx)(u,{index:2,children:`Normal`}),(0,s.jsx)(u,{index:3,style:{gridRow:`span 3`},children:`Very Tall`}),(0,s.jsx)(u,{index:4,children:`Normal`}),(0,s.jsx)(u,{index:5,style:{gridRow:`span 2`},children:`Tall`}),(0,s.jsx)(u,{index:6,children:`Normal`}),(0,s.jsx)(u,{index:7,children:`Normal`})]})]}),args:{children:void 0}},v={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Basic Layout with Areas`}),(0,s.jsxs)(a.Container,{areas:`
1
+ import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{n as i,t as a}from"./Grid-BewDzBtv.js";var o=e({Alignment:()=>m,AutoFlow:()=>p,BasicGrid:()=>f,ComplexTemplates:()=>_,Gaps:()=>h,GridAreas:()=>v,InlineGrid:()=>b,ItemPlacement:()=>y,PredefinedVariants:()=>g,RealWorld:()=>x,Responsive:()=>S,__namedExportsOrder:()=>C,default:()=>d}),s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w=t((()=>{n(),i(),s=r(),c={container:{border:`2px dashed var(--border-0)`,padding:`2em`,marginBlock:`1em`},item:{textAlign:`center`,fontWeight:`bold`,color:`white`,minHeight:`5em`,minWidth:`10em`,display:`flex`,alignItems:`center`,justifyContent:`center`},itemColors:[`#ff6b6b`,`#4ecdc4`,`#45b7d1`,`#96ceb4`,`#feca57`,`#ff9ff3`,`#54a0ff`,`#5f27cd`]},l=e=>c.itemColors[e%c.itemColors.length],u=({children:e,index:t=0,style:n})=>(0,s.jsx)(a.Item,{style:{...c.item,backgroundColor:l(t),...n},children:e}),d={title:`Shared/Layout/Grid`,component:a.Container,parameters:{layout:`padded`}},f={render:({children:e,...t})=>(0,s.jsx)(a.Container,{...t,templateColumns:`1fr 1fr 1fr`,style:c.container,children:e}),args:{children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`})]})}},p={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Row (default)`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(3, 100px)`,templateRows:`repeat(2, 60px)`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`})]}),(0,s.jsx)(`h3`,{children:`Column`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(2, 100px)`,templateRows:`repeat(3, 60px)`,column:!0,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`1`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,children:`3`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`})]}),(0,s.jsx)(`h3`,{children:`Dense`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(4, 80px)`,templateRows:`repeat(3, 60px)`,dense:!0,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{gridColumn:`span 2`},children:`Span 2`}),(0,s.jsx)(u,{index:1,children:`2`}),(0,s.jsx)(u,{index:2,style:{gridRow:`span 2`},children:`Span 2`}),(0,s.jsx)(u,{index:3,children:`4`}),(0,s.jsx)(u,{index:4,children:`5`}),(0,s.jsx)(u,{index:5,children:`6`}),(0,s.jsx)(u,{index:6,children:`7`})]})]}),args:{children:void 0}},m={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{style:{marginBlock:`1em`},children:`Align Items`}),[`start`,`center`,`end`,`stretch`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h4`,{children:e}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(3, 1fr)`,align:e,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{height:e===`stretch`?`auto`:`5em`},children:`Short`}),(0,s.jsx)(u,{index:1,style:{height:e===`stretch`?`auto`:`10em`},children:`Tall`}),(0,s.jsx)(u,{index:2,style:{height:e===`stretch`?`auto`:`8em`},children:`Medium`})]})]},e)),(0,s.jsx)(`h3`,{style:{marginBlock:`1em`},children:`Justify Items`}),[`start`,`center`,`end`,`stretch`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h4`,{children:e}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(3, 20em)`,justify:e,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{width:e===`stretch`?`auto`:`10em`},children:`Item`}),(0,s.jsx)(u,{index:1,style:{width:e===`stretch`?`auto`:`10em`},children:`Item`}),(0,s.jsx)(u,{index:2,style:{width:e===`stretch`?`auto`:`10em`},children:`Item`})]})]},e))]}),args:{children:void 0}},h={render:()=>(0,s.jsxs)(`div`,{children:[[`xs`,`sm`,`md`,`lg`,`xl`].map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`h3`,{children:[`Gap: `,e]}),(0,s.jsx)(a.Container,{templateColumns:`repeat(3, 1fr)`,gap:e,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]},e)),(0,s.jsx)(`h3`,{children:`Different Row and Column Gaps`}),(0,s.jsx)(a.Container,{templateColumns:`repeat(3, 1fr)`,gapRow:`lg`,gapColumn:`sm`,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Item `,e]},e))})]}),args:{children:void 0}},g={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Single Column (grid-template-columns: 100%; grid-auto-rows: auto 1fr)`}),(0,s.jsxs)(a.Container,{variant:`single-column`,style:{...c.container,height:`200px`},children:[(0,s.jsx)(u,{index:0,children:`Header (auto)`}),(0,s.jsx)(u,{index:1,children:`Content (1fr)`})]}),(0,s.jsx)(`h3`,{children:`Auto 1fr Rows (grid-auto-rows: 1fr)`}),(0,s.jsxs)(a.Container,{variant:`auto-1fr`,templateColumns:`1fr 1fr`,style:{...c.container,height:`150px`},children:[(0,s.jsx)(u,{index:0,children:`Equal`}),(0,s.jsx)(u,{index:1,children:`Height`})]}),(0,s.jsx)(`h3`,{children:`Auto 1fr Columns (grid-template-columns: auto 1fr; grid-auto-rows: auto)`}),(0,s.jsxs)(a.Container,{variant:`auto1fr-rows-auto`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Label`}),(0,s.jsx)(u,{index:1,children:`Content that takes remaining space`}),(0,s.jsx)(u,{index:2,children:`Another`}),(0,s.jsx)(u,{index:3,children:`More content here`})]})]}),args:{children:void 0}},_={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Auto-fit with Minmax`}),(0,s.jsx)(a.Container,{templateColumns:`repeat(auto-fit, minmax(150px, 1fr))`,gap:`md`,style:c.container,children:[1,2,3,4,5,6].map(e=>(0,s.jsxs)(u,{index:e,children:[`Card `,e]},e))}),(0,s.jsx)(`h3`,{children:`Fixed and Flexible Columns`}),(0,s.jsxs)(a.Container,{templateColumns:`200px 1fr 100px`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,children:`Sidebar`}),(0,s.jsx)(u,{index:1,children:`Main Content`}),(0,s.jsx)(u,{index:2,children:`Tools`})]}),(0,s.jsx)(`h3`,{children:`Masonry-like Layout`}),(0,s.jsxs)(a.Container,{templateColumns:`repeat(4, 1fr)`,autoRows:`100px`,gap:`sm`,style:c.container,children:[(0,s.jsx)(u,{index:0,style:{gridRow:`span 2`},children:`Tall`}),(0,s.jsx)(u,{index:1,children:`Normal`}),(0,s.jsx)(u,{index:2,children:`Normal`}),(0,s.jsx)(u,{index:3,style:{gridRow:`span 3`},children:`Very Tall`}),(0,s.jsx)(u,{index:4,children:`Normal`}),(0,s.jsx)(u,{index:5,style:{gridRow:`span 2`},children:`Tall`}),(0,s.jsx)(u,{index:6,children:`Normal`}),(0,s.jsx)(u,{index:7,children:`Normal`})]})]}),args:{children:void 0}},v={render:()=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`h3`,{children:`Basic Layout with Areas`}),(0,s.jsxs)(a.Container,{areas:`
2
2
  "header header"
3
3
  "nav main"
4
4
  "footer footer"
@@ -1,3 +1,3 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-CReRlw17.js";import{n as o,t as s}from"./lucide-react-CK2oyDtF.js";import{M as c,t as l}from"./formatters-yIBztcem.js";import{n as u,t as d}from"./ui.module-DS2qtZts.js";var f,p,m,h,g,_,v,y,b,x=t((()=>{f=`lRn5ye`,p=`ce5HAY`,m=`_8TObqB`,h=`Gx3Wbd`,g=`cpwaYo`,_=`itlmix`,v=`aITEGl`,y=`ekyJIt`,b={controlLayout:f,input:p,inputNumber:m,controlWithEndAdornment:h,controlEndAdornment:g,endAdornmentGroup:_,clearButton:v,error:y}}));function S({id:e,hasLabel:t,hasDescription:n,hasError:r}){let i=(0,C.useId)(),a=e??i,o=t?`${a}-label`:void 0,s=n?`${a}-description`:void 0,c=r?`${a}-error`:void 0;return{controlId:a,labelId:o,descriptionId:s,errorId:c,describedBy:[s,c].filter(Boolean).join(` `)||void 0}}var C,w=t((()=>{C=e(n(),1)}));function T({label:e,controlId:t,labelId:n}){return(0,F.jsx)(`label`,{id:n,htmlFor:t,className:u.uiLabel,children:e})}function E({label:e,description:t,size:n,disabled:r,className:a}){let{controlId:o,labelId:s,descriptionId:c}=S({hasLabel:e!=null,hasDescription:!!t});return(0,F.jsxs)(`div`,{className:i(u.uiElement,u.uiSizable,n&&u[n],u.disabled,a),"aria-disabled":r||void 0,children:[e&&(0,F.jsx)(T,{label:e,controlId:o,labelId:s}),t&&(0,F.jsx)(`p`,{id:c,className:u.uiDescription,children:t}),(0,F.jsx)(`div`,{className:i(u.uiInputControlFake,`skeletonLine`)})]})}function D({label:e,description:t,disabled:n,className:r,error:a,size:o,controlId:s,labelId:c,descriptionId:l,errorId:d,children:f}){return(0,F.jsxs)(`div`,{className:i(u.uiElement,u.uiSizable,o&&u[o],n&&u.disabled,r),"aria-disabled":n||void 0,children:[e&&(0,F.jsx)(T,{label:e,controlId:s,labelId:c}),t&&(0,F.jsx)(`p`,{id:l,className:u.uiDescription,children:t}),(0,F.jsxs)(`div`,{className:b.controlLayout,children:[f,a&&(0,F.jsx)(`p`,{id:d,className:b.error,role:`alert`,children:a})]})]})}function O({className:e,endAdornment:t,endAdornmentClassName:n,endAdornmentWidth:r,children:a}){let o=t!=null,s=o&&r?{"--input-end-adornment-width":r}:void 0;return(0,F.jsxs)(`div`,{className:i(b.controlLayout,e),style:s,children:[a({controlClassName:o?b.controlWithEndAdornment:void 0}),o&&(0,F.jsx)(`div`,{className:i(b.controlEndAdornment,n),children:t})]})}function k({onClick:e,disabled:t,className:n,ariaLabel:r=`Очистить значение`}){return(0,F.jsx)(`button`,{type:`button`,disabled:t||!e,className:i(b.clearButton,`flexCenter radiusSm`,n),onClick:e,"aria-label":r,children:(0,F.jsx)(o,{})})}function A(e,t,n){if(n)return n;if(e&&t)return`calc((var(--control-height) * 2) + var(--space-xs))`;if(e||t)return`var(--control-height)`}function j({endAdornment:e,onClear:t,disabled:n}){if(!(e==null&&!t))return(0,F.jsxs)(`div`,{className:b.endAdornmentGroup,children:[e,t&&(0,F.jsx)(k,{onClick:t,disabled:n})]})}function M({label:e,description:t,disabled:n,className:r,onClear:a,error:o,onClearError:s,onChange:c,value:l,size:d,allowedPattern:f,endAdornment:p,endAdornmentClassName:m,endAdornmentWidth:h,type:g=`text`,..._}){let[v,y]=(0,P.useState)(!1),x=e=>{let t=e.target.value;f!==void 0&&y(t!==``&&!f.test(t)),c(t),o&&s&&s()},C=!!(l&&l.length>0),w=C?o:void 0,{controlId:T,labelId:E,descriptionId:k,errorId:M,describedBy:N}=S({id:_.id,hasLabel:e!=null,hasDescription:!!t,hasError:!!w}),I=C&&(!!o||v);return(0,F.jsx)(D,{label:e,description:t,disabled:n,className:r,size:d,error:w,controlId:T,labelId:E,descriptionId:k,errorId:M,children:(0,F.jsx)(O,{endAdornment:j({endAdornment:p,onClear:a,disabled:n}),endAdornmentClassName:m,endAdornmentWidth:A(p!=null,!!a,h),children:({controlClassName:e})=>(0,F.jsx)(`input`,{..._,id:T,type:g,disabled:n,value:l,"aria-invalid":I||void 0,"aria-labelledby":E,"aria-describedby":N,"data-invalid":I?``:void 0,className:i(u.uiInputControl,b.input,e),onChange:x})})})}function N({label:e,description:t,disabled:n,className:r,onClear:a,error:o,onClearError:s,onChange:l,value:d,size:f,endAdornment:p,endAdornmentClassName:m,endAdornmentWidth:h,...g}){let _=g,{controlId:v,labelId:y,descriptionId:x,errorId:C,describedBy:w}=S({id:g.id,hasLabel:e!=null,hasDescription:!!t,hasError:!!o}),[T,E]=(0,P.useState)(()=>String(d)),k=(0,P.useEffectEvent)(e=>{E(e)});(0,P.useEffect)(()=>{k(d!==void 0&&typeof d==`number`&&!isNaN(d)?String(d):``)},[d]);let M=a?()=>{E(``),a()}:void 0,N=e=>{let t=e.target.value;E(t),l(c(t)),o&&s&&s()};return(0,F.jsx)(D,{label:e,description:t,disabled:n,className:r,size:f,error:o,controlId:v,labelId:y,descriptionId:x,errorId:C,children:(0,F.jsx)(O,{endAdornment:j({endAdornment:p,onClear:M,disabled:n}),endAdornmentClassName:m,endAdornmentWidth:A(p!=null,!!M,h),children:({controlClassName:e})=>(0,F.jsx)(`input`,{..._,id:v,type:`number`,inputMode:`decimal`,disabled:n,value:T,"aria-labelledby":y,"aria-describedby":w,className:i(u.uiInputControl,b.input,b.inputNumber,e),onChange:N})})})}var P,F,I,L=t((()=>{P=e(n(),1),l(),a(),s(),d(),x(),w(),F=r(),I=M,E.__docgenInfo={description:``,methods:[],displayName:`InputUILoading`},D.__docgenInfo={description:`Низкоуровневая оболочка поля ввода с общими элементами оформления.`,methods:[],displayName:`InputUI`,props:{className:{required:!1,tsType:{name:`string`},description:``},error:{required:!1,tsType:{name:`string`},description:``},controlId:{required:!1,tsType:{name:`string`},description:``},labelId:{required:!1,tsType:{name:`string`},description:``},descriptionId:{required:!1,tsType:{name:`string`},description:``},errorId:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}},composes:[`Omit`]},O.__docgenInfo={description:``,methods:[],displayName:`InputControl`,props:{className:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(props: InputControlRenderProps) => ReactNode`,signature:{arguments:[{type:{name:`InputControlRenderProps`},name:`props`}],return:{name:`ReactNode`}}},description:``}}},k.__docgenInfo={description:``,methods:[],displayName:`InputClearButton`,props:{onClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Очистить значение"`,computed:!1}}}},M.__docgenInfo={description:`Базовое текстовое поле ввода для строковых значений.`,methods:[],displayName:`InputText`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``},type:{required:!1,tsType:{name:`union`,raw:`"email" | "password" | "search" | "tel" | "text" | "url"`,elements:[{name:`literal`,value:`"email"`},{name:`literal`,value:`"password"`},{name:`literal`,value:`"search"`},{name:`literal`,value:`"tel"`},{name:`literal`,value:`"text"`},{name:`literal`,value:`"url"`}]},description:``,defaultValue:{value:`"text"`,computed:!1}},allowedPattern:{required:!1,tsType:{name:`RegExp`},description:`Регулярное выражение для валидации всего введённого значения.
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-B7W0zPTP.js";import{n as o,t as s}from"./lucide-react-Cw6QPvVA.js";import{M as c,t as l}from"./formatters-c68ZHiVV.js";import{n as u,t as d}from"./ui.module-DS2qtZts.js";var f,p,m,h,g,_,v,y,b,x=t((()=>{f=`lRn5ye`,p=`ce5HAY`,m=`_8TObqB`,h=`Gx3Wbd`,g=`cpwaYo`,_=`itlmix`,v=`aITEGl`,y=`ekyJIt`,b={controlLayout:f,input:p,inputNumber:m,controlWithEndAdornment:h,controlEndAdornment:g,endAdornmentGroup:_,clearButton:v,error:y}}));function S({id:e,hasLabel:t,hasDescription:n,hasError:r}){let i=(0,C.useId)(),a=e??i,o=t?`${a}-label`:void 0,s=n?`${a}-description`:void 0,c=r?`${a}-error`:void 0;return{controlId:a,labelId:o,descriptionId:s,errorId:c,describedBy:[s,c].filter(Boolean).join(` `)||void 0}}var C,w=t((()=>{C=e(n(),1)}));function T({label:e,controlId:t,labelId:n}){return(0,F.jsx)(`label`,{id:n,htmlFor:t,className:u.uiLabel,children:e})}function E({label:e,description:t,size:n,disabled:r,className:a}){let{controlId:o,labelId:s,descriptionId:c}=S({hasLabel:e!=null,hasDescription:!!t});return(0,F.jsxs)(`div`,{className:i(u.uiElement,u.uiSizable,n&&u[n],u.disabled,a),"aria-disabled":r||void 0,children:[e&&(0,F.jsx)(T,{label:e,controlId:o,labelId:s}),t&&(0,F.jsx)(`p`,{id:c,className:u.uiDescription,children:t}),(0,F.jsx)(`div`,{className:i(u.uiInputControlFake,`skeletonLine`)})]})}function D({label:e,description:t,disabled:n,className:r,error:a,size:o,controlId:s,labelId:c,descriptionId:l,errorId:d,children:f}){return(0,F.jsxs)(`div`,{className:i(u.uiElement,u.uiSizable,o&&u[o],n&&u.disabled,r),"aria-disabled":n||void 0,children:[e&&(0,F.jsx)(T,{label:e,controlId:s,labelId:c}),t&&(0,F.jsx)(`p`,{id:l,className:u.uiDescription,children:t}),(0,F.jsxs)(`div`,{className:b.controlLayout,children:[f,a&&(0,F.jsx)(`p`,{id:d,className:b.error,role:`alert`,children:a})]})]})}function O({className:e,endAdornment:t,endAdornmentClassName:n,endAdornmentWidth:r,children:a}){let o=t!=null,s=o&&r?{"--input-end-adornment-width":r}:void 0;return(0,F.jsxs)(`div`,{className:i(b.controlLayout,e),style:s,children:[a({controlClassName:o?b.controlWithEndAdornment:void 0}),o&&(0,F.jsx)(`div`,{className:i(b.controlEndAdornment,n),children:t})]})}function k({onClick:e,disabled:t,className:n,ariaLabel:r=`Очистить значение`}){return(0,F.jsx)(`button`,{type:`button`,disabled:t||!e,className:i(b.clearButton,`flexCenter radiusSm`,n),onClick:e,"aria-label":r,children:(0,F.jsx)(o,{})})}function A(e,t,n){if(n)return n;if(e&&t)return`calc((var(--control-height) * 2) + var(--space-xs))`;if(e||t)return`var(--control-height)`}function j({endAdornment:e,onClear:t,disabled:n}){if(!(e==null&&!t))return(0,F.jsxs)(`div`,{className:b.endAdornmentGroup,children:[e,t&&(0,F.jsx)(k,{onClick:t,disabled:n})]})}function M({label:e,description:t,disabled:n,className:r,onClear:a,error:o,onClearError:s,onChange:c,value:l,size:d,allowedPattern:f,endAdornment:p,endAdornmentClassName:m,endAdornmentWidth:h,type:g=`text`,..._}){let[v,y]=(0,P.useState)(!1),x=e=>{let t=e.target.value;f!==void 0&&y(t!==``&&!f.test(t)),c(t),o&&s&&s()},C=!!(l&&l.length>0),w=C?o:void 0,{controlId:T,labelId:E,descriptionId:k,errorId:M,describedBy:N}=S({id:_.id,hasLabel:e!=null,hasDescription:!!t,hasError:!!w}),I=C&&(!!o||v);return(0,F.jsx)(D,{label:e,description:t,disabled:n,className:r,size:d,error:w,controlId:T,labelId:E,descriptionId:k,errorId:M,children:(0,F.jsx)(O,{endAdornment:j({endAdornment:p,onClear:a,disabled:n}),endAdornmentClassName:m,endAdornmentWidth:A(p!=null,!!a,h),children:({controlClassName:e})=>(0,F.jsx)(`input`,{..._,id:T,type:g,disabled:n,value:l,"aria-invalid":I||void 0,"aria-labelledby":E,"aria-describedby":N,"data-invalid":I?``:void 0,className:i(u.uiInputControl,b.input,e),onChange:x})})})}function N({label:e,description:t,disabled:n,className:r,onClear:a,error:o,onClearError:s,onChange:l,value:d,size:f,endAdornment:p,endAdornmentClassName:m,endAdornmentWidth:h,...g}){let _=g,{controlId:v,labelId:y,descriptionId:x,errorId:C,describedBy:w}=S({id:g.id,hasLabel:e!=null,hasDescription:!!t,hasError:!!o}),[T,E]=(0,P.useState)(()=>String(d)),k=(0,P.useEffectEvent)(e=>{E(e)});(0,P.useEffect)(()=>{k(d!==void 0&&typeof d==`number`&&!isNaN(d)?String(d):``)},[d]);let M=a?()=>{E(``),a()}:void 0,N=e=>{let t=e.target.value;E(t),l(c(t)),o&&s&&s()};return(0,F.jsx)(D,{label:e,description:t,disabled:n,className:r,size:f,error:o,controlId:v,labelId:y,descriptionId:x,errorId:C,children:(0,F.jsx)(O,{endAdornment:j({endAdornment:p,onClear:M,disabled:n}),endAdornmentClassName:m,endAdornmentWidth:A(p!=null,!!M,h),children:({controlClassName:e})=>(0,F.jsx)(`input`,{..._,id:v,type:`number`,inputMode:`decimal`,disabled:n,value:T,"aria-labelledby":y,"aria-describedby":w,className:i(u.uiInputControl,b.input,b.inputNumber,e),onChange:N})})})}var P,F,I,L=t((()=>{P=e(n(),1),l(),a(),s(),d(),x(),w(),F=r(),I=M,E.__docgenInfo={description:``,methods:[],displayName:`InputUILoading`},D.__docgenInfo={description:`Низкоуровневая оболочка поля ввода с общими элементами оформления.`,methods:[],displayName:`InputUI`,props:{className:{required:!1,tsType:{name:`string`},description:``},error:{required:!1,tsType:{name:`string`},description:``},controlId:{required:!1,tsType:{name:`string`},description:``},labelId:{required:!1,tsType:{name:`string`},description:``},descriptionId:{required:!1,tsType:{name:`string`},description:``},errorId:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}},composes:[`Omit`]},O.__docgenInfo={description:``,methods:[],displayName:`InputControl`,props:{className:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(props: InputControlRenderProps) => ReactNode`,signature:{arguments:[{type:{name:`InputControlRenderProps`},name:`props`}],return:{name:`ReactNode`}}},description:``}}},k.__docgenInfo={description:``,methods:[],displayName:`InputClearButton`,props:{onClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Очистить значение"`,computed:!1}}}},M.__docgenInfo={description:`Базовое текстовое поле ввода для строковых значений.`,methods:[],displayName:`InputText`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``},type:{required:!1,tsType:{name:`union`,raw:`"email" | "password" | "search" | "tel" | "text" | "url"`,elements:[{name:`literal`,value:`"email"`},{name:`literal`,value:`"password"`},{name:`literal`,value:`"search"`},{name:`literal`,value:`"tel"`},{name:`literal`,value:`"text"`},{name:`literal`,value:`"url"`}]},description:``,defaultValue:{value:`"text"`,computed:!1}},allowedPattern:{required:!1,tsType:{name:`RegExp`},description:`Регулярное выражение для валидации всего введённого значения.
2
2
  При несоответствии поле подсвечивается как невалидное, но текст не удаляется.
3
3
  Пример: \`/^\\d*$/\``}},composes:[`Omit`]},N.__docgenInfo={description:`Числовое поле ввода с нормализацией значения и защитой от промежуточного невалидного ввода.`,methods:[],displayName:`InputNumber`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`T`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}}));export{M as a,L as c,N as i,w as l,k as n,D as o,O as r,E as s,I as t,S as u};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{NumberControlled as p,PatternValidation as m,TextControlled as h,WithError as g,n as _,t as v}from"./Input.stories-CkVqvY-C.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{NumberControlled as p,PatternValidation as m,TextControlled as h,WithError as g,n as _,t as v}from"./Input.stories-CBkJ60Z3.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(c,{children:`Input`}),`
3
3
  `,(0,x.jsx)(i,{children:`Базовое текстовое и числовое поле для форм, фильтров и служебных панелей`}),`
4
4
  `,(0,x.jsx)(o.p,{children:`Input уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,c as o,i as s}from"./Input-B7DWcGCL.js";var c=e({NumberControlled:()=>p,PatternValidation:()=>m,TextControlled:()=>f,WithError:()=>h,__namedExportsOrder:()=>g,default:()=>d}),l,u,d,f,p,m,h,g,_=n((()=>{l=t(r(),1),o(),u=i(),d={title:`Shared/UI/Input`,component:a,args:{value:``,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер нативного поля ввода.`,control:`text`},value:{description:`Текущее значение поля.`,control:`text`},onChange:{description:`Вызывается при изменении значения.`,control:!1},onClear:{description:`Callback кнопки очистки справа.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при вводе для сброса внешней ошибки.`,control:!1},disabled:{description:`Блокирует редактирование.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},allowedPattern:{description:`Регулярное выражение для валидации введенной строки.`,control:!1}}},f={render:e=>{let[t,n]=(0,l.useState)(e.value??``);return(0,u.jsx)(a,{...e,value:t,onChange:n,onClear:()=>n(``)})},args:{label:`Наименование`,description:`Пример обычного текстового поля.`,placeholder:`Введите значение`,value:``,size:`md`}},p={render:()=>{let[e,t]=(0,l.useState)(25);return(0,u.jsx)(s,{label:`Количество`,description:`Числовой ввод с min/max.`,placeholder:`0`,value:e,min:0,max:100,onChange:t,onClear:()=>t(0)})},args:{value:void 0}},m={render:()=>{let[e,t]=(0,l.useState)(``);return(0,u.jsx)(a,{label:`Только цифры`,description:"`allowedPattern` подсвечивает невалидный ввод.",placeholder:`12345`,value:e,onChange:t,allowedPattern:/^\d*$/})},args:{value:void 0}},h={render:()=>{let[e,t]=(0,l.useState)(`admin`),[n,r]=(0,l.useState)(`Логин уже занят`);return(0,u.jsx)(a,{label:`Логин`,value:e,error:n,onChange:t,onClear:()=>t(``),onClearError:()=>r(``)})},args:{value:void 0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,c as o,i as s}from"./Input-D6z--4tm.js";var c=e({NumberControlled:()=>p,PatternValidation:()=>m,TextControlled:()=>f,WithError:()=>h,__namedExportsOrder:()=>g,default:()=>d}),l,u,d,f,p,m,h,g,_=n((()=>{l=t(r(),1),o(),u=i(),d={title:`Shared/UI/Input`,component:a,args:{value:``,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер нативного поля ввода.`,control:`text`},value:{description:`Текущее значение поля.`,control:`text`},onChange:{description:`Вызывается при изменении значения.`,control:!1},onClear:{description:`Callback кнопки очистки справа.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при вводе для сброса внешней ошибки.`,control:!1},disabled:{description:`Блокирует редактирование.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},allowedPattern:{description:`Регулярное выражение для валидации введенной строки.`,control:!1}}},f={render:e=>{let[t,n]=(0,l.useState)(e.value??``);return(0,u.jsx)(a,{...e,value:t,onChange:n,onClear:()=>n(``)})},args:{label:`Наименование`,description:`Пример обычного текстового поля.`,placeholder:`Введите значение`,value:``,size:`md`}},p={render:()=>{let[e,t]=(0,l.useState)(25);return(0,u.jsx)(s,{label:`Количество`,description:`Числовой ввод с min/max.`,placeholder:`0`,value:e,min:0,max:100,onChange:t,onClear:()=>t(0)})},args:{value:void 0}},m={render:()=>{let[e,t]=(0,l.useState)(``);return(0,u.jsx)(a,{label:`Только цифры`,description:"`allowedPattern` подсвечивает невалидный ввод.",placeholder:`12345`,value:e,onChange:t,allowedPattern:/^\d*$/})},args:{value:void 0}},h={render:()=>{let[e,t]=(0,l.useState)(`admin`),[n,r]=(0,l.useState)(`Логин уже занят`);return(0,u.jsx)(a,{label:`Логин`,value:e,error:n,onChange:t,onClear:()=>t(``),onClearError:()=>r(``)})},args:{value:void 0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
2
  render: args => {
3
3
  const [value, setValue] = useState(args.value ?? "");
4
4
  return <InputText {...args} value={value} onChange={setValue} onClear={() => setValue("")} />;
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{CustomMask as p,DateAndTime as m,DateOnly as h,TimeOnly as g,n as _,t as v}from"./InputDateTime.stories-Dci_81MA.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{CustomMask as p,DateAndTime as m,DateOnly as h,TimeOnly as g,n as _,t as v}from"./InputDateTime.stories-gepL7zcB.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(c,{children:`InputDateTime`}),`
3
3
  `,(0,x.jsx)(i,{children:`Маскированный ввод даты, времени и объединенного значения дата-время`}),`
4
4
  `,(0,x.jsx)(o.p,{children:`InputDateTime уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CReRlw17.js";import{n as s,t as c}from"./ui.module-DS2qtZts.js";import{n as l,o as u,r as d,u as f}from"./Input-B7DWcGCL.js";import{t as p}from"./input-Be5K9_B7.js";import{a as m,i as h,n as g,r as _}from"./date-segments-CzU9k5bl.js";var v,y,b,x=n((()=>{v=`t1iysX`,y=`_-4oX-p`,b={segmentInput:v,separator:y}}));function S(e){return h(e).map(e=>e.kind===`editable`?{...e,type:e.id}:e)}function C(e,t){let n=g(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(e.type,n.get(t)??``)}),r}function w(e,t){let n=new Map;return e.forEach((e,r)=>{e.kind===`editable`&&n.set(r,t.get(e.type)??``)}),m(e,n)}var T=n((()=>{_()}));function E(e,t){let n=C(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(t,n.get(e.type)??``)}),r}function D(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function O({mask:e,value:t,onChange:n,onClearError:r,disabled:i}){let a=(0,k.useMemo)(()=>S(e),[e]),o=(0,k.useMemo)(()=>D(a),[a]),s=(0,k.useMemo)(()=>E(t,a),[t,a]),[c,l]=(0,k.useState)(null),[u,d]=(0,k.useState)(()=>t?.getTime()),f=t?.getTime();f!==u&&(d(f),l(null));let p=c??s,m=(0,k.useRef)(new Map),h=(0,k.useRef)(0),[g,_]=(0,k.useState)(!1),v=(0,k.useCallback)(e=>{let t=new Map;a.forEach((n,r)=>{n.kind===`editable`&&t.set(n.type,e.get(r)??``)});let r=w(a,t);r!==null&&n(r)},[a,n]),y=(0,k.useCallback)((e,t=!0)=>{let n=m.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t<o.length-1?o[t+1]:null},[o]),x=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t>0?o[t-1]:null},[o]),C=(0,k.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:a,segmentValues:p,isFocused:g,registerRef:(0,k.useCallback)(e=>t=>{t?m.current.set(e,t):m.current.delete(e)},[]),handleInput:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],o=t.target.value.replace(/\D/g,``).slice(0,n.length),s=new Map(p);if(s.set(e,o),l(s),r?.(),o.length===n.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(s)},[i,a,p,r,b,y,v]),handleKeyDown:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],r=p.get(e)??``,o=t.currentTarget;switch(t.key){case`ArrowRight`:if(o.selectionStart===r.length||r===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(o.selectionStart===0||r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`ArrowUp`:{t.preventDefault();let i=r===``?n.min:parseInt(r,10)+1;i>n.max&&(i=n.min);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`ArrowDown`:{t.preventDefault();let i=r===``?n.max:parseInt(r,10)-1;i<n.min&&(i=n.max);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`Backspace`:if(r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(p);n.set(e,``),l(n),v(n);break}}},[i,a,p,b,x,y,C,v]),handleFocus:(0,k.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,k.useCallback)(()=>{clearTimeout(h.current),_(!0)},[]),handleContainerBlur:(0,k.useCallback)(()=>{h.current=window.setTimeout(()=>{_(!1),l(null)},0)},[]),focusFirstEmpty:(0,k.useCallback)(()=>{let e=o.find(e=>!(p.get(e)??``))??o[o.length-1];e!==void 0&&y(e)},[o,p,y])}}var k,A=n((()=>{k=t(r(),1),T()}));function j({mask:e,value:t,onChange:n,label:r,description:i,disabled:o,size:c,className:p,error:m,onClearError:h,onClear:g,"aria-label":_}){let{segments:v,segmentValues:y,registerRef:x,handleInput:S,handleKeyDown:C,handleFocus:w,handleContainerFocus:T,handleContainerBlur:E,focusFirstEmpty:D}=O({mask:e,value:t,onChange:n,onClearError:h,disabled:o}),{controlId:k,labelId:A,descriptionId:j,errorId:M,describedBy:N}=f({hasLabel:r!=null,hasDescription:!!i,hasError:!!m});return(0,F.jsx)(u,{label:r,description:i,disabled:o,className:p,size:c,error:m,labelId:A,descriptionId:j,errorId:M,children:(0,F.jsx)(d,{endAdornment:g?(0,F.jsx)(l,{onClick:g,disabled:o}):void 0,endAdornmentWidth:g?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,F.jsx)(`div`,{id:k,className:a(s.uiInputControlFake,e),"data-invalid":m?``:void 0,"data-disabled":o||void 0,role:`group`,"aria-invalid":!!m||void 0,"aria-label":_||(typeof r==`string`?r:void 0),"aria-labelledby":_?void 0:A,"aria-describedby":N,onFocus:T,onBlur:E,onClick:e=>{e.target===e.currentTarget&&D()},children:v.map((e,t)=>e.kind===`literal`?(0,F.jsx)(`span`,{className:b.separator,"data-disabled":o||void 0,children:e.text},t):(0,F.jsx)(`input`,{ref:x(t),type:`text`,inputMode:`numeric`,className:b.segmentInput,style:{width:`${e.length+.5}ch`},value:y.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:o,"aria-label":e.type,autoComplete:`off`,onChange:S(t),onKeyDown:C(t),onFocus:w()},t))})})})}function M({mask:e=`YYYY.MM.DD`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function N({mask:e=`hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function P({mask:e=`YYYY.MM.DD hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}var F,I=n((()=>{o(),p(),c(),x(),A(),F=i(),M.__docgenInfo={description:``,methods:[],displayName:`InputDate`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD"`,computed:!1}}}},N.__docgenInfo={description:``,methods:[],displayName:`InputTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"hh:mm"`,computed:!1}}}},P.__docgenInfo={description:``,methods:[],displayName:`InputDateTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD hh:mm"`,computed:!1}}}}})),L=e({CustomMask:()=>W,DateAndTime:()=>U,DateOnly:()=>V,TimeOnly:()=>H,__namedExportsOrder:()=>G,default:()=>B}),R,z,B,V,H,U,W,G,K=n((()=>{R=t(r(),1),I(),z=i(),B={title:`Shared/UI/InputDateTime`,component:M,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение в виде `Date`.",control:!1},onChange:{description:`Вызывается при формировании валидной даты/времени.`,control:!1},mask:{description:"Маска сегментов (`YYYY`, `MM`, `DD`, `hh`, `mm`, `ss`).",control:`text`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},onClear:{description:`Очищает значение и активирует кнопку очистки.`,control:!1},disabled:{description:`Блокирует редактирование сегментов.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},"aria-label":{description:`ARIA-метка для контейнера сегментного ввода.`,control:`text`}}},V={render:e=>{let[t,n]=(0,R.useState)(e.value);return(0,z.jsx)(M,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Дата`,description:`Формат по умолчанию: YYYY.MM.DD`,value:new Date(2026,2,5)}},H={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,14,30,0));return(0,z.jsx)(N,{label:`Время`,description:`Формат по умолчанию: hh:mm`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},U={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,0));return(0,z.jsx)(P,{label:`Дата и время`,description:`Комбинированный ввод даты и времени.`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},W={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,42));return(0,z.jsx)(P,{label:`Кастомная маска`,description:`Добавлены секунды: YYYY.MM.DD hh:mm:ss`,mask:`YYYY.MM.DD hh:mm:ss`,value:e,onChange:t})},args:{value:void 0}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-B7W0zPTP.js";import{n as s,t as c}from"./ui.module-DS2qtZts.js";import{n as l,o as u,r as d,u as f}from"./Input-D6z--4tm.js";import{t as p}from"./input-Bfb8MLis.js";import{a as m,i as h,n as g,r as _}from"./date-segments-CzU9k5bl.js";var v,y,b,x=n((()=>{v=`t1iysX`,y=`_-4oX-p`,b={segmentInput:v,separator:y}}));function S(e){return h(e).map(e=>e.kind===`editable`?{...e,type:e.id}:e)}function C(e,t){let n=g(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(e.type,n.get(t)??``)}),r}function w(e,t){let n=new Map;return e.forEach((e,r)=>{e.kind===`editable`&&n.set(r,t.get(e.type)??``)}),m(e,n)}var T=n((()=>{_()}));function E(e,t){let n=C(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(t,n.get(e.type)??``)}),r}function D(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function O({mask:e,value:t,onChange:n,onClearError:r,disabled:i}){let a=(0,k.useMemo)(()=>S(e),[e]),o=(0,k.useMemo)(()=>D(a),[a]),s=(0,k.useMemo)(()=>E(t,a),[t,a]),[c,l]=(0,k.useState)(null),[u,d]=(0,k.useState)(()=>t?.getTime()),f=t?.getTime();f!==u&&(d(f),l(null));let p=c??s,m=(0,k.useRef)(new Map),h=(0,k.useRef)(0),[g,_]=(0,k.useState)(!1),v=(0,k.useCallback)(e=>{let t=new Map;a.forEach((n,r)=>{n.kind===`editable`&&t.set(n.type,e.get(r)??``)});let r=w(a,t);r!==null&&n(r)},[a,n]),y=(0,k.useCallback)((e,t=!0)=>{let n=m.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t<o.length-1?o[t+1]:null},[o]),x=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t>0?o[t-1]:null},[o]),C=(0,k.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:a,segmentValues:p,isFocused:g,registerRef:(0,k.useCallback)(e=>t=>{t?m.current.set(e,t):m.current.delete(e)},[]),handleInput:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],o=t.target.value.replace(/\D/g,``).slice(0,n.length),s=new Map(p);if(s.set(e,o),l(s),r?.(),o.length===n.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(s)},[i,a,p,r,b,y,v]),handleKeyDown:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],r=p.get(e)??``,o=t.currentTarget;switch(t.key){case`ArrowRight`:if(o.selectionStart===r.length||r===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(o.selectionStart===0||r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`ArrowUp`:{t.preventDefault();let i=r===``?n.min:parseInt(r,10)+1;i>n.max&&(i=n.min);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`ArrowDown`:{t.preventDefault();let i=r===``?n.max:parseInt(r,10)-1;i<n.min&&(i=n.max);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`Backspace`:if(r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(p);n.set(e,``),l(n),v(n);break}}},[i,a,p,b,x,y,C,v]),handleFocus:(0,k.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,k.useCallback)(()=>{clearTimeout(h.current),_(!0)},[]),handleContainerBlur:(0,k.useCallback)(()=>{h.current=window.setTimeout(()=>{_(!1),l(null)},0)},[]),focusFirstEmpty:(0,k.useCallback)(()=>{let e=o.find(e=>!(p.get(e)??``))??o[o.length-1];e!==void 0&&y(e)},[o,p,y])}}var k,A=n((()=>{k=t(r(),1),T()}));function j({mask:e,value:t,onChange:n,label:r,description:i,disabled:o,size:c,className:p,error:m,onClearError:h,onClear:g,"aria-label":_}){let{segments:v,segmentValues:y,registerRef:x,handleInput:S,handleKeyDown:C,handleFocus:w,handleContainerFocus:T,handleContainerBlur:E,focusFirstEmpty:D}=O({mask:e,value:t,onChange:n,onClearError:h,disabled:o}),{controlId:k,labelId:A,descriptionId:j,errorId:M,describedBy:N}=f({hasLabel:r!=null,hasDescription:!!i,hasError:!!m});return(0,F.jsx)(u,{label:r,description:i,disabled:o,className:p,size:c,error:m,labelId:A,descriptionId:j,errorId:M,children:(0,F.jsx)(d,{endAdornment:g?(0,F.jsx)(l,{onClick:g,disabled:o}):void 0,endAdornmentWidth:g?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,F.jsx)(`div`,{id:k,className:a(s.uiInputControlFake,e),"data-invalid":m?``:void 0,"data-disabled":o||void 0,role:`group`,"aria-invalid":!!m||void 0,"aria-label":_||(typeof r==`string`?r:void 0),"aria-labelledby":_?void 0:A,"aria-describedby":N,onFocus:T,onBlur:E,onClick:e=>{e.target===e.currentTarget&&D()},children:v.map((e,t)=>e.kind===`literal`?(0,F.jsx)(`span`,{className:b.separator,"data-disabled":o||void 0,children:e.text},t):(0,F.jsx)(`input`,{ref:x(t),type:`text`,inputMode:`numeric`,className:b.segmentInput,style:{width:`${e.length+.5}ch`},value:y.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:o,"aria-label":e.type,autoComplete:`off`,onChange:S(t),onKeyDown:C(t),onFocus:w()},t))})})})}function M({mask:e=`YYYY.MM.DD`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function N({mask:e=`hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function P({mask:e=`YYYY.MM.DD hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}var F,I=n((()=>{o(),p(),c(),x(),A(),F=i(),M.__docgenInfo={description:``,methods:[],displayName:`InputDate`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD"`,computed:!1}}}},N.__docgenInfo={description:``,methods:[],displayName:`InputTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"hh:mm"`,computed:!1}}}},P.__docgenInfo={description:``,methods:[],displayName:`InputDateTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD hh:mm"`,computed:!1}}}}})),L=e({CustomMask:()=>W,DateAndTime:()=>U,DateOnly:()=>V,TimeOnly:()=>H,__namedExportsOrder:()=>G,default:()=>B}),R,z,B,V,H,U,W,G,K=n((()=>{R=t(r(),1),I(),z=i(),B={title:`Shared/UI/InputDateTime`,component:M,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение в виде `Date`.",control:!1},onChange:{description:`Вызывается при формировании валидной даты/времени.`,control:!1},mask:{description:"Маска сегментов (`YYYY`, `MM`, `DD`, `hh`, `mm`, `ss`).",control:`text`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},onClear:{description:`Очищает значение и активирует кнопку очистки.`,control:!1},disabled:{description:`Блокирует редактирование сегментов.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},"aria-label":{description:`ARIA-метка для контейнера сегментного ввода.`,control:`text`}}},V={render:e=>{let[t,n]=(0,R.useState)(e.value);return(0,z.jsx)(M,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Дата`,description:`Формат по умолчанию: YYYY.MM.DD`,value:new Date(2026,2,5)}},H={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,14,30,0));return(0,z.jsx)(N,{label:`Время`,description:`Формат по умолчанию: hh:mm`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},U={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,0));return(0,z.jsx)(P,{label:`Дата и время`,description:`Комбинированный ввод даты и времени.`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},W={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,42));return(0,z.jsx)(P,{label:`Кастомная маска`,description:`Добавлены секунды: YYYY.MM.DD hh:mm:ss`,mask:`YYYY.MM.DD hh:mm:ss`,value:e,onChange:t})},args:{value:void 0}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
2
2
  render: args => {
3
3
  const [value, setValue] = useState<Date | undefined>(args.value);
4
4
  return <InputDate {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{ArrayBufferMode as p,Controlled as m,WithInitialValue as h,n as g,t as _}from"./InputFile.stories-Bar27dP5.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{ArrayBufferMode as p,Controlled as m,WithInitialValue as h,n as g,t as _}from"./InputFile.stories-CVD-PTav.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(c,{children:`InputFile`}),`
3
3
  `,(0,b.jsx)(i,{children:`Контрол для выбора одного файла с поддержкой предварительного значения и бинарного режима`}),`
4
4
  `,(0,b.jsx)(o.p,{children:`InputFile уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-CReRlw17.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-B7DWcGCL.js";import{t as m}from"./input-Be5K9_B7.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w=n((()=>{b=`Ggxyuj`,x=`fthcmO`,S=`wyY60X`,C={control:b,fileName:x,hiddenInput:S}}));function T(e){let{value:t,onClear:n,onReadError:r,accept:i,allowedMime:o,maxBytes:l,label:m,description:g,placeholder:b=`Выберите файл`,disabled:x,size:S,error:w,onClearError:T,className:O}=e;h(o),_(i);let k=(0,E.useRef)(null),{controlId:A,labelId:j,descriptionId:M,errorId:N,describedBy:P}=p({hasLabel:m!=null,hasDescription:!!g,hasError:!!w}),F=(0,E.useCallback)(async t=>{let n=t.target.files?.[0];if(n){t.target.value=``,w&&T&&T();try{if(e.readMode===`array-buffer`){let t=await y(n,{allowedMime:o,maxBytes:l,mode:`array-buffer`});e.onChange(t);return}let t=await y(n,{allowedMime:o,maxBytes:l});e.onChange(t)}catch(e){e instanceof v&&r&&r(e)}}},[e,o,l,r,w,T]),I=(0,E.useCallback)(()=>{k.current?.click()},[]);return(0,D.jsxs)(d,{label:m,description:g,disabled:x,className:O,size:S,error:w,controlId:A,labelId:j,descriptionId:M,errorId:N,children:[(0,D.jsx)(`input`,{ref:k,id:A,type:`file`,accept:(i??o)?.join(`,`),disabled:x,className:C.hiddenInput,onChange:F,tabIndex:-1}),(0,D.jsx)(f,{endAdornment:n?(0,D.jsx)(u,{onClick:n,disabled:x}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,D.jsx)(`div`,{role:`button`,tabIndex:x?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:x}),className:a(c.uiInputControl,C.control,e,!!w&&c.invalid),"data-disabled":x||void 0,"aria-invalid":!!w||void 0,"aria-disabled":x,"aria-labelledby":j,"aria-describedby":P,children:t?(0,D.jsx)(`span`,{className:C.fileName,children:t.meta.name}):(0,D.jsx)(`span`,{className:c.uiPlaceholder,children:b})})})]})}var E,D,O=n((()=>{E=t(r(),1),g(),o(),m(),l(),w(),D=i(),T.__docgenInfo={description:'InputFile — компонент выбора одного файла.\n\nВизуально идентичен InputText: поле с label, description, placeholder,\nкнопкой очистки (крестик) и блоком ошибки.\n\nПри клике открывается нативный диалог выбора файла.\nПосле выбора файл читается через readFile, результат передаётся в onChange.\n\nInputFile позволяет выбрать один файл и передаёт наружу типизированный результат чтения.\nЕсли `readMode` не задан или равен `"data-url"`, в `onChange` приходит объект с `dataUrl`.\nЕсли `readMode` равен `"array-buffer"`, в `onChange` приходит объект с `buffer`.',methods:[],displayName:`InputFile`}})),k=e({ArrayBufferMode:()=>I,Controlled:()=>P,WithInitialValue:()=>F,__namedExportsOrder:()=>L,default:()=>N}),A,j,M,N,P,F,I,L,R=n((()=>{A=t(r(),1),O(),j=i(),M=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},N={title:`Shared/UI/InputFile`,component:T,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока файл не выбран.`,control:`text`},value:{description:`Текущий результат чтения выбранного файла.`,control:!1},onChange:{description:`Вызывается после успешного чтения файла.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения или валидации файла.`,control:!1},onClear:{description:`Очищает выбранный файл и показывает кнопку очистки.`,control:!1},accept:{description:"HTML `accept` для нативного диалога выбора файла.",control:`text`},allowedMime:{description:`Белый список MIME-типов для readFile-валидации.`,control:!1},maxBytes:{description:`Максимальный размер файла в байтах.`,control:`number`},readMode:{description:`Режим чтения файла: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Callback сброса ошибки при повторном выборе файла.`,control:!1},disabled:{description:`Блокирует выбор файла.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},P={render:e=>{let[t,n]=(0,A.useState)(e.value),[r,i]=(0,A.useState)(e.error??``);return(0,j.jsx)(T,{...e,value:t,error:r||void 0,onChange:n,onClear:()=>n(void 0),onClearError:()=>i(``)})},args:{label:`Документ`,description:`Загрузите один файл.`,placeholder:`Выберите файл`,accept:[`.pdf`,`.docx`],readMode:`data-url`,value:void 0}},F={render:e=>{let[t,n]=(0,A.useState)(M(`report.pdf`));return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Файл с предзаполнением`,description:`Демонстрация состояния после успешной загрузки.`}},I={render:e=>{let[t,n]=(0,A.useState)(void 0);return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Двоичное чтение`,description:"Режим `array-buffer` для дальнейшей бинарной обработки.",readMode:`array-buffer`,accept:[`.zip`,`.pdf`],value:void 0}},P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-B7W0zPTP.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-D6z--4tm.js";import{t as m}from"./input-Bfb8MLis.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w=n((()=>{b=`Ggxyuj`,x=`fthcmO`,S=`wyY60X`,C={control:b,fileName:x,hiddenInput:S}}));function T(e){let{value:t,onClear:n,onReadError:r,accept:i,allowedMime:o,maxBytes:l,label:m,description:g,placeholder:b=`Выберите файл`,disabled:x,size:S,error:w,onClearError:T,className:O}=e;h(o),_(i);let k=(0,E.useRef)(null),{controlId:A,labelId:j,descriptionId:M,errorId:N,describedBy:P}=p({hasLabel:m!=null,hasDescription:!!g,hasError:!!w}),F=(0,E.useCallback)(async t=>{let n=t.target.files?.[0];if(n){t.target.value=``,w&&T&&T();try{if(e.readMode===`array-buffer`){let t=await y(n,{allowedMime:o,maxBytes:l,mode:`array-buffer`});e.onChange(t);return}let t=await y(n,{allowedMime:o,maxBytes:l});e.onChange(t)}catch(e){e instanceof v&&r&&r(e)}}},[e,o,l,r,w,T]),I=(0,E.useCallback)(()=>{k.current?.click()},[]);return(0,D.jsxs)(d,{label:m,description:g,disabled:x,className:O,size:S,error:w,controlId:A,labelId:j,descriptionId:M,errorId:N,children:[(0,D.jsx)(`input`,{ref:k,id:A,type:`file`,accept:(i??o)?.join(`,`),disabled:x,className:C.hiddenInput,onChange:F,tabIndex:-1}),(0,D.jsx)(f,{endAdornment:n?(0,D.jsx)(u,{onClick:n,disabled:x}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,D.jsx)(`div`,{role:`button`,tabIndex:x?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:x}),className:a(c.uiInputControl,C.control,e,!!w&&c.invalid),"data-disabled":x||void 0,"aria-invalid":!!w||void 0,"aria-disabled":x,"aria-labelledby":j,"aria-describedby":P,children:t?(0,D.jsx)(`span`,{className:C.fileName,children:t.meta.name}):(0,D.jsx)(`span`,{className:c.uiPlaceholder,children:b})})})]})}var E,D,O=n((()=>{E=t(r(),1),g(),o(),m(),l(),w(),D=i(),T.__docgenInfo={description:'InputFile — компонент выбора одного файла.\n\nВизуально идентичен InputText: поле с label, description, placeholder,\nкнопкой очистки (крестик) и блоком ошибки.\n\nПри клике открывается нативный диалог выбора файла.\nПосле выбора файл читается через readFile, результат передаётся в onChange.\n\nInputFile позволяет выбрать один файл и передаёт наружу типизированный результат чтения.\nЕсли `readMode` не задан или равен `"data-url"`, в `onChange` приходит объект с `dataUrl`.\nЕсли `readMode` равен `"array-buffer"`, в `onChange` приходит объект с `buffer`.',methods:[],displayName:`InputFile`}})),k=e({ArrayBufferMode:()=>I,Controlled:()=>P,WithInitialValue:()=>F,__namedExportsOrder:()=>L,default:()=>N}),A,j,M,N,P,F,I,L,R=n((()=>{A=t(r(),1),O(),j=i(),M=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},N={title:`Shared/UI/InputFile`,component:T,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока файл не выбран.`,control:`text`},value:{description:`Текущий результат чтения выбранного файла.`,control:!1},onChange:{description:`Вызывается после успешного чтения файла.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения или валидации файла.`,control:!1},onClear:{description:`Очищает выбранный файл и показывает кнопку очистки.`,control:!1},accept:{description:"HTML `accept` для нативного диалога выбора файла.",control:`text`},allowedMime:{description:`Белый список MIME-типов для readFile-валидации.`,control:!1},maxBytes:{description:`Максимальный размер файла в байтах.`,control:`number`},readMode:{description:`Режим чтения файла: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Callback сброса ошибки при повторном выборе файла.`,control:!1},disabled:{description:`Блокирует выбор файла.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},P={render:e=>{let[t,n]=(0,A.useState)(e.value),[r,i]=(0,A.useState)(e.error??``);return(0,j.jsx)(T,{...e,value:t,error:r||void 0,onChange:n,onClear:()=>n(void 0),onClearError:()=>i(``)})},args:{label:`Документ`,description:`Загрузите один файл.`,placeholder:`Выберите файл`,accept:[`.pdf`,`.docx`],readMode:`data-url`,value:void 0}},F={render:e=>{let[t,n]=(0,A.useState)(M(`report.pdf`));return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Файл с предзаполнением`,description:`Демонстрация состояния после успешной загрузки.`}},I={render:e=>{let[t,n]=(0,A.useState)(void 0);return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Двоичное чтение`,description:"Режим `array-buffer` для дальнейшей бинарной обработки.",readMode:`array-buffer`,accept:[`.zip`,`.pdf`],value:void 0}},P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
2
2
  render: args => {
3
3
  const [value, setValue] = useState<ReadFileResult | undefined>(args.value);
4
4
  const [error, setError] = useState(args.error ?? "");
@@ -1 +1 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a,n as o}from"./utils-CReRlw17.js";import{n as s,t as c}from"./lucide-react-CK2oyDtF.js";import{n as l,t as u}from"./ui.module-DS2qtZts.js";import{o as d,r as f,u as p}from"./Input-B7DWcGCL.js";import{t as m}from"./input-Be5K9_B7.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w,T,E,D=t((()=>{b=`h9SMea`,x=`rUyh0y`,S=`Q0CY1r`,C=`AJuYXd`,w=`CKKkOD`,T=`UgxhS1`,E={control:b,hiddenInput:x,fileList:S,fileItem:C,fileItemName:w,removeButton:T}}));function O({files:e,onChange:t}){let n=(0,k.useCallback)(n=>{t(e.filter((e,t)=>t!==n))},[e,t]);return!e||!e.length?null:(0,A.jsx)(`ul`,{className:E.fileList,children:e.map((e,t)=>(0,A.jsxs)(`li`,{className:E.fileItem,children:[(0,A.jsx)(`span`,{className:E.fileItemName,children:e.meta.name}),(0,A.jsx)(`button`,{type:`button`,className:i(E.removeButton,`flexCenter`),onClick:()=>n(t),"aria-label":`Удалить ${e.meta.name}`,children:(0,A.jsx)(s,{})})]},`${e.meta.name}-${e.meta.lastModified}`))})}var k,A,j=t((()=>{k=e(n(),1),a(),c(),D(),A=r(),O.__docgenInfo={description:``,methods:[],displayName:`InputFilesList`,props:{files:{required:!0,tsType:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(files: TFile[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},name:`files`}],return:{name:`void`}}},description:``}}}}));function M(e){let{value:t,onReadError:n,accept:r,allowedMime:a,maxBytes:s,maxFiles:c,label:u,description:m,placeholder:g=`Выберите файлы`,disabled:b,size:x,error:S,onClearError:C,className:w}=e;h(a),_(r);let T=(0,N.useRef)(null),{controlId:D,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:u!=null,hasDescription:!!m,hasError:!!S}),F=typeof c==`number`&&t.length>=c,I=(0,N.useCallback)(async r=>{let i=r.target.files;if(!i||i.length===0)return;let o=Array.from(i);r.target.value=``,S&&C&&C();let l=typeof c==`number`?c-t.length:o.length,u=o.slice(0,l);if(e.readMode===`array-buffer`){let t=[];for(let e of u)try{let n=await y(e,{allowedMime:a,maxBytes:s,mode:`array-buffer`});t.push(n)}catch(e){e instanceof v&&n&&n(e)}t.length>0&&e.onChange([...e.value,...t]);return}let d=[];for(let e of u)try{let t=await y(e,{allowedMime:a,maxBytes:s});d.push(t)}catch(e){e instanceof v&&n&&n(e)}d.length>0&&e.onChange([...e.value,...d])},[e,c,t.length,a,s,n,S,C]),L=(0,N.useCallback)(()=>{T.current?.click()},[]),R=(e.readMode,(0,P.jsx)(O,{files:e.value,onChange:e.onChange}));return(0,P.jsxs)(d,{label:u,description:m,disabled:b,className:w,size:x,error:S,controlId:D,labelId:k,descriptionId:A,errorId:j,children:[(0,P.jsx)(`input`,{ref:T,id:D,type:`file`,accept:(r??a)?.join(`,`),multiple:!0,disabled:b||F,className:E.hiddenInput,onChange:I,tabIndex:-1}),(0,P.jsx)(f,{children:()=>(0,P.jsx)(`div`,{role:`button`,tabIndex:b||F?-1:0,onClick:L,onKeyDown:e=>o(e,L,{disabled:b||F}),className:i(l.uiInputControl,E.control,!!S&&`invalid`),"data-disabled":b||void 0,"aria-invalid":!!S||void 0,"aria-disabled":b||F,"aria-labelledby":k,"aria-describedby":M,children:(0,P.jsx)(`span`,{className:l.uiPlaceholder,children:F?`Максимум ${c} файлов`:g})})}),R]})}var N,P,F=t((()=>{N=e(n(),1),g(),a(),m(),u(),D(),j(),P=r(),M.__docgenInfo={description:'InputFiles — компонент выбора нескольких файлов.\n\nПоле стилизовано как InputText. При клике открывается нативный\nдиалог с multiple. Каждый выбранный файл читается через readFile\nи добавляется в массив value.\n\nСписок выбранных файлов отображается под полем.\nКаждый файл можно удалить кнопкой «крестик».\n\nInputFiles типизирует массив по `readMode`.\nЕсли `readMode` не задан или равен `"data-url"`, в `value` и `onChange`\nиспользуется массив объектов с `dataUrl`. Если `readMode` равен\n`"array-buffer"`, используется массив объектов с `buffer`.',methods:[],displayName:`InputFiles`}}));export{j as i,F as n,O as r,M as t};
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a,n as o}from"./utils-B7W0zPTP.js";import{n as s,t as c}from"./lucide-react-Cw6QPvVA.js";import{n as l,t as u}from"./ui.module-DS2qtZts.js";import{o as d,r as f,u as p}from"./Input-D6z--4tm.js";import{t as m}from"./input-Bfb8MLis.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w,T,E,D=t((()=>{b=`h9SMea`,x=`rUyh0y`,S=`Q0CY1r`,C=`AJuYXd`,w=`CKKkOD`,T=`UgxhS1`,E={control:b,hiddenInput:x,fileList:S,fileItem:C,fileItemName:w,removeButton:T}}));function O({files:e,onChange:t}){let n=(0,k.useCallback)(n=>{t(e.filter((e,t)=>t!==n))},[e,t]);return!e||!e.length?null:(0,A.jsx)(`ul`,{className:E.fileList,children:e.map((e,t)=>(0,A.jsxs)(`li`,{className:E.fileItem,children:[(0,A.jsx)(`span`,{className:E.fileItemName,children:e.meta.name}),(0,A.jsx)(`button`,{type:`button`,className:i(E.removeButton,`flexCenter`),onClick:()=>n(t),"aria-label":`Удалить ${e.meta.name}`,children:(0,A.jsx)(s,{})})]},`${e.meta.name}-${e.meta.lastModified}`))})}var k,A,j=t((()=>{k=e(n(),1),a(),c(),D(),A=r(),O.__docgenInfo={description:``,methods:[],displayName:`InputFilesList`,props:{files:{required:!0,tsType:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(files: TFile[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},name:`files`}],return:{name:`void`}}},description:``}}}}));function M(e){let{value:t,onReadError:n,accept:r,allowedMime:a,maxBytes:s,maxFiles:c,label:u,description:m,placeholder:g=`Выберите файлы`,disabled:b,size:x,error:S,onClearError:C,className:w}=e;h(a),_(r);let T=(0,N.useRef)(null),{controlId:D,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:u!=null,hasDescription:!!m,hasError:!!S}),F=typeof c==`number`&&t.length>=c,I=(0,N.useCallback)(async r=>{let i=r.target.files;if(!i||i.length===0)return;let o=Array.from(i);r.target.value=``,S&&C&&C();let l=typeof c==`number`?c-t.length:o.length,u=o.slice(0,l);if(e.readMode===`array-buffer`){let t=[];for(let e of u)try{let n=await y(e,{allowedMime:a,maxBytes:s,mode:`array-buffer`});t.push(n)}catch(e){e instanceof v&&n&&n(e)}t.length>0&&e.onChange([...e.value,...t]);return}let d=[];for(let e of u)try{let t=await y(e,{allowedMime:a,maxBytes:s});d.push(t)}catch(e){e instanceof v&&n&&n(e)}d.length>0&&e.onChange([...e.value,...d])},[e,c,t.length,a,s,n,S,C]),L=(0,N.useCallback)(()=>{T.current?.click()},[]),R=(e.readMode,(0,P.jsx)(O,{files:e.value,onChange:e.onChange}));return(0,P.jsxs)(d,{label:u,description:m,disabled:b,className:w,size:x,error:S,controlId:D,labelId:k,descriptionId:A,errorId:j,children:[(0,P.jsx)(`input`,{ref:T,id:D,type:`file`,accept:(r??a)?.join(`,`),multiple:!0,disabled:b||F,className:E.hiddenInput,onChange:I,tabIndex:-1}),(0,P.jsx)(f,{children:()=>(0,P.jsx)(`div`,{role:`button`,tabIndex:b||F?-1:0,onClick:L,onKeyDown:e=>o(e,L,{disabled:b||F}),className:i(l.uiInputControl,E.control,!!S&&`invalid`),"data-disabled":b||void 0,"aria-invalid":!!S||void 0,"aria-disabled":b||F,"aria-labelledby":k,"aria-describedby":M,children:(0,P.jsx)(`span`,{className:l.uiPlaceholder,children:F?`Максимум ${c} файлов`:g})})}),R]})}var N,P,F=t((()=>{N=e(n(),1),g(),a(),m(),u(),D(),j(),P=r(),M.__docgenInfo={description:'InputFiles — компонент выбора нескольких файлов.\n\nПоле стилизовано как InputText. При клике открывается нативный\nдиалог с multiple. Каждый выбранный файл читается через readFile\nи добавляется в массив value.\n\nСписок выбранных файлов отображается под полем.\nКаждый файл можно удалить кнопкой «крестик».\n\nInputFiles типизирует массив по `readMode`.\nЕсли `readMode` не задан или равен `"data-url"`, в `value` и `onChange`\nиспользуется массив объектов с `dataUrl`. Если `readMode` равен\n`"array-buffer"`, используется массив объектов с `buffer`.',methods:[],displayName:`InputFiles`}}));export{j as i,F as n,O as r,M as t};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Controlled as p,LimitReached as m,WithInitialFiles as h,n as g,t as _}from"./InputFiles.stories-CkZ8et32.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Controlled as p,LimitReached as m,WithInitialFiles as h,n as g,t as _}from"./InputFiles.stories-DIbO_ACP.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(c,{children:`InputFiles`}),`
3
3
  `,(0,b.jsx)(i,{children:`Выбор и хранение нескольких файлов в контролируемом режиме`}),`
4
4
  `,(0,b.jsx)(o.p,{children:`InputFiles уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./InputFiles-DPz7PiOC.js";var s=e({Controlled:()=>f,LimitReached:()=>m,WithInitialFiles:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},d={title:`Shared/UI/InputFiles`,component:o,args:{value:[],onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля множественной загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока список файлов пуст.`,control:`text`},value:{description:`Массив результатов чтения выбранных файлов.`,control:!1},onChange:{description:`Вызывается с новым массивом файлов после добавления/удаления.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения отдельного файла.`,control:!1},accept:{description:"HTML `accept` для диалога выбора файлов.",control:`text`},allowedMime:{description:`Список допустимых MIME-типов при валидации.`,control:!1},maxBytes:{description:`Максимальный размер одного файла в байтах.`,control:`number`},readMode:{description:`Режим чтения: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},maxFiles:{description:`Лимит количества файлов в списке.`,control:`number`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при выборе новых файлов для сброса ошибки.`,control:!1},disabled:{description:`Полностью блокирует выбор файлов.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},f={render:e=>{let[t,n]=(0,c.useState)([]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Вложения`,description:`Можно выбрать несколько файлов.`,placeholder:`Выберите файлы`,accept:[`.pdf`,`.png`,`.jpg`],maxFiles:5,value:[]}},p={render:e=>{let[t,n]=(0,c.useState)([u(`contract.pdf`),u(`diagram.png`,`image/png`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Предзаполненный список`,description:`Иллюстрация удаления файлов из уже заполненного значения.`}},m={render:e=>{let[t,n]=(0,c.useState)([u(`first.pdf`),u(`second.pdf`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Лимит файлов`,description:`После достижения лимита поле выбора блокируется.`,maxFiles:2}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./InputFiles-CFlxBgsw.js";var s=e({Controlled:()=>f,LimitReached:()=>m,WithInitialFiles:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},d={title:`Shared/UI/InputFiles`,component:o,args:{value:[],onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля множественной загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока список файлов пуст.`,control:`text`},value:{description:`Массив результатов чтения выбранных файлов.`,control:!1},onChange:{description:`Вызывается с новым массивом файлов после добавления/удаления.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения отдельного файла.`,control:!1},accept:{description:"HTML `accept` для диалога выбора файлов.",control:`text`},allowedMime:{description:`Список допустимых MIME-типов при валидации.`,control:!1},maxBytes:{description:`Максимальный размер одного файла в байтах.`,control:`number`},readMode:{description:`Режим чтения: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},maxFiles:{description:`Лимит количества файлов в списке.`,control:`number`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при выборе новых файлов для сброса ошибки.`,control:!1},disabled:{description:`Полностью блокирует выбор файлов.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},f={render:e=>{let[t,n]=(0,c.useState)([]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Вложения`,description:`Можно выбрать несколько файлов.`,placeholder:`Выберите файлы`,accept:[`.pdf`,`.png`,`.jpg`],maxFiles:5,value:[]}},p={render:e=>{let[t,n]=(0,c.useState)([u(`contract.pdf`),u(`diagram.png`,`image/png`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Предзаполненный список`,description:`Иллюстрация удаления файлов из уже заполненного значения.`}},m={render:e=>{let[t,n]=(0,c.useState)([u(`first.pdf`),u(`second.pdf`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Лимит файлов`,description:`После достижения лимита поле выбора блокируется.`,maxFiles:2}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
2
  render: args => {
3
3
  const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([]);
4
4
  return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{ArrayBufferMode as p,Controlled as m,WithInitialImage as h,n as g,t as _}from"./InputImage.stories-Dq8ORce3.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{ArrayBufferMode as p,Controlled as m,WithInitialImage as h,n as g,t as _}from"./InputImage.stories-SyFATair.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(c,{children:`InputImage`}),`
3
3
  `,(0,b.jsx)(i,{children:`Контрол загрузки и предварительного просмотра изображения в формах и карточках`}),`
4
4
  `,(0,b.jsx)(o.p,{children:`InputImage уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-CReRlw17.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-B7DWcGCL.js";import{t as m}from"./input-Be5K9_B7.js";import{i as h,n as g,t as _}from"./file-hArYcyES.js";var v,y,b,x,S=n((()=>{v=`EV-Vji`,y=`A5-T93`,b=`V1Rhiv`,x={control:v,fileName:y,hiddenInput:b}}));function C({value:e,onChange:t,onClear:n,onReadError:r,allowedMime:i,maxBytes:o,readMode:l,label:m,description:h,placeholder:v=`Выберите изображение`,disabled:y,size:b,error:S,onClearError:C,className:E}){let D=(0,w.useRef)(null),{controlId:O,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:m!=null,hasDescription:!!h,hasError:!!S}),N=(0,w.useCallback)(e=>l===`array-buffer`?_(e,{allowedMime:i,maxBytes:o,mode:`array-buffer`}):_(e,{allowedMime:i,maxBytes:o}),[i,o,l]),P=(0,w.useMemo)(()=>i&&i.length>0?i.join(`,`):`image/*`,[i]),F=(0,w.useCallback)(async e=>{let n=e.target.files?.[0];if(n){e.target.value=``,S&&C&&C();try{t(await N(n))}catch(e){e instanceof g&&r&&r(e)}}},[N,t,r,S,C]),I=(0,w.useCallback)(()=>{D.current?.click()},[]);return(0,T.jsxs)(d,{label:m,description:h,disabled:y,className:E,size:b,error:S,controlId:O,labelId:k,descriptionId:A,errorId:j,children:[(0,T.jsx)(`input`,{ref:D,id:O,type:`file`,accept:P,disabled:y,className:x.hiddenInput,onChange:F,tabIndex:-1}),(0,T.jsx)(f,{endAdornment:n?(0,T.jsx)(u,{onClick:n,disabled:y}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:t})=>(0,T.jsx)(`div`,{role:`button`,tabIndex:y?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:y}),className:a(c.uiInputControl,x.control,t,!!S&&`invalid`),"data-disabled":y||void 0,"aria-invalid":!!S||void 0,"aria-disabled":y,"aria-labelledby":k,"aria-describedby":M,children:e?(0,T.jsx)(`span`,{className:x.fileName,children:e.meta.name}):(0,T.jsx)(`span`,{className:c.uiPlaceholder,children:v})})})]})}var w,T,E=n((()=>{w=t(r(),1),h(),o(),m(),l(),S(),T=i(),C.__docgenInfo={description:`InputImage — компонент выбора одного изображения.
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-B7W0zPTP.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-D6z--4tm.js";import{t as m}from"./input-Bfb8MLis.js";import{i as h,n as g,t as _}from"./file-hArYcyES.js";var v,y,b,x,S=n((()=>{v=`EV-Vji`,y=`A5-T93`,b=`V1Rhiv`,x={control:v,fileName:y,hiddenInput:b}}));function C({value:e,onChange:t,onClear:n,onReadError:r,allowedMime:i,maxBytes:o,readMode:l,label:m,description:h,placeholder:v=`Выберите изображение`,disabled:y,size:b,error:S,onClearError:C,className:E}){let D=(0,w.useRef)(null),{controlId:O,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:m!=null,hasDescription:!!h,hasError:!!S}),N=(0,w.useCallback)(e=>l===`array-buffer`?_(e,{allowedMime:i,maxBytes:o,mode:`array-buffer`}):_(e,{allowedMime:i,maxBytes:o}),[i,o,l]),P=(0,w.useMemo)(()=>i&&i.length>0?i.join(`,`):`image/*`,[i]),F=(0,w.useCallback)(async e=>{let n=e.target.files?.[0];if(n){e.target.value=``,S&&C&&C();try{t(await N(n))}catch(e){e instanceof g&&r&&r(e)}}},[N,t,r,S,C]),I=(0,w.useCallback)(()=>{D.current?.click()},[]);return(0,T.jsxs)(d,{label:m,description:h,disabled:y,className:E,size:b,error:S,controlId:O,labelId:k,descriptionId:A,errorId:j,children:[(0,T.jsx)(`input`,{ref:D,id:O,type:`file`,accept:P,disabled:y,className:x.hiddenInput,onChange:F,tabIndex:-1}),(0,T.jsx)(f,{endAdornment:n?(0,T.jsx)(u,{onClick:n,disabled:y}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:t})=>(0,T.jsx)(`div`,{role:`button`,tabIndex:y?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:y}),className:a(c.uiInputControl,x.control,t,!!S&&`invalid`),"data-disabled":y||void 0,"aria-invalid":!!S||void 0,"aria-disabled":y,"aria-labelledby":k,"aria-describedby":M,children:e?(0,T.jsx)(`span`,{className:x.fileName,children:e.meta.name}):(0,T.jsx)(`span`,{className:c.uiPlaceholder,children:v})})})]})}var w,T,E=n((()=>{w=t(r(),1),h(),o(),m(),l(),S(),T=i(),C.__docgenInfo={description:`InputImage — компонент выбора одного изображения.
2
2
 
3
3
  Визуально идентичен InputText. Под капотом использует readImageFile,
4
4
  который валидирует что файл — изображение и извлекает его размеры.
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Controlled as p,CustomPresets as m,Disabled as h,DisabledPresets as g,InToolbar as _,Placeholder as v,n as y,t as b}from"./LayoutPicker.stories-BjUmm2cg.js";function x(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a,{of:b,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Controlled as p,CustomPresets as m,Disabled as h,DisabledPresets as g,InToolbar as _,Placeholder as v,n as y,t as b}from"./LayoutPicker.stories-BUohHOWt.js";function x(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a,{of:b,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,C.jsx)(c,{children:`LayoutPicker`}),`
3
3
  `,(0,C.jsx)(i,{children:`Контролируемый выбор layout-пресета со схематичным превью`}),`
4
4
  `,(0,C.jsxs)(o.p,{children:[(0,C.jsx)(o.code,{children:`LayoutPicker`}),` нужен для выбора схемы размещения независимых областей: графиков, панелей, секций дашборда или другого UI, где сама раскладка хранится во внешней модели.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CReRlw17.js";import{t as s,ut as ee}from"./lucide-react-CK2oyDtF.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{T as te,b as ne,g as re,l as ie,m as ae,r as oe,t as u}from"./picker-De4ZbESe.js";function se(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function d(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var ce=n((()=>{})),f,le=n((()=>{f=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})),p=n((()=>{ce(),le()})),m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j=n((()=>{m=`_959ulH`,h=`Ch-SZL`,g=`SmdPit`,_=`giOtGs`,v=`_57Tr0T`,y=`Tkhulr`,b=`VQlniu`,x=`wb39Kf`,S=`HGvQdT`,C=`rZuYyb`,w=`vNV6Q2`,T=`_3ytPPa`,E=`koxYU-`,D=`k8xLa2`,O=`_5pd3Bb`,k=`VrHnjN`,A={valueOverlay:m,triggerInput:h,triggerText:g,popup:_,popupLayout:v,popupBody:y,options:b,option:x,optionActive:S,optionSelected:C,optionPreviewWrap:w,optionCheck:T,preview:E,previewPlaceholder:D,previewCompact:O,previewCell:k}}));function ue({preset:e,compact:t=!1}){return(0,P.jsx)(`span`,{className:a(A.preview,t&&A.previewCompact),style:se(e),"aria-hidden":`true`,children:e.cells.map(t=>(0,P.jsx)(`span`,{className:A.previewCell,style:d(t)},`${e.id}:${t.id}`))})}function M({id:e,label:t,description:n,value:r,onChange:i,presets:o=f,disabled:s,getPresetDisabled:l,placeholder:u=de,size:se,ariaLabel:d,className:ce,triggerClassName:le,popupClassName:p,placement:m=`bottom-start`}){let h=(0,N.useRef)(null),[g,_]=(0,N.useState)(!1),v=o.findIndex(e=>e.id===r),y=v>=0?o[v]:void 0,b=y??o[0],x=y?.label??u,{activeIndex:S,context:C,floatingStyles:w,getFloatingProps:T,setReference:E,setFloating:D,setOptionRef:O,close:k,openList:j,toggleOpen:M,selectOption:fe,selectActiveOption:pe,handleReferenceKeyDown:me,handleFloatingKeyDown:F,getOptionId:I,getActiveOptionId:L}=ie({options:o,selectedIndex:v,open:g,onOpenChange:_,getOptionDisabled:l,onSelect:e=>i(e.id),disabled:s,placement:m,triggerMode:`display`}),R=oe({mode:`display`,open:g,currentQuery:``,hasDisplayValue:y!==void 0,inputRef:h,openList:j,close:k,toggleOpen:M}),z=e=>{h.current=e};return(0,P.jsx)(te,{id:e,label:t,description:n,disabled:s,placeholder:u,size:se,className:ce,children:({controlId:e,labelId:t,describedBy:n})=>{let r=`${e}-listbox`;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(ae,{ref:z,rootRef:E,id:e,type:`button`,disabled:s,readOnly:!0,autoComplete:`off`,role:`combobox`,value:x,"aria-haspopup":`listbox`,"aria-expanded":g,"aria-controls":g?r:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-autocomplete":`none`,"aria-activedescendant":g?L(r):void 0,"aria-label":t?void 0:d??`Выбрать layout. Текущее значение: ${x}`,"data-ui":`layout-picker-trigger`,rootClassName:le,inputClassName:A.triggerInput,overlay:(0,P.jsxs)(`div`,{className:A.valueOverlay,children:[b?(0,P.jsx)(ue,{preset:b,compact:!0}):(0,P.jsx)(`span`,{className:A.previewPlaceholder}),(0,P.jsx)(`span`,{className:a(A.triggerText,!y&&c.uiPlaceholder),children:x})]}),endAdornment:(0,P.jsx)(re,{open:g,disabled:s,onToggleMouseDown:R.handleToggleMouseDown,onToggleClick:R.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`}),onClick:R.handleTriggerClick,onFocus:e=>{R.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{me(e),!e.defaultPrevented&&R.handleTriggerKeyDown({event:e,onActivateWhenOpen:pe,enableSpaceActivation:!0})}}),(0,P.jsx)(ne,{open:g,context:C,floatingStyles:w,listId:r,labelId:t,descriptionId:n,activeOptionId:L(r),setFloating:D,getFloatingProps:T,onKeyDown:F,className:a(c.uiPopupOptions,A.popup,p),layoutClassName:A.popupLayout,bodyClassName:A.popupBody,children:(0,P.jsx)(`div`,{className:A.options,children:o.map((e,t)=>{let n=t===v,i=t===S,o=l?.(e)??!1;return(0,P.jsxs)(`button`,{id:I(r,t),ref:e=>O(t,e),type:`button`,role:`option`,tabIndex:-1,disabled:o,"aria-selected":n,"aria-disabled":o||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:a(A.option,n&&A.optionSelected,i&&A.optionActive),"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>fe(e),children:[(0,P.jsx)(`span`,{className:A.optionPreviewWrap,children:(0,P.jsx)(ue,{preset:e})}),(0,P.jsxs)(`span`,{className:`fontSizeSm`,children:[(0,P.jsx)(`span`,{children:e.label}),e.description?(0,P.jsx)(`span`,{children:e.description}):null]}),(0,P.jsx)(`span`,{className:A.optionCheck,"aria-hidden":`true`,children:n?(0,P.jsx)(ee,{}):null})]},e.id)})})})]})}})}var N,P,de,fe=n((()=>{N=t(r(),1),o(),s(),u(),l(),p(),j(),P=i(),de=`Выберите раскладку`,M.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-B7W0zPTP.js";import{t as s,ut as ee}from"./lucide-react-Cw6QPvVA.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{T as te,b as ne,g as re,l as ie,m as ae,r as oe,t as u}from"./picker-DBhG__oJ.js";function se(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function d(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var ce=n((()=>{})),f,le=n((()=>{f=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})),p=n((()=>{ce(),le()})),m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j=n((()=>{m=`_959ulH`,h=`Ch-SZL`,g=`SmdPit`,_=`giOtGs`,v=`_57Tr0T`,y=`Tkhulr`,b=`VQlniu`,x=`wb39Kf`,S=`HGvQdT`,C=`rZuYyb`,w=`vNV6Q2`,T=`_3ytPPa`,E=`koxYU-`,D=`k8xLa2`,O=`_5pd3Bb`,k=`VrHnjN`,A={valueOverlay:m,triggerInput:h,triggerText:g,popup:_,popupLayout:v,popupBody:y,options:b,option:x,optionActive:S,optionSelected:C,optionPreviewWrap:w,optionCheck:T,preview:E,previewPlaceholder:D,previewCompact:O,previewCell:k}}));function ue({preset:e,compact:t=!1}){return(0,P.jsx)(`span`,{className:a(A.preview,t&&A.previewCompact),style:se(e),"aria-hidden":`true`,children:e.cells.map(t=>(0,P.jsx)(`span`,{className:A.previewCell,style:d(t)},`${e.id}:${t.id}`))})}function M({id:e,label:t,description:n,value:r,onChange:i,presets:o=f,disabled:s,getPresetDisabled:l,placeholder:u=de,size:se,ariaLabel:d,className:ce,triggerClassName:le,popupClassName:p,placement:m=`bottom-start`}){let h=(0,N.useRef)(null),[g,_]=(0,N.useState)(!1),v=o.findIndex(e=>e.id===r),y=v>=0?o[v]:void 0,b=y??o[0],x=y?.label??u,{activeIndex:S,context:C,floatingStyles:w,getFloatingProps:T,setReference:E,setFloating:D,setOptionRef:O,close:k,openList:j,toggleOpen:M,selectOption:fe,selectActiveOption:pe,handleReferenceKeyDown:me,handleFloatingKeyDown:F,getOptionId:I,getActiveOptionId:L}=ie({options:o,selectedIndex:v,open:g,onOpenChange:_,getOptionDisabled:l,onSelect:e=>i(e.id),disabled:s,placement:m,triggerMode:`display`}),R=oe({mode:`display`,open:g,currentQuery:``,hasDisplayValue:y!==void 0,inputRef:h,openList:j,close:k,toggleOpen:M}),z=e=>{h.current=e};return(0,P.jsx)(te,{id:e,label:t,description:n,disabled:s,placeholder:u,size:se,className:ce,children:({controlId:e,labelId:t,describedBy:n})=>{let r=`${e}-listbox`;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(ae,{ref:z,rootRef:E,id:e,type:`button`,disabled:s,readOnly:!0,autoComplete:`off`,role:`combobox`,value:x,"aria-haspopup":`listbox`,"aria-expanded":g,"aria-controls":g?r:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-autocomplete":`none`,"aria-activedescendant":g?L(r):void 0,"aria-label":t?void 0:d??`Выбрать layout. Текущее значение: ${x}`,"data-ui":`layout-picker-trigger`,rootClassName:le,inputClassName:A.triggerInput,overlay:(0,P.jsxs)(`div`,{className:A.valueOverlay,children:[b?(0,P.jsx)(ue,{preset:b,compact:!0}):(0,P.jsx)(`span`,{className:A.previewPlaceholder}),(0,P.jsx)(`span`,{className:a(A.triggerText,!y&&c.uiPlaceholder),children:x})]}),endAdornment:(0,P.jsx)(re,{open:g,disabled:s,onToggleMouseDown:R.handleToggleMouseDown,onToggleClick:R.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`}),onClick:R.handleTriggerClick,onFocus:e=>{R.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{me(e),!e.defaultPrevented&&R.handleTriggerKeyDown({event:e,onActivateWhenOpen:pe,enableSpaceActivation:!0})}}),(0,P.jsx)(ne,{open:g,context:C,floatingStyles:w,listId:r,labelId:t,descriptionId:n,activeOptionId:L(r),setFloating:D,getFloatingProps:T,onKeyDown:F,className:a(c.uiPopupOptions,A.popup,p),layoutClassName:A.popupLayout,bodyClassName:A.popupBody,children:(0,P.jsx)(`div`,{className:A.options,children:o.map((e,t)=>{let n=t===v,i=t===S,o=l?.(e)??!1;return(0,P.jsxs)(`button`,{id:I(r,t),ref:e=>O(t,e),type:`button`,role:`option`,tabIndex:-1,disabled:o,"aria-selected":n,"aria-disabled":o||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:a(A.option,n&&A.optionSelected,i&&A.optionActive),"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>fe(e),children:[(0,P.jsx)(`span`,{className:A.optionPreviewWrap,children:(0,P.jsx)(ue,{preset:e})}),(0,P.jsxs)(`span`,{className:`fontSizeSm`,children:[(0,P.jsx)(`span`,{children:e.label}),e.description?(0,P.jsx)(`span`,{children:e.description}):null]}),(0,P.jsx)(`span`,{className:A.optionCheck,"aria-hidden":`true`,children:n?(0,P.jsx)(ee,{}):null})]},e.id)})})})]})}})}var N,P,de,fe=n((()=>{N=t(r(),1),o(),s(),u(),l(),p(),j(),P=i(),de=`Выберите раскладку`,M.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
2
2
  {
3
3
  id: "1x1",
4
4
  label: "1x1",
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{CustomRender as p,MultiSelect as m,SingleSelect as h,n as g,t as _}from"./Listbox.stories-Cf_ApbmT.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{CustomRender as p,MultiSelect as m,SingleSelect as h,n as g,t as _}from"./Listbox.stories-c1NSeGUa.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(c,{children:`Listbox`}),`
3
3
  `,(0,b.jsx)(i,{children:`Список выбора для single- и multi-select сценариев с кастомным рендером элементов`}),`
4
4
  `,(0,b.jsx)(o.p,{children:`Listbox уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s,r as c,s as l,t as u}from"./utils-CReRlw17.js";import{t as d,ut as f}from"./lucide-react-CK2oyDtF.js";import{n as p,t as m}from"./ui.module-DS2qtZts.js";function h(e,t,n){if(n){if(Array.isArray(t)&&t.length>0){let n=e.findIndex(e=>t.includes(e.value)&&!e.disabled);if(n>=0)return n}return c(e,y)}if(t!==void 0){let n=e.findIndex(e=>e.value===t&&!e.disabled);if(n>=0)return n}return c(e,y)}function g(e){let{value:t,defaultValue:n,multiple:r,focusOnMount:i,renderItem:o,getKey:d,options:m,onChange:g,id:b,...x}=e,S=t!==void 0,C=(0,_.useId)(),w=b??`${C}-listbox`,[T,E]=(0,_.useState)(n),D=(0,_.useRef)(null),[O,k]=(0,_.useState)(()=>h(m,t??n,r)),A=(0,_.useMemo)(()=>(S?t:T)??(r?[]:null),[T,S,r,t]),j=O,M=t=>{if(t.disabled)return;let n;if(e.multiple){let r=Array.isArray(A)?A:[];n=r.includes(t.value)?r.filter(e=>e!==t.value):[...r,t.value],e.onChange?.(n,t)}else n=t.value,e.onChange?.(n,t);S||E(n)};return(0,_.useEffect)(()=>{let e=D.current?.querySelectorAll(`[role="option"]`)[j];e&&e.scrollIntoView({block:`nearest`})},[j]),(0,_.useLayoutEffect)(()=>{i&&D.current?.focus()},[i]),(0,v.jsx)(`ul`,{ref:D,id:w,role:`listbox`,"aria-multiselectable":r||void 0,"aria-activedescendant":j>=0?`${w}-option-${j}`:void 0,tabIndex:0,onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),k(e=>u(m,e,1,y));else if(e.key===`ArrowUp`)e.preventDefault(),k(e=>u(m,e,-1,y));else if(e.key===`Home`)e.preventDefault(),k(c(m,y));else if(e.key===`End`)e.preventDefault(),k(l(m,y));else if(s(e,()=>{let e=m[j];e&&M(e)}))return},...x,className:a(p.uiPanel,`scrollable`),children:m.map((e,t)=>{let n=r?Array.isArray(A)&&A.includes(e.value):A===e.value,i=t===j;return(0,v.jsxs)(`li`,{id:`${w}-option-${t}`,role:`option`,"aria-selected":n,"aria-disabled":e.disabled||void 0,onMouseDown:n=>{n.preventDefault(),!e.disabled&&(k(t),M(e))},tabIndex:-1,className:a(p.uiPopupOption,e.disabled&&p.disabled,i&&p.uiPopupOptionActive,n&&p.selected),children:[n?(0,v.jsx)(f,{className:p.uiPopupOptionIcon}):(0,v.jsx)(`span`,{className:p.uiPopupOptionIcon}),(0,v.jsx)(`div`,{children:o?o(e,n,i):e.label??String(e.value)})]},d?d(e,t):t)})})}var _,v,y,b=n((()=>{_=t(r(),1),o(),d(),m(),v=i(),y=e=>e.disabled===!0,g.__docgenInfo={description:``,methods:[],displayName:`Listbox`}})),x=e({CustomRender:()=>O,MultiSelect:()=>D,SingleSelect:()=>E,__namedExportsOrder:()=>k,default:()=>T});function S(e){return e.multiple?(0,w.jsx)(g,{...e,multiple:!0}):(0,w.jsx)(g,{...e})}var C,w,T,E,D,O,k,A=n((()=>{C=t(r(),1),b(),w=i(),T={title:`Shared/UI/Listbox`,component:S,args:{options:[{id:`low`,label:`Низкий`},{id:`medium`,label:`Средний`},{id:`high`,label:`Высокий`},{id:`critical`,label:`Критический`,disabled:!0}],multiple:!1,value:`medium`,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{options:{description:`Массив доступных опций списка.`,control:!1},multiple:{description:`Режим множественного выбора.`,control:`boolean`},value:{description:`Текущее выбранное значение (или массив значений).`,control:!1},defaultValue:{description:`Начальное значение для uncontrolled-режима.`,control:!1},onChange:{description:`Вызывается при выборе опции.`,control:!1},focusOnMount:{description:`Автофокус списка при монтировании.`,control:`boolean`},renderItem:{description:`Кастомный рендер строки списка.`,control:!1},getKey:{description:`Функция генерации ключа для опции.`,control:!1},className:{description:`Дополнительный CSS-класс.`,control:`text`}}},E={render:e=>{let[t,n]=(0,C.useState)(`medium`);return(0,w.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:280},children:[(0,w.jsx)(S,{...e,multiple:!1,value:t,onChange:e=>{typeof e==`string`&&n(e)}}),(0,w.jsxs)(`div`,{children:[`Выбрано: `,t]})]})}},D={render:e=>{let[t,n]=(0,C.useState)([`low`,`high`]);return(0,w.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:320},children:[(0,w.jsx)(S,{...e,multiple:!0,value:t,onChange:e=>{Array.isArray(e)&&n(e)}}),(0,w.jsxs)(`div`,{children:[`Выбрано: `,t.join(`, `)||`пусто`]})]})},args:{multiple:!0}},O={render:e=>{let[t,n]=(0,C.useState)(`low`);return(0,w.jsx)(S,{...e,value:t,onChange:e=>{typeof e==`string`&&n(e)},renderItem:(e,t,n)=>(0,w.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,width:`100%`,opacity:e.disabled?.5:1},children:[(0,w.jsx)(`span`,{children:e.label}),(0,w.jsx)(`span`,{children:t?`Выбрано`:n?`Фокус`:``})]})})}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s,r as c,s as l,t as u}from"./utils-B7W0zPTP.js";import{t as d,ut as f}from"./lucide-react-Cw6QPvVA.js";import{n as p,t as m}from"./ui.module-DS2qtZts.js";function h(e,t,n){if(n){if(Array.isArray(t)&&t.length>0){let n=e.findIndex(e=>t.includes(e.value)&&!e.disabled);if(n>=0)return n}return c(e,y)}if(t!==void 0){let n=e.findIndex(e=>e.value===t&&!e.disabled);if(n>=0)return n}return c(e,y)}function g(e){let{value:t,defaultValue:n,multiple:r,focusOnMount:i,renderItem:o,getKey:d,options:m,onChange:g,id:b,...x}=e,S=t!==void 0,C=(0,_.useId)(),w=b??`${C}-listbox`,[T,E]=(0,_.useState)(n),D=(0,_.useRef)(null),[O,k]=(0,_.useState)(()=>h(m,t??n,r)),A=(0,_.useMemo)(()=>(S?t:T)??(r?[]:null),[T,S,r,t]),j=O,M=t=>{if(t.disabled)return;let n;if(e.multiple){let r=Array.isArray(A)?A:[];n=r.includes(t.value)?r.filter(e=>e!==t.value):[...r,t.value],e.onChange?.(n,t)}else n=t.value,e.onChange?.(n,t);S||E(n)};return(0,_.useEffect)(()=>{let e=D.current?.querySelectorAll(`[role="option"]`)[j];e&&e.scrollIntoView({block:`nearest`})},[j]),(0,_.useLayoutEffect)(()=>{i&&D.current?.focus()},[i]),(0,v.jsx)(`ul`,{ref:D,id:w,role:`listbox`,"aria-multiselectable":r||void 0,"aria-activedescendant":j>=0?`${w}-option-${j}`:void 0,tabIndex:0,onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),k(e=>u(m,e,1,y));else if(e.key===`ArrowUp`)e.preventDefault(),k(e=>u(m,e,-1,y));else if(e.key===`Home`)e.preventDefault(),k(c(m,y));else if(e.key===`End`)e.preventDefault(),k(l(m,y));else if(s(e,()=>{let e=m[j];e&&M(e)}))return},...x,className:a(p.uiPanel,`scrollable`),children:m.map((e,t)=>{let n=r?Array.isArray(A)&&A.includes(e.value):A===e.value,i=t===j;return(0,v.jsxs)(`li`,{id:`${w}-option-${t}`,role:`option`,"aria-selected":n,"aria-disabled":e.disabled||void 0,onMouseDown:n=>{n.preventDefault(),!e.disabled&&(k(t),M(e))},tabIndex:-1,className:a(p.uiPopupOption,e.disabled&&p.disabled,i&&p.uiPopupOptionActive,n&&p.selected),children:[n?(0,v.jsx)(f,{className:p.uiPopupOptionIcon}):(0,v.jsx)(`span`,{className:p.uiPopupOptionIcon}),(0,v.jsx)(`div`,{children:o?o(e,n,i):e.label??String(e.value)})]},d?d(e,t):t)})})}var _,v,y,b=n((()=>{_=t(r(),1),o(),d(),m(),v=i(),y=e=>e.disabled===!0,g.__docgenInfo={description:``,methods:[],displayName:`Listbox`}})),x=e({CustomRender:()=>O,MultiSelect:()=>D,SingleSelect:()=>E,__namedExportsOrder:()=>k,default:()=>T});function S(e){return e.multiple?(0,w.jsx)(g,{...e,multiple:!0}):(0,w.jsx)(g,{...e})}var C,w,T,E,D,O,k,A=n((()=>{C=t(r(),1),b(),w=i(),T={title:`Shared/UI/Listbox`,component:S,args:{options:[{id:`low`,label:`Низкий`},{id:`medium`,label:`Средний`},{id:`high`,label:`Высокий`},{id:`critical`,label:`Критический`,disabled:!0}],multiple:!1,value:`medium`,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{options:{description:`Массив доступных опций списка.`,control:!1},multiple:{description:`Режим множественного выбора.`,control:`boolean`},value:{description:`Текущее выбранное значение (или массив значений).`,control:!1},defaultValue:{description:`Начальное значение для uncontrolled-режима.`,control:!1},onChange:{description:`Вызывается при выборе опции.`,control:!1},focusOnMount:{description:`Автофокус списка при монтировании.`,control:`boolean`},renderItem:{description:`Кастомный рендер строки списка.`,control:!1},getKey:{description:`Функция генерации ключа для опции.`,control:!1},className:{description:`Дополнительный CSS-класс.`,control:`text`}}},E={render:e=>{let[t,n]=(0,C.useState)(`medium`);return(0,w.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:280},children:[(0,w.jsx)(S,{...e,multiple:!1,value:t,onChange:e=>{typeof e==`string`&&n(e)}}),(0,w.jsxs)(`div`,{children:[`Выбрано: `,t]})]})}},D={render:e=>{let[t,n]=(0,C.useState)([`low`,`high`]);return(0,w.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:320},children:[(0,w.jsx)(S,{...e,multiple:!0,value:t,onChange:e=>{Array.isArray(e)&&n(e)}}),(0,w.jsxs)(`div`,{children:[`Выбрано: `,t.join(`, `)||`пусто`]})]})},args:{multiple:!0}},O={render:e=>{let[t,n]=(0,C.useState)(`low`);return(0,w.jsx)(S,{...e,value:t,onChange:e=>{typeof e==`string`&&n(e)},renderItem:(e,t,n)=>(0,w.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,width:`100%`,opacity:e.disabled?.5:1},children:[(0,w.jsx)(`span`,{children:e.label}),(0,w.jsx)(`span`,{children:t?`Выбрано`:n?`Фокус`:``})]})})}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
2
2
  render: args => {
3
3
  const [value, setValue] = useState<string>("medium");
4
4
  return <div style={{
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Controlled as p,ScrollableContent as m,Sizes as h,StackedModals as g,WithToolbarAndFooter as _,n as v,t as y}from"./Modal.stories-cPIHRa9a.js";function b(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(a,{of:y,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Controlled as p,ScrollableContent as m,Sizes as h,StackedModals as g,WithToolbarAndFooter as _,n as v,t as y}from"./Modal.stories-CZum1nVD.js";function b(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(a,{of:y,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(c,{children:`Modal`}),`
3
3
  `,(0,S.jsx)(i,{children:`Составная модалка с контентом, toolbar и footer для пользовательских диалоговых сценариев`}),`
4
4
  `,(0,S.jsx)(o.p,{children:`Modal уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.