@ryuzaki13/react-foundation-ui 1.2.7 → 1.2.8

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 (286) hide show
  1. package/package.json +5 -1
  2. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  3. package/storybook-static/assets/Badge-BqGrcxAM.js +139 -0
  4. package/storybook-static/assets/Badge.stories-D-4FPPMr.js +51 -0
  5. package/storybook-static/assets/Button-Dk2YMZua.js +12 -0
  6. package/storybook-static/assets/{Button-R2ebF86Y.js → Button-iCkwBEDP.js} +47 -47
  7. package/storybook-static/assets/Button.stories-BkV_xVnD.js +75 -0
  8. package/storybook-static/assets/{CheckBox-CaI3XPfw.js → CheckBox-BQhsynyB.js} +1 -1
  9. package/storybook-static/assets/{CheckBox-jIOKCtKS.js → CheckBox-C-f5AsCI.js} +31 -31
  10. package/storybook-static/assets/CheckBox.stories-7V9WkaKi.js +60 -0
  11. package/storybook-static/assets/Color-KMSTOMOX-CYcFidZH.js +1 -0
  12. package/storybook-static/assets/ContextMenu-DinzhWx_.js +40 -0
  13. package/storybook-static/assets/{ContextMenu.stories-DuHhaMZG.js → ContextMenu.stories-B9O_FkLB.js} +1 -1
  14. package/storybook-static/assets/DateInput-BT_5pRV0.js +40 -0
  15. package/storybook-static/assets/DateInput-CvJvdtwa.js +1 -0
  16. package/storybook-static/assets/{DateInput.stories-DA4m_bt-.js → DateInput.stories-BDKMX9K3.js} +1 -1
  17. package/storybook-static/assets/DateRangePresetSelect-Bck3ITZr.js +30 -0
  18. package/storybook-static/assets/DateRangePresetSelect-CPZ6FKGz.js +3 -0
  19. package/storybook-static/assets/DateRangePresetSelect.stories-D5fRZmWy.js +11 -0
  20. package/storybook-static/assets/Detail-DBH4WUCF.js +40 -0
  21. package/storybook-static/assets/Detail.stories-Kvnqo8Un.js +44 -0
  22. package/storybook-static/assets/{Dialog-DRwO9iJS.js → Dialog-Cv_od09Q.js} +22 -22
  23. package/storybook-static/assets/Dialog.stories-CY8mr-2o.js +31 -0
  24. package/storybook-static/assets/Disclosure-BVz61VJq.js +32 -0
  25. package/storybook-static/assets/{Disclosure.stories-Bu_i_1U_.js → Disclosure.stories-CufTvUiK.js} +2 -2
  26. package/storybook-static/assets/DocsRenderer-JROSPFPF-BJw82UhU.js +2 -0
  27. package/storybook-static/assets/DropZone-DOvkWmBD.js +36 -0
  28. package/storybook-static/assets/{DropZone.stories-DlaN01G9.js → DropZone.stories-K1bqdB2U.js} +2 -2
  29. package/storybook-static/assets/DropdownMenu-Cx08nIaY.js +1 -0
  30. package/storybook-static/assets/{ExpandableActionPanel.stories-DzfL1phg.js → ExpandableActionPanel.stories-BZ3P24ES.js} +2 -2
  31. package/storybook-static/assets/Flex-Brzvr0YX.js +3 -0
  32. package/storybook-static/assets/Flex-CVjyrD9i.js +61 -0
  33. package/storybook-static/assets/{Flex.stories-BYls_CQf.js → Flex.stories-B9dkwuh5.js} +1 -1
  34. package/storybook-static/assets/{Grid-C-xko03k.js → Grid-DhASlspp.js} +1 -1
  35. package/storybook-static/assets/Grid-blnYLgOs.js +61 -0
  36. package/storybook-static/assets/{Grid.stories-D_D0IapG.js → Grid.stories-DafgjrQm.js} +1 -1
  37. package/storybook-static/assets/{ImageCropper.stories-CswLqd0C.js → ImageCropper.stories-638pLg4D.js} +1 -1
  38. package/storybook-static/assets/ImageRenderer-C6DwGwQl.js +2 -0
  39. package/storybook-static/assets/{ImageRenderer.stories-Bw_FhRQS.js → ImageRenderer.stories-DJJiqQFU.js} +1 -1
  40. package/storybook-static/assets/{ImageView.stories-W43xyxSy.js → ImageView.stories-DVeX-CzY.js} +1 -1
  41. package/storybook-static/assets/{ImageViewer.stories-p81pm72u.js → ImageViewer.stories-NqiR5Eyj.js} +2 -2
  42. package/storybook-static/assets/{ImageViewerRuntime-DkG2C2vh.js → ImageViewerRuntime-C0uGYGQl.js} +2 -2
  43. package/storybook-static/assets/Input-4QsBT-dh.js +39 -0
  44. package/storybook-static/assets/Input-CjJUuLEX.js +3 -0
  45. package/storybook-static/assets/Input.stories-DX8FX7AI.js +38 -0
  46. package/storybook-static/assets/InputDateTime-C6cR1WP9.js +39 -0
  47. package/storybook-static/assets/InputDateTime.stories-DPK8Y5p2.js +35 -0
  48. package/storybook-static/assets/{InputFile-ZiotxlMe.js → InputFile-BwI_udQQ.js} +26 -26
  49. package/storybook-static/assets/InputFile.stories-BdWP2iBM.js +36 -0
  50. package/storybook-static/assets/InputFiles-CPY6AJQJ.js +1 -0
  51. package/storybook-static/assets/{InputFiles-DWUxFStB.js → InputFiles-CfmNIDk_.js} +26 -26
  52. package/storybook-static/assets/InputFiles.stories-DnXD0hgD.js +33 -0
  53. package/storybook-static/assets/{InputImage-DmGIfR7v.js → InputImage-CgjrjJiq.js} +26 -26
  54. package/storybook-static/assets/{InputImage.stories-BD6OuYSL.js → InputImage.stories-CFHzEXGv.js} +1 -1
  55. package/storybook-static/assets/LayoutPicker-BfwRb9HQ.js +66 -0
  56. package/storybook-static/assets/{LayoutPicker.stories-CHQeF27J.js → LayoutPicker.stories-C9sMcU1k.js} +3 -3
  57. package/storybook-static/assets/Listbox-B2FoYInE.js +38 -0
  58. package/storybook-static/assets/Listbox.stories-BnGRDEMg.js +47 -0
  59. package/storybook-static/assets/{Modal-Cu6UplI8.js → Modal-Bd8v3vU8.js} +32 -32
  60. package/storybook-static/assets/Modal.stories-CmYJeAAz.js +180 -0
  61. package/storybook-static/assets/MultiSelect-BeRfLM-g.js +2 -0
  62. package/storybook-static/assets/MultiSelect-Bswj23vq.js +56 -0
  63. package/storybook-static/assets/MultiSelect.stories-iKlesibJ.js +29 -0
  64. package/storybook-static/assets/{NotificationsHost-CzBey-gZ.js → NotificationsHost-Cf0puFJk.js} +22 -22
  65. package/storybook-static/assets/NotificationsHost.stories-DX1niytc.js +25 -0
  66. package/storybook-static/assets/ODataMultiSelect-BvFXZlGZ.js +53 -0
  67. package/storybook-static/assets/ODataMultiSelect-CiZ3aEy3.js +1 -0
  68. package/storybook-static/assets/ODataMultiSelect.stories-BcRrzHnf.js +73 -0
  69. package/storybook-static/assets/ODataSelect-Bo0yPtod.js +1 -0
  70. package/storybook-static/assets/{ODataSelect-BTue1iaA.js → ODataSelect-DgH5G-C_.js} +32 -32
  71. package/storybook-static/assets/ODataSelect.stories-DEOly20_.js +73 -0
  72. package/storybook-static/assets/ODataTreeMultiSelect-IKfvxL7p.js +17 -0
  73. package/storybook-static/assets/ODataTreeMultiSelect.stories-uPDVAyMu.js +28 -0
  74. package/storybook-static/assets/ODataTreeSelect-BujgjSkl.js +16 -0
  75. package/storybook-static/assets/ODataTreeSelect.stories-BzlUExoW.js +21 -0
  76. package/storybook-static/assets/{PeriodSelect-BMZas-k8.js → PeriodSelect-BJIPDLq1.js} +31 -31
  77. package/storybook-static/assets/{PeriodSelect.stories-3w66x0Wx.js → PeriodSelect.stories-D12q6-YO.js} +1 -1
  78. package/storybook-static/assets/{Popover-Cp69zYWt.js → Popover-D25DhaiJ.js} +29 -29
  79. package/storybook-static/assets/{Popover.stories-Dm2olc8x.js → Popover.stories-CF3zUe0j.js} +1 -1
  80. package/storybook-static/assets/{PresetRangeDateInput-7DV2qzpJ.js → PresetRangeDateInput-CDw6HtWA.js} +19 -19
  81. package/storybook-static/assets/PresetRangeDateInput.stories-BQZI6HOn.js +15 -0
  82. package/storybook-static/assets/{RadioButton-CZgaZarn.js → RadioButton-BgEBxZJi.js} +27 -27
  83. package/storybook-static/assets/{RadioButton.stories-DRGhwy-6.js → RadioButton.stories-BkFGEJXb.js} +2 -2
  84. package/storybook-static/assets/{RadioGroup-B9pw-kxR.js → RadioGroup-C-K84fCC.js} +26 -26
  85. package/storybook-static/assets/RadioGroup-Jq-lWcgE.js +1 -0
  86. package/storybook-static/assets/RadioGroup.stories-DyuW8DaF.js +42 -0
  87. package/storybook-static/assets/Select-BrRZA3Up.js +12 -0
  88. package/storybook-static/assets/{Select-DcRA8coi.js → Select-ChYAdfkx.js} +35 -35
  89. package/storybook-static/assets/Select.stories-D-onxXmT.js +46 -0
  90. package/storybook-static/assets/SelectOptionContent-Cwd0p14r.js +1 -0
  91. package/storybook-static/assets/SerializableSelect-CcBh49iS.js +4 -0
  92. package/storybook-static/assets/{SerializableSelect-BFMP4RoU.js → SerializableSelect-D9BlCZ4x.js} +32 -32
  93. package/storybook-static/assets/SerializableSelect.stories-BXMFTNDx.js +43 -0
  94. package/storybook-static/assets/SingleDateTimeInput-cHIGelrz.js +53 -0
  95. package/storybook-static/assets/SingleDateTimeInput.stories-BdPyEPUr.js +78 -0
  96. package/storybook-static/assets/Slider-Cb_nb9P2.js +63 -0
  97. package/storybook-static/assets/Slider.stories-CoKGxwRT.js +77 -0
  98. package/storybook-static/assets/SliderInput-DyxDl1Mo.js +58 -0
  99. package/storybook-static/assets/{SliderInput.stories-CDS4YS_3.js → SliderInput.stories-DgbBm38V.js} +1 -1
  100. package/storybook-static/assets/Sortable-DC3bPcbn.js +72 -0
  101. package/storybook-static/assets/{Sortable.stories--yPzhn7U.js → Sortable.stories-B_IhqW5F.js} +1 -1
  102. package/storybook-static/assets/{Splitter-6_oQu3c4.js → Splitter-CGw6p5-z.js} +39 -39
  103. package/storybook-static/assets/Splitter.stories-DNlOAJY9.js +22 -0
  104. package/storybook-static/assets/{StateSelect-ClrBKHfD.js → StateSelect-cU_bLcpU.js} +25 -25
  105. package/storybook-static/assets/{StateSelect.stories-DtpIwsdv.js → StateSelect.stories-D0Z05ltu.js} +2 -2
  106. package/storybook-static/assets/Switch-C-3mRPBf.js +36 -0
  107. package/storybook-static/assets/Switch.stories-Csqx8bKj.js +26 -0
  108. package/storybook-static/assets/Table-4x8XIQpa.js +197 -0
  109. package/storybook-static/assets/{Table.stories-BZOmuXFd.js → Table.stories-DLsx7_5W.js} +1 -1
  110. package/storybook-static/assets/Tabs-BYxa2MdO.js +72 -0
  111. package/storybook-static/assets/{Tabs.stories-p59QJ2Tc.js → Tabs.stories-Bs2uE5X2.js} +1 -1
  112. package/storybook-static/assets/TagInput.stories-8_Uk7z4a.js +18 -0
  113. package/storybook-static/assets/{Textarea-DtmMCSxT.js → Textarea-C9do4TkE.js} +26 -26
  114. package/storybook-static/assets/Textarea.stories-khYPBnjL.js +27 -0
  115. package/storybook-static/assets/TimePanel-DAQw6BvJ.js +1 -0
  116. package/storybook-static/assets/{TimePanel.stories-D2scop0x.js → TimePanel.stories-D8uZoVpL.js} +1 -1
  117. package/storybook-static/assets/{Toggle-C9Yg9JE_.js → Toggle-C4pQIuyy.js} +26 -26
  118. package/storybook-static/assets/Toggle.stories-DhF17j-W.js +30 -0
  119. package/storybook-static/assets/TreeMultiSelect-B6_6vRxE.js +15 -0
  120. package/storybook-static/assets/TreeMultiSelect-Drs35VVA.js +1 -0
  121. package/storybook-static/assets/TreeMultiSelect.stories-D6YSwiei.js +31 -0
  122. package/storybook-static/assets/{TreePickerBase-p_zyJtun.js → TreePickerBase-DCognf3p.js} +2 -2
  123. package/storybook-static/assets/TreeSelect-CAAu7_OB.js +15 -0
  124. package/storybook-static/assets/TreeSelect-DxdqUuJ6.js +1 -0
  125. package/storybook-static/assets/TreeSelect.stories-BqF-qAB9.js +16 -0
  126. package/storybook-static/assets/TreeTable-TKNA-uIN.js +175 -0
  127. package/storybook-static/assets/{TreeTable.stories-BZLmxdzp.js → TreeTable.stories-yeAD18Zw.js} +2 -2
  128. package/storybook-static/assets/WithTooltip-7X4HQR7L-CxfB6hD8.js +9 -0
  129. package/storybook-static/assets/{base-table-C7bVdENP.js → base-table-ByITBr1J.js} +1 -1
  130. package/storybook-static/assets/blocks-0RiOsxIK.js +285 -0
  131. package/storybook-static/assets/button-B1ZGqKIL.js +1 -0
  132. package/storybook-static/assets/{check-box-B71d1lgw.js → check-box-NnScD6BH.js} +1 -1
  133. package/storybook-static/assets/chunk-3LY4VQVK-DprWWQ6L.js +6 -0
  134. package/storybook-static/assets/{chunk-LITCR56V-kr_6KJh-.js → chunk-LITCR56V-CsoWERay.js} +2 -2
  135. package/storybook-static/assets/contextMenu-B7OY9AUe.js +2 -0
  136. package/storybook-static/assets/error-B-BZQLMk.js +1 -0
  137. package/storybook-static/assets/flex-DjZzX5cW.js +1 -0
  138. package/storybook-static/assets/floating-ui.react-6aWiJn-w.js +1 -0
  139. package/storybook-static/assets/formatter-L2YTDE3Q-Bhbxmhyr.js +1 -0
  140. package/storybook-static/assets/{formatters-Br290Dmy.js → formatters-3Nbt_zpw.js} +1 -1
  141. package/storybook-static/assets/grid-CXx-3eN4.js +1 -0
  142. package/storybook-static/assets/{hooks-DzbwAWAd.js → hooks-cOC2wx_S.js} +1 -1
  143. package/storybook-static/assets/{iframe-B1Ua6ocI.js → iframe-GmIo3IOR.js} +199 -197
  144. package/storybook-static/assets/input-BZoBzauA.js +1 -0
  145. package/storybook-static/assets/{mdx-react-shim-DHWnLJR9.js → mdx-react-shim-DQ40dZsI.js} +1 -1
  146. package/storybook-static/assets/media-CaNRzUMK.js +1 -0
  147. package/storybook-static/assets/misc-DSZ85X5k.js +5 -0
  148. package/storybook-static/assets/notifications-dwTsOfAG.js +1 -0
  149. package/storybook-static/assets/odata-BXYPW5TY.js +1 -0
  150. package/storybook-static/assets/odata-service-CdmjwNQZ.js +1 -0
  151. package/storybook-static/assets/{odataStoryFixtures-DS1zYaZm.js → odataStoryFixtures-qHROzCso.js} +1 -1
  152. package/storybook-static/assets/picker-Ly9fNo5I.js +2 -0
  153. package/storybook-static/assets/popover-hHS3Q1Eb.js +2 -0
  154. package/storybook-static/assets/preset-select-DSUOhzZJ.js +5 -0
  155. package/storybook-static/assets/{react-18-D4G2zUNp.js → react-18-C8dLShAR.js} +1 -1
  156. package/storybook-static/assets/react-CufbfMTd.js +9 -0
  157. package/storybook-static/assets/react-dom-B1EOrd4K.js +1 -0
  158. package/storybook-static/assets/select-CjW1dQXg.js +1 -0
  159. package/storybook-static/assets/slider-CKtA1jkD.js +2 -0
  160. package/storybook-static/assets/sortable-C7z1FJM0.js +1 -0
  161. package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-D-6cX_EQ.js → syntaxhighlighter-RTCFPKCB-DUS1jW_J.js} +2 -2
  162. package/storybook-static/assets/text-Cw7Vu082.js +4 -0
  163. package/storybook-static/assets/theming-Ce0TAFtT.js +39 -0
  164. package/storybook-static/assets/ui-Dlg5NgOB.js +1 -0
  165. package/storybook-static/assets/useODataSelectBase-BE8nJXZo.js +1 -0
  166. package/storybook-static/assets/useODataTreeData-Dli9NQVP.js +1 -0
  167. package/storybook-static/assets/utils-B73_kE2n.js +1 -0
  168. package/storybook-static/iframe.html +2 -2
  169. package/storybook-static/index.html +16 -6
  170. package/storybook-static/index.json +1 -1
  171. package/storybook-static/project.json +1 -1
  172. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +352 -0
  173. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js.LEGAL.txt +31 -0
  174. package/storybook-static/sb-addons/vitest-4/manager-bundle.js +3 -0
  175. package/storybook-static/assets/Badge-BNG4jaAG.js +0 -139
  176. package/storybook-static/assets/Badge.stories-DBR_TCrU.js +0 -51
  177. package/storybook-static/assets/Button-CV6qRYrS.js +0 -12
  178. package/storybook-static/assets/Button.stories-BxQyR9Jj.js +0 -75
  179. package/storybook-static/assets/CheckBox.stories-B53ABl5i.js +0 -60
  180. package/storybook-static/assets/Color-KMSTOMOX-Cyl8cJgb.js +0 -1
  181. package/storybook-static/assets/ContextMenu-BwtAOupO.js +0 -40
  182. package/storybook-static/assets/DateInput-BdC-rKjp.js +0 -40
  183. package/storybook-static/assets/DateInput-Bn8ERC92.js +0 -1
  184. package/storybook-static/assets/DateRangePresetSelect-9x2PXji2.js +0 -3
  185. package/storybook-static/assets/DateRangePresetSelect-BAxLf-sI.js +0 -30
  186. package/storybook-static/assets/DateRangePresetSelect.stories-Cpm9i1Gs.js +0 -11
  187. package/storybook-static/assets/Detail-jSNmxeK-.js +0 -40
  188. package/storybook-static/assets/Detail.stories-CnI5n5T5.js +0 -44
  189. package/storybook-static/assets/Dialog.stories-BzFqMgrU.js +0 -31
  190. package/storybook-static/assets/Disclosure-BbjuwgPN.js +0 -32
  191. package/storybook-static/assets/DocsRenderer-JROSPFPF-BijI6psg.js +0 -2
  192. package/storybook-static/assets/DropZone-8RM16_68.js +0 -36
  193. package/storybook-static/assets/DropdownMenu-COmcfMmT.js +0 -1
  194. package/storybook-static/assets/Flex-BQBzh4Tr.js +0 -3
  195. package/storybook-static/assets/Flex-CHaV6K7m.js +0 -61
  196. package/storybook-static/assets/Grid-DloPlrCB.js +0 -61
  197. package/storybook-static/assets/ImageRenderer-DbFiaYXn.js +0 -2
  198. package/storybook-static/assets/Input--cNyU-Ag.js +0 -3
  199. package/storybook-static/assets/Input-ZH34LSnz.js +0 -39
  200. package/storybook-static/assets/Input.stories-DM-fUL_7.js +0 -38
  201. package/storybook-static/assets/InputDateTime-BZGJSifI.js +0 -39
  202. package/storybook-static/assets/InputDateTime.stories-BVdDIO_9.js +0 -35
  203. package/storybook-static/assets/InputFile.stories-CU0wd7SJ.js +0 -36
  204. package/storybook-static/assets/InputFiles-B3vHz3jd.js +0 -1
  205. package/storybook-static/assets/InputFiles.stories-DfzkzBu8.js +0 -33
  206. package/storybook-static/assets/LayoutPicker-DO0Hq5wg.js +0 -66
  207. package/storybook-static/assets/Listbox-BoBf1VYa.js +0 -38
  208. package/storybook-static/assets/Listbox.stories-Cs6ABkXs.js +0 -47
  209. package/storybook-static/assets/Modal.stories-DDHOCfX1.js +0 -180
  210. package/storybook-static/assets/MultiSelect-BVATOh-_.js +0 -2
  211. package/storybook-static/assets/MultiSelect-Dkv3SI5J.js +0 -56
  212. package/storybook-static/assets/MultiSelect.stories-CPNipIbC.js +0 -29
  213. package/storybook-static/assets/NotificationsHost.stories-CeRXDmBa.js +0 -25
  214. package/storybook-static/assets/ODataMultiSelect-BIDgmui6.js +0 -53
  215. package/storybook-static/assets/ODataMultiSelect-U8WlXc3y.js +0 -1
  216. package/storybook-static/assets/ODataMultiSelect.stories-DmeX7-ss.js +0 -73
  217. package/storybook-static/assets/ODataSelect-BO4av_hn.js +0 -1
  218. package/storybook-static/assets/ODataSelect.stories-DpQp77ZX.js +0 -73
  219. package/storybook-static/assets/ODataTreeMultiSelect-tcWnebHq.js +0 -17
  220. package/storybook-static/assets/ODataTreeMultiSelect.stories-C6of8u9F.js +0 -28
  221. package/storybook-static/assets/ODataTreeSelect-B88XSjq4.js +0 -16
  222. package/storybook-static/assets/ODataTreeSelect.stories-CXN2zOja.js +0 -21
  223. package/storybook-static/assets/PresetRangeDateInput.stories-CWwkINdd.js +0 -15
  224. package/storybook-static/assets/RadioGroup-DPNg9UXg.js +0 -1
  225. package/storybook-static/assets/RadioGroup.stories-D_nQ2UMX.js +0 -42
  226. package/storybook-static/assets/Select-C5DH0hMi.js +0 -12
  227. package/storybook-static/assets/Select.stories-BxlItwVq.js +0 -46
  228. package/storybook-static/assets/SelectOptionContent-RFIk8-W0.js +0 -1
  229. package/storybook-static/assets/SerializableSelect-CJtC_MVh.js +0 -4
  230. package/storybook-static/assets/SerializableSelect.stories-Cwk9kf8V.js +0 -43
  231. package/storybook-static/assets/SingleDateTimeInput-BM_emntS.js +0 -53
  232. package/storybook-static/assets/SingleDateTimeInput.stories-DK0JJ19r.js +0 -78
  233. package/storybook-static/assets/Slider-BjAGWnmv.js +0 -63
  234. package/storybook-static/assets/Slider.stories-AFZ3sK6N.js +0 -77
  235. package/storybook-static/assets/SliderInput-CEmHsnm3.js +0 -58
  236. package/storybook-static/assets/Sortable-BwTtVBVt.js +0 -72
  237. package/storybook-static/assets/Splitter.stories-BLDqjnbb.js +0 -22
  238. package/storybook-static/assets/Switch-cwvSIlOe.js +0 -36
  239. package/storybook-static/assets/Switch.stories-BNMmFr3z.js +0 -26
  240. package/storybook-static/assets/Table-BScnaCwl.js +0 -197
  241. package/storybook-static/assets/Tabs-WCUd456k.js +0 -72
  242. package/storybook-static/assets/TagInput.stories-UojVk_Jy.js +0 -18
  243. package/storybook-static/assets/Textarea.stories-Db3Pigr7.js +0 -27
  244. package/storybook-static/assets/TimePanel-Bjn51Vi_.js +0 -1
  245. package/storybook-static/assets/Toggle.stories-Ok2NhICE.js +0 -30
  246. package/storybook-static/assets/TreeMultiSelect-DJzqY2Hd.js +0 -1
  247. package/storybook-static/assets/TreeMultiSelect-DxFQkzpN.js +0 -15
  248. package/storybook-static/assets/TreeMultiSelect.stories-BOgyH5ny.js +0 -31
  249. package/storybook-static/assets/TreeSelect-C2_2A0_N.js +0 -15
  250. package/storybook-static/assets/TreeSelect-CejsBEz8.js +0 -1
  251. package/storybook-static/assets/TreeSelect.stories-DerIIWQL.js +0 -16
  252. package/storybook-static/assets/TreeTable-3l5conv1.js +0 -175
  253. package/storybook-static/assets/WithTooltip-7X4HQR7L-C39XELKG.js +0 -9
  254. package/storybook-static/assets/blocks-DBWaa853.js +0 -285
  255. package/storybook-static/assets/button-DhCvGY9d.js +0 -1
  256. package/storybook-static/assets/chunk-3LY4VQVK-Cy15UFby.js +0 -6
  257. package/storybook-static/assets/contextMenu-P53ulGd4.js +0 -2
  258. package/storybook-static/assets/error-BF58nufO.js +0 -1
  259. package/storybook-static/assets/flex-OzI2qdBD.js +0 -1
  260. package/storybook-static/assets/floating-ui.react-BCZnZKor.js +0 -1
  261. package/storybook-static/assets/formatter-L2YTDE3Q-Bu16EJYG.js +0 -1
  262. package/storybook-static/assets/grid-BRIKMdnO.js +0 -1
  263. package/storybook-static/assets/input-CKW6wgYr.js +0 -1
  264. package/storybook-static/assets/jsx-runtime-BBQGix-2.js +0 -1
  265. package/storybook-static/assets/lucide-react-DiTL2FZl.js +0 -1
  266. package/storybook-static/assets/media-CP09Ak2C.js +0 -1
  267. package/storybook-static/assets/misc-CI386biM.js +0 -5
  268. package/storybook-static/assets/notifications-El-91bgG.js +0 -1
  269. package/storybook-static/assets/odata-jXHOPHLv.js +0 -1
  270. package/storybook-static/assets/odata-service-DMzLjWr8.js +0 -1
  271. package/storybook-static/assets/picker-DhufeWWq.js +0 -2
  272. package/storybook-static/assets/popover-DCygDZB4.js +0 -2
  273. package/storybook-static/assets/preset-select-C0o8oMRZ.js +0 -5
  274. package/storybook-static/assets/react-DXmRDR8e.js +0 -9
  275. package/storybook-static/assets/react-dom-DaUZFAdI.js +0 -1
  276. package/storybook-static/assets/select-Dcb4X2qB.js +0 -1
  277. package/storybook-static/assets/slider-D7YUv9lW.js +0 -2
  278. package/storybook-static/assets/sortable-_Ry8I9Yk.js +0 -1
  279. package/storybook-static/assets/text-DpidzPjQ.js +0 -4
  280. package/storybook-static/assets/theming-BWpdH-US.js +0 -39
  281. package/storybook-static/assets/ui-wilQ6cnk.js +0 -1
  282. package/storybook-static/assets/useODataSelectBase-8RpFkVBi.js +0 -1
  283. package/storybook-static/assets/useODataTreeData-Bc19nm97.js +0 -1
  284. package/storybook-static/assets/utils-DKOsD-4R.js +0 -1
  285. /package/storybook-static/sb-addons/{a11y-2 → a11y-3}/manager-bundle.js +0 -0
  286. /package/storybook-static/sb-addons/{docs-1 → docs-2}/manager-bundle.js +0 -0
