@ryuzaki13/react-foundation-ui 3.11.0 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js → TextEditorLexicalClient-apy-Cugj.js} +101 -101
  2. package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js.map → TextEditorLexicalClient-apy-Cugj.js.map} +1 -1
  3. package/dist/styles.css +1 -1
  4. package/dist/text-editor/TextEditorLexicalViewer.d.ts +10 -0
  5. package/dist/text-editor/TextEditorLexicalViewer.d.ts.map +1 -0
  6. package/dist/text-editor/index.d.ts +1 -0
  7. package/dist/text-editor/index.d.ts.map +1 -1
  8. package/dist/text-editor/index.js +298 -7
  9. package/dist/text-editor/index.js.map +1 -1
  10. package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts +5 -0
  11. package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts.map +1 -0
  12. package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts +4 -0
  13. package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts.map +1 -0
  14. package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts +3 -0
  15. package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts.map +1 -0
  16. package/dist/text-editor/model/textEditorViewerTypes.d.ts +58 -0
  17. package/dist/text-editor/model/textEditorViewerTypes.d.ts.map +1 -0
  18. package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts +7 -0
  19. package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts.map +1 -0
  20. package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts +8 -0
  21. package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts.map +1 -0
  22. package/package.json +1 -1
  23. package/storybook-static/assets/{Badge-CVgLMAJT.js → Badge-Dn4r-dgK.js} +1 -1
  24. package/storybook-static/assets/{Badge.stories-KeadkKsz.js → Badge.stories-C8jgD6Tm.js} +1 -1
  25. package/storybook-static/assets/{BadgeList-_jBtMkE3.js → BadgeList-DoZGQ7qG.js} +1 -1
  26. package/storybook-static/assets/{BarcodeScannerDialog.stories-J9XDExKK.js → BarcodeScannerDialog.stories-SWsYyoae.js} +1 -1
  27. package/storybook-static/assets/{Button-C-uRygWz.js → Button-BHqigqOj.js} +1 -1
  28. package/storybook-static/assets/{Button-DegBPiAl.js → Button-DLYgesJU.js} +1 -1
  29. package/storybook-static/assets/{Button.stories-Ds4zCq_9.js → Button.stories-B-YCCpsv.js} +1 -1
  30. package/storybook-static/assets/{CalendarView-iyr_ipPy.js → CalendarView-DC9-KqBg.js} +1 -1
  31. package/storybook-static/assets/{CheckBox-nBqHJGY9.js → CheckBox-A1DE9OKH.js} +1 -1
  32. package/storybook-static/assets/{CheckBox-B0zrARHA.js → CheckBox-BhDEikPn.js} +1 -1
  33. package/storybook-static/assets/{CheckBox.stories-CxO9FwA7.js → CheckBox.stories-CCwPabOj.js} +1 -1
  34. package/storybook-static/assets/{Color-6AOWCN3U-Dzuzn5Yr.js → Color-6AOWCN3U-CZ7Lqth4.js} +1 -1
  35. package/storybook-static/assets/{ContextMenu-BC5OXqVj.js → ContextMenu-C7QDzxj5.js} +1 -1
  36. package/storybook-static/assets/{ContextMenu-CnZu58rQ.js → ContextMenu-snDFBA5B.js} +1 -1
  37. package/storybook-static/assets/{ContextMenu.stories-CPdTdVV7.js → ContextMenu.stories-DmQHbLWt.js} +1 -1
  38. package/storybook-static/assets/{DateInput-B5j7kofa.js → DateInput-BkVJLdmV.js} +1 -1
  39. package/storybook-static/assets/{DateInput-CuYe4WXO.js → DateInput-DLOTW8zG.js} +1 -1
  40. package/storybook-static/assets/{DateInput.stories-C4ZaIPUG.js → DateInput.stories-DNMVE7-m.js} +1 -1
  41. package/storybook-static/assets/{DateRangePresetSelect-Cg6yPY0K.js → DateRangePresetSelect-Aswl3yfO.js} +1 -1
  42. package/storybook-static/assets/{DateRangePresetSelect-CbDK9t1J.js → DateRangePresetSelect-FZ5Wqp5Q.js} +1 -1
  43. package/storybook-static/assets/{DateRangePresetSelect.stories-DPWUHjXu.js → DateRangePresetSelect.stories-D7j1ye-X.js} +1 -1
  44. package/storybook-static/assets/{DeprecatedMultiSelect-DkGsEVRD.js → DeprecatedMultiSelect-BrU5iHiB.js} +1 -1
  45. package/storybook-static/assets/{DeprecatedMultiSelect-DCReLsN-.js → DeprecatedMultiSelect-DZm42dZe.js} +1 -1
  46. package/storybook-static/assets/{DeprecatedMultiSelect.stories-tbYFDSML.js → DeprecatedMultiSelect.stories-DX5gJVg8.js} +1 -1
  47. package/storybook-static/assets/{Detail-CtVpK6xU.js → Detail-Dm2OB35c.js} +1 -1
  48. package/storybook-static/assets/{Detail.stories-zAQfXGuT.js → Detail.stories-ChjIDw9R.js} +1 -1
  49. package/storybook-static/assets/{Dialog-B9ltl4hS.js → Dialog-5Bjs3MIP.js} +1 -1
  50. package/storybook-static/assets/{Dialog-JetMtpYt.js → Dialog-CppiFu4m.js} +1 -1
  51. package/storybook-static/assets/{Dialog.stories-tJymN3yq.js → Dialog.stories-DNKVgKJf.js} +1 -1
  52. package/storybook-static/assets/{Disclosure-j-RCrVFs.js → Disclosure-B_rE1zlW.js} +1 -1
  53. package/storybook-static/assets/{Disclosure.stories-4Jj2XNlo.js → Disclosure.stories-ATxKR5IU.js} +1 -1
  54. package/storybook-static/assets/{DisclosureGroup-CM7GlGI4.js → DisclosureGroup-ClweT22a.js} +1 -1
  55. package/storybook-static/assets/{DocsRenderer-JROSPFPF-DevtpZi5.js → DocsRenderer-JROSPFPF-m7QPTTWT.js} +1 -1
  56. package/storybook-static/assets/{DropZone-Bwo7NG5D.js → DropZone-C6Qx5YnY.js} +1 -1
  57. package/storybook-static/assets/{DropZone-CPrhOtX-.js → DropZone-CEnjaRlb.js} +1 -1
  58. package/storybook-static/assets/{DropZone.stories-VyNhIaxw.js → DropZone.stories-8b7TFwCV.js} +1 -1
  59. package/storybook-static/assets/{DropdownMenu-DMWZzFK1.js → DropdownMenu-BvqYqsyj.js} +1 -1
  60. package/storybook-static/assets/{ExpandableActionPanel-DmKB3xVB.js → ExpandableActionPanel-DfZA1lTx.js} +1 -1
  61. package/storybook-static/assets/{ExpandableActionPanel.stories-Kh_OSEIl.js → ExpandableActionPanel.stories-Bq2XMot-.js} +1 -1
  62. package/storybook-static/assets/{Flex-BZKhuaao.js → Flex-BFGhhseF.js} +1 -1
  63. package/storybook-static/assets/{Flex.stories-CrHxjVCH.js → Flex.stories-Ct2TXMNG.js} +1 -1
  64. package/storybook-static/assets/{FlexContainer-DGc37vCr.js → FlexContainer-DNTMFsKB.js} +1 -1
  65. package/storybook-static/assets/{FlexItem-DYv72TvP.js → FlexItem-DdZg96Tw.js} +1 -1
  66. package/storybook-static/assets/{FloatingPopover-Bd3b1U8c.js → FloatingPopover-Qm2OYQyi.js} +1 -1
  67. package/storybook-static/assets/{FloatingWindows.stories-Cs_i092m.js → FloatingWindows.stories-DSXleet4.js} +1 -1
  68. package/storybook-static/assets/{FormattedTableCell-CdlWquoj.js → FormattedTableCell-Cfdl2sgg.js} +1 -1
  69. package/storybook-static/assets/{Grid-DUcSdqsI.js → Grid-DF06uQ48.js} +1 -1
  70. package/storybook-static/assets/{Grid-DIKudfVu.js → Grid-DlctIqYo.js} +1 -1
  71. package/storybook-static/assets/{Grid.stories-sZUaIp7v.js → Grid.stories-CqMEpZ8C.js} +1 -1
  72. package/storybook-static/assets/{GridContainer-C5r-VTTG.js → GridContainer-BlkGC1Ti.js} +1 -1
  73. package/storybook-static/assets/{ImageCropper.stories-Bk3SF90a.js → ImageCropper.stories-GlDzLRHa.js} +1 -1
  74. package/storybook-static/assets/{ImageRenderer-CM-YetP0.js → ImageRenderer-DKVKzwts.js} +1 -1
  75. package/storybook-static/assets/{ImageRenderer.stories-CMqKyVuX.js → ImageRenderer.stories-D5Ot_LFG.js} +1 -1
  76. package/storybook-static/assets/{ImageView.stories-9IjWDUev.js → ImageView.stories-t9WED3jc.js} +1 -1
  77. package/storybook-static/assets/{ImageViewer.stories-D-Zzvzh3.js → ImageViewer.stories-CTLSla9v.js} +2 -2
  78. package/storybook-static/assets/{ImageViewerRuntime-BRWmVnG3.js → ImageViewerRuntime-B0a-Sycn.js} +1 -1
  79. package/storybook-static/assets/{Input-YuUUu0DD.js → Input-C-RwifM5.js} +1 -1
  80. package/storybook-static/assets/{Input-BaEhNNL0.js → Input-L7KSl95J.js} +1 -1
  81. package/storybook-static/assets/{Input.stories-CoJY4vR8.js → Input.stories-RZ8DST5q.js} +1 -1
  82. package/storybook-static/assets/{InputDateTime-CPlDTMTI.js → InputDateTime-C3SMAFaX.js} +1 -1
  83. package/storybook-static/assets/{InputDateTime.stories-DaOA4pFM.js → InputDateTime.stories-Bo76yqgM.js} +1 -1
  84. package/storybook-static/assets/{InputFile-D2HPvbt_.js → InputFile-ByiVAcXi.js} +1 -1
  85. package/storybook-static/assets/{InputFile-7PMO3B4Q.js → InputFile-DeMKgRCz.js} +1 -1
  86. package/storybook-static/assets/{InputFile.stories-CD4sJtXF.js → InputFile.stories-C2xolZZp.js} +1 -1
  87. package/storybook-static/assets/{InputFiles-DwgBtqPe.js → InputFiles-D2X5XwMg.js} +1 -1
  88. package/storybook-static/assets/{InputFiles-DSOs_hpc.js → InputFiles-DW_A7HZQ.js} +1 -1
  89. package/storybook-static/assets/{InputFiles.stories-B2zPOUXW.js → InputFiles.stories-Cy4lGiDs.js} +1 -1
  90. package/storybook-static/assets/{InputFilesList-DWtH6HFC.js → InputFilesList-D-T9k_qj.js} +1 -1
  91. package/storybook-static/assets/{InputImage-Cke0I8XV.js → InputImage-COyE-G8n.js} +1 -1
  92. package/storybook-static/assets/{InputImage-CnTU-bKF.js → InputImage-VviyVqWs.js} +1 -1
  93. package/storybook-static/assets/{InputImage.stories-CadyFqUh.js → InputImage.stories-C7PZBPak.js} +1 -1
  94. package/storybook-static/assets/{InteractiveComponents-cNgymLXT.js → InteractiveComponents-DsXWc2Ba.js} +1 -1
  95. package/storybook-static/assets/{InteractiveComponents.stories-c5kIdj-d.js → InteractiveComponents.stories-xzIOC6VP.js} +1 -1
  96. package/storybook-static/assets/{LayoutPicker-u5tv4tmF.js → LayoutPicker-CEe3rtKw.js} +1 -1
  97. package/storybook-static/assets/{LayoutPicker-BydBdeCh.js → LayoutPicker-DqauomnH.js} +1 -1
  98. package/storybook-static/assets/{LayoutPicker.stories-ZcTgJxX5.js → LayoutPicker.stories-DZS4nX4W.js} +1 -1
  99. package/storybook-static/assets/{Listbox-CaBDvhDA.js → Listbox-DMBqQzvF.js} +1 -1
  100. package/storybook-static/assets/{Listbox-CzmfAAEG.js → Listbox-DcoYj_fu.js} +1 -1
  101. package/storybook-static/assets/{Listbox.stories-B_tFWmxp.js → Listbox.stories-CiEKNklg.js} +1 -1
  102. package/storybook-static/assets/{Modal-CIptTLdh.js → Modal-B2NdQSX-.js} +1 -1
  103. package/storybook-static/assets/{Modal-DIJuHLSp.js → Modal-XzWN4rYg.js} +1 -1
  104. package/storybook-static/assets/{Modal.stories-BAh1Lzf0.js → Modal.stories-DiO0SJb6.js} +1 -1
  105. package/storybook-static/assets/{ModalManagerProvider-DH2lt3jw.js → ModalManagerProvider-CXZWFJBk.js} +1 -1
  106. package/storybook-static/assets/{MultiSelect-CbcU2Cam.js → MultiSelect-Bdo1Sjz8.js} +1 -1
  107. package/storybook-static/assets/{MultiSelect-OPkS-VFp.js → MultiSelect-CIrw0Nez.js} +1 -1
  108. package/storybook-static/assets/{MultiSelect.stories-jghnBwe0.js → MultiSelect.stories-DsYsvZRr.js} +1 -1
  109. package/storybook-static/assets/{MultiSelectCore-AgK9lN-8.js → MultiSelectCore-DVlr9xCh.js} +1 -1
  110. package/storybook-static/assets/{NoData-CRi9NzcI.js → NoData-D0rf5MW3.js} +1 -1
  111. package/storybook-static/assets/{NotificationsHost-C8sCDEzY.js → NotificationsHost-BQZaAM-V.js} +1 -1
  112. package/storybook-static/assets/{NotificationsHost.stories-BxpWtMHl.js → NotificationsHost.stories-DwymJZby.js} +1 -1
  113. package/storybook-static/assets/{ODataMultiSelect-Cjptiw3k.js → ODataMultiSelect-DMSWI6tE.js} +1 -1
  114. package/storybook-static/assets/{ODataMultiSelect.stories-B-tBcHkU.js → ODataMultiSelect.stories-B3zztIBx.js} +1 -1
  115. package/storybook-static/assets/{ODataSelect-BdVlf2WW.js → ODataSelect-C7HWF4Mk.js} +1 -1
  116. package/storybook-static/assets/{ODataSelect.stories-DZv8DgW4.js → ODataSelect.stories-BTqluN2n.js} +1 -1
  117. package/storybook-static/assets/{ODataTreeMultiSelect-B83uLKnT.js → ODataTreeMultiSelect-D1C46tO1.js} +1 -1
  118. package/storybook-static/assets/{ODataTreeMultiSelect.stories-k92VjXYz.js → ODataTreeMultiSelect.stories-Cau6yuzj.js} +1 -1
  119. package/storybook-static/assets/{ODataTreeSelect-CkZeBBoA.js → ODataTreeSelect-DjieOI9n.js} +1 -1
  120. package/storybook-static/assets/{ODataTreeSelect.stories-COweaWEr.js → ODataTreeSelect.stories-C2QXdt7d.js} +1 -1
  121. package/storybook-static/assets/{OneStepScroller-dD9RSWvg.js → OneStepScroller-srOmxRQp.js} +1 -1
  122. package/storybook-static/assets/{Option-lTkoUcHa.js → Option-7XzYAa1X.js} +1 -1
  123. package/storybook-static/assets/{OptionButton-Bt6YtqRZ.js → OptionButton-De2RG5bE.js} +1 -1
  124. package/storybook-static/assets/{OptionContent-C7Zoef1L.js → OptionContent-J_mD8o8Q.js} +1 -1
  125. package/storybook-static/assets/{OptionContentContainer-xpO-es_t.js → OptionContentContainer-BMe8XiaH.js} +1 -1
  126. package/storybook-static/assets/{PeriodSelect-CmGjITS0.js → PeriodSelect-BanQI_dT.js} +1 -1
  127. package/storybook-static/assets/{PeriodSelect-DkGZmPFu.js → PeriodSelect-DffdZHTx.js} +1 -1
  128. package/storybook-static/assets/{PeriodSelect.stories-BxkZen1s.js → PeriodSelect.stories-D_mZIvPa.js} +1 -1
  129. package/storybook-static/assets/{PickerField-vwGcXNU3.js → PickerField-BiRCrEVk.js} +1 -1
  130. package/storybook-static/assets/{PickerTriggerActions-BVO2pwu2.js → PickerTriggerActions-SYQofxvL.js} +1 -1
  131. package/storybook-static/assets/{Popover-DU0wD6MT.js → Popover-CyFO9TsF.js} +1 -1
  132. package/storybook-static/assets/{Popover-PRWJVARx.js → Popover-DVLKhPpI.js} +1 -1
  133. package/storybook-static/assets/{Popover.stories-CXKDCIfT.js → Popover.stories-z-_6ttYX.js} +1 -1
  134. package/storybook-static/assets/{PresetRangeDateInput-B1oR9Z-A.js → PresetRangeDateInput-CNwYUovX.js} +1 -1
  135. package/storybook-static/assets/{PresetRangeDateInput-DUcxF5lh.js → PresetRangeDateInput-DusPRYOo.js} +1 -1
  136. package/storybook-static/assets/{PresetRangeDateInput.stories-CAPHV6_P.js → PresetRangeDateInput.stories-C_o_VW2j.js} +1 -1
  137. package/storybook-static/assets/{PresetSelect-Hrow5Qbz.js → PresetSelect-CV3zwYQR.js} +1 -1
  138. package/storybook-static/assets/{README-DnpmMCNN.js → README-0xXSqDp8.js} +1 -1
  139. package/storybook-static/assets/{README-AWtoYOeO.js → README-2-1qM_na.js} +1 -1
  140. package/storybook-static/assets/{README-O1ww7U1S.js → README-4aHWePja.js} +1 -1
  141. package/storybook-static/assets/{README-C8-H1dVZ.js → README-7eESTN29.js} +1 -1
  142. package/storybook-static/assets/{README-BLog3wnj.js → README-B5zjJGVN.js} +1 -1
  143. package/storybook-static/assets/{README-JrppLPED.js → README-BG0ZHFMO.js} +1 -1
  144. package/storybook-static/assets/{README-CF5B-uBm.js → README-BJ0oZ6IK.js} +1 -1
  145. package/storybook-static/assets/{README-DUVORqie.js → README-BaVIhvx2.js} +1 -1
  146. package/storybook-static/assets/{README-BCBBtU0T.js → README-BdSEAONV.js} +1 -1
  147. package/storybook-static/assets/{README-CDq7upsw.js → README-BgG12pti.js} +1 -1
  148. package/storybook-static/assets/{README-FJ4JNfan.js → README-BggXgUKF.js} +1 -1
  149. package/storybook-static/assets/{README-BPOSX1IH.js → README-BjBW3_iS.js} +1 -1
  150. package/storybook-static/assets/{README-COzEPNJ8.js → README-Bjq-bxH1.js} +1 -1
  151. package/storybook-static/assets/{README-BIHT1kGT.js → README-BmcSs4kj.js} +1 -1
  152. package/storybook-static/assets/{README-C_hI3IVn.js → README-Bn7kAPLQ.js} +1 -1
  153. package/storybook-static/assets/{README-CTbRRHIT.js → README-BoQbGA96.js} +1 -1
  154. package/storybook-static/assets/{README-DjM1av8U.js → README-BwUFmp9h.js} +1 -1
  155. package/storybook-static/assets/{README-CxBqJjI3.js → README-BwvDtGJp.js} +1 -1
  156. package/storybook-static/assets/{README-SkcZXYo1.js → README-BxC_3EeL.js} +1 -1
  157. package/storybook-static/assets/{README-mq6pyk4G.js → README-C-U-dI9P.js} +1 -1
  158. package/storybook-static/assets/{README-Cb_U_ZYK.js → README-C-e2RqTI.js} +1 -1
  159. package/storybook-static/assets/{README-BB_tSzAG.js → README-C3-4o6yH.js} +1 -1
  160. package/storybook-static/assets/{README-Xu3cmYZg.js → README-CFpsye1R.js} +1 -1
  161. package/storybook-static/assets/{README-MUzkojYd.js → README-CJG1QnZ8.js} +1 -1
  162. package/storybook-static/assets/{README-zelg96nd.js → README-Cc67rRzO.js} +1 -1
  163. package/storybook-static/assets/{README-bcnh89ek.js → README-CgHkf8AZ.js} +1 -1
  164. package/storybook-static/assets/{README-diVWU6bQ.js → README-CjwjADv4.js} +1 -1
  165. package/storybook-static/assets/{README-CRfg4Opx.js → README-CtA0tP_V.js} +1 -1
  166. package/storybook-static/assets/{README-DA8e0atn.js → README-D0SwEPQG.js} +1 -1
  167. package/storybook-static/assets/{README-De02nG6s.js → README-D0eHrEQF.js} +1 -1
  168. package/storybook-static/assets/{README-CdDd6nD8.js → README-D8bNkmba.js} +1 -1
  169. package/storybook-static/assets/{README-UfCsOg0n.js → README-DCP4ywXT.js} +1 -1
  170. package/storybook-static/assets/{README-CGalXaw7.js → README-DEHjbK77.js} +1 -1
  171. package/storybook-static/assets/{README-BEUQd7JO.js → README-DHXjeQQR.js} +1 -1
  172. package/storybook-static/assets/{README-D_iA9J4Q.js → README-DJsEoOXI.js} +1 -1
  173. package/storybook-static/assets/{README-JqCoy91R.js → README-DWfKideq.js} +1 -1
  174. package/storybook-static/assets/{README-CbCzYjzO.js → README-DZD6wqGT.js} +1 -1
  175. package/storybook-static/assets/{README-DYjyXvbd.js → README-D_V-SEnq.js} +1 -1
  176. package/storybook-static/assets/{README-CF79JAmm.js → README-DkEysBXh.js} +1 -1
  177. package/storybook-static/assets/{README-BDdhvdKa.js → README-DuB9PiOM.js} +1 -1
  178. package/storybook-static/assets/{README-CDYORt73.js → README-Duk1AG16.js} +1 -1
  179. package/storybook-static/assets/{README-DmT1wyUb.js → README-DwC2gAZg.js} +1 -1
  180. package/storybook-static/assets/{README-Cu3r4RYC.js → README-MX6_MwDQ.js} +1 -1
  181. package/storybook-static/assets/{README-CHgqsGMV.js → README-TaumiOmj.js} +1 -1
  182. package/storybook-static/assets/{README-BwSjP1rm.js → README-_ysKMvAx.js} +1 -1
  183. package/storybook-static/assets/{README-w3_FegOo.js → README-b_q7W3j3.js} +1 -1
  184. package/storybook-static/assets/{README-CRk_ElRL.js → README-gE_kxplo.js} +1 -1
  185. package/storybook-static/assets/{README-o-a96Aib.js → README-gjTa9tZ_.js} +1 -1
  186. package/storybook-static/assets/{README-D0EguYwa.js → README-p62MFS5g.js} +1 -1
  187. package/storybook-static/assets/{README-ctVjdbq7.js → README-swRdnv1f.js} +1 -1
  188. package/storybook-static/assets/{README-BCXjh3I1.js → README-x--9qFul.js} +1 -1
  189. package/storybook-static/assets/{README-BJXCE3us.js → README-xDqMMO8-.js} +1 -1
  190. package/storybook-static/assets/{README-f5UPnPkY.js → README-xWo3G40o.js} +1 -1
  191. package/storybook-static/assets/{RadioButton-BztQMLNR.js → RadioButton-B6x2_7or.js} +1 -1
  192. package/storybook-static/assets/{RadioButton-DUOPHyRt.js → RadioButton-CBABLSvE.js} +1 -1
  193. package/storybook-static/assets/{RadioButton.stories-BOE5cGej.js → RadioButton.stories-DLd7EmuZ.js} +1 -1
  194. package/storybook-static/assets/{RadioGroup-CDqbnv4J.js → RadioGroup-CIaXj3zQ.js} +1 -1
  195. package/storybook-static/assets/{RadioGroup-QICEWbjz.js → RadioGroup-Ce5Irxz3.js} +1 -1
  196. package/storybook-static/assets/{RadioGroup.stories-f2qU7hhM.js → RadioGroup.stories-DKhMElyC.js} +1 -1
  197. package/storybook-static/assets/{ResponsiveLayoutPreview-BWBLsr8u.js → ResponsiveLayoutPreview-Bcojizl4.js} +1 -1
  198. package/storybook-static/assets/{Scrollable-CAnjXb6_.js → Scrollable-B5e-IEe8.js} +1 -1
  199. package/storybook-static/assets/{Scrollable-Cc641kuG.js → Scrollable-BfCUp0BO.js} +1 -1
  200. package/storybook-static/assets/{Scrollable.stories-ZQT-1f1f.js → Scrollable.stories-B4IMoipT.js} +1 -1
  201. package/storybook-static/assets/{Select-D6RLm9D5.js → Select-CdjYSSyG.js} +1 -1
  202. package/storybook-static/assets/{Select-BeoH_3V4.js → Select-DYHUwcLE.js} +1 -1
  203. package/storybook-static/assets/{Select.stories-DI6pVDzi.js → Select.stories-BuaXB6qE.js} +1 -1
  204. package/storybook-static/assets/{Separator-De9vEg4j.js → Separator-CS6gkWSA.js} +1 -1
  205. package/storybook-static/assets/{Separator-tkZoR8Ft.js → Separator-D45blL6r.js} +1 -1
  206. package/storybook-static/assets/{Separator.stories-CGZrsdLJ.js → Separator.stories-C2GzCEGW.js} +1 -1
  207. package/storybook-static/assets/{SerializableSelect-BWgkYLIe.js → SerializableSelect-7raamiuG.js} +1 -1
  208. package/storybook-static/assets/{SerializableSelect.stories-BfGg_SmN.js → SerializableSelect.stories-CD0e6DQk.js} +1 -1
  209. package/storybook-static/assets/{ShimmerText-D1ygdKrh.js → ShimmerText-DkiewbBe.js} +1 -1
  210. package/storybook-static/assets/{ShimmerText.stories-D5AB85Hj.js → ShimmerText.stories-DrXMcGDO.js} +1 -1
  211. package/storybook-static/assets/{SingleDateTimeInput-C2O-fXgE.js → SingleDateTimeInput-BTIgqxH7.js} +1 -1
  212. package/storybook-static/assets/{SingleDateTimeInput-Bf2RpSbC.js → SingleDateTimeInput-Dj_VSvfb.js} +1 -1
  213. package/storybook-static/assets/{SingleDateTimeInput.stories-BUbSA1UY.js → SingleDateTimeInput.stories-CnYFrOUX.js} +1 -1
  214. package/storybook-static/assets/{Slider-BhfM7XZ9.js → Slider-CLE5MSJr.js} +1 -1
  215. package/storybook-static/assets/{Slider-CVPKS3XB.js → Slider-D4wvDQDc.js} +1 -1
  216. package/storybook-static/assets/{Slider.stories-C6ZUJc4b.js → Slider.stories-Cbz3RilT.js} +1 -1
  217. package/storybook-static/assets/{SliderInput-MMUGLDDl.js → SliderInput-AC9oLjGF.js} +1 -1
  218. package/storybook-static/assets/{SliderInput-PwHeDeo2.js → SliderInput-DbyDo3fR.js} +1 -1
  219. package/storybook-static/assets/{SliderInput.stories-zBDRonPh.js → SliderInput.stories-69pRH0Uk.js} +1 -1
  220. package/storybook-static/assets/{Sortable-BKNLJGIe.js → Sortable-E3DirII-.js} +1 -1
  221. package/storybook-static/assets/{Sortable.stories-CLY263mj.js → Sortable.stories-BbmTcem4.js} +1 -1
  222. package/storybook-static/assets/{Splitter-PyZco_V_.js → Splitter-DbaIQk2G.js} +1 -1
  223. package/storybook-static/assets/{Splitter.stories-CY3Itq_G.js → Splitter.stories-HntpFa6w.js} +1 -1
  224. package/storybook-static/assets/{StateSelect-DfUif3cG.js → StateSelect-8r4Qlf4Y.js} +1 -1
  225. package/storybook-static/assets/{StateSelect-BlEIRWer.js → StateSelect-C7ZIrgDB.js} +1 -1
  226. package/storybook-static/assets/{StateSelect.stories-ClSYkdz8.js → StateSelect.stories-CfUJCQGE.js} +1 -1
  227. package/storybook-static/assets/{StatusIndicator-CL-WMBHT.js → StatusIndicator-IqUZ24rN.js} +1 -1
  228. package/storybook-static/assets/{StatusIndicator.stories-BbpEocDe.js → StatusIndicator.stories-DhKREzk8.js} +1 -1
  229. package/storybook-static/assets/{StringToggle.stories-0r9TfflS.js → StringToggle.stories-BOC_AuIw.js} +1 -1
  230. package/storybook-static/assets/{Switch-AoVSoc9P.js → Switch-58npo6H_.js} +1 -1
  231. package/storybook-static/assets/{Switch-HAWn3D1c.js → Switch-C4wfyH7_.js} +1 -1
  232. package/storybook-static/assets/{Switch.stories-D1VJIWsC.js → Switch.stories-BpABAFmv.js} +1 -1
  233. package/storybook-static/assets/{Table-CyX8frK4.js → Table-RAMtWu9C.js} +1 -1
  234. package/storybook-static/assets/{Table.stories-DoGpFMZB.js → Table.stories-Cth_AbDh.js} +1 -1
  235. package/storybook-static/assets/{TableEditor.stories-Mh6q2awx.js → TableEditor.stories-IfJyun1v.js} +1 -1
  236. package/storybook-static/assets/{Tabs-BZfNXmy0.js → Tabs-CX67nGv0.js} +1 -1
  237. package/storybook-static/assets/{Tabs.stories-C9L4pJDb.js → Tabs.stories-6wO9Pmly.js} +1 -1
  238. package/storybook-static/assets/{TabsBox-qRCIBtqi.js → TabsBox-QKS_MMQ0.js} +1 -1
  239. package/storybook-static/assets/{TagInput-CPB6lb2J.js → TagInput-R6ANDdvh.js} +1 -1
  240. package/storybook-static/assets/{TagInput.stories-CT6B8CVV.js → TagInput.stories-DAyX89-l.js} +1 -1
  241. package/storybook-static/assets/{Text-AbSWZQO3.js → Text-D3vBpXH0.js} +1 -1
  242. package/storybook-static/assets/TextEditorLexicalViewer-DRQG2UON.css +1 -0
  243. package/storybook-static/assets/TextEditorLexicalViewer.stories-RdypWNwx.js +66 -0
  244. package/storybook-static/assets/{Textarea-Bz9O1y1I.js → Textarea-BPtHeqrt.js} +1 -1
  245. package/storybook-static/assets/{Textarea-BY51Li7J.js → Textarea-Cio32hA3.js} +1 -1
  246. package/storybook-static/assets/{Textarea.stories-CJbv3jrK.js → Textarea.stories-DDVaU3Ho.js} +1 -1
  247. package/storybook-static/assets/{TimePanel-Wn5lUiwx.js → TimePanel-e1drsuDA.js} +1 -1
  248. package/storybook-static/assets/{TimePanel.stories-dF5kTdp1.js → TimePanel.stories-Dze9jjtv.js} +1 -1
  249. package/storybook-static/assets/{Toggle-CUO99pvo.js → Toggle-BuLJ3UR_.js} +1 -1
  250. package/storybook-static/assets/{Toggle-BpDn9f6k.js → Toggle-D8UQ_CuL.js} +1 -1
  251. package/storybook-static/assets/{Toggle.stories-T1Hk_etn.js → Toggle.stories-0wuia83j.js} +1 -1
  252. package/storybook-static/assets/{TreeMultiSelect-DEsECkRj.js → TreeMultiSelect-Ciy9H9Q3.js} +1 -1
  253. package/storybook-static/assets/{TreeMultiSelect-bqQExCm8.js → TreeMultiSelect-QWOfniqX.js} +1 -1
  254. package/storybook-static/assets/{TreeMultiSelect.stories-DyK7bWZu.js → TreeMultiSelect.stories-C5bKUKLA.js} +1 -1
  255. package/storybook-static/assets/{TreePickerBase-BCbV37dL.js → TreePickerBase-DAld1sj1.js} +1 -1
  256. package/storybook-static/assets/{TreeSelect-Cepr58wS.js → TreeSelect-ANFeSIqw.js} +1 -1
  257. package/storybook-static/assets/{TreeSelect-CTvlmF81.js → TreeSelect-DKUJycNd.js} +1 -1
  258. package/storybook-static/assets/{TreeSelect.stories-RVPMBCd_.js → TreeSelect.stories-BJErYrTv.js} +1 -1
  259. package/storybook-static/assets/{TreeTable-DznOmuAD.js → TreeTable-DcyUjVXj.js} +1 -1
  260. package/storybook-static/assets/{TreeTable.stories-Lx2ImfgC.js → TreeTable.stories-BnyxdNPz.js} +1 -1
  261. package/storybook-static/assets/{blocks-u0CCD6I1.js → blocks-Bn1nLfdu.js} +4 -4
  262. package/storybook-static/assets/{check-CHvYWZD5.js → check-DTcQ3CsH.js} +1 -1
  263. package/storybook-static/assets/{chevron-down-DqHAghNU.js → chevron-down-CRBjmU7w.js} +1 -1
  264. package/storybook-static/assets/{chevron-left-Bj7vIyg-.js → chevron-left-CBPOblch.js} +1 -1
  265. package/storybook-static/assets/{chevron-right-BUqG0v39.js → chevron-right-Bryg2EIf.js} +1 -1
  266. package/storybook-static/assets/{chunk-W22LQPXL-BSczDjJT.js → chunk-W22LQPXL-44DPZKTZ.js} +1 -1
  267. package/storybook-static/assets/{circle-alert-DXUFM6uc.js → circle-alert-DviK8puL.js} +1 -1
  268. package/storybook-static/assets/{circle-check-0x9vHUU_.js → circle-check-B1-l7Oh4.js} +1 -1
  269. package/storybook-static/assets/{contextMenu-D8PjjiwD.js → contextMenu-DtHQnSjw.js} +1 -1
  270. package/storybook-static/assets/{download-15Eb3eUj.js → download-BuLQijJq.js} +1 -1
  271. package/storybook-static/assets/{floating-ui.react-CypKyrM4.js → floating-ui.react-iTaFJp98.js} +1 -1
  272. package/storybook-static/assets/{foundationApi-dmPNotab.js → foundationApi-Bjw5h-ru.js} +1 -1
  273. package/storybook-static/assets/{foundationLib-CyrgF87o.js → foundationLib-BcePCYWP.js} +1 -1
  274. package/storybook-static/assets/{hooks-DM8_3IU2.js → hooks-CiUB_4kG.js} +1 -1
  275. package/storybook-static/assets/{iframe-BmGorvhi.js → iframe-BvendKJ_.js} +4 -4
  276. package/storybook-static/assets/iframe-BzGX4Usd.js +1 -0
  277. package/storybook-static/assets/{info-HMSnCOw2.js → info-Dq-9oYHd.js} +1 -1
  278. package/storybook-static/assets/{isRecord-DXDTW-jA-DtM9YD3V.js → isRecord-DXDTW-jA-CMenzszF.js} +1 -1
  279. package/storybook-static/assets/odata-f2MNATrV.js +1 -0
  280. package/storybook-static/assets/{odataStoryFixtures-DiC-gXoK.js → odataStoryFixtures-BaKh8qyu.js} +1 -1
  281. package/storybook-static/assets/{react-BLxZ0fqY.js → react-B6cO4JYx.js} +1 -1
  282. package/storybook-static/assets/{refresh-cw-Obk3FkLO.js → refresh-cw-DmxZlsqm.js} +1 -1
  283. package/storybook-static/assets/{settings-2-BQ2LYeiA.js → settings-2-CBuqWUWt.js} +1 -1
  284. package/storybook-static/assets/{sortable-BrLDYUp8.js → sortable-BkTzd-5v.js} +1 -1
  285. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-JUCJEf5U.js → syntaxhighlighter-QEQV7K2Y-h6bhL7V7.js} +1 -1
  286. package/storybook-static/assets/{trash-2-CzXfDl_F.js → trash-2-wTK0eWnF.js} +1 -1
  287. package/storybook-static/assets/{triangle-alert-Ww2Tuzxk.js → triangle-alert-CD0VXyGn.js} +1 -1
  288. package/storybook-static/assets/{useODataSelectBase-DIZSERuU.js → useODataSelectBase-keqr2Q3a.js} +1 -1
  289. package/storybook-static/assets/{useODataTreeData-DLgIiNMG.js → useODataTreeData-BLDGoADN.js} +1 -1
  290. package/storybook-static/assets/{usePickerQuery-BZ1Hrn2J.js → usePickerQuery-BA8NMnw6.js} +1 -1
  291. package/storybook-static/assets/{usePickerTriggerController-BIarg6M4.js → usePickerTriggerController-Ceb5Hrtf.js} +1 -1
  292. package/storybook-static/assets/{x-BmlmEU-a.js → x-CsG3nxct.js} +1 -1
  293. package/storybook-static/iframe.html +2 -2
  294. package/storybook-static/index.json +1 -1
  295. package/storybook-static/project.json +1 -1
  296. package/storybook-static/assets/iframe-WuXBbC_P.js +0 -1
  297. package/storybook-static/assets/odata-DLogt0PY.js +0 -1
