@ryuzaki13/react-foundation-ui 1.8.18 → 1.8.20

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 (298) hide show
  1. package/dist/picker/model/usePickerFloatingListbox.d.ts +1 -1
  2. package/package.json +3 -3
  3. package/storybook-static/assets/{Badge-BIHyYCo7.js → Badge-CtgCgcrE.js} +6 -6
  4. package/storybook-static/assets/{Badge.stories-DLTrI-x_.js → Badge.stories-Bde8GdpE.js} +1 -1
  5. package/storybook-static/assets/{BadgeList-CDdRxEFa.js → BadgeList-B354PiFh.js} +1 -1
  6. package/storybook-static/assets/{Button-Clgno5I9.js → Button-BC1vJeBh.js} +6 -6
  7. package/storybook-static/assets/{Button-XTBI9blK.js → Button-DdWXdL9L.js} +1 -1
  8. package/storybook-static/assets/{Button.stories-B-0_zqxk.js → Button.stories-CvsBKXsv.js} +1 -1
  9. package/storybook-static/assets/{CalendarView-5yfJ6Sx-.js → CalendarView-CJkJU4EC.js} +1 -1
  10. package/storybook-static/assets/{CheckBox-DZh7cCZZ.js → CheckBox-BaKD1lsb.js} +2 -2
  11. package/storybook-static/assets/{CheckBox-BNpn-ZBB.js → CheckBox-DlCG7Opb.js} +1 -1
  12. package/storybook-static/assets/{CheckBox.stories--dSzC2Mf.js → CheckBox.stories-noW5T-OA.js} +1 -1
  13. package/storybook-static/assets/Color-6AOWCN3U-DVSJ6tQm.js +1 -0
  14. package/storybook-static/assets/{ContextMenu-CTrTO0H7.js → ContextMenu-D79bky7p.js} +1 -1
  15. package/storybook-static/assets/{ContextMenu-24LNOr91.js → ContextMenu-DL12BLWo.js} +2 -2
  16. package/storybook-static/assets/{ContextMenu.stories-Cbq6B29u.js → ContextMenu.stories-BwyqG2jc.js} +1 -1
  17. package/storybook-static/assets/{CustomOptionButton-BHA-6inc.js → CustomOptionButton-oTNty8hW.js} +1 -1
  18. package/storybook-static/assets/{DateInput-Ceqy8_hm.js → DateInput-X20d2Q59.js} +1 -1
  19. package/storybook-static/assets/{DateInput-Bmwgwx_r.js → DateInput-YyZk0Ov_.js} +2 -2
  20. package/storybook-static/assets/{DateInput.stories-C0oDEW0V.js → DateInput.stories-DQoF9ZwI.js} +1 -1
  21. package/storybook-static/assets/{DateRangePresetSelect-EUO5ju87.js → DateRangePresetSelect-BauBnnPB.js} +1 -1
  22. package/storybook-static/assets/{DateRangePresetSelect-DrbWZdO7.js → DateRangePresetSelect-C-AvOpuX.js} +2 -2
  23. package/storybook-static/assets/DateRangePresetSelect.stories-XvgjFAh7.js +19 -0
  24. package/storybook-static/assets/{Detail-BdMA8W8a.js → Detail-BpXehD7_.js} +2 -2
  25. package/storybook-static/assets/{Detail.stories-kYjF0OE8.js → Detail.stories-BQWhtlp0.js} +1 -1
  26. package/storybook-static/assets/{Dialog-DGlxegJa.js → Dialog-D3hJTgwE.js} +2 -2
  27. package/storybook-static/assets/{Dialog-B__C03-Z.js → Dialog-DODbPv79.js} +1 -1
  28. package/storybook-static/assets/Dialog.stories-DcgpUIUP.js +22 -0
  29. package/storybook-static/assets/{Disclosure-BXUWkiag.js → Disclosure-5UdBgIbZ.js} +2 -2
  30. package/storybook-static/assets/Disclosure.stories-IYljEE4h.js +23 -0
  31. package/storybook-static/assets/{DisclosureGroup-C57FHp13.js → DisclosureGroup-Bbseg3US.js} +1 -1
  32. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CiLWX8JT.js → DocsRenderer-JROSPFPF-CADpK3Xb.js} +1 -1
  33. package/storybook-static/assets/{DropZone-BPOCc8un.js → DropZone-BKncWUns.js} +2 -2
  34. package/storybook-static/assets/{DropZone-DCGBDcam.js → DropZone-CI5qAgz5.js} +1 -1
  35. package/storybook-static/assets/DropZone.stories-CmLlcGx0.js +26 -0
  36. package/storybook-static/assets/{DropdownMenu-DDHBuZt5.js → DropdownMenu-K7NYW8LX.js} +1 -1
  37. package/storybook-static/assets/{ExpandableActionPanel-mmlDn8ts.js → ExpandableActionPanel-DSHE6wTG.js} +1 -1
  38. package/storybook-static/assets/ExpandableActionPanel.stories-BN_qe4FR.js +9 -0
  39. package/storybook-static/assets/{Flex-DHMDn1uW.js → Flex-BP4dH1EM.js} +2 -2
  40. package/storybook-static/assets/{Flex.stories-BgYOys3T.js → Flex.stories-CG6MjVWv.js} +1 -1
  41. package/storybook-static/assets/{FloatingPopover-BL_nJJrL.js → FloatingPopover-CbuI645U.js} +1 -1
  42. package/storybook-static/assets/{FormattedTableCell-Od6SSoxO.js → FormattedTableCell-SiBfPwwP.js} +1 -1
  43. package/storybook-static/assets/{Grid-CS-mSNKX.js → Grid-CcYtG8qC.js} +2 -2
  44. package/storybook-static/assets/{Grid.stories-DWCKacQB.js → Grid.stories-D8AkQcoe.js} +1 -1
  45. package/storybook-static/assets/ImageCropper.stories-DgYml-BE.js +131 -0
  46. package/storybook-static/assets/{ImageRenderer-jDryL3Z9.js → ImageRenderer-DdnnseXq.js} +1 -1
  47. package/storybook-static/assets/ImageRenderer.stories-BN4QxhBf.js +34 -0
  48. package/storybook-static/assets/ImageView.stories-2LMwV4qh.js +14 -0
  49. package/storybook-static/assets/{ImageViewer.stories-CKUiWvv7.js → ImageViewer.stories-D6BcidoN.js} +3 -3
  50. package/storybook-static/assets/{ImageViewerRuntime-DUjkq3km.js → ImageViewerRuntime-DVUlXl_G.js} +1 -1
  51. package/storybook-static/assets/{Input-Q95tdikw.js → Input-Bb5uuJsd.js} +1 -1
  52. package/storybook-static/assets/{Input-C5eMHeOp.js → Input-CWQgYEr9.js} +2 -2
  53. package/storybook-static/assets/Input.stories-B0SSM1T_.js +52 -0
  54. package/storybook-static/assets/{InputDateTime-D8iFVC4N.js → InputDateTime-EefPx2jA.js} +2 -2
  55. package/storybook-static/assets/InputDateTime.stories-B71jcVWG.js +30 -0
  56. package/storybook-static/assets/{InputFile-CEMWMZ8W.js → InputFile-BqoeOsqC.js} +1 -1
  57. package/storybook-static/assets/{InputFile-CVgdFBc9.js → InputFile-CktSGEBF.js} +2 -2
  58. package/storybook-static/assets/InputFile.stories-Ce3mDoRs.js +27 -0
  59. package/storybook-static/assets/{InputFiles-AtxulUya.js → InputFiles-B5O1fLjO.js} +1 -1
  60. package/storybook-static/assets/{InputFiles-BWh55c4D.js → InputFiles-RrvJwhF3.js} +2 -2
  61. package/storybook-static/assets/InputFiles.stories-BwWItttY.js +26 -0
  62. package/storybook-static/assets/{InputFilesList-Dx0Dhms2.js → InputFilesList-DStssgki.js} +1 -1
  63. package/storybook-static/assets/{InputImage-wBNZRvrJ.js → InputImage-CPGNaW07.js} +2 -2
  64. package/storybook-static/assets/{InputImage-DKCC82SZ.js → InputImage-CvuIiNq_.js} +1 -1
  65. package/storybook-static/assets/InputImage.stories-CCG2g2Io.js +56 -0
  66. package/storybook-static/assets/{InteractiveComponents-CHTFQ4qL.js → InteractiveComponents-BgsmaSTZ.js} +1 -1
  67. package/storybook-static/assets/{InteractiveComponents.stories-DJxkbHUR.js → InteractiveComponents.stories-BwtQ8dqK.js} +1 -1
  68. package/storybook-static/assets/{LayoutPicker-Dv5O_Hy0.js → LayoutPicker-DRtnMCPh.js} +1 -1
  69. package/storybook-static/assets/{LayoutPicker-D887Y2XB.js → LayoutPicker-DsGelRcW.js} +3 -3
  70. package/storybook-static/assets/{LayoutPicker.stories-DbN3i5QL.js → LayoutPicker.stories-BWnRDODR.js} +1 -1
  71. package/storybook-static/assets/{Listbox-Cnzu7mYT.js → Listbox-DOUFsbK8.js} +2 -2
  72. package/storybook-static/assets/{Listbox-C4dx1h82.js → Listbox-IR21PF4n.js} +1 -1
  73. package/storybook-static/assets/{Listbox.stories-BO1Df9Mq.js → Listbox.stories-qC0AcRTK.js} +1 -1
  74. package/storybook-static/assets/{Modal-CMacWyay.js → Modal-D8Il31Wx.js} +3 -3
  75. package/storybook-static/assets/{Modal.stories-DMrYaonL.js → Modal.stories-Vb_wvC7j.js} +1 -1
  76. package/storybook-static/assets/{ModalManagerProvider-NbdotfpM.js → ModalManagerProvider-DW29PIGA.js} +1 -1
  77. package/storybook-static/assets/{MultiSelect-DEPuEcGb.js → MultiSelect-BTXEzEbr.js} +2 -2
  78. package/storybook-static/assets/{MultiSelect-N4vTBX-X.js → MultiSelect-Bi7awY_l.js} +1 -1
  79. package/storybook-static/assets/MultiSelect.stories-BHm7nyE0.js +55 -0
  80. package/storybook-static/assets/{NoData-BdrsNRw1.js → NoData-D2fqJN8_.js} +1 -1
  81. package/storybook-static/assets/{NotificationsHost-BmcIZZNC.js → NotificationsHost-CB4Caorz.js} +3 -3
  82. package/storybook-static/assets/NotificationsHost.stories-ClREN7GD.js +29 -0
  83. package/storybook-static/assets/{ODataMultiSelect-DVVDe1Yr.js → ODataMultiSelect-DVqtuVtf.js} +2 -2
  84. package/storybook-static/assets/{ODataMultiSelect.stories-DQDXXq_9.js → ODataMultiSelect.stories-BXspOSkv.js} +2 -2
  85. package/storybook-static/assets/{ODataSelect-B88g3t3l.js → ODataSelect-ODT2BTTx.js} +2 -2
  86. package/storybook-static/assets/{ODataSelect.stories-BPWp8xtb.js → ODataSelect.stories-Czh9ONwP.js} +2 -2
  87. package/storybook-static/assets/{ODataTreeMultiSelect-DN0hWqto.js → ODataTreeMultiSelect-D2CfiHud.js} +1 -1
  88. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BDDEO9n2.js → ODataTreeMultiSelect.stories-C5CcMnCO.js} +2 -2
  89. package/storybook-static/assets/{ODataTreeSelect-BpuPkpt_.js → ODataTreeSelect-CtXGcTu6.js} +1 -1
  90. package/storybook-static/assets/{ODataTreeSelect.stories-Rgosfapi.js → ODataTreeSelect.stories-D9C0TW7E.js} +2 -2
  91. package/storybook-static/assets/{OneStepScroller-B8wmmQwf.js → OneStepScroller-DvNxIB4z.js} +1 -1
  92. package/storybook-static/assets/{Option-Bdu68XEe.js → Option-EvZAvPlO.js} +1 -1
  93. package/storybook-static/assets/{OptionButton-D0afktaf.js → OptionButton-ClHPJWSS.js} +1 -1
  94. package/storybook-static/assets/{PeriodSelect-D_NZ5ghQ.js → PeriodSelect-Cj4KFbL8.js} +1 -1
  95. package/storybook-static/assets/{PeriodSelect-C7DVNvsY.js → PeriodSelect-CopVqvke.js} +1 -1
  96. package/storybook-static/assets/PeriodSelect.stories-CdPRC5lO.js +50 -0
  97. package/storybook-static/assets/{PickerTriggerActions-ZNVb9eeZ.js → PickerTriggerActions-CChnIvDY.js} +1 -1
  98. package/storybook-static/assets/{Popover-CCGDNoKF.js → Popover-D84worS4.js} +2 -2
  99. package/storybook-static/assets/{Popover-CewYrQZr.js → Popover-GCefn4ZK.js} +1 -1
  100. package/storybook-static/assets/{Popover.stories-COIDcy4l.js → Popover.stories-Km8RZinG.js} +1 -1
  101. package/storybook-static/assets/{PresetRangeDateInput-DroAaDSa.js → PresetRangeDateInput-CKkA7evU.js} +2 -2
  102. package/storybook-static/assets/{PresetRangeDateInput-DclYoHcQ.js → PresetRangeDateInput-D8Nd8OKM.js} +1 -1
  103. package/storybook-static/assets/PresetRangeDateInput.stories-mEsDYDGg.js +3 -0
  104. package/storybook-static/assets/{PresetSelect-DCGdwz-H.js → PresetSelect-Bm-UK37m.js} +1 -1
  105. package/storybook-static/assets/{README-TpwnHOuM.js → README-9g3GgWWF.js} +4 -8
  106. package/storybook-static/assets/{README-CVydkudU.js → README-AVujzV-Q.js} +4 -8
  107. package/storybook-static/assets/{README-Bemrp1iw.js → README-B2M46KR7.js} +12 -12
  108. package/storybook-static/assets/{README-B5TiIjbQ.js → README-B2OZG04f.js} +1 -1
  109. package/storybook-static/assets/{README-Brb_uBB0.js → README-BAsxlcAX.js} +2 -2
  110. package/storybook-static/assets/{README-DWrWXc67.js → README-BPyrojLC.js} +3 -3
  111. package/storybook-static/assets/{README-Dq6K08x4.js → README-BQw3k-Ra.js} +4 -4
  112. package/storybook-static/assets/{README-BBDVhq-F.js → README-BYe60A3Z.js} +3 -3
  113. package/storybook-static/assets/{README-eKZfcYEw.js → README-BZOXtBHM.js} +1 -1
  114. package/storybook-static/assets/{README-C0tHxk9e.js → README-Bn52nDUU.js} +1 -1
  115. package/storybook-static/assets/{README-C6mK2jiz.js → README-Btc8dTTa.js} +1 -1
  116. package/storybook-static/assets/{README-CDO4U2L-.js → README-Bu8NSN83.js} +1 -1
  117. package/storybook-static/assets/{README-B8PHFNI6.js → README-ByU9WtnE.js} +1 -1
  118. package/storybook-static/assets/{README-B0LFAdG7.js → README-C-HfyZj6.js} +4 -8
  119. package/storybook-static/assets/{README-Cv6X1gyB.js → README-C19FjXEc.js} +6 -9
  120. package/storybook-static/assets/{README-BLXxOqWU.js → README-C3ootpC3.js} +5 -5
  121. package/storybook-static/assets/{README-CRdPVRby.js → README-C65NMR4N.js} +1 -1
  122. package/storybook-static/assets/{README-DXgQjmDb.js → README-C7uZcWP5.js} +1 -5
  123. package/storybook-static/assets/{README-CMRfMvBh.js → README-C9g6HTtO.js} +4 -4
  124. package/storybook-static/assets/{README-C9V17f1i.js → README-CGtXxNWL.js} +14 -14
  125. package/storybook-static/assets/{README-DQ3UG1-2.js → README-CJIysyPl.js} +1 -1
  126. package/storybook-static/assets/{README-Bq8Gw9ut.js → README-CU0nO91c.js} +3 -3
  127. package/storybook-static/assets/{README-HKNlRLs4.js → README-CV043M5l.js} +3 -3
  128. package/storybook-static/assets/{README-MUkRRO8C.js → README-CeVilD38.js} +1 -1
  129. package/storybook-static/assets/{README-DXAnOakM.js → README-Ch_Q8rfx.js} +3 -6
  130. package/storybook-static/assets/{README-BZh0P4dJ.js → README-CpJrFpd-.js} +1 -4
  131. package/storybook-static/assets/{README-CbQE6RqS.js → README-CzVaDwCa.js} +1 -1
  132. package/storybook-static/assets/{README-BnvGfIB_.js → README-D3ahQzwF.js} +1 -1
  133. package/storybook-static/assets/{README-DK77wEHj.js → README-DBedFn2k.js} +1 -1
  134. package/storybook-static/assets/{README-UY3fsLu_.js → README-DBgowiDe.js} +3 -5
  135. package/storybook-static/assets/{README-Gw_kdXei.js → README-DEZR-nsP.js} +4 -8
  136. package/storybook-static/assets/{README-CGv6MRmX.js → README-DIz7GaJX.js} +4 -4
  137. package/storybook-static/assets/{README-jnMsm42G.js → README-DOwtu6P8.js} +1 -1
  138. package/storybook-static/assets/{README-BQng9oML.js → README-DRlbzNwm.js} +4 -8
  139. package/storybook-static/assets/{README-BaupBcvr.js → README-DS9gKK_l.js} +1 -1
  140. package/storybook-static/assets/{README-B6bmU7Tq.js → README-DTM6S2tD.js} +3 -3
  141. package/storybook-static/assets/{README-CG7cgejD.js → README-DazyZywt.js} +4 -8
  142. package/storybook-static/assets/{README-BoojQHna.js → README-DgVBKXxO.js} +1 -1
  143. package/storybook-static/assets/{README-j6FF9vf5.js → README-Dga9VBXp.js} +9 -12
  144. package/storybook-static/assets/{README-CIS29z6p.js → README-DsG_VYny.js} +1 -1
  145. package/storybook-static/assets/{README-BqBKX_xQ.js → README-DsTcywLt.js} +4 -7
  146. package/storybook-static/assets/{README-BTM8wY-Q.js → README-Du_uNuzw.js} +3 -7
  147. package/storybook-static/assets/{README-B4FGWSHR.js → README-Dwu0rBCx.js} +4 -4
  148. package/storybook-static/assets/{README-BDEEI-me.js → README-EfW0h3H2.js} +5 -8
  149. package/storybook-static/assets/{README-SM_eIjlq.js → README-GPrnGZGg.js} +4 -4
  150. package/storybook-static/assets/{README-BqpsuZii.js → README-I-J1PF75.js} +3 -3
  151. package/storybook-static/assets/{README-j4oj7GSR.js → README-cHwz_DGu.js} +1 -1
  152. package/storybook-static/assets/{README-B2pks9-S.js → README-efyzb9zY.js} +1 -1
  153. package/storybook-static/assets/{README-DK-nosD8.js → README-foisdU5e.js} +1 -1
  154. package/storybook-static/assets/{README-QnKC46FO.js → README-na4Tvba4.js} +5 -9
  155. package/storybook-static/assets/{README-DFDO19TR.js → README-oFnWsuXd.js} +4 -4
  156. package/storybook-static/assets/{README-Db-VD9A-.js → README-pdJ6FjLG.js} +1 -1
  157. package/storybook-static/assets/{RadioButton-CN-1Bmu-.js → RadioButton-CFIAc4xz.js} +1 -1
  158. package/storybook-static/assets/{RadioButton-CioheQT6.js → RadioButton-Dk52KGyn.js} +2 -2
  159. package/storybook-static/assets/RadioButton.stories-B10De9DU.js +32 -0
  160. package/storybook-static/assets/{RadioGroup-CTZXoIcq.js → RadioGroup-B7X4Pr-l.js} +1 -1
  161. package/storybook-static/assets/{RadioGroup-CJzzJ3Fs.js → RadioGroup-DHpLxYGV.js} +2 -2
  162. package/storybook-static/assets/{RadioGroup.stories-C7N9yLcN.js → RadioGroup.stories-BAE8jGr_.js} +1 -1
  163. package/storybook-static/assets/{Scrollable-BOTJbzkH.js → Scrollable-vhQ02gPl.js} +1 -1
  164. package/storybook-static/assets/{Select-CNAFGsHq.js → Select-5pGJ-9Pp.js} +1 -1
  165. package/storybook-static/assets/{Select-D2yqrKAE.js → Select-wSFMQijV.js} +2 -2
  166. package/storybook-static/assets/Select.stories-D6_viZUX.js +69 -0
  167. package/storybook-static/assets/{SerializableSelect-BZBYLnHq.js → SerializableSelect-DDx9-Bur.js} +2 -2
  168. package/storybook-static/assets/{SerializableSelect.stories-PIYq8I5b.js → SerializableSelect.stories-lLHLEyB9.js} +2 -2
  169. package/storybook-static/assets/{SingleDateTimeInput-D2cDr1L5.js → SingleDateTimeInput-B4vUIB4m.js} +1 -1
  170. package/storybook-static/assets/{SingleDateTimeInput-B6M2oHtl.js → SingleDateTimeInput-DKleuzaX.js} +2 -2
  171. package/storybook-static/assets/{SingleDateTimeInput.stories-DqswDqo4.js → SingleDateTimeInput.stories-U_d98CIX.js} +1 -1
  172. package/storybook-static/assets/{Slider-C0fjZ3TE.js → Slider-C9EHsb-H.js} +3 -3
  173. package/storybook-static/assets/{Slider-Cu_mMfmP.js → Slider-Dfj4alv-.js} +1 -1
  174. package/storybook-static/assets/{Slider.stories-BcYnYgUs.js → Slider.stories-vZkWxSqT.js} +1 -1
  175. package/storybook-static/assets/{SliderInput-CaaSdoql.js → SliderInput-BdYHLdem.js} +1 -1
  176. package/storybook-static/assets/{SliderInput-D8pa0Cwh.js → SliderInput-CzlPZSO9.js} +3 -3
  177. package/storybook-static/assets/{SliderInput.stories-biJs3NtU.js → SliderInput.stories-C6tBSbPb.js} +1 -1
  178. package/storybook-static/assets/{Sortable-wyJd-LB7.js → Sortable-BGVo-kNH.js} +2 -2
  179. package/storybook-static/assets/Sortable.stories-vIFl2X-p.js +44 -0
  180. package/storybook-static/assets/{Splitter-D0L1B9tf.js → Splitter-BQWPhfku.js} +4 -4
  181. package/storybook-static/assets/{Splitter.stories-CDQGRB14.js → Splitter.stories-ICS_ZBHX.js} +1 -1
  182. package/storybook-static/assets/{StateSelect-BaThi-59.js → StateSelect-CyReXSM1.js} +2 -2
  183. package/storybook-static/assets/{StateSelect-hO1K2z4b.js → StateSelect-Dd6SpUUh.js} +1 -1
  184. package/storybook-static/assets/StateSelect.stories-D0-HsFXZ.js +59 -0
  185. package/storybook-static/assets/StringToggle.stories-pC48Sxqx.js +3 -0
  186. package/storybook-static/assets/{Switch-Ct9tsisu.js → Switch-BqR-1lxY.js} +2 -2
  187. package/storybook-static/assets/{Switch-DCV_mYJ2.js → Switch-Cj8-VcVg.js} +1 -1
  188. package/storybook-static/assets/Switch.stories-WiYjSzuW.js +15 -0
  189. package/storybook-static/assets/{Table-DaP6Qndv.js → Table-BxXretCJ.js} +4 -4
  190. package/storybook-static/assets/Table.stories-BNQvlsuf.js +178 -0
  191. package/storybook-static/assets/{Tabs-CC5Gzc7s.js → Tabs-Bfy1NJMT.js} +3 -3
  192. package/storybook-static/assets/{Tabs.stories-B_76Da9k.js → Tabs.stories-CPIuTwP2.js} +2 -2
  193. package/storybook-static/assets/{TabsBox-D52IZXj5.js → TabsBox-jMCEuOZ4.js} +1 -1
  194. package/storybook-static/assets/{TagInput-T9Lp1amS.js → TagInput-BUw0lagA.js} +1 -1
  195. package/storybook-static/assets/TagInput.stories-DFt-q5Jo.js +18 -0
  196. package/storybook-static/assets/{Text-CXcCu6R8.js → Text-qYKrK4eb.js} +1 -1
  197. package/storybook-static/assets/{Textarea-BlE2vGsV.js → Textarea-CHFjT8jC.js} +1 -1
  198. package/storybook-static/assets/{Textarea-CNl12Mkz.js → Textarea-evU43JN1.js} +2 -2
  199. package/storybook-static/assets/Textarea.stories-DEIYLgZF.js +17 -0
  200. package/storybook-static/assets/{TimePanel-DKD18ldm.js → TimePanel-DTiDfMFt.js} +1 -1
  201. package/storybook-static/assets/TimePanel.stories-Ct__ocID.js +10 -0
  202. package/storybook-static/assets/{Toggle-DKNuMtMW.js → Toggle-IPvbQmMD.js} +2 -2
  203. package/storybook-static/assets/{Toggle-fqZP5j32.js → Toggle-IdtrAW0T.js} +1 -1
  204. package/storybook-static/assets/Toggle.stories-BJ9VWYeG.js +25 -0
  205. package/storybook-static/assets/{TreeMultiSelect-b4PiPTEN.js → TreeMultiSelect-CH0Zc3KF.js} +1 -1
  206. package/storybook-static/assets/{TreeMultiSelect-B6et22Ea.js → TreeMultiSelect-CSd33bKQ.js} +1 -1
  207. package/storybook-static/assets/{TreeMultiSelect.stories-C_4ZpE9w.js → TreeMultiSelect.stories-BJwU3XBe.js} +1 -1
  208. package/storybook-static/assets/{TreePickerBase-BBwppLrT.js → TreePickerBase-CKnyu6AR.js} +1 -1
  209. package/storybook-static/assets/{TreeSelect-D4u7C0tA.js → TreeSelect-DYJm99Z2.js} +1 -1
  210. package/storybook-static/assets/{TreeSelect-BaCD5AjF.js → TreeSelect-DiiLtgN_.js} +1 -1
  211. package/storybook-static/assets/TreeSelect.stories-CEiN12BG.js +32 -0
  212. package/storybook-static/assets/{TreeTable-CbhUffZj.js → TreeTable-CInX-hLX.js} +3 -3
  213. package/storybook-static/assets/TreeTable.stories-DQsXSocU.js +138 -0
  214. package/storybook-static/assets/{WithTooltip-7X4HQR7L-DQ4Qthn2.js → WithTooltip-CDUNV5IS-mFMh6Qcu.js} +2 -2
  215. package/storybook-static/assets/{blocks-IjspN281.js → blocks-v2XPznvF.js} +3 -3
  216. package/storybook-static/assets/{check-ue9rVspp.js → check-Cw2uZkgi.js} +1 -1
  217. package/storybook-static/assets/{chevron-down-Dnk-3hJo.js → chevron-down-DCcoFYMu.js} +1 -1
  218. package/storybook-static/assets/{chevron-left-CaAFuWY0.js → chevron-left-DbTmcqTw.js} +1 -1
  219. package/storybook-static/assets/{chevron-right-CKnELL4E.js → chevron-right-BhBh36az.js} +1 -1
  220. package/storybook-static/assets/{chunk-W22LQPXL-jFAFLKOH.js → chunk-W22LQPXL-2pLErBcr.js} +1 -1
  221. package/storybook-static/assets/{circle-alert-miJVMeEa.js → circle-alert-DztOdOaG.js} +1 -1
  222. package/storybook-static/assets/circle-check-CAdrHnV2.js +1 -0
  223. package/storybook-static/assets/components-BTpiQE9n.js +241 -0
  224. package/storybook-static/assets/{contextMenu-D8NvB0La.js → contextMenu-DJ0HpnV6.js} +1 -1
  225. package/storybook-static/assets/{defaultRenderers-DfmnIuod.js → defaultRenderers-Dinv2uRZ.js} +1 -1
  226. package/storybook-static/assets/{download-Cq_lr01f.js → download-BT_zAyTC.js} +1 -1
  227. package/storybook-static/assets/floating-ui.react-Cvohd2Gw.js +1 -0
  228. package/storybook-static/assets/{formatters-D33Uh3si-CxrG0jsB.js → formatters-D33Uh3si-Df97arf9.js} +1 -1
  229. package/storybook-static/assets/{foundationApi-CLyEyFIu.js → foundationApi-DJeCu7Ht.js} +3 -6
  230. package/storybook-static/assets/{foundationLib-DH2mxNct.js → foundationLib-hGtcm5KL.js} +1 -1
  231. package/storybook-static/assets/{hooks-BwH7Yo1F.js → hooks-BCeL5FKt.js} +1 -1
  232. package/storybook-static/assets/iframe-B-Rqywce.js +1 -0
  233. package/storybook-static/assets/{iframe-B_6aAEqw.js → iframe-DlUmG4EA.js} +203 -203
  234. package/storybook-static/assets/{info-BgHKckDk.js → info-BkC2CBYX.js} +1 -1
  235. package/storybook-static/assets/odata-BMO7cuBZ.js +1 -0
  236. package/storybook-static/assets/odata-service-CWkHASdw-CXhFi03v.js +3 -0
  237. package/storybook-static/assets/odataStoryFixtures-CWldE9pM.js +25 -0
  238. package/storybook-static/assets/{react-18-D4o7zN8K.js → react-18-EmNFJX4V.js} +1 -1
  239. package/storybook-static/assets/react-C0u6t2Tr.js +9 -0
  240. package/storybook-static/assets/{refresh-cw-Cz1Mtnwr.js → refresh-cw-BA16_2Dg.js} +1 -1
  241. package/storybook-static/assets/{settings-2-BUY_jI1a.js → settings-2-C3fAar8h.js} +1 -1
  242. package/storybook-static/assets/{sortable-DfiDnDGH.js → sortable-4U2uS5RT.js} +1 -1
  243. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-RwE_sP6g.js → syntaxhighlighter-QEQV7K2Y-e4tU0oKD.js} +1 -1
  244. package/storybook-static/assets/theming-BgT2grXK.js +39 -0
  245. package/storybook-static/assets/{trash-2-Da9E4hDy.js → trash-2-DIhA8-QF.js} +1 -1
  246. package/storybook-static/assets/{triangle-alert-D2CpTkxC.js → triangle-alert-CYOiH1yf.js} +1 -1
  247. package/storybook-static/assets/{useODataSelectBase-BTVM_2wU.js → useODataSelectBase-CcvoIMyY.js} +1 -1
  248. package/storybook-static/assets/{useODataTreeData-BwwhT42f.js → useODataTreeData-Vkqc6Vi_.js} +1 -1
  249. package/storybook-static/assets/{usePickerQuery-Cug-ZpN1.js → usePickerQuery-7mnpDV7K.js} +1 -1
  250. package/storybook-static/assets/{usePickerTriggerController-D3h4HqB9.js → usePickerTriggerController-fH-NsvWu.js} +1 -1
  251. package/storybook-static/assets/{x-ri5iHB3T.js → x-BJ8ArZif.js} +1 -1
  252. package/storybook-static/iframe.html +2 -2
  253. package/storybook-static/index.json +1 -1
  254. package/storybook-static/project.json +1 -1
  255. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +1 -1
  256. package/storybook-static/sb-manager/globals-runtime.js +5 -2
  257. package/storybook-static/sb-manager/runtime.js +1 -0
  258. package/storybook-static/assets/Color-6AOWCN3U-C363KdaS.js +0 -1
  259. package/storybook-static/assets/DateRangePresetSelect.stories-BnnOI6oQ.js +0 -19
  260. package/storybook-static/assets/Dialog.stories-DPFNV_A3.js +0 -22
  261. package/storybook-static/assets/Disclosure.stories-C3MufHWp.js +0 -23
  262. package/storybook-static/assets/DropZone.stories-mB8JLlHw.js +0 -26
  263. package/storybook-static/assets/ExpandableActionPanel.stories-eChkcTa4.js +0 -9
  264. package/storybook-static/assets/ImageCropper.stories-BuwhJESS.js +0 -131
  265. package/storybook-static/assets/ImageRenderer.stories-BzyPfNyt.js +0 -34
  266. package/storybook-static/assets/ImageView.stories-FmQ_gxc7.js +0 -14
  267. package/storybook-static/assets/Input.stories-BbT8eOCH.js +0 -52
  268. package/storybook-static/assets/InputDateTime.stories-Cdz1C1X5.js +0 -38
  269. package/storybook-static/assets/InputFile.stories-B84afhOU.js +0 -27
  270. package/storybook-static/assets/InputFiles.stories-CgMk9QC9.js +0 -26
  271. package/storybook-static/assets/InputImage.stories-BD3x6S5Y.js +0 -56
  272. package/storybook-static/assets/MultiSelect.stories-CNNK5rRC.js +0 -55
  273. package/storybook-static/assets/NotificationsHost.stories-Bf-a-dC3.js +0 -29
  274. package/storybook-static/assets/PeriodSelect.stories-COeb_LJq.js +0 -50
  275. package/storybook-static/assets/PresetRangeDateInput.stories-BDmwSMwK.js +0 -3
  276. package/storybook-static/assets/README-oSHJDhIJ.js +0 -101
  277. package/storybook-static/assets/RadioButton.stories-GiewWDd0.js +0 -32
  278. package/storybook-static/assets/Select.stories-CYJpEv_P.js +0 -69
  279. package/storybook-static/assets/Sortable.stories-CNW8IhRv.js +0 -77
  280. package/storybook-static/assets/StateSelect.stories-DDviL5zf.js +0 -59
  281. package/storybook-static/assets/StringToggle.stories-CFAJvvxJ.js +0 -5
  282. package/storybook-static/assets/Switch.stories-COeP2eOi.js +0 -15
  283. package/storybook-static/assets/Table.stories-DDFcryTl.js +0 -207
  284. package/storybook-static/assets/TagInput.stories-DfH66OZc.js +0 -18
  285. package/storybook-static/assets/Textarea.stories-DVOJ06z_.js +0 -17
  286. package/storybook-static/assets/TimePanel.stories-Vn5OZdpQ.js +0 -14
  287. package/storybook-static/assets/Toggle.stories-BLolzyKP.js +0 -25
  288. package/storybook-static/assets/TreeSelect.stories-CDkOknim.js +0 -32
  289. package/storybook-static/assets/TreeTable.stories-D-x-lZkU.js +0 -168
  290. package/storybook-static/assets/circle-check-CNYBjmqs.js +0 -1
  291. package/storybook-static/assets/components-9iEtMVnM.js +0 -241
  292. package/storybook-static/assets/floating-ui.react-BoRzzZ17.js +0 -1
  293. package/storybook-static/assets/iframe-BxPT5t4V.js +0 -1
  294. package/storybook-static/assets/odata-D2I4jbKq.js +0 -1
  295. package/storybook-static/assets/odata-service-CWkHASdw-DlmSiioz.js +0 -3
  296. package/storybook-static/assets/odataStoryFixtures-BiN3x4k6.js +0 -25
  297. package/storybook-static/assets/react-BoM8yiX1.js +0 -9
  298. package/storybook-static/assets/theming-Cvtrnj7n.js +0 -39