@@ -1,63 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-DBWaa853.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DHWnLJR9.js";import{Disabled as p,MonthsIndexMarks as m,RangeMonthToDaysOutput as h,RangeOpenMonthToDaysOutput as g,RangeOpenWithoutExplicitMiddleOutput as _,RangePlain as v,SingleStep as y,SingleWithMarks as b,n as x,t as S}from"./Slider.stories-AFZ3sK6N.js";function C(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(a,{of:S,parameters:{docs:{toc:!0}}}),`
2
- `,(0,T.jsx)(c,{children:`Slider`}),`
3
- `,(0,T.jsx)(i,{children:`Компактные single и range слайдеры с marks, tooltip и открытыми границами`}),`
4
- `,(0,T.jsxs)(o.p,{children:[(0,T.jsx)(o.code,{children:`Slider`}),` и `,(0,T.jsx)(o.code,{children:`SliderRange`}),` — отдельные публичные компоненты. Оба используют общую числовую шкалу, но не смешивают single/range через prop.`]}),`
5
- `,(0,T.jsxs)(o.ul,{children:[`
6
- `,(0,T.jsxs)(o.li,{children:[(0,T.jsx)(o.code,{children:`Slider`}),` возвращает одно finite-число;`]}),`
7
- `,(0,T.jsxs)(o.li,{children:[(0,T.jsx)(o.code,{children:`SliderRange`}),` возвращает `,(0,T.jsx)(o.code,{children:`[number | null, number | null]`}),`;`]}),`
8
- `,(0,T.jsxs)(o.li,{children:[(0,T.jsx)(o.code,{children:`null`}),` в range означает открытую границу;`]}),`
9
- `,(0,T.jsxs)(o.li,{children:[(0,T.jsx)(o.code,{children:`marks`}),` всегда задают snap-домен;`]}),`
10
- `,(0,T.jsxs)(o.li,{children:[(0,T.jsx)(o.code,{children:`marksPosition="index"`}),` размещает marks с равным визуальным шагом.`]}),`
11
- `]}),`
12
- `,(0,T.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
13
- `,(0,T.jsx)(u,{}),`
14
- `,(0,T.jsx)(n,{of:y}),`
15
- `,(0,T.jsx)(o.pre,{children:(0,T.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
16
-
17
- import { Slider } from "@/shared/ui";
18
-
19
- export function Example() {
20
- const [value, setValue] = useState<number | undefined>(35);
21
-
22
- return <Slider label="Громкость" min={0} max={100} step={5} value={value} onChange={setValue} />;
23
- }
24
- `})}),`
25
- `,(0,T.jsx)(o.h2,{id:`range-с-открытой-границей`,children:`Range с открытой границей`}),`
26
- `,(0,T.jsx)(o.pre,{children:(0,T.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
27
-
28
- import { SliderRange, type SliderRangeValue } from "@/shared/ui";
29
-
30
- const marks = [
31
- { value: 0, label: "До 3 мес.", outputValue: null },
32
- { value: 3, label: "3 мес." },
33
- { value: 6, label: "6 мес." },
34
- { value: 24, label: "От 24 мес.", outputValue: null }
35
- ] as const;
36
-
37
- export function Example() {
38
- const [value, setValue] = useState<SliderRangeValue | undefined>([null, 6]);
39
-
40
- return <SliderRange label="Период" min={0} max={24} marks={marks} marksPosition="index" value={value} onChange={setValue} />;
41
- }
42
- `})}),`
43
- `,(0,T.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
44
- `,(0,T.jsx)(o.h3,{id:`single-со-step`,children:`Single со step`}),`
45
- `,(0,T.jsx)(l,{of:y}),`
46
- `,(0,T.jsx)(o.h3,{id:`single-с-compact-marks`,children:`Single с compact marks`}),`
47
- `,(0,T.jsx)(l,{of:b}),`
48
- `,(0,T.jsx)(o.h3,{id:`равные-расстояния-между-неравномерными-значениями`,children:`Равные расстояния между неравномерными значениями`}),`
49
- `,(0,T.jsx)(l,{of:m}),`
50
- `,(0,T.jsx)(o.h3,{id:`range-без-outputvalue`,children:`Range без outputValue`}),`
51
- `,(0,T.jsx)(l,{of:v}),`
52
- `,(0,T.jsx)(o.h3,{id:`range-с-открытыми-границами-без-outputvalue-у-обычных-marks`,children:`Range с открытыми границами без outputValue у обычных marks`}),`
53
- `,(0,T.jsx)(l,{of:_}),`
54
- `,(0,T.jsx)(o.h3,{id:`range-с-outputvalue-месяцы-на-шкале-дни-в-фильтре`,children:`Range с outputValue: месяцы на шкале, дни в фильтре`}),`
55
- `,(0,T.jsx)(l,{of:h}),`
56
- `,(0,T.jsx)(o.h3,{id:`range-с-outputvalue-и-открытыми-границами`,children:`Range с outputValue и открытыми границами`}),`
57
- `,(0,T.jsx)(l,{of:g}),`
58
- `,(0,T.jsx)(o.h3,{id:`disabled`,children:`Disabled`}),`
59
- `,(0,T.jsx)(l,{of:p}),`
60
- `,(0,T.jsx)(o.h2,{id:`api`,children:`API`}),`
61
- `,(0,T.jsx)(s,{of:S}),`
62
- `,(0,T.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
63
- `,(0,T.jsx)(r,{includePrimary:!1})]})}function w(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,T.jsx)(n,{...e,children:(0,T.jsx)(C,{...e})}):C(e)}var T;e((()=>{T=d(),f(),o(),x()}))();export{w as default};
@@ -1,77 +0,0 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1Ua6ocI.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,o,t as s}from"./slider-D7YUv9lW.js";var c=e({Disabled:()=>D,MonthsIndexMarks:()=>S,RangeMonthToDaysOutput:()=>T,RangeOpenMonthToDaysOutput:()=>E,RangeOpenWithoutExplicitMiddleOutput:()=>w,RangePlain:()=>C,SingleStep:()=>b,SingleWithMarks:()=>x,__namedExportsOrder:()=>O,default:()=>y});function l(e,t){return e===null?`null`:`${e}${t}`}function u(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 d({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:`${l(i,n)} — ${l(a,n)}`,filter:u(e,t,n)},null,2)}),r]})}var f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k=n((()=>{f=t(r(),1),s(),p=i(),m=[{value:0,label:`0`},{value:25,label:`25`},{value:50,label:`50`},{value:75,label:`75`},{value:100,label:`100`}],h=[{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 мес.`}],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:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720},{value:25,label:`Без верхней границы`,outputValue:null}],y={title:`Shared/UI/Slider`,component:a,args:{value:30,onChange:()=>{},min:0,max:100,step:5},parameters:{atomicCanvas:!0,layout:`padded`}},b={render:e=>{let t=e,[n,r]=(0,f.useState)(e.value);return(0,p.jsx)(a,{...t,label:`Громкость`,value:n,onChange:r})},args:{description:`Компактный single-value слайдер со step=5.`,value:35,step:5}},x={render:e=>{let t=e,[n,r]=(0,f.useState)(50);return(0,p.jsx)(a,{...t,label:`Процент выполнения`,value:n,onChange:r})},args:{description:`Marks активны, кликабельны и показывают подписи через tooltip.`,value:50,marks:m}},S={render:e=>{let t=e,[n,r]=(0,f.useState)(6);return(0,p.jsx)(a,{...t,label:`Срок`,value:n,onChange:r})},args:{min:1,max:24,value:6,marks:h,marksPosition:`index`,description:`Неравномерные значения месяцев расположены с равным визуальным шагом.`}},C={render:()=>{let[e,t]=(0,f.useState)([25,75]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{label:`Процент выполнения`,description:"Обычный range: `value` mark является и координатой шкалы, и значением фильтра.",min:0,max:100,marks:m,value:e,onChange:t}),(0,p.jsx)(d,{value:e,field:`progress`,unit:`%`})]})}},w={render:()=>{let[e,t]=(0,f.useState)([null,12]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{label:`Срок в месяцах`,description:"Открытые границы задаются только крайними `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:g,marksPosition:`index`,value:e,onChange:t}),(0,p.jsx)(d,{value:e,field:`months`,unit:` мес.`})]})}},T={render:()=>{let[e,t]=(0,f.useState)([90,360]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{label:`Срок: месяцы на шкале, дни в фильтре`,description:"`value` хранит координату/месяцы, `outputValue` отдаёт наружу дни.",min:1,max:24,marks:_,marksPosition:`index`,value:e,onChange:t}),(0,p.jsx)(d,{value:e,field:`days`,unit:` дн.`})]})}},E={render:()=>{let[e,t]=(0,f.useState)([null,720]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:v,marksPosition:`index`,value:e,onChange:t}),(0,p.jsx)(d,{value:e,field:`days`,unit:` дн.`})]})}},D={args:{label:`Недоступно`,description:`Состояние без интеракций.`,value:40,disabled:!0,marks:m}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
2
- render: args => {
3
- const sliderArgs = args as SliderProps;
4
- const [value, setValue] = useState<number | undefined>(args.value as number | undefined);
5
- return <Slider {...sliderArgs} label="Громкость" value={value} onChange={setValue} />;
6
- },
7
- args: {
8
- description: "Компактный single-value слайдер со step=5.",
9
- value: 35,
10
- step: 5
11
- }
12
- }`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
13
- render: args => {
14
- const sliderArgs = args as SliderProps;
15
- const [value, setValue] = useState<number | undefined>(50);
16
- return <Slider {...sliderArgs} label="Процент выполнения" value={value} onChange={setValue} />;
17
- },
18
- args: {
19
- description: "Marks активны, кликабельны и показывают подписи через tooltip.",
20
- value: 50,
21
- marks: percentMarks
22
- }
23
- }`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
24
- render: args => {
25
- const sliderArgs = args as SliderProps;
26
- const [value, setValue] = useState<number | undefined>(6);
27
- return <Slider {...sliderArgs} label="Срок" value={value} onChange={setValue} />;
28
- },
29
- args: {
30
- min: 1,
31
- max: 24,
32
- value: 6,
33
- marks: monthMarks,
34
- marksPosition: "index",
35
- description: "Неравномерные значения месяцев расположены с равным визуальным шагом."
36
- }
37
- }`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
38
- render: () => {
39
- const [value, setValue] = useState<SliderRangeValue | undefined>([25, 75]);
40
- return <>
41
- <SliderRange label="Процент выполнения" description="Обычный range: \`value\` mark является и координатой шкалы, и значением фильтра." min={0} max={100} marks={percentMarks} value={value} onChange={setValue} />
42
- <RangePreview value={value} field="progress" unit="%" />
43
- </>;
44
- }
45
- }`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
46
- render: () => {
47
- const [value, setValue] = useState<SliderRangeValue | undefined>([null, 12]);
48
- return <>
49
- <SliderRange label="Срок в месяцах" description="Открытые границы задаются только крайними \`outputValue:null\`; у обычных marks outputValue не указан и берётся \`value\`." min={0} max={25} marks={openMonthMarks} marksPosition="index" value={value} onChange={setValue} />
50
- <RangePreview value={value} field="months" unit=" мес." />
51
- </>;
52
- }
53
- }`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
54
- render: () => {
55
- const [value, setValue] = useState<SliderRangeValue | undefined>([90, 360]);
56
- return <>
57
- <SliderRange label="Срок: месяцы на шкале, дни в фильтре" description="\`value\` хранит координату/месяцы, \`outputValue\` отдаёт наружу дни." min={1} max={24} marks={monthToDayMarks} marksPosition="index" value={value} onChange={setValue} />
58
- <RangePreview value={value} field="days" unit=" дн." />
59
- </>;
60
- }
61
- }`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
62
- render: () => {
63
- const [value, setValue] = useState<SliderRangeValue | undefined>([null, 720]);
64
- return <>
65
- <SliderRange label="Срок: открытые границы и дни в фильтре" description="Крайние marks отдают null, обычные marks отдают дни через \`outputValue\`." min={0} max={25} marks={openMonthToDayMarks} marksPosition="index" value={value} onChange={setValue} />
66
- <RangePreview value={value} field="days" unit=" дн." />
67
- </>;
68
- }
69
- }`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
70
- args: {
71
- label: "Недоступно",
72
- description: "Состояние без интеракций.",
73
- value: 40,
74
- disabled: true,
75
- marks: percentMarks
76
- }
77
- }`,...D.parameters?.docs?.source}}},O=[`SingleStep`,`SingleWithMarks`,`MonthsIndexMarks`,`RangePlain`,`RangeOpenWithoutExplicitMiddleOutput`,`RangeMonthToDaysOutput`,`RangeOpenMonthToDaysOutput`,`Disabled`]}));k();export{D as Disabled,S as MonthsIndexMarks,T as RangeMonthToDaysOutput,E as RangeOpenMonthToDaysOutput,w as RangeOpenWithoutExplicitMiddleOutput,C as RangePlain,b as SingleStep,x as SingleWithMarks,O as __namedExportsOrder,y as default,k as n,c as t};
@@ -1,58 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-DBWaa853.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DHWnLJR9.js";import{Basic as p,DecimalManualInput as m,Disabled as h,MarksSnap as g,RangeInputMonthToDaysOutput as _,RangeInputOpenMonthToDaysOutput as v,RangeInputOpenWithoutExplicitMiddleOutput as y,RangeInputPlain as b,RangeInputReadonlyText as x,n as S,t as C}from"./SliderInput.stories-CDS4YS_3.js";function w(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(a,{of:C,parameters:{docs:{toc:!0}}}),`
2
- `,(0,E.jsx)(c,{children:`SliderInput`}),`
3
- `,(0,E.jsx)(i,{children:`Поля ввода для single и range с popover slider`}),`
4
- `,(0,E.jsxs)(o.p,{children:[(0,E.jsx)(o.code,{children:`SliderInput`}),` работает с одним числом, а `,(0,E.jsx)(o.code,{children:`SliderRangeInput`}),` — с диапазоном `,(0,E.jsx)(o.code,{children:`[number | null, number | null]`}),`.`]}),`
5
- `,(0,E.jsxs)(o.ul,{children:[`
6
- `,(0,E.jsxs)(o.li,{children:[`ручной ввод коммитится на `,(0,E.jsx)(o.code,{children:`blur`}),` и `,(0,E.jsx)(o.code,{children:`Enter`}),`;`]}),`
7
- `,(0,E.jsx)(o.li,{children:`невалидный draft откатывается к последнему committed значению;`}),`
8
- `,(0,E.jsx)(o.li,{children:`popover показывает полные подписи marks;`}),`
9
- `,(0,E.jsxs)(o.li,{children:[(0,E.jsx)(o.code,{children:`SliderRangeInput`}),` выглядит как один control с двумя сегментами;`]}),`
10
- `,(0,E.jsxs)(o.li,{children:[`пустой range-сегмент коммитится как `,(0,E.jsx)(o.code,{children:`null`}),` и отображается как `,(0,E.jsx)(o.code,{children:`-∞`}),` или `,(0,E.jsx)(o.code,{children:`∞`}),`.`]}),`
11
- `]}),`
12
- `,(0,E.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
13
- `,(0,E.jsx)(u,{}),`
14
- `,(0,E.jsx)(n,{of:p}),`
15
- `,(0,E.jsx)(o.pre,{children:(0,E.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
16
-
17
- import { SliderInput } from "@/shared/ui";
18
-
19
- export function Example() {
20
- const [value, setValue] = useState<number | undefined>(12);
21
-
22
- return <SliderInput label="Порог" min={0} max={100} step={0.5} value={value} onChange={setValue} />;
23
- }
24
- `})}),`
25
- `,(0,E.jsx)(o.h2,{id:`rangeinput`,children:`RangeInput`}),`
26
- `,(0,E.jsx)(o.pre,{children:(0,E.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
27
-
28
- import { SliderRangeInput, type SliderRangeValue } from "@/shared/ui";
29
-
30
- export function Example() {
31
- const [value, setValue] = useState<SliderRangeValue | undefined>([null, 12]);
32
-
33
- return <SliderRangeInput label="Период" min={0} max={24} value={value} onChange={setValue} />;
34
- }
35
- `})}),`
36
- `,(0,E.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
37
- `,(0,E.jsx)(o.h3,{id:`базовый-single-input`,children:`Базовый single input`}),`
38
- `,(0,E.jsx)(l,{of:p}),`
39
- `,(0,E.jsx)(o.h3,{id:`snap-по-marks`,children:`Snap по marks`}),`
40
- `,(0,E.jsx)(l,{of:g}),`
41
- `,(0,E.jsx)(o.h3,{id:`десятичный-ручной-ввод`,children:`Десятичный ручной ввод`}),`
42
- `,(0,E.jsx)(l,{of:m}),`
43
- `,(0,E.jsx)(o.h3,{id:`rangeinput-без-outputvalue`,children:`RangeInput без outputValue`}),`
44
- `,(0,E.jsx)(l,{of:b}),`
45
- `,(0,E.jsx)(o.h3,{id:`rangeinput-с-открытыми-границами-без-outputvalue-у-обычных-marks`,children:`RangeInput с открытыми границами без outputValue у обычных marks`}),`
46
- `,(0,E.jsx)(l,{of:y}),`
47
- `,(0,E.jsx)(o.h3,{id:`rangeinput-с-outputvalue-месяцы-на-шкале-дни-в-фильтре`,children:`RangeInput с outputValue: месяцы на шкале, дни в фильтре`}),`
48
- `,(0,E.jsx)(l,{of:_}),`
49
- `,(0,E.jsx)(o.h3,{id:`rangeinput-с-outputvalue-и-открытыми-границами`,children:`RangeInput с outputValue и открытыми границами`}),`
50
- `,(0,E.jsx)(l,{of:v}),`
51
- `,(0,E.jsx)(o.h3,{id:`rangeinput-с-текстом-вместо-ручного-ввода`,children:`RangeInput с текстом вместо ручного ввода`}),`
52
- `,(0,E.jsx)(l,{of:x}),`
53
- `,(0,E.jsx)(o.h3,{id:`disabled`,children:`Disabled`}),`
54
- `,(0,E.jsx)(l,{of:h}),`
55
- `,(0,E.jsx)(o.h2,{id:`api`,children:`API`}),`
56
- `,(0,E.jsx)(s,{of:C}),`
57
- `,(0,E.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
58
- `,(0,E.jsx)(r,{includePrimary:!1})]})}function T(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,E.jsx)(n,{...e,children:(0,E.jsx)(w,{...e})}):w(e)}var E;e((()=>{E=d(),f(),o(),S()}))();export{T as default};
@@ -1,72 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-DBWaa853.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DHWnLJR9.js";import{Basic as p,DisabledItems as m,GridCards as h,HandleOnly as g,HorizontalList as _,NestedContainers as v,n as y,t as b}from"./Sortable.stories--yPzhn7U.js";function x(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a,{of:b,parameters:{docs:{toc:!0}}}),`
2
- `,(0,C.jsx)(c,{children:`Sortable`}),`
3
- `,(0,C.jsxs)(i,{children:[`Headless-набор для сортируемых коллекций на базе `,(0,C.jsx)(o.code,{children:`dnd-kit`}),` с поддержкой list, horizontal и grid-layout`]}),`
4
- `,(0,C.jsxs)(o.p,{children:[(0,C.jsx)(o.code,{children:`Sortable`}),` не навязывает визуальный вид элементов и используется как композиционный слой поверх `,(0,C.jsx)(o.code,{children:`dnd-kit`}),`.
5
- Он дает единый API для `,(0,C.jsx)(o.code,{children:`DndContext`}),`, `,(0,C.jsx)(o.code,{children:`SortableContext`}),`, sortable-item и drag-handle, а бизнес-логика reorder остается у потребителя.
6
- Для типовой визуальной ручки есть `,(0,C.jsx)(o.code,{children:`Sortable.DragHandle`}),`; низкоуровневый `,(0,C.jsx)(o.code,{children:`Sortable.Handle`}),` нужен, когда внешний вид полностью задает потребитель.`]}),`
7
- `,(0,C.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
8
- `,(0,C.jsx)(u,{}),`
9
- `,(0,C.jsx)(n,{of:p}),`
10
- `,(0,C.jsx)(o.pre,{children:(0,C.jsx)(o.code,{className:`language-tsx`,children:`import { Sortable, getSortableReorderResult } from "@/shared/ui";
11
-
12
- function Example({ items, setItems }: { items: string[]; setItems: (next: string[]) => void }) {
13
- return (
14
- <Sortable.Root
15
- onDragEnd={(event) => {
16
- const reorder = getSortableReorderResult({
17
- event,
18
- items: {
19
- list: items
20
- }
21
- });
22
- if (!reorder) return;
23
-
24
- const next = [...items];
25
- const [moved] = next.splice(reorder.fromIndex, 1);
26
- next.splice(reorder.toIndex, 0, moved!);
27
- setItems(next);
28
- }}>
29
- <Sortable.Container containerId="list" items={items} layout="vertical">
30
- {items.map((item) => (
31
- <Sortable.Item key={item} id={item}>
32
- <Sortable.DragHandle title={\`Перетащить \${item}\`} />
33
- <span>{item}</span>
34
- </Sortable.Item>
35
- ))}
36
- </Sortable.Container>
37
- </Sortable.Root>
38
- );
39
- }
40
- `})}),`
41
- `,(0,C.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
42
- `,(0,C.jsxs)(o.ul,{children:[`
43
- `,(0,C.jsxs)(o.li,{children:[`Используйте `,(0,C.jsx)(o.code,{children:`Sortable.Root`}),` как общий контекст drag-and-drop для одного сценария взаимодействия.`]}),`
44
- `,(0,C.jsxs)(o.li,{children:[`Для нескольких независимых списков внутри одного экрана задавайте отдельные `,(0,C.jsx)(o.code,{children:`containerId`}),` через `,(0,C.jsx)(o.code,{children:`Sortable.Container`}),`.`]}),`
45
- `,(0,C.jsxs)(o.li,{children:[`Логику reorder удобнее выносить в helper `,(0,C.jsx)(o.code,{children:`getSortableReorderResult`}),`, если перенос между контейнерами не нужен.`]}),`
46
- `,(0,C.jsxs)(o.li,{children:[`Для вложенных сценариев размещайте несколько `,(0,C.jsx)(o.code,{children:`Sortable.Container`}),` внутри одного `,(0,C.jsx)(o.code,{children:`Sortable.Root`}),`.`]}),`
47
- `,(0,C.jsxs)(o.li,{children:[(0,C.jsx)(o.code,{children:`Sortable.Item`}),` отвечает только за DnD-bindings и inline-style трансформации; визуальный каркас строки или карточки должен оставаться у потребителя.`]}),`
48
- `,(0,C.jsxs)(o.li,{children:[`Используйте `,(0,C.jsx)(o.code,{children:`Sortable.DragHandle`}),` для стандартной ручки с `,(0,C.jsx)(o.code,{children:`GripIcon`}),`, локальными стилями и состояниями disabled/dragging.`]}),`
49
- `]}),`
50
- `,(0,C.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
51
- `,(0,C.jsx)(o.h3,{id:`базовый-вертикальный-список`,children:`Базовый вертикальный список`}),`
52
- `,(0,C.jsx)(o.p,{children:`Базовый headless-сценарий сортировки элементов по вертикали.`}),`
53
- `,(0,C.jsx)(l,{of:p}),`
54
- `,(0,C.jsx)(o.h3,{id:`горизонтальный-список`,children:`Горизонтальный список`}),`
55
- `,(0,C.jsxs)(o.p,{children:[`Использование `,(0,C.jsx)(o.code,{children:`layout="horizontal"`}),` для toolbar, чипов и полос вкладок.`]}),`
56
- `,(0,C.jsx)(l,{of:_}),`
57
- `,(0,C.jsx)(o.h3,{id:`grid-карточки`,children:`Grid-карточки`}),`
58
- `,(0,C.jsxs)(o.p,{children:[`Использование `,(0,C.jsx)(o.code,{children:`layout="grid"`}),` для карточек и flow-раскладок.`]}),`
59
- `,(0,C.jsx)(l,{of:h}),`
60
- `,(0,C.jsx)(o.h3,{id:`отключенные-элементы`,children:`Отключенные элементы`}),`
61
- `,(0,C.jsx)(o.p,{children:`Проверка поведения для элементов, которые видны в списке, но не должны перетаскиваться.`}),`
62
- `,(0,C.jsx)(l,{of:m}),`
63
- `,(0,C.jsx)(o.h3,{id:`handle-only-drag`,children:`Handle-only drag`}),`
64
- `,(0,C.jsx)(o.p,{children:`Перетаскивание доступно только через handle, а не через весь элемент.`}),`
65
- `,(0,C.jsx)(l,{of:g}),`
66
- `,(0,C.jsx)(o.h3,{id:`вложенные-контейнеры`,children:`Вложенные контейнеры`}),`
67
- `,(0,C.jsxs)(o.p,{children:[`Два уровня `,(0,C.jsx)(o.code,{children:`Sortable.Container`}),` внутри одного `,(0,C.jsx)(o.code,{children:`Sortable.Root`}),` без переноса между контейнерами.`]}),`
68
- `,(0,C.jsx)(l,{of:v}),`
69
- `,(0,C.jsx)(o.h2,{id:`api`,children:`API`}),`
70
- `,(0,C.jsx)(s,{of:b}),`
71
- `,(0,C.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
72
- `,(0,C.jsx)(r,{includePrimary:!1})]})}function S(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,C.jsx)(n,{...e,children:(0,C.jsx)(x,{...e})}):x(e)}var C;e((()=>{C=d(),f(),o(),y()}))();export{S as default};
@@ -1,22 +0,0 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1Ua6ocI.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-DKOsD-4R.js";var s,c,l,u,d,f,p,m=n((()=>{s=`wAovST`,c=`QVVMwe`,l=`H43AJ8`,u=`pgo8sW`,d=`_8fCvqA`,f=`t6RFcI`,p={splitter:s,vertical:c,separator:l,horizontal:u,topLeft:d,bottomRight:f}}));function h(e,t,n){return Math.min(n,Math.max(t,e))}function g(e,t){return Number.isFinite(e)?h(e,0,1):t}function _(e,t){let n=g(e,D),r=g(t,O);return n<=r?[n,r]:[r,n]}function v(e,t){return e===`vertical`?t.clientX:t.clientY}function y(e,t){return e===`vertical`?t.width:t.height}function b(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return A}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return A}return null}function x(e,t){return t===`start`?0:t===`end`?1:e}function S({direction:e,initial:t,min:n,max:r,collapsedPane:i}){let[a,o]=_(n,r),s=(0,T.useRef)(null),c=(0,T.useRef)(null),l=(0,T.useRef)(null),u=(0,T.useRef)(null),d=(0,T.useRef)(null),f=(0,T.useRef)(null),p=(0,T.useRef)(0),m=(0,T.useRef)(h(g(t,k),a,o)),S=(0,T.useRef)(t),[C,w]=(0,T.useState)(()=>h(g(t,k),a,o)),E=(0,T.useRef)(C),D=(0,T.useCallback)(e=>{E.current=e,c.current?.style.setProperty(`flex-basis`,`${x(e,i)*100}%`),l.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[i]),O=()=>{if(f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),d.current===null)return E.current;let e=d.current;return d.current=null,D(e),e},A=e=>{d.current=e,f.current===null&&(f.current=requestAnimationFrame(()=>{f.current=null,d.current!==null&&D(d.current)}))},j=()=>{u.current?.(),u.current=null},M=e=>{O(),w(h(e,a,o))};return(0,T.useLayoutEffect)(()=>{D(C)},[D,C]),(0,T.useEffect)(()=>{w(e=>{let n=S.current!==t;return S.current=t,h(n?g(t,k):e,a,o)})},[t,a,o]),(0,T.useEffect)(()=>()=>{j(),f.current!==null&&cancelAnimationFrame(f.current)},[]),{containerRef:s,topLeftRef:c,separatorRef:l,ratio:C,minRatio:a,maxRatio:o,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=s.current;if(!n)return;j();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}p.current=v(e,t),m.current=E.current;let r=t=>{let r=y(e,n.getBoundingClientRect());if(r<=0)return;let i=v(e,t)-p.current,s=h(m.current+i/r,a,o);A(s)},i=()=>{j(),w(O())};u.current=()=>{document.removeEventListener(`pointermove`,r),document.removeEventListener(`pointerup`,i),document.removeEventListener(`pointercancel`,i)},document.addEventListener(`pointermove`,r),document.addEventListener(`pointerup`,i),document.addEventListener(`pointercancel`,i)},handleSeparatorKeyDown:t=>{let n=b(e,t.key);if(n!==null){t.preventDefault(),M(E.current+n);return}if(t.key===`Home`){t.preventDefault(),M(a);return}t.key===`End`&&(t.preventDefault(),M(o))}}}function C({className:e,direction:t,left:n,right:r,collapsedPane:i,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:f,handleSeparatorPointerDown:m,handleSeparatorKeyDown:h}=o,g=x(u,i),_=i===`start`,v=i===`end`,y=i===null;return(0,E.jsxs)(`div`,{ref:s,className:a(p.splitter,p[t],e),children:[(0,E.jsx)(`div`,{ref:c,className:p.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,E.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:m,onKeyDown:h,className:p.separator}),(0,E.jsx)(`div`,{className:p.bottomRight,hidden:v,children:r})]})}function w({direction:e=`vertical`,initial:t=k,min:n=D,max:r=O,className:i,collapsedPane:a=null,children:o}){let[s,c]=T.Children.toArray(o),l=S({direction:e,initial:t,min:n,max:r,collapsedPane:a});return c?(0,E.jsx)(C,{className:i,direction:e,left:s,right:c,collapsedPane:a,logic:l}):s}var T,E,D,O,k,A,j=n((()=>{T=t(r(),1),o(),m(),E=i(),D=.1,O=.9,k=.7,A=.02,w.__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}}}})),M=e({Basic:()=>B,Constrained:()=>U,Horizontal:()=>V,NestedFourPanels:()=>H,__namedExportsOrder:()=>W,default:()=>z});function N({children:e}){return(0,R.jsx)(`div`,{style:{height:490},children:e})}function P({title:e,description:t,items:n=[]}){return(0,R.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,R.jsxs)(`div`,{children:[(0,R.jsx)(`h2`,{children:e}),(0,R.jsx)(`p`,{children:t})]}),n.length>0&&(0,R.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,R.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function F(e){return(0,R.jsx)(N,{children:(0,R.jsxs)(w,{...e,children:[(0,R.jsx)(P,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,R.jsx)(P,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function I(){return(0,R.jsx)(N,{children:(0,R.jsxs)(w,{initial:.48,min:.25,max:.75,children:[(0,R.jsxs)(w,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,R.jsx)(P,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,R.jsx)(P,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,R.jsxs)(w,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,R.jsx)(P,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,R.jsx)(P,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function L(e){return(0,R.jsx)(N,{children:(0,R.jsxs)(w,{...e,children:[(0,R.jsx)(P,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,R.jsx)(P,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var R,z,B,V,H,U,W,G=n((()=>{j(),R=i(),z={title:`Shared/UI/Splitter`,component:w,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}},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},B={name:`Две панели`,render:e=>(0,R.jsx)(F,{...e})},V={name:`Горизонтальное разделение`,render:e=>(0,R.jsx)(F,{...e}),args:{direction:`horizontal`,initial:.55}},H={name:`Четыре панели через вложенность`,render:()=>(0,R.jsx)(I,{})},U={name:`Ограничения и клавиатура`,render:e=>(0,R.jsx)(L,{...e}),args:{initial:.35,min:.25,max:.55}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
2
- name: "Две панели",
3
- render: args => <TwoPaneLayout {...args} />
4
- }`,...B.parameters?.docs?.source}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
5
- name: "Горизонтальное разделение",
6
- render: args => <TwoPaneLayout {...args} />,
7
- args: {
8
- direction: "horizontal",
9
- initial: 0.55
10
- }
11
- }`,...V.parameters?.docs?.source}}},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`{
12
- name: "Четыре панели через вложенность",
13
- render: () => <NestedFourPaneLayout />
14
- }`,...H.parameters?.docs?.source}}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
15
- name: "Ограничения и клавиатура",
16
- render: args => <ConstrainedLayout {...args} />,
17
- args: {
18
- initial: 0.35,
19
- min: 0.25,
20
- max: 0.55
21
- }
22
- }`,...U.parameters?.docs?.source}}},W=[`Basic`,`Horizontal`,`NestedFourPanels`,`Constrained`]}));G();export{B as Basic,U as Constrained,V as Horizontal,H as NestedFourPanels,W as __namedExportsOrder,z as default,G as n,M as t};
@@ -1,36 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-DBWaa853.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DHWnLJR9.js";import{BiState as p,Disabled as m,TriState as h,n as g,t as _}from"./Switch.stories-BNMmFr3z.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
- `,(0,b.jsx)(c,{children:`Switch`}),`
3
- `,(0,b.jsx)(i,{children:`Переключатель в виде слайдера для быстрых включений, отключений и tri-state сценариев`}),`
4
- `,(0,b.jsx)(o.p,{children:`Switch уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
- Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента. Отдельно разобраны заблокированные состояния.`}),`
6
- `,(0,b.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
- `,(0,b.jsx)(u,{}),`
8
- `,(0,b.jsx)(n,{of:p}),`
9
- `,(0,b.jsx)(o.pre,{children:(0,b.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
10
-
11
- import { Switch } from "@/shared/ui";
12
-
13
- export function Example() {
14
- const [value, setValue] = useState(undefined);
15
-
16
- return <Switch triState label="Автовыбор" value={value} onChange={setValue} />;
17
- }
18
- `})}),`
19
- `,(0,b.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
- `,(0,b.jsxs)(o.ul,{children:[`
21
- `,(0,b.jsx)(o.li,{children:`Заблокированное состояние лучше проверять отдельно, чтобы убедиться, что визуально и поведенчески оно остается понятным.`}),`
22
- `]}),`
23
- `,(0,b.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
24
- `,(0,b.jsx)(o.h3,{id:`классический-двухсостоянный-режим`,children:`Классический двухсостоянный режим`}),`
25
- `,(0,b.jsx)(o.p,{children:`Классический двухсостоянный режим.`}),`
26
- `,(0,b.jsx)(l,{of:p}),`
27
- `,(0,b.jsx)(o.h3,{id:`трехсостояние-с-промежуточным-значением`,children:`Трехсостояние с промежуточным значением`}),`
28
- `,(0,b.jsx)(o.p,{children:`Трехсостояние с промежуточным значением.`}),`
29
- `,(0,b.jsx)(l,{of:h}),`
30
- `,(0,b.jsx)(o.h3,{id:`проверка-поведения-в-заблокированном-состоянии`,children:`Проверка поведения в заблокированном состоянии`}),`
31
- `,(0,b.jsx)(o.p,{children:`Проверка поведения в заблокированном состоянии.`}),`
32
- `,(0,b.jsx)(l,{of:m}),`
33
- `,(0,b.jsx)(o.h2,{id:`api`,children:`API`}),`
34
- `,(0,b.jsx)(s,{of:_}),`
35
- `,(0,b.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
36
- `,(0,b.jsx)(r,{includePrimary:!1})]})}function y(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,b.jsx)(n,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=d(),f(),o(),g()}))();export{y as default};
@@ -1,26 +0,0 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1Ua6ocI.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-DKOsD-4R.js";import{It as s,ct as c,t as l}from"./lucide-react-DiTL2FZl.js";import{n as u,t as d}from"./ui.module-wFHXkJzp.js";var f,p,m,h,g,_=n((()=>{f=`Or5LYA`,p=`w0AMfA`,m=`P1x4lq`,h=`-ZVOZo`,g={switchWrapper:f,switch:`qge3io`,iconWrapper:p,auto:m,checked:h}}));function v(e){let{label:t,description:n,disabled:r,checkedIcon:i=(0,b.jsx)(c,{}),uncheckedIcon:o=(0,b.jsx)(s,{}),className:l,type:d,id:f,size:p,placeholder:m,onChange:h,value:_,triState:v,...x}=e,S=(0,y.useId)(),C=f??S,w=n?`${C}-description`:void 0,T=t?`${C}-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:!1,O=e.triState&&typeof e.value!=`boolean`,k=x[`aria-label`]??(t?void 0:`Переключатель`);return(0,b.jsxs)(`div`,{className:a(u.uiElement,r&&u.disabled),"aria-disabled":r||void 0,children:[t&&(0,b.jsxs)(`div`,{id:T,className:u.uiLabel,children:[t,`:`]}),n&&(0,b.jsx)(`p`,{id:w,className:u.uiDescription,children:n}),(0,b.jsx)(`button`,{...x,id:C,type:d??`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:a(u.uiInputControl,g.switchWrapper,l),children:(0,b.jsx)(`div`,{className:g.switch,"data-disabled":r||void 0,children:O?(0,b.jsx)(`div`,{className:a(g.iconWrapper,g.auto,g.checked),children:`Auto`}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{className:a(g.iconWrapper,!e.value&&g.checked),children:o}),(0,b.jsx)(`div`,{className:a(g.iconWrapper,e.value&&g.checked),children:i})]})})})]})}var y,b,x=n((()=>{y=t(r(),1),o(),l(),d(),_(),b=i(),v.__docgenInfo={description:`Переключатель boolean-состояния в виде слайдера. Подходит для быстрых настроек и включения/отключения опций.`,methods:[],displayName:`Switch`}})),S=e({BiState:()=>E,Disabled:()=>O,TriState:()=>D,__namedExportsOrder:()=>k,default:()=>T}),C,w,T,E,D,O,k,A=n((()=>{C=t(r(),1),x(),w=i(),T={title:`Shared/UI/Switch`,component:v,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:!1},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`}}},E={render:e=>{let[t,n]=(0,C.useState)(!1);return(0,w.jsx)(v,{...e,value:t,onChange:n,triState:!1})}},D={render:e=>{let[t,n]=(0,C.useState)(void 0);return(0,w.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,w.jsx)(v,{...e,value:t,onChange:n,triState:!0}),(0,w.jsxs)(`div`,{children:[`Текущее значение: `,String(t)]})]})},args:{triState:!0,value:void 0}},O={args:{disabled:!0,value:!0}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
2
- render: args => {
3
- const [value, setValue] = useState(false);
4
- return <Switch {...args} value={value} onChange={setValue} triState={false} />;
5
- }
6
- }`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
7
- render: args => {
8
- const [value, setValue] = useState<boolean | undefined>(undefined);
9
- return <div style={{
10
- display: "grid",
11
- gap: 8
12
- }}>
13
- <Switch {...args} value={value} onChange={setValue} triState />
14
- <div>Текущее значение: {String(value)}</div>
15
- </div>;
16
- },
17
- args: {
18
- triState: true,
19
- value: undefined
20
- }
21
- }`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
22
- args: {
23
- disabled: true,
24
- value: true
25
- }
26
- }`,...O.parameters?.docs?.source}}},k=[`BiState`,`TriState`,`Disabled`]}));A();export{E as BiState,O as Disabled,D as TriState,k as __namedExportsOrder,T as default,A as n,S as t};
@@ -1,197 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-DBWaa853.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DHWnLJR9.js";import{Basic as p,Empty as m,Fetching as h,Loading as g,MultiSelect as _,ReachEnd as v,WithColumnPinning as y,WithDisabledRows as b,WithFormattingPipeline as x,WithFormulaColumn as S,WithHiddenZero as C,WithMergedDuplicates as w,WithODataMetadataAdapter as T,WithUseODataTableColumnsBuildHook as E,WithUseODataTableColumnsEnrichHook as D,n as O,t as k}from"./Table.stories-BZOmuXFd.js";function A(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(a,{of:k,parameters:{docs:{toc:!0}}}),`
2
- `,(0,M.jsx)(c,{children:`Table`}),`
3
- `,(0,M.jsxs)(i,{children:[`Плоская таблица как React-альтернатива `,(0,M.jsx)(o.code,{children:`sap.m.Table`})]}),`
4
- `,(0,M.jsxs)(o.p,{children:[(0,M.jsx)(o.code,{children:`Table`}),` предназначен для плоских данных и по поведению осознанно сближен с `,(0,M.jsx)(o.code,{children:`TreeTable`}),`.
5
- Оба компонента используют общий табличный каркас, поэтому здесь совпадают states загрузки, визуальная структура, обработка выбора строк и клавиатурная активация.
6
- `,(0,M.jsx)(o.code,{children:`Table`}),` также поддерживает декларативное форматирование через `,(0,M.jsx)(o.code,{children:`meta.formatting`}),`, formulas, безопасное pipeline-formatting и optional OData adapter.`]}),`
7
- `,(0,M.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
8
- `,(0,M.jsx)(u,{}),`
9
- `,(0,M.jsx)(n,{of:p}),`
10
- `,(0,M.jsx)(o.pre,{children:(0,M.jsx)(o.code,{className:`language-tsx`,children:`import { Table, type TableColumnDef } from "@/shared/ui";
11
-
12
- interface DealRow {
13
- id: string;
14
- number: string;
15
- client: string;
16
- amount: string;
17
- }
18
-
19
- const columns: TableColumnDef<DealRow>[] = [
20
- {
21
- id: "number",
22
- accessorKey: "number",
23
- header: "Номер",
24
- meta: { width: "9em" }
25
- },
26
- {
27
- id: "client",
28
- accessorKey: "client",
29
- header: "Клиент",
30
- meta: { width: "14em" }
31
- },
32
- {
33
- id: "amount",
34
- accessorKey: "amount",
35
- header: "Сумма",
36
- meta: { width: "10em", align: "right" }
37
- }
38
- ];
39
-
40
- export function Example({ rows }: { rows: DealRow[] }) {
41
- return <Table data={rows} columns={columns} getRowId={(row) => row.id} selectionMode="single" height="20em" />;
42
- }
43
- `})}),`
44
- `,(0,M.jsx)(o.h2,{id:`форматирование-ячеек`,children:`Форматирование ячеек`}),`
45
- `,(0,M.jsxs)(o.p,{children:[(0,M.jsx)(o.code,{children:`meta.formatting`}),` добавляет к колонке декларативный runtime-контракт:`]}),`
46
- `,(0,M.jsxs)(o.ul,{children:[`
47
- `,(0,M.jsxs)(o.li,{children:[`typed formatting по `,(0,M.jsx)(o.code,{children:`role/type`}),`;`]}),`
48
- `,(0,M.jsx)(o.li,{children:`formula-based вычисление значения;`}),`
49
- `,(0,M.jsxs)(o.li,{children:[`pipeline display-formatting (`,(0,M.jsx)(o.code,{children:`normalizeLeadingZeros`}),`, `,(0,M.jsx)(o.code,{children:`resolveValueState`}),`, `,(0,M.jsx)(o.code,{children:`typedValueFormat`}),`);`]}),`
50
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`emptyWhenZero`}),` для скрытия нулевых значений;`]}),`
51
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`overflowTooltip`}),` для длинного текста.`]}),`
52
- `]}),`
53
- `,(0,M.jsx)(o.p,{children:`Важно:`}),`
54
- `,(0,M.jsxs)(o.ul,{children:[`
55
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`meta.formatting`}),` применяется только если у колонки нет кастомного `,(0,M.jsx)(o.code,{children:`cell`}),`;`]}),`
56
- `,(0,M.jsx)(o.li,{children:`formulas и pipeline компилируются один раз на снимок колонок;`}),`
57
- `,(0,M.jsxs)(o.li,{children:[`ошибки formula/pipeline не роняют таблицу и не подставляют универсальный `,(0,M.jsx)(o.code,{children:`0`}),`;`]}),`
58
- `,(0,M.jsxs)(o.li,{children:[`OData adapter остаётся внешней прослойкой, а не частью `,(0,M.jsx)(o.code,{children:`Table`}),`.`]}),`
59
- `]}),`
60
- `,(0,M.jsx)(o.pre,{children:(0,M.jsx)(o.code,{className:`language-tsx`,children:`const columns: TableColumnDef<Row>[] = [
61
- {
62
- id: "amount",
63
- accessorKey: "amount",
64
- header: "Сумма",
65
- meta: {
66
- align: "right",
67
- formatting: {
68
- role: "measure",
69
- type: "decimal",
70
- emptyWhenZero: true
71
- }
72
- }
73
- }
74
- ];
75
- `})}),`
76
- `,(0,M.jsxs)(o.p,{children:[`Для OData-сценариев можно не прописывать `,(0,M.jsx)(o.code,{children:`role/type`}),` вручную, а обогатить колонки через adapter:`]}),`
77
- `,(0,M.jsx)(o.pre,{children:(0,M.jsx)(o.code,{className:`language-tsx`,children:`import { enrichTableColumnsWithODataFormatting } from "@ryuzaki13/react-foundation-lib/table";
78
-
79
- const columns = enrichTableColumnsWithODataFormatting(manualColumns, metadata.columns);
80
- `})}),`
81
- `,(0,M.jsx)(o.h2,{id:`слияние-дубликатов`,children:`Слияние дубликатов`}),`
82
- `,(0,M.jsxs)(o.p,{children:[(0,M.jsx)(o.code,{children:`meta.mergeDuplicates`}),` включает display-only слияние подряд идущих одинаковых raw-значений без изменения структуры строк.`]}),`
83
- `,(0,M.jsx)(o.p,{children:`Важно:`}),`
84
- `,(0,M.jsxs)(o.ul,{children:[`
85
- `,(0,M.jsxs)(o.li,{children:[`сравнение идёт по `,(0,M.jsx)(o.code,{children:`cell.getValue()`}),`, а не по formatted display;`]}),`
86
- `,(0,M.jsx)(o.li,{children:`объединяются только подряд идущие строки;`}),`
87
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`null`}),`, `,(0,M.jsx)(o.code,{children:`undefined`}),` и пустая строка `,(0,M.jsx)(o.code,{children:`""`}),` не объединяются;`]}),`
88
- `,(0,M.jsx)(o.li,{children:`повторяющееся значение остаётся только в первой строке группы, а ниже рендерятся пустые ячейки;`}),`
89
- `,(0,M.jsx)(o.li,{children:`если сервер не отсортировал данные так, чтобы дубликаты шли подряд, слияния не будет.`}),`
90
- `]}),`
91
- `,(0,M.jsx)(o.pre,{children:(0,M.jsx)(o.code,{className:`language-tsx`,children:`const columns: TableColumnDef<Row>[] = [
92
- {
93
- id: "division",
94
- accessorKey: "division",
95
- header: "Дивизион",
96
- meta: {
97
- mergeDuplicates: true
98
- }
99
- }
100
- ];
101
- `})}),`
102
- `,(0,M.jsxs)(o.h2,{id:`хук-useodatatablecolumns`,children:[`Хук `,(0,M.jsx)(o.code,{children:`useODataTableColumns`})]}),`
103
- `,(0,M.jsxs)(o.p,{children:[`Наиболее частый кейс - работать не с pure-helper напрямую, а с hook-слоем `,(0,M.jsx)(o.code,{children:`useODataTableColumns(...)`}),`.`]}),`
104
- `,(0,M.jsxs)(o.p,{children:[(0,M.jsx)(o.code,{children:`build`}),` стоит выбирать, когда колонки можно полностью собрать из `,(0,M.jsx)(o.code,{children:`metadata.columns`}),`:`]}),`
105
- `,(0,M.jsx)(o.pre,{children:(0,M.jsx)(o.code,{className:`language-tsx`,children:`import { useODataTableColumns } from "@ryuzaki13/react-foundation-api/odata";
106
- import { Table } from "@/shared/ui";
107
-
108
- function DealsTable({ rows }: { rows: DealRow[] }) {
109
- const { columns, metadata, isLoading } = useODataTableColumns<DealRow>({
110
- service: "ZSD_SALES_SRV",
111
- entity: "DealSet",
112
- mode: "build"
113
- });
114
-
115
- return (
116
- <Table
117
- title={metadata?.title ?? "Сделки"}
118
- data={rows}
119
- columns={columns}
120
- isLoading={isLoading}
121
- getRowId={(row) => row.id}
122
- selectionMode="single"
123
- />
124
- );
125
- }
126
- `})}),`
127
- `,(0,M.jsxs)(o.p,{children:[(0,M.jsx)(o.code,{children:`enrich`}),` подходит, когда колонки уже описаны вручную и нужно только дозаполнить `,(0,M.jsx)(o.code,{children:`meta.formatting.role/type`}),`:`]}),`
128
- `,(0,M.jsx)(o.pre,{children:(0,M.jsx)(o.code,{className:`language-tsx`,children:`import { useODataTableColumns } from "@ryuzaki13/react-foundation-api/odata";
129
- import { Table } from "@/shared/ui";
130
-
131
- const manualColumns: TableColumnDef<DealRow>[] = [
132
- { id: "product", accessorKey: "product", header: "Позиция" },
133
- { id: "createdAt", accessorKey: "createdAt", header: "Создано" },
134
- { id: "totalAmount", accessorKey: "totalAmount", header: "Итог", meta: { align: "right" } }
135
- ];
136
-
137
- function DealsTable({ rows }: { rows: DealRow[] }) {
138
- const { columns, isLoading } = useODataTableColumns<DealRow>({
139
- service: "ZSD_SALES_SRV",
140
- entity: "DealSet",
141
- mode: "enrich",
142
- columns: manualColumns
143
- });
144
-
145
- return <Table data={rows} columns={columns} isLoading={isLoading} getRowId={(row) => row.id} selectionMode="single" />;
146
- }
147
- `})}),`
148
- `,(0,M.jsx)(o.p,{children:`Практическая семантика хука:`}),`
149
- `,(0,M.jsxs)(o.ul,{children:[`
150
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`columns`}),` уже готовы для прямой передачи в `,(0,M.jsx)(o.code,{children:`Table`}),`;`]}),`
151
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`metadata`}),` можно использовать для заголовка, пустых состояний или дополнительной UI-подписи;`]}),`
152
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`isLoading`}),` нужно прокидывать в `,(0,M.jsx)(o.code,{children:`Table`}),`, чтобы сохранить единое табличное состояние загрузки;`]}),`
153
- `,(0,M.jsxs)(o.li,{children:[`сам `,(0,M.jsx)(o.code,{children:`Table`}),` остаётся OData-независимым и получает только готовые `,(0,M.jsx)(o.code,{children:`columns`}),`.`]}),`
154
- `]}),`
155
- `,(0,M.jsx)(o.h2,{id:`что-важно-знать`,children:`Что важно знать`}),`
156
- `,(0,M.jsxs)(o.ul,{children:[`
157
- `,(0,M.jsx)(o.li,{children:`Компонент принимает именно плоский массив строк и не содержит древовидной логики.`}),`
158
- `,(0,M.jsxs)(o.li,{children:[`Поведение `,(0,M.jsx)(o.code,{children:`selectionMode`}),` идентично `,(0,M.jsx)(o.code,{children:`TreeTable`}),`: `,(0,M.jsx)(o.code,{children:`single`}),` не снимает выбор повторным кликом по уже выбранной строке.`]}),`
159
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`height`}),` и ширины колонок можно задавать строками в `,(0,M.jsx)(o.code,{children:`em`}),`, `,(0,M.jsx)(o.code,{children:`rem`}),`, `,(0,M.jsx)(o.code,{children:`%`}),` и других CSS-единицах; числовые значения трактуются как `,(0,M.jsx)(o.code,{children:`em`}),`.`]}),`
160
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`onReachEnd`}),` срабатывает внутри scroll-контейнера и подходит для постепенной догрузки длинного списка.`]}),`
161
- `,(0,M.jsxs)(o.li,{children:[(0,M.jsx)(o.code,{children:`Table`}),` не зависит от OData напрямую и продолжает работать на plain local data без metadata.`]}),`
162
- `]}),`
163
- `,(0,M.jsx)(o.h2,{id:`сценарии`,children:`Сценарии`}),`
164
- `,(0,M.jsx)(o.h3,{id:`базовый-режим`,children:`Базовый режим`}),`
165
- `,(0,M.jsx)(l,{of:p}),`
166
- `,(0,M.jsx)(o.h3,{id:`left-pinning-столбцов`,children:`Left-pinning столбцов`}),`
167
- `,(0,M.jsx)(l,{of:y}),`
168
- `,(0,M.jsx)(o.h3,{id:`множественный-выбор`,children:`Множественный выбор`}),`
169
- `,(0,M.jsx)(l,{of:_}),`
170
- `,(0,M.jsx)(o.h3,{id:`строки-с-ограничением-выбора`,children:`Строки с ограничением выбора`}),`
171
- `,(0,M.jsx)(l,{of:b}),`
172
- `,(0,M.jsx)(o.h3,{id:`фоновое-обновление-данных`,children:`Фоновое обновление данных`}),`
173
- `,(0,M.jsx)(l,{of:h}),`
174
- `,(0,M.jsx)(o.h3,{id:`пустая-таблица`,children:`Пустая таблица`}),`
175
- `,(0,M.jsx)(l,{of:m}),`
176
- `,(0,M.jsx)(o.h3,{id:`достижение-конца-списка`,children:`Достижение конца списка`}),`
177
- `,(0,M.jsx)(l,{of:v}),`
178
- `,(0,M.jsx)(o.h3,{id:`первичная-загрузка`,children:`Первичная загрузка`}),`
179
- `,(0,M.jsx)(l,{of:g}),`
180
- `,(0,M.jsx)(o.h3,{id:`formula-based-колонка`,children:`Formula-based колонка`}),`
181
- `,(0,M.jsx)(l,{of:S}),`
182
- `,(0,M.jsx)(o.h3,{id:`pipeline-display-formatting`,children:`Pipeline display-formatting`}),`
183
- `,(0,M.jsx)(l,{of:x}),`
184
- `,(0,M.jsx)(o.h3,{id:`скрытие-нулевых-значений`,children:`Скрытие нулевых значений`}),`
185
- `,(0,M.jsx)(l,{of:C}),`
186
- `,(0,M.jsx)(o.h3,{id:`слияние-дубликатов-1`,children:`Слияние дубликатов`}),`
187
- `,(0,M.jsx)(l,{of:w}),`
188
- `,(0,M.jsx)(o.h3,{id:`odata-metadata-adapter`,children:`OData metadata adapter`}),`
189
- `,(0,M.jsx)(l,{of:T}),`
190
- `,(0,M.jsx)(o.h3,{id:`useodatatablecolumns-build`,children:`useODataTableColumns: build`}),`
191
- `,(0,M.jsx)(l,{of:E}),`
192
- `,(0,M.jsx)(o.h3,{id:`useodatatablecolumns-enrich`,children:`useODataTableColumns: enrich`}),`
193
- `,(0,M.jsx)(l,{of:D}),`
194
- `,(0,M.jsx)(o.h2,{id:`api`,children:`API`}),`
195
- `,(0,M.jsx)(s,{of:k}),`
196
- `,(0,M.jsx)(o.h2,{id:`все-stories`,children:`Все stories`}),`
197
- `,(0,M.jsx)(r,{includePrimary:!1})]})}function j(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,M.jsx)(n,{...e,children:(0,M.jsx)(A,{...e})}):A(e)}var M;e((()=>{M=d(),f(),o(),O()}))();export{j as default};