@@ -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}from"./iframe-BmGorvhi.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{n as o,t as s}from"./FloatingPopover-Bd3b1U8c.js";import{d as ee,l as c,s as te,u as ne}from"./Input-YuUUu0DD.js";import{c as l,d as u,f as d,i as re,l as f,n as ie,o as p,r as m,s as h,t as g}from"./number-scale-D2KTkjVQ.js";function _(e,t,n){return g(e,t,n)}function v(e,t,n){let r=t.findIndex(t=>t.value===e.value);return m(Math.max(0,r),t,n.min,n.max,n.marksPosition)}function y(e,t){let{min:n,max:r}=h(t.min,t.max),i=_(t.marks,n,r);if(i.length>0){let a=i.find(t=>t.value===e)??u(e,i);if(a)return v(a,i,{...t,min:n,max:r,marks:i})}return d(e,n,r)}function ae(e,t){let{min:n,max:r}=h(t.min,t.max),i=_(t.marks,n,r);return f(e,i,n,r,t.marksPosition)}function b(e,t){return p(e,t)}function x(e,t){let{min:n,max:r}=h(t.min,t.max);return e===void 0?n:b(e,{...t,min:n,max:r})}function S(e){if(e)return!Object.hasOwn(e,`outputValue`)||e.outputValue===void 0?e.value:e.outputValue}function C(e,t,n){let r=t.filter(t=>S(t)===e);if(r.length)return e===null?n===0?r[0]:r[r.length-1]:r[0]}function w(e,t,n){let r=C(e,t,n);if(r)return r;let i,a=1/0;for(let n of t){let t=S(n);if(typeof t!=`number`||!Number.isFinite(t))continue;let r=Math.abs(e-t);r<a&&(i=n,a=r)}return i}function T(e,t,n,r){if(e===null)return null;let{min:i,max:a}=h(r.min,r.max),o=_(r.marks,i,a),s=Number.isFinite(e)?e:t;if(o.length>0){let e=w(s,o,n),r=S(e);return r===void 0?e?.value??t:r}return l(s,i,a,r.step)}function E(e,t){let{min:n,max:r}=h(t.min,t.max);if(!e)return[null,null];let i=T(e[0],n,0,{...t,min:n,max:r}),a=T(e[1],r,1,{...t,min:n,max:r});return i!==null&&a!==null&&i>a?[a,i]:[i,a]}function D(e,t,n,r){if(e===null)return t;let{min:i,max:a}=h(r.min,r.max),o=_(r.marks,i,a);return o.length>0?(C(e,o,n)??(typeof e==`number`?w(e,o,n):void 0))?.value??t:l(e,i,a,r.step)}function oe(e,t){let{min:n,max:r}=h(t.min,t.max),i=E(e,{...t,min:n,max:r}),a=D(i[0],n,0,{...t,min:n,max:r}),o=D(i[1],r,1,{...t,min:n,max:r});return a<=o?[a,o]:[o,a]}function se(e,t){let{min:n,max:r}=h(t.min,t.max),i=_(t.marks,n,r);if(i.length>0){let t=u(e,i),n=S(t);return n===void 0?t?.value??e:n}return l(e,n,r,t.step)}function ce(e,t){let[n,r]=t;return Math.abs(e-n)<=Math.abs(e-r)?0:1}function le(e,t){let{min:n,max:r}=h(t.min,t.max);return Array.isArray(e)?{startPercent:y(e[0],{...t,min:n,max:r}),endPercent:y(e[1],{...t,min:n,max:r})}:{startPercent:0,endPercent:y(e,{...t,min:n,max:r})}}function O(){return(O=t((()=>{})))()}var k,A,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K;function q(){return(q=t((()=>{k=`fA7zne`,A=`gg-atO`,j=`bTLJZl`,M=`vDAmRy`,N=`PpaxP2`,P=`_9K78Fi`,F=`TMbaqW`,I=`_77qn1L`,L=`cxJQqh`,R=`-X13t0`,z=`iNrV0y`,B=`vzEDBe`,V=`_0OWJh0`,H=`Mk4xi2`,U=`SL0IDQ`,W=`mdezg5`,G=`a4R18g`,K={slider:k,rail:A,fill:j,thumb:M,mark:N,compactMark:P,sliderCompact:F,trackShell:I,track:L,tooltipReference:R,marks:z,markDot:B,markLabel:V,popoverContent:H,rangeInputControl:U,rangeSegmentInput:W,rangeSeparator:G}})))()}function ue(e){return e===`ArrowLeft`||e===`ArrowDown`?-1:e===`ArrowRight`||e===`ArrowUp`?1:e===`PageDown`?-10:e===`PageUp`?10:null}function de(e,t){return!!e&&e[0]===t[0]&&e[1]===t[1]}function fe(e,t){return e===null?t===0?`-∞`:`∞`:String(e)}function pe(e,t){return t.find(t=>t.value===e)?.label??String(e)}function me(e){return typeof e==`string`||typeof e==`number`?(0,Q.jsx)(`span`,{className:`textNoWrap`,children:e}):e}function he({position:e,children:t}){return(0,Q.jsx)(`span`,{"data-slot":`slider-tooltip-reference`,className:K.tooltipReference,style:{left:`${e}%`},children:t})}function J(e){let{min:t,max:n,step:r,marks:a,marksPosition:o=`value`,marksDisplay:c=`compact`,className:ne,error:l,onClearError:u,label:d,description:f,disabled:p,size:m}=e,{min:g,max:b}=(0,Z.useMemo)(()=>h(t,n),[t,n]),S=(0,Z.useMemo)(()=>_(a,g,b),[a,g,b]),C=(0,Z.useMemo)(()=>({min:g,max:b,step:r,marks:S,marksPosition:o}),[g,b,r,S,o]),w=e.mode===`range`,T=w?void 0:x(e.value,C),D=w?E(e.value,C):void 0,O=w?oe(e.value,C):void 0,k=w?O:[T],A=le(w?O:T,C),j=(0,Z.useRef)(null),M=(0,Z.useRef)([]),N=(0,Z.useRef)(null),P=(0,Z.useRef)(null),[F,I]=(0,Z.useState)(null),{controlId:L,labelId:R,descriptionId:z,errorId:B,describedBy:V}=ee({hasLabel:d!=null,hasDescription:!!f,hasError:!!l}),H=t=>{p||e.mode!==`single`||(e.value===void 0||e.value!==t)&&(e.onChange(t),u?.())},U=t=>{p||e.mode!==`range`||de(e.value,t)||(e.onChange(t),u?.())},W=(t,n)=>{if(!p){if(e.mode===`range`){let[e,r]=O,[i,a]=D,o=E(n===0?[se(Math.min(t,r),C),a]:[i,se(Math.max(t,e),C)],C);U(o);return}H(x(t,C))}},G=e=>{let t=j.current?.getBoundingClientRect();if(!t)return g;let n=(e-t.left)/t.width*100;return(S.length>0?ae(n,C):void 0)?.value??ie(n,g,b)},q=(0,Z.useRef)(W),J=(0,Z.useRef)(G);(0,Z.useEffect)(()=>{q.current=W,J.current=G}),(0,Z.useEffect)(()=>{let e=e=>{P.current!==null&&e&&e.pointerId!==P.current||(P.current=null,N.current=null,I(null))},t=e=>{N.current!==null&&(P.current===null||e.pointerId===P.current)&&q.current(J.current(e.clientX),N.current)};return window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,e),window.addEventListener(`pointercancel`,e),()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,e),window.removeEventListener(`pointercancel`,e)}},[]);let Y=(e,t)=>{P.current=e,N.current=t,I(t),M.current[t]?.focus()},X=e=>{if(p)return;e.preventDefault();let t=G(e.clientX),n=w?ce(t,O):0;W(t,n),Y(e.pointerId,n)},$=e=>t=>{p||(t.preventDefault(),t.stopPropagation(),Y(t.pointerId,e))},ge=e=>t=>{if(p)return;let n=w&&e===1?O[0]:g,r=w&&e===0?O[1]:b,i=ue(t.key);if(t.key===`Home`){t.preventDefault(),W(n,e);return}if(t.key===`End`){t.preventDefault(),W(r,e);return}if(i===null)return;t.preventDefault();let a=k[e],o=re(a,i,C,n,r);W(o,e)},_e=e=>{if(p)return;let t=w?ce(e,O):0;W(e,t),M.current[t]?.focus()},ve=(e,t)=>{if(w){let n=D[t];return S.find(t=>t.value===e)?.label??fe(n,t)}return pe(e,S)};return(0,Q.jsx)(te,{label:d,description:f,disabled:p,className:ne,size:m,error:l,controlId:L,labelId:R,descriptionId:z,errorId:B,children:(0,Q.jsxs)(`div`,{id:L,className:i(K.slider,c===`compact`&&K.sliderCompact),"data-disabled":p||void 0,role:w?`group`:void 0,"aria-label":w&&!R?`Диапазон значений`:void 0,"aria-labelledby":w?R:void 0,"aria-describedby":w?V:void 0,"aria-invalid":w&&l?!0:void 0,children:[(0,Q.jsx)(`div`,{className:K.trackShell,children:(0,Q.jsxs)(`div`,{ref:j,"data-slot":`track`,className:K.track,role:`presentation`,onPointerDown:X,children:[(0,Q.jsx)(`div`,{className:K.rail}),(0,Q.jsx)(`div`,{"data-slot":`fill`,className:K.fill,style:{left:`${A.startPercent}%`,width:`${A.endPercent-A.startPercent}%`}}),c===`compact`&&S.map(e=>{let t=v(e,S,C),n=w?e.value>=O[0]&&e.value<=O[1]:e.value<=T;return(0,Q.jsx)(he,{position:t,children:(0,Q.jsx)(s,{tooltip:!0,placement:`top`,content:me(e.label),children:(0,Q.jsx)(`button`,{type:`button`,"data-slot":`mark`,"data-active":n?``:void 0,className:K.compactMark,"aria-label":e.ariaLabel??(typeof e.label==`string`||typeof e.label==`number`?String(e.label):void 0),disabled:p,onClick:()=>_e(e.value),children:(0,Q.jsx)(`span`,{className:K.markDot,"aria-hidden":`true`})})})},e.value)}),k.map((e,t)=>{let n=ve(e,t);return(0,Q.jsx)(he,{position:y(e,C),children:(0,Q.jsx)(s,{tooltip:!0,placement:`top`,content:me(n),openDelay:0,closeDelay:100,positionUpdateKey:e,children:(0,Q.jsx)(`button`,{ref:e=>{M.current[t]=e},type:`button`,role:`slider`,"data-slot":`thumb`,"data-thumb-index":t,"data-dragging":F===t?``:void 0,className:K.thumb,disabled:p,"aria-disabled":p||void 0,"aria-orientation":`horizontal`,"aria-valuemin":w&&t===1?O[0]:g,"aria-valuemax":w&&t===0?O[1]:b,"aria-valuenow":e,"aria-valuetext":typeof n==`string`||typeof n==`number`?String(n):void 0,"aria-labelledby":w?void 0:R,"aria-describedby":w?void 0:V,"aria-invalid":!w&&l?!0:void 0,"aria-label":w?t===0?`Минимальное значение`:`Максимальное значение`:R?void 0:`Значение`,onPointerDown:$(t),onKeyDown:ge(t)})})},t)})]})}),c===`full`&&S.length>0&&(0,Q.jsx)(`div`,{className:K.marks,children:S.map(e=>{let t=w?e.value>=O[0]&&e.value<=O[1]:e.value<=T;return(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`mark`,"data-active":t?``:void 0,className:K.mark,style:{left:`${v(e,S,C)}%`},"aria-label":e.ariaLabel,disabled:p,onClick:()=>_e(e.value),children:[(0,Q.jsx)(`span`,{className:K.markDot,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{className:K.markLabel,children:e.label})]},e.value)})})]})})}function Y(e){return(0,Q.jsx)(J,{...e,mode:`single`,marksDisplay:`compact`})}function X(e){return(0,Q.jsx)(J,{...e,mode:`range`,marksDisplay:`compact`})}var Z,Q;function $(){return($=t((()=>{Z=e(n(),1),a(),c(),ne(),o(),O(),q(),Q=r(),J.__docgenInfo={description:``,methods:[],displayName:`SliderBase`},Y.__docgenInfo={description:``,methods:[],displayName:`Slider`,props:{min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы отбрасываются.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы отбрасываются.`},step:{required:!1,tsType:{name:`number`},description:"Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks."},marks:{required:!1,tsType:{name:`unknown`},description:`Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:"Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу."},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс контейнера поля.`},error:{required:!1,tsType:{name:`string`},description:"Текст внешней ошибки, отображается через общую `InputUI`-обёртку."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.`}},composes:[`Omit`]},X.__docgenInfo={description:``,methods:[],displayName:`SliderRange`,props:{min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы отбрасываются.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы отбрасываются.`},step:{required:!1,tsType:{name:`number`},description:"Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks."},marks:{required:!1,tsType:{name:`unknown`},description:`Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:"Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу."},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс контейнера поля.`},error:{required:!1,tsType:{name:`string`},description:"Текст внешней ошибки, отображается через общую `InputUI`-обёртку."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.`}},composes:[`Omit`]}})))()}export{K as a,O as c,_ as d,$ as i,E as l,J as n,q as o,X as r,S as s,Y as t,x as u};
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}from"./iframe-BvendKJ_.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{n as o,t as s}from"./FloatingPopover-Qm2OYQyi.js";import{d as ee,l as c,s as te,u as ne}from"./Input-C-RwifM5.js";import{c as l,d as u,f as d,i as re,l as f,n as ie,o as p,r as m,s as h,t as g}from"./number-scale-D2KTkjVQ.js";function _(e,t,n){return g(e,t,n)}function v(e,t,n){let r=t.findIndex(t=>t.value===e.value);return m(Math.max(0,r),t,n.min,n.max,n.marksPosition)}function y(e,t){let{min:n,max:r}=h(t.min,t.max),i=_(t.marks,n,r);if(i.length>0){let a=i.find(t=>t.value===e)??u(e,i);if(a)return v(a,i,{...t,min:n,max:r,marks:i})}return d(e,n,r)}function ae(e,t){let{min:n,max:r}=h(t.min,t.max),i=_(t.marks,n,r);return f(e,i,n,r,t.marksPosition)}function b(e,t){return p(e,t)}function x(e,t){let{min:n,max:r}=h(t.min,t.max);return e===void 0?n:b(e,{...t,min:n,max:r})}function S(e){if(e)return!Object.hasOwn(e,`outputValue`)||e.outputValue===void 0?e.value:e.outputValue}function C(e,t,n){let r=t.filter(t=>S(t)===e);if(r.length)return e===null?n===0?r[0]:r[r.length-1]:r[0]}function w(e,t,n){let r=C(e,t,n);if(r)return r;let i,a=1/0;for(let n of t){let t=S(n);if(typeof t!=`number`||!Number.isFinite(t))continue;let r=Math.abs(e-t);r<a&&(i=n,a=r)}return i}function T(e,t,n,r){if(e===null)return null;let{min:i,max:a}=h(r.min,r.max),o=_(r.marks,i,a),s=Number.isFinite(e)?e:t;if(o.length>0){let e=w(s,o,n),r=S(e);return r===void 0?e?.value??t:r}return l(s,i,a,r.step)}function E(e,t){let{min:n,max:r}=h(t.min,t.max);if(!e)return[null,null];let i=T(e[0],n,0,{...t,min:n,max:r}),a=T(e[1],r,1,{...t,min:n,max:r});return i!==null&&a!==null&&i>a?[a,i]:[i,a]}function D(e,t,n,r){if(e===null)return t;let{min:i,max:a}=h(r.min,r.max),o=_(r.marks,i,a);return o.length>0?(C(e,o,n)??(typeof e==`number`?w(e,o,n):void 0))?.value??t:l(e,i,a,r.step)}function oe(e,t){let{min:n,max:r}=h(t.min,t.max),i=E(e,{...t,min:n,max:r}),a=D(i[0],n,0,{...t,min:n,max:r}),o=D(i[1],r,1,{...t,min:n,max:r});return a<=o?[a,o]:[o,a]}function se(e,t){let{min:n,max:r}=h(t.min,t.max),i=_(t.marks,n,r);if(i.length>0){let t=u(e,i),n=S(t);return n===void 0?t?.value??e:n}return l(e,n,r,t.step)}function ce(e,t){let[n,r]=t;return Math.abs(e-n)<=Math.abs(e-r)?0:1}function le(e,t){let{min:n,max:r}=h(t.min,t.max);return Array.isArray(e)?{startPercent:y(e[0],{...t,min:n,max:r}),endPercent:y(e[1],{...t,min:n,max:r})}:{startPercent:0,endPercent:y(e,{...t,min:n,max:r})}}function O(){return(O=t((()=>{})))()}var k,A,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K;function q(){return(q=t((()=>{k=`fA7zne`,A=`gg-atO`,j=`bTLJZl`,M=`vDAmRy`,N=`PpaxP2`,P=`_9K78Fi`,F=`TMbaqW`,I=`_77qn1L`,L=`cxJQqh`,R=`-X13t0`,z=`iNrV0y`,B=`vzEDBe`,V=`_0OWJh0`,H=`Mk4xi2`,U=`SL0IDQ`,W=`mdezg5`,G=`a4R18g`,K={slider:k,rail:A,fill:j,thumb:M,mark:N,compactMark:P,sliderCompact:F,trackShell:I,track:L,tooltipReference:R,marks:z,markDot:B,markLabel:V,popoverContent:H,rangeInputControl:U,rangeSegmentInput:W,rangeSeparator:G}})))()}function ue(e){return e===`ArrowLeft`||e===`ArrowDown`?-1:e===`ArrowRight`||e===`ArrowUp`?1:e===`PageDown`?-10:e===`PageUp`?10:null}function de(e,t){return!!e&&e[0]===t[0]&&e[1]===t[1]}function fe(e,t){return e===null?t===0?`-∞`:`∞`:String(e)}function pe(e,t){return t.find(t=>t.value===e)?.label??String(e)}function me(e){return typeof e==`string`||typeof e==`number`?(0,Q.jsx)(`span`,{className:`textNoWrap`,children:e}):e}function he({position:e,children:t}){return(0,Q.jsx)(`span`,{"data-slot":`slider-tooltip-reference`,className:K.tooltipReference,style:{left:`${e}%`},children:t})}function J(e){let{min:t,max:n,step:r,marks:a,marksPosition:o=`value`,marksDisplay:c=`compact`,className:ne,error:l,onClearError:u,label:d,description:f,disabled:p,size:m}=e,{min:g,max:b}=(0,Z.useMemo)(()=>h(t,n),[t,n]),S=(0,Z.useMemo)(()=>_(a,g,b),[a,g,b]),C=(0,Z.useMemo)(()=>({min:g,max:b,step:r,marks:S,marksPosition:o}),[g,b,r,S,o]),w=e.mode===`range`,T=w?void 0:x(e.value,C),D=w?E(e.value,C):void 0,O=w?oe(e.value,C):void 0,k=w?O:[T],A=le(w?O:T,C),j=(0,Z.useRef)(null),M=(0,Z.useRef)([]),N=(0,Z.useRef)(null),P=(0,Z.useRef)(null),[F,I]=(0,Z.useState)(null),{controlId:L,labelId:R,descriptionId:z,errorId:B,describedBy:V}=ee({hasLabel:d!=null,hasDescription:!!f,hasError:!!l}),H=t=>{p||e.mode!==`single`||(e.value===void 0||e.value!==t)&&(e.onChange(t),u?.())},U=t=>{p||e.mode!==`range`||de(e.value,t)||(e.onChange(t),u?.())},W=(t,n)=>{if(!p){if(e.mode===`range`){let[e,r]=O,[i,a]=D,o=E(n===0?[se(Math.min(t,r),C),a]:[i,se(Math.max(t,e),C)],C);U(o);return}H(x(t,C))}},G=e=>{let t=j.current?.getBoundingClientRect();if(!t)return g;let n=(e-t.left)/t.width*100;return(S.length>0?ae(n,C):void 0)?.value??ie(n,g,b)},q=(0,Z.useRef)(W),J=(0,Z.useRef)(G);(0,Z.useEffect)(()=>{q.current=W,J.current=G}),(0,Z.useEffect)(()=>{let e=e=>{P.current!==null&&e&&e.pointerId!==P.current||(P.current=null,N.current=null,I(null))},t=e=>{N.current!==null&&(P.current===null||e.pointerId===P.current)&&q.current(J.current(e.clientX),N.current)};return window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,e),window.addEventListener(`pointercancel`,e),()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,e),window.removeEventListener(`pointercancel`,e)}},[]);let Y=(e,t)=>{P.current=e,N.current=t,I(t),M.current[t]?.focus()},X=e=>{if(p)return;e.preventDefault();let t=G(e.clientX),n=w?ce(t,O):0;W(t,n),Y(e.pointerId,n)},$=e=>t=>{p||(t.preventDefault(),t.stopPropagation(),Y(t.pointerId,e))},ge=e=>t=>{if(p)return;let n=w&&e===1?O[0]:g,r=w&&e===0?O[1]:b,i=ue(t.key);if(t.key===`Home`){t.preventDefault(),W(n,e);return}if(t.key===`End`){t.preventDefault(),W(r,e);return}if(i===null)return;t.preventDefault();let a=k[e],o=re(a,i,C,n,r);W(o,e)},_e=e=>{if(p)return;let t=w?ce(e,O):0;W(e,t),M.current[t]?.focus()},ve=(e,t)=>{if(w){let n=D[t];return S.find(t=>t.value===e)?.label??fe(n,t)}return pe(e,S)};return(0,Q.jsx)(te,{label:d,description:f,disabled:p,className:ne,size:m,error:l,controlId:L,labelId:R,descriptionId:z,errorId:B,children:(0,Q.jsxs)(`div`,{id:L,className:i(K.slider,c===`compact`&&K.sliderCompact),"data-disabled":p||void 0,role:w?`group`:void 0,"aria-label":w&&!R?`Диапазон значений`:void 0,"aria-labelledby":w?R:void 0,"aria-describedby":w?V:void 0,"aria-invalid":w&&l?!0:void 0,children:[(0,Q.jsx)(`div`,{className:K.trackShell,children:(0,Q.jsxs)(`div`,{ref:j,"data-slot":`track`,className:K.track,role:`presentation`,onPointerDown:X,children:[(0,Q.jsx)(`div`,{className:K.rail}),(0,Q.jsx)(`div`,{"data-slot":`fill`,className:K.fill,style:{left:`${A.startPercent}%`,width:`${A.endPercent-A.startPercent}%`}}),c===`compact`&&S.map(e=>{let t=v(e,S,C),n=w?e.value>=O[0]&&e.value<=O[1]:e.value<=T;return(0,Q.jsx)(he,{position:t,children:(0,Q.jsx)(s,{tooltip:!0,placement:`top`,content:me(e.label),children:(0,Q.jsx)(`button`,{type:`button`,"data-slot":`mark`,"data-active":n?``:void 0,className:K.compactMark,"aria-label":e.ariaLabel??(typeof e.label==`string`||typeof e.label==`number`?String(e.label):void 0),disabled:p,onClick:()=>_e(e.value),children:(0,Q.jsx)(`span`,{className:K.markDot,"aria-hidden":`true`})})})},e.value)}),k.map((e,t)=>{let n=ve(e,t);return(0,Q.jsx)(he,{position:y(e,C),children:(0,Q.jsx)(s,{tooltip:!0,placement:`top`,content:me(n),openDelay:0,closeDelay:100,positionUpdateKey:e,children:(0,Q.jsx)(`button`,{ref:e=>{M.current[t]=e},type:`button`,role:`slider`,"data-slot":`thumb`,"data-thumb-index":t,"data-dragging":F===t?``:void 0,className:K.thumb,disabled:p,"aria-disabled":p||void 0,"aria-orientation":`horizontal`,"aria-valuemin":w&&t===1?O[0]:g,"aria-valuemax":w&&t===0?O[1]:b,"aria-valuenow":e,"aria-valuetext":typeof n==`string`||typeof n==`number`?String(n):void 0,"aria-labelledby":w?void 0:R,"aria-describedby":w?void 0:V,"aria-invalid":!w&&l?!0:void 0,"aria-label":w?t===0?`Минимальное значение`:`Максимальное значение`:R?void 0:`Значение`,onPointerDown:$(t),onKeyDown:ge(t)})})},t)})]})}),c===`full`&&S.length>0&&(0,Q.jsx)(`div`,{className:K.marks,children:S.map(e=>{let t=w?e.value>=O[0]&&e.value<=O[1]:e.value<=T;return(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`mark`,"data-active":t?``:void 0,className:K.mark,style:{left:`${v(e,S,C)}%`},"aria-label":e.ariaLabel,disabled:p,onClick:()=>_e(e.value),children:[(0,Q.jsx)(`span`,{className:K.markDot,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{className:K.markLabel,children:e.label})]},e.value)})})]})})}function Y(e){return(0,Q.jsx)(J,{...e,mode:`single`,marksDisplay:`compact`})}function X(e){return(0,Q.jsx)(J,{...e,mode:`range`,marksDisplay:`compact`})}var Z,Q;function $(){return($=t((()=>{Z=e(n(),1),a(),c(),ne(),o(),O(),q(),Q=r(),J.__docgenInfo={description:``,methods:[],displayName:`SliderBase`},Y.__docgenInfo={description:``,methods:[],displayName:`Slider`,props:{min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы отбрасываются.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы отбрасываются.`},step:{required:!1,tsType:{name:`number`},description:"Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks."},marks:{required:!1,tsType:{name:`unknown`},description:`Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:"Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу."},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс контейнера поля.`},error:{required:!1,tsType:{name:`string`},description:"Текст внешней ошибки, отображается через общую `InputUI`-обёртку."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.`}},composes:[`Omit`]},X.__docgenInfo={description:``,methods:[],displayName:`SliderRange`,props:{min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы отбрасываются.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы отбрасываются.`},step:{required:!1,tsType:{name:`number`},description:"Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks."},marks:{required:!1,tsType:{name:`unknown`},description:`Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:"Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу."},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс контейнера поля.`},error:{required:!1,tsType:{name:`string`},description:"Текст внешней ошибки, отображается через общую `InputUI`-обёртку."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.`}},composes:[`Omit`]}})))()}export{K as a,O as c,_ as d,$ as i,E as l,J as n,q as o,X as r,S as s,Y as t,x as u};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BmGorvhi.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{i as a,r as o,t as s}from"./Slider-CVPKS3XB.js";var c=t({Disabled:()=>k,MonthsIndexMarks:()=>w,RangeMonthToDaysOutput:()=>D,RangeOpenMonthToDaysOutput:()=>O,RangeOpenWithoutExplicitMiddleOutput:()=>E,RangePlain:()=>T,SingleStep:()=>S,SingleWithMarks:()=>C,__namedExportsOrder:()=>A,default:()=>b});function l(e,t){return i((n,r)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{...n,onChange:e=>{n.onChange(e),r({value:e})},onClearError:()=>{n.onClearError?.(),r({error:void 0})}}),(0,p.jsx)(f,{value:n.value,field:e,unit:t})]}))}function u(e,t){return e===null?`null`:`${e}${t}`}function d(e,t,n=``){let[r,i]=e??[null,null],a=[];return r!==null&&a.push(`${t} >= ${r}${n}`),i!==null&&a.push(`${t} <= ${i}${n}`),a.length>0?a.join(` AND `):`Фильтр не ограничивает значение`}function f({value:e,field:t,unit:n=``,children:r}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],human:`${u(i,n)} — ${u(a,n)}`,filter:d(e,t,n)},null,2)}),r]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{a(),r(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:25,label:`25`},{value:50,label:`50`},{value:75,label:`75`},{value:100,label:`100`}],g=[{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:9,label:`9 мес.`},{value:12,label:`12 мес.`},{value:18,label:`18 мес.`},{value:24,label:`24 мес.`}],_=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],v=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],y=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720},{value:25,label:`Без верхней границы`,outputValue:null}],b={title:`UI/Slider`,component:s,args:{label:`Слайдер`,value:30,onChange:m(),min:0,max:100,step:5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над слайдером.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},value:{description:`Текущее выбранное значение; в range-сценариях — пара границ.`,control:!1},onChange:{description:`Вызывается после выбора значения или границ.`,control:!1},min:{description:`Минимальная координата шкалы.`,control:`number`},max:{description:`Максимальная координата шкалы.`,control:`number`},step:{description:`Шаг шкалы, когда не заданы допустимые marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки выбора; range-marks могут возвращать отдельный outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и обёртки поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует pointer-, click- и keyboard-взаимодействие.`,control:`boolean`}}},x=i((e,t)=>(0,p.jsx)(s,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),S={render:x,args:{label:`Громкость`,description:`Компактный single-value слайдер со step=5.`,value:35,step:5}},C={render:x,args:{label:`Процент выполнения`,description:`Marks активны, кликабельны и показывают подписи через tooltip.`,value:50,marks:h}},w={render:x,args:{label:`Срок`,min:1,max:24,value:6,marks:g,marksPosition:`index`,description:`Неравномерные значения месяцев расположены с равным визуальным шагом.`}},T={render:l(`progress`,`%`),args:{label:`Процент выполнения`,description:"Обычный range: `value` mark является и координатой шкалы, и значением фильтра.",min:0,max:100,marks:h,value:[25,75]}},E={render:l(`months`,` мес.`),args:{label:`Срок в месяцах`,description:"Открытые границы задаются только крайними `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:_,marksPosition:`index`,value:[null,12]}},D={render:l(`days`,` дн.`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:"`value` хранит координату/месяцы, `outputValue` отдаёт наружу дни.",min:1,max:24,marks:v,marksPosition:`index`,value:[90,360]}},O={render:l(`days`,` дн.`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:y,marksPosition:`index`,value:[null,720]}},k={render:x,args:{label:`Недоступно`,description:`Состояние без интеракций.`,value:40,disabled:!0,marks:h}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BvendKJ_.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{i as a,r as o,t as s}from"./Slider-D4wvDQDc.js";var c=t({Disabled:()=>k,MonthsIndexMarks:()=>w,RangeMonthToDaysOutput:()=>D,RangeOpenMonthToDaysOutput:()=>O,RangeOpenWithoutExplicitMiddleOutput:()=>E,RangePlain:()=>T,SingleStep:()=>S,SingleWithMarks:()=>C,__namedExportsOrder:()=>A,default:()=>b});function l(e,t){return i((n,r)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{...n,onChange:e=>{n.onChange(e),r({value:e})},onClearError:()=>{n.onClearError?.(),r({error:void 0})}}),(0,p.jsx)(f,{value:n.value,field:e,unit:t})]}))}function u(e,t){return e===null?`null`:`${e}${t}`}function d(e,t,n=``){let[r,i]=e??[null,null],a=[];return r!==null&&a.push(`${t} >= ${r}${n}`),i!==null&&a.push(`${t} <= ${i}${n}`),a.length>0?a.join(` AND `):`Фильтр не ограничивает значение`}function f({value:e,field:t,unit:n=``,children:r}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],human:`${u(i,n)} — ${u(a,n)}`,filter:d(e,t,n)},null,2)}),r]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{a(),r(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:25,label:`25`},{value:50,label:`50`},{value:75,label:`75`},{value:100,label:`100`}],g=[{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:9,label:`9 мес.`},{value:12,label:`12 мес.`},{value:18,label:`18 мес.`},{value:24,label:`24 мес.`}],_=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],v=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],y=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720},{value:25,label:`Без верхней границы`,outputValue:null}],b={title:`UI/Slider`,component:s,args:{label:`Слайдер`,value:30,onChange:m(),min:0,max:100,step:5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над слайдером.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},value:{description:`Текущее выбранное значение; в range-сценариях — пара границ.`,control:!1},onChange:{description:`Вызывается после выбора значения или границ.`,control:!1},min:{description:`Минимальная координата шкалы.`,control:`number`},max:{description:`Максимальная координата шкалы.`,control:`number`},step:{description:`Шаг шкалы, когда не заданы допустимые marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки выбора; range-marks могут возвращать отдельный outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и обёртки поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует pointer-, click- и keyboard-взаимодействие.`,control:`boolean`}}},x=i((e,t)=>(0,p.jsx)(s,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),S={render:x,args:{label:`Громкость`,description:`Компактный single-value слайдер со step=5.`,value:35,step:5}},C={render:x,args:{label:`Процент выполнения`,description:`Marks активны, кликабельны и показывают подписи через tooltip.`,value:50,marks:h}},w={render:x,args:{label:`Срок`,min:1,max:24,value:6,marks:g,marksPosition:`index`,description:`Неравномерные значения месяцев расположены с равным визуальным шагом.`}},T={render:l(`progress`,`%`),args:{label:`Процент выполнения`,description:"Обычный range: `value` mark является и координатой шкалы, и значением фильтра.",min:0,max:100,marks:h,value:[25,75]}},E={render:l(`months`,` мес.`),args:{label:`Срок в месяцах`,description:"Открытые границы задаются только крайними `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:_,marksPosition:`index`,value:[null,12]}},D={render:l(`days`,` дн.`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:"`value` хранит координату/месяцы, `outputValue` отдаёт наружу дни.",min:1,max:24,marks:v,marksPosition:`index`,value:[90,360]}},O={render:l(`days`,` дн.`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:y,marksPosition:`index`,value:[null,720]}},k={render:x,args:{label:`Недоступно`,description:`Состояние без интеракций.`,value:40,disabled:!0,marks:h}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
2
2
  render: renderSliderStory,
3
3
  args: {
4
4
  label: "Громкость",
@@ -1,3 +1,3 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BmGorvhi.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{g as a,p as o}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{i as s,n as c,r as l,t as u}from"./Popover-PRWJVARx.js";import{n as d,t as f}from"./ui.module-l7VCYIW-.js";import{d as p,l as m,o as h,r as g,s as _,u as v}from"./Input-YuUUu0DD.js";import{n as y,t as b}from"./PickerTriggerActions-BVO2pwu2.js";import{s as x}from"./number-scale-D2KTkjVQ.js";import{a as S,c as C,d as w,i as T,l as E,n as D,o as O,s as k,u as A}from"./Slider-CVPKS3XB.js";function j({open:e,disabled:t,setOpen:n}){let{refs:r,contentId:i}=s(),a=(0,M.useCallback)(e=>r.setReference(e),[r]);return(0,N.jsx)(`div`,{ref:a,onClick:e=>{e.defaultPrevented||(e.preventDefault(),e.stopPropagation())},children:(0,N.jsx)(b,{open:e,disabled:t,openAriaLabel:`Открыть слайдер`,closeAriaLabel:`Закрыть слайдер`,toggleAria:{"aria-controls":i,"aria-expanded":e,"aria-haspopup":`dialog`},onToggleMouseDown:e=>e.preventDefault(),onToggleClick:()=>n(e=>!e)})})}var M,N;function P(){return(P=e((()=>{M=t(),y(),l(),N=n(),j.__docgenInfo={description:`Сохраняет прежний wrapper как floating-anchor, а popup-семантику передаёт
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BvendKJ_.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{g as a,p as o}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{i as s,n as c,r as l,t as u}from"./Popover-DVLKhPpI.js";import{n as d,t as f}from"./ui.module-l7VCYIW-.js";import{d as p,l as m,o as h,r as g,s as _,u as v}from"./Input-C-RwifM5.js";import{n as y,t as b}from"./PickerTriggerActions-SYQofxvL.js";import{s as x}from"./number-scale-D2KTkjVQ.js";import{a as S,c as C,d as w,i as T,l as E,n as D,o as O,s as k,u as A}from"./Slider-D4wvDQDc.js";function j({open:e,disabled:t,setOpen:n}){let{refs:r,contentId:i}=s(),a=(0,M.useCallback)(e=>r.setReference(e),[r]);return(0,N.jsx)(`div`,{ref:a,onClick:e=>{e.defaultPrevented||(e.preventDefault(),e.stopPropagation())},children:(0,N.jsx)(b,{open:e,disabled:t,openAriaLabel:`Открыть слайдер`,closeAriaLabel:`Закрыть слайдер`,toggleAria:{"aria-controls":i,"aria-expanded":e,"aria-haspopup":`dialog`},onToggleMouseDown:e=>e.preventDefault(),onToggleClick:()=>n(e=>!e)})})}var M,N;function P(){return(P=e((()=>{M=t(),y(),l(),N=n(),j.__docgenInfo={description:`Сохраняет прежний wrapper как floating-anchor, а popup-семантику передаёт
2
2
  вложенной кнопке: так ARIA остаётся валидной без сдвига панели на один пиксель.`,methods:[],displayName:`SliderPopoverToggle`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},setOpen:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(nextOpen: boolean | ((prev: boolean) => boolean)) => void`,signature:{arguments:[{type:{name:`union`,raw:`boolean | ((prev: boolean) => boolean)`,elements:[{name:`boolean`},{name:`unknown`}]},name:`nextOpen`}],return:{name:`void`}}},description:``}}}})))()}function F(e,t){let n=E(e,t);return{start:n[0]===null?`-∞`:String(n[0]),end:n[1]===null?`∞`:String(n[1])}}function I(e,t){let n=e.trim();return n===``||n===t?null:o(n)}function L(e,t,n){let r=t.filter(t=>k(t)===e);if(r.length)return e===null&&n===`end`?r[r.length-1]:r[0]}function R(e,t){return e?.readonlyLabel?.trim()?e.readonlyLabel.trim():typeof e?.label==`string`||typeof e?.label==`number`?String(e.label):t===null?``:String(t)}function z(e,t,n){return R(L(e,t,n),e)}function ee(e,t,n){let[r,i]=e,a=r===null,o=i===null;return a&&o?n??``:a?`Меньше ${z(i,t,`end`)}`:o?`Больше ${z(r,t,`start`)}`:r===i?`Равно ${z(r,t,`start`)}`:`От ${z(r,t,`start`)} до ${z(i,t,`end`)}`}function B({value:e,onChange:t,min:n,max:r,step:i,marks:a,marksPosition:s=`value`,className:c,error:l,onClearError:d,label:f,description:p,placeholder:m,disabled:g,size:_}){let{min:v,max:y}=(0,U.useMemo)(()=>x(n,r),[n,r]),b=(0,U.useMemo)(()=>w(a,v,y),[a,v,y]),C=(0,U.useMemo)(()=>({min:v,max:y,step:i,marks:b,marksPosition:s}),[v,y,i,b,s]),T=A(e,C),[E,O]=(0,U.useState)(!1),[k,M]=(0,U.useState)(()=>({sourceValue:T,value:String(T)})),N=k.sourceValue===T?k.value:String(T),P=e=>{M({sourceValue:T,value:e})},F=(0,U.useCallback)(()=>{if(g){M({sourceValue:T,value:String(T)});return}let n=o(N);if(n===void 0){M({sourceValue:T,value:String(T)});return}let r=A(n,C);e!==r&&(t(r),d?.()),M({sourceValue:r,value:String(r)})},[g,N,T,t,d,C,e]);return(0,W.jsxs)(u,{open:E,onOpenChange:O,children:[(0,W.jsx)(h,{label:f,description:p,placeholder:m,disabled:g,size:_,className:c,error:l,value:N,onChange:P,onBlur:F,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),F())},endAdornmentWidth:`var(--control-height)`,endAdornment:(0,W.jsx)(j,{open:E,disabled:g,setOpen:O})}),(0,W.jsx)(u.Content,{background:`primary`,role:`dialog`,"aria-label":`Выбор значения`,children:(0,W.jsx)(`div`,{className:S.popoverContent,children:(0,W.jsx)(D,{mode:`single`,min:v,max:y,step:i,marks:b,marksPosition:s,marksDisplay:`full`,value:e,onChange:e=>{t(e),M({sourceValue:e,value:String(e)}),d?.()},disabled:g})})})]})}function V({value:e,onChange:t,min:n,max:i,step:a,marks:o,marksPosition:s=`value`,className:c,error:l,onClearError:f,label:m,description:h,readonlyValueText:v,placeholder:y,disabled:b,size:C}){let{min:T,max:O}=(0,U.useMemo)(()=>x(n,i),[n,i]),k=(0,U.useMemo)(()=>w(o,T,O),[o,T,O]),A=(0,U.useMemo)(()=>({min:T,max:O,step:a,marks:k,marksPosition:s}),[T,O,a,k,s]),M=(0,U.useMemo)(()=>E(e,A),[A,e]),N=(0,U.useMemo)(()=>F(M,A),[M,A]),[P,L]=(0,U.useState)(!1),[R,z]=(0,U.useState)(()=>({sourceValue:M,start:N.start,end:N.end})),[B,V]=(0,U.useState)(M),G=P||H(R.sourceValue,M),K=G?R.start:N.start,q=G?R.end:N.end,te=e=>{z({sourceValue:M,start:e,end:q})},ne=e=>{z({sourceValue:M,start:K,end:e})},{controlId:J,labelId:Y,descriptionId:re,errorId:ie,describedBy:ae}=p({hasLabel:m!=null,hasDescription:!!h,hasError:!!l}),X=(0,U.useCallback)(()=>{z({sourceValue:M,start:N.start,end:N.end})},[N.end,N.start,M]),Z=(0,U.useCallback)(()=>{if(b){X();return}let e=I(K,`-∞`),n=I(q,`∞`);if(e===void 0||n===void 0){X();return}let r=E([e,n],A);H(M,r)||(t(r),f?.());let i=F(r,A);z({sourceValue:r,start:i.start,end:i.end}),V(r)},[b,q,K,M,t,f,X,A]),oe=(0,U.useCallback)(e=>{let n=E(e,A);H(M,n)||(t(n),f?.());let r=F(n,A);z({sourceValue:n,start:r.start,end:r.end}),V(n)},[M,t,f,A]),Q=e=>{!P&&e&&(V(M),z({sourceValue:M,start:N.start,end:N.end})),P&&!e&&!b&&oe(B),L(e)},$=e=>{e.key===`Enter`&&(e.preventDefault(),Z())},se=e=>{let t=E(e,A);V(t);let n=F(t,A);z({sourceValue:M,start:n.start,end:n.end})},ce=v?ee(P?B:M,k,y):void 0;return(0,W.jsxs)(u,{open:P,onOpenChange:Q,children:[(0,W.jsx)(_,{label:m,description:h,disabled:b,className:c,size:C,error:l,controlId:J,labelId:Y,descriptionId:re,errorId:ie,children:(0,W.jsx)(g,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,W.jsx)(j,{open:P,disabled:b,setOpen:e=>{Q(typeof e==`function`?e(P):e)}}),children:({controlClassName:e})=>(0,W.jsx)(`div`,{id:J,className:r(d.uiInputControlFake,S.rangeInputControl,e),"data-invalid":l?``:void 0,"data-disabled":b||void 0,role:`group`,"aria-invalid":!!l||void 0,"aria-label":typeof m==`string`?m:`Диапазон`,"aria-labelledby":typeof m==`string`?void 0:Y,"aria-describedby":ae,children:v?(0,W.jsx)(`span`,{className:r(`flexEllipsis`,!ce&&d.uiPlaceholder),children:ce||y}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:S.rangeSegmentInput,value:K,disabled:b,"aria-label":`Начало диапазона`,onChange:e=>te(e.target.value),onBlur:Z,onKeyDown:$}),(0,W.jsx)(`span`,{className:S.rangeSeparator,"data-disabled":b||void 0,children:`-`}),(0,W.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:S.rangeSegmentInput,value:q,disabled:b,"aria-label":`Конец диапазона`,onChange:e=>ne(e.target.value),onBlur:Z,onKeyDown:$})]})})})}),(0,W.jsx)(u.Content,{background:`primary`,role:`dialog`,"aria-label":`Выбор диапазона значений`,children:(0,W.jsx)(`div`,{className:S.popoverContent,children:(0,W.jsx)(D,{mode:`range`,min:T,max:O,step:a,marks:k,marksPosition:s,marksDisplay:`full`,value:B,onChange:se,disabled:b})})})]})}function H(e,t){return e[0]===t[0]&&e[1]===t[1]}var U,W;function G(){return(G=e((()=>{U=t(),a(),i(),m(),v(),c(),f(),C(),T(),O(),P(),W=n(),B.__docgenInfo={description:``,methods:[],displayName:`SliderInput`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks single-слайдера. Single-компонент отдаёт наружу `mark.value`."}}},V.__docgenInfo={description:``,methods:[],displayName:`SliderRangeInput`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks range-слайдера. `value` задаёт координату на шкале, `outputValue` задаёт публичное значение для потребителя."},readonlyValueText:{required:!1,tsType:{name:`boolean`},description:`Показывает вместо ручных сегментов готовый текст по выбранным marks.
3
3
  Popover остаётся единственным способом изменить значение через слайдер, а потребитель получает изменение при закрытии popover.`}}}})))()}export{V as n,G as r,B as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.js";import{a as p,c as m,d as h,i as g,l as _,n as v,o as y,r as b,s as x,t as S,u as C}from"./SliderInput.stories-zBDRonPh.js";function w(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(s,{of:C,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.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-Bn1nLfdu.js";import{a as p,c as m,d as h,i as g,l as _,n as v,o as y,r as b,s as x,t as S,u as C}from"./SliderInput.stories-69pRH0Uk.js";function w(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(s,{of:C,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,E.jsx)(u,{children:`SliderInput`}),`
3
3
  `,(0,E.jsx)(o,{children:`Поля ввода для single и range с popover slider`}),`
4
4
  `,(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.code,{children:`SliderInput`}),` работает с одним числом, а `,(0,E.jsx)(t.code,{children:`SliderRangeInput`}),` — с диапазоном `,(0,E.jsx)(t.code,{children:`[number | null, number | null]`}),`.`]}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BmGorvhi.js";import{b as r,g as i}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";import{n as s,r as c,t as l}from"./SliderInput-MMUGLDDl.js";var u=t({Basic:()=>x,DecimalManualInput:()=>C,Disabled:()=>k,MarksSnap:()=>S,RangeInputMonthToDaysOutput:()=>E,RangeInputOpenMonthToDaysOutput:()=>D,RangeInputOpenWithoutExplicitMiddleOutput:()=>T,RangeInputPlain:()=>w,RangeInputReadonlyText:()=>O,__namedExportsOrder:()=>A,default:()=>y});function d(e){return o((t,n)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{...t,onChange:e=>{t.onChange(e),n({value:e})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}}),(0,p.jsx)(f,{value:t.value,field:e})]}))}function f({value:e,field:t,children:n}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],filter:r(t,e)},null,2)}),n]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{i(),c(),a(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:20,label:`20`},{value:40,label:`40`},{value:60,label:`60`},{value:80,label:`80`},{value:100,label:`100`}],g=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],_=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],v=[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],y={title:`UI/SliderInput`,component:l,args:{label:`Порог`,value:12,onChange:m(),min:0,max:100,step:.5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над числовым вводом.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},placeholder:{description:`Текст пустого поля или readonly-диапазона.`,control:`text`},value:{description:`Текущее значение; в range-сценариях — пара бизнес-границ.`,control:!1},onChange:{description:`Вызывается после commit ручного ввода или закрытия popover.`,control:!1},min:{description:`Минимальная координата шкалы в popover.`,control:`number`},max:{description:`Максимальная координата шкалы в popover.`,control:`number`},step:{description:`Шаг ручного ввода и слайдера, если не заданы marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки popover-слайдера; range-marks могут возвращать outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует ручной ввод и открытие popover.`,control:`boolean`}}},b=o((e,t)=>(0,p.jsx)(l,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),x={render:b,args:{label:`Порог`,description:`Ручной ввод и popover slider работают с одним значением.`}},S={render:b,args:{label:`Готовый пресет`,value:40,marks:h}},C={render:b,args:{label:`Десятичное значение`,value:17.5,step:.5}},w={render:d(`progress`),args:{label:`Процент выполнения`,description:"RangeInput без outputValue: наружу отдаётся координата `value`.",min:0,max:100,marks:h,value:[20,80]}},T={render:d(`months`),args:{label:`Срок в месяцах`,description:"У крайних marks `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:g,marksPosition:`index`,value:[null,12]}},E={render:d(`days`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:`В поле и фильтре видны дни, а popover показывает месячные marks.`,min:1,max:24,marks:_,marksPosition:`index`,value:[90,360]}},D={render:d(`days`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:v,marksPosition:`index`,value:[null,720]}},O={render:d(`days`),args:{label:`Срок текстом`,description:`В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.`,min:0,max:25,marks:v,marksPosition:`index`,value:[90,180],readonlyValueText:!0,placeholder:`Любой срок`},argTypes:{readonlyValueText:{description:`Показывает собранный текст вместо ручных сегментов диапазона.`,control:`boolean`}}},k={render:b,args:{label:`Недоступно`,description:`Поле и popover отключены.`,value:20,disabled:!0,marks:h}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BvendKJ_.js";import{b as r,g as i}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";import{n as s,r as c,t as l}from"./SliderInput-AC9oLjGF.js";var u=t({Basic:()=>x,DecimalManualInput:()=>C,Disabled:()=>k,MarksSnap:()=>S,RangeInputMonthToDaysOutput:()=>E,RangeInputOpenMonthToDaysOutput:()=>D,RangeInputOpenWithoutExplicitMiddleOutput:()=>T,RangeInputPlain:()=>w,RangeInputReadonlyText:()=>O,__namedExportsOrder:()=>A,default:()=>y});function d(e){return o((t,n)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{...t,onChange:e=>{t.onChange(e),n({value:e})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}}),(0,p.jsx)(f,{value:t.value,field:e})]}))}function f({value:e,field:t,children:n}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],filter:r(t,e)},null,2)}),n]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{i(),c(),a(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:20,label:`20`},{value:40,label:`40`},{value:60,label:`60`},{value:80,label:`80`},{value:100,label:`100`}],g=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],_=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],v=[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],y={title:`UI/SliderInput`,component:l,args:{label:`Порог`,value:12,onChange:m(),min:0,max:100,step:.5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над числовым вводом.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},placeholder:{description:`Текст пустого поля или readonly-диапазона.`,control:`text`},value:{description:`Текущее значение; в range-сценариях — пара бизнес-границ.`,control:!1},onChange:{description:`Вызывается после commit ручного ввода или закрытия popover.`,control:!1},min:{description:`Минимальная координата шкалы в popover.`,control:`number`},max:{description:`Максимальная координата шкалы в popover.`,control:`number`},step:{description:`Шаг ручного ввода и слайдера, если не заданы marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки popover-слайдера; range-marks могут возвращать outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует ручной ввод и открытие popover.`,control:`boolean`}}},b=o((e,t)=>(0,p.jsx)(l,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),x={render:b,args:{label:`Порог`,description:`Ручной ввод и popover slider работают с одним значением.`}},S={render:b,args:{label:`Готовый пресет`,value:40,marks:h}},C={render:b,args:{label:`Десятичное значение`,value:17.5,step:.5}},w={render:d(`progress`),args:{label:`Процент выполнения`,description:"RangeInput без outputValue: наружу отдаётся координата `value`.",min:0,max:100,marks:h,value:[20,80]}},T={render:d(`months`),args:{label:`Срок в месяцах`,description:"У крайних marks `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:g,marksPosition:`index`,value:[null,12]}},E={render:d(`days`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:`В поле и фильтре видны дни, а popover показывает месячные marks.`,min:1,max:24,marks:_,marksPosition:`index`,value:[90,360]}},D={render:d(`days`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:v,marksPosition:`index`,value:[null,720]}},O={render:d(`days`),args:{label:`Срок текстом`,description:`В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.`,min:0,max:25,marks:v,marksPosition:`index`,value:[90,180],readonlyValueText:!0,placeholder:`Любой срок`},argTypes:{readonlyValueText:{description:`Показывает собранный текст вместо ручных сегментов диапазона.`,control:`boolean`}}},k={render:b,args:{label:`Недоступно`,description:`Поле и popover отключены.`,value:20,disabled:!0,marks:h}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
2
2
  render: renderSliderInputStory,
3
3
  args: {
4
4
  label: "Порог",
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-CLY263mj.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.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-Bn1nLfdu.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-BbmTcem4.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,C.jsx)(u,{children:`Sortable`}),`
3
3
  `,(0,C.jsxs)(o,{children:[`Headless-набор для сортируемых коллекций на базе `,(0,C.jsx)(t.code,{children:`dnd-kit`}),` с поддержкой list, horizontal и grid-layout`]}),`
4
4
  `,(0,C.jsxs)(t.p,{children:[(0,C.jsx)(t.code,{children:`Sortable`}),` не навязывает визуальный вид элементов и используется как композиционный слой поверх `,(0,C.jsx)(t.code,{children:`dnd-kit`}),`.
@@ -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{i as r,n as i,r as a,t as o}from"./sortable-BrLDYUp8.js";import{n as s}from"./iframe-BmGorvhi.js";var c=t({Basic:()=>S,DisabledItems:()=>T,GridCards:()=>w,HandleOnly:()=>E,HorizontalList:()=>C,NestedContainers:()=>D,SortablePreview:()=>f,__namedExportsOrder:()=>O,default:()=>x});function l(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function u(e){switch(e){case`horizontal`:return{display:`flex`,gap:`var(--space-sm)`,overflowX:`auto`};case`grid`:return{display:`grid`,gap:`var(--space-sm)`,gridTemplateColumns:`repeat(auto-fill, minmax(12rem, 1fr))`};default:return{display:`grid`,gap:`var(--space-sm)`}}}function d(e){let t=e.initialItems,n=new Set(e.disabledIds??[]);return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:n=>{let r=a({event:n,items:{[e.containerId]:t}});r&&e.onItemsChange(l(t,r.fromIndex,r.toIndex))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:t,layout:e.layout,children:(0,h.jsx)(`div`,{style:u(e.layout),children:t.map(t=>(0,h.jsxs)(o.Item,{id:t,disabled:n.has(t),style:{..._,minWidth:e.itemWidth},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${t}`}),(0,h.jsx)(`div`,{children:t})]},t))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f(e){let[t,n]=(0,m.useState)(e.initialItems);return(0,h.jsx)(d,{...e,initialItems:t,onItemsChange:n})}function p({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,m.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:o=>{let s=a({event:o,items:{[e.containerId]:n,...Object.fromEntries(n.map(e=>[`parent:${e}`,r[e]??[]]))}});if(!s)return;if(s.containerId===e.containerId){t(l(n,s.fromIndex,s.toIndex));return}let c=String(s.containerId).slice(7);i(e=>({...e,[c]:l(e[c]??[],s.fromIndex,s.toIndex)}))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${e}`}),(0,h.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,h.jsx)(`strong`,{children:e}),(0,h.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,background:`var(--surface-1)`},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${e}`}),(0,h.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{m=n(),i(),r(),h=s(),{useArgs:g}=__STORYBOOK_MODULE_PREVIEW_API__,_={display:`grid`,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`center`,gap:`var(--space-sm)`,padding:`var(--space-sm)`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-0)`},v=[`Alpha`,`Bravo`,`Charlie`,`Delta`],y=[`Фильтры`,`Графики`,`Сводка`,`История`],b=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],x={title:`UI/Sortable`,component:f,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:v,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},render:function(e){let[,t]=g();return(0,h.jsx)(d,{...e,onItemsChange:e=>t({initialItems:e})})},argTypes:{containerId:{description:"Идентификатор `SortableContext`, который используется для вычисления reorder внутри контейнера.",control:`text`},layout:{description:`Режим раскладки и стратегия сортировки: вертикальный список, горизонтальный список или grid.`,control:`inline-radio`,options:[`vertical`,`horizontal`,`grid`]},initialItems:{description:`Текущий порядок элементов. После drag-and-drop обновляется в Storybook args.`,control:!1},itemWidth:{description:`Минимальная ширина карточки; полезна для горизонтального режима.`,control:`text`},disabledIds:{description:`Список id, для которых drag-handle отключен.`,control:!1}}},S={},C={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:y,itemWidth:`12rem`}},w={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:b}},T={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:v,disabledIds:[`Bravo`,`Delta`]}},E={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},D={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=g();return(0,h.jsx)(p,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},f.__docgenInfo={description:`Предоставляет самостоятельный React-preview компонента вне Storybook.
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a,t as o}from"./sortable-BkTzd-5v.js";import{n as s}from"./iframe-BvendKJ_.js";var c=t({Basic:()=>S,DisabledItems:()=>T,GridCards:()=>w,HandleOnly:()=>E,HorizontalList:()=>C,NestedContainers:()=>D,SortablePreview:()=>f,__namedExportsOrder:()=>O,default:()=>x});function l(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function u(e){switch(e){case`horizontal`:return{display:`flex`,gap:`var(--space-sm)`,overflowX:`auto`};case`grid`:return{display:`grid`,gap:`var(--space-sm)`,gridTemplateColumns:`repeat(auto-fill, minmax(12rem, 1fr))`};default:return{display:`grid`,gap:`var(--space-sm)`}}}function d(e){let t=e.initialItems,n=new Set(e.disabledIds??[]);return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:n=>{let r=a({event:n,items:{[e.containerId]:t}});r&&e.onItemsChange(l(t,r.fromIndex,r.toIndex))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:t,layout:e.layout,children:(0,h.jsx)(`div`,{style:u(e.layout),children:t.map(t=>(0,h.jsxs)(o.Item,{id:t,disabled:n.has(t),style:{..._,minWidth:e.itemWidth},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${t}`}),(0,h.jsx)(`div`,{children:t})]},t))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f(e){let[t,n]=(0,m.useState)(e.initialItems);return(0,h.jsx)(d,{...e,initialItems:t,onItemsChange:n})}function p({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,m.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:o=>{let s=a({event:o,items:{[e.containerId]:n,...Object.fromEntries(n.map(e=>[`parent:${e}`,r[e]??[]]))}});if(!s)return;if(s.containerId===e.containerId){t(l(n,s.fromIndex,s.toIndex));return}let c=String(s.containerId).slice(7);i(e=>({...e,[c]:l(e[c]??[],s.fromIndex,s.toIndex)}))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${e}`}),(0,h.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,h.jsx)(`strong`,{children:e}),(0,h.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,background:`var(--surface-1)`},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${e}`}),(0,h.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{m=n(),i(),r(),h=s(),{useArgs:g}=__STORYBOOK_MODULE_PREVIEW_API__,_={display:`grid`,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`center`,gap:`var(--space-sm)`,padding:`var(--space-sm)`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-0)`},v=[`Alpha`,`Bravo`,`Charlie`,`Delta`],y=[`Фильтры`,`Графики`,`Сводка`,`История`],b=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],x={title:`UI/Sortable`,component:f,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:v,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},render:function(e){let[,t]=g();return(0,h.jsx)(d,{...e,onItemsChange:e=>t({initialItems:e})})},argTypes:{containerId:{description:"Идентификатор `SortableContext`, который используется для вычисления reorder внутри контейнера.",control:`text`},layout:{description:`Режим раскладки и стратегия сортировки: вертикальный список, горизонтальный список или grid.`,control:`inline-radio`,options:[`vertical`,`horizontal`,`grid`]},initialItems:{description:`Текущий порядок элементов. После drag-and-drop обновляется в Storybook args.`,control:!1},itemWidth:{description:`Минимальная ширина карточки; полезна для горизонтального режима.`,control:`text`},disabledIds:{description:`Список id, для которых drag-handle отключен.`,control:!1}}},S={},C={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:y,itemWidth:`12rem`}},w={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:b}},T={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:v,disabledIds:[`Bravo`,`Delta`]}},E={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},D={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=g();return(0,h.jsx)(p,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},f.__docgenInfo={description:`Предоставляет самостоятельный React-preview компонента вне Storybook.
2
2
  Storybook использует отдельный render ниже, чтобы синхронизировать порядок с args.`,methods:[],displayName:`SortablePreview`,props:{containerId:{required:!0,tsType:{name:`string`},description:``},layout:{required:!0,tsType:{name:`union`,raw:`"vertical" | "horizontal" | "grid"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"grid"`}]},description:``},initialItems:{required:!0,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``},itemWidth:{required:!1,tsType:{name:`string`},description:``},disabledIds:{required:!1,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``}}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`function SortablePreview(props: SortablePreviewProps) {
3
3
  const [items, setItems] = useState(props.initialItems);
4
4
  return <SortablePreviewCanvas {...props} initialItems={items} onItemsChange={setItems} />;
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Splitter.stories-CY3Itq_G.js";function b(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.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-Bn1nLfdu.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Splitter.stories-HntpFa6w.js";function b(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`Splitter`}),`
3
3
  `,(0,S.jsx)(o,{children:(0,S.jsx)(t.p,{children:`Компонент для интерактивного разделения рабочей области на две панели с поддержкой вложенности, клавиатуры и ограничений по размеру`})}),`
4
4
  `,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`Splitter`}),` подходит для интерфейсов, где пользователь должен самостоятельно перераспределять пространство между соседними областями: навигацией и контентом, таблицей и деталями, превью и журналом событий.`]}),`
@@ -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-BmGorvhi.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{i as o,s,u as c}from"./number-scale-D2KTkjVQ.js";var l,u,d,f,p,m,h;function g(){return(g=e((()=>{l=`wAovST`,u=`QVVMwe`,d=`H43AJ8`,f=`pgo8sW`,p=`_8fCvqA`,m=`t6RFcI`,h={splitter:l,vertical:u,separator:d,horizontal:f,topLeft:p,bottomRight:m}})))()}function _(e,t,n){return Math.min(n,Math.max(t,e))}function v(e,t){return Number.isFinite(e)?_(e,0,1):t}function y(e,t){let n=v(e,k),r=v(t,A);return n<=r?[n,r]:[r,n]}function b(e,t){return e===`vertical`?t.clientX:t.clientY}function x(e,t){return e===`vertical`?t.width:t.height}function S(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return M}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return M}return null}function C(e,t){return t===`start`?0:t===`end`?1:e}function w({direction:e,initial:t,min:n,max:r,onChange:i,collapsedPane:a}){let[o,s]=y(n,r),c=(0,D.useRef)(null),l=(0,D.useRef)(null),u=(0,D.useRef)(null),d=(0,D.useRef)(null),f=(0,D.useRef)(null),p=(0,D.useRef)(null),m=(0,D.useRef)(0),h=(0,D.useRef)(_(v(t,j),o,s)),g=(0,D.useRef)(t),[w,T]=(0,D.useState)(()=>_(v(t,j),o,s)),E=(0,D.useRef)(w),O=(0,D.useCallback)(e=>{E.current=e,l.current?.style.setProperty(`flex-basis`,`${C(e,a)*100}%`),u.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[a]),k=()=>{if(p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),f.current===null)return E.current;let e=f.current;return f.current=null,O(e),e},A=e=>{f.current=e,p.current===null&&(p.current=requestAnimationFrame(()=>{p.current=null,f.current!==null&&O(f.current)}))},M=()=>{d.current?.(),d.current=null},N=(e,t=E.current)=>{k();let n=_(e,o,s);T(n),n!==t&&i?.(n)};return(0,D.useLayoutEffect)(()=>{O(w)},[O,w]),(0,D.useEffect)(()=>{T(e=>{let n=g.current!==t;return g.current=t,_(n?v(t,j):e,o,s)})},[t,o,s]),(0,D.useEffect)(()=>()=>{M(),p.current!==null&&cancelAnimationFrame(p.current)},[]),{containerRef:c,topLeftRef:l,separatorRef:u,ratio:w,minRatio:o,maxRatio:s,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=c.current;if(!n)return;M();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}m.current=b(e,t),h.current=E.current;let r=t=>{let r=x(e,n.getBoundingClientRect());if(r<=0)return;let i=b(e,t)-m.current,a=_(h.current+i/r,o,s);A(a)},i=()=>{M(),N(k(),h.current)};d.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=S(e,t.key);if(n!==null){t.preventDefault(),N(E.current+n);return}if(t.key===`Home`){t.preventDefault(),N(o);return}t.key===`End`&&(t.preventDefault(),N(s))}}}function T({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:f,handleSeparatorPointerDown:p,handleSeparatorKeyDown:m}=o,g=C(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,O.jsxs)(`div`,{ref:s,className:i(h.splitter,h[t],e),children:[(0,O.jsx)(`div`,{ref:c,className:h.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,O.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(f*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:p,onKeyDown:m,className:h.separator}),(0,O.jsx)(`div`,{className:h.bottomRight,hidden:v,children:r})]})}function E({direction:e=`vertical`,initial:t=j,min:n=k,max:r=A,onChange:i,className:a,collapsedPane:o=null,children:s}){let[c,l]=D.Children.toArray(s),u=w({direction:e,initial:t,min:n,max:r,onChange:i,collapsedPane:o});return l?(0,O.jsx)(T,{className:a,direction:e,left:c,right:l,collapsedPane:o,logic:u}):c}var D,O,k,A,j,M;function N(){return(N=e((()=>{D=n(),a(),g(),O=r(),k=.1,A=.9,j=.7,M=.02,E.__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 ee,P,te,F;function I(){return(I=e((()=>{ee=`dN78Fa`,P=`q7Yvg9`,te=`yP9UOD`,F={container:ee,viewport:P,separator:te}})))()}function ne({height:e,defaultHeight:t,minHeight:n,maxHeight:r,heightStep:i,onHeightChange:a}){let l=s(n,r),u={...l,step:i},d=e!==void 0,[f,p]=(0,L.useState)(()=>c(t,l.min,l.max)),[m,h]=(0,L.useState)(null),g=c(e??f,l.min,l.max),_=m??g,v=(0,L.useRef)(null),y=(0,L.useRef)(null),b=(0,L.useRef)(null),x=(0,L.useRef)(_),S=(0,L.useRef)(_),C=(0,L.useRef)(0),w=()=>{if(y.current!==null&&(cancelAnimationFrame(y.current),y.current=null),b.current===null)return x.current;let e=b.current;return b.current=null,x.current=e,e},T=e=>{b.current=e,y.current===null&&(y.current=requestAnimationFrame(()=>{if(y.current=null,b.current===null)return;let e=b.current;b.current=null,x.current=e,h(e)}))},E=(e,t=x.current)=>{let n=c(e,l.min,l.max);x.current=n,h(null),n!==t&&(d||p(n),a?.(n))},D=()=>{v.current?.(),v.current=null};return(0,L.useLayoutEffect)(()=>{x.current=_},[_]),(0,L.useEffect)(()=>()=>{D(),y.current!==null&&cancelAnimationFrame(y.current)},[]),{height:_,minHeight:l.min,maxHeight:l.max,handleSeparatorPointerDown:e=>{if(e.button!==0)return;e.preventDefault(),D();try{e.currentTarget.setPointerCapture?.(e.pointerId)}catch{}C.current=e.clientY,S.current=x.current;let t=e=>{let t=e.clientY-C.current,n=c(S.current+t,l.min,l.max);T(n)},n=()=>{D(),E(w(),S.current)};v.current=()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n),document.removeEventListener(`pointercancel`,n)},document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n),document.addEventListener(`pointercancel`,n)},handleSeparatorKeyDown:e=>{let t;e.key===`ArrowUp`&&(t=o(_,-1,u)),e.key===`ArrowDown`&&(t=o(_,1,u)),e.key===`Home`&&(t=l.min),e.key===`End`&&(t=l.max),t!==void 0&&(e.preventDefault(),E(t,_))}}}var L;function R(){return(R=e((()=>{L=n()})))()}function re({height:e,defaultHeight:t=ie,minHeight:n=ae,maxHeight:r=V,heightStep:a=H,onHeightChange:o,className:s,viewportClassName:c,separatorClassName:l,separatorAriaLabel:u=`Изменить высоту рабочей области`,children:d}){let f=`${(0,z.useId)()}-viewport`,p=ne({height:e,defaultHeight:t,minHeight:n,maxHeight:r,heightStep:a,onHeightChange:o});return(0,B.jsxs)(`div`,{className:i(F.container,s),"data-ui":`splitter-height-container`,children:[(0,B.jsx)(`div`,{id:f,className:i(F.viewport,c),style:{height:p.height},"data-ui":`splitter-height-viewport`,children:d}),(0,B.jsx)(`div`,{role:`separator`,"aria-label":u,"aria-orientation":`horizontal`,"aria-controls":f,"aria-valuemin":p.minHeight,"aria-valuemax":p.maxHeight,"aria-valuenow":p.height,"aria-valuetext":`${p.height} px`,tabIndex:0,className:i(F.separator,l),onPointerDown:p.handleSeparatorPointerDown,onKeyDown:p.handleSeparatorKeyDown,"data-ui":`splitter-height-separator`})]})}var z,B,ie,ae,V,H;function U(){return(U=e((()=>{z=n(),a(),I(),R(),B=r(),ie=480,ae=240,V=1200,H=20,re.__docgenInfo={description:`Опциональная внешняя композиция для Splitter: область панелей получает
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-BvendKJ_.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{i as o,s,u as c}from"./number-scale-D2KTkjVQ.js";var l,u,d,f,p,m,h;function g(){return(g=e((()=>{l=`wAovST`,u=`QVVMwe`,d=`H43AJ8`,f=`pgo8sW`,p=`_8fCvqA`,m=`t6RFcI`,h={splitter:l,vertical:u,separator:d,horizontal:f,topLeft:p,bottomRight:m}})))()}function _(e,t,n){return Math.min(n,Math.max(t,e))}function v(e,t){return Number.isFinite(e)?_(e,0,1):t}function y(e,t){let n=v(e,k),r=v(t,A);return n<=r?[n,r]:[r,n]}function b(e,t){return e===`vertical`?t.clientX:t.clientY}function x(e,t){return e===`vertical`?t.width:t.height}function S(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return M}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return M}return null}function C(e,t){return t===`start`?0:t===`end`?1:e}function w({direction:e,initial:t,min:n,max:r,onChange:i,collapsedPane:a}){let[o,s]=y(n,r),c=(0,D.useRef)(null),l=(0,D.useRef)(null),u=(0,D.useRef)(null),d=(0,D.useRef)(null),f=(0,D.useRef)(null),p=(0,D.useRef)(null),m=(0,D.useRef)(0),h=(0,D.useRef)(_(v(t,j),o,s)),g=(0,D.useRef)(t),[w,T]=(0,D.useState)(()=>_(v(t,j),o,s)),E=(0,D.useRef)(w),O=(0,D.useCallback)(e=>{E.current=e,l.current?.style.setProperty(`flex-basis`,`${C(e,a)*100}%`),u.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[a]),k=()=>{if(p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),f.current===null)return E.current;let e=f.current;return f.current=null,O(e),e},A=e=>{f.current=e,p.current===null&&(p.current=requestAnimationFrame(()=>{p.current=null,f.current!==null&&O(f.current)}))},M=()=>{d.current?.(),d.current=null},N=(e,t=E.current)=>{k();let n=_(e,o,s);T(n),n!==t&&i?.(n)};return(0,D.useLayoutEffect)(()=>{O(w)},[O,w]),(0,D.useEffect)(()=>{T(e=>{let n=g.current!==t;return g.current=t,_(n?v(t,j):e,o,s)})},[t,o,s]),(0,D.useEffect)(()=>()=>{M(),p.current!==null&&cancelAnimationFrame(p.current)},[]),{containerRef:c,topLeftRef:l,separatorRef:u,ratio:w,minRatio:o,maxRatio:s,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=c.current;if(!n)return;M();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}m.current=b(e,t),h.current=E.current;let r=t=>{let r=x(e,n.getBoundingClientRect());if(r<=0)return;let i=b(e,t)-m.current,a=_(h.current+i/r,o,s);A(a)},i=()=>{M(),N(k(),h.current)};d.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=S(e,t.key);if(n!==null){t.preventDefault(),N(E.current+n);return}if(t.key===`Home`){t.preventDefault(),N(o);return}t.key===`End`&&(t.preventDefault(),N(s))}}}function T({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:f,handleSeparatorPointerDown:p,handleSeparatorKeyDown:m}=o,g=C(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,O.jsxs)(`div`,{ref:s,className:i(h.splitter,h[t],e),children:[(0,O.jsx)(`div`,{ref:c,className:h.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,O.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(f*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:p,onKeyDown:m,className:h.separator}),(0,O.jsx)(`div`,{className:h.bottomRight,hidden:v,children:r})]})}function E({direction:e=`vertical`,initial:t=j,min:n=k,max:r=A,onChange:i,className:a,collapsedPane:o=null,children:s}){let[c,l]=D.Children.toArray(s),u=w({direction:e,initial:t,min:n,max:r,onChange:i,collapsedPane:o});return l?(0,O.jsx)(T,{className:a,direction:e,left:c,right:l,collapsedPane:o,logic:u}):c}var D,O,k,A,j,M;function N(){return(N=e((()=>{D=n(),a(),g(),O=r(),k=.1,A=.9,j=.7,M=.02,E.__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 ee,P,te,F;function I(){return(I=e((()=>{ee=`dN78Fa`,P=`q7Yvg9`,te=`yP9UOD`,F={container:ee,viewport:P,separator:te}})))()}function ne({height:e,defaultHeight:t,minHeight:n,maxHeight:r,heightStep:i,onHeightChange:a}){let l=s(n,r),u={...l,step:i},d=e!==void 0,[f,p]=(0,L.useState)(()=>c(t,l.min,l.max)),[m,h]=(0,L.useState)(null),g=c(e??f,l.min,l.max),_=m??g,v=(0,L.useRef)(null),y=(0,L.useRef)(null),b=(0,L.useRef)(null),x=(0,L.useRef)(_),S=(0,L.useRef)(_),C=(0,L.useRef)(0),w=()=>{if(y.current!==null&&(cancelAnimationFrame(y.current),y.current=null),b.current===null)return x.current;let e=b.current;return b.current=null,x.current=e,e},T=e=>{b.current=e,y.current===null&&(y.current=requestAnimationFrame(()=>{if(y.current=null,b.current===null)return;let e=b.current;b.current=null,x.current=e,h(e)}))},E=(e,t=x.current)=>{let n=c(e,l.min,l.max);x.current=n,h(null),n!==t&&(d||p(n),a?.(n))},D=()=>{v.current?.(),v.current=null};return(0,L.useLayoutEffect)(()=>{x.current=_},[_]),(0,L.useEffect)(()=>()=>{D(),y.current!==null&&cancelAnimationFrame(y.current)},[]),{height:_,minHeight:l.min,maxHeight:l.max,handleSeparatorPointerDown:e=>{if(e.button!==0)return;e.preventDefault(),D();try{e.currentTarget.setPointerCapture?.(e.pointerId)}catch{}C.current=e.clientY,S.current=x.current;let t=e=>{let t=e.clientY-C.current,n=c(S.current+t,l.min,l.max);T(n)},n=()=>{D(),E(w(),S.current)};v.current=()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n),document.removeEventListener(`pointercancel`,n)},document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n),document.addEventListener(`pointercancel`,n)},handleSeparatorKeyDown:e=>{let t;e.key===`ArrowUp`&&(t=o(_,-1,u)),e.key===`ArrowDown`&&(t=o(_,1,u)),e.key===`Home`&&(t=l.min),e.key===`End`&&(t=l.max),t!==void 0&&(e.preventDefault(),E(t,_))}}}var L;function R(){return(R=e((()=>{L=n()})))()}function re({height:e,defaultHeight:t=ie,minHeight:n=ae,maxHeight:r=V,heightStep:a=H,onHeightChange:o,className:s,viewportClassName:c,separatorClassName:l,separatorAriaLabel:u=`Изменить высоту рабочей области`,children:d}){let f=`${(0,z.useId)()}-viewport`,p=ne({height:e,defaultHeight:t,minHeight:n,maxHeight:r,heightStep:a,onHeightChange:o});return(0,B.jsxs)(`div`,{className:i(F.container,s),"data-ui":`splitter-height-container`,children:[(0,B.jsx)(`div`,{id:f,className:i(F.viewport,c),style:{height:p.height},"data-ui":`splitter-height-viewport`,children:d}),(0,B.jsx)(`div`,{role:`separator`,"aria-label":u,"aria-orientation":`horizontal`,"aria-controls":f,"aria-valuemin":p.minHeight,"aria-valuemax":p.maxHeight,"aria-valuenow":p.height,"aria-valuetext":`${p.height} px`,tabIndex:0,className:i(F.separator,l),onPointerDown:p.handleSeparatorPointerDown,onKeyDown:p.handleSeparatorKeyDown,"data-ui":`splitter-height-separator`})]})}var z,B,ie,ae,V,H;function U(){return(U=e((()=>{z=n(),a(),I(),R(),B=r(),ie=480,ae=240,V=1200,H=20,re.__docgenInfo={description:`Опциональная внешняя композиция для Splitter: область панелей получает
2
2
  независимую высоту, а расположенный снизу separator изменяет весь viewport.
3
3
  Внутренние Splitter при этом продолжают управлять только своими пропорциями.`,methods:[],displayName:`SplitterHeightContainer`,props:{defaultHeight:{defaultValue:{value:`480`,computed:!1},required:!1},minHeight:{defaultValue:{value:`240`,computed:!1},required:!1},maxHeight:{defaultValue:{value:`1200`,computed:!1},required:!1},heightStep:{defaultValue:{value:`20`,computed:!1},required:!1},separatorAriaLabel:{defaultValue:{value:`"Изменить высоту рабочей области"`,computed:!1},required:!1}}}})))()}var oe=t({AdjustableHeight:()=>$,Basic:()=>Y,Constrained:()=>Q,Horizontal:()=>X,NestedFourPanels:()=>Z,__namedExportsOrder:()=>ue,default:()=>le});function W({children:e}){return(0,q.jsx)(`div`,{style:{height:490},children:e})}function G({title:e,description:t,items:n=[]}){return(0,q.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,q.jsxs)(`div`,{children:[(0,q.jsx)(`h2`,{children:e}),(0,q.jsx)(`p`,{children:t})]}),n.length>0&&(0,q.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,q.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function K(e){return(0,q.jsx)(W,{children:(0,q.jsxs)(E,{...e,children:[(0,q.jsx)(G,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,q.jsx)(G,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function se(e){return(0,q.jsx)(W,{children:(0,q.jsxs)(E,{...e,children:[(0,q.jsxs)(E,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,q.jsx)(G,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,q.jsx)(G,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,q.jsxs)(E,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,q.jsx)(G,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,q.jsx)(G,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function ce(e){return(0,q.jsx)(W,{children:(0,q.jsxs)(E,{...e,children:[(0,q.jsx)(G,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,q.jsx)(G,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var q,J,le,Y,X,Z,Q,$,ue;function de(){return(de=e((()=>{N(),U(),q=r(),{useArgs:J}=__STORYBOOK_MODULE_PREVIEW_API__,le={title:`UI/Splitter`,component:E,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}},onChange:{description:`Получает итоговую долю первой панели после завершения drag или клавиатурного шага.`,control:!1},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},Y={name:`Две панели`,render:function(){let[e]=J();return(0,q.jsx)(K,{...e})}},X={name:`Горизонтальное разделение`,render:function(){let[e]=J();return(0,q.jsx)(K,{...e})},args:{direction:`horizontal`,initial:.55}},Z={name:`Четыре панели через вложенность`,render:function(){let[e]=J();return(0,q.jsx)(se,{...e})},args:{initial:.48,min:.25,max:.75}},Q={name:`Ограничения и клавиатура`,render:function(){let[e]=J();return(0,q.jsx)(ce,{...e})},args:{initial:.35,min:.25,max:.55}},$={name:`Изменяемая высота контейнера`,render:function(){let[e]=J();return(0,q.jsx)(re,{defaultHeight:360,minHeight:240,maxHeight:720,heightStep:20,children:(0,q.jsxs)(E,{...e,children:[(0,q.jsx)(G,{title:`Основная область`,description:`Separator под Splitter изменяет весь viewport, не меняя доли панелей.`,items:[`Высота хранится отдельно`,`Доли панелей остаются независимыми`]}),(0,q.jsx)(G,{title:`Дополнительная область`,description:`onHeightChange можно связать с внешними настройками пользователя.`,items:[`Минимум 240 px`,`Шаг клавиатуры 20 px`,`Максимум 720 px`]})]})})}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
4
4
  name: "Две панели",
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BmGorvhi.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{a,h as o,o as s}from"./formatters-DVE1YVNQ-CJCkXjuI.js";import{n as c,t as l}from"./Select-BeoH_3V4.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":s[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:o,value:s,onChange:c,options:u=a,stateMeta:d,className:f,clearable:p,required:m,error:h}){let g=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),_=g.some(e=>w(d?.[e])),v={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}),_?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(_?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,_?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:g,className:f,clearable:p,required:m,error:h,...v})}var k,A;function j(){return(j=e((()=>{k=t(),o(),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-BvendKJ_.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{a,h as o,o as s}from"./formatters-DVE1YVNQ-CJCkXjuI.js";import{n as c,t as l}from"./Select-DYHUwcLE.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":s[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:o,value:s,onChange:c,options:u=a,stateMeta:d,className:f,clearable:p,required:m,error:h}){let g=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),_=g.some(e=>w(d?.[e])),v={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}),_?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(_?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,_?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:g,className:f,clearable:p,required:m,error:h,...v})}var k,A;function j(){return(j=e((()=>{k=t(),o(),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:``},required:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})))()}export{j as n,O as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-ClSYkdz8.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-BvendKJ_.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-Bn1nLfdu.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-CfUJCQGE.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.
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-0x9vHUU_.js";import{i,n as a,r as o,t as s}from"./info-HMSnCOw2.js";import{n as c,t as l}from"./triangle-alert-Ww2Tuzxk.js";import{i as u,n as d,r as f}from"./iframe-BmGorvhi.js";import{n as p,t as m}from"./StateSelect-DfUif3cG.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:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-B1-l7Oh4.js";import{i,n as a,r as o,t as s}from"./info-Dq-9oYHd.js";import{n as c,t as l}from"./triangle-alert-CD0VXyGn.js";import{i as u,n as d,r as f}from"./iframe-BvendKJ_.js";import{n as p,t as m}from"./StateSelect-8r4Qlf4Y.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
2
  render: function Render(args) {
3
3
  const [, updateArgs] = useArgs<StateSelectProps>();
4
4
  return <StateSelect {...args} value={args.value ?? "information"} onChange={value => {
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./StatusIndicator.stories-BbpEocDe.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,pre:`pre`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.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-Bn1nLfdu.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./StatusIndicator.stories-DhKREzk8.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,pre:`pre`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`StatusIndicator`}),`
3
3
  `,(0,x.jsx)(o,{children:`Компактный цветовой маркер состояния`}),`
4
4
  `,(0,x.jsx)(t.p,{children:`StatusIndicator помогает быстро считать состояние строки, карточки или процесса. Компонент использует семантические status-токены темы и сохраняет цветовую схему во всех host-проектах.`}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BmGorvhi.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o,s,c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{a=`bJvCcD`,o=`UhVDLa`,s=`kNg89H`,c=`bRw83O`,l=`VQh7sh`,u=`zdESHk`,d=`-KLln9`,f=`Ak9M6g`,p=`_43MsRd`,m=`FpGv5-`,h=`y-1aex`,g=`_56N544`,_={statusIndicator:a,neutral:o,accent:s,info:c,success:l,warning:u,error:d,sizeSm:f,sizeMd:p,sizeLg:m,animated:h,statusIndicatorPulse:g}})))()}function y({tone:e=`neutral`,size:t=`md`,animated:n=!1,className:i,...a}){let o=a.role!==void 0||a[`aria-label`]!==void 0||a[`aria-labelledby`]!==void 0,s=a[`aria-hidden`]??(!o||void 0);return(0,b.jsx)(`span`,{...a,className:r(_.statusIndicator,x[e],S[t],n&&_.animated,i),"aria-hidden":s,"data-ui":`status-indicator`})}var b,x,S;function C(){return(C=e((()=>{i(),v(),b=n(),x={accent:_.accent,neutral:_.neutral,info:_.info,success:_.success,warning:_.warning,error:_.error},S={sm:_.sizeSm,md:_.sizeMd,lg:_.sizeLg},y.__docgenInfo={description:`Декоративный цветовой маркер статуса. Передавайте смысл состояния видимым текстом рядом с индикатором.`,methods:[],displayName:`StatusIndicator`,props:{tone:{required:!1,tsType:{name:`Exclude`,elements:[{name:`union`,raw:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},{name:`literal`,value:`"brand"`}],raw:`Exclude<UiTone, "brand">`},description:``,defaultValue:{value:`"neutral"`,computed:!1}},size:{required:!1,tsType:{name:`Extract`,elements:[{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},{name:`union`,raw:`"sm" | "md" | "lg"`,elements:[{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`}]}],raw:`Extract<UiSize, "sm" | "md" | "lg">`},description:``,defaultValue:{value:`"md"`,computed:!1}},animated:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}},composes:[`Omit`]}})))()}var w=t({Animated:()=>P,Basic:()=>j,Sizes:()=>N,Tones:()=>M,__namedExportsOrder:()=>F,default:()=>A}),T,E,D,O,k,A,j,M,N,P,F;function I(){return(I=e((()=>{C(),T=n(),E={display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:`var(--space-lg)`},D={display:`inline-flex`,alignItems:`center`,gap:`var(--space-sm)`},O=[{tone:`accent`,label:`Текущий`},{tone:`neutral`,label:`Неизвестно`},{tone:`info`,label:`В работе`},{tone:`success`,label:`Готово`},{tone:`warning`,label:`Требует внимания`},{tone:`error`,label:`Ошибка`}],k=[{size:`sm`,label:`Small`},{size:`md`,label:`Medium`},{size:`lg`,label:`Large`}],A={title:`UI/StatusIndicator`,component:y,args:{tone:`info`,size:`md`,animated:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{tone:{description:`Семантический цвет индикатора.`,control:`inline-radio`,options:[`accent`,`neutral`,`info`,`success`,`warning`,`error`]},size:{description:`Размер индикатора.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},animated:{description:`Включает спокойную пульсацию для изменяющегося или активного состояния.`,control:`boolean`}}},j={render:e=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{...e}),(0,T.jsx)(`span`,{children:`В работе`})]})},M={render:()=>(0,T.jsx)(`div`,{style:E,children:O.map(({tone:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{tone:e}),(0,T.jsx)(`span`,{children:t})]},e))})},N={render:()=>(0,T.jsx)(`div`,{style:E,children:k.map(({size:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{size:e,tone:`success`}),(0,T.jsx)(`span`,{children:t})]},e))})},P={render:()=>(0,T.jsxs)(`span`,{style:D,role:`status`,children:[(0,T.jsx)(y,{tone:`info`,animated:!0}),(0,T.jsx)(`span`,{children:`Синхронизация`})]})},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BvendKJ_.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o,s,c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{a=`bJvCcD`,o=`UhVDLa`,s=`kNg89H`,c=`bRw83O`,l=`VQh7sh`,u=`zdESHk`,d=`-KLln9`,f=`Ak9M6g`,p=`_43MsRd`,m=`FpGv5-`,h=`y-1aex`,g=`_56N544`,_={statusIndicator:a,neutral:o,accent:s,info:c,success:l,warning:u,error:d,sizeSm:f,sizeMd:p,sizeLg:m,animated:h,statusIndicatorPulse:g}})))()}function y({tone:e=`neutral`,size:t=`md`,animated:n=!1,className:i,...a}){let o=a.role!==void 0||a[`aria-label`]!==void 0||a[`aria-labelledby`]!==void 0,s=a[`aria-hidden`]??(!o||void 0);return(0,b.jsx)(`span`,{...a,className:r(_.statusIndicator,x[e],S[t],n&&_.animated,i),"aria-hidden":s,"data-ui":`status-indicator`})}var b,x,S;function C(){return(C=e((()=>{i(),v(),b=n(),x={accent:_.accent,neutral:_.neutral,info:_.info,success:_.success,warning:_.warning,error:_.error},S={sm:_.sizeSm,md:_.sizeMd,lg:_.sizeLg},y.__docgenInfo={description:`Декоративный цветовой маркер статуса. Передавайте смысл состояния видимым текстом рядом с индикатором.`,methods:[],displayName:`StatusIndicator`,props:{tone:{required:!1,tsType:{name:`Exclude`,elements:[{name:`union`,raw:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},{name:`literal`,value:`"brand"`}],raw:`Exclude<UiTone, "brand">`},description:``,defaultValue:{value:`"neutral"`,computed:!1}},size:{required:!1,tsType:{name:`Extract`,elements:[{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},{name:`union`,raw:`"sm" | "md" | "lg"`,elements:[{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`}]}],raw:`Extract<UiSize, "sm" | "md" | "lg">`},description:``,defaultValue:{value:`"md"`,computed:!1}},animated:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}},composes:[`Omit`]}})))()}var w=t({Animated:()=>P,Basic:()=>j,Sizes:()=>N,Tones:()=>M,__namedExportsOrder:()=>F,default:()=>A}),T,E,D,O,k,A,j,M,N,P,F;function I(){return(I=e((()=>{C(),T=n(),E={display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:`var(--space-lg)`},D={display:`inline-flex`,alignItems:`center`,gap:`var(--space-sm)`},O=[{tone:`accent`,label:`Текущий`},{tone:`neutral`,label:`Неизвестно`},{tone:`info`,label:`В работе`},{tone:`success`,label:`Готово`},{tone:`warning`,label:`Требует внимания`},{tone:`error`,label:`Ошибка`}],k=[{size:`sm`,label:`Small`},{size:`md`,label:`Medium`},{size:`lg`,label:`Large`}],A={title:`UI/StatusIndicator`,component:y,args:{tone:`info`,size:`md`,animated:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{tone:{description:`Семантический цвет индикатора.`,control:`inline-radio`,options:[`accent`,`neutral`,`info`,`success`,`warning`,`error`]},size:{description:`Размер индикатора.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},animated:{description:`Включает спокойную пульсацию для изменяющегося или активного состояния.`,control:`boolean`}}},j={render:e=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{...e}),(0,T.jsx)(`span`,{children:`В работе`})]})},M={render:()=>(0,T.jsx)(`div`,{style:E,children:O.map(({tone:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{tone:e}),(0,T.jsx)(`span`,{children:t})]},e))})},N={render:()=>(0,T.jsx)(`div`,{style:E,children:k.map(({size:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{size:e,tone:`success`}),(0,T.jsx)(`span`,{children:t})]},e))})},P={render:()=>(0,T.jsxs)(`span`,{style:D,role:`status`,children:[(0,T.jsx)(y,{tone:`info`,animated:!0}),(0,T.jsx)(`span`,{children:`Синхронизация`})]})},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
2
2
  render: args => <span style={itemStyle}>
3
3
  <StatusIndicator {...args} />
4
4
  <span>В работе</span>
@@ -1,3 +1,3 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./Toggle-BpDn9f6k.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:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./Toggle-D8UQ_CuL.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
2
  render: renderStringToggleStory
3
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-BmGorvhi.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-u0CCD6I1.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-D1VJIWsC.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-BvendKJ_.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-Bn1nLfdu.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-BpABAFmv.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.
@@ -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-0x9vHUU_.js";import{i as a,n as o,r as s}from"./iframe-BmGorvhi.js";import{a as c,i as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-l7VCYIW-.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-B1-l7Oh4.js";import{i as a,n as o,r as s}from"./iframe-BvendKJ_.js";import{a as c,i as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-l7VCYIW-.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,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./Switch-HAWn3D1c.js";import{n as i}from"./iframe-BmGorvhi.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:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./Switch-C4wfyH7_.js";import{n as i}from"./iframe-BvendKJ_.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
2
  render: renderBiStateSwitchStory
3
3
  }`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
4
4
  render: renderTriStateSwitchStory,
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.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,v as A}from"./Table.stories-DoGpFMZB.js";function j(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.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-Bn1nLfdu.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,v as A}from"./Table.stories-Cth_AbDh.js";function j(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,N.jsx)(u,{children:`Table`}),`
3
3
  `,(0,N.jsxs)(o,{children:[`Плоская таблица как React-альтернатива `,(0,N.jsx)(t.code,{children:`sap.m.Table`})]}),`
4
4
  `,(0,N.jsxs)(t.p,{children:[(0,N.jsx)(t.code,{children:`Table`}),` предназначен для плоских данных и по поведению осознанно сближен с `,(0,N.jsx)(t.code,{children:`TreeTable`}),`.
@@ -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,r as i,t as a}from"./sortable-BrLDYUp8.js";import{n as o}from"./iframe-BmGorvhi.js";import{a as ee,t as te}from"./array-D-_yMMUK-BBmW5vUr.js";import{h as ne,u as re}from"./formatters-DVE1YVNQ-CJCkXjuI.js";import{n as ie,t as ae}from"./useTable-CK68Q4S4.js";import{_ as oe,a as se,c as ce,d as le,f as ue,g as de,h as fe,i as pe,l as me,m as he,n as ge,o as _e,p as ve,r as ye,s as be,t as xe,u as Se,v as Ce,y as we}from"./FormattedTableCell-CdlWquoj.js";import{n as Te,t as s}from"./createControlledStoryRender-BouhvX-R.js";import{A as Ee,D as c,O as l,T as De,_ as Oe,a as ke,b as Ae,d as je,g as Me,i as u,k as Ne}from"./odata-DLogt0PY.js";var d,f,Pe;function Fe(){return(Fe=e((()=>{d=`hKghZt`,f=`QsLRvS`,Pe={selectedIndicatorCell:d,sentinel:f}})))()}function Ie(e,t){return String(t)}function p({title:e,isLoading:t,isFetching:n,data:r,columns:a,selectionMode:o=`none`,selectedRowIds:ee,getRowId:ne,className:ae,minHeight:se,tableClassName:le,columnVisibility:de,defaultColumnVisibility:pe,columnOrder:me,defaultColumnOrder:he,columnSizing:ge,defaultColumnSizing:be,columnPinning:we,defaultColumnPinning:Te,enableColumnResizing:s=!1,enableColumnReordering:Ee=!1,rowReordering:c,columnResizeMinWidth:l,onColumnVisibilityChange:De,onColumnOrderChange:ke,onColumnSizingChange:Ae,onColumnPinningChange:je,onRowClick:u,onRowSelectionChange:Ne,onReachEnd:d,getRowCanSelect:f,getRowClassName:Fe,renderHeaderContextMenu:p,renderCellContent:g}){let _=(0,m.useMemo)(()=>r??[],[r]),v=(0,m.useMemo)(()=>fe(a),[a]),y=ne??Ie,b=(0,m.useMemo)(()=>new Map(_.map((e,t)=>[y(e,t),e])),[y,_]),Le=(0,m.useMemo)(()=>Array.from(b.keys()),[b]),x=(0,m.useRef)(null),S=(0,m.useRef)(null),{rowSelection:Re,activateRowSelection:C}=Me({availableRowIds:Le,rowById:b,selectionMode:o,selectedRowIds:ee,onRowSelectionChange:Ne}),{columnVisibility:w,onColumnVisibilityChange:T}=_e({columnVisibility:de,defaultColumnVisibility:pe,onColumnVisibilityChange:De}),{columnOrder:E,onColumnOrderChange:ze}=ue({columnOrder:me,defaultColumnOrder:he,onColumnOrderChange:ke}),{columnSizing:D,onColumnSizingChange:Be}=ce({columnSizing:ge,defaultColumnSizing:be,columnResizeMinWidth:l,onColumnSizingChange:Ae}),{columnPinning:O,onColumnPinningChange:Ve}=Se({columnPinning:we,defaultColumnPinning:Te,onColumnPinningChange:je}),k=(0,m.useMemo)(()=>({columnOrder:E,columnPinning:O,columnSizing:D,columnVisibility:w}),[E,O,D,w]),He=(0,m.useEffectEvent)(()=>{d?.()});(0,m.useEffect)(()=>{if(!d||!x.current||!S.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&He()},{root:x.current,threshold:.1});return e.observe(S.current),()=>e.disconnect()},[t,d,_.length]);let A=ie({features:Oe,data:_,columns:a,state:{columnOrder:E,columnPinning:O,columnSizing:D,columnVisibility:w,rowSelection:Re},onColumnOrderChange:ze,onColumnPinningChange:Ve,onColumnSizingChange:Be,onColumnVisibilityChange:T,getRowId:(e,t)=>y(e,t),enableMultiRowSelection:o===`multi`,enableRowSelection:e=>o===`none`?!1:!f||f(e.original)}),j=Ce(A,k),M=A.getRowModel().rows,N=(0,m.useMemo)(()=>M.map(e=>e.id),[M]),Ue=(0,m.useMemo)(()=>ve({rows:M,columns:j}),[M,j]),P=j[0]?.id;return(0,h.jsx)(ye,{table:A,columnState:k,title:e,isLoading:t,isFetching:n,className:ae,minHeight:se,tableClassName:le,selectionMode:o,scrollableRef:x,onActivateRow:o!==`none`||u?e=>{C(e.id,e.getCanSelect()),u?.(e.original)}:void 0,isRowInteractive:e=>!!(u||o!==`none`&&e.getCanSelect()),getRowClassName:e=>Fe?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===P&&e.getIsSelected()?Pe.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>Ue.get(e.id),renderHeaderContextMenu:p,enableColumnResizing:s,enableColumnReordering:Ee,rowReordering:c?{disabled:c.disabled,onDragEnd:e=>{if(!c||c.disabled)return;let t=i({event:e,items:N});t&&c.onReorder(te(M.map(e=>e.original),t.fromIndex,t.toIndex))}}:void 0,columnResizeMinWidth:l,renderCellContent:e=>{let t=re({field:v.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=oe({columnId:e.cell.column.id,runtimeByColumnId:v.runtimeByColumnId,customCellColumnIds:v.customCellColumnIds})?(0,h.jsx)(xe,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return g?g({...e,defaultContent:n,displayValue:t}):n},afterTableContent:d?(0,h.jsx)(`div`,{ref:S,className:Pe.sentinel,"aria-hidden":`true`}):null})}var m,h;function g(){return(g=e((()=>{m=n(),ee(),ne(),Ae(),ae(),pe(),he(),de(),ge(),we(),le(),me(),be(),se(),r(),Fe(),h=o(),p.__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:`Внешний список выбранных строк.
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,r as i,t as a}from"./sortable-BkTzd-5v.js";import{n as o}from"./iframe-BvendKJ_.js";import{a as ee,t as te}from"./array-D-_yMMUK-BBmW5vUr.js";import{h as ne,u as re}from"./formatters-DVE1YVNQ-CJCkXjuI.js";import{n as ie,t as ae}from"./useTable-CK68Q4S4.js";import{_ as oe,a as se,c as ce,d as le,f as ue,g as de,h as fe,i as pe,l as me,m as he,n as ge,o as _e,p as ve,r as ye,s as be,t as xe,u as Se,v as Ce,y as we}from"./FormattedTableCell-Cfdl2sgg.js";import{n as Te,t as s}from"./createControlledStoryRender-BouhvX-R.js";import{A as Ee,D as c,O as l,T as De,_ as Oe,a as ke,b as Ae,d as je,g as Me,i as u,k as Ne}from"./odata-f2MNATrV.js";var d,f,Pe;function Fe(){return(Fe=e((()=>{d=`hKghZt`,f=`QsLRvS`,Pe={selectedIndicatorCell:d,sentinel:f}})))()}function Ie(e,t){return String(t)}function p({title:e,isLoading:t,isFetching:n,data:r,columns:a,selectionMode:o=`none`,selectedRowIds:ee,getRowId:ne,className:ae,minHeight:se,tableClassName:le,columnVisibility:de,defaultColumnVisibility:pe,columnOrder:me,defaultColumnOrder:he,columnSizing:ge,defaultColumnSizing:be,columnPinning:we,defaultColumnPinning:Te,enableColumnResizing:s=!1,enableColumnReordering:Ee=!1,rowReordering:c,columnResizeMinWidth:l,onColumnVisibilityChange:De,onColumnOrderChange:ke,onColumnSizingChange:Ae,onColumnPinningChange:je,onRowClick:u,onRowSelectionChange:Ne,onReachEnd:d,getRowCanSelect:f,getRowClassName:Fe,renderHeaderContextMenu:p,renderCellContent:g}){let _=(0,m.useMemo)(()=>r??[],[r]),v=(0,m.useMemo)(()=>fe(a),[a]),y=ne??Ie,b=(0,m.useMemo)(()=>new Map(_.map((e,t)=>[y(e,t),e])),[y,_]),Le=(0,m.useMemo)(()=>Array.from(b.keys()),[b]),x=(0,m.useRef)(null),S=(0,m.useRef)(null),{rowSelection:Re,activateRowSelection:C}=Me({availableRowIds:Le,rowById:b,selectionMode:o,selectedRowIds:ee,onRowSelectionChange:Ne}),{columnVisibility:w,onColumnVisibilityChange:T}=_e({columnVisibility:de,defaultColumnVisibility:pe,onColumnVisibilityChange:De}),{columnOrder:E,onColumnOrderChange:ze}=ue({columnOrder:me,defaultColumnOrder:he,onColumnOrderChange:ke}),{columnSizing:D,onColumnSizingChange:Be}=ce({columnSizing:ge,defaultColumnSizing:be,columnResizeMinWidth:l,onColumnSizingChange:Ae}),{columnPinning:O,onColumnPinningChange:Ve}=Se({columnPinning:we,defaultColumnPinning:Te,onColumnPinningChange:je}),k=(0,m.useMemo)(()=>({columnOrder:E,columnPinning:O,columnSizing:D,columnVisibility:w}),[E,O,D,w]),He=(0,m.useEffectEvent)(()=>{d?.()});(0,m.useEffect)(()=>{if(!d||!x.current||!S.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&He()},{root:x.current,threshold:.1});return e.observe(S.current),()=>e.disconnect()},[t,d,_.length]);let A=ie({features:Oe,data:_,columns:a,state:{columnOrder:E,columnPinning:O,columnSizing:D,columnVisibility:w,rowSelection:Re},onColumnOrderChange:ze,onColumnPinningChange:Ve,onColumnSizingChange:Be,onColumnVisibilityChange:T,getRowId:(e,t)=>y(e,t),enableMultiRowSelection:o===`multi`,enableRowSelection:e=>o===`none`?!1:!f||f(e.original)}),j=Ce(A,k),M=A.getRowModel().rows,N=(0,m.useMemo)(()=>M.map(e=>e.id),[M]),Ue=(0,m.useMemo)(()=>ve({rows:M,columns:j}),[M,j]),P=j[0]?.id;return(0,h.jsx)(ye,{table:A,columnState:k,title:e,isLoading:t,isFetching:n,className:ae,minHeight:se,tableClassName:le,selectionMode:o,scrollableRef:x,onActivateRow:o!==`none`||u?e=>{C(e.id,e.getCanSelect()),u?.(e.original)}:void 0,isRowInteractive:e=>!!(u||o!==`none`&&e.getCanSelect()),getRowClassName:e=>Fe?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===P&&e.getIsSelected()?Pe.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>Ue.get(e.id),renderHeaderContextMenu:p,enableColumnResizing:s,enableColumnReordering:Ee,rowReordering:c?{disabled:c.disabled,onDragEnd:e=>{if(!c||c.disabled)return;let t=i({event:e,items:N});t&&c.onReorder(te(M.map(e=>e.original),t.fromIndex,t.toIndex))}}:void 0,columnResizeMinWidth:l,renderCellContent:e=>{let t=re({field:v.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=oe({columnId:e.cell.column.id,runtimeByColumnId:v.runtimeByColumnId,customCellColumnIds:v.customCellColumnIds})?(0,h.jsx)(xe,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return g?g({...e,defaultContent:n,displayValue:t}):n},afterTableContent:d?(0,h.jsx)(`div`,{ref:S,className:Pe.sentinel,"aria-hidden":`true`}):null})}var m,h;function g(){return(g=e((()=>{m=n(),ee(),ne(),Ae(),ae(),pe(),he(),de(),ge(),we(),le(),me(),be(),se(),r(),Fe(),h=o(),p.__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
2
 
3
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
4
 
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./CheckBox-nBqHJGY9.js";import{n as i}from"./iframe-BmGorvhi.js";import{a,u as o}from"./array-D-_yMMUK-BBmW5vUr.js";import{n as s,t as c}from"./Button-C-uRygWz.js";import{n as l,t as u}from"./useTable-CK68Q4S4.js";import{a as d,l as f,t as p}from"./Input-YuUUu0DD.js";import{Et as m,Mt as h,Nt as g,Pt as _,Tt as v,n as ee,wt as te}from"./tableFeatures-Dx3U-F9E.js";import{n as ne,t as re}from"./Dialog-B9ltl4hS.js";import{n as ie,t as ae}from"./Textarea-Bz9O1y1I.js";function y(){if(crypto.randomUUID)return crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array(256);for(let e=0;e<256;e++)t[e]=(e+256).toString(16).slice(1);return t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+`-`+t[e[4]]+t[e[5]]+`-`+t[e[6]]+t[e[7]]+`-`+t[e[8]]+t[e[9]]+`-`+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}function oe(e){let t=e.getRowModel().rows,n=e.atoms.rowPinning?.get();if(!n||!n.top.length&&!n.bottom.length)return{rows:t,sectionStarts:pe};let r=e,i=r.getTopRows?.()??[],a=r.getCenterRows?.()??t,o=r.getBottomRows?.()??[];return{rows:[...i,...a,...o],sectionStarts:[i.length,i.length+a.length]}}function se(e,t){let n=t.getVisibleCells?.()??t.getAllCells(),r=Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e].column;let i=e.atoms.columnPinning?.get(),a=0,o=r.length;if(i){for(;a<o&&i.start.includes(r[a].id);)a++;for(;o>a&&i.end.includes(r[o-1].id);)o--}return{columns:r,centerStart:a,centerEnd:o}}function b(e){return e.columnDef.enableCellSpanning===!1?!1:e.table.options.enableCellSpanning??!0}function x(e){let{rows:t,sectionStarts:n}=oe(e),r=t.length,i={colSpans:fe,columnIndexes:de,rowSpans:ue,rows:t};if(!r||e.options.enableCellSpanning===!1)return i;let{columns:a,centerStart:o,centerEnd:s}=se(e,t[0]),c=a.length;if(!c)return i;let l=_();for(let e=0;e<c;e++)l[a[e].id]=e;let u=new Uint8Array(r);for(let e=0;e<n.length;e++){let t=n[e];t<r&&(u[t]=1)}for(let e=0;e<r;e++){let n=t[e];n._cellSpanRowIndex=e;let r=e>0?t[e-1]:void 0;(r&&(n.depth!==r.depth||n.parentId!==r.parentId)||n.getIsGrouped?.()===!0)&&(u[e]=1)}let d=[],f=!1;for(let n=0;n<c;n++){let i=a[n],l=i.columnDef.spanColumns;if(l===void 0||!b(i))continue;let u=n<o?o:n<s?s:c;for(let a=0;a<r;a++){let r=d[a];if(r&&r[n]===0)continue;let o=g(l)?l({column:i,row:t[a],table:e}):l;if(!(o>1))continue;let s=Math.min(o,u-n);if(s<2)continue;let p=r??(d[a]=new Int32Array(c).fill(1));p[n]=s;for(let e=n+1;e<n+s;e++)p[e]=0;f=!0}}let p=_();for(let n=0;n<c;n++){let i=a[n],o=i.columnDef.spanRows;if(!o||!b(i)||i.getIsGrouped?.()===!0)continue;let s=i.id,c=g(o)?o:void 0,l=new Int32Array(r).fill(1),m=!1,h=-1,_,v=1;for(let a=0;a<r;a++){let r=t[a],o=f?d[a]:void 0,p=o?o[n]:1;if(p===0){h=-1;continue}let g=r.getValue(s);if(h!==-1&&!u[a]&&p===v&&(c?c({anchorRow:t[h],anchorValue:_,column:i,previousRow:t[a-1],row:r,table:e,value:g}):g!=null&&Object.is(g,_))){l[a]=0,l[h]=l[h]+1,m=!0;continue}h=a,_=g,v=p}m&&(p[s]=l)}return{colSpans:d,columnIndexes:l,rowSpans:p,rows:t}}function S(e,t){let n=t.row._cellSpanRowIndex;return n===void 0||e.rows[n]!==t.row?-1:n}function C(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=n.rowSpans[e.column.id];if(!r)return 1;let i=S(n,e);return i===-1?1:r[i]}function ce(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=S(n,e);if(r===-1)return 1;let i=n.colSpans[r];if(!i)return 1;let a=n.columnIndexes[e.column.id];return a===void 0?1:i[a]}function le(e){return C(e)===0||ce(e)===0}var ue,de,fe,pe;function me(){return(me=e((()=>{h(),ue=_(),de=_(),fe=[],pe=[]})))()}var w;function T(){return(T=e((()=>{h(),me(),w={getDefaultTableOptions:()=>({enableCellSpanning:!0}),initRowInstanceData:e=>{e._cellSpanRowIndex=-1},assignCellPrototype:(e,t)=>{te(`cellSpanningFeature`,e,t,{cell_getColSpan:{fn:e=>ce(e)},cell_getIsCovered:{fn:e=>le(e)},cell_getRowSpan:{fn:e=>C(e)}})},constructTableAPIs:e=>{v(`cellSpanningFeature`,e,{table_getCellSpanIndex:{fn:()=>x(e),memoDeps:()=>[e.getRowModel().rows,e.atoms.rowPinning?.get(),e.options.keepPinnedRows,e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.columnPinning?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode,e.options.enableCellSpanning]}})}}})))()}function E(e,t){return e.row<t.row+t.rowSpan&&t.row<e.row+e.rowSpan&&e.column<t.column+t.columnSpan&&t.column<e.column+e.columnSpan}function D(e){let t=e.rows.length,n=e.columns.length;if(e.version!==1||!t||!n||t*n>2e4)throw Error(`Недопустимый размер таблицы.`);if(!Number.isInteger(e.headerRowCount)||e.headerRowCount<0||e.headerRowCount>t)throw Error(`Некорректное число строк заголовка.`);let r=new Set,i=e=>{if(!e||r.has(e))throw Error(`Идентификаторы строк, столбцов и ячеек должны быть уникальными.`);r.add(e)};for(let t of e.columns)if(i(t.id),t.width!==null&&(!Number.isFinite(t.width)||t.width<=0))throw Error(`Некорректная ширина столбца.`);for(let t of e.rows){if(i(t.id),t.cells.length!==n)throw Error(`Все строки должны иметь одинаковое число ячеек.`);t.cells.forEach(e=>i(e.id))}let a=new Set;for(let t of e.merges){if(O(e,t),t.rowSpan*t.columnSpan===1)throw Error(`Объединение должно содержать несколько ячеек.`);if(t.row<e.headerRowCount&&t.row+t.rowSpan>e.headerRowCount)throw Error(`Нельзя объединять заголовок с основной частью таблицы.`);for(let e=t.row;e<t.row+t.rowSpan;e++)for(let r=t.column;r<t.column+t.columnSpan;r++){let t=e*n+r;if(a.has(t))throw Error(`Объединённые области пересекаются.`);a.add(t)}}}function O(e,t){if(![t.row,t.column,t.rowSpan,t.columnSpan].every(Number.isInteger)||t.row<0||t.column<0||t.rowSpan<1||t.columnSpan<1||t.row+t.rowSpan>e.rows.length||t.column+t.columnSpan>e.columns.length)throw Error(`Выделение выходит за границы таблицы.`)}function k(e,t){let n={...t,rowSpan:1,columnSpan:1};return O(e,n),e.merges.find(e=>E(e,n))??n}function A(e,t,n){let r={row:Math.min(t.row,n.row),column:Math.min(t.column,n.column),rowSpan:Math.abs(t.row-n.row)+1,columnSpan:Math.abs(t.column-n.column)+1};O(e,r);let i=!0;for(;i;){i=!1;for(let t of e.merges){if(!E(r,t))continue;let e=Math.min(r.row,t.row),n=Math.min(r.column,t.column),a=Math.max(r.row+r.rowSpan,t.row+t.rowSpan)-e,o=Math.max(r.column+r.columnSpan,t.column+t.columnSpan)-n;(e!==r.row||n!==r.column||a!==r.rowSpan||o!==r.columnSpan)&&(r={row:e,column:n,rowSpan:a,columnSpan:o},i=!0)}}return r}function he(e,t,n){D(e);let r=A(e,t,n);if(r.rowSpan*r.columnSpan===1)return e;let i=e.merges.filter(e=>E(e,r));if(i.length===1&&r.row===i[0].row&&r.column===i[0].column&&r.rowSpan===i[0].rowSpan&&r.columnSpan===i[0].columnSpan)return e;let a={...e,merges:[...e.merges.filter(e=>!E(e,r)),r]};return D(a),a}function ge(e,t){D(e);let n=k(e,t);return n.rowSpan*n.columnSpan===1?e:{...e,merges:e.merges.filter(e=>e!==n)}}function j(e,t,n,r,i,a=`body`){D(e);let o=t===`row`?e.rows.length:e.columns.length;if(!Number.isInteger(n)||n<0||n>o)throw Error(`Некорректная позиция вставки.`);if(i.length!==(t===`row`?e.columns.length:e.rows.length))throw Error(`Неверное число новых ячеек.`);if(t===`row`&&(a===`header`?n>e.headerRowCount:n<e.headerRowCount))throw Error(`Строка вставляется вне выбранной части таблицы.`);let s=t===`row`?`rowSpan`:`columnSpan`,c=e.merges.map(e=>n<=e[t]?{...e,[t]:e[t]+1}:n<e[t]+e[s]?{...e,[s]:e[s]+1}:e),l=t===`row`?{...e,merges:c,headerRowCount:e.headerRowCount+ +(a===`header`),rows:[...e.rows.slice(0,n),{id:r,cells:i},...e.rows.slice(n)]}:{...e,merges:c,columns:[...e.columns.slice(0,n),{id:r,width:null},...e.columns.slice(n)],rows:e.rows.map((e,t)=>({...e,cells:[...e.cells.slice(0,n),i[t],...e.cells.slice(n)]}))};return D(l),l}function _e(e,t,n){return O(e,{...t,rowSpan:1,columnSpan:1}),Object.is(e.rows[t.row].cells[t.column].value,n)?e:{...e,rows:e.rows.map((e,r)=>r===t.row?{...e,cells:e.cells.map((e,r)=>r===t.column?{...e,value:n}:e)}:e)}}function M(e,t){D(e);let n=t===`row`?e.rows.length:e.columns.length,r=new Set;for(let n of e.merges){let e=t===`row`?n.rowSpan:n.columnSpan;for(let i=1;i<e;i++)r.add(n[t]+i)}let i=[],a=0;for(let e=1;e<=n;e++)(e===n||!r.has(e))&&(i.push({start:a,count:e-a}),a=e);return i}function ve(e,t,n){let r=M(e,t).find(e=>n>=e.start&&n<e.start+e.count);if(!r)throw Error(`Группа не найдена.`);let i=t===`row`?e.rows.length:e.columns.length;if(r.count===i)throw Error(`В таблице должна остаться хотя бы одна строка и один столбец.`);let a=r.start+r.count,o=e.merges.filter(e=>e[t]<r.start||e[t]>=a).map(e=>e[t]<a?e:{...e,[t]:e[t]-r.count}),s=t===`row`?{...e,merges:o,rows:e.rows.filter((e,t)=>t<r.start||t>=a),headerRowCount:e.headerRowCount-(r.start<e.headerRowCount?r.count:0)}:{...e,merges:o,columns:e.columns.filter((e,t)=>t<r.start||t>=a),rows:e.rows.map(e=>({...e,cells:e.cells.filter((e,t)=>t<r.start||t>=a)}))};return D(s),s}function ye(e,t,n,r){let i=M(e,t),a=i.findIndex(e=>n>=e.start&&n<e.start+e.count);if(a<0)throw Error(`Группа не найдена.`);let s=a+r;if(s<0||s>=i.length||t===`row`&&i[a].start<e.headerRowCount!=i[s].start<e.headerRowCount)return e;let c=o(i,a,r===-1?`up`:`down`).flatMap(e=>Array.from({length:e.count},(t,n)=>e.start+n)),l=new Map(c.map((e,t)=>[e,t])),u=e.merges.map(e=>({...e,[t]:l.get(e[t])??e[t]})),d=t===`row`?{...e,merges:u,rows:c.map(t=>e.rows[t])}:{...e,merges:u,columns:c.map(t=>e.columns[t]),rows:e.rows.map(e=>({...e,cells:c.map(t=>e.cells[t])}))};return D(d),d}function N(){return(N=e((()=>{a()})))()}var P,F,I,L,R,z,B,V,H;function U(){return(U=e((()=>{P=`_6ftNrS`,F=`tji4uW`,I=`nVFFYk`,L=`S7CdzG`,R=`emaqLv`,z=`VLG992`,B=`Hr0ghz`,V=`tuhyZe`,H={editor:P,toolbar:F,help:I,scroll:L,table:R,cellContent:z,inspector:B,structure:V}})))()}function be(e){let t=(0,W.useMemo)(()=>[...e.rows],[e]),n=(0,W.useMemo)(()=>e.columns.map((t,n)=>({id:t.id,accessorFn:(t,r)=>{let i=k(e,{row:r,column:n});return e.rows[i.row].cells[i.column].id},spanRows:!0,spanColumns:({row:t})=>{let r=k(e,{row:t.index,column:n});return r.column===n?r.columnSpan:1}})),[e]);return l({features:xe,data:t,columns:n,getRowId:e=>e.id})}var W,xe;function G(){return(G=e((()=>{W=t(),N(),T(),u(),xe=ee({cellSpanningFeature:w})})))()}function K({editor:e,extendSelection:t,disabled:n,renderCell:r,getCellText:i}){let a=(0,q.useId)(),o=(0,q.useRef)(new Map),s=be(e.document),{document:c,selection:l,focus:u}=e;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{id:a,className:H.help,children:`Стрелки — переход между ячейками. Shift + стрелки или Shift + щелчок — выделение диапазона. Содержимое выбранной ячейки редактируется под таблицей.`}),(0,J.jsx)(`div`,{className:H.scroll,children:(0,J.jsxs)(`table`,{role:`grid`,"aria-label":c.caption||`Редактор таблицы`,"aria-describedby":a,"aria-multiselectable":`true`,"aria-disabled":n||void 0,className:H.table,children:[(0,J.jsx)(`colgroup`,{children:c.columns.map(e=>(0,J.jsx)(`col`,{style:{width:e.width??180}},e.id))}),(0,J.jsx)(`tbody`,{children:s.getRowModel().rows.map(a=>(0,J.jsx)(`tr`,{"aria-rowindex":a.index+1,"data-header":a.index<c.headerRowCount||void 0,children:a.getAllCells().map((s,d)=>{if(s.getIsCovered())return null;let f=a.index>=l.row&&a.index<l.row+l.rowSpan&&d>=l.column&&d<l.column+l.columnSpan,p={row:a.index,column:d},m=a.original.cells[d],h=a.index<c.headerRowCount?`th`:`td`;return(0,J.jsxs)(h,{role:a.index<c.headerRowCount?`columnheader`:`gridcell`,ref:e=>{e?o.current.set(m.id,e):o.current.delete(m.id)},rowSpan:s.getRowSpan(),colSpan:s.getColSpan(),"aria-colindex":d+1,"aria-label":`Строка ${a.index+1}, столбец ${d+1}: ${i(m)||`Пустая ячейка`}`,"aria-selected":f,tabIndex:!n&&u.row===a.index&&u.column===d?0:-1,onClick:r=>{n||e.select(p,t||r.shiftKey)},onPointerEnter:t=>{!n&&t.pointerType===`mouse`&&t.buttons===1&&e.select(p,!0)},onKeyDown:t=>{if(n||t.altKey||t.ctrlKey||t.metaKey)return;let r;switch(t.key){case`ArrowRight`:r={...p,column:d+s.getColSpan()};break;case`ArrowLeft`:r={...p,column:d-1};break;case`ArrowDown`:r={...p,row:a.index+s.getRowSpan()};break;case`ArrowUp`:r={...p,row:a.index-1};break;case`Home`:r={...p,column:0};break;case`End`:r={...p,column:c.columns.length-1};break;case` `:t.preventDefault(),e.select(p,t.shiftKey);return;default:return}if(t.preventDefault(),r.row<0||r.column<0||r.row>=c.rows.length||r.column>=c.columns.length)return;let i=k(c,r);e.select(r,t.shiftKey),o.current.get(c.rows[i.row].cells[i.column].id)?.focus()},children:[a.index<c.headerRowCount?(0,J.jsx)(`span`,{className:`visuallyHidden`,children:i(m)||`Пустой заголовок`}):null,(0,J.jsx)(`div`,{inert:!0,className:H.cellContent,children:r(m)})]},s.id)})},a.id))})]})})]})}var q,J;function Se(){return(Se=e((()=>{q=t(),N(),G(),U(),J=i(),K.__docgenInfo={description:`Доступная сетка: roving tabindex, стрелки/Shift и выбор диапазона без drag-only действий.`,methods:[],displayName:`TableEditorGrid`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./CheckBox-A1DE9OKH.js";import{n as i}from"./iframe-BvendKJ_.js";import{a,u as o}from"./array-D-_yMMUK-BBmW5vUr.js";import{n as s,t as c}from"./Button-BHqigqOj.js";import{n as l,t as u}from"./useTable-CK68Q4S4.js";import{a as d,l as f,t as p}from"./Input-C-RwifM5.js";import{Et as m,Mt as h,Nt as g,Pt as _,Tt as v,n as ee,wt as te}from"./tableFeatures-Dx3U-F9E.js";import{n as ne,t as re}from"./Dialog-5Bjs3MIP.js";import{n as ie,t as ae}from"./Textarea-BPtHeqrt.js";function y(){if(crypto.randomUUID)return crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array(256);for(let e=0;e<256;e++)t[e]=(e+256).toString(16).slice(1);return t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+`-`+t[e[4]]+t[e[5]]+`-`+t[e[6]]+t[e[7]]+`-`+t[e[8]]+t[e[9]]+`-`+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}function oe(e){let t=e.getRowModel().rows,n=e.atoms.rowPinning?.get();if(!n||!n.top.length&&!n.bottom.length)return{rows:t,sectionStarts:pe};let r=e,i=r.getTopRows?.()??[],a=r.getCenterRows?.()??t,o=r.getBottomRows?.()??[];return{rows:[...i,...a,...o],sectionStarts:[i.length,i.length+a.length]}}function se(e,t){let n=t.getVisibleCells?.()??t.getAllCells(),r=Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e].column;let i=e.atoms.columnPinning?.get(),a=0,o=r.length;if(i){for(;a<o&&i.start.includes(r[a].id);)a++;for(;o>a&&i.end.includes(r[o-1].id);)o--}return{columns:r,centerStart:a,centerEnd:o}}function b(e){return e.columnDef.enableCellSpanning===!1?!1:e.table.options.enableCellSpanning??!0}function x(e){let{rows:t,sectionStarts:n}=oe(e),r=t.length,i={colSpans:fe,columnIndexes:de,rowSpans:ue,rows:t};if(!r||e.options.enableCellSpanning===!1)return i;let{columns:a,centerStart:o,centerEnd:s}=se(e,t[0]),c=a.length;if(!c)return i;let l=_();for(let e=0;e<c;e++)l[a[e].id]=e;let u=new Uint8Array(r);for(let e=0;e<n.length;e++){let t=n[e];t<r&&(u[t]=1)}for(let e=0;e<r;e++){let n=t[e];n._cellSpanRowIndex=e;let r=e>0?t[e-1]:void 0;(r&&(n.depth!==r.depth||n.parentId!==r.parentId)||n.getIsGrouped?.()===!0)&&(u[e]=1)}let d=[],f=!1;for(let n=0;n<c;n++){let i=a[n],l=i.columnDef.spanColumns;if(l===void 0||!b(i))continue;let u=n<o?o:n<s?s:c;for(let a=0;a<r;a++){let r=d[a];if(r&&r[n]===0)continue;let o=g(l)?l({column:i,row:t[a],table:e}):l;if(!(o>1))continue;let s=Math.min(o,u-n);if(s<2)continue;let p=r??(d[a]=new Int32Array(c).fill(1));p[n]=s;for(let e=n+1;e<n+s;e++)p[e]=0;f=!0}}let p=_();for(let n=0;n<c;n++){let i=a[n],o=i.columnDef.spanRows;if(!o||!b(i)||i.getIsGrouped?.()===!0)continue;let s=i.id,c=g(o)?o:void 0,l=new Int32Array(r).fill(1),m=!1,h=-1,_,v=1;for(let a=0;a<r;a++){let r=t[a],o=f?d[a]:void 0,p=o?o[n]:1;if(p===0){h=-1;continue}let g=r.getValue(s);if(h!==-1&&!u[a]&&p===v&&(c?c({anchorRow:t[h],anchorValue:_,column:i,previousRow:t[a-1],row:r,table:e,value:g}):g!=null&&Object.is(g,_))){l[a]=0,l[h]=l[h]+1,m=!0;continue}h=a,_=g,v=p}m&&(p[s]=l)}return{colSpans:d,columnIndexes:l,rowSpans:p,rows:t}}function S(e,t){let n=t.row._cellSpanRowIndex;return n===void 0||e.rows[n]!==t.row?-1:n}function C(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=n.rowSpans[e.column.id];if(!r)return 1;let i=S(n,e);return i===-1?1:r[i]}function ce(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=S(n,e);if(r===-1)return 1;let i=n.colSpans[r];if(!i)return 1;let a=n.columnIndexes[e.column.id];return a===void 0?1:i[a]}function le(e){return C(e)===0||ce(e)===0}var ue,de,fe,pe;function me(){return(me=e((()=>{h(),ue=_(),de=_(),fe=[],pe=[]})))()}var w;function T(){return(T=e((()=>{h(),me(),w={getDefaultTableOptions:()=>({enableCellSpanning:!0}),initRowInstanceData:e=>{e._cellSpanRowIndex=-1},assignCellPrototype:(e,t)=>{te(`cellSpanningFeature`,e,t,{cell_getColSpan:{fn:e=>ce(e)},cell_getIsCovered:{fn:e=>le(e)},cell_getRowSpan:{fn:e=>C(e)}})},constructTableAPIs:e=>{v(`cellSpanningFeature`,e,{table_getCellSpanIndex:{fn:()=>x(e),memoDeps:()=>[e.getRowModel().rows,e.atoms.rowPinning?.get(),e.options.keepPinnedRows,e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.columnPinning?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode,e.options.enableCellSpanning]}})}}})))()}function E(e,t){return e.row<t.row+t.rowSpan&&t.row<e.row+e.rowSpan&&e.column<t.column+t.columnSpan&&t.column<e.column+e.columnSpan}function D(e){let t=e.rows.length,n=e.columns.length;if(e.version!==1||!t||!n||t*n>2e4)throw Error(`Недопустимый размер таблицы.`);if(!Number.isInteger(e.headerRowCount)||e.headerRowCount<0||e.headerRowCount>t)throw Error(`Некорректное число строк заголовка.`);let r=new Set,i=e=>{if(!e||r.has(e))throw Error(`Идентификаторы строк, столбцов и ячеек должны быть уникальными.`);r.add(e)};for(let t of e.columns)if(i(t.id),t.width!==null&&(!Number.isFinite(t.width)||t.width<=0))throw Error(`Некорректная ширина столбца.`);for(let t of e.rows){if(i(t.id),t.cells.length!==n)throw Error(`Все строки должны иметь одинаковое число ячеек.`);t.cells.forEach(e=>i(e.id))}let a=new Set;for(let t of e.merges){if(O(e,t),t.rowSpan*t.columnSpan===1)throw Error(`Объединение должно содержать несколько ячеек.`);if(t.row<e.headerRowCount&&t.row+t.rowSpan>e.headerRowCount)throw Error(`Нельзя объединять заголовок с основной частью таблицы.`);for(let e=t.row;e<t.row+t.rowSpan;e++)for(let r=t.column;r<t.column+t.columnSpan;r++){let t=e*n+r;if(a.has(t))throw Error(`Объединённые области пересекаются.`);a.add(t)}}}function O(e,t){if(![t.row,t.column,t.rowSpan,t.columnSpan].every(Number.isInteger)||t.row<0||t.column<0||t.rowSpan<1||t.columnSpan<1||t.row+t.rowSpan>e.rows.length||t.column+t.columnSpan>e.columns.length)throw Error(`Выделение выходит за границы таблицы.`)}function k(e,t){let n={...t,rowSpan:1,columnSpan:1};return O(e,n),e.merges.find(e=>E(e,n))??n}function A(e,t,n){let r={row:Math.min(t.row,n.row),column:Math.min(t.column,n.column),rowSpan:Math.abs(t.row-n.row)+1,columnSpan:Math.abs(t.column-n.column)+1};O(e,r);let i=!0;for(;i;){i=!1;for(let t of e.merges){if(!E(r,t))continue;let e=Math.min(r.row,t.row),n=Math.min(r.column,t.column),a=Math.max(r.row+r.rowSpan,t.row+t.rowSpan)-e,o=Math.max(r.column+r.columnSpan,t.column+t.columnSpan)-n;(e!==r.row||n!==r.column||a!==r.rowSpan||o!==r.columnSpan)&&(r={row:e,column:n,rowSpan:a,columnSpan:o},i=!0)}}return r}function he(e,t,n){D(e);let r=A(e,t,n);if(r.rowSpan*r.columnSpan===1)return e;let i=e.merges.filter(e=>E(e,r));if(i.length===1&&r.row===i[0].row&&r.column===i[0].column&&r.rowSpan===i[0].rowSpan&&r.columnSpan===i[0].columnSpan)return e;let a={...e,merges:[...e.merges.filter(e=>!E(e,r)),r]};return D(a),a}function ge(e,t){D(e);let n=k(e,t);return n.rowSpan*n.columnSpan===1?e:{...e,merges:e.merges.filter(e=>e!==n)}}function j(e,t,n,r,i,a=`body`){D(e);let o=t===`row`?e.rows.length:e.columns.length;if(!Number.isInteger(n)||n<0||n>o)throw Error(`Некорректная позиция вставки.`);if(i.length!==(t===`row`?e.columns.length:e.rows.length))throw Error(`Неверное число новых ячеек.`);if(t===`row`&&(a===`header`?n>e.headerRowCount:n<e.headerRowCount))throw Error(`Строка вставляется вне выбранной части таблицы.`);let s=t===`row`?`rowSpan`:`columnSpan`,c=e.merges.map(e=>n<=e[t]?{...e,[t]:e[t]+1}:n<e[t]+e[s]?{...e,[s]:e[s]+1}:e),l=t===`row`?{...e,merges:c,headerRowCount:e.headerRowCount+ +(a===`header`),rows:[...e.rows.slice(0,n),{id:r,cells:i},...e.rows.slice(n)]}:{...e,merges:c,columns:[...e.columns.slice(0,n),{id:r,width:null},...e.columns.slice(n)],rows:e.rows.map((e,t)=>({...e,cells:[...e.cells.slice(0,n),i[t],...e.cells.slice(n)]}))};return D(l),l}function _e(e,t,n){return O(e,{...t,rowSpan:1,columnSpan:1}),Object.is(e.rows[t.row].cells[t.column].value,n)?e:{...e,rows:e.rows.map((e,r)=>r===t.row?{...e,cells:e.cells.map((e,r)=>r===t.column?{...e,value:n}:e)}:e)}}function M(e,t){D(e);let n=t===`row`?e.rows.length:e.columns.length,r=new Set;for(let n of e.merges){let e=t===`row`?n.rowSpan:n.columnSpan;for(let i=1;i<e;i++)r.add(n[t]+i)}let i=[],a=0;for(let e=1;e<=n;e++)(e===n||!r.has(e))&&(i.push({start:a,count:e-a}),a=e);return i}function ve(e,t,n){let r=M(e,t).find(e=>n>=e.start&&n<e.start+e.count);if(!r)throw Error(`Группа не найдена.`);let i=t===`row`?e.rows.length:e.columns.length;if(r.count===i)throw Error(`В таблице должна остаться хотя бы одна строка и один столбец.`);let a=r.start+r.count,o=e.merges.filter(e=>e[t]<r.start||e[t]>=a).map(e=>e[t]<a?e:{...e,[t]:e[t]-r.count}),s=t===`row`?{...e,merges:o,rows:e.rows.filter((e,t)=>t<r.start||t>=a),headerRowCount:e.headerRowCount-(r.start<e.headerRowCount?r.count:0)}:{...e,merges:o,columns:e.columns.filter((e,t)=>t<r.start||t>=a),rows:e.rows.map(e=>({...e,cells:e.cells.filter((e,t)=>t<r.start||t>=a)}))};return D(s),s}function ye(e,t,n,r){let i=M(e,t),a=i.findIndex(e=>n>=e.start&&n<e.start+e.count);if(a<0)throw Error(`Группа не найдена.`);let s=a+r;if(s<0||s>=i.length||t===`row`&&i[a].start<e.headerRowCount!=i[s].start<e.headerRowCount)return e;let c=o(i,a,r===-1?`up`:`down`).flatMap(e=>Array.from({length:e.count},(t,n)=>e.start+n)),l=new Map(c.map((e,t)=>[e,t])),u=e.merges.map(e=>({...e,[t]:l.get(e[t])??e[t]})),d=t===`row`?{...e,merges:u,rows:c.map(t=>e.rows[t])}:{...e,merges:u,columns:c.map(t=>e.columns[t]),rows:e.rows.map(e=>({...e,cells:c.map(t=>e.cells[t])}))};return D(d),d}function N(){return(N=e((()=>{a()})))()}var P,F,I,L,R,z,B,V,H;function U(){return(U=e((()=>{P=`_6ftNrS`,F=`tji4uW`,I=`nVFFYk`,L=`S7CdzG`,R=`emaqLv`,z=`VLG992`,B=`Hr0ghz`,V=`tuhyZe`,H={editor:P,toolbar:F,help:I,scroll:L,table:R,cellContent:z,inspector:B,structure:V}})))()}function be(e){let t=(0,W.useMemo)(()=>[...e.rows],[e]),n=(0,W.useMemo)(()=>e.columns.map((t,n)=>({id:t.id,accessorFn:(t,r)=>{let i=k(e,{row:r,column:n});return e.rows[i.row].cells[i.column].id},spanRows:!0,spanColumns:({row:t})=>{let r=k(e,{row:t.index,column:n});return r.column===n?r.columnSpan:1}})),[e]);return l({features:xe,data:t,columns:n,getRowId:e=>e.id})}var W,xe;function G(){return(G=e((()=>{W=t(),N(),T(),u(),xe=ee({cellSpanningFeature:w})})))()}function K({editor:e,extendSelection:t,disabled:n,renderCell:r,getCellText:i}){let a=(0,q.useId)(),o=(0,q.useRef)(new Map),s=be(e.document),{document:c,selection:l,focus:u}=e;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{id:a,className:H.help,children:`Стрелки — переход между ячейками. Shift + стрелки или Shift + щелчок — выделение диапазона. Содержимое выбранной ячейки редактируется под таблицей.`}),(0,J.jsx)(`div`,{className:H.scroll,children:(0,J.jsxs)(`table`,{role:`grid`,"aria-label":c.caption||`Редактор таблицы`,"aria-describedby":a,"aria-multiselectable":`true`,"aria-disabled":n||void 0,className:H.table,children:[(0,J.jsx)(`colgroup`,{children:c.columns.map(e=>(0,J.jsx)(`col`,{style:{width:e.width??180}},e.id))}),(0,J.jsx)(`tbody`,{children:s.getRowModel().rows.map(a=>(0,J.jsx)(`tr`,{"aria-rowindex":a.index+1,"data-header":a.index<c.headerRowCount||void 0,children:a.getAllCells().map((s,d)=>{if(s.getIsCovered())return null;let f=a.index>=l.row&&a.index<l.row+l.rowSpan&&d>=l.column&&d<l.column+l.columnSpan,p={row:a.index,column:d},m=a.original.cells[d],h=a.index<c.headerRowCount?`th`:`td`;return(0,J.jsxs)(h,{role:a.index<c.headerRowCount?`columnheader`:`gridcell`,ref:e=>{e?o.current.set(m.id,e):o.current.delete(m.id)},rowSpan:s.getRowSpan(),colSpan:s.getColSpan(),"aria-colindex":d+1,"aria-label":`Строка ${a.index+1}, столбец ${d+1}: ${i(m)||`Пустая ячейка`}`,"aria-selected":f,tabIndex:!n&&u.row===a.index&&u.column===d?0:-1,onClick:r=>{n||e.select(p,t||r.shiftKey)},onPointerEnter:t=>{!n&&t.pointerType===`mouse`&&t.buttons===1&&e.select(p,!0)},onKeyDown:t=>{if(n||t.altKey||t.ctrlKey||t.metaKey)return;let r;switch(t.key){case`ArrowRight`:r={...p,column:d+s.getColSpan()};break;case`ArrowLeft`:r={...p,column:d-1};break;case`ArrowDown`:r={...p,row:a.index+s.getRowSpan()};break;case`ArrowUp`:r={...p,row:a.index-1};break;case`Home`:r={...p,column:0};break;case`End`:r={...p,column:c.columns.length-1};break;case` `:t.preventDefault(),e.select(p,t.shiftKey);return;default:return}if(t.preventDefault(),r.row<0||r.column<0||r.row>=c.rows.length||r.column>=c.columns.length)return;let i=k(c,r);e.select(r,t.shiftKey),o.current.get(c.rows[i.row].cells[i.column].id)?.focus()},children:[a.index<c.headerRowCount?(0,J.jsx)(`span`,{className:`visuallyHidden`,children:i(m)||`Пустой заголовок`}):null,(0,J.jsx)(`div`,{inert:!0,className:H.cellContent,children:r(m)})]},s.id)})},a.id))})]})})]})}var q,J;function Se(){return(Se=e((()=>{q=t(),N(),G(),U(),J=i(),K.__docgenInfo={description:`Доступная сетка: roving tabindex, стрелки/Shift и выбор диапазона без drag-only действий.`,methods:[],displayName:`TableEditorGrid`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
2
2
  readonly document: TableDocument<T>;
3
3
  readonly selection: TableDocumentRange;
4
4
  readonly focus: TableDocumentPosition;
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BmGorvhi.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-u0CCD6I1.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-C9L4pJDb.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-BvendKJ_.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-Bn1nLfdu.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-6wO9Pmly.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`}),` разделены на два независимых сценария:`]}),`