@ryuzaki13/react-foundation-ui 1.2.6 → 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 (293) hide show
  1. package/dist/disclosure/Disclosure.d.ts.map +1 -1
  2. package/dist/disclosure/index.js +30 -32
  3. package/dist/disclosure/index.js.map +1 -1
  4. package/dist/styles.css +1 -1
  5. package/package.json +5 -1
  6. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  7. package/storybook-static/assets/Badge-BqGrcxAM.js +139 -0
  8. package/storybook-static/assets/Badge.stories-D-4FPPMr.js +51 -0
  9. package/storybook-static/assets/Button-Dk2YMZua.js +12 -0
  10. package/storybook-static/assets/{Button-DI6wOTM7.js → Button-iCkwBEDP.js} +47 -47
  11. package/storybook-static/assets/Button.stories-BkV_xVnD.js +75 -0
  12. package/storybook-static/assets/{CheckBox-CS0rOTN7.js → CheckBox-BQhsynyB.js} +1 -1
  13. package/storybook-static/assets/{CheckBox-CfKXKU4v.js → CheckBox-C-f5AsCI.js} +31 -31
  14. package/storybook-static/assets/CheckBox.stories-7V9WkaKi.js +60 -0
  15. package/storybook-static/assets/Color-KMSTOMOX-CYcFidZH.js +1 -0
  16. package/storybook-static/assets/ContextMenu-DinzhWx_.js +40 -0
  17. package/storybook-static/assets/{ContextMenu.stories-CA00sUQt.js → ContextMenu.stories-B9O_FkLB.js} +1 -1
  18. package/storybook-static/assets/DateInput-BT_5pRV0.js +40 -0
  19. package/storybook-static/assets/DateInput-CvJvdtwa.js +1 -0
  20. package/storybook-static/assets/{DateInput.stories-CJGnhCiR.js → DateInput.stories-BDKMX9K3.js} +1 -1
  21. package/storybook-static/assets/DateRangePresetSelect-Bck3ITZr.js +30 -0
  22. package/storybook-static/assets/DateRangePresetSelect-CPZ6FKGz.js +3 -0
  23. package/storybook-static/assets/DateRangePresetSelect.stories-D5fRZmWy.js +11 -0
  24. package/storybook-static/assets/Detail-DBH4WUCF.js +40 -0
  25. package/storybook-static/assets/Detail.stories-Kvnqo8Un.js +44 -0
  26. package/storybook-static/assets/{Dialog-0w_W0UBz.js → Dialog-Cv_od09Q.js} +22 -22
  27. package/storybook-static/assets/Dialog.stories-CY8mr-2o.js +31 -0
  28. package/storybook-static/assets/Disclosure-BVz61VJq.js +32 -0
  29. package/storybook-static/assets/Disclosure-DzVnkjef.css +1 -0
  30. package/storybook-static/assets/Disclosure.stories-CufTvUiK.js +41 -0
  31. package/storybook-static/assets/DocsRenderer-JROSPFPF-BJw82UhU.js +2 -0
  32. package/storybook-static/assets/DropZone-DOvkWmBD.js +36 -0
  33. package/storybook-static/assets/{DropZone.stories-Bu49NSVJ.js → DropZone.stories-K1bqdB2U.js} +2 -2
  34. package/storybook-static/assets/DropdownMenu-Cx08nIaY.js +1 -0
  35. package/storybook-static/assets/{ExpandableActionPanel.stories-RVXBbnyj.js → ExpandableActionPanel.stories-BZ3P24ES.js} +2 -2
  36. package/storybook-static/assets/Flex-Brzvr0YX.js +3 -0
  37. package/storybook-static/assets/Flex-CVjyrD9i.js +61 -0
  38. package/storybook-static/assets/{Flex.stories-D_fFJrsW.js → Flex.stories-B9dkwuh5.js} +1 -1
  39. package/storybook-static/assets/{Grid-C4-fxCy0.js → Grid-DhASlspp.js} +1 -1
  40. package/storybook-static/assets/Grid-blnYLgOs.js +61 -0
  41. package/storybook-static/assets/{Grid.stories--x7HLm1q.js → Grid.stories-DafgjrQm.js} +1 -1
  42. package/storybook-static/assets/{ImageCropper.stories-C2u8bHWN.js → ImageCropper.stories-638pLg4D.js} +1 -1
  43. package/storybook-static/assets/ImageRenderer-C6DwGwQl.js +2 -0
  44. package/storybook-static/assets/{ImageRenderer.stories-CYRDsS3Z.js → ImageRenderer.stories-DJJiqQFU.js} +1 -1
  45. package/storybook-static/assets/{ImageView.stories-C0ykBKDk.js → ImageView.stories-DVeX-CzY.js} +1 -1
  46. package/storybook-static/assets/{ImageViewer.stories-BusMvSz_.js → ImageViewer.stories-NqiR5Eyj.js} +2 -2
  47. package/storybook-static/assets/{ImageViewerRuntime-ZP6H6hET.js → ImageViewerRuntime-C0uGYGQl.js} +2 -2
  48. package/storybook-static/assets/Input-4QsBT-dh.js +39 -0
  49. package/storybook-static/assets/Input-CjJUuLEX.js +3 -0
  50. package/storybook-static/assets/Input.stories-DX8FX7AI.js +38 -0
  51. package/storybook-static/assets/InputDateTime-C6cR1WP9.js +39 -0
  52. package/storybook-static/assets/InputDateTime.stories-DPK8Y5p2.js +35 -0
  53. package/storybook-static/assets/{InputFile-D-_aZBxg.js → InputFile-BwI_udQQ.js} +26 -26
  54. package/storybook-static/assets/InputFile.stories-BdWP2iBM.js +36 -0
  55. package/storybook-static/assets/InputFiles-CPY6AJQJ.js +1 -0
  56. package/storybook-static/assets/{InputFiles-B9PdmFK9.js → InputFiles-CfmNIDk_.js} +26 -26
  57. package/storybook-static/assets/InputFiles.stories-DnXD0hgD.js +33 -0
  58. package/storybook-static/assets/{InputImage-khPwoIhV.js → InputImage-CgjrjJiq.js} +26 -26
  59. package/storybook-static/assets/{InputImage.stories-CCa46Nzq.js → InputImage.stories-CFHzEXGv.js} +1 -1
  60. package/storybook-static/assets/LayoutPicker-BfwRb9HQ.js +66 -0
  61. package/storybook-static/assets/{LayoutPicker.stories-B1dO6RKC.js → LayoutPicker.stories-C9sMcU1k.js} +3 -3
  62. package/storybook-static/assets/Listbox-B2FoYInE.js +38 -0
  63. package/storybook-static/assets/Listbox.stories-BnGRDEMg.js +47 -0
  64. package/storybook-static/assets/{Modal-DXYu3gK_.js → Modal-Bd8v3vU8.js} +32 -32
  65. package/storybook-static/assets/Modal.stories-CmYJeAAz.js +180 -0
  66. package/storybook-static/assets/MultiSelect-BeRfLM-g.js +2 -0
  67. package/storybook-static/assets/MultiSelect-Bswj23vq.js +56 -0
  68. package/storybook-static/assets/MultiSelect.stories-iKlesibJ.js +29 -0
  69. package/storybook-static/assets/{NotificationsHost-BxAkGSYp.js → NotificationsHost-Cf0puFJk.js} +22 -22
  70. package/storybook-static/assets/NotificationsHost.stories-DX1niytc.js +25 -0
  71. package/storybook-static/assets/ODataMultiSelect-BvFXZlGZ.js +53 -0
  72. package/storybook-static/assets/ODataMultiSelect-CiZ3aEy3.js +1 -0
  73. package/storybook-static/assets/ODataMultiSelect.stories-BcRrzHnf.js +73 -0
  74. package/storybook-static/assets/ODataSelect-Bo0yPtod.js +1 -0
  75. package/storybook-static/assets/{ODataSelect-CzsSdlmh.js → ODataSelect-DgH5G-C_.js} +32 -32
  76. package/storybook-static/assets/ODataSelect.stories-DEOly20_.js +73 -0
  77. package/storybook-static/assets/ODataTreeMultiSelect-IKfvxL7p.js +17 -0
  78. package/storybook-static/assets/ODataTreeMultiSelect.stories-uPDVAyMu.js +28 -0
  79. package/storybook-static/assets/ODataTreeSelect-BujgjSkl.js +16 -0
  80. package/storybook-static/assets/ODataTreeSelect.stories-BzlUExoW.js +21 -0
  81. package/storybook-static/assets/{PeriodSelect-DIfJTfdB.js → PeriodSelect-BJIPDLq1.js} +31 -31
  82. package/storybook-static/assets/{PeriodSelect.stories-BAMIsSGE.js → PeriodSelect.stories-D12q6-YO.js} +1 -1
  83. package/storybook-static/assets/{Popover-6znIdvNB.js → Popover-D25DhaiJ.js} +29 -29
  84. package/storybook-static/assets/{Popover.stories-AXvTs-mK.js → Popover.stories-CF3zUe0j.js} +1 -1
  85. package/storybook-static/assets/{PresetRangeDateInput-oSisVT1i.js → PresetRangeDateInput-CDw6HtWA.js} +19 -19
  86. package/storybook-static/assets/PresetRangeDateInput.stories-BQZI6HOn.js +15 -0
  87. package/storybook-static/assets/{RadioButton-BGlASGNa.js → RadioButton-BgEBxZJi.js} +27 -27
  88. package/storybook-static/assets/{RadioButton.stories-COLQdM1e.js → RadioButton.stories-BkFGEJXb.js} +2 -2
  89. package/storybook-static/assets/{RadioGroup-C2AUzTxU.js → RadioGroup-C-K84fCC.js} +26 -26
  90. package/storybook-static/assets/RadioGroup-Jq-lWcgE.js +1 -0
  91. package/storybook-static/assets/RadioGroup.stories-DyuW8DaF.js +42 -0
  92. package/storybook-static/assets/Select-BrRZA3Up.js +12 -0
  93. package/storybook-static/assets/{Select-CfXC3kDv.js → Select-ChYAdfkx.js} +35 -35
  94. package/storybook-static/assets/Select.stories-D-onxXmT.js +46 -0
  95. package/storybook-static/assets/SelectOptionContent-Cwd0p14r.js +1 -0
  96. package/storybook-static/assets/SerializableSelect-CcBh49iS.js +4 -0
  97. package/storybook-static/assets/{SerializableSelect-C7WrrCz1.js → SerializableSelect-D9BlCZ4x.js} +32 -32
  98. package/storybook-static/assets/SerializableSelect.stories-BXMFTNDx.js +43 -0
  99. package/storybook-static/assets/SingleDateTimeInput-cHIGelrz.js +53 -0
  100. package/storybook-static/assets/SingleDateTimeInput.stories-BdPyEPUr.js +78 -0
  101. package/storybook-static/assets/Slider-Cb_nb9P2.js +63 -0
  102. package/storybook-static/assets/Slider.stories-CoKGxwRT.js +77 -0
  103. package/storybook-static/assets/SliderInput-DyxDl1Mo.js +58 -0
  104. package/storybook-static/assets/{SliderInput.stories-BIqyZKyF.js → SliderInput.stories-DgbBm38V.js} +1 -1
  105. package/storybook-static/assets/Sortable-DC3bPcbn.js +72 -0
  106. package/storybook-static/assets/{Sortable.stories-CULILQbA.js → Sortable.stories-B_IhqW5F.js} +1 -1
  107. package/storybook-static/assets/{Splitter-Q7gof-78.js → Splitter-CGw6p5-z.js} +39 -39
  108. package/storybook-static/assets/Splitter.stories-DNlOAJY9.js +22 -0
  109. package/storybook-static/assets/{StateSelect-DClswKAK.js → StateSelect-cU_bLcpU.js} +25 -25
  110. package/storybook-static/assets/{StateSelect.stories-CoUBhZeT.js → StateSelect.stories-D0Z05ltu.js} +2 -2
  111. package/storybook-static/assets/Switch-C-3mRPBf.js +36 -0
  112. package/storybook-static/assets/Switch.stories-Csqx8bKj.js +26 -0
  113. package/storybook-static/assets/Table-4x8XIQpa.js +197 -0
  114. package/storybook-static/assets/{Table.stories-DyksB7KO.js → Table.stories-DLsx7_5W.js} +1 -1
  115. package/storybook-static/assets/Tabs-BYxa2MdO.js +72 -0
  116. package/storybook-static/assets/{Tabs.stories-BtRnStqw.js → Tabs.stories-Bs2uE5X2.js} +1 -1
  117. package/storybook-static/assets/TagInput.stories-8_Uk7z4a.js +18 -0
  118. package/storybook-static/assets/{Textarea-B52Vh_xt.js → Textarea-C9do4TkE.js} +26 -26
  119. package/storybook-static/assets/Textarea.stories-khYPBnjL.js +27 -0
  120. package/storybook-static/assets/TimePanel-DAQw6BvJ.js +1 -0
  121. package/storybook-static/assets/{TimePanel.stories-06TyPpQJ.js → TimePanel.stories-D8uZoVpL.js} +1 -1
  122. package/storybook-static/assets/{Toggle-CkcafyNI.js → Toggle-C4pQIuyy.js} +26 -26
  123. package/storybook-static/assets/Toggle.stories-DhF17j-W.js +30 -0
  124. package/storybook-static/assets/TreeMultiSelect-B6_6vRxE.js +15 -0
  125. package/storybook-static/assets/TreeMultiSelect-Drs35VVA.js +1 -0
  126. package/storybook-static/assets/TreeMultiSelect.stories-D6YSwiei.js +31 -0
  127. package/storybook-static/assets/{TreePickerBase-xKDnzQR_.js → TreePickerBase-DCognf3p.js} +2 -2
  128. package/storybook-static/assets/TreeSelect-CAAu7_OB.js +15 -0
  129. package/storybook-static/assets/TreeSelect-DxdqUuJ6.js +1 -0
  130. package/storybook-static/assets/TreeSelect.stories-BqF-qAB9.js +16 -0
  131. package/storybook-static/assets/TreeTable-TKNA-uIN.js +175 -0
  132. package/storybook-static/assets/{TreeTable.stories-DCLa6mJm.js → TreeTable.stories-yeAD18Zw.js} +2 -2
  133. package/storybook-static/assets/WithTooltip-7X4HQR7L-CxfB6hD8.js +9 -0
  134. package/storybook-static/assets/{base-table-BeZYmflf.js → base-table-ByITBr1J.js} +1 -1
  135. package/storybook-static/assets/blocks-0RiOsxIK.js +285 -0
  136. package/storybook-static/assets/button-B1ZGqKIL.js +1 -0
  137. package/storybook-static/assets/{check-box-9iBlFoJu.js → check-box-NnScD6BH.js} +1 -1
  138. package/storybook-static/assets/chunk-3LY4VQVK-DprWWQ6L.js +6 -0
  139. package/storybook-static/assets/{chunk-LITCR56V-DpYf_5IK.js → chunk-LITCR56V-CsoWERay.js} +2 -2
  140. package/storybook-static/assets/contextMenu-B7OY9AUe.js +2 -0
  141. package/storybook-static/assets/error-B-BZQLMk.js +1 -0
  142. package/storybook-static/assets/flex-DjZzX5cW.js +1 -0
  143. package/storybook-static/assets/floating-ui.react-6aWiJn-w.js +1 -0
  144. package/storybook-static/assets/formatter-L2YTDE3Q-Bhbxmhyr.js +1 -0
  145. package/storybook-static/assets/{formatters-DEfKcq5B.js → formatters-3Nbt_zpw.js} +1 -1
  146. package/storybook-static/assets/grid-CXx-3eN4.js +1 -0
  147. package/storybook-static/assets/{hooks-DlpluSIv.js → hooks-cOC2wx_S.js} +1 -1
  148. package/storybook-static/assets/{iframe-YecJO4uV.js → iframe-GmIo3IOR.js} +199 -197
  149. package/storybook-static/assets/input-BZoBzauA.js +1 -0
  150. package/storybook-static/assets/{mdx-react-shim-B6MYoAcj.js → mdx-react-shim-DQ40dZsI.js} +1 -1
  151. package/storybook-static/assets/media-CaNRzUMK.js +1 -0
  152. package/storybook-static/assets/misc-DSZ85X5k.js +5 -0
  153. package/storybook-static/assets/notifications-dwTsOfAG.js +1 -0
  154. package/storybook-static/assets/odata-BXYPW5TY.js +1 -0
  155. package/storybook-static/assets/odata-service-CdmjwNQZ.js +1 -0
  156. package/storybook-static/assets/{odataStoryFixtures-DePPyMUW.js → odataStoryFixtures-qHROzCso.js} +1 -1
  157. package/storybook-static/assets/picker-Ly9fNo5I.js +2 -0
  158. package/storybook-static/assets/popover-hHS3Q1Eb.js +2 -0
  159. package/storybook-static/assets/preset-select-DSUOhzZJ.js +5 -0
  160. package/storybook-static/assets/{react-18-BAqYtx7S.js → react-18-C8dLShAR.js} +1 -1
  161. package/storybook-static/assets/react-CufbfMTd.js +9 -0
  162. package/storybook-static/assets/react-dom-B1EOrd4K.js +1 -0
  163. package/storybook-static/assets/select-CjW1dQXg.js +1 -0
  164. package/storybook-static/assets/slider-CKtA1jkD.js +2 -0
  165. package/storybook-static/assets/sortable-C7z1FJM0.js +1 -0
  166. package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-yen8I1rd.js → syntaxhighlighter-RTCFPKCB-DUS1jW_J.js} +2 -2
  167. package/storybook-static/assets/text-Cw7Vu082.js +4 -0
  168. package/storybook-static/assets/theming-Ce0TAFtT.js +39 -0
  169. package/storybook-static/assets/ui-Dlg5NgOB.js +1 -0
  170. package/storybook-static/assets/useODataSelectBase-BE8nJXZo.js +1 -0
  171. package/storybook-static/assets/useODataTreeData-Dli9NQVP.js +1 -0
  172. package/storybook-static/assets/utils-B73_kE2n.js +1 -0
  173. package/storybook-static/iframe.html +2 -2
  174. package/storybook-static/index.html +16 -6
  175. package/storybook-static/index.json +1 -1
  176. package/storybook-static/project.json +1 -1
  177. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +352 -0
  178. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js.LEGAL.txt +31 -0
  179. package/storybook-static/sb-addons/vitest-4/manager-bundle.js +3 -0
  180. package/storybook-static/assets/Badge-BF_YR6xV.js +0 -139
  181. package/storybook-static/assets/Badge.stories-BFSvBuGf.js +0 -51
  182. package/storybook-static/assets/Button-DYvP70oK.js +0 -12
  183. package/storybook-static/assets/Button.stories-BiQzoIrP.js +0 -75
  184. package/storybook-static/assets/CheckBox.stories-C8SMoVuj.js +0 -60
  185. package/storybook-static/assets/Color-KMSTOMOX-C5d1F69R.js +0 -1
  186. package/storybook-static/assets/ContextMenu-BWOMwM1T.js +0 -40
  187. package/storybook-static/assets/DateInput-BKr2L_zl.js +0 -40
  188. package/storybook-static/assets/DateInput-BbkCHe27.js +0 -1
  189. package/storybook-static/assets/DateRangePresetSelect-5OVfqIc_.js +0 -30
  190. package/storybook-static/assets/DateRangePresetSelect-BH9oi-dO.js +0 -3
  191. package/storybook-static/assets/DateRangePresetSelect.stories-C2f4Itxx.js +0 -11
  192. package/storybook-static/assets/Detail-DNjE_8Oj.js +0 -40
  193. package/storybook-static/assets/Detail.stories-IufkpH_4.js +0 -44
  194. package/storybook-static/assets/Dialog.stories-_67SGh82.js +0 -31
  195. package/storybook-static/assets/Disclosure--JVKZyWJ.js +0 -32
  196. package/storybook-static/assets/Disclosure-CCmAxXkT.css +0 -1
  197. package/storybook-static/assets/Disclosure.stories-Th8T0PUj.js +0 -41
  198. package/storybook-static/assets/DocsRenderer-JROSPFPF-DLwDf2Zo.js +0 -2
  199. package/storybook-static/assets/DropZone-BzPiDQeZ.js +0 -36
  200. package/storybook-static/assets/DropdownMenu-Bcrg1qHr.js +0 -1
  201. package/storybook-static/assets/Flex-CXJVQ7iV.js +0 -3
  202. package/storybook-static/assets/Flex-GGgh6HSs.js +0 -61
  203. package/storybook-static/assets/Grid-vh3IGIQd.js +0 -61
  204. package/storybook-static/assets/ImageRenderer-mEqm-Dqi.js +0 -2
  205. package/storybook-static/assets/Input-C-oHXpFa.js +0 -39
  206. package/storybook-static/assets/Input-VtBvr4ox.js +0 -3
  207. package/storybook-static/assets/Input.stories-DjNJP6jZ.js +0 -38
  208. package/storybook-static/assets/InputDateTime-B4QhXUqG.js +0 -39
  209. package/storybook-static/assets/InputDateTime.stories-DQD1hY4X.js +0 -35
  210. package/storybook-static/assets/InputFile.stories-CSC1SCs1.js +0 -36
  211. package/storybook-static/assets/InputFiles-Ds1zu7US.js +0 -1
  212. package/storybook-static/assets/InputFiles.stories-C-bGspU1.js +0 -33
  213. package/storybook-static/assets/LayoutPicker-BAAa_g3x.js +0 -66
  214. package/storybook-static/assets/Listbox-C4HBbYNr.js +0 -38
  215. package/storybook-static/assets/Listbox.stories-BwJ6G_Mg.js +0 -47
  216. package/storybook-static/assets/Modal.stories-BfQSWo-S.js +0 -180
  217. package/storybook-static/assets/MultiSelect-CEbf7bLL.js +0 -56
  218. package/storybook-static/assets/MultiSelect-ZiS4jg7j.js +0 -2
  219. package/storybook-static/assets/MultiSelect.stories-OSUoI8LD.js +0 -29
  220. package/storybook-static/assets/NotificationsHost.stories-DeTweOqX.js +0 -25
  221. package/storybook-static/assets/ODataMultiSelect-C_BdWtjv.js +0 -1
  222. package/storybook-static/assets/ODataMultiSelect-DOtG5b5p.js +0 -53
  223. package/storybook-static/assets/ODataMultiSelect.stories-DZgOPx8i.js +0 -73
  224. package/storybook-static/assets/ODataSelect-BK-HaXVe.js +0 -1
  225. package/storybook-static/assets/ODataSelect.stories-4fGnGP41.js +0 -73
  226. package/storybook-static/assets/ODataTreeMultiSelect-BBVM-8ki.js +0 -17
  227. package/storybook-static/assets/ODataTreeMultiSelect.stories-CzufPwpi.js +0 -28
  228. package/storybook-static/assets/ODataTreeSelect-DGwHzeKD.js +0 -16
  229. package/storybook-static/assets/ODataTreeSelect.stories-jkE8YwLl.js +0 -21
  230. package/storybook-static/assets/PresetRangeDateInput.stories-CEu1DDCF.js +0 -15
  231. package/storybook-static/assets/RadioGroup-Qfnk8dQO.js +0 -1
  232. package/storybook-static/assets/RadioGroup.stories-C8ddz6t6.js +0 -42
  233. package/storybook-static/assets/Select-BOgkP515.js +0 -12
  234. package/storybook-static/assets/Select.stories-ByNbkZdw.js +0 -46
  235. package/storybook-static/assets/SelectOptionContent-C3tgB8Dy.js +0 -1
  236. package/storybook-static/assets/SerializableSelect-BuXvepIG.js +0 -4
  237. package/storybook-static/assets/SerializableSelect.stories-B1mK7D6g.js +0 -43
  238. package/storybook-static/assets/SingleDateTimeInput-BkkBQM0V.js +0 -53
  239. package/storybook-static/assets/SingleDateTimeInput.stories-DCnQnNLe.js +0 -78
  240. package/storybook-static/assets/Slider-Bi-_w_Lt.js +0 -63
  241. package/storybook-static/assets/Slider.stories-BZJ1spgB.js +0 -77
  242. package/storybook-static/assets/SliderInput-CCP08d7j.js +0 -58
  243. package/storybook-static/assets/Sortable-CrA3MIiN.js +0 -72
  244. package/storybook-static/assets/Splitter.stories-DSkP_EnV.js +0 -22
  245. package/storybook-static/assets/Switch-D3d-7utL.js +0 -36
  246. package/storybook-static/assets/Switch.stories-CBiv810D.js +0 -26
  247. package/storybook-static/assets/Table-BBWi4z9z.js +0 -197
  248. package/storybook-static/assets/Tabs-BTI_vnhE.js +0 -72
  249. package/storybook-static/assets/TagInput.stories-Bb__MtM6.js +0 -18
  250. package/storybook-static/assets/Textarea.stories-DvJ7sb9D.js +0 -27
  251. package/storybook-static/assets/TimePanel-B5xztB0K.js +0 -1
  252. package/storybook-static/assets/Toggle.stories-BTUFEVjs.js +0 -30
  253. package/storybook-static/assets/TreeMultiSelect-CMrKE4N1.js +0 -1
  254. package/storybook-static/assets/TreeMultiSelect-CoQ-vqxS.js +0 -15
  255. package/storybook-static/assets/TreeMultiSelect.stories-Dc1IZAee.js +0 -31
  256. package/storybook-static/assets/TreeSelect-BLgkcb_I.js +0 -1
  257. package/storybook-static/assets/TreeSelect-Bd_WmDmc.js +0 -15
  258. package/storybook-static/assets/TreeSelect.stories-N-FbNe6W.js +0 -16
  259. package/storybook-static/assets/TreeTable-dwNY6Pon.js +0 -175
  260. package/storybook-static/assets/WithTooltip-7X4HQR7L-D2JhGs1w.js +0 -9
  261. package/storybook-static/assets/blocks-D8vTJCXn.js +0 -285
  262. package/storybook-static/assets/button-Cz3fiO2B.js +0 -1
  263. package/storybook-static/assets/chunk-3LY4VQVK-CB9E5tjQ.js +0 -6
  264. package/storybook-static/assets/contextMenu-BzZSIfMh.js +0 -2
  265. package/storybook-static/assets/error-DI-le3_4.js +0 -1
  266. package/storybook-static/assets/flex-BriuFrFs.js +0 -1
  267. package/storybook-static/assets/floating-ui.react-CBVzHb-E.js +0 -1
  268. package/storybook-static/assets/formatter-L2YTDE3Q-BQlCOI4x.js +0 -1
  269. package/storybook-static/assets/grid-Dtmb5H_R.js +0 -1
  270. package/storybook-static/assets/input-CVG4hDFt.js +0 -1
  271. package/storybook-static/assets/jsx-runtime-BBQGix-2.js +0 -1
  272. package/storybook-static/assets/lucide-react-DoqvsuDx.js +0 -1
  273. package/storybook-static/assets/media-dT-v0KyQ.js +0 -1
  274. package/storybook-static/assets/misc-B81k0Tx5.js +0 -5
  275. package/storybook-static/assets/notifications-CAn9BB3F.js +0 -1
  276. package/storybook-static/assets/odata-CCAAVsLr.js +0 -1
  277. package/storybook-static/assets/odata-service-D0evRTVS.js +0 -1
  278. package/storybook-static/assets/picker-Cs_HmTIT.js +0 -2
  279. package/storybook-static/assets/popover-CwLg1nVy.js +0 -2
  280. package/storybook-static/assets/preset-select-LcK3ak1H.js +0 -5
  281. package/storybook-static/assets/react-DqGAnUZt.js +0 -9
  282. package/storybook-static/assets/react-dom-Dp-mf7b2.js +0 -1
  283. package/storybook-static/assets/select-D1j8twIv.js +0 -1
  284. package/storybook-static/assets/slider-BUne_904.js +0 -2
  285. package/storybook-static/assets/sortable-BSyQxNy_.js +0 -1
  286. package/storybook-static/assets/text-CQF6O5fh.js +0 -4
  287. package/storybook-static/assets/theming-DyCFqSDn.js +0 -39
  288. package/storybook-static/assets/ui-imSUUVzJ.js +0 -1
  289. package/storybook-static/assets/useODataSelectBase-C9E-wcFt.js +0 -1
  290. package/storybook-static/assets/useODataTreeData-CcHumE5U.js +0 -1
  291. package/storybook-static/assets/utils-Bnd9AQDU.js +0 -1
  292. /package/storybook-static/sb-addons/{a11y-2 → a11y-3}/manager-bundle.js +0 -0
  293. /package/storybook-static/sb-addons/{docs-1 → docs-2}/manager-bundle.js +0 -0