@@ -1,11 +1,11 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Splitter.stories-CDQGRB14.js";function y(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-v2XPznvF.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Splitter.stories-ICS_ZBHX.js";function y(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`Splitter`}),`
3
3
  `,(0,x.jsx)(o,{children:(0,x.jsx)(t.p,{children:`Компонент для интерактивного разделения рабочей области на две панели с поддержкой вложенности, клавиатуры и ограничений по размеру`})}),`
4
4
  `,(0,x.jsxs)(t.p,{children:[(0,x.jsx)(t.code,{children:`Splitter`}),` подходит для интерфейсов, где пользователь должен самостоятельно перераспределять пространство между соседними областями: навигацией и контентом, таблицей и деталями, превью и журналом событий.`]}),`
5
5
  `,(0,x.jsxs)(t.p,{children:[`Компонент ожидает ровно два прямых дочерних элемента. Если нужно больше областей, их лучше собирать через вложенные `,(0,x.jsx)(t.code,{children:`Splitter`}),`, чтобы сохранить простую модель поведения и предсказуемый resize.`]}),`
6
6
  `,(0,x.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
7
  `,(0,x.jsx)(f,{}),`
8
- `,(0,x.jsx)(t.pre,{children:(0,x.jsx)(t.code,{className:`language-tsx`,children:`import { Splitter } from "@/shared/ui";
8
+ `,(0,x.jsx)(t.pre,{children:(0,x.jsx)(t.code,{className:`language-tsx`,children:`import { Splitter } from "@ryuzaki13/react-foundation-ui";
9
9
 
10
10
  export function Example() {
11
11
  return (
@@ -32,7 +32,7 @@ export function Example() {
32
32
  `,(0,x.jsx)(t.h2,{id:`горизонтальное-разделение`,children:`Горизонтальное разделение`}),`
33
33
  `,(0,x.jsx)(t.p,{children:`Горизонтальный режим полезен для layout вида "контент сверху, журнал или детали снизу".`}),`
34
34
  `,(0,x.jsx)(d,{of:_}),`
35
- `,(0,x.jsx)(t.pre,{children:(0,x.jsx)(t.code,{className:`language-tsx`,children:`import { Splitter } from "@/shared/ui";
35
+ `,(0,x.jsx)(t.pre,{children:(0,x.jsx)(t.code,{className:`language-tsx`,children:`import { Splitter } from "@ryuzaki13/react-foundation-ui";
36
36
 
37
37
  export function HorizontalLayout() {
38
38
  return (
@@ -48,7 +48,7 @@ export function HorizontalLayout() {
48
48
  `,(0,x.jsx)(t.h2,{id:`разделение-на-4-части`,children:`Разделение на 4 части`}),`
49
49
  `,(0,x.jsxs)(t.p,{children:[`Чтобы собрать четыре независимые области, используйте `,(0,x.jsx)(t.code,{children:`Splitter`}),` внутри `,(0,x.jsx)(t.code,{children:`Splitter`}),`. Такой подход даёт предсказуемую вложенную структуру и хорошо масштабируется для сложных рабочих экранов.`]}),`
50
50
  `,(0,x.jsx)(d,{of:m}),`
51
- `,(0,x.jsx)(t.pre,{children:(0,x.jsx)(t.code,{className:`language-tsx`,children:`import { Splitter } from "@/shared/ui";
51
+ `,(0,x.jsx)(t.pre,{children:(0,x.jsx)(t.code,{className:`language-tsx`,children:`import { Splitter } from "@ryuzaki13/react-foundation-ui";
52
52
 
53
53
  export function FourPaneLayout() {
54
54
  return (
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-B_6aAEqw.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{o=`wAovST`,s=`QVVMwe`,c=`H43AJ8`,l=`pgo8sW`,u=`_8fCvqA`,d=`t6RFcI`,f={splitter:o,vertical:s,separator:c,horizontal:l,topLeft:u,bottomRight:d}})))()}function m(e,t,n){return Math.min(n,Math.max(t,e))}function h(e,t){return Number.isFinite(e)?m(e,0,1):t}function g(e,t){let n=h(e,E),r=h(t,D);return n<=r?[n,r]:[r,n]}function _(e,t){return e===`vertical`?t.clientX:t.clientY}function v(e,t){return e===`vertical`?t.width:t.height}function y(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return k}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return k}return null}function b(e,t){return t===`start`?0:t===`end`?1:e}function x({direction:e,initial:t,min:n,max:r,collapsedPane:i}){let[a,o]=g(n,r),s=(0,w.useRef)(null),c=(0,w.useRef)(null),l=(0,w.useRef)(null),u=(0,w.useRef)(null),d=(0,w.useRef)(null),f=(0,w.useRef)(null),p=(0,w.useRef)(0),x=(0,w.useRef)(m(h(t,O),a,o)),S=(0,w.useRef)(t),[C,T]=(0,w.useState)(()=>m(h(t,O),a,o)),E=(0,w.useRef)(C),D=(0,w.useCallback)(e=>{E.current=e,c.current?.style.setProperty(`flex-basis`,`${b(e,i)*100}%`),l.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[i]),k=()=>{if(f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),d.current===null)return E.current;let e=d.current;return d.current=null,D(e),e},A=e=>{d.current=e,f.current===null&&(f.current=requestAnimationFrame(()=>{f.current=null,d.current!==null&&D(d.current)}))},j=()=>{u.current?.(),u.current=null},M=e=>{k(),T(m(e,a,o))};return(0,w.useLayoutEffect)(()=>{D(C)},[D,C]),(0,w.useEffect)(()=>{T(e=>{let n=S.current!==t;return S.current=t,m(n?h(t,O):e,a,o)})},[t,a,o]),(0,w.useEffect)(()=>()=>{j(),f.current!==null&&cancelAnimationFrame(f.current)},[]),{containerRef:s,topLeftRef:c,separatorRef:l,ratio:C,minRatio:a,maxRatio:o,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=s.current;if(!n)return;j();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}p.current=_(e,t),x.current=E.current;let r=t=>{let r=v(e,n.getBoundingClientRect());if(r<=0)return;let i=_(e,t)-p.current,s=m(x.current+i/r,a,o);A(s)},i=()=>{j(),T(k())};u.current=()=>{document.removeEventListener(`pointermove`,r),document.removeEventListener(`pointerup`,i),document.removeEventListener(`pointercancel`,i)},document.addEventListener(`pointermove`,r),document.addEventListener(`pointerup`,i),document.addEventListener(`pointercancel`,i)},handleSeparatorKeyDown:t=>{let n=y(e,t.key);if(n!==null){t.preventDefault(),M(E.current+n);return}if(t.key===`Home`){t.preventDefault(),M(a);return}t.key===`End`&&(t.preventDefault(),M(o))}}}function S({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:p,handleSeparatorPointerDown:m,handleSeparatorKeyDown:h}=o,g=b(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,T.jsxs)(`div`,{ref:s,className:i(f.splitter,f[t],e),children:[(0,T.jsx)(`div`,{ref:c,className:f.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,T.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(p*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:m,onKeyDown:h,className:f.separator}),(0,T.jsx)(`div`,{className:f.bottomRight,hidden:v,children:r})]})}function C({direction:e=`vertical`,initial:t=O,min:n=E,max:r=D,className:i,collapsedPane:a=null,children:o}){let[s,c]=w.Children.toArray(o),l=x({direction:e,initial:t,min:n,max:r,collapsedPane:a});return c?(0,T.jsx)(S,{className:i,direction:e,left:s,right:c,collapsedPane:a,logic:l}):s}var w,T,E,D,O,k;function A(){return(A=e((()=>{w=n(),a(),p(),T=r(),E=.1,D=.9,O=.7,k=.02,C.__docgenInfo={description:``,methods:[],displayName:`Splitter`,props:{direction:{defaultValue:{value:`"vertical"`,computed:!1},required:!1},initial:{defaultValue:{value:`0.7`,computed:!1},required:!1},min:{defaultValue:{value:`0.1`,computed:!1},required:!1},max:{defaultValue:{value:`0.9`,computed:!1},required:!1},collapsedPane:{defaultValue:{value:`null`,computed:!1},required:!1}}}})))()}var j=t({Basic:()=>B,Constrained:()=>U,Horizontal:()=>V,NestedFourPanels:()=>H,__namedExportsOrder:()=>W,default:()=>z});function M({children:e}){return(0,L.jsx)(`div`,{style:{height:490},children:e})}function N({title:e,description:t,items:n=[]}){return(0,L.jsxs)(`div`,{style:{height:`100%`,padding:`var(--space-md)`,borderRadius:`var(--radius-md)`,border:`var(--border)`,display:`grid`,alignContent:`start`,gap:`var(--space-md)`},className:`scrollable`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),n.length>0&&(0,L.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,L.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function P(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,L.jsx)(N,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function F(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsxs)(C,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,L.jsx)(N,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,L.jsx)(N,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,L.jsxs)(C,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,L.jsx)(N,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,L.jsx)(N,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function I(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,L.jsx)(N,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var L,R,z,B,V,H,U,W;function G(){return(G=e((()=>{A(),L=r(),{useArgs:R}=__STORYBOOK_MODULE_PREVIEW_API__,z={title:`Shared/UI/Splitter`,component:C,parameters:{atomicCanvas:!0,layout:`padded`},args:{direction:`vertical`,initial:.45,min:.15,max:.85},argTypes:{direction:{description:`Направление разделения: вертикальное по ширине или горизонтальное по высоте.`,control:`inline-radio`,options:[`vertical`,`horizontal`]},initial:{description:`Начальная доля первой панели в диапазоне от 0 до 1.`,control:{type:`range`,min:0,max:1,step:.01}},min:{description:`Минимальная доля первой панели. Значение автоматически нормализуется в диапазон 0..1.`,control:{type:`range`,min:0,max:1,step:.01}},max:{description:"Максимальная доля первой панели. Если `min` и `max` перепутаны местами, компонент сам исправит диапазон.",control:{type:`range`,min:0,max:1,step:.01}},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},B={name:`Две панели`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})}},V={name:`Горизонтальное разделение`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})},args:{direction:`horizontal`,initial:.55}},H={name:`Четыре панели через вложенность`,render:function(){let[e]=R();return(0,L.jsx)(F,{...e})},args:{initial:.48,min:.25,max:.75}},U={name:`Ограничения и клавиатура`,render:function(){let[e]=R();return(0,L.jsx)(I,{...e})},args:{initial:.35,min:.25,max:.55}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DlUmG4EA.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{o=`wAovST`,s=`QVVMwe`,c=`H43AJ8`,l=`pgo8sW`,u=`_8fCvqA`,d=`t6RFcI`,f={splitter:o,vertical:s,separator:c,horizontal:l,topLeft:u,bottomRight:d}})))()}function m(e,t,n){return Math.min(n,Math.max(t,e))}function h(e,t){return Number.isFinite(e)?m(e,0,1):t}function g(e,t){let n=h(e,E),r=h(t,D);return n<=r?[n,r]:[r,n]}function _(e,t){return e===`vertical`?t.clientX:t.clientY}function v(e,t){return e===`vertical`?t.width:t.height}function y(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return k}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return k}return null}function b(e,t){return t===`start`?0:t===`end`?1:e}function x({direction:e,initial:t,min:n,max:r,collapsedPane:i}){let[a,o]=g(n,r),s=(0,w.useRef)(null),c=(0,w.useRef)(null),l=(0,w.useRef)(null),u=(0,w.useRef)(null),d=(0,w.useRef)(null),f=(0,w.useRef)(null),p=(0,w.useRef)(0),x=(0,w.useRef)(m(h(t,O),a,o)),S=(0,w.useRef)(t),[C,T]=(0,w.useState)(()=>m(h(t,O),a,o)),E=(0,w.useRef)(C),D=(0,w.useCallback)(e=>{E.current=e,c.current?.style.setProperty(`flex-basis`,`${b(e,i)*100}%`),l.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[i]),k=()=>{if(f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),d.current===null)return E.current;let e=d.current;return d.current=null,D(e),e},A=e=>{d.current=e,f.current===null&&(f.current=requestAnimationFrame(()=>{f.current=null,d.current!==null&&D(d.current)}))},j=()=>{u.current?.(),u.current=null},M=e=>{k(),T(m(e,a,o))};return(0,w.useLayoutEffect)(()=>{D(C)},[D,C]),(0,w.useEffect)(()=>{T(e=>{let n=S.current!==t;return S.current=t,m(n?h(t,O):e,a,o)})},[t,a,o]),(0,w.useEffect)(()=>()=>{j(),f.current!==null&&cancelAnimationFrame(f.current)},[]),{containerRef:s,topLeftRef:c,separatorRef:l,ratio:C,minRatio:a,maxRatio:o,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=s.current;if(!n)return;j();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}p.current=_(e,t),x.current=E.current;let r=t=>{let r=v(e,n.getBoundingClientRect());if(r<=0)return;let i=_(e,t)-p.current,s=m(x.current+i/r,a,o);A(s)},i=()=>{j(),T(k())};u.current=()=>{document.removeEventListener(`pointermove`,r),document.removeEventListener(`pointerup`,i),document.removeEventListener(`pointercancel`,i)},document.addEventListener(`pointermove`,r),document.addEventListener(`pointerup`,i),document.addEventListener(`pointercancel`,i)},handleSeparatorKeyDown:t=>{let n=y(e,t.key);if(n!==null){t.preventDefault(),M(E.current+n);return}if(t.key===`Home`){t.preventDefault(),M(a);return}t.key===`End`&&(t.preventDefault(),M(o))}}}function S({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:p,handleSeparatorPointerDown:m,handleSeparatorKeyDown:h}=o,g=b(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,T.jsxs)(`div`,{ref:s,className:i(f.splitter,f[t],e),children:[(0,T.jsx)(`div`,{ref:c,className:f.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,T.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(p*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:m,onKeyDown:h,className:f.separator}),(0,T.jsx)(`div`,{className:f.bottomRight,hidden:v,children:r})]})}function C({direction:e=`vertical`,initial:t=O,min:n=E,max:r=D,className:i,collapsedPane:a=null,children:o}){let[s,c]=w.Children.toArray(o),l=x({direction:e,initial:t,min:n,max:r,collapsedPane:a});return c?(0,T.jsx)(S,{className:i,direction:e,left:s,right:c,collapsedPane:a,logic:l}):s}var w,T,E,D,O,k;function A(){return(A=e((()=>{w=n(),a(),p(),T=r(),E=.1,D=.9,O=.7,k=.02,C.__docgenInfo={description:``,methods:[],displayName:`Splitter`,props:{direction:{defaultValue:{value:`"vertical"`,computed:!1},required:!1},initial:{defaultValue:{value:`0.7`,computed:!1},required:!1},min:{defaultValue:{value:`0.1`,computed:!1},required:!1},max:{defaultValue:{value:`0.9`,computed:!1},required:!1},collapsedPane:{defaultValue:{value:`null`,computed:!1},required:!1}}}})))()}var j=t({Basic:()=>B,Constrained:()=>U,Horizontal:()=>V,NestedFourPanels:()=>H,__namedExportsOrder:()=>W,default:()=>z});function M({children:e}){return(0,L.jsx)(`div`,{style:{height:490},children:e})}function N({title:e,description:t,items:n=[]}){return(0,L.jsxs)(`div`,{style:{height:`100%`,padding:`var(--space-md)`,borderRadius:`var(--radius-md)`,border:`var(--border)`,display:`grid`,alignContent:`start`,gap:`var(--space-md)`},className:`scrollable`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),n.length>0&&(0,L.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,L.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function P(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,L.jsx)(N,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function F(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsxs)(C,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,L.jsx)(N,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,L.jsx)(N,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,L.jsxs)(C,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,L.jsx)(N,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,L.jsx)(N,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function I(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,L.jsx)(N,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var L,R,z,B,V,H,U,W;function G(){return(G=e((()=>{A(),L=r(),{useArgs:R}=__STORYBOOK_MODULE_PREVIEW_API__,z={title:`UI/Splitter`,component:C,parameters:{atomicCanvas:!0,layout:`padded`},args:{direction:`vertical`,initial:.45,min:.15,max:.85},argTypes:{direction:{description:`Направление разделения: вертикальное по ширине или горизонтальное по высоте.`,control:`inline-radio`,options:[`vertical`,`horizontal`]},initial:{description:`Начальная доля первой панели в диапазоне от 0 до 1.`,control:{type:`range`,min:0,max:1,step:.01}},min:{description:`Минимальная доля первой панели. Значение автоматически нормализуется в диапазон 0..1.`,control:{type:`range`,min:0,max:1,step:.01}},max:{description:"Максимальная доля первой панели. Если `min` и `max` перепутаны местами, компонент сам исправит диапазон.",control:{type:`range`,min:0,max:1,step:.01}},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},B={name:`Две панели`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})}},V={name:`Горизонтальное разделение`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})},args:{direction:`horizontal`,initial:.55}},H={name:`Четыре панели через вложенность`,render:function(){let[e]=R();return(0,L.jsx)(F,{...e})},args:{initial:.48,min:.25,max:.75}},U={name:`Ограничения и клавиатура`,render:function(){let[e]=R();return(0,L.jsx)(I,{...e})},args:{initial:.35,min:.25,max:.55}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
2
2
  name: "Две панели",
3
3
  render: function Render() {
4
4
  const [args] = useArgs<ComponentProps<typeof Splitter>>();
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-DDviL5zf.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-v2XPznvF.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-D0-HsFXZ.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`StateSelect`}),`
3
3
  `,(0,b.jsx)(o,{children:`Специализированный select для выбора визуального статуса или семантического состояния`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`StateSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -8,7 +8,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
8
8
  `,(0,b.jsx)(i,{of:_}),`
9
9
  `,(0,b.jsx)(t.pre,{children:(0,b.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
10
10
 
11
- import { StateSelect } from "@/shared/ui";
11
+ import { StateSelect } from "@ryuzaki13/react-foundation-ui";
12
12
 
13
13
  export function Example() {
14
14
  const [value, setValue] = useState("information");
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-B_6aAEqw.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{d as a,l as o,y as s}from"./formatters-D33Uh3si-CxrG0jsB.js";import{n as c,t as l}from"./Select-CNAFGsHq.js";var u,d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{u=`p4nQdZ`,d=`_94tg5v`,f=`HyK7Zs`,p=`Mm4hrB`,m=`clxxBQ`,h=`_5pJ7o-`,g=`VV6hKN`,_=`cuQNP0`,v=`w7nIOT`,y=`ed-Afj`,b=`Lbxloe`,x={button:u,valueContainer:d,swatch:f,optionsPalette:p,optionsDetailed:m,option:h,optionPalette:g,optionDetailed:_,optionMeta:v,optionMetaIcon:y,optionMetaLabel:b}})))()}function C({state:e,className:t}){return(0,A.jsx)(`span`,{className:r(x.swatch,t),"data-empty":e===`none`?``:void 0,style:{"--state-color":a[e]}})}function w(e){return!!(e?.icon||e?.label)}function T(e,t){return typeof t?.label==`string`&&t.label.trim()?t.label:e||`empty`}function E(e){return w(e)?(0,A.jsxs)(`span`,{className:x.optionMeta,children:[e?.icon?(0,A.jsx)(`span`,{className:x.optionMetaIcon,children:e.icon}):null,e?.label?(0,A.jsx)(`span`,{className:x.optionMetaLabel,children:e.label}):null]}):null}function D(e,t){return(0,A.jsxs)(`div`,{className:x.valueContainer,children:[(0,A.jsx)(C,{state:e}),E(t)]})}function O({label:e,description:t,disabled:n,placeholder:i,size:a,value:s,onChange:c,options:u=o,stateMeta:d,className:f,clearable:p}){let m=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),h=m.some(e=>w(d?.[e])),g={getOptionKey:e=>e||`__empty_state__`,getOptionLabel:e=>d?.[e]?.label??e,getOptionAriaLabel:e=>T(e,d?.[e]),renderValue:e=>D(e,d?.[e]),renderOption:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(C,{state:e}),h?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(h?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,h?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:a,value:s,onChange:c,options:m,className:f,clearable:p,...g})}var k,A;function j(){return(j=e((()=>{k=t(),s(),i(),c(),S(),A=n(),O.__docgenInfo={description:`Специализированный селект для выбора цветового или статусного состояния. Используется там, где значению соответствует визуальный swatch.`,methods:[],displayName:`StateSelect`,props:{placeholder:{required:!1,tsType:{name:`string`},description:``},options:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`DEFAULT_VALUE_STATES`,computed:!0}},stateMeta:{required:!1,tsType:{name:`Partial`,elements:[{name:`Record`,elements:[{name:`State`},{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-DlUmG4EA.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{d as a,l as o,y as s}from"./formatters-D33Uh3si-Df97arf9.js";import{n as c,t as l}from"./Select-5pGJ-9Pp.js";var u,d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{u=`p4nQdZ`,d=`_94tg5v`,f=`HyK7Zs`,p=`Mm4hrB`,m=`clxxBQ`,h=`_5pJ7o-`,g=`VV6hKN`,_=`cuQNP0`,v=`w7nIOT`,y=`ed-Afj`,b=`Lbxloe`,x={button:u,valueContainer:d,swatch:f,optionsPalette:p,optionsDetailed:m,option:h,optionPalette:g,optionDetailed:_,optionMeta:v,optionMetaIcon:y,optionMetaLabel:b}})))()}function C({state:e,className:t}){return(0,A.jsx)(`span`,{className:r(x.swatch,t),"data-empty":e===`none`?``:void 0,style:{"--state-color":a[e]}})}function w(e){return!!(e?.icon||e?.label)}function T(e,t){return typeof t?.label==`string`&&t.label.trim()?t.label:e||`empty`}function E(e){return w(e)?(0,A.jsxs)(`span`,{className:x.optionMeta,children:[e?.icon?(0,A.jsx)(`span`,{className:x.optionMetaIcon,children:e.icon}):null,e?.label?(0,A.jsx)(`span`,{className:x.optionMetaLabel,children:e.label}):null]}):null}function D(e,t){return(0,A.jsxs)(`div`,{className:x.valueContainer,children:[(0,A.jsx)(C,{state:e}),E(t)]})}function O({label:e,description:t,disabled:n,placeholder:i,size:a,value:s,onChange:c,options:u=o,stateMeta:d,className:f,clearable:p}){let m=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),h=m.some(e=>w(d?.[e])),g={getOptionKey:e=>e||`__empty_state__`,getOptionLabel:e=>d?.[e]?.label??e,getOptionAriaLabel:e=>T(e,d?.[e]),renderValue:e=>D(e,d?.[e]),renderOption:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(C,{state:e}),h?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(h?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,h?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:a,value:s,onChange:c,options:m,className:f,clearable:p,...g})}var k,A;function j(){return(j=e((()=>{k=t(),s(),i(),c(),S(),A=n(),O.__docgenInfo={description:`Специализированный селект для выбора цветового или статусного состояния. Используется там, где значению соответствует визуальный swatch.`,methods:[],displayName:`StateSelect`,props:{placeholder:{required:!1,tsType:{name:`string`},description:``},options:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`DEFAULT_VALUE_STATES`,computed:!0}},stateMeta:{required:!1,tsType:{name:`Partial`,elements:[{name:`Record`,elements:[{name:`State`},{name:`signature`,type:`object`,raw:`{
2
2
  label?: string;
3
3
  icon?: ReactNode;
4
4
  }`,signature:{properties:[{key:`label`,value:{name:`string`,required:!1}},{key:`icon`,value:{name:`ReactNode`,required:!1}}]}}],raw:`Record<State, StateMeta>`}],raw:`Partial<Record<State, StateMeta>>`},description:``},className:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}export{j as n,O as t};
@@ -0,0 +1,59 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-CAdrHnV2.js";import{i,n as a,r as o,t as s}from"./info-BkC2CBYX.js";import{n as c,t as l}from"./triangle-alert-CYOiH1yf.js";import{i as u,n as d,r as f}from"./iframe-DlUmG4EA.js";import{n as p,t as m}from"./StateSelect-Dd6SpUUh.js";var h,g;function _(){return(_=e((()=>{u(),h=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}]],g=f(`circle-minus`,h)})))()}var v=t({Controlled:()=>C,PaletteOnly:()=>T,WithMeta:()=>w,__namedExportsOrder:()=>E,default:()=>S}),y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{c(),n(),a(),_(),i(),p(),y=d(),{useArgs:b}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:x}=__STORYBOOK_MODULE_TEST__,S={title:`UI/StateSelect`,component:m,args:{label:`Состояние`,description:`Выберите визуальный статус.`,placeholder:`Выберите значение`,value:`information`,onChange:x(),disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля выбора состояния.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение не выбрано.`,control:`text`},value:{description:`Текущее состояние.`,control:`select`,options:[``,`none`,`information`,`success`,`warning`,`error`]},onChange:{description:`Вызывается при выборе состояния.`,control:!1},options:{description:`Кастомный набор доступных состояний.`,control:!1},stateMeta:{description:`Кастомные иконки и подписи для значений.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранного состояния.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},C={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`information`,onChange:n=>{e.onChange(n),t({value:n})}})}},w={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`warning`,onChange:n=>{e.onChange(n),t({value:n})},stateMeta:{none:{label:`Без статуса`,icon:(0,y.jsx)(g,{})},information:{label:`Инфо`,icon:(0,y.jsx)(s,{})},success:{label:`Успех`,icon:(0,y.jsx)(r,{})},warning:{label:`Предупреждение`,icon:(0,y.jsx)(l,{})},error:{label:`Ошибка`,icon:(0,y.jsx)(o,{})}}})},args:{value:`warning`}},T={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`none`,onChange:n=>{e.onChange(n),t({value:n})},options:[`none`,`success`,`error`]})},args:{options:[`none`,`success`,`error`],value:`none`}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
2
+ render: function Render(args) {
3
+ const [, updateArgs] = useArgs<StateSelectProps>();
4
+ return <StateSelect {...args} value={args.value ?? "information"} onChange={value => {
5
+ args.onChange(value);
6
+ updateArgs({
7
+ value
8
+ });
9
+ }} />;
10
+ }
11
+ }`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
12
+ render: function Render(args) {
13
+ const [, updateArgs] = useArgs<StateSelectProps>();
14
+ return <StateSelect {...args} value={args.value ?? "warning"} onChange={value => {
15
+ args.onChange(value);
16
+ updateArgs({
17
+ value
18
+ });
19
+ }} stateMeta={{
20
+ none: {
21
+ label: "Без статуса",
22
+ icon: <MinusCircleIcon />
23
+ },
24
+ information: {
25
+ label: "Инфо",
26
+ icon: <InfoIcon />
27
+ },
28
+ success: {
29
+ label: "Успех",
30
+ icon: <CheckCircle2Icon />
31
+ },
32
+ warning: {
33
+ label: "Предупреждение",
34
+ icon: <AlertTriangleIcon />
35
+ },
36
+ error: {
37
+ label: "Ошибка",
38
+ icon: <XCircleIcon />
39
+ }
40
+ }} />;
41
+ },
42
+ args: {
43
+ value: "warning"
44
+ }
45
+ }`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
46
+ render: function Render(args) {
47
+ const [, updateArgs] = useArgs<StateSelectProps>();
48
+ return <StateSelect {...args} value={args.value ?? "none"} onChange={value => {
49
+ args.onChange(value);
50
+ updateArgs({
51
+ value
52
+ });
53
+ }} options={["none", "success", "error"]} />;
54
+ },
55
+ args: {
56
+ options: ["none", "success", "error"],
57
+ value: "none"
58
+ }
59
+ }`,...T.parameters?.docs?.source}}},E=[`Controlled`,`WithMeta`,`PaletteOnly`]})))()}export{D as a,w as i,T as n,v as r,C as t};
@@ -0,0 +1,3 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./Toggle-IdtrAW0T.js";function o(e,t){return typeof e==`string`?e:t}var s,c;function l(){return(l=e((()=>{s=`true`,c=`false`})))()}function u({value:e,onChange:t,checkedValue:n,uncheckedValue:r,defaultChecked:i,...l}){let u=o(n,s),f=o(r,c),p=e===u;return(0,d.jsx)(a,{...l,value:p,onChange:e=>t(e?u:f)})}var d;function f(){return(f=e((()=>{l(),i(),d=t(),u.__docgenInfo={description:`Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.`,methods:[],displayName:`StringToggle`,props:{checkedValue:{required:!1,tsType:{name:`string`},description:``},uncheckedValue:{required:!1,tsType:{name:`string`},description:``},value:{required:!0,tsType:{name:`string`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}var p,m,h,g,_;function v(){return(v=e((()=>{n(),f(),p=t(),m=r((e,t)=>(0,p.jsx)(u,{...e,onChange:n=>{e.onChange(n),t({value:n})}})),h={title:`UI/Toggle/StringToggle`,component:u,args:{value:`ZBP_MANAGER`,onChange:()=>void 0,checkedText:`за клиента`,uncheckedText:`за сделку`,checkedValue:`ZM_MANAGER`,uncheckedValue:`ZBP_MANAGER`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее строковое значение.`,control:`text`},onChange:{description:`Возвращает строку выбранного состояния.`,control:!1},checkedValue:{description:`Значение включённого состояния.`,control:`text`},uncheckedValue:{description:`Значение выключенного состояния.`,control:`text`},checkedText:{description:`Текст включённого состояния.`,control:`text`},uncheckedText:{description:`Текст выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},g={render:m},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
2
+ render: renderStringToggleStory
3
+ }`,...g.parameters?.docs?.source}}},_=[`ManagerScope`]})))()}v();export{g as ManagerScope,_ as __namedExportsOrder,h as default};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-COeP2eOi.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-v2XPznvF.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-WiYjSzuW.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`Switch`}),`
3
3
  `,(0,b.jsx)(o,{children:`Переключатель в виде слайдера для быстрых включений, отключений и tri-state сценариев`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`Switch уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -8,7 +8,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
8
8
  `,(0,b.jsx)(i,{of:_}),`
9
9
  `,(0,b.jsx)(t.pre,{children:(0,b.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
10
10
 
11
- import { Switch } from "@/shared/ui";
11
+ import { Switch } from "@ryuzaki13/react-foundation-ui";
12
12
 
13
13
  export function Example() {
14
14
  const [value, setValue] = useState(undefined);
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./circle-check-CNYBjmqs.js";import{i as a,n as o,r as s}from"./iframe-B_6aAEqw.js";import{a as c,i as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-BDnTp43_.js";var f,p;function m(){return(m=t((()=>{a(),f=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]],p=s(`ban`,f)})))()}var h,g,_,v,y;function b(){return(b=t((()=>{h=`Or5LYA`,g=`w0AMfA`,_=`P1x4lq`,v=`-ZVOZo`,y={switchWrapper:h,switch:`qge3io`,iconWrapper:g,auto:_,checked:v}})))()}function x(e){let{label:t,description:n,disabled:r,checkedIcon:a=(0,C.jsx)(i,{}),uncheckedIcon:o=(0,C.jsx)(p,{}),className:s,type:l,id:d,size:f,placeholder:m,onChange:h,value:g,triState:_,...v}=e,b=(0,S.useId)(),x=d??b,w=n?`${x}-description`:void 0,T=t?`${x}-label`:void 0,E=()=>{if(!e.triState){e.onChange(!e.value);return}if(e.value===void 0){e.onChange(!0);return}if(e.value===!0){e.onChange(!1);return}e.value===!1&&e.onChange(void 0)},D=typeof e.value==`boolean`&&e.value,O=e.triState&&typeof e.value!=`boolean`,k=v[`aria-label`]??(t?void 0:`Переключатель`);return(0,C.jsxs)(`div`,{className:c(u.uiElement,r&&u.disabled),"aria-disabled":r||void 0,children:[t&&(0,C.jsxs)(`div`,{id:T,className:u.uiLabel,children:[t,`:`]}),n&&(0,C.jsx)(`p`,{id:w,className:u.uiDescription,children:n}),(0,C.jsx)(`button`,{...v,id:x,type:l??`button`,role:`switch`,disabled:r,"aria-checked":D,"aria-describedby":w,"aria-labelledby":T,"aria-label":k,"aria-disabled":r,"data-ui":`switch`,"data-action":`toggle-switch`,onClick:E,className:c(u.uiInputControl,y.switchWrapper,s),children:(0,C.jsx)(`div`,{className:y.switch,"data-disabled":r||void 0,children:O?(0,C.jsx)(`div`,{className:c(y.iconWrapper,y.auto,y.checked),children:`Auto`}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:c(y.iconWrapper,!e.value&&y.checked),children:o}),(0,C.jsx)(`div`,{className:c(y.iconWrapper,e.value&&y.checked),children:a})]})})})]})}var S,C;function w(){return(w=t((()=>{S=e(n(),1),l(),m(),r(),d(),b(),C=o(),x.__docgenInfo={description:`Переключатель boolean-состояния в виде слайдера. Подходит для быстрых настроек и включения/отключения опций.`,methods:[],displayName:`Switch`}})))()}export{w as n,x as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./circle-check-CAdrHnV2.js";import{i as a,n as o,r as s}from"./iframe-DlUmG4EA.js";import{a as c,i as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-BDnTp43_.js";var f,p;function m(){return(m=t((()=>{a(),f=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]],p=s(`ban`,f)})))()}var h,g,_,v,y;function b(){return(b=t((()=>{h=`Or5LYA`,g=`w0AMfA`,_=`P1x4lq`,v=`-ZVOZo`,y={switchWrapper:h,switch:`qge3io`,iconWrapper:g,auto:_,checked:v}})))()}function x(e){let{label:t,description:n,disabled:r,checkedIcon:a=(0,C.jsx)(i,{}),uncheckedIcon:o=(0,C.jsx)(p,{}),className:s,type:l,id:d,size:f,placeholder:m,onChange:h,value:g,triState:_,...v}=e,b=(0,S.useId)(),x=d??b,w=n?`${x}-description`:void 0,T=t?`${x}-label`:void 0,E=()=>{if(!e.triState){e.onChange(!e.value);return}if(e.value===void 0){e.onChange(!0);return}if(e.value===!0){e.onChange(!1);return}e.value===!1&&e.onChange(void 0)},D=typeof e.value==`boolean`&&e.value,O=e.triState&&typeof e.value!=`boolean`,k=v[`aria-label`]??(t?void 0:`Переключатель`);return(0,C.jsxs)(`div`,{className:c(u.uiElement,r&&u.disabled),"aria-disabled":r||void 0,children:[t&&(0,C.jsxs)(`div`,{id:T,className:u.uiLabel,children:[t,`:`]}),n&&(0,C.jsx)(`p`,{id:w,className:u.uiDescription,children:n}),(0,C.jsx)(`button`,{...v,id:x,type:l??`button`,role:`switch`,disabled:r,"aria-checked":D,"aria-describedby":w,"aria-labelledby":T,"aria-label":k,"aria-disabled":r,"data-ui":`switch`,"data-action":`toggle-switch`,onClick:E,className:c(u.uiInputControl,y.switchWrapper,s),children:(0,C.jsx)(`div`,{className:y.switch,"data-disabled":r||void 0,children:O?(0,C.jsx)(`div`,{className:c(y.iconWrapper,y.auto,y.checked),children:`Auto`}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:c(y.iconWrapper,!e.value&&y.checked),children:o}),(0,C.jsx)(`div`,{className:c(y.iconWrapper,e.value&&y.checked),children:a})]})})})]})}var S,C;function w(){return(w=t((()=>{S=e(n(),1),l(),m(),r(),d(),b(),C=o(),x.__docgenInfo={description:`Переключатель boolean-состояния в виде слайдера. Подходит для быстрых настроек и включения/отключения опций.`,methods:[],displayName:`Switch`}})))()}export{w as n,x as t};
@@ -0,0 +1,15 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./Switch-Cj8-VcVg.js";import{n as i}from"./iframe-DlUmG4EA.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";var s=t({BiState:()=>f,Disabled:()=>m,TriState:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{a(),n(),c=i(),l=o((e,t)=>(0,c.jsx)(r,{...e,triState:!1,value:e.value??!1,onChange:n=>{e.onChange(n),t({value:n})}})),u=o((e,t)=>(0,c.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,c.jsx)(r,{...e,triState:!0,value:e.value,onChange:n=>{e.onChange(n),t({value:n})}}),(0,c.jsxs)(`div`,{children:[`Текущее значение: `,String(e.value)]})]})),d={title:`UI/Switch`,component:r,args:{label:`Режим обработки`,description:`Переключение состояния`,value:!1,onChange:()=>{},triState:!1,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок переключателя.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение (`boolean` или `undefined` в tri-state).",control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},triState:{description:"Включает трехсостоянный режим (`undefined → true → false`).",control:`boolean`},checkedIcon:{description:"Кастомная иконка для состояния `true`.",control:!1},uncheckedIcon:{description:"Кастомная иконка для состояния `false`.",control:!1},disabled:{description:`Блокирует переключение.`,control:`boolean`}}},f={render:l},p={render:u,args:{triState:!0,value:void 0}},m={render:l,args:{disabled:!0,value:!0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
+ render: renderBiStateSwitchStory
3
+ }`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
4
+ render: renderTriStateSwitchStory,
5
+ args: {
6
+ triState: true,
7
+ value: undefined
8
+ }
9
+ }`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
10
+ render: renderBiStateSwitchStory,
11
+ args: {
12
+ disabled: true,
13
+ value: true
14
+ }
15
+ }`,...m.parameters?.docs?.source}}},h=[`BiState`,`TriState`,`Disabled`]})))()}export{g as a,p as i,m as n,s as r,f as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./Table.stories-DDFcryTl.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-v2XPznvF.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./Table.stories-BNQvlsuf.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,M.jsx)(u,{children:`Table`}),`
3
3
  `,(0,M.jsxs)(o,{children:[`Плоская таблица как React-альтернатива `,(0,M.jsx)(t.code,{children:`sap.m.Table`})]}),`