@@ -1,12 +1,12 @@
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-D8vTJCXn.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B6MYoAcj.js";import{Controlled as p,Disabled as m,LabelAfter as h,n as g,t as _}from"./Toggle.stories-BTUFEVjs.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:`Toggle`}),`
3
- `,(0,b.jsx)(i,{children:`Переключаемый булев контрол для локальных режимов и простых опций`}),`
4
- `,(0,b.jsx)(o.p,{children:`Toggle уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{Controlled as p,Disabled as m,LabelAfter as h,n as g,t as _}from"./Toggle.stories-DhF17j-W.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)(o,{of:_,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,b.jsx)(l,{children:`Toggle`}),`
3
+ `,(0,b.jsx)(a,{children:`Переключаемый булев контрол для локальных режимов и простых опций`}),`
4
+ `,(0,b.jsx)(t.p,{children:`Toggle уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
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";
6
+ `,(0,b.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,b.jsx)(d,{}),`
8
+ `,(0,b.jsx)(r,{of:p}),`
9
+ `,(0,b.jsx)(t.pre,{children:(0,b.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
10
10
 
11
11
  import { Toggle } from "@/shared/ui";
12
12
 
@@ -16,22 +16,22 @@ export function Example() {
16
16
  return <Toggle label="Режим просмотра" value={enabled} onChange={setEnabled} />;
17
17
  }
18
18
  `})}),`
19
- `,(0,b.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
- `,(0,b.jsxs)(o.ul,{children:[`
21
- `,(0,b.jsx)(o.li,{children:`Если состояние должно жить во внешней форме или модели, ориентируйтесь на контролируемый режим из документации.`}),`
22
- `,(0,b.jsx)(o.li,{children:`Заблокированное состояние лучше проверять отдельно, чтобы убедиться, что визуально и поведенчески оно остается понятным.`}),`
19
+ `,(0,b.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
+ `,(0,b.jsxs)(t.ul,{children:[`
21
+ `,(0,b.jsx)(t.li,{children:`Если состояние должно жить во внешней форме или модели, ориентируйтесь на контролируемый режим из документации.`}),`
22
+ `,(0,b.jsx)(t.li,{children:`Заблокированное состояние лучше проверять отдельно, чтобы убедиться, что визуально и поведенчески оно остается понятным.`}),`
23
23
  `]}),`
24
- `,(0,b.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
25
- `,(0,b.jsx)(o.h3,{id:`компонент-работает-в-контролируемом-режиме-когда-состояние-хранится-во-внешнем-компоненте`,children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте`}),`
26
- `,(0,b.jsx)(o.p,{children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте.`}),`
27
- `,(0,b.jsx)(l,{of:p}),`
28
- `,(0,b.jsx)(o.h3,{id:`размещение-подписи-после-контрола`,children:`Размещение подписи после контрола`}),`
29
- `,(0,b.jsx)(o.p,{children:`Размещение подписи после контрола.`}),`
30
- `,(0,b.jsx)(l,{of:h}),`
31
- `,(0,b.jsx)(o.h3,{id:`проверка-поведения-в-заблокированном-состоянии`,children:`Проверка поведения в заблокированном состоянии`}),`
32
- `,(0,b.jsx)(o.p,{children:`Проверка поведения в заблокированном состоянии.`}),`
33
- `,(0,b.jsx)(l,{of:m}),`
34
- `,(0,b.jsx)(o.h2,{id:`api`,children:`API`}),`
35
- `,(0,b.jsx)(s,{of:_}),`
36
- `,(0,b.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
37
- `,(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};
24
+ `,(0,b.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
25
+ `,(0,b.jsx)(t.h3,{id:`компонент-работает-в-контролируемом-режиме-когда-состояние-хранится-во-внешнем-компоненте`,children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте`}),`
26
+ `,(0,b.jsx)(t.p,{children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте.`}),`
27
+ `,(0,b.jsx)(u,{of:p}),`
28
+ `,(0,b.jsx)(t.h3,{id:`размещение-подписи-после-контрола`,children:`Размещение подписи после контрола`}),`
29
+ `,(0,b.jsx)(t.p,{children:`Размещение подписи после контрола.`}),`
30
+ `,(0,b.jsx)(u,{of:h}),`
31
+ `,(0,b.jsx)(t.h3,{id:`проверка-поведения-в-заблокированном-состоянии`,children:`Проверка поведения в заблокированном состоянии`}),`
32
+ `,(0,b.jsx)(t.p,{children:`Проверка поведения в заблокированном состоянии.`}),`
33
+ `,(0,b.jsx)(u,{of:m}),`
34
+ `,(0,b.jsx)(t.h2,{id:`api`,children:`API`}),`
35
+ `,(0,b.jsx)(c,{of:_}),`
36
+ `,(0,b.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
37
+ `,(0,b.jsx)(i,{includePrimary:!1})]})}function y(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,b.jsx)(t,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=t(),f(),s(),g()}))();export{y as default};
@@ -0,0 +1,30 @@
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{a,i as o}from"./utils-B73_kE2n.js";import{n as s,t as c}from"./ui.module-wFHXkJzp.js";var l,u,d,f,p,m,h,g,_,v=n((()=>{l=`FFyoOs`,u=`zPYy7T`,d=`j6ek6R`,f=`HFTPXI`,p=`_0RK4xF`,m=`kDPnKt`,h=`DQHqws`,g=`nCQ9v4`,_={row:l,wrapper:u,input:d,track:f,thumb:p,unchecked:m,checked:h,option:g}}));function y({label:e,description:t,placeholder:n,disabled:r,size:i,className:o,onChange:c,value:l,id:u,checkedText:d=`ВКЛ`,uncheckedText:f=`ВЫКЛ`,labelPosition:p=`before`,...m}){let h=(0,b.useId)(),g=u??h,v=t?`${g}-description`:void 0,y=e??n,S=!!l,C=!y&&!m[`aria-label`]?`${f} / ${d}`:void 0,w=y?(0,x.jsx)(`label`,{htmlFor:g,className:s.uiLabel,children:y}):null;return(0,x.jsxs)(`div`,{className:a(s.uiElement,r&&s.disabled,i&&s.uiSizable,i&&s[i],o),"aria-disabled":r||void 0,children:[(0,x.jsxs)(`div`,{className:_.row,children:[p===`before`&&w,(0,x.jsxs)(`div`,{className:_.wrapper,children:[(0,x.jsx)(`input`,{...m,id:g,type:`checkbox`,role:`switch`,checked:S,disabled:r,"aria-checked":S,"aria-describedby":v,"aria-label":C,className:a(s.uiInputControl,_.input),onChange:e=>c?.(e.currentTarget.checked)}),(0,x.jsxs)(`div`,{className:_.track,"data-disabled":r||void 0,"aria-hidden":`true`,children:[(0,x.jsx)(`div`,{className:_.thumb}),(0,x.jsx)(`div`,{className:a(_.option,_.unchecked),children:f}),(0,x.jsx)(`div`,{className:a(_.option,_.checked),children:d})]})]}),p===`after`&&w]}),t&&(0,x.jsx)(`p`,{id:v,className:s.uiDescription,children:t})]})}var b,x,S=n((()=>{b=t(r(),1),o(),c(),v(),x=i(),y.__docgenInfo={description:`Переключаемая кнопка с сохранением активного состояния. Используется для локального выбора режима, фильтра или форматирования.`,methods:[],displayName:`Toggle`,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:``},checkedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВКЛ"`,computed:!1}},uncheckedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВЫКЛ"`,computed:!1}},labelPosition:{required:!1,tsType:{name:`union`,raw:`"before" | "after"`,elements:[{name:`literal`,value:`"before"`},{name:`literal`,value:`"after"`}]},description:``,defaultValue:{value:`"before"`,computed:!1}}},composes:[`Omit`]}})),C=e({Controlled:()=>D,Disabled:()=>k,LabelAfter:()=>O,__namedExportsOrder:()=>A,default:()=>E}),w,T,E,D,O,k,A,j=n((()=>{w=t(r(),1),S(),T=i(),E={title:`Shared/UI/Toggle`,component:y,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},value:{description:`Текущее значение переключателя.`,control:`boolean`},onChange:{description:`Вызывается при изменении значения.`,control:!1},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`]}}},D={render:e=>{let[t,n]=(0,w.useState)(e.value??!1);return(0,T.jsx)(y,{...e,value:t,onChange:n})},args:{label:`Режим синхронизации`,description:`Мгновенное переключение состояния.`,value:!1,checkedText:`ВКЛ`,uncheckedText:`ВЫКЛ`,labelPosition:`before`}},O={render:e=>{let[t,n]=(0,w.useState)(e.value??!0);return(0,T.jsx)(y,{...e,value:t,onChange:n})},args:{label:`Уведомления`,value:!0,labelPosition:`after`}},k={args:{label:`Недоступный переключатель`,value:!0,disabled:!0}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
2
+ render: args => {
3
+ const [value, setValue] = useState(args.value ?? false);
4
+ return <Toggle {...args} value={value} onChange={setValue} />;
5
+ },
6
+ args: {
7
+ label: "Режим синхронизации",
8
+ description: "Мгновенное переключение состояния.",
9
+ value: false,
10
+ checkedText: "ВКЛ",
11
+ uncheckedText: "ВЫКЛ",
12
+ labelPosition: "before"
13
+ }
14
+ }`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
15
+ render: args => {
16
+ const [value, setValue] = useState(args.value ?? true);
17
+ return <Toggle {...args} value={value} onChange={setValue} />;
18
+ },
19
+ args: {
20
+ label: "Уведомления",
21
+ value: true,
22
+ labelPosition: "after"
23
+ }
24
+ }`,...O.parameters?.docs?.source}}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
25
+ args: {
26
+ label: "Недоступный переключатель",
27
+ value: true,
28
+ disabled: true
29
+ }
30
+ }`,...k.parameters?.docs?.source}}},A=[`Controlled`,`LabelAfter`,`Disabled`]}));j();export{D as Controlled,k as Disabled,O as LabelAfter,A as __namedExportsOrder,E as default,j as n,C as t};
@@ -0,0 +1,15 @@
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{Basic as p,MixedSelection as m,ParentCompression as h,n as g,t as _}from"./TreeMultiSelect.stories-D6YSwiei.js";function v(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o,{of:_,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,b.jsx)(l,{children:`TreeMultiSelect`}),`
3
+ `,(0,b.jsx)(a,{children:`Мультивыбор узлов дерева с компрессией subtree в parent`}),`
4
+ `,(0,b.jsxs)(t.p,{children:[(0,b.jsx)(t.code,{children:`TreeMultiSelect`}),` хранит наружу не “все листья”, а канонизированный frontier по уровням дерева.`]}),`
5
+ `,(0,b.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
6
+ `,(0,b.jsx)(d,{}),`
7
+ `,(0,b.jsx)(r,{of:p}),`
8
+ `,(0,b.jsx)(t.h2,{id:`сценарии`,children:`Сценарии`}),`
9
+ `,(0,b.jsx)(u,{of:p}),`
10
+ `,(0,b.jsx)(u,{of:h}),`
11
+ `,(0,b.jsx)(u,{of:m}),`
12
+ `,(0,b.jsx)(t.h2,{id:`api`,children:`API`}),`
13
+ `,(0,b.jsx)(c,{of:_}),`
14
+ `,(0,b.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
15
+ `,(0,b.jsx)(i,{includePrimary:!1})]})}function y(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,b.jsx)(t,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=t(),f(),s(),g()}))();export{y as default};
@@ -0,0 +1 @@
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{pn as n,t as r}from"./iframe-GmIo3IOR.js";import{a as i,t as a}from"./picker-Ly9fNo5I.js";import{i as o,n as s,r as c,t as l}from"./MultiSelect-BeRfLM-g.js";import{n as u,t as d}from"./ODataMultiSelect-CiZ3aEy3.js";import{a as f,c as p,i as m,n as h,o as g,r as _,s as v,t as y,u as b}from"./TreePickerBase-DCognf3p.js";var x,S,C,w=t((()=>{x=e(n(),1),u(),S=r(),C=({item:e,values:t,onChange:n,width:r=15})=>{let[i,a]=(0,x.useState)({}),o=t??i,s=`calc(${r}em + var(--width-add))`,c=(0,x.useCallback)(r=>{let i={...o,[e.id]:r};t||a(i),n?.(i)},[e.id,n,o,t]);return(0,S.jsx)(`div`,{style:{maxWidth:s,minWidth:s},children:(0,S.jsx)(d,{odata:e.odata,segment:e.segment,model:e.model,dependencies:o,value:o[e.id],onChange:c})})},C.__docgenInfo={description:``,methods:[],displayName:`ODataDependentSegmentMultiSelect`,props:{width:{defaultValue:{value:`15`,computed:!1},required:!1}}}})),T=t((()=>{n(),r()}));function E(e,t){return e[t]}function D(e,t,n){let r=e[t];if(typeof r==`string`)return r;let i=E(e,n);return typeof i==`string`?i:String(i)}function O({label:e,description:t,disabled:n,placeholder:r,size:i,options:a,value:o,onChange:s,optionKey:c,optionLabel:u,renderCode:d}){let f=a.map(e=>({key:String(E(e,c)),text:D(e,u,c)})),p=new Set((o??[]).map(e=>String(e))),m=f.filter(e=>p.has(e.key));return(0,k.jsx)(l,{label:e,description:t,disabled:n,placeholder:r,size:i,items:f,codeKey:`key`,textKey:`text`,hideCode:d?void 0:!0,value:m,onChange:e=>s(e.map(e=>e.key))})}var k,A=t((()=>{s(),k=r(),O.__docgenInfo={description:``,methods:[],displayName:`SerializableMultiSelect`,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:``},options:{required:!0,tsType:{name:`unknown`},description:``},optionKey:{required:!0,tsType:{name:`TOptionKey`},description:``},optionLabel:{required:!0,tsType:{name:`TOptionLabel`},description:``},renderCode:{required:!1,tsType:{name:`literal`,value:`true`},description:``}}}})),j=t((()=>{s(),o(),T(),w(),u(),A()})),M=t((()=>{j()}));function N(e,t){if(e.size!==0){if(e.size===1){let n=t.nodeById.get([...e][0]);return n?n.label:void 0}return`${e.size} элементов`}}function P(e,t,n){let r=p(e,n),i=p(t,n);return r.size===i.size&&[...r].every(e=>i.has(e))}function F({label:e,description:t,disabled:n,placeholder:r=`Выберите значения`,size:a,nodes:o,value:s,onChange:l,query:u,defaultQuery:d,onQuery:h,isLoading:g,error:x,optionsLayout:S=`tree`}){let[C,w]=(0,I.useState)(!1),T=(0,I.useMemo)(()=>_(o),[o]),{draftValue:E,setDraftValue:D,prepareOpen:O}=i({value:s,open:C,onCommit:l,isEqual:(e,t)=>P(e,t,T)}),k=C?E:s,A=(0,I.useMemo)(()=>p(k,T),[k,T]),j=(0,I.useMemo)(()=>f(A,T),[A,T]),M=(0,I.useMemo)(()=>N(A,T),[A,T]);return(0,L.jsx)(y,{label:e,description:t,disabled:n,placeholder:r,size:a,nodes:o,selectedIds:j.selectedIds,partialIds:j.partialIds,selectionMode:`multi`,optionsLayout:S,open:C,onOpenChange:e=>{e&&!C&&O(),w(e)},bulkActions:{onSelectAll:()=>{D(b(m(T),T))},onDeselectAll:()=>D({})},triggerMode:`search`,selectedSummary:M?(0,L.jsx)(c,{value:M}):void 0,query:u,defaultQuery:d,onQuery:h,onNodeActivate:e=>{D(t=>v(t,e.id,T))},onClearSelection:()=>{D({}),C||l({})},isLoading:g,error:x})}var I,L,R=t((()=>{I=e(n(),1),M(),a(),g(),h(),L=r(),F.__docgenInfo={description:``,methods:[],displayName:`TreeMultiSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значения"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Определяет обычное раскрываемое дерево или полностью открытый адаптивный набор колонок.`,defaultValue:{value:`"tree"`,computed:!1}}},composes:[`Omit`]}}));export{R as n,F as t};
@@ -0,0 +1,31 @@
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{n as a,t as o}from"./TreeMultiSelect-Drs35VVA.js";import{n as s,t as c}from"./treeStoryFixtures-Cd984L7t.js";var l=e({BalancedColumns:()=>v,Basic:()=>h,MixedSelection:()=>_,ParentCompression:()=>g,RightEdgeColumns:()=>y,__namedExportsOrder:()=>b,default:()=>m});function u({initialValue:e={},label:t=`TreeMultiSelect`,description:n,optionsLayout:r=`tree`,nodes:i=c}){let[a,s]=(0,d.useState)(e);return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{label:t,description:n,nodes:i,value:a,onChange:s,optionsLayout:r}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(a)]})]})}var d,f,p,m,h,g,_,v,y,b,x=n((()=>{d=t(r(),1),a(),s(),f=i(),p=Array.from({length:66},(e,t)=>{let n=String(t+1).padStart(2,`0`),r=`D${n}`;return{id:`DIVISION:${r}`,codeKey:`DIVISION`,value:r,label:`Дивизион ${n}`,code:r,searchText:`${r} Дивизион ${n}`}}),m={title:`Shared/UI/TreeMultiSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узлов`,description:`Мультивыбор с канонизацией subtree в ближайший parent.`,nodes:c,value:{},onChange:()=>{}},argTypes:{nodes:{control:!1},value:{control:!1},onChange:{control:!1}}},h={render:()=>(0,f.jsx)(u,{initialValue:{OWNER:[`P0001`]}})},g={render:()=>(0,f.jsx)(u,{label:`Компрессия parent`,description:`Когда выбран весь subtree, наружу может уйти только родительский узел.`,initialValue:{REGION:[`R01`]}})},_={render:()=>(0,f.jsx)(u,{label:`Смешанный выбор`,description:`Пример mixed frontier по соседним уровням.`,initialValue:{BRANCH:[`B0101`],OWNER:[`P0004`]}})},v={render:()=>(0,f.jsx)(u,{label:`Все уровни в столбцах`,description:`Popover подбирает число столбцов по количеству опций и доступному viewport.`,optionsLayout:`columns`,initialValue:{BRANCH:[`B0101`]}})},y={render:()=>(0,f.jsx)(`div`,{style:{display:`flex`,minHeight:`calc(100vh - 32px)`,alignItems:`center`,justifyContent:`flex-end`},children:(0,f.jsx)(`div`,{style:{width:260},children:(0,f.jsx)(u,{label:`Контрол у правой границы`,description:`Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.`,optionsLayout:`columns`,nodes:p})})})},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
2
+ render: () => <StatefulTreeMultiSelect initialValue={{
3
+ OWNER: ["P0001"]
4
+ }} />
5
+ }`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
6
+ render: () => <StatefulTreeMultiSelect label="Компрессия parent" description="Когда выбран весь subtree, наружу может уйти только родительский узел." initialValue={{
7
+ REGION: ["R01"]
8
+ }} />
9
+ }`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
10
+ render: () => <StatefulTreeMultiSelect label="Смешанный выбор" description="Пример mixed frontier по соседним уровням." initialValue={{
11
+ BRANCH: ["B0101"],
12
+ OWNER: ["P0004"]
13
+ }} />
14
+ }`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
15
+ render: () => <StatefulTreeMultiSelect label="Все уровни в столбцах" description="Popover подбирает число столбцов по количеству опций и доступному viewport." optionsLayout="columns" initialValue={{
16
+ BRANCH: ["B0101"]
17
+ }} />
18
+ }`,...v.parameters?.docs?.source}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
19
+ render: () => <div style={{
20
+ display: "flex",
21
+ minHeight: "calc(100vh - 32px)",
22
+ alignItems: "center",
23
+ justifyContent: "flex-end"
24
+ }}>
25
+ <div style={{
26
+ width: 260
27
+ }}>
28
+ <StatefulTreeMultiSelect label="Контрол у правой границы" description="Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport." optionsLayout="columns" nodes={rightEdgeTreeNodes} />
29
+ </div>
30
+ </div>
31
+ }`,...y.parameters?.docs?.source}}},b=[`Basic`,`ParentCompression`,`MixedSelection`,`BalancedColumns`,`RightEdgeColumns`]}));x();export{v as BalancedColumns,h as Basic,_ as MixedSelection,g as ParentCompression,y as RightEdgeColumns,b as __namedExportsOrder,m as default,x as n,l as t};
@@ -1,4 +1,4 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-YecJO4uV.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-Bnd9AQDU.js";import{A as o,o as s,t as c,vt as l,wt as u}from"./lucide-react-DoqvsuDx.js";import{n as d,t as f}from"./ui.module-wFHXkJzp.js";import{t as p}from"./CheckBox-CS0rOTN7.js";import{a as m}from"./Input-VtBvr4ox.js";import{t as h}from"./input-CVG4hDFt.js";import{D as g,S as _,b as ee,g as te,l as ne,m as re,r as ie,s as ae,t as oe,v as se}from"./picker-Cs_HmTIT.js";import{n as v,t as y}from"./SelectOptionContent-C3tgB8Dy.js";import{t as b}from"./check-box-9iBlFoJu.js";function x(e,t){return`${e}::${t}`}function ce(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=0,s=(e,c)=>{t.set(e.id,e),n.set(e.id,c),i.set(e.id,o++),a.set(x(e.codeKey,e.value),e.id);let l=(e.children??[]).map(e=>e.id);r.set(e.id,l);for(let t of e.children??[])s(t,e.id)};for(let t of e)s(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a}}function le(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ue(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i){let i=t.nodeIdByCodeValue.get(x(r,e));i&&n.add(i)}return E(n,t)}function de(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={};for(let e of n){let n=t.nodeById.get(e);n&&(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value))}return r}function S(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function C(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function w(e,t,n){for(let r of[...e])C(r,t,n)&&e.delete(r)}function T(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length===0?!1:r.every(e=>T(e,t,n))}function E(e,t){let n=new Set(e);for(let e of[...n])S(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||r.every(e=>T(e,n,t))&&(w(n,e,t),n.add(e))}return n}function fe(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){e.delete(r);for(let t of k(n,n.childrenById.get(r)??[]))e.add(t);return!0}r=n.parentById.get(r)}return!1}function D(e,t,n){return t.has(e)?!0:S(e,n).some(e=>t.has(e))}function O(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>O(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function pe(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)O(r,e,t,n);return n}function k(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);return!r||r.disabled||o?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function A(e,t,n){let r=ue(e,n),i=e=>{if(D(e,r,n)){if(r.has(e)){r.delete(e);return}fe(r,e,n)&&i(e);return}w(r,e,n),r.add(e)},a=[...k(n,[t])],o=a.length>0&&a.every(e=>D(e,r,n));for(let e of a){let t=D(e,r,n);(o&&t||!o&&!t)&&i(e)}return de(E(r,n),n)}function j(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function me(e,t){let n=new Set;for(let r of e)j(r,t,n);return n}function M(e,t,n){let r=(e.children??[]).map(e=>M(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function he(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>M(e,n,r)).filter(e=>!!e),expandedIds:r}}function ge(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}var N=t((()=>{}));function P(e,t){return Number.isFinite(e)&&e>0?e:t}function _e({itemCount:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e)?e:0)),s=P(t,240),c=P(n,80),l=P(r,s+F*2),u=P(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-F*2))),f=Math.max(1,Math.min(c,u*.75)),p=Math.max(1,P(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-I+z)/234)),g=Math.max(1,Math.min(B,h,o||1)),_=1,ee=1/0;for(let e=1;e<=g;e+=1){let t=Math.ceil(o/e),n=Math.max(m,I+e*R+(e-1)*z),r=L+t*ve,i=n/d,a=r/f,s=o?(e*t-o)/o:0,c=Math.max(i,a)+.25*Math.abs(i-a)+.01*s+.04*(e-1);c<ee&&(ee=c,_=e)}let te=Math.ceil(o/_),ne=Math.max(m,I+_*R+(_-1)*z);return{columnCount:_,rowCount:te,width:Math.min(d,ne),minWidth:m,maxHeight:f}}var F,I,L,R,z,ve,B,V=t((()=>{F=8,I=16,L=48,R=224,z=10,ve=32,B=6})),ye,be,xe,Se,Ce,we,H,Te,Ee,U,De,Oe,ke,W,G,K,Ae,q,je,Me,J,Y,Ne,Pe,X,Fe=t((()=>{ye=`eMqOwq`,be=`JKstO-`,xe=`hKgr8e`,Se=`KjPZjd`,Ce=`_6EH37F`,we=`UBll8Q`,H=`-y3RZP`,Te=`ayLJ50`,Ee=`_2MFkGF`,U=`SWQUvb`,De=`o5NWnX`,Oe=`ibSd-S`,ke=`lXezvv`,W=`FMlLGX`,G=`d2Zt7U`,K=`_8PN4hs`,Ae=`_4JEoen`,q=`GS8eEC`,je=`T8gVno`,Me=`o6stdX`,J=`I5zvhe`,Y=`KQ0PBI`,Ne=`_7hAQQA`,Pe=`XeUHNc`,X={treeRow:ye,treeRowSelected:be,treeRowActive:xe,treeRowDisabled:Se,treeNodeButton:Ce,treePopupHeader:we,treeColumns:H,treeColumnRow:Te,treeColumnCheckBox:Ee,treeNodeOptionContent:U,treeIndent:De,treeExpander:Oe,treeExpanderPlaceholder:ke,treeExpanderIcon:W,treeExpanderIconExpanded:G,treeSelection:K,treeSelectionChecked:Ae,treeSelectionPartial:q,treeSelectionIcon:je,treeSummary:Me,inputWithOverlay:J,valueOverlay:Y,treeActions:Ne,treeClearButton:Pe}}));function Ie({node:e,level:t,highlight:n,hasChildren:r,isExpanded:a,selected:s,partial:c,selectionMode:d,optionsLayout:f=`tree`,onToggleExpand:m,onToggleSelection:h}){let g=f===`tree`;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:X.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),g&&r?(0,Z.jsx)(`button`,{type:`button`,className:X.treeExpander,onClick:e=>{e.stopPropagation(),m?.()},"aria-label":a?`Свернуть ветку`:`Развернуть ветку`,"data-ui":`tree-select-expander`,"data-action":a?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,Z.jsx)(l,{className:i(X.treeExpanderIcon,a&&X.treeExpanderIconExpanded)})}):g?(0,Z.jsx)(`span`,{className:X.treeExpanderPlaceholder,"aria-hidden":`true`}):null,d===`multi`&&f===`columns`?(0,Z.jsx)(`span`,{className:X.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,Z.jsx)(p,{value:s,indeterminate:c,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>h?.()})}):d===`multi`?(0,Z.jsx)(`span`,{className:i(X.treeSelection,s&&X.treeSelectionChecked,c&&X.treeSelectionPartial),"aria-hidden":`true`,children:s?(0,Z.jsx)(u,{className:X.treeSelectionIcon}):c?(0,Z.jsx)(o,{className:X.treeSelectionIcon}):null}):null,(0,Z.jsx)(`div`,{className:X.treeNodeOptionContent,children:(0,Z.jsx)(y,{label:e.label,code:e.code,highlight:n})})]})}var Z,Le=t((()=>{a(),c(),b(),v(),Fe(),Z=r(),Ie.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{Tt as n,j as r,n as i,pn as a,s as o,t as s,yt as c}from"./iframe-GmIo3IOR.js";import{a as l,i as u}from"./utils-B73_kE2n.js";import{n as d,t as f}from"./ui.module-wFHXkJzp.js";import{t as p}from"./CheckBox-BQhsynyB.js";import{a as m}from"./Input-CjJUuLEX.js";import{t as h}from"./input-BZoBzauA.js";import{D as g,S as _,b as ee,g as te,l as ne,m as re,r as ie,s as ae,t as oe,v as se}from"./picker-Ly9fNo5I.js";import{n as v,t as y}from"./SelectOptionContent-Cwd0p14r.js";import{t as b}from"./check-box-NnScD6BH.js";function x(e,t){return`${e}::${t}`}function ce(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=0,s=(e,c)=>{t.set(e.id,e),n.set(e.id,c),i.set(e.id,o++),a.set(x(e.codeKey,e.value),e.id);let l=(e.children??[]).map(e=>e.id);r.set(e.id,l);for(let t of e.children??[])s(t,e.id)};for(let t of e)s(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a}}function le(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ue(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i){let i=t.nodeIdByCodeValue.get(x(r,e));i&&n.add(i)}return E(n,t)}function de(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={};for(let e of n){let n=t.nodeById.get(e);n&&(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value))}return r}function S(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function C(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function w(e,t,n){for(let r of[...e])C(r,t,n)&&e.delete(r)}function T(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length===0?!1:r.every(e=>T(e,t,n))}function E(e,t){let n=new Set(e);for(let e of[...n])S(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||r.every(e=>T(e,n,t))&&(w(n,e,t),n.add(e))}return n}function fe(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){e.delete(r);for(let t of k(n,n.childrenById.get(r)??[]))e.add(t);return!0}r=n.parentById.get(r)}return!1}function D(e,t,n){return t.has(e)?!0:S(e,n).some(e=>t.has(e))}function O(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>O(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function pe(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)O(r,e,t,n);return n}function k(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);return!r||r.disabled||o?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function A(e,t,n){let r=ue(e,n),i=e=>{if(D(e,r,n)){if(r.has(e)){r.delete(e);return}fe(r,e,n)&&i(e);return}w(r,e,n),r.add(e)},a=[...k(n,[t])],o=a.length>0&&a.every(e=>D(e,r,n));for(let e of a){let t=D(e,r,n);(o&&t||!o&&!t)&&i(e)}return de(E(r,n),n)}function j(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function me(e,t){let n=new Set;for(let r of e)j(r,t,n);return n}function M(e,t,n){let r=(e.children??[]).map(e=>M(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function he(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>M(e,n,r)).filter(e=>!!e),expandedIds:r}}function ge(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}var N=t((()=>{}));function P(e,t){return Number.isFinite(e)&&e>0?e:t}function _e({itemCount:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e)?e:0)),s=P(t,240),c=P(n,80),l=P(r,s+F*2),u=P(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-F*2))),f=Math.max(1,Math.min(c,u*.75)),p=Math.max(1,P(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-I+z)/234)),g=Math.max(1,Math.min(B,h,o||1)),_=1,ee=1/0;for(let e=1;e<=g;e+=1){let t=Math.ceil(o/e),n=Math.max(m,I+e*R+(e-1)*z),r=L+t*ve,i=n/d,a=r/f,s=o?(e*t-o)/o:0,c=Math.max(i,a)+.25*Math.abs(i-a)+.01*s+.04*(e-1);c<ee&&(ee=c,_=e)}let te=Math.ceil(o/_),ne=Math.max(m,I+_*R+(_-1)*z);return{columnCount:_,rowCount:te,width:Math.min(d,ne),minWidth:m,maxHeight:f}}var F,I,L,R,z,ve,B,V=t((()=>{F=8,I=16,L=48,R=224,z=10,ve=32,B=6})),ye,be,xe,Se,Ce,we,H,Te,Ee,U,De,Oe,ke,W,G,K,Ae,q,je,Me,J,Y,Ne,Pe,X,Fe=t((()=>{ye=`eMqOwq`,be=`JKstO-`,xe=`hKgr8e`,Se=`KjPZjd`,Ce=`_6EH37F`,we=`UBll8Q`,H=`-y3RZP`,Te=`ayLJ50`,Ee=`_2MFkGF`,U=`SWQUvb`,De=`o5NWnX`,Oe=`ibSd-S`,ke=`lXezvv`,W=`FMlLGX`,G=`d2Zt7U`,K=`_8PN4hs`,Ae=`_4JEoen`,q=`GS8eEC`,je=`T8gVno`,Me=`o6stdX`,J=`I5zvhe`,Y=`KQ0PBI`,Ne=`_7hAQQA`,Pe=`XeUHNc`,X={treeRow:ye,treeRowSelected:be,treeRowActive:xe,treeRowDisabled:Se,treeNodeButton:Ce,treePopupHeader:we,treeColumns:H,treeColumnRow:Te,treeColumnCheckBox:Ee,treeNodeOptionContent:U,treeIndent:De,treeExpander:Oe,treeExpanderPlaceholder:ke,treeExpanderIcon:W,treeExpanderIconExpanded:G,treeSelection:K,treeSelectionChecked:Ae,treeSelectionPartial:q,treeSelectionIcon:je,treeSummary:Me,inputWithOverlay:J,valueOverlay:Y,treeActions:Ne,treeClearButton:Pe}}));function Ie({node:e,level:t,highlight:i,hasChildren:a,isExpanded:o,selected:s,partial:u,selectionMode:d,optionsLayout:f=`tree`,onToggleExpand:m,onToggleSelection:h}){let g=f===`tree`;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:X.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),g&&a?(0,Z.jsx)(`button`,{type:`button`,className:X.treeExpander,onClick:e=>{e.stopPropagation(),m?.()},"aria-label":o?`Свернуть ветку`:`Развернуть ветку`,"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,Z.jsx)(c,{className:l(X.treeExpanderIcon,o&&X.treeExpanderIconExpanded)})}):g?(0,Z.jsx)(`span`,{className:X.treeExpanderPlaceholder,"aria-hidden":`true`}):null,d===`multi`&&f===`columns`?(0,Z.jsx)(`span`,{className:X.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,Z.jsx)(p,{value:s,indeterminate:u,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>h?.()})}):d===`multi`?(0,Z.jsx)(`span`,{className:l(X.treeSelection,s&&X.treeSelectionChecked,u&&X.treeSelectionPartial),"aria-hidden":`true`,children:s?(0,Z.jsx)(n,{className:X.treeSelectionIcon}):u?(0,Z.jsx)(r,{className:X.treeSelectionIcon}):null}):null,(0,Z.jsx)(`div`,{className:X.treeNodeOptionContent,children:(0,Z.jsx)(y,{label:e.label,code:e.code,highlight:i})})]})}var Z,Le=t((()=>{u(),i(),b(),v(),Fe(),Z=s(),Ie.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
2
2
  id: string;
3
3
  codeKey: string;
4
4
  value: string;
@@ -7,7 +7,7 @@ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./ifr
7
7
  searchText: string;
8
8
  children?: TreeSelectNode[];
9
9
  disabled?: boolean;
10
- }`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}}]}},description:``},level:{required:!0,tsType:{name:`number`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},hasChildren:{required:!0,tsType:{name:`boolean`},description:``},isExpanded:{required:!0,tsType:{name:`boolean`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``},partial:{required:!0,tsType:{name:`boolean`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:``,defaultValue:{value:`"tree"`,computed:!1}},onToggleExpand:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onToggleSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}}));function Re({label:e,description:t,disabled:n,placeholder:r,size:a,nodes:o,selectedIds:c,partialIds:l,selectionMode:u,optionsLayout:f=`tree`,open:p,onOpenChange:h,bulkActions:oe,triggerMode:v=`display`,selectedSummary:y,selectedSummaryText:b,query:x,defaultQuery:le,onQuery:ue,onNodeActivate:de,onClearSelection:S,isLoading:C,error:w}){let T=(0,Q.useRef)(null),E=(0,Q.useRef)(null),fe=(0,Q.useRef)(!1),[O,pe]=(0,Q.useState)(()=>new Set),k=v===`search`?u===`multi`?`search-multi`:`search-single`:`display`,A=(0,Q.useMemo)(()=>ce(o),[o]),{query:j,setQuery:M}=ae({open:!0,query:x,defaultQuery:le,onQuery:ue,triggerMode:`display`}),{nodes:N,expandedIds:P}=(0,Q.useMemo)(()=>he(o,j),[o,j]),F=(0,Q.useMemo)(()=>me(c,A),[c,A]),I=(0,Q.useMemo)(()=>new Set([...A.childrenById].filter(([,e])=>e.length>0).map(([e])=>e)),[A]),L=(0,Q.useMemo)(()=>f===`columns`?I:new Set([...O,...P,...F]),[I,O,f,P,F]),R=(0,Q.useMemo)(()=>ge(N,L),[N,L]),z=(0,Q.useMemo)(()=>R.findIndex(e=>c.has(e.node.id)),[c,R]),ve=(0,Q.useCallback)(e=>{let t=_e({...e,itemCount:R.length});return{width:`${t.width}px`,minWidth:`${t.minWidth}px`,maxWidth:`${t.width}px`,maxHeight:`${t.maxHeight}px`,"--tree-column-count":String(t.columnCount),"--tree-row-count":String(Math.max(t.rowCount,1))}},[R.length]),{open:B,activeIndex:V,context:ye,floatingStyles:be,getFloatingProps:xe,setReference:Se,setFloating:Ce,setOptionRef:we,close:H,openList:Te,toggleOpen:Ee,selectOption:U,handleReferenceKeyDown:De,handleFloatingKeyDown:Oe,getOptionId:ke,getActiveOptionId:W}=ne({options:R,selectedIndex:z,open:p,onOpenChange:h,onSelect:e=>de(e.node),getOptionDisabled:e=>e.node.disabled===!0,disabled:n||C,closeOnSelect:u===`single`,allowOpenWithoutOptions:!0,triggerMode:k,placementStrategy:f===`columns`?`auto`:`flip`,resolveFloatingSize:f===`columns`?ve:void 0}),G=c.size>0,K=v===`search`&&(B||j.length>0),Ae=K?j:b??``,q=v===`display`&&!!y,je=k===`search-multi`&&!!y,Me=v===`search`&&(!b||K)||v===`display`&&!G,J=ie({mode:k,open:B,currentQuery:j,hasDisplayValue:!!b,inputRef:T,setQuery:M,openList:Te,close:H,toggleOpen:Ee}),Y=f===`columns`&&u===`multi`&&oe,Ne=v===`display`,Pe=Y||Ne?(0,$.jsxs)(`div`,{className:X.treePopupHeader,children:[Y?(0,$.jsx)(ee,{onSelectAll:oe.onSelectAll,onDeselectAll:oe.onDeselectAll,selectAllButtonRef:E}):null,Ne?(0,$.jsx)(m,{value:j,onChange:M,onClear:()=>M(``),placeholder:`Поиск по дереву`,onKeyDown:e=>{e.key!==`Escape`&&e.key!==`Tab`&&e.stopPropagation()},onClick:e=>{e.stopPropagation()}}):null]}):void 0;(0,Q.useEffect)(()=>{fe.current&&!B&&J.policy.resetQueryOnClose&&M(``),fe.current=B},[B,M,J.policy.resetQueryOnClose]);let Fe=e=>{T.current=e},Z=()=>{S?.(),M(``),u===`single`&&H()},Le=e=>{e.hasChildren&&pe(t=>{let n=new Set(t);return n.has(e.node.id)?n.delete(e.node.id):n.add(e.node.id),n})};return(0,$.jsx)(g,{label:e,description:t,disabled:n,placeholder:r,size:a,children:({controlId:t,labelId:a,describedBy:o})=>{let p=`${t}-listbox`,m=typeof e==`string`?e:r;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(re,{ref:Fe,rootRef:Se,id:t,type:`text`,role:`combobox`,autoComplete:`off`,disabled:n||C,readOnly:v!==`search`,value:v===`display`&&q?``:Ae,placeholder:Me?r:void 0,"aria-labelledby":a,"aria-describedby":o,"aria-haspopup":f===`columns`?`dialog`:`listbox`,"aria-expanded":B,"aria-controls":B?p:void 0,"aria-autocomplete":f!==`columns`&&v===`search`?`list`:`none`,"aria-activedescendant":f!==`columns`&&B&&R.length>0?W(p):void 0,inputClassName:i(G&&X.treeSummary,q&&X.inputWithOverlay),overlay:q?(0,$.jsx)(`div`,{className:X.valueOverlay,children:y}):void 0,endAdornment:(0,$.jsxs)(te,{open:B,disabled:n||C,onToggleMouseDown:J.handleToggleMouseDown,onToggleClick:J.handleToggleClick,children:[je?y:null,G&&S?(0,$.jsx)(`button`,{type:`button`,className:X.treeClearButton,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),Z()},"aria-label":`Очистить выбор`,children:(0,$.jsx)(s,{})}):null]}),onChange:e=>{v===`search`&&J.handleTriggerInputChange(e.target.value)},onClick:J.handleTriggerClick,onFocus:e=>{J.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(f===`columns`&&B&&e.key===`Tab`&&!e.shiftKey&&E.current){e.preventDefault(),E.current.focus();return}De(e),!e.defaultPrevented&&J.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=V>=0?R[V]:void 0;e&&U(e)},enableSpaceActivation:v===`display`})}}),(0,$.jsx)(_,{open:B,context:ye,floatingStyles:be,listId:p,labelId:a,popupAriaLabel:m,descriptionId:o,activeOptionId:f!==`columns`&&R.length>0?W(p):void 0,ariaMultiselectable:f!==`columns`&&u===`multi`,popupRole:f===`columns`?`dialog`:`listbox`,setFloating:Ce,getFloatingProps:xe,onKeyDown:Oe,className:d.uiPopupOptions,bodyClassName:`scrollable`,header:Pe,children:(0,$.jsx)(`div`,{className:i(f===`columns`&&X.treeColumns),children:R.length===0?(0,$.jsx)(se,{errorState:w,loadingState:C?`Загрузка...`:void 0,emptyState:!w&&!C?`Нет данных`:void 0}):R.map((e,t)=>{let n=u===`multi`?D(e.node.id,c,A):c.has(e.node.id),r=u===`multi`&&!n&&l.has(e.node.id),a=t===V,o=e.node.disabled===!0;return(0,$.jsx)(`div`,{"data-ui":`tree-select-option`,id:ke(p,t),ref:e=>we(t,e),role:f===`columns`?void 0:`option`,"aria-selected":f===`columns`?void 0:n,"aria-disabled":o||void 0,className:i(X.treeRow,f===`columns`&&X.treeColumnRow,o&&X.treeRowDisabled,a&&X.treeRowActive,n&&X.treeRowSelected),onMouseDown:e=>{e.preventDefault()},onClick:()=>U(e),children:(0,$.jsx)(`div`,{className:X.treeNodeButton,children:(0,$.jsx)(Ie,{node:e.node,level:e.level,highlight:j,hasChildren:e.hasChildren,isExpanded:e.isExpanded,selected:n,partial:r,selectionMode:u,optionsLayout:f,onToggleExpand:()=>Le(e),onToggleSelection:()=>U(e)})})},e.node.id)})})})]})}})}var Q,$,ze=t((()=>{Q=e(n(),1),a(),c(),h(),oe(),f(),V(),N(),Le(),Fe(),$=r(),Re.__docgenInfo={description:``,methods:[],displayName:`TreePickerBase`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},selectedIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},partialIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:``,defaultValue:{value:`"tree"`,computed:!1}},open:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``},bulkActions:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
10
+ }`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}}]}},description:``},level:{required:!0,tsType:{name:`number`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},hasChildren:{required:!0,tsType:{name:`boolean`},description:``},isExpanded:{required:!0,tsType:{name:`boolean`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``},partial:{required:!0,tsType:{name:`boolean`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:``,defaultValue:{value:`"tree"`,computed:!1}},onToggleExpand:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onToggleSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}}));function Re({label:e,description:t,disabled:n,placeholder:r,size:i,nodes:a,selectedIds:s,partialIds:c,selectionMode:u,optionsLayout:f=`tree`,open:p,onOpenChange:h,bulkActions:oe,triggerMode:v=`display`,selectedSummary:y,selectedSummaryText:b,query:x,defaultQuery:le,onQuery:ue,onNodeActivate:de,onClearSelection:S,isLoading:C,error:w}){let T=(0,Q.useRef)(null),E=(0,Q.useRef)(null),fe=(0,Q.useRef)(!1),[O,pe]=(0,Q.useState)(()=>new Set),k=v===`search`?u===`multi`?`search-multi`:`search-single`:`display`,A=(0,Q.useMemo)(()=>ce(a),[a]),{query:j,setQuery:M}=ae({open:!0,query:x,defaultQuery:le,onQuery:ue,triggerMode:`display`}),{nodes:N,expandedIds:P}=(0,Q.useMemo)(()=>he(a,j),[a,j]),F=(0,Q.useMemo)(()=>me(s,A),[s,A]),I=(0,Q.useMemo)(()=>new Set([...A.childrenById].filter(([,e])=>e.length>0).map(([e])=>e)),[A]),L=(0,Q.useMemo)(()=>f===`columns`?I:new Set([...O,...P,...F]),[I,O,f,P,F]),R=(0,Q.useMemo)(()=>ge(N,L),[N,L]),z=(0,Q.useMemo)(()=>R.findIndex(e=>s.has(e.node.id)),[s,R]),ve=(0,Q.useCallback)(e=>{let t=_e({...e,itemCount:R.length});return{width:`${t.width}px`,minWidth:`${t.minWidth}px`,maxWidth:`${t.width}px`,maxHeight:`${t.maxHeight}px`,"--tree-column-count":String(t.columnCount),"--tree-row-count":String(Math.max(t.rowCount,1))}},[R.length]),{open:B,activeIndex:V,context:ye,floatingStyles:be,getFloatingProps:xe,setReference:Se,setFloating:Ce,setOptionRef:we,close:H,openList:Te,toggleOpen:Ee,selectOption:U,handleReferenceKeyDown:De,handleFloatingKeyDown:Oe,getOptionId:ke,getActiveOptionId:W}=ne({options:R,selectedIndex:z,open:p,onOpenChange:h,onSelect:e=>de(e.node),getOptionDisabled:e=>e.node.disabled===!0,disabled:n||C,closeOnSelect:u===`single`,allowOpenWithoutOptions:!0,triggerMode:k,placementStrategy:f===`columns`?`auto`:`flip`,resolveFloatingSize:f===`columns`?ve:void 0}),G=s.size>0,K=v===`search`&&(B||j.length>0),Ae=K?j:b??``,q=v===`display`&&!!y,je=k===`search-multi`&&!!y,Me=v===`search`&&(!b||K)||v===`display`&&!G,J=ie({mode:k,open:B,currentQuery:j,hasDisplayValue:!!b,inputRef:T,setQuery:M,openList:Te,close:H,toggleOpen:Ee}),Y=f===`columns`&&u===`multi`&&oe,Ne=v===`display`,Pe=Y||Ne?(0,$.jsxs)(`div`,{className:X.treePopupHeader,children:[Y?(0,$.jsx)(ee,{onSelectAll:oe.onSelectAll,onDeselectAll:oe.onDeselectAll,selectAllButtonRef:E}):null,Ne?(0,$.jsx)(m,{value:j,onChange:M,onClear:()=>M(``),placeholder:`Поиск по дереву`,onKeyDown:e=>{e.key!==`Escape`&&e.key!==`Tab`&&e.stopPropagation()},onClick:e=>{e.stopPropagation()}}):null]}):void 0;(0,Q.useEffect)(()=>{fe.current&&!B&&J.policy.resetQueryOnClose&&M(``),fe.current=B},[B,M,J.policy.resetQueryOnClose]);let Fe=e=>{T.current=e},Z=()=>{S?.(),M(``),u===`single`&&H()},Le=e=>{e.hasChildren&&pe(t=>{let n=new Set(t);return n.has(e.node.id)?n.delete(e.node.id):n.add(e.node.id),n})};return(0,$.jsx)(g,{label:e,description:t,disabled:n,placeholder:r,size:i,children:({controlId:t,labelId:i,describedBy:a})=>{let p=`${t}-listbox`,m=typeof e==`string`?e:r;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(re,{ref:Fe,rootRef:Se,id:t,type:`text`,role:`combobox`,autoComplete:`off`,disabled:n||C,readOnly:v!==`search`,value:v===`display`&&q?``:Ae,placeholder:Me?r:void 0,"aria-labelledby":i,"aria-describedby":a,"aria-haspopup":f===`columns`?`dialog`:`listbox`,"aria-expanded":B,"aria-controls":B?p:void 0,"aria-autocomplete":f!==`columns`&&v===`search`?`list`:`none`,"aria-activedescendant":f!==`columns`&&B&&R.length>0?W(p):void 0,inputClassName:l(G&&X.treeSummary,q&&X.inputWithOverlay),overlay:q?(0,$.jsx)(`div`,{className:X.valueOverlay,children:y}):void 0,endAdornment:(0,$.jsxs)(te,{open:B,disabled:n||C,onToggleMouseDown:J.handleToggleMouseDown,onToggleClick:J.handleToggleClick,children:[je?y:null,G&&S?(0,$.jsx)(`button`,{type:`button`,className:X.treeClearButton,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),Z()},"aria-label":`Очистить выбор`,children:(0,$.jsx)(o,{})}):null]}),onChange:e=>{v===`search`&&J.handleTriggerInputChange(e.target.value)},onClick:J.handleTriggerClick,onFocus:e=>{J.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(f===`columns`&&B&&e.key===`Tab`&&!e.shiftKey&&E.current){e.preventDefault(),E.current.focus();return}De(e),!e.defaultPrevented&&J.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=V>=0?R[V]:void 0;e&&U(e)},enableSpaceActivation:v===`display`})}}),(0,$.jsx)(_,{open:B,context:ye,floatingStyles:be,listId:p,labelId:i,popupAriaLabel:m,descriptionId:a,activeOptionId:f!==`columns`&&R.length>0?W(p):void 0,ariaMultiselectable:f!==`columns`&&u===`multi`,popupRole:f===`columns`?`dialog`:`listbox`,setFloating:Ce,getFloatingProps:xe,onKeyDown:Oe,className:d.uiPopupOptions,bodyClassName:`scrollable`,header:Pe,children:(0,$.jsx)(`div`,{className:l(f===`columns`&&X.treeColumns),children:R.length===0?(0,$.jsx)(se,{errorState:w,loadingState:C?`Загрузка...`:void 0,emptyState:!w&&!C?`Нет данных`:void 0}):R.map((e,t)=>{let n=u===`multi`?D(e.node.id,s,A):s.has(e.node.id),r=u===`multi`&&!n&&c.has(e.node.id),i=t===V,a=e.node.disabled===!0;return(0,$.jsx)(`div`,{"data-ui":`tree-select-option`,id:ke(p,t),ref:e=>we(t,e),role:f===`columns`?void 0:`option`,"aria-selected":f===`columns`?void 0:n,"aria-disabled":a||void 0,className:l(X.treeRow,f===`columns`&&X.treeColumnRow,a&&X.treeRowDisabled,i&&X.treeRowActive,n&&X.treeRowSelected),onMouseDown:e=>{e.preventDefault()},onClick:()=>U(e),children:(0,$.jsx)(`div`,{className:X.treeNodeButton,children:(0,$.jsx)(Ie,{node:e.node,level:e.level,highlight:j,hasChildren:e.hasChildren,isExpanded:e.isExpanded,selected:n,partial:r,selectionMode:u,optionsLayout:f,onToggleExpand:()=>Le(e),onToggleSelection:()=>U(e)})})},e.node.id)})})})]})}})}var Q,$,ze=t((()=>{Q=e(a(),1),u(),i(),h(),oe(),f(),V(),N(),Le(),Fe(),$=s(),Re.__docgenInfo={description:``,methods:[],displayName:`TreePickerBase`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},selectedIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},partialIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:``,defaultValue:{value:`"tree"`,computed:!1}},open:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``},bulkActions:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
11
11
  onSelectAll: () => void;
12
12
  onDeselectAll: () => void;
13
13
  }`,signature:{properties:[{key:`onSelectAll`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`onDeselectAll`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},triggerMode:{required:!1,tsType:{name:`union`,raw:`"display" | "search"`,elements:[{name:`literal`,value:`"display"`},{name:`literal`,value:`"search"`}]},description:``,defaultValue:{value:`"display"`,computed:!1}},selectedSummary:{required:!1,tsType:{name:`ReactNode`},description:``},selectedSummaryText:{required:!1,tsType:{name:`string`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},onNodeActivate:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(node: TreeSelectNode) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
@@ -0,0 +1,15 @@
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{Basic as p,Empty as m,SelectParent as h,n as g,t as _}from"./TreeSelect.stories-BqF-qAB9.js";function v(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o,{of:_,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,b.jsx)(l,{children:`TreeSelect`}),`
3
+ `,(0,b.jsx)(a,{children:`Single-select для выбора одного узла из дерева`}),`
4
+ `,(0,b.jsxs)(t.p,{children:[(0,b.jsx)(t.code,{children:`TreeSelect`}),` подходит для сценариев, где выбор должен происходить по одному узлу, но пользователь работает не с плоским списком, а с иерархией.`]}),`
5
+ `,(0,b.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
6
+ `,(0,b.jsx)(d,{}),`
7
+ `,(0,b.jsx)(r,{of:p}),`
8
+ `,(0,b.jsx)(t.h2,{id:`сценарии`,children:`Сценарии`}),`
9
+ `,(0,b.jsx)(u,{of:p}),`
10
+ `,(0,b.jsx)(u,{of:h}),`
11
+ `,(0,b.jsx)(u,{of:m}),`
12
+ `,(0,b.jsx)(t.h2,{id:`api`,children:`API`}),`
13
+ `,(0,b.jsx)(c,{of:_}),`
14
+ `,(0,b.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
15
+ `,(0,b.jsx)(i,{includePrimary:!1})]})}function y(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,b.jsx)(t,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=t(),f(),s(),g()}))();export{y as default};
@@ -0,0 +1 @@
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{pn as n,t as r}from"./iframe-GmIo3IOR.js";import{l as i,n as a,o,r as s,t as c}from"./TreePickerBase-DCognf3p.js";function l(e){if(e)return e.code&&e.code!==e.label?`${e.label} · ${e.code}`:e.label}function u({label:e,description:t,disabled:n,placeholder:r=`Выберите значение`,size:a,nodes:o,value:u,onChange:p,query:m,defaultQuery:h,onQuery:g,isLoading:_,error:v,clearable:y=!1}){let b=(0,d.useMemo)(()=>s(o),[o]),x=i(u,b),S=x?b.nodeById.get(x):void 0;return(0,f.jsx)(c,{label:e,description:t,disabled:n,placeholder:r,size:a,nodes:o,selectedIds:x?new Set([x]):new Set,partialIds:new Set,selectionMode:`single`,triggerMode:`search`,selectedSummaryText:l(S),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:y?()=>p(void 0):void 0,isLoading:_,error:v})}var d,f,p=t((()=>{d=e(n(),1),o(),a(),f=r(),u.__docgenInfo={description:``,methods:[],displayName:`TreeSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значение"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}},composes:[`Omit`]}}));export{p as n,u as t};
@@ -0,0 +1,16 @@
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{n as a,t as o}from"./TreeSelect-DxdqUuJ6.js";import{n as s,t as c}from"./treeStoryFixtures-Cd984L7t.js";var l=e({Basic:()=>m,Empty:()=>g,SelectParent:()=>h,__namedExportsOrder:()=>_,default:()=>p});function u({initialValue:e,label:t=`TreeSelect`,description:n}){let[r,i]=(0,d.useState)(e);return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{label:t,description:n,nodes:c,value:r,onChange:i}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,r?`${r.codeKey}=${r.value}`:`пусто`]})]})}var d,f,p,m,h,g,_,v=n((()=>{d=t(r(),1),a(),s(),f=i(),p={title:`Shared/UI/TreeSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:c,value:void 0,onChange:()=>{}},argTypes:{nodes:{control:!1},value:{control:!1},onChange:{control:!1}}},m={render:()=>(0,f.jsx)(u,{initialValue:{codeKey:`BRANCH`,value:`B0101`}})},h={render:()=>(0,f.jsx)(u,{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,initialValue:{codeKey:`REGION`,value:`R01`}})},g={args:{nodes:[],description:`Состояние без доступных узлов.`}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
2
+ render: () => <StatefulTreeSelect initialValue={{
3
+ codeKey: "BRANCH",
4
+ value: "B0101"
5
+ }} />
6
+ }`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
7
+ render: () => <StatefulTreeSelect label="Выбор родителя" description="Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел." initialValue={{
8
+ codeKey: "REGION",
9
+ value: "R01"
10
+ }} />
11
+ }`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
12
+ args: {
13
+ nodes: [],
14
+ description: "Состояние без доступных узлов."
15
+ }
16
+ }`,...g.parameters?.docs?.source}}},_=[`Basic`,`SelectParent`,`Empty`]}));v();export{m as Basic,g as Empty,h as SelectParent,_ as __namedExportsOrder,p as default,v as n,l as t};
@@ -0,0 +1,175 @@
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{Basic as p,CollapsedByDefault as m,Empty as h,Fetching as g,Loading as _,MultiSelect as v,WithDefaultExpandedBranch as y,WithDisabledRows as b,WithFormattedTreeColumn 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"./TreeTable.stories-yeAD18Zw.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(o,{of:k,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,M.jsx)(l,{children:`TreeTable`}),`
3
+ `,(0,M.jsx)(a,{children:`Древовидная таблица для плоских OData-данных на базе TanStack Table`}),`
4
+ `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`TreeTable`}),` предназначен для сценариев, где данные приходят плоским списком, но в UI должны выглядеть как дерево.
5
+ Компонент использует тот же базовый табличный каркас, что и `,(0,M.jsx)(t.code,{children:`Table`}),`, поэтому у них совпадают базовые states, выбор строк и табличная структура, а различия сосредоточены в tree-логике.
6
+ `,(0,M.jsx)(t.code,{children:`TreeTable`}),` использует тот же formatting-runtime, что и `,(0,M.jsx)(t.code,{children:`Table`}),`, но вычисляет formatting до tree-shell, не смешивая его с логикой раскрытия дерева.`]}),`
7
+ `,(0,M.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
8
+ `,(0,M.jsx)(d,{}),`
9
+ `,(0,M.jsx)(r,{of:p}),`
10
+ `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { TreeTable, type TableColumnDef } from "@/shared/ui";
11
+
12
+ interface MetricRow {
13
+ id: string;
14
+ parentId: string | null;
15
+ label: string;
16
+ jan: string;
17
+ feb: string;
18
+ }
19
+
20
+ const columns: TableColumnDef<MetricRow>[] = [
21
+ {
22
+ id: "label",
23
+ accessorKey: "label",
24
+ header: "Показатель",
25
+ meta: { width: "18em" }
26
+ },
27
+ {
28
+ id: "jan",
29
+ accessorKey: "jan",
30
+ header: "янв",
31
+ meta: { width: "8em", align: "right" }
32
+ },
33
+ {
34
+ id: "feb",
35
+ accessorKey: "feb",
36
+ header: "фев",
37
+ meta: { width: "8em", align: "right" }
38
+ }
39
+ ];
40
+
41
+ export function Example({ rows }: { rows: MetricRow[] }) {
42
+ return (
43
+ <TreeTable
44
+ data={rows}
45
+ columns={columns}
46
+ hierarchy={{
47
+ getRowId: (row) => row.id,
48
+ getParentRowId: (row) => row.parentId
49
+ }}
50
+ selectionMode="single"
51
+ expandFirstLevel
52
+ height="22em"
53
+ indentSize={1}
54
+ />
55
+ );
56
+ }
57
+ `})}),`
58
+ `,(0,M.jsx)(t.h2,{id:`форматирование-ячеек`,children:`Форматирование ячеек`}),`
59
+ `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`TreeTable`}),` поддерживает тот же `,(0,M.jsx)(t.code,{children:`meta.formatting`}),`, что и `,(0,M.jsx)(t.code,{children:`Table`}),`:`]}),`
60
+ `,(0,M.jsxs)(t.ul,{children:[`
61
+ `,(0,M.jsxs)(t.li,{children:[`typed formatting по `,(0,M.jsx)(t.code,{children:`role/type`}),`;`]}),`
62
+ `,(0,M.jsx)(t.li,{children:`formula-based колонки;`}),`
63
+ `,(0,M.jsx)(t.li,{children:`pipeline display-formatting;`}),`
64
+ `,(0,M.jsxs)(t.li,{children:[(0,M.jsx)(t.code,{children:`emptyWhenZero`}),` для скрытия нулей;`]}),`
65
+ `,(0,M.jsxs)(t.li,{children:[`optional OData adapter для автоматического получения `,(0,M.jsx)(t.code,{children:`role/type`}),`.`]}),`
66
+ `]}),`
67
+ `,(0,M.jsx)(t.p,{children:`Семантика важна:`}),`
68
+ `,(0,M.jsxs)(t.ul,{children:[`
69
+ `,(0,M.jsx)(t.li,{children:`formatting вычисляется до tree-shell;`}),`
70
+ `,(0,M.jsxs)(t.li,{children:[`затем результат заворачивается в древовидную ячейку только для `,(0,M.jsx)(t.code,{children:`treeColumnId`}),`;`]}),`
71
+ `,(0,M.jsxs)(t.li,{children:[`кастомный `,(0,M.jsx)(t.code,{children:`cell`}),` по-прежнему важнее `,(0,M.jsx)(t.code,{children:`meta.formatting`}),`;`]}),`
72
+ `,(0,M.jsxs)(t.li,{children:[(0,M.jsx)(t.code,{children:`TreeTable`}),` сам не ходит в OData и остаётся пригодным для plain local data.`]}),`
73
+ `]}),`
74
+ `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`const columns: TableColumnDef<Row>[] = [
75
+ {
76
+ id: "amount",
77
+ accessorKey: "amount",
78
+ header: "Сумма",
79
+ meta: {
80
+ align: "right",
81
+ formatting: {
82
+ role: "measure",
83
+ type: "decimal",
84
+ formattersPipeline: pipelineConfig
85
+ }
86
+ }
87
+ }
88
+ ];
89
+ `})}),`
90
+ `,(0,M.jsx)(t.p,{children:`Для OData build-сценария колонки можно сгенерировать из metadata:`}),`
91
+ `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { createTableColumnsFromODataMetadata } from "@ryuzaki13/react-foundation-lib/table";
92
+
93
+ const columns = createTableColumnsFromODataMetadata(metadata.columns);
94
+ `})}),`
95
+ `,(0,M.jsxs)(t.p,{children:[`Тот же сценарий удобнее собрать через `,(0,M.jsx)(t.code,{children:`useODataTableColumns(...)`}),`, а не через ручной вызов helper:`]}),`
96
+ `,(0,M.jsx)(t.pre,{children:(0,M.jsx)(t.code,{className:`language-tsx`,children:`import { useODataTableColumns } from "@ryuzaki13/react-foundation-api/odata";
97
+ import { TreeTable } from "@/shared/ui";
98
+
99
+ function FinanceTree({ rows }: { rows: MetricRow[] }) {
100
+ const { columns, metadata, isLoading } = useODataTableColumns<MetricRow>({
101
+ service: "ZFI_REPORTING_SRV",
102
+ entity: "FinanceSet",
103
+ mode: "build"
104
+ });
105
+
106
+ return (
107
+ <TreeTable
108
+ title={metadata?.title ?? "Финансовая иерархия"}
109
+ data={rows}
110
+ columns={columns}
111
+ hierarchy={{
112
+ getRowId: (row) => row.id,
113
+ getParentRowId: (row) => row.parentId
114
+ }}
115
+ isLoading={isLoading}
116
+ expandFirstLevel
117
+ />
118
+ );
119
+ }
120
+ `})}),`
121
+ `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`enrich`}),` для `,(0,M.jsx)(t.code,{children:`TreeTable`}),` работает так же, как и для `,(0,M.jsx)(t.code,{children:`Table`}),`: hook сохраняет ручные колонки дерева и дозаполняет их `,(0,M.jsx)(t.code,{children:`meta.formatting.role/type`}),`.`]}),`
122
+ `,(0,M.jsx)(t.h2,{id:`слияние-дубликатов`,children:`Слияние дубликатов`}),`
123
+ `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`TreeTable`}),` поддерживает тот же `,(0,M.jsx)(t.code,{children:`meta.mergeDuplicates`}),`, что и плоская таблица, но с дополнительным ограничением: объединение работает только внутри одной глубины `,(0,M.jsx)(t.code,{children:`row.depth`}),`.`]}),`
124
+ `,(0,M.jsx)(t.p,{children:`Важно:`}),`
125
+ `,(0,M.jsxs)(t.ul,{children:[`
126
+ `,(0,M.jsxs)(t.li,{children:[`tree-колонка с expander не участвует в слиянии, даже если на ней включён `,(0,M.jsx)(t.code,{children:`mergeDuplicates`}),`;`]}),`
127
+ `,(0,M.jsxs)(t.li,{children:[`сравнение идёт по raw-значению `,(0,M.jsx)(t.code,{children:`cell.getValue()`}),`;`]}),`
128
+ `,(0,M.jsx)(t.li,{children:`повторяющееся значение остаётся только в первой строке группы, а ниже рендерятся пустые ячейки;`}),`
129
+ `,(0,M.jsx)(t.li,{children:`если между двумя одинаковыми значениями есть строка другой глубины, объединение разрывается.`}),`
130
+ `]}),`
131
+ `,(0,M.jsx)(t.h2,{id:`что-важно-знать`,children:`Что важно знать`}),`
132
+ `,(0,M.jsxs)(t.ul,{children:[`
133
+ `,(0,M.jsxs)(t.li,{children:[`Компонент принимает плоский массив строк и сам восстанавливает иерархию по `,(0,M.jsx)(t.code,{children:`id`}),` и `,(0,M.jsx)(t.code,{children:`parentId`}),`.`]}),`
134
+ `,(0,M.jsx)(t.li,{children:`Если родитель не найден, строка не теряется и отображается как корневая.`}),`
135
+ `,(0,M.jsx)(t.li,{children:`Циклические связи не приводят к бесконечной рекурсии: проблемный фрагмент дерева отсекается.`}),`
136
+ `,(0,M.jsxs)(t.li,{children:[(0,M.jsx)(t.code,{children:`defaultExpandedRowIds`}),` дополняет `,(0,M.jsx)(t.code,{children:`expandFirstLevel`}),` только на первом появлении данных.`]}),`
137
+ `,(0,M.jsxs)(t.li,{children:[(0,M.jsx)(t.code,{children:`indentSize`}),` можно задавать числом или строкой; число трактуется как `,(0,M.jsx)(t.code,{children:`em`}),`.`]}),`
138
+ `,(0,M.jsxs)(t.li,{children:[`Поведение `,(0,M.jsx)(t.code,{children:`selectionMode`}),` совпадает с `,(0,M.jsx)(t.code,{children:`Table`}),`, а различие между компонентами сосредоточено в раскрытии веток и tree-cell.`]}),`
139
+ `,(0,M.jsx)(t.li,{children:`Tree-shell и formatting остаются разделёнными слоями: раскрытие веток не зависит от formulas/pipeline.`}),`
140
+ `]}),`
141
+ `,(0,M.jsx)(t.h2,{id:`сценарии`,children:`Сценарии`}),`
142
+ `,(0,M.jsx)(t.h3,{id:`базовый-режим`,children:`Базовый режим`}),`
143
+ `,(0,M.jsx)(u,{of:p}),`
144
+ `,(0,M.jsx)(t.h3,{id:`множественный-выбор`,children:`Множественный выбор`}),`
145
+ `,(0,M.jsx)(u,{of:v}),`
146
+ `,(0,M.jsx)(t.h3,{id:`дерево-свёрнуто-по-умолчанию`,children:`Дерево свёрнуто по умолчанию`}),`
147
+ `,(0,M.jsx)(u,{of:m}),`
148
+ `,(0,M.jsx)(t.h3,{id:`предраскрытая-ветка`,children:`Предраскрытая ветка`}),`
149
+ `,(0,M.jsx)(u,{of:y}),`
150
+ `,(0,M.jsx)(t.h3,{id:`строки-с-ограничением-выбора`,children:`Строки с ограничением выбора`}),`
151
+ `,(0,M.jsx)(u,{of:b}),`
152
+ `,(0,M.jsx)(t.h3,{id:`фоновое-обновление-данных`,children:`Фоновое обновление данных`}),`
153
+ `,(0,M.jsx)(u,{of:g}),`
154
+ `,(0,M.jsx)(t.h3,{id:`пустое-дерево`,children:`Пустое дерево`}),`
155
+ `,(0,M.jsx)(u,{of:h}),`
156
+ `,(0,M.jsx)(t.h3,{id:`первичная-загрузка`,children:`Первичная загрузка`}),`
157
+ `,(0,M.jsx)(u,{of:_}),`
158
+ `,(0,M.jsx)(t.h3,{id:`formula-based-колонка`,children:`Formula-based колонка`}),`
159
+ `,(0,M.jsx)(u,{of:S}),`
160
+ `,(0,M.jsx)(t.h3,{id:`форматирование-tree-колонки`,children:`Форматирование tree-колонки`}),`
161
+ `,(0,M.jsx)(u,{of:x}),`
162
+ `,(0,M.jsx)(t.h3,{id:`скрытие-нулевых-значений`,children:`Скрытие нулевых значений`}),`
163
+ `,(0,M.jsx)(u,{of:C}),`
164
+ `,(0,M.jsx)(t.h3,{id:`слияние-дубликатов-1`,children:`Слияние дубликатов`}),`
165
+ `,(0,M.jsx)(u,{of:w}),`
166
+ `,(0,M.jsx)(t.h3,{id:`odata-metadata-adapter`,children:`OData metadata adapter`}),`
167
+ `,(0,M.jsx)(u,{of:T}),`
168
+ `,(0,M.jsx)(t.h3,{id:`useodatatablecolumns-build`,children:`useODataTableColumns: build`}),`
169
+ `,(0,M.jsx)(u,{of:E}),`
170
+ `,(0,M.jsx)(t.h3,{id:`useodatatablecolumns-enrich`,children:`useODataTableColumns: enrich`}),`
171
+ `,(0,M.jsx)(u,{of:D}),`
172
+ `,(0,M.jsx)(t.h2,{id:`api`,children:`API`}),`
173
+ `,(0,M.jsx)(c,{of:k}),`
174
+ `,(0,M.jsx)(t.h2,{id:`все-stories`,children:`Все stories`}),`
175
+ `,(0,M.jsx)(i,{includePrimary:!1})]})}function j(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,M.jsx)(t,{...e,children:(0,M.jsx)(A,{...e})}):A(e)}var M;e((()=>{M=t(),f(),s(),O()}))();export{j as default};