4
4
  `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`Table`}),` предназначен для плоских данных и по поведению осознанно сближен с `,(0,M.jsx)(t.code,{children:`TreeTable`}),`.
@@ -7,7 +7,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
7
7
  `,(0,M.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
8
8
  `,(0,M.jsx)(f,{}),`
9
9
  `,(0,M.jsx)(i,{of:O}),`
10
- `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { Table, type TableColumnDef } from "@/shared/ui";
10
+ `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { Table, type TableColumnDef } from "@ryuzaki13/react-foundation-ui";
11
11
 
12
12
  interface DealRow {
13
13
  id: string;
@@ -103,7 +103,7 @@ const columns = enrichTableColumnsWithODataFormatting(manualColumns, metadata.co
103
103
  `,(0,M.jsxs)(t.p,{children:[`Наиболее частый кейс - работать не с pure-helper напрямую, а с hook-слоем `,(0,M.jsx)(t.code,{children:`useODataTableColumns(...)`}),`.`]}),`
104
104
  `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`build`}),` стоит выбирать, когда колонки можно полностью собрать из `,(0,M.jsx)(t.code,{children:`metadata.columns`}),`:`]}),`
105
105
  `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { useODataTableColumns } from "@ryuzaki13/react-foundation-api/odata";
106
- import { Table } from "@/shared/ui";
106
+ import { Table } from "@ryuzaki13/react-foundation-ui";
107
107
 
108
108
  function DealsTable({ rows }: { rows: DealRow[] }) {
109
109
  const { columns, metadata, isLoading } = useODataTableColumns<DealRow>({
@@ -126,7 +126,7 @@ function DealsTable({ rows }: { rows: DealRow[] }) {
126
126
  `})}),`
127
127
  `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`enrich`}),` подходит, когда колонки уже описаны вручную и нужно только дозаполнить `,(0,M.jsx)(t.code,{children:`meta.formatting.role/type`}),`:`]}),`
128
128
  `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { useODataTableColumns } from "@ryuzaki13/react-foundation-api/odata";
129
- import { Table } from "@/shared/ui";
129
+ import { Table } from "@ryuzaki13/react-foundation-ui";
130
130
 
131
131
  const manualColumns: TableColumnDef<DealRow>[] = [
132
132
  { id: "product", accessorKey: "product", header: "Позиция" },
@@ -0,0 +1,178 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DlUmG4EA.js";import{$ as i,J as a,Q as ee,X as te,Z as ne,_ as re,a as ie,b as ae,d as oe,g as se,i as ce}from"./odata-BMO7cuBZ.js";import{i as le,y as ue}from"./formatters-D33Uh3si-Df97arf9.js";import{n as de,t as o}from"./createControlledStoryRender-BouhvX-R.js";import{_ as fe,a as pe,b as me,c as he,d as ge,f as _e,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as Ae,x as je,y as Me}from"./FormattedTableCell-SiBfPwwP.js";var s,Ne,Pe;function c(){return(c=e((()=>{s=`hKghZt`,Ne=`QsLRvS`,Pe={selectedIndicatorCell:s,sentinel:Ne}})))()}function Fe(e,t){return String(t)}function l({title:e,isLoading:t,isFetching:n,data:r,columns:i,selectionMode:a=`none`,selectedRowIds:ee,getRowId:te,className:ne,minHeight:ie,tableClassName:ae,columnVisibility:oe,defaultColumnVisibility:ce,columnOrder:ue,defaultColumnOrder:de,columnSizing:o,defaultColumnSizing:pe,columnPinning:me,defaultColumnPinning:ge,enableColumnResizing:ve=!1,enableColumnReordering:be=!1,columnResizeMinWidth:xe,onColumnVisibilityChange:Se,onColumnOrderChange:Ce,onColumnSizingChange:De,onColumnPinningChange:Me,onRowClick:s,onRowSelectionChange:Ne,onReachEnd:c,getRowCanSelect:l,getRowClassName:f,renderHeaderContextMenu:Ie,renderCellContent:p}){let m=(0,u.useMemo)(()=>r??[],[r]),h=(0,u.useMemo)(()=>ye(i),[i]),g=te??Fe,_=(0,u.useMemo)(()=>new Map(m.map((e,t)=>[g(e,t),e])),[g,m]),Le=(0,u.useMemo)(()=>Array.from(_.keys()),[_]),v=(0,u.useRef)(null),y=(0,u.useRef)(null),{rowSelection:b,activateRowSelection:x}=se({availableRowIds:Le,rowById:_,selectionMode:a,selectedRowIds:ee,onRowSelectionChange:Ne}),{columnVisibility:S,onColumnVisibilityChange:C}=we({columnVisibility:oe,defaultColumnVisibility:ce,onColumnVisibilityChange:Se}),{columnOrder:w,onColumnOrderChange:T}=_e({columnOrder:ue,defaultColumnOrder:de,onColumnOrderChange:Ce}),{columnSizing:E,onColumnSizingChange:D}=he({columnSizing:o,defaultColumnSizing:pe,columnResizeMinWidth:xe,onColumnSizingChange:De}),{columnPinning:O,onColumnPinningChange:k}=ke({columnPinning:me,defaultColumnPinning:ge,onColumnPinningChange:Me}),A=(0,u.useMemo)(()=>({columnOrder:w,columnPinning:O,columnSizing:E,columnVisibility:S}),[w,O,E,S]),j=(0,u.useEffectEvent)(()=>{c?.()});(0,u.useEffect)(()=>{if(!c||!v.current||!y.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&j()},{root:v.current,threshold:.1});return e.observe(y.current),()=>e.disconnect()},[t,c,m.length]);let M=je({features:re,data:m,columns:i,state:{columnOrder:w,columnPinning:O,columnSizing:E,columnVisibility:S,rowSelection:b},onColumnOrderChange:T,onColumnPinningChange:k,onColumnSizingChange:D,onColumnVisibilityChange:C,getRowId:(e,t)=>g(e,t),enableMultiRowSelection:a===`multi`,enableRowSelection:e=>a===`none`?!1:!l||l(e.original)}),N=Ae(M,A),P=M.getRowModel().rows,F=(0,u.useMemo)(()=>Te({rows:P,columns:N}),[P,N]),I=N[0]?.id;return(0,d.jsx)(Ee,{table:M,columnState:A,title:e,isLoading:t,isFetching:n,className:ne,minHeight:ie,tableClassName:ae,selectionMode:a,scrollableRef:v,onActivateRow:a!==`none`||s?e=>{x(e.id,e.getCanSelect()),s?.(e.original)}:void 0,isRowInteractive:e=>!!(s||a!==`none`&&e.getCanSelect()),getRowClassName:e=>f?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===I&&e.getIsSelected()?Pe.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>F.get(e.id),renderHeaderContextMenu:Ie,enableColumnResizing:ve,enableColumnReordering:be,columnResizeMinWidth:xe,renderCellContent:e=>{let t=le({field:h.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=fe({columnId:e.cell.column.id,runtimeByColumnId:h.runtimeByColumnId,customCellColumnIds:h.customCellColumnIds})?(0,d.jsx)(Oe,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return p?p({...e,defaultContent:n,displayValue:t}):n},afterTableContent:c?(0,d.jsx)(`div`,{ref:y,className:Pe.sentinel,"aria-hidden":`true`}):null})}var u,d;function f(){return(f=e((()=>{u=n(),ue(),ae(),me(),be(),Se(),ve(),Ce(),Me(),ge(),xe(),De(),pe(),c(),d=r(),l.__docgenInfo={description:"Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.",methods:[],displayName:`Table`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок таблицы.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},selectedRowIds:{required:!1,tsType:{name:`unknown`},description:`Внешний список выбранных строк.
2
+
3
+ Если передан, таблица синхронизирует визуальное выделение с этим набором id.`},getRowId:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData, index: number) => string`,signature:{arguments:[{type:{name:`TData`},name:`row`},{type:{name:`number`},name:`index`}],return:{name:`string`}}},description:`Стабильный идентификатор строки.
4
+
5
+ Если не задан, используется индекс строки.`},className:{required:!1,tsType:{name:`string`},description:`Дополнительный CSS-класс корневого контейнера.`},minHeight:{required:!1,tsType:{name:`union`,raw:"`${number}em` | `${number}%`",elements:[{name:`literal`,value:"`${number}em`"},{name:`literal`,value:"`${number}%`"}]},description:``},tableClassName:{required:!1,tsType:{name:`string`},description:"Дополнительный CSS-класс тега `table`."},columnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Внешнее controlled-состояние видимости колонок.`},defaultColumnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Стартовое uncontrolled-состояние видимости колонок.`},columnOrder:{required:!1,tsType:{name:`unknown`},description:`Внешнее controlled-состояние порядка колонок.`},defaultColumnOrder:{required:!1,tsType:{name:`unknown`},description:`Стартовое uncontrolled-состояние порядка колонок.`},columnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Внешнее controlled-состояние ширин колонок в px.`},defaultColumnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Стартовое uncontrolled-состояние ширин колонок в px.`},columnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Внешнее controlled-состояние start-pinning для колонок.`},defaultColumnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Стартовое uncontrolled-состояние start-pinning для колонок.`},enableColumnResizing:{required:!1,tsType:{name:`boolean`},description:`Включает изменение ширины колонок через header-handle.`,defaultValue:{value:`false`,computed:!1}},enableColumnReordering:{required:!1,tsType:{name:`boolean`},description:`Включает изменение порядка колонок через drag&drop заголовков.`,defaultValue:{value:`false`,computed:!1}},columnResizeMinWidth:{required:!1,tsType:{name:`number`},description:`Минимальная ширина колонки при resize в px.`},onColumnVisibilityChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnVisibilityState) => void`,signature:{arguments:[{type:{name:`TableColumnVisibilityState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения видимости колонок.`},onColumnOrderChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnOrderState) => void`,signature:{arguments:[{type:{name:`TableColumnOrderState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения порядка колонок.`},onColumnSizingChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnSizingState) => void`,signature:{arguments:[{type:{name:`TableColumnSizingState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения ширины колонок.`},onColumnPinningChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnPinningState) => void`,signature:{arguments:[{type:{name:`TableColumnPinningState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения start-pinning state.`},onRowClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => void`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`void`}}},description:`Вызывается при активации строки кликом или клавиатурой.`},onRowSelectionChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(rows: TData[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TData`}],raw:`TData[]`},name:`rows`}],return:{name:`void`}}},description:`Вызывается после изменения выбранных строк.`},onReachEnd:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается при достижении конца таблицы внутри scroll-контейнера.`},getRowCanSelect:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => boolean`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`boolean`}}},description:`Позволяет запретить выбор отдельных строк.`},getRowClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => string | undefined`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:`Позволяет добавить CSS-класс для конкретной строки.`},renderHeaderContextMenu:{required:!1,tsType:{name:`BaseTableProps["renderHeaderContextMenu"]`,raw:`BaseTableProps<TData>["renderHeaderContextMenu"]`},description:`Контекстное меню заголовка колонки. Используется для общих runtime-действий
6
+ вроде server sorting без встраивания доменной логики в shared-таблицу.`},renderCellContent:{required:!1,tsType:{name:`BaseTableProps["renderCellContent"]`,raw:`BaseTableProps<TData>["renderCellContent"]`},description:"Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\nВ отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n`defaultContent` уже содержит отформатированное значение, если оно применимо."}}}})))()}var Ie=t({Basic:()=>z,Empty:()=>W,Fetching:()=>U,Loading:()=>K,MultiSelect:()=>V,ReachEnd:()=>G,WithColumnPinning:()=>B,WithDisabledRows:()=>H,WithFormattingPipeline:()=>J,WithFormulaColumn:()=>q,WithHiddenZero:()=>Y,WithMergedDuplicates:()=>X,WithODataMetadataAdapter:()=>Z,WithUseODataTableColumnsBuildHook:()=>Q,WithUseODataTableColumnsEnrichHook:()=>$,__namedExportsOrder:()=>Be,default:()=>Re});function p(){return{version:1,plan:{steps:[{id:`state`,type:`resolveValueState`,config:{resolver:{kind:`threshold`,thresholds:[100],states:[`success`,`warning`],invalidState:`none`},icon:{enabled:!0,showValue:!0,position:`right`}}},{id:`typed`,type:`typedValueFormat`}]}}}function m(e,t){let n=e.data??[];return t.map(t=>{let r=n.indexOf(t);return e.getRowId?.(t,r)??String(r)})}function h({args:e,updateArgs:t}){return(0,y.jsx)(l,{...e,onColumnVisibilityChange:n=>{e.onColumnVisibilityChange?.(n),t({columnVisibility:n})},onColumnOrderChange:n=>{e.onColumnOrderChange?.(n),t({columnOrder:n})},onColumnSizingChange:n=>{e.onColumnSizingChange?.(n),t({columnSizing:n})},onColumnPinningChange:n=>{e.onColumnPinningChange?.(n),t({columnPinning:n})},onRowSelectionChange:n=>{e.onRowSelectionChange?.(n),t({selectedRowIds:m(e,n)})}})}function g({args:e,updateArgs:t}){let{columns:n,metadata:r,isLoading:i}=ce({service:N,target:P,mode:`build`});return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Режим build: hook собрал `,n.length,` колонки из metadata`,r?` для сущности «${r.title}».`:`.`]}),(0,y.jsx)(h,{args:{...e,columns:n,isLoading:e.isLoading??i},updateArgs:t})]})}function _({args:e,updateArgs:t}){let{columns:n,metadata:r,isLoading:i}=ce({service:N,target:P,mode:`enrich`,columns:j});return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Режим enrich: hook сохранил ручные заголовки и дополнил formatting-контекст`,r?` из metadata «${r.title}».`:`.`]}),(0,y.jsx)(h,{args:{...e,columns:n,isLoading:e.isLoading??i},updateArgs:t})]})}function Le({args:e,updateArgs:t}){let[n,r]=(0,v.useState)(0);return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Событие достижения конца: `,n]}),(0,y.jsx)(h,{args:{...e,onReachEnd:()=>{e.onReachEnd?.(),r(e=>e+1)}},updateArgs:t})]})}var v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,Re,L,R,ze,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$,Be;function Ve(){return(Ve=e((()=>{v=n(),ie(),ne(),ae(),i(),de(),f(),y=r(),b=[{id:`1`,number:`450001`,client:`Северсталь`,manager:`Иван Петров`,amount:`1 250 000`,status:`Новая`},{id:`2`,number:`450002`,client:`ММК`,manager:`Анна Смирнова`,amount:`980 000`,status:`В работе`},{id:`3`,number:`450003`,client:`НЛМК`,manager:`Олег Николаев`,amount:`1 540 000`,status:`Согласование`},{id:`4`,number:`450004`,client:`ЕВРАЗ`,manager:`Мария Кузнецова`,amount:`760 000`,status:`Отгружена`},{id:`5`,number:`450005`,client:`ТМК`,manager:`Дмитрий Волков`,amount:`1 120 000`,status:`Закрыта`}],x=[...b,{id:`6`,number:`450006`,client:`ОМК`,manager:`Елена Андреева`,amount:`680 000`,status:`Архив`,isLocked:!0}],S=Array.from({length:18},(e,t)=>({id:String(t+1),number:`4600${String(t+1).padStart(2,`0`)}`,client:`Клиент ${t+1}`,manager:`Менеджер ${t+1}`,amount:`${850+t*15} 000`,status:t%2==0?`В работе`:`Согласование`})),C=[{id:`number`,accessorKey:`number`,header:`Номер`,meta:{width:9}},{id:`client`,accessorKey:`client`,header:`Клиент`,meta:{width:14}},{id:`manager`,accessorKey:`manager`,header:`Менеджер`,meta:{width:12}},{id:`amount`,accessorKey:`amount`,header:`Сумма`,meta:{width:10,align:`right`}},{id:`status`,accessorKey:`status`,header:`Статус`,meta:{width:11}}],w=[{id:`fmt-1`,product:`Лист горячекатаный`,purchasePrice:80,salePrice:120,healthScore:35,pendingAmount:0,createdAt:`2026-03-18T09:15:00.000Z`,totalAmount:1520.5},{id:`fmt-2`,product:`Рулон оцинкованный`,purchasePrice:95,salePrice:150,healthScore:125,pendingAmount:320,createdAt:`2026-03-19T11:40:00.000Z`,totalAmount:2140},{id:`fmt-3`,product:`Арматура`,purchasePrice:60,salePrice:90,healthScore:70,pendingAmount:0,createdAt:`2026-03-20T07:05:00.000Z`,totalAmount:980.75}],T=[{id:`merge-1`,division:`ДВД`,department:`Продажи`,employee:`Иван Петров`},{id:`merge-2`,division:`ДВД`,department:`Продажи`,employee:`Анна Смирнова`},{id:`merge-3`,division:`ДВД`,department:`Продажи`,employee:`Олег Николаев`},{id:`merge-4`,division:`УД`,department:`Логистика`,employee:`Мария Кузнецова`},{id:`merge-5`,division:`УД`,department:`Логистика`,employee:`Дмитрий Волков`},{id:`merge-6`,division:`УД`,department:`Логистика`,employee:`Елена Андреева`},{id:`merge-7`,division:`УД`,department:`Логистика`,employee:`Николай Орлов`}],E=[{id:`division`,accessorKey:`division`,header:`Дивизион`,meta:{width:10,mergeDuplicates:!0}},{id:`department`,accessorKey:`department`,header:`Подразделение`,meta:{width:12}},{id:`employee`,accessorKey:`employee`,header:`Сотрудник`,meta:{width:14}}],D=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`purchasePrice`,accessorKey:`purchasePrice`,header:`Закупка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`salePrice`,accessorKey:`salePrice`,header:`Продажа`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`markup`,accessorFn:()=>void 0,header:`Наценка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,formulaId:`markup`,formulaDependencies:[`purchasePrice`,`salePrice`],purelyDerived:!0}}}],O=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`healthScore`,accessorKey:`healthScore`,header:`Индекс риска`,meta:{width:10,align:`right`,formatting:{role:`measure`,type:`decimal`,formattersPipeline:p()}}}],k=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`pendingAmount`,accessorKey:`pendingAmount`,header:`Резерв`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,emptyWhenZero:!0}}}],A=[{id:`product`,type:`string`,originalType:`Edm.String`,label:`Товар`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`createdAt`,type:`datetime`,originalType:`Edm.DateTime`,label:`Дата создания`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`totalAmount`,type:`decimal`,originalType:`Edm.Decimal`,label:`Сумма`,semanticType:`none`,sortable:!0,filterable:!0,role:`measure`}],j=[{id:`product`,accessorKey:`product`,header:`Позиция`,meta:{width:16}},{id:`createdAt`,accessorKey:`createdAt`,header:`Создано`,meta:{width:12}},{id:`totalAmount`,accessorKey:`totalAmount`,header:`Итог`,meta:{width:9,align:`right`}}],M=oe(j,A),N=`ZDEMO_DEALS_SRV`,P=`DealSet`,F={title:`Портфель сделок`,columns:A},I=(e,t)=>{let n=(0,v.useMemo)(()=>{let e=te({}),n=t.parameters.odataService,r=t.parameters.odataEntity,i=t.parameters.odataMetadata;return n&&r&&i&&e.setQueryData(a({service:n}).queryKey,{entities:{[r]:i},functionImports:{}}),e},[t.parameters.odataEntity,t.parameters.odataMetadata,t.parameters.odataService]);return(0,y.jsx)(ee,{client:n,children:e()})},Re={title:`UI/Table`,component:l,args:{title:`Сделки`,data:b,columns:C,getRowId:e=>e.id,selectionMode:`single`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{title:{description:`Заголовок таблицы.`,control:`text`},isLoading:{description:`Показывает состояние первичной загрузки.`,control:`boolean`},isFetching:{description:`Показывает фоновое обновление без очистки строк.`,control:`boolean`},data:{description:`Плоский источник строк.`,control:!1},columns:{description:`Описание колонок таблицы.`,control:!1},selectionMode:{description:`Режим выбора строк.`,control:`inline-radio`,options:[`none`,`single`,`multi`]},selectedRowIds:{description:`Controlled-набор выбранных id строк.`,control:!1},getRowId:{description:`Функция получения стабильного id строки.`,control:!1},minHeight:{description:`Минимальная высота scroll-области таблицы в em или процентах.`,control:`text`},columnVisibility:{description:`Controlled-состояние видимости колонок.`,control:!1},defaultColumnVisibility:{description:`Стартовое uncontrolled-состояние видимости колонок.`,control:!1},columnOrder:{description:`Controlled-порядок идентификаторов колонок.`,control:!1},defaultColumnOrder:{description:`Стартовый uncontrolled-порядок колонок.`,control:!1},columnSizing:{description:`Controlled-ширины колонок в px.`,control:!1},defaultColumnSizing:{description:`Стартовые uncontrolled-ширины колонок.`,control:!1},columnPinning:{description:`Controlled-состояние закрепления колонок слева.`,control:!1},defaultColumnPinning:{description:`Стартовое uncontrolled-состояние закрепления колонок слева.`,control:!1},onColumnPinningChange:{description:`Вызывается после изменения закрепления колонок слева.`,control:!1},enableColumnResizing:{description:`Включает изменение ширины колонок через header-handle.`,control:`boolean`},enableColumnReordering:{description:`Включает перетаскивание заголовков для изменения порядка колонок.`,control:`boolean`},columnResizeMinWidth:{description:`Минимальная ширина колонки при resize в px.`,control:`number`},onColumnVisibilityChange:{description:`Вызывается после изменения видимости колонок.`,control:!1},onColumnOrderChange:{description:`Вызывается после изменения порядка колонок.`,control:!1},onColumnSizingChange:{description:`Вызывается после изменения ширины колонок.`,control:!1},getRowCanSelect:{description:`Позволяет запретить выбор отдельных строк.`,control:!1},getRowClassName:{description:`Позволяет добавить CSS-класс для конкретной строки.`,control:!1},onRowClick:{description:`Вызывается при активации строки.`,control:!1},onRowSelectionChange:{description:`Вызывается после изменения выбранных строк.`,control:!1},onReachEnd:{description:`Вызывается при достижении конца списка внутри scroll-контейнера.`,control:!1},renderHeaderContextMenu:{description:`Слот контекстного меню заголовка колонки.`,control:!1},renderCellContent:{description:`Слот содержимого ячейки поверх стандартного formatting-runtime.`,control:!1}}},L=o((e,t)=>(0,y.jsx)(h,{args:e,updateArgs:t})),R=o((e,t)=>(0,y.jsx)(h,{args:e,updateArgs:t})),ze=o((e,t)=>(0,y.jsx)(h,{args:e,updateArgs:t})),z={render:L},B={args:{columnPinning:{start:[`number`]}},render:o((e,t)=>{let n=e.columnPinning??{start:[]};return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{style:{display:`flex`,gap:`0.5em`,flexWrap:`wrap`},children:[(0,y.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`]}}),children:`Закрепить «Номер»`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`,`client`]}}),children:`Закрепить «Номер» и «Клиент»`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[]}}),children:`Снять закрепление`})]}),(0,y.jsxs)(`div`,{children:[`Закреплено в начале: `,n.start?.length?n.start.join(`, `):`ничего`]}),(0,y.jsx)(h,{args:{...e,columnPinning:n},updateArgs:t})]})})},V={args:{selectionMode:`multi`,selectedRowIds:[]},render:o((e,t)=>(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,y.jsx)(h,{args:e,updateArgs:t})]}))},H={args:{data:x,selectionMode:`multi`,selectedRowIds:[],getRowCanSelect:e=>!e.isLocked},render:o((e,t)=>(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsx)(`div`,{children:`Строка со статусом «Архив» остаётся видимой, но не участвует в выборе.`}),(0,y.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,y.jsx)(h,{args:e,updateArgs:t})]}))},U={args:{isFetching:!0},render:L},W={args:{data:[]},render:L},G={args:{data:S},render:o((e,t)=>(0,y.jsx)(Le,{args:e,updateArgs:t}))},K={args:{isLoading:!0},render:L},q={args:{title:`Формула наценки`,data:w,columns:D,selectionMode:`none`,getRowId:e=>e.id},render:R},J={args:{title:`Pipeline форматирования`,data:w,columns:O,selectionMode:`none`,getRowId:e=>e.id},render:R},Y={args:{title:`Скрытие нулей`,data:w,columns:k,selectionMode:`none`,getRowId:e=>e.id},render:R},X={args:{title:`Слияние дубликатов`,data:T,columns:E,selectionMode:`none`,getRowId:e=>e.id},render:ze},Z={args:{title:`OData metadata adapter`,data:w,columns:M,selectionMode:`none`,getRowId:e=>e.id},render:R},Q={args:{title:`useODataTableColumns: build`,data:w,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[I],parameters:{odataService:N,odataEntity:P,odataMetadata:F},render:o((e,t)=>(0,y.jsx)(g,{args:e,updateArgs:t}))},$={args:{title:`useODataTableColumns: enrich`,data:w,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[I],parameters:{odataService:N,odataEntity:P,odataMetadata:F},render:o((e,t)=>(0,y.jsx)(_,{args:e,updateArgs:t}))},z.parameters={...z.parameters,docs:{...z.parameters?.docs,source:{originalSource:`{
7
+ render: renderDealTableStory
8
+ }`,...z.parameters?.docs?.source},description:{story:`Базовый сценарий плоской таблицы с одиночным выбором.`,...z.parameters?.docs?.description}}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
9
+ args: {
10
+ columnPinning: {
11
+ start: ["number"]
12
+ }
13
+ },
14
+ render: createControlledStoryRender<TableProps<DealRow>>((args, updateArgs) => {
15
+ const columnPinning = args.columnPinning ?? {
16
+ start: []
17
+ };
18
+ return <div style={{
19
+ display: "grid",
20
+ gap: "0.75em"
21
+ }}>
22
+ <div style={{
23
+ display: "flex",
24
+ gap: "0.5em",
25
+ flexWrap: "wrap"
26
+ }}>
27
+ <button type="button" onClick={() => updateArgs({
28
+ columnPinning: {
29
+ start: ["number"]
30
+ }
31
+ })}>
32
+ Закрепить «Номер»
33
+ </button>
34
+ <button type="button" onClick={() => updateArgs({
35
+ columnPinning: {
36
+ start: ["number", "client"]
37
+ }
38
+ })}>
39
+ Закрепить «Номер» и «Клиент»
40
+ </button>
41
+ <button type="button" onClick={() => updateArgs({
42
+ columnPinning: {
43
+ start: []
44
+ }
45
+ })}>
46
+ Снять закрепление
47
+ </button>
48
+ </div>
49
+ <div>Закреплено в начале: {columnPinning.start?.length ? columnPinning.start.join(", ") : "ничего"}</div>
50
+ <TableStoryCanvas args={{
51
+ ...args,
52
+ columnPinning
53
+ }} updateArgs={updateArgs} />
54
+ </div>;
55
+ })
56
+ }`,...B.parameters?.docs?.source},description:{story:`Демонстрирует controlled start-pinning через внешний story-state без встроенного UI таблицы.`,...B.parameters?.docs?.description}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
57
+ args: {
58
+ selectionMode: "multi",
59
+ selectedRowIds: []
60
+ },
61
+ render: createControlledStoryRender<TableProps<DealRow>>((args, updateArgs) => <div style={{
62
+ display: "grid",
63
+ gap: "0.75em"
64
+ }}>
65
+ <div>Выбрано: {args.selectedRowIds?.length ? args.selectedRowIds.join(", ") : "ничего"}</div>
66
+ <TableStoryCanvas args={args} updateArgs={updateArgs} />
67
+ </div>)
68
+ }`,...V.parameters?.docs?.source},description:{story:`Множественный выбор с отображением текущего результата.`,...V.parameters?.docs?.description}}},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`{
69
+ args: {
70
+ data: nonSelectableRows,
71
+ selectionMode: "multi",
72
+ selectedRowIds: [],
73
+ getRowCanSelect: row => !row.isLocked
74
+ },
75
+ render: createControlledStoryRender<TableProps<DealRow>>((args, updateArgs) => <div style={{
76
+ display: "grid",
77
+ gap: "0.75em"
78
+ }}>
79
+ <div>Строка со статусом «Архив» остаётся видимой, но не участвует в выборе.</div>
80
+ <div>Выбрано: {args.selectedRowIds?.length ? args.selectedRowIds.join(", ") : "ничего"}</div>
81
+ <TableStoryCanvas args={args} updateArgs={updateArgs} />
82
+ </div>)
83
+ }`,...H.parameters?.docs?.source},description:{story:`Часть строк можно показать, но запретить выбирать.`,...H.parameters?.docs?.description}}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
84
+ args: {
85
+ isFetching: true
86
+ },
87
+ render: renderDealTableStory
88
+ }`,...U.parameters?.docs?.source},description:{story:`Сценарий фонового обновления данных без очистки таблицы.`,...U.parameters?.docs?.description}}},W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
89
+ args: {
90
+ data: []
91
+ },
92
+ render: renderDealTableStory
93
+ }`,...W.parameters?.docs?.source},description:{story:`Пустой источник данных.`,...W.parameters?.docs?.description}}},G.parameters={...G.parameters,docs:{...G.parameters?.docs,source:{originalSource:`{
94
+ args: {
95
+ data: reachEndRows
96
+ },
97
+ render: createControlledStoryRender<TableProps<DealRow>>((args, updateArgs) => <ReachEndTableCanvas args={args} updateArgs={updateArgs} />)
98
+ }`,...G.parameters?.docs?.source},description:{story:`Демонстрация callback при достижении конца списка.`,...G.parameters?.docs?.description}}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
99
+ args: {
100
+ isLoading: true
101
+ },
102
+ render: renderDealTableStory
103
+ }`,...K.parameters?.docs?.source},description:{story:`Состояние первичной загрузки.`,...K.parameters?.docs?.description}}},q.parameters={...q.parameters,docs:{...q.parameters?.docs,source:{originalSource:`{
104
+ args: {
105
+ title: "Формула наценки",
106
+ data: formattingRows,
107
+ columns: formulaColumns,
108
+ selectionMode: "none",
109
+ getRowId: row => row.id
110
+ },
111
+ render: renderFormattingTableStory
112
+ }`,...q.parameters?.docs?.source},description:{story:"Сценарий с formula-based колонкой без кастомного `cell`.",...q.parameters?.docs?.description}}},J.parameters={...J.parameters,docs:{...J.parameters?.docs,source:{originalSource:`{
113
+ args: {
114
+ title: "Pipeline форматирования",
115
+ data: formattingRows,
116
+ columns: pipelineColumns,
117
+ selectionMode: "none",
118
+ getRowId: row => row.id
119
+ },
120
+ render: renderFormattingTableStory
121
+ }`,...J.parameters?.docs?.source},description:{story:`Сценарий с pipeline display-formatting и value-state.`,...J.parameters?.docs?.description}}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
122
+ args: {
123
+ title: "Скрытие нулей",
124
+ data: formattingRows,
125
+ columns: hiddenZeroColumns,
126
+ selectionMode: "none",
127
+ getRowId: row => row.id
128
+ },
129
+ render: renderFormattingTableStory
130
+ }`,...Y.parameters?.docs?.source},description:{story:"Сценарий со скрытием нулевых значений через `emptyWhenZero`.",...Y.parameters?.docs?.description}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
131
+ args: {
132
+ title: "Слияние дубликатов",
133
+ data: divisionMergeRows,
134
+ columns: divisionMergeColumns,
135
+ selectionMode: "none",
136
+ getRowId: row => row.id
137
+ },
138
+ render: renderDivisionMergeTableStory
139
+ }`,...X.parameters?.docs?.source},description:{story:`Сценарий со display-only слиянием подряд идущих дубликатов через пустые ячейки и CSS-склейку.`,...X.parameters?.docs?.description}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
140
+ args: {
141
+ title: "OData metadata adapter",
142
+ data: formattingRows,
143
+ columns: adapterColumns,
144
+ selectionMode: "none",
145
+ getRowId: row => row.id
146
+ },
147
+ render: renderFormattingTableStory
148
+ }`,...Z.parameters?.docs?.source},description:{story:`Сценарий со статическим OData metadata adapter в режиме enrich.`,...Z.parameters?.docs?.description}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
149
+ args: {
150
+ title: "useODataTableColumns: build",
151
+ data: formattingRows,
152
+ columns: [],
153
+ selectionMode: "none",
154
+ getRowId: row => row.id
155
+ },
156
+ decorators: [withMockedHookODataMetadata],
157
+ parameters: {
158
+ odataService: HOOK_ODATA_SERVICE,
159
+ odataEntity: HOOK_ODATA_ENTITY,
160
+ odataMetadata: hookMetadata
161
+ },
162
+ render: createControlledStoryRender<TableProps<DealFormattingRow>>((args, updateArgs) => <HookBuildTableStory args={args} updateArgs={updateArgs} />)
163
+ }`,...Q.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме build.",...Q.parameters?.docs?.description}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
164
+ args: {
165
+ title: "useODataTableColumns: enrich",
166
+ data: formattingRows,
167
+ columns: [],
168
+ selectionMode: "none",
169
+ getRowId: row => row.id
170
+ },
171
+ decorators: [withMockedHookODataMetadata],
172
+ parameters: {
173
+ odataService: HOOK_ODATA_SERVICE,
174
+ odataEntity: HOOK_ODATA_ENTITY,
175
+ odataMetadata: hookMetadata
176
+ },
177
+ render: createControlledStoryRender<TableProps<DealFormattingRow>>((args, updateArgs) => <HookEnrichTableStory args={args} updateArgs={updateArgs} />)
178
+ }`,...$.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме enrich.",...$.parameters?.docs?.description}}},Be=[`Basic`,`WithColumnPinning`,`MultiSelect`,`WithDisabledRows`,`Fetching`,`Empty`,`ReachEnd`,`Loading`,`WithFormulaColumn`,`WithFormattingPipeline`,`WithHiddenZero`,`WithMergedDuplicates`,`WithODataMetadataAdapter`,`WithUseODataTableColumnsBuildHook`,`WithUseODataTableColumnsEnrichHook`]})))()}export{Ve as _,V as a,B as c,q as d,Y as f,$ as g,Q as h,K as i,H as l,Z as m,W as n,G as o,X as p,U as r,Ie as s,z as t,J as u};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d}from"./blocks-IjspN281.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./Tabs.stories-B_76Da9k.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:h,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d}from"./blocks-v2XPznvF.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./Tabs.stories-CPIuTwP2.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:h,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,w.jsx)(u,{children:`Tabs`}),`
3
3
  `,(0,w.jsx)(o,{children:`Набор tabs-компонентов с разделением простого scroll-сценария и составного panel-layout сценария`}),`
4
4
  `,(0,w.jsxs)(t.p,{children:[`После рефакторинга `,(0,w.jsx)(t.code,{children:`tabs`}),` разделены на два независимых сценария:`]}),`
@@ -16,7 +16,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
16
16
  `,(0,w.jsx)(t.h2,{id:`tabsbox`,children:`TabsBox`}),`
17
17
  `,(0,w.jsx)(d,{of:b}),`
18
18
  `,(0,w.jsx)(i,{of:b}),`
19
- `,(0,w.jsx)(t.pre,{children:(0,w.jsx)(t.code,{className:`language-tsx`,children:`import { TabsBox, type TabsBoxItem } from "@/shared/ui";
19
+ `,(0,w.jsx)(t.pre,{children:(0,w.jsx)(t.code,{className:`language-tsx`,children:`import { TabsBox, type TabsBoxItem } from "@ryuzaki13/react-foundation-ui";
20
20
 
21
21
  const items: TabsBoxItem[] = [
22
22
  { id: "profile", title: "Профиль", content: <div>Содержимое профиля</div> },
@@ -37,7 +37,7 @@ export function Example() {
37
37
  `,(0,w.jsx)(d,{of:_}),`
38
38
  `,(0,w.jsx)(t.h2,{id:`tabslayout`,children:`TabsLayout`}),`
39
39
  `,(0,w.jsx)(d,{of:y}),`
40
- `,(0,w.jsx)(t.pre,{children:(0,w.jsx)(t.code,{className:`language-tsx`,children:`import { Scrollable, TabsLayout } from "@/shared/ui";
40
+ `,(0,w.jsx)(t.pre,{children:(0,w.jsx)(t.code,{className:`language-tsx`,children:`import { Scrollable, TabsLayout } from "@ryuzaki13/react-foundation-ui";
41
41
 
42
42
  export function Example() {
43
43
  return (