@ryuzaki13/react-foundation-ui 2.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/COLOR_TOKENS_MIGRATION.md +224 -0
  2. package/README.md +14 -18
  3. package/dist/advanced-search/index.js +8 -8
  4. package/dist/badge/index.js +1 -1
  5. package/dist/barcode-scanner/index.js +2 -2
  6. package/dist/base-table/index.js +1 -1
  7. package/dist/button/index.js +1 -1
  8. package/dist/check-box/index.js +1 -1
  9. package/dist/chunks/{CalendarView-Bhaov_XE.js → CalendarView-Dm55k0bN.js} +2 -2
  10. package/dist/chunks/CalendarView-Dm55k0bN.js.map +1 -0
  11. package/dist/chunks/ImageViewerRuntime-HGBWp9NM.js.map +1 -1
  12. package/dist/chunks/{TextEditorLexicalClient-CSXZQOYo.js → TextEditorLexicalClient-D46Zed55.js} +6 -6
  13. package/dist/chunks/TextEditorLexicalClient-D46Zed55.js.map +1 -0
  14. package/dist/chunks/{badge-DUI2ET6q.js → badge-6mXO9BWP.js} +2 -2
  15. package/dist/chunks/badge-6mXO9BWP.js.map +1 -0
  16. package/dist/chunks/{base-table-BqW1n7tv.js → base-table-BWvKfI2W.js} +2 -2
  17. package/dist/chunks/{base-table-BqW1n7tv.js.map → base-table-BWvKfI2W.js.map} +1 -1
  18. package/dist/chunks/{button-BaUlN-nt.js → button-DF21yxVp.js} +3 -3
  19. package/dist/chunks/{button-BaUlN-nt.js.map → button-DF21yxVp.js.map} +1 -1
  20. package/dist/chunks/{check-box-CC8CDnSR.js → check-box-CZyhzmR0.js} +3 -3
  21. package/dist/chunks/{check-box-CC8CDnSR.js.map → check-box-CZyhzmR0.js.map} +1 -1
  22. package/dist/chunks/{context-menu-Dj6MXgv6.js → context-menu-DgvXGCuI.js} +3 -3
  23. package/dist/chunks/context-menu-DgvXGCuI.js.map +1 -0
  24. package/dist/chunks/{date-input-DkLfO3Ng.js → date-input-BwLOiGXp.js} +5 -5
  25. package/dist/chunks/{date-input-DkLfO3Ng.js.map → date-input-BwLOiGXp.js.map} +1 -1
  26. package/dist/chunks/dialog-Dqq8ZN99.js +50 -0
  27. package/dist/chunks/dialog-Dqq8ZN99.js.map +1 -0
  28. package/dist/chunks/{input-D1jOxm0t.js → input-DSPKgiCK.js} +2 -2
  29. package/dist/chunks/input-DSPKgiCK.js.map +1 -0
  30. package/dist/chunks/{input-files-CDGpJaUm.js → input-files-tIS17-zX.js} +3 -3
  31. package/dist/chunks/input-files-tIS17-zX.js.map +1 -0
  32. package/dist/chunks/{input-search-Ci1ubGox.js → input-search-Cat4c7SM.js} +2 -2
  33. package/dist/chunks/{input-search-Ci1ubGox.js.map → input-search-Cat4c7SM.js.map} +1 -1
  34. package/dist/chunks/misc-DeGboAt-.js.map +1 -1
  35. package/dist/chunks/{modal-CbAwLHlM.js → modal-dplfAaER.js} +2 -2
  36. package/dist/chunks/{modal-CbAwLHlM.js.map → modal-dplfAaER.js.map} +1 -1
  37. package/dist/chunks/{multi-select-V7SLAduU.js → multi-select-BZ9N6Dal.js} +4 -4
  38. package/dist/chunks/{multi-select-V7SLAduU.js.map → multi-select-BZ9N6Dal.js.map} +1 -1
  39. package/dist/chunks/{picker-DZ4-1BvK.js → picker-lvm82d0A.js} +3 -3
  40. package/dist/chunks/picker-lvm82d0A.js.map +1 -0
  41. package/dist/chunks/popover-Bne-Ljbs.js.map +1 -1
  42. package/dist/chunks/{radio-group-DhpP7JSJ.js → radio-group-CRk_1ODZ.js} +2 -2
  43. package/dist/chunks/radio-group-CRk_1ODZ.js.map +1 -0
  44. package/dist/chunks/{select-B7cWlJxL.js → select-aTGupQan.js} +4 -4
  45. package/dist/chunks/{select-B7cWlJxL.js.map → select-aTGupQan.js.map} +1 -1
  46. package/dist/chunks/{table-DMLFUBlb.js → table-DxoSOvQK.js} +2 -2
  47. package/dist/chunks/table-DxoSOvQK.js.map +1 -0
  48. package/dist/chunks/{ui.module-BsDio9A3.js → ui.module-oRwY3Zli.js} +2 -1
  49. package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -0
  50. package/dist/chunks/{uiClasses-BVwFzzsr.js → uiClasses-CQj47jkF.js} +11 -2
  51. package/dist/chunks/uiClasses-CQj47jkF.js.map +1 -0
  52. package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
  53. package/dist/context-menu/index.js +1 -1
  54. package/dist/date-input/index.js +2 -2
  55. package/dist/date-time-input/index.js +3 -3
  56. package/dist/dialog/index.js +2 -50
  57. package/dist/disclosure/index.js +2 -2
  58. package/dist/disclosure/index.js.map +1 -1
  59. package/dist/drop-zone/index.js +1 -1
  60. package/dist/drop-zone/index.js.map +1 -1
  61. package/dist/errors/index.js +4 -4
  62. package/dist/errors/index.js.map +1 -1
  63. package/dist/expandable-action-panel/index.js +1 -1
  64. package/dist/image/index.js +5 -5
  65. package/dist/image/index.js.map +1 -1
  66. package/dist/input/index.js +1 -1
  67. package/dist/input-date-time/index.js +2 -2
  68. package/dist/input-file/index.js +2 -2
  69. package/dist/input-files/index.js +1 -1
  70. package/dist/input-image/index.js +2 -2
  71. package/dist/input-search/index.js +1 -1
  72. package/dist/layout-picker/index.js +1 -1
  73. package/dist/layout-picker/index.js.map +1 -1
  74. package/dist/listbox/index.js +1 -1
  75. package/dist/modal/index.js +1 -1
  76. package/dist/multi-select/index.js +1 -1
  77. package/dist/notifications/index.js +1 -1
  78. package/dist/notifications/index.js.map +1 -1
  79. package/dist/option/index.js +1 -1
  80. package/dist/picker/index.js +1 -1
  81. package/dist/preset-range-date-input/index.js +1 -1
  82. package/dist/preset-select/index.js +1 -1
  83. package/dist/radio-button/index.js +2 -2
  84. package/dist/radio-group/index.js +1 -1
  85. package/dist/select/index.js +1 -1
  86. package/dist/simple-table/index.js +1 -1
  87. package/dist/slider/index.js +3 -3
  88. package/dist/slider/index.js.map +1 -1
  89. package/dist/state-select/index.js +1 -1
  90. package/dist/status-indicator/StatusIndicator.d.ts.map +1 -1
  91. package/dist/status-indicator/index.js +2 -0
  92. package/dist/status-indicator/index.js.map +1 -1
  93. package/dist/styles.css +1 -1
  94. package/dist/switch/index.js +1 -1
  95. package/dist/table/index.js +1 -1
  96. package/dist/table-editor/index.d.ts +3 -0
  97. package/dist/table-editor/index.d.ts.map +1 -0
  98. package/dist/table-editor/index.js +462 -0
  99. package/dist/table-editor/index.js.map +1 -0
  100. package/dist/table-editor/model/useTableEditor.d.ts +25 -0
  101. package/dist/table-editor/model/useTableEditor.d.ts.map +1 -0
  102. package/dist/table-editor/model/useTableEditorTable.d.ts +10 -0
  103. package/dist/table-editor/model/useTableEditorTable.d.ts.map +1 -0
  104. package/dist/table-editor/ui/TableEditor.d.ts +21 -0
  105. package/dist/table-editor/ui/TableEditor.d.ts.map +1 -0
  106. package/dist/table-editor/ui/TableEditorGrid.d.ts +14 -0
  107. package/dist/table-editor/ui/TableEditorGrid.d.ts.map +1 -0
  108. package/dist/table-editor/ui/TableEditorStructure.d.ts +10 -0
  109. package/dist/table-editor/ui/TableEditorStructure.d.ts.map +1 -0
  110. package/dist/table-editor/ui/TableEditorToolbar.d.ts +11 -0
  111. package/dist/table-editor/ui/TableEditorToolbar.d.ts.map +1 -0
  112. package/dist/table-sorting/index.js +1 -1
  113. package/dist/tabs/index.js +2 -2
  114. package/dist/tabs/index.js.map +1 -1
  115. package/dist/tag-input/index.js +2 -2
  116. package/dist/tag-input/index.js.map +1 -1
  117. package/dist/text-editor/index.js +1 -1
  118. package/dist/textarea/index.js +2 -2
  119. package/dist/toggle/index.js +1 -1
  120. package/dist/toggle/index.js.map +1 -1
  121. package/dist/tree-select/index.js +3 -3
  122. package/dist/tree-select/index.js.map +1 -1
  123. package/dist/tree-table/index.js +1 -1
  124. package/dist/tree-table/index.js.map +1 -1
  125. package/dist/types.d.ts +3 -3
  126. package/dist/types.d.ts.map +1 -1
  127. package/dist/uiClasses.d.ts.map +1 -1
  128. package/package.json +8 -3
  129. package/src/styles/_border.scss +2 -2
  130. package/src/styles/_color.scss +8 -8
  131. package/src/styles/_components.scss +2 -2
  132. package/src/styles/_normalize.scss +4 -4
  133. package/src/styles/config/_index.scss +95 -182
  134. package/src/styles/mixins/_controls.scss +43 -26
  135. package/src/styles/mixins/_mixin.scss +0 -187
  136. package/src/styles/mixins/controls.test.ts +28 -6
  137. package/src/styles/themes/_interactive-surface.scss +12 -12
  138. package/src/styles/themes/_theme.scss +21 -157
  139. package/src/styles/themes/theme.test.ts +66 -48
  140. package/storybook-static/assets/{Badge-BXbiidny.js → Badge-DLpkFLAr.js} +8 -2
  141. package/storybook-static/assets/{Badge.stories-DCOkVsyk.js → Badge.stories-DwwZ0O7j.js} +7 -1
  142. package/storybook-static/assets/{BadgeList-DgUScGRc.js → BadgeList-C0bhovUR.js} +2 -2
  143. package/storybook-static/assets/{BadgeList-CD5894x5.css → BadgeList-DbjeNuw0.css} +1 -1
  144. package/storybook-static/assets/{BarcodeScannerDialog.stories-7Bv_TejN.js → BarcodeScannerDialog.stories-DYXaW4Vw.js} +1 -1
  145. package/storybook-static/assets/{Button-0UDcBhBt.js → Button-B1nvnaMI.js} +12 -2
  146. package/storybook-static/assets/{Button-BpQRrzrS.js → Button-PAj4mH8o.js} +4 -2
  147. package/storybook-static/assets/Button.stories-CNvWyh5M.js +106 -0
  148. package/storybook-static/assets/{CalendarView-B93LI4f_.js → CalendarView-WUXapLvN.js} +1 -1
  149. package/storybook-static/assets/CalendarView-dgpVDRJR.css +1 -0
  150. package/storybook-static/assets/{CheckBox-BaAouU5d.js → CheckBox-B9f_n0Nh.js} +2 -2
  151. package/storybook-static/assets/{CheckBox-CFusvDS8.js → CheckBox-C3r_FdXc.js} +1 -1
  152. package/storybook-static/assets/{CheckBox.stories-Bdr_GC0M.js → CheckBox.stories-B5CFQBFx.js} +1 -1
  153. package/storybook-static/assets/{Color-6AOWCN3U-B8A6Hc7V.js → Color-6AOWCN3U-tYUAsbHo.js} +1 -1
  154. package/storybook-static/assets/{ContextMenu-CvHpWBGV.js → ContextMenu-C-T3O2d9.js} +1 -1
  155. package/storybook-static/assets/{ContextMenu-BcNU89-b.js → ContextMenu-PIvPPvq1.js} +1 -1
  156. package/storybook-static/assets/ContextMenu-yhWq2uJ3.css +1 -0
  157. package/storybook-static/assets/{ContextMenu.stories-DQDlVNxB.js → ContextMenu.stories-Bmy_0Oug.js} +1 -1
  158. package/storybook-static/assets/{CustomOptionButton-DkGlBvWP.js → CustomOptionButton-D_qTIop3.js} +1 -1
  159. package/storybook-static/assets/{DateInput-NkrPSWMl.js → DateInput-B7GZSkR3.js} +1 -1
  160. package/storybook-static/assets/{DateInput-CWsb-NhT.js → DateInput-C-goSdP-.js} +1 -1
  161. package/storybook-static/assets/{DateInput.stories-Bvz465d-.js → DateInput.stories-CeAMz_x1.js} +1 -1
  162. package/storybook-static/assets/{DateRangePresetSelect-DC6_r8SQ.js → DateRangePresetSelect-BZ9U_l_x.js} +1 -1
  163. package/storybook-static/assets/{DateRangePresetSelect-DQlphKzc.js → DateRangePresetSelect-BmjgWIxM.js} +1 -1
  164. package/storybook-static/assets/{DateRangePresetSelect.stories-DVfqPYN5.js → DateRangePresetSelect.stories-5UGP9HcH.js} +1 -1
  165. package/storybook-static/assets/{Detail-CXQYyd94.js → Detail-C6duvCft.js} +1 -1
  166. package/storybook-static/assets/{Detail.stories-BEXByYXt.js → Detail.stories-DQZciNeZ.js} +1 -1
  167. package/storybook-static/assets/{Dialog-CyYTYgbp.js → Dialog-87D5Shqd.js} +1 -1
  168. package/storybook-static/assets/{Dialog-B2UTbDCv.js → Dialog-Bx4-acbv.js} +1 -1
  169. package/storybook-static/assets/{Dialog.stories-BWluB4Ya.js → Dialog.stories-BgOQABzP.js} +1 -1
  170. package/storybook-static/assets/{Disclosure-Dv5XOsna.js → Disclosure-ZctFZjdw.js} +1 -1
  171. package/storybook-static/assets/{Disclosure.stories-BxK_fmJE.js → Disclosure.stories-BioI8Dpv.js} +1 -1
  172. package/storybook-static/assets/{DisclosureGroup-B2O8D8CG.js → DisclosureGroup-Cn2EEocA.js} +1 -1
  173. package/storybook-static/assets/DisclosureGroup-D_ldcGgp.css +1 -0
  174. package/storybook-static/assets/{DocsRenderer-JROSPFPF-7N0jH0Oi.js → DocsRenderer-JROSPFPF-CoppGUHs.js} +1 -1
  175. package/storybook-static/assets/{DropZone-DL34ooyF.js → DropZone-68BioqBN.js} +1 -1
  176. package/storybook-static/assets/{DropZone-ZlPjdEuO.js → DropZone-BpInQyuE.js} +1 -1
  177. package/storybook-static/assets/{DropZone-C7HIN5ml.css → DropZone-C4gPTIz0.css} +1 -1
  178. package/storybook-static/assets/{DropZone.stories-BT9JvF9d.js → DropZone.stories-DhVyaedf.js} +1 -1
  179. package/storybook-static/assets/{DropdownMenu-BhC5f2Qc.js → DropdownMenu-Dw-i5abQ.js} +1 -1
  180. package/storybook-static/assets/{ExpandableActionPanel-C77qVHBP.js → ExpandableActionPanel-Bb7Eo_iW.js} +1 -1
  181. package/storybook-static/assets/{ExpandableActionPanel.stories-D1MJEw6F.js → ExpandableActionPanel.stories-B0XABlVT.js} +1 -1
  182. package/storybook-static/assets/{Flex-BHt3-yoh.js → Flex-CG5yKEBH.js} +1 -1
  183. package/storybook-static/assets/{Flex.stories-M8QVGuVA.js → Flex.stories-Cfx4TAqp.js} +1 -1
  184. package/storybook-static/assets/{FloatingPopover-Dch6_6e0.js → FloatingPopover-B8zZ8eYf.js} +1 -1
  185. package/storybook-static/assets/FloatingPopover-Di16BZj-.css +1 -0
  186. package/storybook-static/assets/FormattedTableCell-BzBZlmxd.js +15 -0
  187. package/storybook-static/assets/FormattedTableCell-CTIL_ueu.css +1 -0
  188. package/storybook-static/assets/{Grid-CcyaioK_.js → Grid-3MdRiyY4.js} +1 -1
  189. package/storybook-static/assets/{Grid.stories-CTHcYkKa.js → Grid.stories-DUfosHcu.js} +1 -1
  190. package/storybook-static/assets/{ImageCropper.stories-B84lQIPy.js → ImageCropper.stories-DBLj9S4C.js} +1 -1
  191. package/storybook-static/assets/{ImageRenderer-kTsPC-b5.js → ImageRenderer-bZHWE6lq.js} +1 -1
  192. package/storybook-static/assets/{ImageRenderer.stories-pozsCEPL.js → ImageRenderer.stories-BU2tt9QR.js} +1 -1
  193. package/storybook-static/assets/{ImageView.stories-CNttofCE.js → ImageView.stories-t_ree_kB.js} +1 -1
  194. package/storybook-static/assets/{ImageViewer.stories-D_7oQpyX.js → ImageViewer.stories-kodL93QT.js} +2 -2
  195. package/storybook-static/assets/{ImageViewerRuntime-Dnc70fBS.js → ImageViewerRuntime-Dkw7fwZ1.js} +1 -1
  196. package/storybook-static/assets/ImageViewerRuntime-MxAd4mC-.css +1 -0
  197. package/storybook-static/assets/{Input-DvRmrrtj.js → Input-C-Q_V0Uc.js} +1 -1
  198. package/storybook-static/assets/{Input-CYgnggvb.css → Input-CIA3PkB4.css} +1 -1
  199. package/storybook-static/assets/{Input-BO9q-b1i.js → Input-Ckb0G4jj.js} +1 -1
  200. package/storybook-static/assets/{Input.stories-DeKdGxIC.js → Input.stories-BZITY0Np.js} +1 -1
  201. package/storybook-static/assets/{InputDateTime-hqRtizlN.js → InputDateTime-DF-R-IPb.js} +1 -1
  202. package/storybook-static/assets/{InputDateTime.stories-BpGhWbRp.js → InputDateTime.stories-2ELFc29n.js} +1 -1
  203. package/storybook-static/assets/{InputFile-CExDbGYJ.js → InputFile-3Sn8IwRI.js} +1 -1
  204. package/storybook-static/assets/{InputFile-CTDHdo2g.js → InputFile-Xo-rxvud.js} +1 -1
  205. package/storybook-static/assets/{InputFile.stories-BIinoG-U.js → InputFile.stories-B4EHuTtj.js} +1 -1
  206. package/storybook-static/assets/{InputFiles-Cvdn_5IV.js → InputFiles-CRFuoEBd.js} +1 -1
  207. package/storybook-static/assets/{InputFiles-BWeRuTCh.js → InputFiles-DzdnkOiD.js} +1 -1
  208. package/storybook-static/assets/{InputFiles.stories-J2bb48sN.js → InputFiles.stories-BRCSXgg-.js} +1 -1
  209. package/storybook-static/assets/{InputFilesList-ByK52qUe.css → InputFilesList-BbwB0oHE.css} +1 -1
  210. package/storybook-static/assets/{InputFilesList-DO6IJW98.js → InputFilesList-CvL4pjsZ.js} +1 -1
  211. package/storybook-static/assets/{InputImage-C7zaIkCa.js → InputImage-B1v_PWfN.js} +1 -1
  212. package/storybook-static/assets/{InputImage-BtsIbqEc.js → InputImage-qAzSyHzj.js} +1 -1
  213. package/storybook-static/assets/{InputImage.stories--ewdBKin.js → InputImage.stories-4NLpODaa.js} +1 -1
  214. package/storybook-static/assets/{InteractiveComponents-Cy9Y2J_q.js → InteractiveComponents-Bdy-KTOF.js} +1 -1
  215. package/storybook-static/assets/{InteractiveComponents.stories-CgC4nhd3.js → InteractiveComponents.stories-C_ZAVn0R.js} +1 -1
  216. package/storybook-static/assets/{LayoutPicker-CfgWKTDC.js → LayoutPicker-8wwVLPom.js} +1 -1
  217. package/storybook-static/assets/{LayoutPicker-DhJgMxdf.js → LayoutPicker-B4eblsaF.js} +1 -1
  218. package/storybook-static/assets/{LayoutPicker-BY4-fUQa.css → LayoutPicker-DaPDA0_s.css} +1 -1
  219. package/storybook-static/assets/{LayoutPicker.stories-Bli7rQRh.js → LayoutPicker.stories-BkA-VmHP.js} +1 -1
  220. package/storybook-static/assets/{Listbox-bq5sSQnZ.js → Listbox-ChaW3JrO.js} +1 -1
  221. package/storybook-static/assets/{Listbox-_MNXWNW7.js → Listbox-CyH7MftX.js} +1 -1
  222. package/storybook-static/assets/{Listbox.stories-BP9mqHoo.js → Listbox.stories-_31FVhoW.js} +1 -1
  223. package/storybook-static/assets/{Modal-CNt7-iWI.js → Modal-CaGOliEb.js} +1 -1
  224. package/storybook-static/assets/{Modal-Dwqp7agw.js → Modal-DGR9lZ4E.js} +1 -1
  225. package/storybook-static/assets/{Modal.stories-D2Hj75pl.js → Modal.stories-C1yvEVNj.js} +1 -1
  226. package/storybook-static/assets/{ModalManagerProvider-BoCpnUex.js → ModalManagerProvider-BrPY3nRM.js} +1 -1
  227. package/storybook-static/assets/{MultiSelect-B1BckUGX.js → MultiSelect-D-O71OBm.js} +1 -1
  228. package/storybook-static/assets/{MultiSelect-CTfbXQVD.js → MultiSelect-D4S4B3va.js} +1 -1
  229. package/storybook-static/assets/{MultiSelect.stories-BdMJk22c.js → MultiSelect.stories-B0QY0_Ru.js} +1 -1
  230. package/storybook-static/assets/{NoData-CNK8-UBc.js → NoData-B6xgAMXh.js} +1 -1
  231. package/storybook-static/assets/NotificationsHost-BIyd1XQ0.css +1 -0
  232. package/storybook-static/assets/{NotificationsHost-Cczj_pFY.js → NotificationsHost-DJ3Y-Bov.js} +1 -1
  233. package/storybook-static/assets/{NotificationsHost.stories-BPB6hfSI.js → NotificationsHost.stories-B2ULIi8d.js} +1 -1
  234. package/storybook-static/assets/{ODataMultiSelect-CahWMsCQ.js → ODataMultiSelect-0SfdyLn9.js} +1 -1
  235. package/storybook-static/assets/{ODataMultiSelect.stories-Dnyu2-gz.js → ODataMultiSelect.stories-BLq2Lzuq.js} +1 -1
  236. package/storybook-static/assets/{ODataSelect-DxbjbdNx.js → ODataSelect-CkdBSdJ6.js} +1 -1
  237. package/storybook-static/assets/{ODataSelect.stories-DfK9yHK7.js → ODataSelect.stories-OLMZHd_q.js} +1 -1
  238. package/storybook-static/assets/{ODataTreeMultiSelect-DOgHyKon.js → ODataTreeMultiSelect-DMLCMhQn.js} +1 -1
  239. package/storybook-static/assets/{ODataTreeMultiSelect.stories-Dv0-ackb.js → ODataTreeMultiSelect.stories-aY5Q0IHe.js} +1 -1
  240. package/storybook-static/assets/{ODataTreeSelect-DIoygv27.js → ODataTreeSelect-ME1K7NL2.js} +1 -1
  241. package/storybook-static/assets/{ODataTreeSelect.stories-D4mZcW9Z.js → ODataTreeSelect.stories-C7UPHKEr.js} +1 -1
  242. package/storybook-static/assets/{OneStepScroller-DNTilSDM.js → OneStepScroller-RRsghqzx.js} +1 -1
  243. package/storybook-static/assets/{Option-qcKM13Ly.js → Option-CcZ3aKLZ.js} +1 -1
  244. package/storybook-static/assets/Option-DD2t6DLq.css +1 -0
  245. package/storybook-static/assets/{OptionButton-DrNo-DMV.js → OptionButton-B-RTb3Ua.js} +1 -1
  246. package/storybook-static/assets/{PeriodSelect-Dk-_iKeR.js → PeriodSelect-B-89h-o8.js} +1 -1
  247. package/storybook-static/assets/{PeriodSelect-DjzmUohy.js → PeriodSelect-CUUixF0M.js} +1 -1
  248. package/storybook-static/assets/{PeriodSelect.stories-d58Lz3DJ.js → PeriodSelect.stories-CU1V-pP4.js} +1 -1
  249. package/storybook-static/assets/{PickerField-Dv1S8Wit.js → PickerField-DykK8Xgu.js} +1 -1
  250. package/storybook-static/assets/{PickerTriggerActions-dbXPGPRy.js → PickerTriggerActions-C2qYXlH1.js} +1 -1
  251. package/storybook-static/assets/{Popover-tPH8grZD.js → Popover-Bg-XuklM.js} +1 -1
  252. package/storybook-static/assets/{Popover-DMrefrsO.js → Popover-D_MNKdnD.js} +1 -1
  253. package/storybook-static/assets/{Popover.stories-BGgMddUi.js → Popover.stories-D2Asjc6d.js} +1 -1
  254. package/storybook-static/assets/{PresetRangeDateInput-Bi01AT1-.js → PresetRangeDateInput-B1KqD3aB.js} +1 -1
  255. package/storybook-static/assets/{PresetRangeDateInput-Bi5D7AvA.js → PresetRangeDateInput-CYXkpgts.js} +1 -1
  256. package/storybook-static/assets/{PresetRangeDateInput.stories-BK9PG5Us.js → PresetRangeDateInput.stories-CTML1dIg.js} +1 -1
  257. package/storybook-static/assets/{PresetSelect-Bo_urWXj.js → PresetSelect-4PvR0s4U.js} +1 -1
  258. package/storybook-static/assets/{README-CsYvQc-H.js → README--I7LDhOP.js} +1 -1
  259. package/storybook-static/assets/{README-DQzhOQJs.js → README-1Ks0ldtQ.js} +1 -1
  260. package/storybook-static/assets/{README-BCXhBI3h.js → README-44qHXI_X.js} +1 -1
  261. package/storybook-static/assets/{README-oTjX8jJr.js → README-B3Q9ZlQz.js} +1 -1
  262. package/storybook-static/assets/{README-C1EYYUCN.js → README-B5MLKvrO.js} +1 -1
  263. package/storybook-static/assets/{README-CvomZuv4.js → README-B5vVbHbw.js} +1 -1
  264. package/storybook-static/assets/{README-CiRdh2G1.js → README-BJsszjH8.js} +1 -1
  265. package/storybook-static/assets/{README-CAYUX5Nb.js → README-BK-2_7T4.js} +1 -1
  266. package/storybook-static/assets/{README-qyGL-RQj.js → README-BKGcgtnD.js} +1 -1
  267. package/storybook-static/assets/{README-DJeVd42x.js → README-BNUdkNxv.js} +1 -1
  268. package/storybook-static/assets/{README-CUw7AGFv.js → README-BSSrY3Ri.js} +1 -1
  269. package/storybook-static/assets/{README-Bccm-jZn.js → README-BVOzG1wf.js} +1 -1
  270. package/storybook-static/assets/{README-BatM3k6o.js → README-BZbDJrol.js} +1 -1
  271. package/storybook-static/assets/{README-BrnWLQ7I.js → README-BcReoeGQ.js} +1 -1
  272. package/storybook-static/assets/{README-C9LAWG5A.js → README-BdgUDdVT.js} +1 -1
  273. package/storybook-static/assets/{README-DnE0W6xN.js → README-BpSdRy6R.js} +1 -1
  274. package/storybook-static/assets/{README-CHOXjCGT.js → README-BrduLUi1.js} +1 -1
  275. package/storybook-static/assets/{README-WDknu02X.js → README-Bt44WdOn.js} +1 -1
  276. package/storybook-static/assets/{README-DXV0j4Y9.js → README-Bta2DZoW.js} +1 -1
  277. package/storybook-static/assets/{README-BbwNWG_A.js → README-Bwa8ai1X.js} +1 -1
  278. package/storybook-static/assets/{README-DRTv3qN5.js → README-C1TqCBPf.js} +1 -1
  279. package/storybook-static/assets/{README-B2NTIwVC.js → README-C5Cq8Lo7.js} +1 -1
  280. package/storybook-static/assets/{README-BOY9oCZ5.js → README-CE0sa_3S.js} +1 -1
  281. package/storybook-static/assets/{README-DENkRq75.js → README-COnopkzM.js} +1 -1
  282. package/storybook-static/assets/{README-BRxnSb_H.js → README-CUEwtG21.js} +1 -1
  283. package/storybook-static/assets/{README-DOqinQqt.js → README-CVEiXGCU.js} +1 -1
  284. package/storybook-static/assets/{README-CSkB_qWo.js → README-CWxf5v2C.js} +1 -1
  285. package/storybook-static/assets/{README-DNkooR8C.js → README-CjbqfpYX.js} +1 -1
  286. package/storybook-static/assets/{README-XlmyqVIs.js → README-CnE5ZG98.js} +1 -1
  287. package/storybook-static/assets/{README-CLfxQA5V.js → README-Co-LXT0Y.js} +1 -1
  288. package/storybook-static/assets/{README-BPDYLPfh.js → README-CoJlt7mW.js} +1 -1
  289. package/storybook-static/assets/{README-G5BEMzLO.js → README-DFiFAUAq.js} +1 -1
  290. package/storybook-static/assets/{README-cmKi-NfO.js → README-DMCaXjMn.js} +1 -1
  291. package/storybook-static/assets/{README-ChyNimpn.js → README-DecmlELk.js} +3 -3
  292. package/storybook-static/assets/{README-Bsm0nJfv.js → README-Diow36TX.js} +1 -1
  293. package/storybook-static/assets/{README-BO0pPMhH.js → README-DlE5gepf.js} +1 -1
  294. package/storybook-static/assets/{README-DLL_V1qq.js → README-Dl_id19k.js} +1 -1
  295. package/storybook-static/assets/{README-D7IkoGLE.js → README-DpxWpc-I.js} +1 -1
  296. package/storybook-static/assets/{README-DI6PuVn_.js → README-Dqpnap9b.js} +1 -1
  297. package/storybook-static/assets/{README-DSx__uJY.js → README-DrSuJ2Ll.js} +1 -1
  298. package/storybook-static/assets/{README-CIy0Pj6l.js → README-Dtb7kJXX.js} +1 -1
  299. package/storybook-static/assets/{README-CgvojwYv.js → README-Ib9AxEso.js} +1 -1
  300. package/storybook-static/assets/{README-5MsrC0tc.js → README-NCp7adRE.js} +1 -1
  301. package/storybook-static/assets/{README-CDXBNJlU.js → README-SHZwgJhZ.js} +1 -1
  302. package/storybook-static/assets/{README-Bzz8tDjY.js → README-VY7CL7vi.js} +1 -1
  303. package/storybook-static/assets/{README-BIYrg5Jw.js → README-Ve2RJTbZ.js} +1 -1
  304. package/storybook-static/assets/{README-BTCDTs4l.js → README-bU5ZgdrN.js} +1 -1
  305. package/storybook-static/assets/{README-DqTSHU_3.js → README-kpAlQZLM.js} +1 -1
  306. package/storybook-static/assets/{README-iy7SbqPS.js → README-l0W43XHl.js} +1 -1
  307. package/storybook-static/assets/{README-BxY8B5jC.js → README-tetbJraG.js} +1 -1
  308. package/storybook-static/assets/{README-DnjCb77l.js → README-vUJFU3Tw.js} +1 -1
  309. package/storybook-static/assets/{README-lyLRoc9A.js → README-vjP8Z9fC.js} +1 -1
  310. package/storybook-static/assets/{README-DCitesDJ.js → README-ypHLhhny.js} +1 -1
  311. package/storybook-static/assets/{RadioButton-C5lYvVIl.js → RadioButton-ByRN6fXm.js} +1 -1
  312. package/storybook-static/assets/{RadioButton-_-grgF60.js → RadioButton-DRIJvobR.js} +1 -1
  313. package/storybook-static/assets/{RadioButton.stories-BNifE29D.js → RadioButton.stories-C6lOZsje.js} +1 -1
  314. package/storybook-static/assets/{RadioGroup-DWfHyBaQ.js → RadioGroup-5P3FMqFW.js} +1 -1
  315. package/storybook-static/assets/{RadioGroup-BU95Hbl0.css → RadioGroup-DHnDIEgi.css} +1 -1
  316. package/storybook-static/assets/{RadioGroup-CmDrRqLi.js → RadioGroup-Dskh-JZM.js} +1 -1
  317. package/storybook-static/assets/{RadioGroup.stories-1PW9Krj9.js → RadioGroup.stories-BDbOjwVa.js} +1 -1
  318. package/storybook-static/assets/{Scrollable-CWkMU4wH.js → Scrollable-Cat0ixOK.js} +1 -1
  319. package/storybook-static/assets/{Select-BCGnO525.js → Select-BiIixkSk.js} +1 -1
  320. package/storybook-static/assets/{Select-DYtEG5uI.js → Select-ImY9WR7I.js} +1 -1
  321. package/storybook-static/assets/{Select.stories-CgldXYRU.js → Select.stories-DR8qQrXW.js} +1 -1
  322. package/storybook-static/assets/{SerializableSelect-MmvKHZiv.js → SerializableSelect-C2swvXju.js} +1 -1
  323. package/storybook-static/assets/{SerializableSelect.stories-Di0iM37P.js → SerializableSelect.stories-CvoyFECC.js} +1 -1
  324. package/storybook-static/assets/{SingleDateTimeInput-Ds5YsLHg.js → SingleDateTimeInput-CjixqW_K.js} +1 -1
  325. package/storybook-static/assets/{SingleDateTimeInput-Cz2Y7KEq.js → SingleDateTimeInput-hV5Om2LV.js} +1 -1
  326. package/storybook-static/assets/{SingleDateTimeInput.stories-BnuERNSZ.js → SingleDateTimeInput.stories-CPDP-M6P.js} +1 -1
  327. package/storybook-static/assets/Slider-DxdPx1Pb.css +1 -0
  328. package/storybook-static/assets/{Slider-Csaz4BeY.js → Slider-FbV_mr1Y.js} +1 -1
  329. package/storybook-static/assets/{Slider-CiZ7R_NX.js → Slider-PcbxPCWE.js} +1 -1
  330. package/storybook-static/assets/{Slider.stories-7Heg0Pgz.js → Slider.stories-CH9grPep.js} +1 -1
  331. package/storybook-static/assets/{SliderInput-bTh2JTHG.js → SliderInput-DPYcLCwD.js} +1 -1
  332. package/storybook-static/assets/{SliderInput-qWpLFzxj.js → SliderInput-iqnLqNiU.js} +1 -1
  333. package/storybook-static/assets/{SliderInput.stories-DR_zyE-u.js → SliderInput.stories-qVDa0KhJ.js} +1 -1
  334. package/storybook-static/assets/{Sortable-P86Ancoa.js → Sortable-DzJSN0MG.js} +1 -1
  335. package/storybook-static/assets/{Sortable.stories-iiOkIM-G.js → Sortable.stories-BaQ2T15L.js} +1 -1
  336. package/storybook-static/assets/{Splitter-mG3bB-U4.js → Splitter-Ka7c1ZDV.js} +1 -1
  337. package/storybook-static/assets/{Splitter.stories-WhQOQVRq.js → Splitter.stories-BbjjUT39.js} +1 -1
  338. package/storybook-static/assets/{StateSelect-De2PQDzp.js → StateSelect-CfyyDUiq.js} +1 -1
  339. package/storybook-static/assets/{StateSelect-u1kaZwdD.js → StateSelect-DSzDU5Jy.js} +1 -1
  340. package/storybook-static/assets/{StateSelect.stories-BO-C9UTF.js → StateSelect.stories-0c32Rlr2.js} +1 -1
  341. package/storybook-static/assets/{StatusIndicator-BiTbPB5o.js → StatusIndicator-CcCdDffH.js} +1 -1
  342. package/storybook-static/assets/StatusIndicator-CpCGmnO7.css +1 -0
  343. package/storybook-static/assets/StatusIndicator.stories-Bazi6rxF.js +31 -0
  344. package/storybook-static/assets/{StringToggle.stories-CBt8bXzz.js → StringToggle.stories-Bl6HAr4o.js} +1 -1
  345. package/storybook-static/assets/{Switch-BRKFbtp4.js → Switch-BqAkQzIJ.js} +1 -1
  346. package/storybook-static/assets/{Switch-BC2KYLX2.js → Switch-Vl7s55bO.js} +1 -1
  347. package/storybook-static/assets/{Switch.stories-BAmX4W8J.js → Switch.stories-Cq2n8Vr4.js} +1 -1
  348. package/storybook-static/assets/{Table-D1OJnVmO.js → Table-BgxoZKJs.js} +1 -1
  349. package/storybook-static/assets/Table-j_3ID7Xq.css +1 -0
  350. package/storybook-static/assets/{Table.stories-C_JSdhJl.js → Table.stories-DxnnXMZX.js} +3 -3
  351. package/storybook-static/assets/TableEditor-CaZCZgKf.css +1 -0
  352. package/storybook-static/assets/TableEditor.stories-D5Ke41-O.js +61 -0
  353. package/storybook-static/assets/{Tabs-DiUKiz-h.js → Tabs-BPJG7wBI.js} +1 -1
  354. package/storybook-static/assets/{Tabs.stories-DGys1vSD.js → Tabs.stories-cQ4RTo0w.js} +1 -1
  355. package/storybook-static/assets/{TabsBox-D-bkJX9j.css → TabsBox-B3REnb6D.css} +1 -1
  356. package/storybook-static/assets/{TabsBox-D4yfPiDY.js → TabsBox-CGgEovb9.js} +1 -1
  357. package/storybook-static/assets/{TagInput-ZyC-89b3.js → TagInput-CGHC-7Rv.js} +1 -1
  358. package/storybook-static/assets/{TagInput-ChmW4s9O.css → TagInput-RJbbcfoR.css} +1 -1
  359. package/storybook-static/assets/{TagInput.stories-hVoLW5qr.js → TagInput.stories-BSy_dJ5n.js} +1 -1
  360. package/storybook-static/assets/{Text-CMJA_7QZ.js → Text-D5fn4NbN.js} +1 -1
  361. package/storybook-static/assets/{Textarea-Du012ObX.js → Textarea-CbWAz4J8.js} +1 -1
  362. package/storybook-static/assets/{Textarea-DjKw5r4e.js → Textarea-pXxz-925.js} +1 -1
  363. package/storybook-static/assets/{Textarea.stories-ShFda4o7.js → Textarea.stories-BkPejDdf.js} +1 -1
  364. package/storybook-static/assets/{TimePanel-Bfkpbjrx.js → TimePanel-BJulRHL2.js} +1 -1
  365. package/storybook-static/assets/{TimePanel-Bh98qsCo.css → TimePanel-D9_hb7w4.css} +1 -1
  366. package/storybook-static/assets/{TimePanel.stories-4pV3fQVB.js → TimePanel.stories-CJmuKdfu.js} +1 -1
  367. package/storybook-static/assets/{Toggle-CPohFihI.js → Toggle-B2S8eW_z.js} +1 -1
  368. package/storybook-static/assets/Toggle-ClE8Zovo.css +1 -0
  369. package/storybook-static/assets/{Toggle-ChC8G1Et.js → Toggle-DjqQBHtJ.js} +1 -1
  370. package/storybook-static/assets/{Toggle.stories-B3H1M8Ra.js → Toggle.stories-7KRSUGU9.js} +1 -1
  371. package/storybook-static/assets/{TreeMultiSelect-CbNz09Jk.js → TreeMultiSelect-B7Dd0sH5.js} +1 -1
  372. package/storybook-static/assets/{TreeMultiSelect-BpuHCHgJ.js → TreeMultiSelect-DfvInPvn.js} +1 -1
  373. package/storybook-static/assets/{TreeMultiSelect.stories-Cmt05HgT.js → TreeMultiSelect.stories-DrokeiS6.js} +1 -1
  374. package/storybook-static/assets/{TreePickerBase-DGvBAQiy.js → TreePickerBase-CN9UeNWV.js} +1 -1
  375. package/storybook-static/assets/{TreePickerBase-B6DED6Hz.css → TreePickerBase-CmFF9pWE.css} +1 -1
  376. package/storybook-static/assets/{TreeSelect-DvAlRur3.js → TreeSelect-D3s-_McF.js} +1 -1
  377. package/storybook-static/assets/{TreeSelect-C_GCYsA3.js → TreeSelect-DPX2Q1Sv.js} +1 -1
  378. package/storybook-static/assets/{TreeSelect.stories-Cch2A2z5.js → TreeSelect.stories-DvUGVU34.js} +1 -1
  379. package/storybook-static/assets/TreeTable-BvB3kj4h.css +1 -0
  380. package/storybook-static/assets/{TreeTable-CmVxMvld.js → TreeTable-By3223dp.js} +1 -1
  381. package/storybook-static/assets/{TreeTable.stories-B46N8o8E.js → TreeTable.stories-DKAKV_e2.js} +2 -2
  382. package/storybook-static/assets/{array-D-_yMMUK-DYqn1Ozn.js → array-D-_yMMUK-DnJ_b27D.js} +1 -1
  383. package/storybook-static/assets/{blocks-Bu5I-6jJ.js → blocks-C4R1QC9R.js} +3 -3
  384. package/storybook-static/assets/{check-BdRTIK6S.js → check-DkXl--jW.js} +1 -1
  385. package/storybook-static/assets/{chevron-down-EtmpBUf8.js → chevron-down-DnX0I3Pg.js} +1 -1
  386. package/storybook-static/assets/{chevron-left-CTLa8HIb.js → chevron-left-18ya0d2d.js} +1 -1
  387. package/storybook-static/assets/{chevron-right-D_c_Cvi0.js → chevron-right-DilGYzJ6.js} +1 -1
  388. package/storybook-static/assets/{chunk-W22LQPXL-B7ERYz6B.js → chunk-W22LQPXL-WTP7vHyr.js} +1 -1
  389. package/storybook-static/assets/{circle-alert-Dj1kZNNX.js → circle-alert-DVNv_dVS.js} +1 -1
  390. package/storybook-static/assets/{circle-check-B1w7Ls8y.js → circle-check-vIdCi5Zq.js} +1 -1
  391. package/storybook-static/assets/{components-DqRn1i2k.js → components-BtEbmBZQ.js} +3 -3
  392. package/storybook-static/assets/{contextMenu-ylNgC9hS.js → contextMenu-1dx6rzYN.js} +1 -1
  393. package/storybook-static/assets/{defaultRenderers-CyUQG_f-.js → defaultRenderers-UxEpV_2H.js} +1 -1
  394. package/storybook-static/assets/{download-dw_WzNlC.js → download-37V1rEcU.js} +1 -1
  395. package/storybook-static/assets/{floating-ui.react-C9sdi3nv.js → floating-ui.react-DT-xu5am.js} +1 -1
  396. package/storybook-static/assets/{formatters-DVE1YVNQ-CMsbb5-m.js → formatters-DVE1YVNQ-YIdRxgw-.js} +1 -1
  397. package/storybook-static/assets/{foundationApi-BJETphYp.js → foundationApi-FaYaPMaR.js} +1 -1
  398. package/storybook-static/assets/{foundationLib-DfRlYoD7.js → foundationLib-DLCLUXOF.js} +1 -1
  399. package/storybook-static/assets/{hooks-B-ZW7F36.js → hooks-BuU9-pEZ.js} +1 -1
  400. package/storybook-static/assets/{iframe-D0R9pFj7.js → iframe-0M2vpakb.js} +4 -4
  401. package/storybook-static/assets/iframe-BMXB4CtM.js +1 -0
  402. package/storybook-static/assets/iframe-BT_jngkf.css +1 -0
  403. package/storybook-static/assets/{info-B0qzF0Mr.js → info-2PUHH67D.js} +1 -1
  404. package/storybook-static/assets/odata-DIkxH78d.js +1 -0
  405. package/storybook-static/assets/odataStoryFixtures-BDQiSxyk.js +25 -0
  406. package/storybook-static/assets/{react-ClkCNz5L.js → react-CfjIdTfH.js} +1 -1
  407. package/storybook-static/assets/{refresh-cw-K68D1zRy.js → refresh-cw-CHFG8NIc.js} +1 -1
  408. package/storybook-static/assets/{settings-2-D0jFfhpt.js → settings-2-CYde2-4U.js} +1 -1
  409. package/storybook-static/assets/{sortable-fWu4d9fl.js → sortable-Cy9ZqA3f.js} +1 -1
  410. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-Cs3Bxe3I.js → syntaxhighlighter-QEQV7K2Y-C2U-3XXV.js} +1 -1
  411. package/storybook-static/assets/tableFeatures-Dx3U-F9E.js +1 -0
  412. package/storybook-static/assets/{trash-2-Bj60L0sq.js → trash-2-7-oMZEr8.js} +1 -1
  413. package/storybook-static/assets/{triangle-alert-CmzQ-r9i.js → triangle-alert-BSmuthen.js} +1 -1
  414. package/storybook-static/assets/ui-DSS1yTEO.css +1 -0
  415. package/storybook-static/assets/ui.module-SH8ehXul.js +1 -0
  416. package/storybook-static/assets/uiClasses-e9OQfdw2.js +1 -0
  417. package/storybook-static/assets/{useODataSelectBase-CC4MnYeK.js → useODataSelectBase-C3B3Xw87.js} +1 -1
  418. package/storybook-static/assets/{useODataTreeData-DsQmGQij.js → useODataTreeData-deUW5mSv.js} +1 -1
  419. package/storybook-static/assets/{usePickerDefaultFilter-BMBLqfz8.js → usePickerDefaultFilter-ien2ZY7g.js} +1 -1
  420. package/storybook-static/assets/{usePickerQuery-Qg7qGfmP.js → usePickerQuery-DdE3I7AV.js} +1 -1
  421. package/storybook-static/assets/{usePickerTriggerController-D-mhhmpS.js → usePickerTriggerController-ZRvj4FHy.js} +1 -1
  422. package/storybook-static/assets/useTable-CK68Q4S4.js +1 -0
  423. package/storybook-static/assets/{x-DU3Tpzms.js → x-NXcyLtyX.js} +1 -1
  424. package/storybook-static/iframe.html +3 -3
  425. package/storybook-static/index.json +1 -1
  426. package/storybook-static/project.json +1 -1
  427. package/dist/chunks/CalendarView-Bhaov_XE.js.map +0 -1
  428. package/dist/chunks/TextEditorLexicalClient-CSXZQOYo.js.map +0 -1
  429. package/dist/chunks/badge-DUI2ET6q.js.map +0 -1
  430. package/dist/chunks/context-menu-Dj6MXgv6.js.map +0 -1
  431. package/dist/chunks/input-D1jOxm0t.js.map +0 -1
  432. package/dist/chunks/input-files-CDGpJaUm.js.map +0 -1
  433. package/dist/chunks/picker-DZ4-1BvK.js.map +0 -1
  434. package/dist/chunks/radio-group-DhpP7JSJ.js.map +0 -1
  435. package/dist/chunks/table-DMLFUBlb.js.map +0 -1
  436. package/dist/chunks/ui.module-BsDio9A3.js.map +0 -1
  437. package/dist/chunks/uiClasses-BVwFzzsr.js.map +0 -1
  438. package/dist/dialog/index.js.map +0 -1
  439. package/storybook-static/assets/Button.stories-CLMnxj3w.js +0 -93
  440. package/storybook-static/assets/CalendarView-DKvrkS40.css +0 -1
  441. package/storybook-static/assets/ContextMenu-CFPrlO2u.css +0 -1
  442. package/storybook-static/assets/DisclosureGroup-CVFMwx22.css +0 -1
  443. package/storybook-static/assets/FloatingPopover-jwILx9b0.css +0 -1
  444. package/storybook-static/assets/FormattedTableCell-AZc2IHfK.css +0 -1
  445. package/storybook-static/assets/FormattedTableCell-CXyG4Yj2.js +0 -15
  446. package/storybook-static/assets/ImageViewerRuntime-CRmlrtpL.css +0 -1
  447. package/storybook-static/assets/NotificationsHost-D5Pvn4eu.css +0 -1
  448. package/storybook-static/assets/Option-DXh7BISz.css +0 -1
  449. package/storybook-static/assets/Slider-CK-W2ZTO.css +0 -1
  450. package/storybook-static/assets/StatusIndicator-CU9ICMrC.css +0 -1
  451. package/storybook-static/assets/StatusIndicator.stories-COaZnrFa.js +0 -31
  452. package/storybook-static/assets/Table-BGvRn9y0.css +0 -1
  453. package/storybook-static/assets/Toggle-fKG2dFY0.css +0 -1
  454. package/storybook-static/assets/TreeTable--ZoksUiw.css +0 -1
  455. package/storybook-static/assets/iframe-COgZ5GwG.js +0 -1
  456. package/storybook-static/assets/iframe-IhWQT6NX.css +0 -1
  457. package/storybook-static/assets/odata-tqjAk19x.js +0 -1
  458. package/storybook-static/assets/odataStoryFixtures-D2yHs_jK.js +0 -25
  459. package/storybook-static/assets/ui-C3BskXT9.css +0 -1
  460. package/storybook-static/assets/ui.module-31LPbZGK.js +0 -1
  461. package/storybook-static/assets/uiClasses-Bz6cvlDQ.js +0 -1
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bu5I-6jJ.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-iiOkIM-G.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-C4R1QC9R.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-BaQ2T15L.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,C.jsx)(u,{children:`Sortable`}),`
3
3
  `,(0,C.jsxs)(o,{children:[`Headless-набор для сортируемых коллекций на базе `,(0,C.jsx)(t.code,{children:`dnd-kit`}),` с поддержкой list, horizontal и grid-layout`]}),`
4
4
  `,(0,C.jsxs)(t.p,{children:[(0,C.jsx)(t.code,{children:`Sortable`}),` не навязывает визуальный вид элементов и используется как композиционный слой поверх `,(0,C.jsx)(t.code,{children:`dnd-kit`}),`.
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a,t as o}from"./sortable-fWu4d9fl.js";import{n as s}from"./iframe-D0R9pFj7.js";var c=t({Basic:()=>S,DisabledItems:()=>T,GridCards:()=>w,HandleOnly:()=>E,HorizontalList:()=>C,NestedContainers:()=>D,SortablePreview:()=>f,__namedExportsOrder:()=>O,default:()=>x});function l(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function u(e){switch(e){case`horizontal`:return{display:`flex`,gap:`var(--space-sm)`,overflowX:`auto`};case`grid`:return{display:`grid`,gap:`var(--space-sm)`,gridTemplateColumns:`repeat(auto-fill, minmax(12rem, 1fr))`};default:return{display:`grid`,gap:`var(--space-sm)`}}}function d(e){let t=e.initialItems,n=new Set(e.disabledIds??[]);return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:n=>{let r=a({event:n,items:{[e.containerId]:t}});r&&e.onItemsChange(l(t,r.fromIndex,r.toIndex))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:t,layout:e.layout,children:(0,h.jsx)(`div`,{style:u(e.layout),children:t.map(t=>(0,h.jsxs)(o.Item,{id:t,disabled:n.has(t),style:{..._,minWidth:e.itemWidth},children:[(0,h.jsx)(o.DragHandle,{title:`Перетащить ${t}`}),(0,h.jsx)(`div`,{children:t})]},t))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f(e){let[t,n]=(0,m.useState)(e.initialItems);return(0,h.jsx)(d,{...e,initialItems:t,onItemsChange:n})}function p({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,m.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:o=>{let s=a({event:o,items:{[e.containerId]:n,...Object.fromEntries(n.map(e=>[`parent:${e}`,r[e]??[]]))}});if(!s)return;if(s.containerId===e.containerId){t(l(n,s.fromIndex,s.toIndex));return}let c=String(s.containerId).slice(7);i(e=>({...e,[c]:l(e[c]??[],s.fromIndex,s.toIndex)}))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,h.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,h.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,h.jsx)(`strong`,{children:e}),(0,h.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,background:`var(--surface-1)`},children:[(0,h.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,h.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{m=n(),i(),r(),h=s(),{useArgs:g}=__STORYBOOK_MODULE_PREVIEW_API__,_={display:`grid`,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`center`,gap:`var(--space-sm)`,padding:`var(--space-sm)`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-0)`},v=[`Alpha`,`Bravo`,`Charlie`,`Delta`],y=[`Фильтры`,`Графики`,`Сводка`,`История`],b=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],x={title:`UI/Sortable`,component:f,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:v,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},render:function(e){let[,t]=g();return(0,h.jsx)(d,{...e,onItemsChange:e=>t({initialItems:e})})},argTypes:{containerId:{description:"Идентификатор `SortableContext`, который используется для вычисления reorder внутри контейнера.",control:`text`},layout:{description:`Режим раскладки и стратегия сортировки: вертикальный список, горизонтальный список или grid.`,control:`inline-radio`,options:[`vertical`,`horizontal`,`grid`]},initialItems:{description:`Текущий порядок элементов. После drag-and-drop обновляется в Storybook args.`,control:!1},itemWidth:{description:`Минимальная ширина карточки; полезна для горизонтального режима.`,control:`text`},disabledIds:{description:`Список id, для которых drag-handle отключен.`,control:!1}}},S={},C={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:y,itemWidth:`12rem`}},w={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:b}},T={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:v,disabledIds:[`Bravo`,`Delta`]}},E={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},D={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=g();return(0,h.jsx)(p,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},f.__docgenInfo={description:`Предоставляет самостоятельный React-preview компонента вне Storybook.
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a,t as o}from"./sortable-Cy9ZqA3f.js";import{n as s}from"./iframe-0M2vpakb.js";var c=t({Basic:()=>S,DisabledItems:()=>T,GridCards:()=>w,HandleOnly:()=>E,HorizontalList:()=>C,NestedContainers:()=>D,SortablePreview:()=>f,__namedExportsOrder:()=>O,default:()=>x});function l(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function u(e){switch(e){case`horizontal`:return{display:`flex`,gap:`var(--space-sm)`,overflowX:`auto`};case`grid`:return{display:`grid`,gap:`var(--space-sm)`,gridTemplateColumns:`repeat(auto-fill, minmax(12rem, 1fr))`};default:return{display:`grid`,gap:`var(--space-sm)`}}}function d(e){let t=e.initialItems,n=new Set(e.disabledIds??[]);return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:n=>{let r=a({event:n,items:{[e.containerId]:t}});r&&e.onItemsChange(l(t,r.fromIndex,r.toIndex))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:t,layout:e.layout,children:(0,h.jsx)(`div`,{style:u(e.layout),children:t.map(t=>(0,h.jsxs)(o.Item,{id:t,disabled:n.has(t),style:{..._,minWidth:e.itemWidth},children:[(0,h.jsx)(o.DragHandle,{title:`Перетащить ${t}`}),(0,h.jsx)(`div`,{children:t})]},t))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f(e){let[t,n]=(0,m.useState)(e.initialItems);return(0,h.jsx)(d,{...e,initialItems:t,onItemsChange:n})}function p({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,m.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:o=>{let s=a({event:o,items:{[e.containerId]:n,...Object.fromEntries(n.map(e=>[`parent:${e}`,r[e]??[]]))}});if(!s)return;if(s.containerId===e.containerId){t(l(n,s.fromIndex,s.toIndex));return}let c=String(s.containerId).slice(7);i(e=>({...e,[c]:l(e[c]??[],s.fromIndex,s.toIndex)}))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,h.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,h.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,h.jsx)(`strong`,{children:e}),(0,h.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,background:`var(--surface-1)`},children:[(0,h.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,h.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{m=n(),i(),r(),h=s(),{useArgs:g}=__STORYBOOK_MODULE_PREVIEW_API__,_={display:`grid`,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`center`,gap:`var(--space-sm)`,padding:`var(--space-sm)`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-0)`},v=[`Alpha`,`Bravo`,`Charlie`,`Delta`],y=[`Фильтры`,`Графики`,`Сводка`,`История`],b=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],x={title:`UI/Sortable`,component:f,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:v,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},render:function(e){let[,t]=g();return(0,h.jsx)(d,{...e,onItemsChange:e=>t({initialItems:e})})},argTypes:{containerId:{description:"Идентификатор `SortableContext`, который используется для вычисления reorder внутри контейнера.",control:`text`},layout:{description:`Режим раскладки и стратегия сортировки: вертикальный список, горизонтальный список или grid.`,control:`inline-radio`,options:[`vertical`,`horizontal`,`grid`]},initialItems:{description:`Текущий порядок элементов. После drag-and-drop обновляется в Storybook args.`,control:!1},itemWidth:{description:`Минимальная ширина карточки; полезна для горизонтального режима.`,control:`text`},disabledIds:{description:`Список id, для которых drag-handle отключен.`,control:!1}}},S={},C={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:y,itemWidth:`12rem`}},w={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:b}},T={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:v,disabledIds:[`Bravo`,`Delta`]}},E={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},D={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=g();return(0,h.jsx)(p,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},f.__docgenInfo={description:`Предоставляет самостоятельный React-preview компонента вне Storybook.
2
2
  Storybook использует отдельный render ниже, чтобы синхронизировать порядок с args.`,methods:[],displayName:`SortablePreview`,props:{containerId:{required:!0,tsType:{name:`string`},description:``},layout:{required:!0,tsType:{name:`union`,raw:`"vertical" | "horizontal" | "grid"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"grid"`}]},description:``},initialItems:{required:!0,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``},itemWidth:{required:!1,tsType:{name:`string`},description:``},disabledIds:{required:!1,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``}}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`function SortablePreview(props: SortablePreviewProps) {
3
3
  const [items, setItems] = useState(props.initialItems);
4
4
  return <SortablePreviewCanvas {...props} initialItems={items} onItemsChange={setItems} />;
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bu5I-6jJ.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Splitter.stories-WhQOQVRq.js";function y(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-C4R1QC9R.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Splitter.stories-BbjjUT39.js";function y(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`Splitter`}),`
3
3
  `,(0,x.jsx)(o,{children:(0,x.jsx)(t.p,{children:`Компонент для интерактивного разделения рабочей области на две панели с поддержкой вложенности, клавиатуры и ограничений по размеру`})}),`
4
4
  `,(0,x.jsxs)(t.p,{children:[(0,x.jsx)(t.code,{children:`Splitter`}),` подходит для интерфейсов, где пользователь должен самостоятельно перераспределять пространство между соседними областями: навигацией и контентом, таблицей и деталями, превью и журналом событий.`]}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-D0R9pFj7.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{o=`wAovST`,s=`QVVMwe`,c=`H43AJ8`,l=`pgo8sW`,u=`_8fCvqA`,d=`t6RFcI`,f={splitter:o,vertical:s,separator:c,horizontal:l,topLeft:u,bottomRight:d}})))()}function m(e,t,n){return Math.min(n,Math.max(t,e))}function h(e,t){return Number.isFinite(e)?m(e,0,1):t}function g(e,t){let n=h(e,E),r=h(t,D);return n<=r?[n,r]:[r,n]}function _(e,t){return e===`vertical`?t.clientX:t.clientY}function v(e,t){return e===`vertical`?t.width:t.height}function y(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return k}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return k}return null}function b(e,t){return t===`start`?0:t===`end`?1:e}function x({direction:e,initial:t,min:n,max:r,collapsedPane:i}){let[a,o]=g(n,r),s=(0,w.useRef)(null),c=(0,w.useRef)(null),l=(0,w.useRef)(null),u=(0,w.useRef)(null),d=(0,w.useRef)(null),f=(0,w.useRef)(null),p=(0,w.useRef)(0),x=(0,w.useRef)(m(h(t,O),a,o)),S=(0,w.useRef)(t),[C,T]=(0,w.useState)(()=>m(h(t,O),a,o)),E=(0,w.useRef)(C),D=(0,w.useCallback)(e=>{E.current=e,c.current?.style.setProperty(`flex-basis`,`${b(e,i)*100}%`),l.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[i]),k=()=>{if(f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),d.current===null)return E.current;let e=d.current;return d.current=null,D(e),e},A=e=>{d.current=e,f.current===null&&(f.current=requestAnimationFrame(()=>{f.current=null,d.current!==null&&D(d.current)}))},j=()=>{u.current?.(),u.current=null},M=e=>{k(),T(m(e,a,o))};return(0,w.useLayoutEffect)(()=>{D(C)},[D,C]),(0,w.useEffect)(()=>{T(e=>{let n=S.current!==t;return S.current=t,m(n?h(t,O):e,a,o)})},[t,a,o]),(0,w.useEffect)(()=>()=>{j(),f.current!==null&&cancelAnimationFrame(f.current)},[]),{containerRef:s,topLeftRef:c,separatorRef:l,ratio:C,minRatio:a,maxRatio:o,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=s.current;if(!n)return;j();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}p.current=_(e,t),x.current=E.current;let r=t=>{let r=v(e,n.getBoundingClientRect());if(r<=0)return;let i=_(e,t)-p.current,s=m(x.current+i/r,a,o);A(s)},i=()=>{j(),T(k())};u.current=()=>{document.removeEventListener(`pointermove`,r),document.removeEventListener(`pointerup`,i),document.removeEventListener(`pointercancel`,i)},document.addEventListener(`pointermove`,r),document.addEventListener(`pointerup`,i),document.addEventListener(`pointercancel`,i)},handleSeparatorKeyDown:t=>{let n=y(e,t.key);if(n!==null){t.preventDefault(),M(E.current+n);return}if(t.key===`Home`){t.preventDefault(),M(a);return}t.key===`End`&&(t.preventDefault(),M(o))}}}function S({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:p,handleSeparatorPointerDown:m,handleSeparatorKeyDown:h}=o,g=b(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,T.jsxs)(`div`,{ref:s,className:i(f.splitter,f[t],e),children:[(0,T.jsx)(`div`,{ref:c,className:f.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,T.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(p*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:m,onKeyDown:h,className:f.separator}),(0,T.jsx)(`div`,{className:f.bottomRight,hidden:v,children:r})]})}function C({direction:e=`vertical`,initial:t=O,min:n=E,max:r=D,className:i,collapsedPane:a=null,children:o}){let[s,c]=w.Children.toArray(o),l=x({direction:e,initial:t,min:n,max:r,collapsedPane:a});return c?(0,T.jsx)(S,{className:i,direction:e,left:s,right:c,collapsedPane:a,logic:l}):s}var w,T,E,D,O,k;function A(){return(A=e((()=>{w=n(),a(),p(),T=r(),E=.1,D=.9,O=.7,k=.02,C.__docgenInfo={description:``,methods:[],displayName:`Splitter`,props:{direction:{defaultValue:{value:`"vertical"`,computed:!1},required:!1},initial:{defaultValue:{value:`0.7`,computed:!1},required:!1},min:{defaultValue:{value:`0.1`,computed:!1},required:!1},max:{defaultValue:{value:`0.9`,computed:!1},required:!1},collapsedPane:{defaultValue:{value:`null`,computed:!1},required:!1}}}})))()}var j=t({Basic:()=>B,Constrained:()=>U,Horizontal:()=>V,NestedFourPanels:()=>H,__namedExportsOrder:()=>W,default:()=>z});function M({children:e}){return(0,L.jsx)(`div`,{style:{height:490},children:e})}function N({title:e,description:t,items:n=[]}){return(0,L.jsxs)(`div`,{style:{height:`100%`,padding:`var(--space-md)`,borderRadius:`var(--radius-md)`,border:`var(--border)`,display:`grid`,alignContent:`start`,gap:`var(--space-md)`},className:`scrollable`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),n.length>0&&(0,L.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,L.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function P(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,L.jsx)(N,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function F(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsxs)(C,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,L.jsx)(N,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,L.jsx)(N,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,L.jsxs)(C,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,L.jsx)(N,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,L.jsx)(N,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function I(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,L.jsx)(N,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var L,R,z,B,V,H,U,W;function G(){return(G=e((()=>{A(),L=r(),{useArgs:R}=__STORYBOOK_MODULE_PREVIEW_API__,z={title:`UI/Splitter`,component:C,parameters:{atomicCanvas:!0,layout:`padded`},args:{direction:`vertical`,initial:.45,min:.15,max:.85},argTypes:{direction:{description:`Направление разделения: вертикальное по ширине или горизонтальное по высоте.`,control:`inline-radio`,options:[`vertical`,`horizontal`]},initial:{description:`Начальная доля первой панели в диапазоне от 0 до 1.`,control:{type:`range`,min:0,max:1,step:.01}},min:{description:`Минимальная доля первой панели. Значение автоматически нормализуется в диапазон 0..1.`,control:{type:`range`,min:0,max:1,step:.01}},max:{description:"Максимальная доля первой панели. Если `min` и `max` перепутаны местами, компонент сам исправит диапазон.",control:{type:`range`,min:0,max:1,step:.01}},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},B={name:`Две панели`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})}},V={name:`Горизонтальное разделение`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})},args:{direction:`horizontal`,initial:.55}},H={name:`Четыре панели через вложенность`,render:function(){let[e]=R();return(0,L.jsx)(F,{...e})},args:{initial:.48,min:.25,max:.75}},U={name:`Ограничения и клавиатура`,render:function(){let[e]=R();return(0,L.jsx)(I,{...e})},args:{initial:.35,min:.25,max:.55}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-0M2vpakb.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{o=`wAovST`,s=`QVVMwe`,c=`H43AJ8`,l=`pgo8sW`,u=`_8fCvqA`,d=`t6RFcI`,f={splitter:o,vertical:s,separator:c,horizontal:l,topLeft:u,bottomRight:d}})))()}function m(e,t,n){return Math.min(n,Math.max(t,e))}function h(e,t){return Number.isFinite(e)?m(e,0,1):t}function g(e,t){let n=h(e,E),r=h(t,D);return n<=r?[n,r]:[r,n]}function _(e,t){return e===`vertical`?t.clientX:t.clientY}function v(e,t){return e===`vertical`?t.width:t.height}function y(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return k}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return k}return null}function b(e,t){return t===`start`?0:t===`end`?1:e}function x({direction:e,initial:t,min:n,max:r,collapsedPane:i}){let[a,o]=g(n,r),s=(0,w.useRef)(null),c=(0,w.useRef)(null),l=(0,w.useRef)(null),u=(0,w.useRef)(null),d=(0,w.useRef)(null),f=(0,w.useRef)(null),p=(0,w.useRef)(0),x=(0,w.useRef)(m(h(t,O),a,o)),S=(0,w.useRef)(t),[C,T]=(0,w.useState)(()=>m(h(t,O),a,o)),E=(0,w.useRef)(C),D=(0,w.useCallback)(e=>{E.current=e,c.current?.style.setProperty(`flex-basis`,`${b(e,i)*100}%`),l.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[i]),k=()=>{if(f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),d.current===null)return E.current;let e=d.current;return d.current=null,D(e),e},A=e=>{d.current=e,f.current===null&&(f.current=requestAnimationFrame(()=>{f.current=null,d.current!==null&&D(d.current)}))},j=()=>{u.current?.(),u.current=null},M=e=>{k(),T(m(e,a,o))};return(0,w.useLayoutEffect)(()=>{D(C)},[D,C]),(0,w.useEffect)(()=>{T(e=>{let n=S.current!==t;return S.current=t,m(n?h(t,O):e,a,o)})},[t,a,o]),(0,w.useEffect)(()=>()=>{j(),f.current!==null&&cancelAnimationFrame(f.current)},[]),{containerRef:s,topLeftRef:c,separatorRef:l,ratio:C,minRatio:a,maxRatio:o,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=s.current;if(!n)return;j();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}p.current=_(e,t),x.current=E.current;let r=t=>{let r=v(e,n.getBoundingClientRect());if(r<=0)return;let i=_(e,t)-p.current,s=m(x.current+i/r,a,o);A(s)},i=()=>{j(),T(k())};u.current=()=>{document.removeEventListener(`pointermove`,r),document.removeEventListener(`pointerup`,i),document.removeEventListener(`pointercancel`,i)},document.addEventListener(`pointermove`,r),document.addEventListener(`pointerup`,i),document.addEventListener(`pointercancel`,i)},handleSeparatorKeyDown:t=>{let n=y(e,t.key);if(n!==null){t.preventDefault(),M(E.current+n);return}if(t.key===`Home`){t.preventDefault(),M(a);return}t.key===`End`&&(t.preventDefault(),M(o))}}}function S({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:p,handleSeparatorPointerDown:m,handleSeparatorKeyDown:h}=o,g=b(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,T.jsxs)(`div`,{ref:s,className:i(f.splitter,f[t],e),children:[(0,T.jsx)(`div`,{ref:c,className:f.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,T.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(p*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:m,onKeyDown:h,className:f.separator}),(0,T.jsx)(`div`,{className:f.bottomRight,hidden:v,children:r})]})}function C({direction:e=`vertical`,initial:t=O,min:n=E,max:r=D,className:i,collapsedPane:a=null,children:o}){let[s,c]=w.Children.toArray(o),l=x({direction:e,initial:t,min:n,max:r,collapsedPane:a});return c?(0,T.jsx)(S,{className:i,direction:e,left:s,right:c,collapsedPane:a,logic:l}):s}var w,T,E,D,O,k;function A(){return(A=e((()=>{w=n(),a(),p(),T=r(),E=.1,D=.9,O=.7,k=.02,C.__docgenInfo={description:``,methods:[],displayName:`Splitter`,props:{direction:{defaultValue:{value:`"vertical"`,computed:!1},required:!1},initial:{defaultValue:{value:`0.7`,computed:!1},required:!1},min:{defaultValue:{value:`0.1`,computed:!1},required:!1},max:{defaultValue:{value:`0.9`,computed:!1},required:!1},collapsedPane:{defaultValue:{value:`null`,computed:!1},required:!1}}}})))()}var j=t({Basic:()=>B,Constrained:()=>U,Horizontal:()=>V,NestedFourPanels:()=>H,__namedExportsOrder:()=>W,default:()=>z});function M({children:e}){return(0,L.jsx)(`div`,{style:{height:490},children:e})}function N({title:e,description:t,items:n=[]}){return(0,L.jsxs)(`div`,{style:{height:`100%`,padding:`var(--space-md)`,borderRadius:`var(--radius-md)`,border:`var(--border)`,display:`grid`,alignContent:`start`,gap:`var(--space-md)`},className:`scrollable`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),n.length>0&&(0,L.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,L.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function P(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,L.jsx)(N,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function F(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsxs)(C,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,L.jsx)(N,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,L.jsx)(N,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,L.jsxs)(C,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,L.jsx)(N,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,L.jsx)(N,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function I(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,L.jsx)(N,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var L,R,z,B,V,H,U,W;function G(){return(G=e((()=>{A(),L=r(),{useArgs:R}=__STORYBOOK_MODULE_PREVIEW_API__,z={title:`UI/Splitter`,component:C,parameters:{atomicCanvas:!0,layout:`padded`},args:{direction:`vertical`,initial:.45,min:.15,max:.85},argTypes:{direction:{description:`Направление разделения: вертикальное по ширине или горизонтальное по высоте.`,control:`inline-radio`,options:[`vertical`,`horizontal`]},initial:{description:`Начальная доля первой панели в диапазоне от 0 до 1.`,control:{type:`range`,min:0,max:1,step:.01}},min:{description:`Минимальная доля первой панели. Значение автоматически нормализуется в диапазон 0..1.`,control:{type:`range`,min:0,max:1,step:.01}},max:{description:"Максимальная доля первой панели. Если `min` и `max` перепутаны местами, компонент сам исправит диапазон.",control:{type:`range`,min:0,max:1,step:.01}},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},B={name:`Две панели`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})}},V={name:`Горизонтальное разделение`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})},args:{direction:`horizontal`,initial:.55}},H={name:`Четыре панели через вложенность`,render:function(){let[e]=R();return(0,L.jsx)(F,{...e})},args:{initial:.48,min:.25,max:.75}},U={name:`Ограничения и клавиатура`,render:function(){let[e]=R();return(0,L.jsx)(I,{...e})},args:{initial:.35,min:.25,max:.55}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
2
2
  name: "Две панели",
3
3
  render: function Render() {
4
4
  const [args] = useArgs<ComponentProps<typeof Splitter>>();
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bu5I-6jJ.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-BO-C9UTF.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-C4R1QC9R.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-0c32Rlr2.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`StateSelect`}),`
3
3
  `,(0,b.jsx)(o,{children:`Специализированный select для выбора визуального статуса или семантического состояния`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`StateSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-D0R9pFj7.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{a,h as o,o as s}from"./formatters-DVE1YVNQ-CMsbb5-m.js";import{n as c,t as l}from"./Select-BCGnO525.js";var u,d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{u=`p4nQdZ`,d=`_94tg5v`,f=`HyK7Zs`,p=`Mm4hrB`,m=`clxxBQ`,h=`_5pJ7o-`,g=`VV6hKN`,_=`cuQNP0`,v=`w7nIOT`,y=`ed-Afj`,b=`Lbxloe`,x={button:u,valueContainer:d,swatch:f,optionsPalette:p,optionsDetailed:m,option:h,optionPalette:g,optionDetailed:_,optionMeta:v,optionMetaIcon:y,optionMetaLabel:b}})))()}function C({state:e,className:t}){return(0,A.jsx)(`span`,{className:r(x.swatch,t),"data-empty":e===`none`?``:void 0,style:{"--state-color":s[e]}})}function w(e){return!!(e?.icon||e?.label)}function T(e,t){return typeof t?.label==`string`&&t.label.trim()?t.label:e||`empty`}function E(e){return w(e)?(0,A.jsxs)(`span`,{className:x.optionMeta,children:[e?.icon?(0,A.jsx)(`span`,{className:x.optionMetaIcon,children:e.icon}):null,e?.label?(0,A.jsx)(`span`,{className:x.optionMetaLabel,children:e.label}):null]}):null}function D(e,t){return(0,A.jsxs)(`div`,{className:x.valueContainer,children:[(0,A.jsx)(C,{state:e}),E(t)]})}function O({label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:u=a,stateMeta:d,className:f,clearable:p}){let m=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),h=m.some(e=>w(d?.[e])),g={getOptionKey:e=>e||`__empty_state__`,getOptionLabel:e=>d?.[e]?.label??e,getOptionAriaLabel:e=>T(e,d?.[e]),renderValue:e=>D(e,d?.[e]),renderOption:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(C,{state:e}),h?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(h?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,h?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:m,className:f,clearable:p,...g})}var k,A;function j(){return(j=e((()=>{k=t(),o(),i(),c(),S(),A=n(),O.__docgenInfo={description:`Специализированный селект для выбора цветового или статусного состояния. Используется там, где значению соответствует визуальный swatch.`,methods:[],displayName:`StateSelect`,props:{placeholder:{required:!1,tsType:{name:`string`},description:``},options:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`DEFAULT_VALUE_STATES`,computed:!0}},stateMeta:{required:!1,tsType:{name:`Partial`,elements:[{name:`Record`,elements:[{name:`State`},{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-0M2vpakb.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{a,h as o,o as s}from"./formatters-DVE1YVNQ-YIdRxgw-.js";import{n as c,t as l}from"./Select-BiIixkSk.js";var u,d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{u=`p4nQdZ`,d=`_94tg5v`,f=`HyK7Zs`,p=`Mm4hrB`,m=`clxxBQ`,h=`_5pJ7o-`,g=`VV6hKN`,_=`cuQNP0`,v=`w7nIOT`,y=`ed-Afj`,b=`Lbxloe`,x={button:u,valueContainer:d,swatch:f,optionsPalette:p,optionsDetailed:m,option:h,optionPalette:g,optionDetailed:_,optionMeta:v,optionMetaIcon:y,optionMetaLabel:b}})))()}function C({state:e,className:t}){return(0,A.jsx)(`span`,{className:r(x.swatch,t),"data-empty":e===`none`?``:void 0,style:{"--state-color":s[e]}})}function w(e){return!!(e?.icon||e?.label)}function T(e,t){return typeof t?.label==`string`&&t.label.trim()?t.label:e||`empty`}function E(e){return w(e)?(0,A.jsxs)(`span`,{className:x.optionMeta,children:[e?.icon?(0,A.jsx)(`span`,{className:x.optionMetaIcon,children:e.icon}):null,e?.label?(0,A.jsx)(`span`,{className:x.optionMetaLabel,children:e.label}):null]}):null}function D(e,t){return(0,A.jsxs)(`div`,{className:x.valueContainer,children:[(0,A.jsx)(C,{state:e}),E(t)]})}function O({label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:u=a,stateMeta:d,className:f,clearable:p}){let m=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),h=m.some(e=>w(d?.[e])),g={getOptionKey:e=>e||`__empty_state__`,getOptionLabel:e=>d?.[e]?.label??e,getOptionAriaLabel:e=>T(e,d?.[e]),renderValue:e=>D(e,d?.[e]),renderOption:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(C,{state:e}),h?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(h?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,h?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:m,className:f,clearable:p,...g})}var k,A;function j(){return(j=e((()=>{k=t(),o(),i(),c(),S(),A=n(),O.__docgenInfo={description:`Специализированный селект для выбора цветового или статусного состояния. Используется там, где значению соответствует визуальный swatch.`,methods:[],displayName:`StateSelect`,props:{placeholder:{required:!1,tsType:{name:`string`},description:``},options:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`DEFAULT_VALUE_STATES`,computed:!0}},stateMeta:{required:!1,tsType:{name:`Partial`,elements:[{name:`Record`,elements:[{name:`State`},{name:`signature`,type:`object`,raw:`{
2
2
  label?: string;
3
3
  icon?: ReactNode;
4
4
  }`,signature:{properties:[{key:`label`,value:{name:`string`,required:!1}},{key:`icon`,value:{name:`ReactNode`,required:!1}}]}}],raw:`Record<State, StateMeta>`}],raw:`Partial<Record<State, StateMeta>>`},description:``},className:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}export{j as n,O as t};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-B1w7Ls8y.js";import{i,n as a,r as o,t as s}from"./info-B0qzF0Mr.js";import{n as c,t as l}from"./triangle-alert-CmzQ-r9i.js";import{i as u,n as d,r as f}from"./iframe-D0R9pFj7.js";import{n as p,t as m}from"./StateSelect-u1kaZwdD.js";var h,g;function _(){return(_=e((()=>{u(),h=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}]],g=f(`circle-minus`,h)})))()}var v=t({Controlled:()=>C,PaletteOnly:()=>T,WithMeta:()=>w,__namedExportsOrder:()=>E,default:()=>S}),y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{c(),n(),a(),_(),i(),p(),y=d(),{useArgs:b}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:x}=__STORYBOOK_MODULE_TEST__,S={title:`UI/StateSelect`,component:m,args:{label:`Состояние`,description:`Выберите визуальный статус.`,placeholder:`Выберите значение`,value:`information`,onChange:x(),disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля выбора состояния.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение не выбрано.`,control:`text`},value:{description:`Текущее состояние.`,control:`select`,options:[``,`none`,`information`,`success`,`warning`,`error`]},onChange:{description:`Вызывается при выборе состояния.`,control:!1},options:{description:`Кастомный набор доступных состояний.`,control:!1},stateMeta:{description:`Кастомные иконки и подписи для значений.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранного состояния.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},C={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`information`,onChange:n=>{e.onChange(n),t({value:n})}})}},w={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`warning`,onChange:n=>{e.onChange(n),t({value:n})},stateMeta:{none:{label:`Без статуса`,icon:(0,y.jsx)(g,{})},information:{label:`Инфо`,icon:(0,y.jsx)(s,{})},success:{label:`Успех`,icon:(0,y.jsx)(r,{})},warning:{label:`Предупреждение`,icon:(0,y.jsx)(l,{})},error:{label:`Ошибка`,icon:(0,y.jsx)(o,{})}}})},args:{value:`warning`}},T={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`none`,onChange:n=>{e.onChange(n),t({value:n})},options:[`none`,`success`,`error`]})},args:{options:[`none`,`success`,`error`],value:`none`}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-vIdCi5Zq.js";import{i,n as a,r as o,t as s}from"./info-2PUHH67D.js";import{n as c,t as l}from"./triangle-alert-BSmuthen.js";import{i as u,n as d,r as f}from"./iframe-0M2vpakb.js";import{n as p,t as m}from"./StateSelect-DSzDU5Jy.js";var h,g;function _(){return(_=e((()=>{u(),h=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}]],g=f(`circle-minus`,h)})))()}var v=t({Controlled:()=>C,PaletteOnly:()=>T,WithMeta:()=>w,__namedExportsOrder:()=>E,default:()=>S}),y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{c(),n(),a(),_(),i(),p(),y=d(),{useArgs:b}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:x}=__STORYBOOK_MODULE_TEST__,S={title:`UI/StateSelect`,component:m,args:{label:`Состояние`,description:`Выберите визуальный статус.`,placeholder:`Выберите значение`,value:`information`,onChange:x(),disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля выбора состояния.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение не выбрано.`,control:`text`},value:{description:`Текущее состояние.`,control:`select`,options:[``,`none`,`information`,`success`,`warning`,`error`]},onChange:{description:`Вызывается при выборе состояния.`,control:!1},options:{description:`Кастомный набор доступных состояний.`,control:!1},stateMeta:{description:`Кастомные иконки и подписи для значений.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранного состояния.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},C={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`information`,onChange:n=>{e.onChange(n),t({value:n})}})}},w={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`warning`,onChange:n=>{e.onChange(n),t({value:n})},stateMeta:{none:{label:`Без статуса`,icon:(0,y.jsx)(g,{})},information:{label:`Инфо`,icon:(0,y.jsx)(s,{})},success:{label:`Успех`,icon:(0,y.jsx)(r,{})},warning:{label:`Предупреждение`,icon:(0,y.jsx)(l,{})},error:{label:`Ошибка`,icon:(0,y.jsx)(o,{})}}})},args:{value:`warning`}},T={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`none`,onChange:n=>{e.onChange(n),t({value:n})},options:[`none`,`success`,`error`]})},args:{options:[`none`,`success`,`error`],value:`none`}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
2
2
  render: function Render(args) {
3
3
  const [, updateArgs] = useArgs<StateSelectProps>();
4
4
  return <StateSelect {...args} value={args.value ?? "information"} onChange={value => {
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bu5I-6jJ.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./StatusIndicator.stories-COaZnrFa.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,pre:`pre`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-C4R1QC9R.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./StatusIndicator.stories-Bazi6rxF.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,pre:`pre`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`StatusIndicator`}),`
3
3
  `,(0,x.jsx)(o,{children:`Компактный цветовой маркер состояния`}),`
4
4
  `,(0,x.jsx)(t.p,{children:`StatusIndicator помогает быстро считать состояние строки, карточки или процесса. Компонент использует семантические status-токены темы и сохраняет цветовую схему во всех host-проектах.`}),`
@@ -0,0 +1 @@
1
+ .bJvCcD{--status-indicator-fill:var(--neutral-fill);--status-indicator-size:.5em;width:var(--status-indicator-size);height:var(--status-indicator-size);vertical-align:middle;background-color:var(--status-indicator-fill);border-radius:50%;flex:none;display:inline-block}.UhVDLa{--status-indicator-fill:var(--neutral-fill)}.kNg89H{--status-indicator-fill:var(--accent-border)}.bRw83O{--status-indicator-fill:var(--info-fill)}.VQh7sh{--status-indicator-fill:var(--success-fill)}.zdESHk{--status-indicator-fill:var(--warning-fill)}.-KLln9{--status-indicator-fill:var(--error-fill)}.Ak9M6g{--status-indicator-size:.375em}._43MsRd{--status-indicator-size:.5em}.FpGv5-{--status-indicator-size:.75em}.y-1aex{transform-origin:50%;animation:_56N544 var(--animation-2s) ease-in-out infinite}@keyframes _56N544{0%,to{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}@media (prefers-reduced-motion:reduce){.y-1aex{animation:none}}
@@ -0,0 +1,31 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-0M2vpakb.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o,s,c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{a=`bJvCcD`,o=`UhVDLa`,s=`kNg89H`,c=`bRw83O`,l=`VQh7sh`,u=`zdESHk`,d=`-KLln9`,f=`Ak9M6g`,p=`_43MsRd`,m=`FpGv5-`,h=`y-1aex`,g=`_56N544`,_={statusIndicator:a,neutral:o,accent:s,info:c,success:l,warning:u,error:d,sizeSm:f,sizeMd:p,sizeLg:m,animated:h,statusIndicatorPulse:g}})))()}function y({tone:e=`neutral`,size:t=`md`,animated:n=!1,className:i,...a}){let o=a.role!==void 0||a[`aria-label`]!==void 0||a[`aria-labelledby`]!==void 0,s=a[`aria-hidden`]??(!o||void 0);return(0,b.jsx)(`span`,{...a,className:r(_.statusIndicator,x[e],S[t],n&&_.animated,i),"aria-hidden":s,"data-ui":`status-indicator`})}var b,x,S;function C(){return(C=e((()=>{i(),v(),b=n(),x={accent:_.accent,neutral:_.neutral,info:_.info,success:_.success,warning:_.warning,error:_.error},S={sm:_.sizeSm,md:_.sizeMd,lg:_.sizeLg},y.__docgenInfo={description:`Декоративный цветовой маркер статуса. Передавайте смысл состояния видимым текстом рядом с индикатором.`,methods:[],displayName:`StatusIndicator`,props:{tone:{required:!1,tsType:{name:`Exclude`,elements:[{name:`union`,raw:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},{name:`literal`,value:`"brand"`}],raw:`Exclude<UiTone, "brand">`},description:``,defaultValue:{value:`"neutral"`,computed:!1}},size:{required:!1,tsType:{name:`Extract`,elements:[{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},{name:`union`,raw:`"sm" | "md" | "lg"`,elements:[{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`}]}],raw:`Extract<UiSize, "sm" | "md" | "lg">`},description:``,defaultValue:{value:`"md"`,computed:!1}},animated:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}},composes:[`Omit`]}})))()}var w=t({Animated:()=>P,Basic:()=>j,Sizes:()=>N,Tones:()=>M,__namedExportsOrder:()=>F,default:()=>A}),T,E,D,O,k,A,j,M,N,P,F;function I(){return(I=e((()=>{C(),T=n(),E={display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:`var(--space-lg)`},D={display:`inline-flex`,alignItems:`center`,gap:`var(--space-sm)`},O=[{tone:`accent`,label:`Текущий`},{tone:`neutral`,label:`Неизвестно`},{tone:`info`,label:`В работе`},{tone:`success`,label:`Готово`},{tone:`warning`,label:`Требует внимания`},{tone:`error`,label:`Ошибка`}],k=[{size:`sm`,label:`Small`},{size:`md`,label:`Medium`},{size:`lg`,label:`Large`}],A={title:`UI/StatusIndicator`,component:y,args:{tone:`info`,size:`md`,animated:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{tone:{description:`Семантический цвет индикатора.`,control:`inline-radio`,options:[`accent`,`neutral`,`info`,`success`,`warning`,`error`]},size:{description:`Размер индикатора.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},animated:{description:`Включает спокойную пульсацию для изменяющегося или активного состояния.`,control:`boolean`}}},j={render:e=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{...e}),(0,T.jsx)(`span`,{children:`В работе`})]})},M={render:()=>(0,T.jsx)(`div`,{style:E,children:O.map(({tone:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{tone:e}),(0,T.jsx)(`span`,{children:t})]},e))})},N={render:()=>(0,T.jsx)(`div`,{style:E,children:k.map(({size:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{size:e,tone:`success`}),(0,T.jsx)(`span`,{children:t})]},e))})},P={render:()=>(0,T.jsxs)(`span`,{style:D,role:`status`,children:[(0,T.jsx)(y,{tone:`info`,animated:!0}),(0,T.jsx)(`span`,{children:`Синхронизация`})]})},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
2
+ render: args => <span style={itemStyle}>
3
+ <StatusIndicator {...args} />
4
+ <span>В работе</span>
5
+ </span>
6
+ }`,...j.parameters?.docs?.source}}},M.parameters={...M.parameters,docs:{...M.parameters?.docs,source:{originalSource:`{
7
+ render: () => <div style={rowStyle}>
8
+ {tones.map(({
9
+ tone,
10
+ label
11
+ }) => <span key={tone} style={itemStyle}>
12
+ <StatusIndicator tone={tone} />
13
+ <span>{label}</span>
14
+ </span>)}
15
+ </div>
16
+ }`,...M.parameters?.docs?.source}}},N.parameters={...N.parameters,docs:{...N.parameters?.docs,source:{originalSource:`{
17
+ render: () => <div style={rowStyle}>
18
+ {sizes.map(({
19
+ size,
20
+ label
21
+ }) => <span key={size} style={itemStyle}>
22
+ <StatusIndicator size={size} tone="success" />
23
+ <span>{label}</span>
24
+ </span>)}
25
+ </div>
26
+ }`,...N.parameters?.docs?.source}}},P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
27
+ render: () => <span style={itemStyle} role="status">
28
+ <StatusIndicator tone="info" animated />
29
+ <span>Синхронизация</span>
30
+ </span>
31
+ }`,...P.parameters?.docs?.source}}},F=[`Basic`,`Tones`,`Sizes`,`Animated`]})))()}export{M as a,w as i,j as n,I as o,N as r,P as t};
@@ -1,3 +1,3 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./Toggle-CPohFihI.js";function o(e,t){return typeof e==`string`?e:t}var s,c;function l(){return(l=e((()=>{s=`true`,c=`false`})))()}function u({value:e,onChange:t,checkedValue:n,uncheckedValue:r,defaultChecked:i,...l}){let u=o(n,s),f=o(r,c),p=e===u;return(0,d.jsx)(a,{...l,value:p,onChange:e=>t(e?u:f)})}var d;function f(){return(f=e((()=>{l(),i(),d=t(),u.__docgenInfo={description:`Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.`,methods:[],displayName:`StringToggle`,props:{checkedValue:{required:!1,tsType:{name:`string`},description:``},uncheckedValue:{required:!1,tsType:{name:`string`},description:``},value:{required:!0,tsType:{name:`string`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}var p,m,h,g,_;function v(){return(v=e((()=>{n(),f(),p=t(),m=r((e,t)=>(0,p.jsx)(u,{...e,onChange:n=>{e.onChange(n),t({value:n})}})),h={title:`UI/Toggle/StringToggle`,component:u,args:{value:`ZBP_MANAGER`,onChange:()=>void 0,checkedText:`за клиента`,uncheckedText:`за сделку`,checkedValue:`ZM_MANAGER`,uncheckedValue:`ZBP_MANAGER`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее строковое значение.`,control:`text`},onChange:{description:`Возвращает строку выбранного состояния.`,control:!1},checkedValue:{description:`Значение включённого состояния.`,control:`text`},uncheckedValue:{description:`Значение выключенного состояния.`,control:`text`},checkedText:{description:`Текст включённого состояния.`,control:`text`},uncheckedText:{description:`Текст выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},g={render:m},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./Toggle-B2S8eW_z.js";function o(e,t){return typeof e==`string`?e:t}var s,c;function l(){return(l=e((()=>{s=`true`,c=`false`})))()}function u({value:e,onChange:t,checkedValue:n,uncheckedValue:r,defaultChecked:i,...l}){let u=o(n,s),f=o(r,c),p=e===u;return(0,d.jsx)(a,{...l,value:p,onChange:e=>t(e?u:f)})}var d;function f(){return(f=e((()=>{l(),i(),d=t(),u.__docgenInfo={description:`Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.`,methods:[],displayName:`StringToggle`,props:{checkedValue:{required:!1,tsType:{name:`string`},description:``},uncheckedValue:{required:!1,tsType:{name:`string`},description:``},value:{required:!0,tsType:{name:`string`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}var p,m,h,g,_;function v(){return(v=e((()=>{n(),f(),p=t(),m=r((e,t)=>(0,p.jsx)(u,{...e,onChange:n=>{e.onChange(n),t({value:n})}})),h={title:`UI/Toggle/StringToggle`,component:u,args:{value:`ZBP_MANAGER`,onChange:()=>void 0,checkedText:`за клиента`,uncheckedText:`за сделку`,checkedValue:`ZM_MANAGER`,uncheckedValue:`ZBP_MANAGER`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее строковое значение.`,control:`text`},onChange:{description:`Возвращает строку выбранного состояния.`,control:!1},checkedValue:{description:`Значение включённого состояния.`,control:`text`},uncheckedValue:{description:`Значение выключенного состояния.`,control:`text`},checkedText:{description:`Текст включённого состояния.`,control:`text`},uncheckedText:{description:`Текст выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},g={render:m},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
2
2
  render: renderStringToggleStory
3
3
  }`,...g.parameters?.docs?.source}}},_=[`ManagerScope`]})))()}v();export{g as ManagerScope,_ as __namedExportsOrder,h as default};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./circle-check-B1w7Ls8y.js";import{i as a,n as o,r as s}from"./iframe-D0R9pFj7.js";import{a as c,i as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-31LPbZGK.js";var f,p;function m(){return(m=t((()=>{a(),f=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]],p=s(`ban`,f)})))()}var h,g,_,v,y;function b(){return(b=t((()=>{h=`Or5LYA`,g=`w0AMfA`,_=`P1x4lq`,v=`-ZVOZo`,y={switchWrapper:h,switch:`qge3io`,iconWrapper:g,auto:_,checked:v}})))()}function x(e){let{label:t,description:n,disabled:r,checkedIcon:a=(0,C.jsx)(i,{}),uncheckedIcon:o=(0,C.jsx)(p,{}),className:s,type:l,id:d,size:f,placeholder:m,onChange:h,value:g,triState:_,...v}=e,b=(0,S.useId)(),x=d??b,w=n?`${x}-description`:void 0,T=t?`${x}-label`:void 0,E=()=>{if(!e.triState){e.onChange(!e.value);return}if(e.value===void 0){e.onChange(!0);return}if(e.value===!0){e.onChange(!1);return}e.value===!1&&e.onChange(void 0)},D=typeof e.value==`boolean`&&e.value,O=e.triState&&typeof e.value!=`boolean`,k=v[`aria-label`]??(t?void 0:`Переключатель`);return(0,C.jsxs)(`div`,{className:c(u.uiElement,r&&u.disabled),"aria-disabled":r||void 0,children:[t&&(0,C.jsxs)(`div`,{id:T,className:u.uiLabel,children:[t,`:`]}),n&&(0,C.jsx)(`p`,{id:w,className:u.uiDescription,children:n}),(0,C.jsx)(`button`,{...v,id:x,type:l??`button`,role:`switch`,disabled:r,"aria-checked":D,"aria-describedby":w,"aria-labelledby":T,"aria-label":k,"aria-disabled":r,"data-ui":`switch`,"data-action":`toggle-switch`,onClick:E,className:c(u.uiInputControl,y.switchWrapper,s),children:(0,C.jsx)(`div`,{className:y.switch,"data-disabled":r||void 0,children:O?(0,C.jsx)(`div`,{className:c(y.iconWrapper,y.auto,y.checked),children:`Auto`}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:c(y.iconWrapper,!e.value&&y.checked),children:o}),(0,C.jsx)(`div`,{className:c(y.iconWrapper,e.value&&y.checked),children:a})]})})})]})}var S,C;function w(){return(w=t((()=>{S=e(n(),1),l(),m(),r(),d(),b(),C=o(),x.__docgenInfo={description:`Переключатель boolean-состояния в виде слайдера. Подходит для быстрых настроек и включения/отключения опций.`,methods:[],displayName:`Switch`}})))()}export{w as n,x as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./circle-check-vIdCi5Zq.js";import{i as a,n as o,r as s}from"./iframe-0M2vpakb.js";import{a as c,i as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-SH8ehXul.js";var f,p;function m(){return(m=t((()=>{a(),f=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]],p=s(`ban`,f)})))()}var h,g,_,v,y;function b(){return(b=t((()=>{h=`Or5LYA`,g=`w0AMfA`,_=`P1x4lq`,v=`-ZVOZo`,y={switchWrapper:h,switch:`qge3io`,iconWrapper:g,auto:_,checked:v}})))()}function x(e){let{label:t,description:n,disabled:r,checkedIcon:a=(0,C.jsx)(i,{}),uncheckedIcon:o=(0,C.jsx)(p,{}),className:s,type:l,id:d,size:f,placeholder:m,onChange:h,value:g,triState:_,...v}=e,b=(0,S.useId)(),x=d??b,w=n?`${x}-description`:void 0,T=t?`${x}-label`:void 0,E=()=>{if(!e.triState){e.onChange(!e.value);return}if(e.value===void 0){e.onChange(!0);return}if(e.value===!0){e.onChange(!1);return}e.value===!1&&e.onChange(void 0)},D=typeof e.value==`boolean`&&e.value,O=e.triState&&typeof e.value!=`boolean`,k=v[`aria-label`]??(t?void 0:`Переключатель`);return(0,C.jsxs)(`div`,{className:c(u.uiElement,r&&u.disabled),"aria-disabled":r||void 0,children:[t&&(0,C.jsxs)(`div`,{id:T,className:u.uiLabel,children:[t,`:`]}),n&&(0,C.jsx)(`p`,{id:w,className:u.uiDescription,children:n}),(0,C.jsx)(`button`,{...v,id:x,type:l??`button`,role:`switch`,disabled:r,"aria-checked":D,"aria-describedby":w,"aria-labelledby":T,"aria-label":k,"aria-disabled":r,"data-ui":`switch`,"data-action":`toggle-switch`,onClick:E,className:c(u.uiInputControl,y.switchWrapper,s),children:(0,C.jsx)(`div`,{className:y.switch,"data-disabled":r||void 0,children:O?(0,C.jsx)(`div`,{className:c(y.iconWrapper,y.auto,y.checked),children:`Auto`}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:c(y.iconWrapper,!e.value&&y.checked),children:o}),(0,C.jsx)(`div`,{className:c(y.iconWrapper,e.value&&y.checked),children:a})]})})})]})}var S,C;function w(){return(w=t((()=>{S=e(n(),1),l(),m(),r(),d(),b(),C=o(),x.__docgenInfo={description:`Переключатель boolean-состояния в виде слайдера. Подходит для быстрых настроек и включения/отключения опций.`,methods:[],displayName:`Switch`}})))()}export{w as n,x as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bu5I-6jJ.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-BAmX4W8J.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-C4R1QC9R.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-Cq2n8Vr4.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`Switch`}),`
3
3
  `,(0,b.jsx)(o,{children:`Переключатель в виде слайдера для быстрых включений, отключений и tri-state сценариев`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`Switch уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./Switch-BRKFbtp4.js";import{n as i}from"./iframe-D0R9pFj7.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";var s=t({BiState:()=>f,Disabled:()=>m,TriState:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{a(),n(),c=i(),l=o((e,t)=>(0,c.jsx)(r,{...e,triState:!1,value:e.value??!1,onChange:n=>{e.onChange(n),t({value:n})}})),u=o((e,t)=>(0,c.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,c.jsx)(r,{...e,triState:!0,value:e.value,onChange:n=>{e.onChange(n),t({value:n})}}),(0,c.jsxs)(`div`,{children:[`Текущее значение: `,String(e.value)]})]})),d={title:`UI/Switch`,component:r,args:{label:`Режим обработки`,description:`Переключение состояния`,value:!1,onChange:()=>{},triState:!1,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок переключателя.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение (`boolean` или `undefined` в tri-state).",control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},triState:{description:"Включает трехсостоянный режим (`undefined → true → false`).",control:`boolean`},checkedIcon:{description:"Кастомная иконка для состояния `true`.",control:!1},uncheckedIcon:{description:"Кастомная иконка для состояния `false`.",control:!1},disabled:{description:`Блокирует переключение.`,control:`boolean`}}},f={render:l},p={render:u,args:{triState:!0,value:void 0}},m={render:l,args:{disabled:!0,value:!0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./Switch-BqAkQzIJ.js";import{n as i}from"./iframe-0M2vpakb.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";var s=t({BiState:()=>f,Disabled:()=>m,TriState:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{a(),n(),c=i(),l=o((e,t)=>(0,c.jsx)(r,{...e,triState:!1,value:e.value??!1,onChange:n=>{e.onChange(n),t({value:n})}})),u=o((e,t)=>(0,c.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,c.jsx)(r,{...e,triState:!0,value:e.value,onChange:n=>{e.onChange(n),t({value:n})}}),(0,c.jsxs)(`div`,{children:[`Текущее значение: `,String(e.value)]})]})),d={title:`UI/Switch`,component:r,args:{label:`Режим обработки`,description:`Переключение состояния`,value:!1,onChange:()=>{},triState:!1,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок переключателя.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение (`boolean` или `undefined` в tri-state).",control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},triState:{description:"Включает трехсостоянный режим (`undefined → true → false`).",control:`boolean`},checkedIcon:{description:"Кастомная иконка для состояния `true`.",control:!1},uncheckedIcon:{description:"Кастомная иконка для состояния `false`.",control:!1},disabled:{description:`Блокирует переключение.`,control:`boolean`}}},f={render:l},p={render:u,args:{triState:!0,value:void 0}},m={render:l,args:{disabled:!0,value:!0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
2
  render: renderBiStateSwitchStory
3
3
  }`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
4
4
  render: renderTriStateSwitchStory,
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bu5I-6jJ.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./Table.stories-C_JSdhJl.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-C4R1QC9R.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./Table.stories-DxnnXMZX.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,M.jsx)(u,{children:`Table`}),`
3
3
  `,(0,M.jsxs)(o,{children:[`Плоская таблица как React-альтернатива `,(0,M.jsx)(t.code,{children:`sap.m.Table`})]}),`
4
4
  `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`Table`}),` предназначен для плоских данных и по поведению осознанно сближен с `,(0,M.jsx)(t.code,{children:`TreeTable`}),`.
@@ -0,0 +1 @@
1
+ .hKghZt{box-shadow:inset .1875rem 0 0 var(--accent-text)}.QsLRvS{height:1px}
@@ -1,9 +1,9 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-D0R9pFj7.js";import{$ as i,J as a,Q as ee,X as te,Z as ne,_ as re,a as ie,b as ae,d as oe,g as se,i as ce}from"./odata-tqjAk19x.js";import{h as le,u as ue}from"./formatters-DVE1YVNQ-CMsbb5-m.js";import{_ as de,a as fe,b as pe,c as me,d as he,f as ge,g as _e,h as ve,i as ye,l as be,m as xe,n as Se,o as Ce,p as we,r as Te,s as Ee,t as De,u as Oe,v as ke,x as Ae,y as je}from"./FormattedTableCell-CXyG4Yj2.js";import{n as Me,t as o}from"./createControlledStoryRender-BouhvX-R.js";var s,Ne,Pe;function c(){return(c=e((()=>{s=`hKghZt`,Ne=`QsLRvS`,Pe={selectedIndicatorCell:s,sentinel:Ne}})))()}function Fe(e,t){return String(t)}function l({title:e,isLoading:t,isFetching:n,data:r,columns:i,selectionMode:a=`none`,selectedRowIds:ee,getRowId:te,className:ne,minHeight:ie,tableClassName:ae,columnVisibility:oe,defaultColumnVisibility:ce,columnOrder:le,defaultColumnOrder:fe,columnSizing:pe,defaultColumnSizing:he,columnPinning:_e,defaultColumnPinning:ye,enableColumnResizing:be=!1,enableColumnReordering:xe=!1,columnResizeMinWidth:Se,onColumnVisibilityChange:Ee,onColumnOrderChange:je,onColumnSizingChange:Me,onColumnPinningChange:o,onRowClick:s,onRowSelectionChange:Ne,onReachEnd:c,getRowCanSelect:l,getRowClassName:f,renderHeaderContextMenu:Ie,renderCellContent:p}){let m=(0,u.useMemo)(()=>r??[],[r]),h=(0,u.useMemo)(()=>ve(i),[i]),g=te??Fe,_=(0,u.useMemo)(()=>new Map(m.map((e,t)=>[g(e,t),e])),[g,m]),Le=(0,u.useMemo)(()=>Array.from(_.keys()),[_]),v=(0,u.useRef)(null),y=(0,u.useRef)(null),{rowSelection:b,activateRowSelection:x}=se({availableRowIds:Le,rowById:_,selectionMode:a,selectedRowIds:ee,onRowSelectionChange:Ne}),{columnVisibility:S,onColumnVisibilityChange:C}=Ce({columnVisibility:oe,defaultColumnVisibility:ce,onColumnVisibilityChange:Ee}),{columnOrder:w,onColumnOrderChange:T}=ge({columnOrder:le,defaultColumnOrder:fe,onColumnOrderChange:je}),{columnSizing:E,onColumnSizingChange:D}=me({columnSizing:pe,defaultColumnSizing:he,columnResizeMinWidth:Se,onColumnSizingChange:Me}),{columnPinning:O,onColumnPinningChange:k}=Oe({columnPinning:_e,defaultColumnPinning:ye,onColumnPinningChange:o}),A=(0,u.useMemo)(()=>({columnOrder:w,columnPinning:O,columnSizing:E,columnVisibility:S}),[w,O,E,S]),j=(0,u.useEffectEvent)(()=>{c?.()});(0,u.useEffect)(()=>{if(!c||!v.current||!y.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&j()},{root:v.current,threshold:.1});return e.observe(y.current),()=>e.disconnect()},[t,c,m.length]);let M=Ae({features:re,data:m,columns:i,state:{columnOrder:w,columnPinning:O,columnSizing:E,columnVisibility:S,rowSelection:b},onColumnOrderChange:T,onColumnPinningChange:k,onColumnSizingChange:D,onColumnVisibilityChange:C,getRowId:(e,t)=>g(e,t),enableMultiRowSelection:a===`multi`,enableRowSelection:e=>a===`none`?!1:!l||l(e.original)}),N=ke(M,A),P=M.getRowModel().rows,F=(0,u.useMemo)(()=>we({rows:P,columns:N}),[P,N]),I=N[0]?.id;return(0,d.jsx)(Te,{table:M,columnState:A,title:e,isLoading:t,isFetching:n,className:ne,minHeight:ie,tableClassName:ae,selectionMode:a,scrollableRef:v,onActivateRow:a!==`none`||s?e=>{x(e.id,e.getCanSelect()),s?.(e.original)}:void 0,isRowInteractive:e=>!!(s||a!==`none`&&e.getCanSelect()),getRowClassName:e=>f?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===I&&e.getIsSelected()?Pe.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>F.get(e.id),renderHeaderContextMenu:Ie,enableColumnResizing:be,enableColumnReordering:xe,columnResizeMinWidth:Se,renderCellContent:e=>{let t=ue({field:h.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=de({columnId:e.cell.column.id,runtimeByColumnId:h.runtimeByColumnId,customCellColumnIds:h.customCellColumnIds})?(0,d.jsx)(De,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return p?p({...e,defaultContent:n,displayValue:t}):n},afterTableContent:c?(0,d.jsx)(`div`,{ref:y,className:Pe.sentinel,"aria-hidden":`true`}):null})}var u,d;function f(){return(f=e((()=>{u=n(),le(),ae(),pe(),ye(),xe(),_e(),Se(),je(),he(),be(),Ee(),fe(),c(),d=r(),l.__docgenInfo={description:"Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.",methods:[],displayName:`Table`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок таблицы.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},selectedRowIds:{required:!1,tsType:{name:`unknown`},description:`Внешний список выбранных строк.
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-0M2vpakb.js";import{A as i,D as a,O as ee,T as te,_ as ne,a as re,b as o,d as ie,g as ae,i as oe,k as se}from"./odata-DIkxH78d.js";import{h as ce,u as le}from"./formatters-DVE1YVNQ-YIdRxgw-.js";import{n as ue,t as de}from"./useTable-CK68Q4S4.js";import{_ as fe,a as pe,c as me,d as he,f as ge,g as _e,h as ve,i as ye,l as be,m as xe,n as Se,o as Ce,p as we,r as Te,s as Ee,t as De,u as Oe,v as ke,y as Ae}from"./FormattedTableCell-BzBZlmxd.js";import{n as je,t as s}from"./createControlledStoryRender-BouhvX-R.js";var c,Me,Ne;function l(){return(l=e((()=>{c=`hKghZt`,Me=`QsLRvS`,Ne={selectedIndicatorCell:c,sentinel:Me}})))()}function Pe(e,t){return String(t)}function u({title:e,isLoading:t,isFetching:n,data:r,columns:i,selectionMode:a=`none`,selectedRowIds:ee,getRowId:te,className:re,minHeight:o,tableClassName:ie,columnVisibility:oe,defaultColumnVisibility:se,columnOrder:ce,defaultColumnOrder:de,columnSizing:pe,defaultColumnSizing:he,columnPinning:_e,defaultColumnPinning:ye,enableColumnResizing:be=!1,enableColumnReordering:xe=!1,columnResizeMinWidth:Se,onColumnVisibilityChange:Ee,onColumnOrderChange:Ae,onColumnSizingChange:je,onColumnPinningChange:s,onRowClick:c,onRowSelectionChange:Me,onReachEnd:l,getRowCanSelect:u,getRowClassName:p,renderHeaderContextMenu:Fe,renderCellContent:m}){let h=(0,d.useMemo)(()=>r??[],[r]),g=(0,d.useMemo)(()=>ve(i),[i]),_=te??Pe,v=(0,d.useMemo)(()=>new Map(h.map((e,t)=>[_(e,t),e])),[_,h]),Ie=(0,d.useMemo)(()=>Array.from(v.keys()),[v]),y=(0,d.useRef)(null),b=(0,d.useRef)(null),{rowSelection:x,activateRowSelection:S}=ae({availableRowIds:Ie,rowById:v,selectionMode:a,selectedRowIds:ee,onRowSelectionChange:Me}),{columnVisibility:C,onColumnVisibilityChange:w}=Ce({columnVisibility:oe,defaultColumnVisibility:se,onColumnVisibilityChange:Ee}),{columnOrder:T,onColumnOrderChange:E}=ge({columnOrder:ce,defaultColumnOrder:de,onColumnOrderChange:Ae}),{columnSizing:D,onColumnSizingChange:O}=me({columnSizing:pe,defaultColumnSizing:he,columnResizeMinWidth:Se,onColumnSizingChange:je}),{columnPinning:k,onColumnPinningChange:Le}=Oe({columnPinning:_e,defaultColumnPinning:ye,onColumnPinningChange:s}),A=(0,d.useMemo)(()=>({columnOrder:T,columnPinning:k,columnSizing:D,columnVisibility:C}),[T,k,D,C]),j=(0,d.useEffectEvent)(()=>{l?.()});(0,d.useEffect)(()=>{if(!l||!y.current||!b.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&j()},{root:y.current,threshold:.1});return e.observe(b.current),()=>e.disconnect()},[t,l,h.length]);let M=ue({features:ne,data:h,columns:i,state:{columnOrder:T,columnPinning:k,columnSizing:D,columnVisibility:C,rowSelection:x},onColumnOrderChange:E,onColumnPinningChange:Le,onColumnSizingChange:O,onColumnVisibilityChange:w,getRowId:(e,t)=>_(e,t),enableMultiRowSelection:a===`multi`,enableRowSelection:e=>a===`none`?!1:!u||u(e.original)}),N=ke(M,A),P=M.getRowModel().rows,F=(0,d.useMemo)(()=>we({rows:P,columns:N}),[P,N]),I=N[0]?.id;return(0,f.jsx)(Te,{table:M,columnState:A,title:e,isLoading:t,isFetching:n,className:re,minHeight:o,tableClassName:ie,selectionMode:a,scrollableRef:y,onActivateRow:a!==`none`||c?e=>{S(e.id,e.getCanSelect()),c?.(e.original)}:void 0,isRowInteractive:e=>!!(c||a!==`none`&&e.getCanSelect()),getRowClassName:e=>p?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===I&&e.getIsSelected()?Ne.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>F.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:be,enableColumnReordering:xe,columnResizeMinWidth:Se,renderCellContent:e=>{let t=le({field:g.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=fe({columnId:e.cell.column.id,runtimeByColumnId:g.runtimeByColumnId,customCellColumnIds:g.customCellColumnIds})?(0,f.jsx)(De,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return m?m({...e,defaultContent:n,displayValue:t}):n},afterTableContent:l?(0,f.jsx)(`div`,{ref:b,className:Ne.sentinel,"aria-hidden":`true`}):null})}var d,f;function p(){return(p=e((()=>{d=n(),ce(),o(),de(),ye(),xe(),_e(),Se(),Ae(),he(),be(),Ee(),pe(),l(),f=r(),u.__docgenInfo={description:"Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.",methods:[],displayName:`Table`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок таблицы.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},selectedRowIds:{required:!1,tsType:{name:`unknown`},description:`Внешний список выбранных строк.
2
2
 
3
3
  Если передан, таблица синхронизирует визуальное выделение с этим набором id.`},getRowId:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData, index: number) => string`,signature:{arguments:[{type:{name:`TData`},name:`row`},{type:{name:`number`},name:`index`}],return:{name:`string`}}},description:`Стабильный идентификатор строки.
4
4
 
5
5
  Если не задан, используется индекс строки.`},className:{required:!1,tsType:{name:`string`},description:`Дополнительный CSS-класс корневого контейнера.`},minHeight:{required:!1,tsType:{name:`union`,raw:"`${number}em` | `${number}%`",elements:[{name:`literal`,value:"`${number}em`"},{name:`literal`,value:"`${number}%`"}]},description:``},tableClassName:{required:!1,tsType:{name:`string`},description:"Дополнительный CSS-класс тега `table`."},columnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Внешнее controlled-состояние видимости колонок.`},defaultColumnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Стартовое uncontrolled-состояние видимости колонок.`},columnOrder:{required:!1,tsType:{name:`unknown`},description:`Внешнее controlled-состояние порядка колонок.`},defaultColumnOrder:{required:!1,tsType:{name:`unknown`},description:`Стартовое uncontrolled-состояние порядка колонок.`},columnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Внешнее controlled-состояние ширин колонок в px.`},defaultColumnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Стартовое uncontrolled-состояние ширин колонок в px.`},columnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Внешнее controlled-состояние start-pinning для колонок.`},defaultColumnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Стартовое uncontrolled-состояние start-pinning для колонок.`},enableColumnResizing:{required:!1,tsType:{name:`boolean`},description:`Включает изменение ширины колонок через header-handle.`,defaultValue:{value:`false`,computed:!1}},enableColumnReordering:{required:!1,tsType:{name:`boolean`},description:`Включает изменение порядка колонок через drag&drop заголовков.`,defaultValue:{value:`false`,computed:!1}},columnResizeMinWidth:{required:!1,tsType:{name:`number`},description:`Минимальная ширина колонки при resize в px.`},onColumnVisibilityChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnVisibilityState) => void`,signature:{arguments:[{type:{name:`TableColumnVisibilityState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения видимости колонок.`},onColumnOrderChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnOrderState) => void`,signature:{arguments:[{type:{name:`TableColumnOrderState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения порядка колонок.`},onColumnSizingChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnSizingState) => void`,signature:{arguments:[{type:{name:`TableColumnSizingState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения ширины колонок.`},onColumnPinningChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnPinningState) => void`,signature:{arguments:[{type:{name:`TableColumnPinningState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения start-pinning state.`},onRowClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => void`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`void`}}},description:`Вызывается при активации строки кликом или клавиатурой.`},onRowSelectionChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(rows: TData[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TData`}],raw:`TData[]`},name:`rows`}],return:{name:`void`}}},description:`Вызывается после изменения выбранных строк.`},onReachEnd:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается при достижении конца таблицы внутри scroll-контейнера.`},getRowCanSelect:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => boolean`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`boolean`}}},description:`Позволяет запретить выбор отдельных строк.`},getRowClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => string | undefined`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:`Позволяет добавить CSS-класс для конкретной строки.`},renderHeaderContextMenu:{required:!1,tsType:{name:`BaseTableProps["renderHeaderContextMenu"]`,raw:`BaseTableProps<TData>["renderHeaderContextMenu"]`},description:`Контекстное меню заголовка колонки. Используется для общих runtime-действий
6
- вроде server sorting без встраивания доменной логики в shared-таблицу.`},renderCellContent:{required:!1,tsType:{name:`BaseTableProps["renderCellContent"]`,raw:`BaseTableProps<TData>["renderCellContent"]`},description:"Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\nВ отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n`defaultContent` уже содержит отформатированное значение, если оно применимо."}}}})))()}var Ie=t({Basic:()=>z,Empty:()=>W,Fetching:()=>U,Loading:()=>K,MultiSelect:()=>V,ReachEnd:()=>G,WithColumnPinning:()=>B,WithDisabledRows:()=>H,WithFormattingPipeline:()=>J,WithFormulaColumn:()=>q,WithHiddenZero:()=>Y,WithMergedDuplicates:()=>X,WithODataMetadataAdapter:()=>Z,WithUseODataTableColumnsBuildHook:()=>Q,WithUseODataTableColumnsEnrichHook:()=>$,__namedExportsOrder:()=>Be,default:()=>Re});function p(){return{version:1,plan:{steps:[{id:`state`,type:`resolveValueState`,config:{resolver:{kind:`threshold`,thresholds:[100],states:[`success`,`warning`],invalidState:`none`},icon:{enabled:!0,showValue:!0,position:`right`}}},{id:`typed`,type:`typedValueFormat`}]}}}function m(e,t){let n=e.data??[];return t.map(t=>{let r=n.indexOf(t);return e.getRowId?.(t,r)??String(r)})}function h({args:e,updateArgs:t}){return(0,y.jsx)(l,{...e,onColumnVisibilityChange:n=>{e.onColumnVisibilityChange?.(n),t({columnVisibility:n})},onColumnOrderChange:n=>{e.onColumnOrderChange?.(n),t({columnOrder:n})},onColumnSizingChange:n=>{e.onColumnSizingChange?.(n),t({columnSizing:n})},onColumnPinningChange:n=>{e.onColumnPinningChange?.(n),t({columnPinning:n})},onRowSelectionChange:n=>{e.onRowSelectionChange?.(n),t({selectedRowIds:m(e,n)})}})}function g({args:e,updateArgs:t}){let{columns:n,metadata:r,isLoading:i}=ce({service:N,target:P,mode:`build`});return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Режим build: hook собрал `,n.length,` колонки из metadata`,r?` для сущности «${r.title}».`:`.`]}),(0,y.jsx)(h,{args:{...e,columns:n,isLoading:e.isLoading??i},updateArgs:t})]})}function _({args:e,updateArgs:t}){let{columns:n,metadata:r,isLoading:i}=ce({service:N,target:P,mode:`enrich`,columns:j});return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Режим enrich: hook сохранил ручные заголовки и дополнил formatting-контекст`,r?` из metadata «${r.title}».`:`.`]}),(0,y.jsx)(h,{args:{...e,columns:n,isLoading:e.isLoading??i},updateArgs:t})]})}function Le({args:e,updateArgs:t}){let[n,r]=(0,v.useState)(0);return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Событие достижения конца: `,n]}),(0,y.jsx)(h,{args:{...e,onReachEnd:()=>{e.onReachEnd?.(),r(e=>e+1)}},updateArgs:t})]})}var v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,Re,L,R,ze,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$,Be;function Ve(){return(Ve=e((()=>{v=n(),ie(),ne(),ae(),i(),Me(),f(),y=r(),b=[{id:`1`,number:`450001`,client:`Северсталь`,manager:`Иван Петров`,amount:`1 250 000`,status:`Новая`},{id:`2`,number:`450002`,client:`ММК`,manager:`Анна Смирнова`,amount:`980 000`,status:`В работе`},{id:`3`,number:`450003`,client:`НЛМК`,manager:`Олег Николаев`,amount:`1 540 000`,status:`Согласование`},{id:`4`,number:`450004`,client:`ЕВРАЗ`,manager:`Мария Кузнецова`,amount:`760 000`,status:`Отгружена`},{id:`5`,number:`450005`,client:`ТМК`,manager:`Дмитрий Волков`,amount:`1 120 000`,status:`Закрыта`}],x=[...b,{id:`6`,number:`450006`,client:`ОМК`,manager:`Елена Андреева`,amount:`680 000`,status:`Архив`,isLocked:!0}],S=Array.from({length:18},(e,t)=>({id:String(t+1),number:`4600${String(t+1).padStart(2,`0`)}`,client:`Клиент ${t+1}`,manager:`Менеджер ${t+1}`,amount:`${850+t*15} 000`,status:t%2==0?`В работе`:`Согласование`})),C=[{id:`number`,accessorKey:`number`,header:`Номер`,meta:{width:9}},{id:`client`,accessorKey:`client`,header:`Клиент`,meta:{width:14}},{id:`manager`,accessorKey:`manager`,header:`Менеджер`,meta:{width:12}},{id:`amount`,accessorKey:`amount`,header:`Сумма`,meta:{width:10,align:`right`}},{id:`status`,accessorKey:`status`,header:`Статус`,meta:{width:11}}],w=[{id:`fmt-1`,product:`Лист горячекатаный`,purchasePrice:80,salePrice:120,healthScore:35,pendingAmount:0,createdAt:`2026-03-18T09:15:00.000Z`,totalAmount:1520.5},{id:`fmt-2`,product:`Рулон оцинкованный`,purchasePrice:95,salePrice:150,healthScore:125,pendingAmount:320,createdAt:`2026-03-19T11:40:00.000Z`,totalAmount:2140},{id:`fmt-3`,product:`Арматура`,purchasePrice:60,salePrice:90,healthScore:70,pendingAmount:0,createdAt:`2026-03-20T07:05:00.000Z`,totalAmount:980.75}],T=[{id:`merge-1`,division:`ДВД`,department:`Продажи`,employee:`Иван Петров`},{id:`merge-2`,division:`ДВД`,department:`Продажи`,employee:`Анна Смирнова`},{id:`merge-3`,division:`ДВД`,department:`Продажи`,employee:`Олег Николаев`},{id:`merge-4`,division:`УД`,department:`Логистика`,employee:`Мария Кузнецова`},{id:`merge-5`,division:`УД`,department:`Логистика`,employee:`Дмитрий Волков`},{id:`merge-6`,division:`УД`,department:`Логистика`,employee:`Елена Андреева`},{id:`merge-7`,division:`УД`,department:`Логистика`,employee:`Николай Орлов`}],E=[{id:`division`,accessorKey:`division`,header:`Дивизион`,meta:{width:10,mergeDuplicates:!0}},{id:`department`,accessorKey:`department`,header:`Подразделение`,meta:{width:12}},{id:`employee`,accessorKey:`employee`,header:`Сотрудник`,meta:{width:14}}],D=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`purchasePrice`,accessorKey:`purchasePrice`,header:`Закупка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`salePrice`,accessorKey:`salePrice`,header:`Продажа`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`markup`,accessorFn:()=>void 0,header:`Наценка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,formulaId:`markup`,formulaDependencies:[`purchasePrice`,`salePrice`],purelyDerived:!0}}}],O=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`healthScore`,accessorKey:`healthScore`,header:`Индекс риска`,meta:{width:10,align:`right`,formatting:{role:`measure`,type:`decimal`,formattersPipeline:p()}}}],k=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`pendingAmount`,accessorKey:`pendingAmount`,header:`Резерв`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,emptyWhenZero:!0}}}],A=[{id:`product`,type:`string`,originalType:`Edm.String`,label:`Товар`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`createdAt`,type:`datetime`,originalType:`Edm.DateTime`,label:`Дата создания`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`totalAmount`,type:`decimal`,originalType:`Edm.Decimal`,label:`Сумма`,semanticType:`none`,sortable:!0,filterable:!0,role:`measure`}],j=[{id:`product`,accessorKey:`product`,header:`Позиция`,meta:{width:16}},{id:`createdAt`,accessorKey:`createdAt`,header:`Создано`,meta:{width:12}},{id:`totalAmount`,accessorKey:`totalAmount`,header:`Итог`,meta:{width:9,align:`right`}}],M=oe(j,A),N=`ZDEMO_DEALS_SRV`,P=`DealSet`,F={title:`Портфель сделок`,columns:A},I=(e,t)=>{let n=(0,v.useMemo)(()=>{let e=te({}),n=t.parameters.odataService,r=t.parameters.odataEntity,i=t.parameters.odataMetadata;return n&&r&&i&&e.setQueryData(a({service:n}).queryKey,{entities:{[r]:i},functionImports:{}}),e},[t.parameters.odataEntity,t.parameters.odataMetadata,t.parameters.odataService]);return(0,y.jsx)(ee,{client:n,children:e()})},Re={title:`UI/Table`,component:l,args:{title:`Сделки`,data:b,columns:C,getRowId:e=>e.id,selectionMode:`single`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{title:{description:`Заголовок таблицы.`,control:`text`},isLoading:{description:`Показывает состояние первичной загрузки.`,control:`boolean`},isFetching:{description:`Показывает фоновое обновление без очистки строк.`,control:`boolean`},data:{description:`Плоский источник строк.`,control:!1},columns:{description:`Описание колонок таблицы.`,control:!1},selectionMode:{description:`Режим выбора строк.`,control:`inline-radio`,options:[`none`,`single`,`multi`]},selectedRowIds:{description:`Controlled-набор выбранных id строк.`,control:!1},getRowId:{description:`Функция получения стабильного id строки.`,control:!1},minHeight:{description:`Минимальная высота scroll-области таблицы в em или процентах.`,control:`text`},columnVisibility:{description:`Controlled-состояние видимости колонок.`,control:!1},defaultColumnVisibility:{description:`Стартовое uncontrolled-состояние видимости колонок.`,control:!1},columnOrder:{description:`Controlled-порядок идентификаторов колонок.`,control:!1},defaultColumnOrder:{description:`Стартовый uncontrolled-порядок колонок.`,control:!1},columnSizing:{description:`Controlled-ширины колонок в px.`,control:!1},defaultColumnSizing:{description:`Стартовые uncontrolled-ширины колонок.`,control:!1},columnPinning:{description:`Controlled-состояние закрепления колонок слева.`,control:!1},defaultColumnPinning:{description:`Стартовое uncontrolled-состояние закрепления колонок слева.`,control:!1},onColumnPinningChange:{description:`Вызывается после изменения закрепления колонок слева.`,control:!1},enableColumnResizing:{description:`Включает изменение ширины колонок через header-handle.`,control:`boolean`},enableColumnReordering:{description:`Включает перетаскивание заголовков для изменения порядка колонок.`,control:`boolean`},columnResizeMinWidth:{description:`Минимальная ширина колонки при resize в px.`,control:`number`},onColumnVisibilityChange:{description:`Вызывается после изменения видимости колонок.`,control:!1},onColumnOrderChange:{description:`Вызывается после изменения порядка колонок.`,control:!1},onColumnSizingChange:{description:`Вызывается после изменения ширины колонок.`,control:!1},getRowCanSelect:{description:`Позволяет запретить выбор отдельных строк.`,control:!1},getRowClassName:{description:`Позволяет добавить CSS-класс для конкретной строки.`,control:!1},onRowClick:{description:`Вызывается при активации строки.`,control:!1},onRowSelectionChange:{description:`Вызывается после изменения выбранных строк.`,control:!1},onReachEnd:{description:`Вызывается при достижении конца списка внутри scroll-контейнера.`,control:!1},renderHeaderContextMenu:{description:`Слот контекстного меню заголовка колонки.`,control:!1},renderCellContent:{description:`Слот содержимого ячейки поверх стандартного formatting-runtime.`,control:!1}}},L=o((e,t)=>(0,y.jsx)(h,{args:e,updateArgs:t})),R=o((e,t)=>(0,y.jsx)(h,{args:e,updateArgs:t})),ze=o((e,t)=>(0,y.jsx)(h,{args:e,updateArgs:t})),z={render:L},B={args:{columnPinning:{start:[`number`]}},render:o((e,t)=>{let n=e.columnPinning??{start:[]};return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{style:{display:`flex`,gap:`0.5em`,flexWrap:`wrap`},children:[(0,y.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`]}}),children:`Закрепить «Номер»`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`,`client`]}}),children:`Закрепить «Номер» и «Клиент»`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[]}}),children:`Снять закрепление`})]}),(0,y.jsxs)(`div`,{children:[`Закреплено в начале: `,n.start?.length?n.start.join(`, `):`ничего`]}),(0,y.jsx)(h,{args:{...e,columnPinning:n},updateArgs:t})]})})},V={args:{selectionMode:`multi`,selectedRowIds:[]},render:o((e,t)=>(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,y.jsx)(h,{args:e,updateArgs:t})]}))},H={args:{data:x,selectionMode:`multi`,selectedRowIds:[],getRowCanSelect:e=>!e.isLocked},render:o((e,t)=>(0,y.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,y.jsx)(`div`,{children:`Строка со статусом «Архив» остаётся видимой, но не участвует в выборе.`}),(0,y.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,y.jsx)(h,{args:e,updateArgs:t})]}))},U={args:{isFetching:!0},render:L},W={args:{data:[]},render:L},G={args:{data:S},render:o((e,t)=>(0,y.jsx)(Le,{args:e,updateArgs:t}))},K={args:{isLoading:!0},render:L},q={args:{title:`Формула наценки`,data:w,columns:D,selectionMode:`none`,getRowId:e=>e.id},render:R},J={args:{title:`Pipeline форматирования`,data:w,columns:O,selectionMode:`none`,getRowId:e=>e.id},render:R},Y={args:{title:`Скрытие нулей`,data:w,columns:k,selectionMode:`none`,getRowId:e=>e.id},render:R},X={args:{title:`Слияние дубликатов`,data:T,columns:E,selectionMode:`none`,getRowId:e=>e.id},render:ze},Z={args:{title:`OData metadata adapter`,data:w,columns:M,selectionMode:`none`,getRowId:e=>e.id},render:R},Q={args:{title:`useODataTableColumns: build`,data:w,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[I],parameters:{odataService:N,odataEntity:P,odataMetadata:F},render:o((e,t)=>(0,y.jsx)(g,{args:e,updateArgs:t}))},$={args:{title:`useODataTableColumns: enrich`,data:w,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[I],parameters:{odataService:N,odataEntity:P,odataMetadata:F},render:o((e,t)=>(0,y.jsx)(_,{args:e,updateArgs:t}))},z.parameters={...z.parameters,docs:{...z.parameters?.docs,source:{originalSource:`{
6
+ вроде server sorting без встраивания доменной логики в shared-таблицу.`},renderCellContent:{required:!1,tsType:{name:`BaseTableProps["renderCellContent"]`,raw:`BaseTableProps<TData>["renderCellContent"]`},description:"Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\nВ отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n`defaultContent` уже содержит отформатированное значение, если оно применимо."}}}})))()}var Fe=t({Basic:()=>z,Empty:()=>W,Fetching:()=>U,Loading:()=>K,MultiSelect:()=>V,ReachEnd:()=>G,WithColumnPinning:()=>B,WithDisabledRows:()=>H,WithFormattingPipeline:()=>J,WithFormulaColumn:()=>q,WithHiddenZero:()=>Y,WithMergedDuplicates:()=>X,WithODataMetadataAdapter:()=>Z,WithUseODataTableColumnsBuildHook:()=>Q,WithUseODataTableColumnsEnrichHook:()=>$,__namedExportsOrder:()=>Be,default:()=>Re});function m(){return{version:1,plan:{steps:[{id:`state`,type:`resolveValueState`,config:{resolver:{kind:`threshold`,thresholds:[100],states:[`success`,`warning`],invalidState:`none`},icon:{enabled:!0,showValue:!0,position:`right`}}},{id:`typed`,type:`typedValueFormat`}]}}}function h(e,t){let n=e.data??[];return t.map(t=>{let r=n.indexOf(t);return e.getRowId?.(t,r)??String(r)})}function g({args:e,updateArgs:t}){return(0,b.jsx)(u,{...e,onColumnVisibilityChange:n=>{e.onColumnVisibilityChange?.(n),t({columnVisibility:n})},onColumnOrderChange:n=>{e.onColumnOrderChange?.(n),t({columnOrder:n})},onColumnSizingChange:n=>{e.onColumnSizingChange?.(n),t({columnSizing:n})},onColumnPinningChange:n=>{e.onColumnPinningChange?.(n),t({columnPinning:n})},onRowSelectionChange:n=>{e.onRowSelectionChange?.(n),t({selectedRowIds:h(e,n)})}})}function _({args:e,updateArgs:t}){let{columns:n,metadata:r,isLoading:i}=oe({service:N,target:P,mode:`build`});return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Режим build: hook собрал `,n.length,` колонки из metadata`,r?` для сущности «${r.title}».`:`.`]}),(0,b.jsx)(g,{args:{...e,columns:n,isLoading:e.isLoading??i},updateArgs:t})]})}function v({args:e,updateArgs:t}){let{columns:n,metadata:r,isLoading:i}=oe({service:N,target:P,mode:`enrich`,columns:j});return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Режим enrich: hook сохранил ручные заголовки и дополнил formatting-контекст`,r?` из metadata «${r.title}».`:`.`]}),(0,b.jsx)(g,{args:{...e,columns:n,isLoading:e.isLoading??i},updateArgs:t})]})}function Ie({args:e,updateArgs:t}){let[n,r]=(0,y.useState)(0);return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Событие достижения конца: `,n]}),(0,b.jsx)(g,{args:{...e,onReachEnd:()=>{e.onReachEnd?.(),r(e=>e+1)}},updateArgs:t})]})}var y,b,x,S,C,w,T,E,D,O,k,Le,A,j,M,N,P,F,I,Re,L,R,ze,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$,Be;function Ve(){return(Ve=e((()=>{y=n(),re(),ee(),o(),i(),je(),p(),b=r(),x=[{id:`1`,number:`450001`,client:`Северсталь`,manager:`Иван Петров`,amount:`1 250 000`,status:`Новая`},{id:`2`,number:`450002`,client:`ММК`,manager:`Анна Смирнова`,amount:`980 000`,status:`В работе`},{id:`3`,number:`450003`,client:`НЛМК`,manager:`Олег Николаев`,amount:`1 540 000`,status:`Согласование`},{id:`4`,number:`450004`,client:`ЕВРАЗ`,manager:`Мария Кузнецова`,amount:`760 000`,status:`Отгружена`},{id:`5`,number:`450005`,client:`ТМК`,manager:`Дмитрий Волков`,amount:`1 120 000`,status:`Закрыта`}],S=[...x,{id:`6`,number:`450006`,client:`ОМК`,manager:`Елена Андреева`,amount:`680 000`,status:`Архив`,isLocked:!0}],C=Array.from({length:18},(e,t)=>({id:String(t+1),number:`4600${String(t+1).padStart(2,`0`)}`,client:`Клиент ${t+1}`,manager:`Менеджер ${t+1}`,amount:`${850+t*15} 000`,status:t%2==0?`В работе`:`Согласование`})),w=[{id:`number`,accessorKey:`number`,header:`Номер`,meta:{width:9}},{id:`client`,accessorKey:`client`,header:`Клиент`,meta:{width:14}},{id:`manager`,accessorKey:`manager`,header:`Менеджер`,meta:{width:12}},{id:`amount`,accessorKey:`amount`,header:`Сумма`,meta:{width:10,align:`right`}},{id:`status`,accessorKey:`status`,header:`Статус`,meta:{width:11}}],T=[{id:`fmt-1`,product:`Лист горячекатаный`,purchasePrice:80,salePrice:120,healthScore:35,pendingAmount:0,createdAt:`2026-03-18T09:15:00.000Z`,totalAmount:1520.5},{id:`fmt-2`,product:`Рулон оцинкованный`,purchasePrice:95,salePrice:150,healthScore:125,pendingAmount:320,createdAt:`2026-03-19T11:40:00.000Z`,totalAmount:2140},{id:`fmt-3`,product:`Арматура`,purchasePrice:60,salePrice:90,healthScore:70,pendingAmount:0,createdAt:`2026-03-20T07:05:00.000Z`,totalAmount:980.75}],E=[{id:`merge-1`,division:`ДВД`,department:`Продажи`,employee:`Иван Петров`},{id:`merge-2`,division:`ДВД`,department:`Продажи`,employee:`Анна Смирнова`},{id:`merge-3`,division:`ДВД`,department:`Продажи`,employee:`Олег Николаев`},{id:`merge-4`,division:`УД`,department:`Логистика`,employee:`Мария Кузнецова`},{id:`merge-5`,division:`УД`,department:`Логистика`,employee:`Дмитрий Волков`},{id:`merge-6`,division:`УД`,department:`Логистика`,employee:`Елена Андреева`},{id:`merge-7`,division:`УД`,department:`Логистика`,employee:`Николай Орлов`}],D=[{id:`division`,accessorKey:`division`,header:`Дивизион`,meta:{width:10,mergeDuplicates:!0}},{id:`department`,accessorKey:`department`,header:`Подразделение`,meta:{width:12}},{id:`employee`,accessorKey:`employee`,header:`Сотрудник`,meta:{width:14}}],O=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`purchasePrice`,accessorKey:`purchasePrice`,header:`Закупка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`salePrice`,accessorKey:`salePrice`,header:`Продажа`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`markup`,accessorFn:()=>void 0,header:`Наценка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,formulaId:`markup`,formulaDependencies:[`purchasePrice`,`salePrice`],purelyDerived:!0}}}],k=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`healthScore`,accessorKey:`healthScore`,header:`Индекс риска`,meta:{width:10,align:`right`,formatting:{role:`measure`,type:`decimal`,formattersPipeline:m()}}}],Le=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`pendingAmount`,accessorKey:`pendingAmount`,header:`Резерв`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,emptyWhenZero:!0}}}],A=[{id:`product`,type:`string`,originalType:`Edm.String`,label:`Товар`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`createdAt`,type:`datetime`,originalType:`Edm.DateTime`,label:`Дата создания`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`totalAmount`,type:`decimal`,originalType:`Edm.Decimal`,label:`Сумма`,semanticType:`none`,sortable:!0,filterable:!0,role:`measure`}],j=[{id:`product`,accessorKey:`product`,header:`Позиция`,meta:{width:16}},{id:`createdAt`,accessorKey:`createdAt`,header:`Создано`,meta:{width:12}},{id:`totalAmount`,accessorKey:`totalAmount`,header:`Итог`,meta:{width:9,align:`right`}}],M=ie(j,A),N=`ZDEMO_DEALS_SRV`,P=`DealSet`,F={title:`Портфель сделок`,columns:A},I=(e,t)=>{let n=(0,y.useMemo)(()=>{let e=a({}),n=t.parameters.odataService,r=t.parameters.odataEntity,i=t.parameters.odataMetadata;return n&&r&&i&&e.setQueryData(te({service:n}).queryKey,{entities:{[r]:i},functionImports:{}}),e},[t.parameters.odataEntity,t.parameters.odataMetadata,t.parameters.odataService]);return(0,b.jsx)(se,{client:n,children:e()})},Re={title:`UI/Table`,component:u,args:{title:`Сделки`,data:x,columns:w,getRowId:e=>e.id,selectionMode:`single`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{title:{description:`Заголовок таблицы.`,control:`text`},isLoading:{description:`Показывает состояние первичной загрузки.`,control:`boolean`},isFetching:{description:`Показывает фоновое обновление без очистки строк.`,control:`boolean`},data:{description:`Плоский источник строк.`,control:!1},columns:{description:`Описание колонок таблицы.`,control:!1},selectionMode:{description:`Режим выбора строк.`,control:`inline-radio`,options:[`none`,`single`,`multi`]},selectedRowIds:{description:`Controlled-набор выбранных id строк.`,control:!1},getRowId:{description:`Функция получения стабильного id строки.`,control:!1},minHeight:{description:`Минимальная высота scroll-области таблицы в em или процентах.`,control:`text`},columnVisibility:{description:`Controlled-состояние видимости колонок.`,control:!1},defaultColumnVisibility:{description:`Стартовое uncontrolled-состояние видимости колонок.`,control:!1},columnOrder:{description:`Controlled-порядок идентификаторов колонок.`,control:!1},defaultColumnOrder:{description:`Стартовый uncontrolled-порядок колонок.`,control:!1},columnSizing:{description:`Controlled-ширины колонок в px.`,control:!1},defaultColumnSizing:{description:`Стартовые uncontrolled-ширины колонок.`,control:!1},columnPinning:{description:`Controlled-состояние закрепления колонок слева.`,control:!1},defaultColumnPinning:{description:`Стартовое uncontrolled-состояние закрепления колонок слева.`,control:!1},onColumnPinningChange:{description:`Вызывается после изменения закрепления колонок слева.`,control:!1},enableColumnResizing:{description:`Включает изменение ширины колонок через header-handle.`,control:`boolean`},enableColumnReordering:{description:`Включает перетаскивание заголовков для изменения порядка колонок.`,control:`boolean`},columnResizeMinWidth:{description:`Минимальная ширина колонки при resize в px.`,control:`number`},onColumnVisibilityChange:{description:`Вызывается после изменения видимости колонок.`,control:!1},onColumnOrderChange:{description:`Вызывается после изменения порядка колонок.`,control:!1},onColumnSizingChange:{description:`Вызывается после изменения ширины колонок.`,control:!1},getRowCanSelect:{description:`Позволяет запретить выбор отдельных строк.`,control:!1},getRowClassName:{description:`Позволяет добавить CSS-класс для конкретной строки.`,control:!1},onRowClick:{description:`Вызывается при активации строки.`,control:!1},onRowSelectionChange:{description:`Вызывается после изменения выбранных строк.`,control:!1},onReachEnd:{description:`Вызывается при достижении конца списка внутри scroll-контейнера.`,control:!1},renderHeaderContextMenu:{description:`Слот контекстного меню заголовка колонки.`,control:!1},renderCellContent:{description:`Слот содержимого ячейки поверх стандартного formatting-runtime.`,control:!1}}},L=s((e,t)=>(0,b.jsx)(g,{args:e,updateArgs:t})),R=s((e,t)=>(0,b.jsx)(g,{args:e,updateArgs:t})),ze=s((e,t)=>(0,b.jsx)(g,{args:e,updateArgs:t})),z={render:L},B={args:{columnPinning:{start:[`number`]}},render:s((e,t)=>{let n=e.columnPinning??{start:[]};return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{style:{display:`flex`,gap:`0.5em`,flexWrap:`wrap`},children:[(0,b.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`]}}),children:`Закрепить «Номер»`}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`,`client`]}}),children:`Закрепить «Номер» и «Клиент»`}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[]}}),children:`Снять закрепление`})]}),(0,b.jsxs)(`div`,{children:[`Закреплено в начале: `,n.start?.length?n.start.join(`, `):`ничего`]}),(0,b.jsx)(g,{args:{...e,columnPinning:n},updateArgs:t})]})})},V={args:{selectionMode:`multi`,selectedRowIds:[]},render:s((e,t)=>(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,b.jsx)(g,{args:e,updateArgs:t})]}))},H={args:{data:S,selectionMode:`multi`,selectedRowIds:[],getRowCanSelect:e=>!e.isLocked},render:s((e,t)=>(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsx)(`div`,{children:`Строка со статусом «Архив» остаётся видимой, но не участвует в выборе.`}),(0,b.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,b.jsx)(g,{args:e,updateArgs:t})]}))},U={args:{isFetching:!0},render:L},W={args:{data:[]},render:L},G={args:{data:C},render:s((e,t)=>(0,b.jsx)(Ie,{args:e,updateArgs:t}))},K={args:{isLoading:!0},render:L},q={args:{title:`Формула наценки`,data:T,columns:O,selectionMode:`none`,getRowId:e=>e.id},render:R},J={args:{title:`Pipeline форматирования`,data:T,columns:k,selectionMode:`none`,getRowId:e=>e.id},render:R},Y={args:{title:`Скрытие нулей`,data:T,columns:Le,selectionMode:`none`,getRowId:e=>e.id},render:R},X={args:{title:`Слияние дубликатов`,data:E,columns:D,selectionMode:`none`,getRowId:e=>e.id},render:ze},Z={args:{title:`OData metadata adapter`,data:T,columns:M,selectionMode:`none`,getRowId:e=>e.id},render:R},Q={args:{title:`useODataTableColumns: build`,data:T,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[I],parameters:{odataService:N,odataEntity:P,odataMetadata:F},render:s((e,t)=>(0,b.jsx)(_,{args:e,updateArgs:t}))},$={args:{title:`useODataTableColumns: enrich`,data:T,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[I],parameters:{odataService:N,odataEntity:P,odataMetadata:F},render:s((e,t)=>(0,b.jsx)(v,{args:e,updateArgs:t}))},z.parameters={...z.parameters,docs:{...z.parameters?.docs,source:{originalSource:`{
7
7
  render: renderDealTableStory
8
8
  }`,...z.parameters?.docs?.source},description:{story:`Базовый сценарий плоской таблицы с одиночным выбором.`,...z.parameters?.docs?.description}}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
9
9
  args: {
@@ -175,4 +175,4 @@ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./r
175
175
  odataMetadata: hookMetadata
176
176
  },
177
177
  render: createControlledStoryRender<TableProps<DealFormattingRow>>((args, updateArgs) => <HookEnrichTableStory args={args} updateArgs={updateArgs} />)
178
- }`,...$.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме enrich.",...$.parameters?.docs?.description}}},Be=[`Basic`,`WithColumnPinning`,`MultiSelect`,`WithDisabledRows`,`Fetching`,`Empty`,`ReachEnd`,`Loading`,`WithFormulaColumn`,`WithFormattingPipeline`,`WithHiddenZero`,`WithMergedDuplicates`,`WithODataMetadataAdapter`,`WithUseODataTableColumnsBuildHook`,`WithUseODataTableColumnsEnrichHook`]})))()}export{Ve as _,V as a,B as c,q as d,Y as f,$ as g,Q as h,K as i,H as l,Z as m,W as n,G as o,X as p,U as r,Ie as s,z as t,J as u};
178
+ }`,...$.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме enrich.",...$.parameters?.docs?.description}}},Be=[`Basic`,`WithColumnPinning`,`MultiSelect`,`WithDisabledRows`,`Fetching`,`Empty`,`ReachEnd`,`Loading`,`WithFormulaColumn`,`WithFormattingPipeline`,`WithHiddenZero`,`WithMergedDuplicates`,`WithODataMetadataAdapter`,`WithUseODataTableColumnsBuildHook`,`WithUseODataTableColumnsEnrichHook`]})))()}export{Ve as _,V as a,B as c,q as d,Y as f,$ as g,Q as h,K as i,H as l,Z as m,W as n,G as o,X as p,U as r,Fe as s,z as t,J as u};
@@ -0,0 +1 @@
1
+ ._6ftNrS{gap:var(--space-md);min-width:0;color:var(--content-0);display:grid}.tji4uW{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.nVFFYk{color:var(--content-1);margin:0}.S7CdzG{border:var(--border);border-radius:var(--radius-sm);max-height:34rem;overflow:auto}.emaqLv{table-layout:fixed;border-collapse:collapse;width:max-content;min-width:100%}.emaqLv td,.emaqLv th{padding:var(--space-sm);border:var(--border);vertical-align:top;text-align:start;background:var(--surface-0);cursor:cell;min-width:6rem}.emaqLv td[aria-selected=true],.emaqLv th[aria-selected=true]{background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--content-1)}.emaqLv td:focus,.emaqLv th:focus{outline:3px solid var(--content-0);outline-offset:-3px}.emaqLv tr[data-header] th{font-weight:600}.emaqLv tr[data-header] th:not([aria-selected=true]){background:var(--surface-1)}.VLG992{overflow-wrap:anywhere;pointer-events:none;-webkit-user-select:none;user-select:none;min-height:2rem}.Hr0ghz{gap:var(--space-sm);padding:var(--space-md);border:var(--border);background:var(--surface-1);display:grid}.tuhyZe{padding:var(--space-sm);border:var(--border);display:grid}.tuhyZe summary{cursor:pointer;margin-bottom:var(--space-sm)}.tuhyZe .tji4uW{margin-bottom:var(--space-sm)}
@@ -0,0 +1,61 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./CheckBox-B9f_n0Nh.js";import{n as i}from"./iframe-0M2vpakb.js";import{i as a,l as o}from"./array-D-_yMMUK-DnJ_b27D.js";import{n as s,t as c}from"./Button-PAj4mH8o.js";import{n as l,t as u}from"./useTable-CK68Q4S4.js";import{a as d,l as f,t as p}from"./Input-Ckb0G4jj.js";import{Et as m,Mt as h,Nt as g,Pt as _,Tt as v,n as ee,wt as te}from"./tableFeatures-Dx3U-F9E.js";import{n as ne,t as re}from"./Dialog-87D5Shqd.js";import{n as ie,t as ae}from"./Textarea-pXxz-925.js";function y(){if(crypto.randomUUID)return crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array(256);for(let e=0;e<256;e++)t[e]=(e+256).toString(16).slice(1);return t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+`-`+t[e[4]]+t[e[5]]+`-`+t[e[6]]+t[e[7]]+`-`+t[e[8]]+t[e[9]]+`-`+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}function oe(e){let t=e.getRowModel().rows,n=e.atoms.rowPinning?.get();if(!n||!n.top.length&&!n.bottom.length)return{rows:t,sectionStarts:pe};let r=e,i=r.getTopRows?.()??[],a=r.getCenterRows?.()??t,o=r.getBottomRows?.()??[];return{rows:[...i,...a,...o],sectionStarts:[i.length,i.length+a.length]}}function se(e,t){let n=t.getVisibleCells?.()??t.getAllCells(),r=Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e].column;let i=e.atoms.columnPinning?.get(),a=0,o=r.length;if(i){for(;a<o&&i.start.includes(r[a].id);)a++;for(;o>a&&i.end.includes(r[o-1].id);)o--}return{columns:r,centerStart:a,centerEnd:o}}function b(e){return e.columnDef.enableCellSpanning===!1?!1:e.table.options.enableCellSpanning??!0}function x(e){let{rows:t,sectionStarts:n}=oe(e),r=t.length,i={colSpans:fe,columnIndexes:de,rowSpans:ue,rows:t};if(!r||e.options.enableCellSpanning===!1)return i;let{columns:a,centerStart:o,centerEnd:s}=se(e,t[0]),c=a.length;if(!c)return i;let l=_();for(let e=0;e<c;e++)l[a[e].id]=e;let u=new Uint8Array(r);for(let e=0;e<n.length;e++){let t=n[e];t<r&&(u[t]=1)}for(let e=0;e<r;e++){let n=t[e];n._cellSpanRowIndex=e;let r=e>0?t[e-1]:void 0;(r&&(n.depth!==r.depth||n.parentId!==r.parentId)||n.getIsGrouped?.()===!0)&&(u[e]=1)}let d=[],f=!1;for(let n=0;n<c;n++){let i=a[n],l=i.columnDef.spanColumns;if(l===void 0||!b(i))continue;let u=n<o?o:n<s?s:c;for(let a=0;a<r;a++){let r=d[a];if(r&&r[n]===0)continue;let o=g(l)?l({column:i,row:t[a],table:e}):l;if(!(o>1))continue;let s=Math.min(o,u-n);if(s<2)continue;let p=r??(d[a]=new Int32Array(c).fill(1));p[n]=s;for(let e=n+1;e<n+s;e++)p[e]=0;f=!0}}let p=_();for(let n=0;n<c;n++){let i=a[n],o=i.columnDef.spanRows;if(!o||!b(i)||i.getIsGrouped?.()===!0)continue;let s=i.id,c=g(o)?o:void 0,l=new Int32Array(r).fill(1),m=!1,h=-1,_,v=1;for(let a=0;a<r;a++){let r=t[a],o=f?d[a]:void 0,p=o?o[n]:1;if(p===0){h=-1;continue}let g=r.getValue(s);if(h!==-1&&!u[a]&&p===v&&(c?c({anchorRow:t[h],anchorValue:_,column:i,previousRow:t[a-1],row:r,table:e,value:g}):g!=null&&Object.is(g,_))){l[a]=0,l[h]=l[h]+1,m=!0;continue}h=a,_=g,v=p}m&&(p[s]=l)}return{colSpans:d,columnIndexes:l,rowSpans:p,rows:t}}function S(e,t){let n=t.row._cellSpanRowIndex;return n===void 0||e.rows[n]!==t.row?-1:n}function C(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=n.rowSpans[e.column.id];if(!r)return 1;let i=S(n,e);return i===-1?1:r[i]}function ce(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=S(n,e);if(r===-1)return 1;let i=n.colSpans[r];if(!i)return 1;let a=n.columnIndexes[e.column.id];return a===void 0?1:i[a]}function le(e){return C(e)===0||ce(e)===0}var ue,de,fe,pe;function me(){return(me=e((()=>{h(),ue=_(),de=_(),fe=[],pe=[]})))()}var w;function T(){return(T=e((()=>{h(),me(),w={getDefaultTableOptions:()=>({enableCellSpanning:!0}),initRowInstanceData:e=>{e._cellSpanRowIndex=-1},assignCellPrototype:(e,t)=>{te(`cellSpanningFeature`,e,t,{cell_getColSpan:{fn:e=>ce(e)},cell_getIsCovered:{fn:e=>le(e)},cell_getRowSpan:{fn:e=>C(e)}})},constructTableAPIs:e=>{v(`cellSpanningFeature`,e,{table_getCellSpanIndex:{fn:()=>x(e),memoDeps:()=>[e.getRowModel().rows,e.atoms.rowPinning?.get(),e.options.keepPinnedRows,e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.columnPinning?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode,e.options.enableCellSpanning]}})}}})))()}function E(e,t){return e.row<t.row+t.rowSpan&&t.row<e.row+e.rowSpan&&e.column<t.column+t.columnSpan&&t.column<e.column+e.columnSpan}function D(e){let t=e.rows.length,n=e.columns.length;if(e.version!==1||!t||!n||t*n>2e4)throw Error(`Недопустимый размер таблицы.`);if(!Number.isInteger(e.headerRowCount)||e.headerRowCount<0||e.headerRowCount>t)throw Error(`Некорректное число строк заголовка.`);let r=new Set,i=e=>{if(!e||r.has(e))throw Error(`Идентификаторы строк, столбцов и ячеек должны быть уникальными.`);r.add(e)};for(let t of e.columns)if(i(t.id),t.width!==null&&(!Number.isFinite(t.width)||t.width<=0))throw Error(`Некорректная ширина столбца.`);for(let t of e.rows){if(i(t.id),t.cells.length!==n)throw Error(`Все строки должны иметь одинаковое число ячеек.`);t.cells.forEach(e=>i(e.id))}let a=new Set;for(let t of e.merges){if(O(e,t),t.rowSpan*t.columnSpan===1)throw Error(`Объединение должно содержать несколько ячеек.`);if(t.row<e.headerRowCount&&t.row+t.rowSpan>e.headerRowCount)throw Error(`Нельзя объединять заголовок с основной частью таблицы.`);for(let e=t.row;e<t.row+t.rowSpan;e++)for(let r=t.column;r<t.column+t.columnSpan;r++){let t=e*n+r;if(a.has(t))throw Error(`Объединённые области пересекаются.`);a.add(t)}}}function O(e,t){if(![t.row,t.column,t.rowSpan,t.columnSpan].every(Number.isInteger)||t.row<0||t.column<0||t.rowSpan<1||t.columnSpan<1||t.row+t.rowSpan>e.rows.length||t.column+t.columnSpan>e.columns.length)throw Error(`Выделение выходит за границы таблицы.`)}function k(e,t){let n={...t,rowSpan:1,columnSpan:1};return O(e,n),e.merges.find(e=>E(e,n))??n}function A(e,t,n){let r={row:Math.min(t.row,n.row),column:Math.min(t.column,n.column),rowSpan:Math.abs(t.row-n.row)+1,columnSpan:Math.abs(t.column-n.column)+1};O(e,r);let i=!0;for(;i;){i=!1;for(let t of e.merges){if(!E(r,t))continue;let e=Math.min(r.row,t.row),n=Math.min(r.column,t.column),a=Math.max(r.row+r.rowSpan,t.row+t.rowSpan)-e,o=Math.max(r.column+r.columnSpan,t.column+t.columnSpan)-n;(e!==r.row||n!==r.column||a!==r.rowSpan||o!==r.columnSpan)&&(r={row:e,column:n,rowSpan:a,columnSpan:o},i=!0)}}return r}function he(e,t,n){D(e);let r=A(e,t,n);if(r.rowSpan*r.columnSpan===1)return e;let i=e.merges.filter(e=>E(e,r));if(i.length===1&&r.row===i[0].row&&r.column===i[0].column&&r.rowSpan===i[0].rowSpan&&r.columnSpan===i[0].columnSpan)return e;let a={...e,merges:[...e.merges.filter(e=>!E(e,r)),r]};return D(a),a}function ge(e,t){D(e);let n=k(e,t);return n.rowSpan*n.columnSpan===1?e:{...e,merges:e.merges.filter(e=>e!==n)}}function j(e,t,n,r,i,a=`body`){D(e);let o=t===`row`?e.rows.length:e.columns.length;if(!Number.isInteger(n)||n<0||n>o)throw Error(`Некорректная позиция вставки.`);if(i.length!==(t===`row`?e.columns.length:e.rows.length))throw Error(`Неверное число новых ячеек.`);if(t===`row`&&(a===`header`?n>e.headerRowCount:n<e.headerRowCount))throw Error(`Строка вставляется вне выбранной части таблицы.`);let s=t===`row`?`rowSpan`:`columnSpan`,c=e.merges.map(e=>n<=e[t]?{...e,[t]:e[t]+1}:n<e[t]+e[s]?{...e,[s]:e[s]+1}:e),l=t===`row`?{...e,merges:c,headerRowCount:e.headerRowCount+ +(a===`header`),rows:[...e.rows.slice(0,n),{id:r,cells:i},...e.rows.slice(n)]}:{...e,merges:c,columns:[...e.columns.slice(0,n),{id:r,width:null},...e.columns.slice(n)],rows:e.rows.map((e,t)=>({...e,cells:[...e.cells.slice(0,n),i[t],...e.cells.slice(n)]}))};return D(l),l}function _e(e,t,n){return O(e,{...t,rowSpan:1,columnSpan:1}),Object.is(e.rows[t.row].cells[t.column].value,n)?e:{...e,rows:e.rows.map((e,r)=>r===t.row?{...e,cells:e.cells.map((e,r)=>r===t.column?{...e,value:n}:e)}:e)}}function M(e,t){D(e);let n=t===`row`?e.rows.length:e.columns.length,r=new Set;for(let n of e.merges){let e=t===`row`?n.rowSpan:n.columnSpan;for(let i=1;i<e;i++)r.add(n[t]+i)}let i=[],a=0;for(let e=1;e<=n;e++)(e===n||!r.has(e))&&(i.push({start:a,count:e-a}),a=e);return i}function ve(e,t,n){let r=M(e,t).find(e=>n>=e.start&&n<e.start+e.count);if(!r)throw Error(`Группа не найдена.`);let i=t===`row`?e.rows.length:e.columns.length;if(r.count===i)throw Error(`В таблице должна остаться хотя бы одна строка и один столбец.`);let a=r.start+r.count,o=e.merges.filter(e=>e[t]<r.start||e[t]>=a).map(e=>e[t]<a?e:{...e,[t]:e[t]-r.count}),s=t===`row`?{...e,merges:o,rows:e.rows.filter((e,t)=>t<r.start||t>=a),headerRowCount:e.headerRowCount-(r.start<e.headerRowCount?r.count:0)}:{...e,merges:o,columns:e.columns.filter((e,t)=>t<r.start||t>=a),rows:e.rows.map(e=>({...e,cells:e.cells.filter((e,t)=>t<r.start||t>=a)}))};return D(s),s}function ye(e,t,n,r){let i=M(e,t),a=i.findIndex(e=>n>=e.start&&n<e.start+e.count);if(a<0)throw Error(`Группа не найдена.`);let s=a+r;if(s<0||s>=i.length||t===`row`&&i[a].start<e.headerRowCount!=i[s].start<e.headerRowCount)return e;let c=o(i,a,r===-1?`up`:`down`).flatMap(e=>Array.from({length:e.count},(t,n)=>e.start+n)),l=new Map(c.map((e,t)=>[e,t])),u=e.merges.map(e=>({...e,[t]:l.get(e[t])??e[t]})),d=t===`row`?{...e,merges:u,rows:c.map(t=>e.rows[t])}:{...e,merges:u,columns:c.map(t=>e.columns[t]),rows:e.rows.map(e=>({...e,cells:c.map(t=>e.cells[t])}))};return D(d),d}function N(){return(N=e((()=>{a()})))()}var P,F,I,L,R,z,B,V,H;function U(){return(U=e((()=>{P=`_6ftNrS`,F=`tji4uW`,I=`nVFFYk`,L=`S7CdzG`,R=`emaqLv`,z=`VLG992`,B=`Hr0ghz`,V=`tuhyZe`,H={editor:P,toolbar:F,help:I,scroll:L,table:R,cellContent:z,inspector:B,structure:V}})))()}function be(e){let t=(0,W.useMemo)(()=>[...e.rows],[e]),n=(0,W.useMemo)(()=>e.columns.map((t,n)=>({id:t.id,accessorFn:(t,r)=>{let i=k(e,{row:r,column:n});return e.rows[i.row].cells[i.column].id},spanRows:!0,spanColumns:({row:t})=>{let r=k(e,{row:t.index,column:n});return r.column===n?r.columnSpan:1}})),[e]);return l({features:xe,data:t,columns:n,getRowId:e=>e.id})}var W,xe;function G(){return(G=e((()=>{W=t(),N(),T(),u(),xe=ee({cellSpanningFeature:w})})))()}function K({editor:e,extendSelection:t,disabled:n,renderCell:r,getCellText:i}){let a=(0,q.useId)(),o=(0,q.useRef)(new Map),s=be(e.document),{document:c,selection:l,focus:u}=e;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{id:a,className:H.help,children:`Стрелки — переход между ячейками. Shift + стрелки или Shift + щелчок — выделение диапазона. Содержимое выбранной ячейки редактируется под таблицей.`}),(0,J.jsx)(`div`,{className:H.scroll,children:(0,J.jsxs)(`table`,{role:`grid`,"aria-label":c.caption||`Редактор таблицы`,"aria-describedby":a,"aria-multiselectable":`true`,"aria-disabled":n||void 0,className:H.table,children:[(0,J.jsx)(`colgroup`,{children:c.columns.map(e=>(0,J.jsx)(`col`,{style:{width:e.width??180}},e.id))}),(0,J.jsx)(`tbody`,{children:s.getRowModel().rows.map(a=>(0,J.jsx)(`tr`,{"aria-rowindex":a.index+1,"data-header":a.index<c.headerRowCount||void 0,children:a.getAllCells().map((s,d)=>{if(s.getIsCovered())return null;let f=a.index>=l.row&&a.index<l.row+l.rowSpan&&d>=l.column&&d<l.column+l.columnSpan,p={row:a.index,column:d},m=a.original.cells[d],h=a.index<c.headerRowCount?`th`:`td`;return(0,J.jsx)(h,{role:a.index<c.headerRowCount?`columnheader`:`gridcell`,ref:e=>{e?o.current.set(m.id,e):o.current.delete(m.id)},rowSpan:s.getRowSpan(),colSpan:s.getColSpan(),"aria-colindex":d+1,"aria-label":`Строка ${a.index+1}, столбец ${d+1}: ${i(m)||`Пустая ячейка`}`,"aria-selected":f,tabIndex:!n&&u.row===a.index&&u.column===d?0:-1,onClick:r=>{n||e.select(p,t||r.shiftKey)},onPointerEnter:t=>{!n&&t.pointerType===`mouse`&&t.buttons===1&&e.select(p,!0)},onKeyDown:t=>{if(n||t.altKey||t.ctrlKey||t.metaKey)return;let r;switch(t.key){case`ArrowRight`:r={...p,column:d+s.getColSpan()};break;case`ArrowLeft`:r={...p,column:d-1};break;case`ArrowDown`:r={...p,row:a.index+s.getRowSpan()};break;case`ArrowUp`:r={...p,row:a.index-1};break;case`Home`:r={...p,column:0};break;case`End`:r={...p,column:c.columns.length-1};break;case` `:t.preventDefault(),e.select(p,t.shiftKey);return;default:return}if(t.preventDefault(),r.row<0||r.column<0||r.row>=c.rows.length||r.column>=c.columns.length)return;let i=k(c,r);e.select(r,t.shiftKey),o.current.get(c.rows[i.row].cells[i.column].id)?.focus()},children:(0,J.jsx)(`div`,{inert:!0,className:H.cellContent,children:r(m)})},s.id)})},a.id))})]})})]})}var q,J;function Se(){return(Se=e((()=>{q=t(),N(),G(),U(),J=i(),K.__docgenInfo={description:`Доступная сетка: roving tabindex, стрелки/Shift и выбор диапазона без drag-only действий.`,methods:[],displayName:`TableEditorGrid`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
2
+ readonly document: TableDocument<T>;
3
+ readonly selection: TableDocumentRange;
4
+ readonly focus: TableDocumentPosition;
5
+ readonly canUndo: boolean;
6
+ readonly canRedo: boolean;
7
+ readonly historyPosition: number;
8
+ readonly historyLength: number;
9
+ readonly error: string | null;
10
+ readonly select: (position: TableDocumentPosition, extend?: boolean) => void;
11
+ readonly change: (document: TableDocument<T>) => void;
12
+ readonly execute: (command: (document: TableDocument<T>) => TableDocument<T>) => void;
13
+ readonly undo: () => void;
14
+ readonly redo: () => void;
15
+ }`,signature:{properties:[{key:`document`,value:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`,required:!0}},{key:`selection`,value:{name:`TableDocumentRange`,required:!0}},{key:`focus`,value:{name:`TableDocumentPosition`,required:!0}},{key:`canUndo`,value:{name:`boolean`,required:!0}},{key:`canRedo`,value:{name:`boolean`,required:!0}},{key:`historyPosition`,value:{name:`number`,required:!0}},{key:`historyLength`,value:{name:`number`,required:!0}},{key:`error`,value:{name:`union`,raw:`string | null`,elements:[{name:`string`},{name:`null`}],required:!0}},{key:`select`,value:{name:`signature`,type:`function`,raw:`(position: TableDocumentPosition, extend?: boolean) => void`,signature:{arguments:[{type:{name:`TableDocumentPosition`},name:`position`},{type:{name:`boolean`},name:`extend`}],return:{name:`void`}},required:!0}},{key:`change`,value:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => void`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`void`}},required:!0}},{key:`execute`,value:{name:`signature`,type:`function`,raw:`(command: (document: TableDocument<T>) => TableDocument<T>) => void`,signature:{arguments:[{type:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => TableDocument<T>`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`}}},name:`command`}],return:{name:`void`}},required:!0}},{key:`undo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`redo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},extendSelection:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},renderCell:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(cell: TableDocumentCell<T>) => ReactNode`,signature:{arguments:[{type:{name:`TableDocumentCell`,elements:[{name:`T`}],raw:`TableDocumentCell<T>`},name:`cell`}],return:{name:`ReactNode`}}},description:``},getCellText:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(cell: TableDocumentCell<T>) => string`,signature:{arguments:[{type:{name:`TableDocumentCell`,elements:[{name:`T`}],raw:`TableDocumentCell<T>`},name:`cell`}],return:{name:`string`}}},description:``}}}})))()}function Ce({editor:e,createEmptyValue:t,disabled:n}){let[r,i]=(0,we.useState)(null),{document:a,focus:o}=e,s=r?M(a,r).find(e=>o[r]>=e.start&&o[r]<e.start+e.count):null;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`details`,{className:H.structure,children:[(0,Y.jsx)(`summary`,{children:`Строки и столбцы`}),[`row`,`column`].map(r=>(0,Y.jsxs)(`div`,{className:H.toolbar,role:`group`,"aria-label":r===`row`?`Строки`:`Столбцы`,children:[(0,Y.jsx)(`strong`,{children:r===`row`?`Строка`:`Столбец`}),[0,1].map(i=>(0,Y.jsxs)(c,{disabled:n,onClick:()=>{let n=Array.from({length:r===`row`?a.columns.length:a.rows.length},()=>({id:y(),value:t()})),s=y();e.execute(e=>j(e,r,o[r]+i,s,n,o.row<a.headerRowCount?`header`:`body`))},children:[`Вставить `,i?`после`:`перед`]},i)),[-1,1].map(t=>(0,Y.jsxs)(c,{disabled:n,onClick:()=>e.execute(e=>ye(e,r,o[r],t)),children:[`Переместить `,r===`row`?t===-1?`выше`:`ниже`:t===-1?`левее`:`правее`]},t)),(0,Y.jsxs)(c,{tone:`error`,disabled:n,onClick:()=>i(r),children:[`Удалить `,r===`row`?`строку`:`столбец`]})]},r)),(0,Y.jsx)(c,{disabled:n,onClick:()=>{let n=a.columns.map(()=>({id:y(),value:t()})),r=y();e.execute(e=>j(e,`row`,e.headerRowCount,r,n,`header`))},children:`Добавить строку заголовка`})]}),(0,Y.jsx)(re,{open:!!r,onClose:()=>i(null),title:`Удалить часть таблицы?`,description:`Будет удалено ${s?.count??0} ${r===`row`?`строк`:`столбцов`}, включая скрытое объединением содержимое. Объединённая группа удаляется целиком. До сохранения действие можно отменить.`,children:(0,Y.jsxs)(`div`,{className:H.toolbar,children:[(0,Y.jsx)(c,{onClick:()=>i(null),children:`Не удалять`}),(0,Y.jsx)(c,{tone:`error`,disabled:n,onClick:()=>{r&&e.execute(e=>ve(e,r,o[r])),i(null)},children:`Удалить группу`})]})})]})}var we,Y;function Te(){return(Te=e((()=>{we=t(),N(),s(),ne(),U(),Y=i(),Ce.__docgenInfo={description:`Вставка и доступный reorder без обязательного drag; удаление подтверждает весь затронутый блок.`,methods:[],displayName:`TableEditorStructure`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
16
+ readonly document: TableDocument<T>;
17
+ readonly selection: TableDocumentRange;
18
+ readonly focus: TableDocumentPosition;
19
+ readonly canUndo: boolean;
20
+ readonly canRedo: boolean;
21
+ readonly historyPosition: number;
22
+ readonly historyLength: number;
23
+ readonly error: string | null;
24
+ readonly select: (position: TableDocumentPosition, extend?: boolean) => void;
25
+ readonly change: (document: TableDocument<T>) => void;
26
+ readonly execute: (command: (document: TableDocument<T>) => TableDocument<T>) => void;
27
+ readonly undo: () => void;
28
+ readonly redo: () => void;
29
+ }`,signature:{properties:[{key:`document`,value:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`,required:!0}},{key:`selection`,value:{name:`TableDocumentRange`,required:!0}},{key:`focus`,value:{name:`TableDocumentPosition`,required:!0}},{key:`canUndo`,value:{name:`boolean`,required:!0}},{key:`canRedo`,value:{name:`boolean`,required:!0}},{key:`historyPosition`,value:{name:`number`,required:!0}},{key:`historyLength`,value:{name:`number`,required:!0}},{key:`error`,value:{name:`union`,raw:`string | null`,elements:[{name:`string`},{name:`null`}],required:!0}},{key:`select`,value:{name:`signature`,type:`function`,raw:`(position: TableDocumentPosition, extend?: boolean) => void`,signature:{arguments:[{type:{name:`TableDocumentPosition`},name:`position`},{type:{name:`boolean`},name:`extend`}],return:{name:`void`}},required:!0}},{key:`change`,value:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => void`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`void`}},required:!0}},{key:`execute`,value:{name:`signature`,type:`function`,raw:`(command: (document: TableDocument<T>) => TableDocument<T>) => void`,signature:{arguments:[{type:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => TableDocument<T>`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`}}},name:`command`}],return:{name:`void`}},required:!0}},{key:`undo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`redo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},createEmptyValue:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => T`,signature:{arguments:[],return:{name:`T`}}},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}function Ee({editor:e,disabled:t,extendSelection:n,onExtendSelectionChange:i}){let{document:a,selection:o}=e,s={row:o.row+o.rowSpan-1,column:o.column+o.columnSpan-1},l=o.rowSpan*o.columnSpan===1,u=o.row<a.headerRowCount&&s.row>=a.headerRowCount,d=a.merges.find(e=>e.row===o.row&&e.column===o.column&&e.rowSpan===o.rowSpan&&e.columnSpan===o.columnSpan);return(0,X.jsxs)(`div`,{className:H.toolbar,role:`group`,"aria-label":`История и объединение`,children:[(0,X.jsx)(c,{disabled:t||!e.canUndo,onClick:e.undo,children:`Отменить`}),(0,X.jsx)(c,{disabled:t||!e.canRedo,onClick:e.redo,children:`Повторить`}),(0,X.jsx)(c,{disabled:t||l||u||!!d,onClick:()=>e.execute(e=>he(e,o,s)),children:`Объединить ячейки`}),(0,X.jsx)(c,{disabled:t||!d,onClick:()=>e.execute(e=>ge(e,o)),children:`Разъединить ячейки`}),(0,X.jsx)(r,{label:`Выделять диапазон`,value:n,disabled:t,onChange:i}),(0,X.jsxs)(`span`,{role:`status`,children:[`Выделение: `,o.rowSpan,` × `,o.columnSpan,`. Шаг `,e.historyPosition,` из `,e.historyLength-1,`.`]}),u?(0,X.jsx)(`p`,{children:`Заголовок и основную часть нельзя объединить в одну ячейку.`}):null]})}var X;function De(){return(De=e((()=>{N(),s(),n(),U(),X=i(),Ee.__docgenInfo={description:`Явные названия действий вместо скрытых режимов merge/split из legacy.`,methods:[],displayName:`TableEditorToolbar`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
30
+ readonly document: TableDocument<T>;
31
+ readonly selection: TableDocumentRange;
32
+ readonly focus: TableDocumentPosition;
33
+ readonly canUndo: boolean;
34
+ readonly canRedo: boolean;
35
+ readonly historyPosition: number;
36
+ readonly historyLength: number;
37
+ readonly error: string | null;
38
+ readonly select: (position: TableDocumentPosition, extend?: boolean) => void;
39
+ readonly change: (document: TableDocument<T>) => void;
40
+ readonly execute: (command: (document: TableDocument<T>) => TableDocument<T>) => void;
41
+ readonly undo: () => void;
42
+ readonly redo: () => void;
43
+ }`,signature:{properties:[{key:`document`,value:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`,required:!0}},{key:`selection`,value:{name:`TableDocumentRange`,required:!0}},{key:`focus`,value:{name:`TableDocumentPosition`,required:!0}},{key:`canUndo`,value:{name:`boolean`,required:!0}},{key:`canRedo`,value:{name:`boolean`,required:!0}},{key:`historyPosition`,value:{name:`number`,required:!0}},{key:`historyLength`,value:{name:`number`,required:!0}},{key:`error`,value:{name:`union`,raw:`string | null`,elements:[{name:`string`},{name:`null`}],required:!0}},{key:`select`,value:{name:`signature`,type:`function`,raw:`(position: TableDocumentPosition, extend?: boolean) => void`,signature:{arguments:[{type:{name:`TableDocumentPosition`},name:`position`},{type:{name:`boolean`},name:`extend`}],return:{name:`void`}},required:!0}},{key:`change`,value:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => void`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`void`}},required:!0}},{key:`execute`,value:{name:`signature`,type:`function`,raw:`(command: (document: TableDocument<T>) => TableDocument<T>) => void`,signature:{arguments:[{type:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => TableDocument<T>`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`}}},name:`command`}],return:{name:`void`}},required:!0}},{key:`undo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`redo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},extendSelection:{required:!0,tsType:{name:`boolean`},description:``},onExtendSelectionChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}function Oe({editor:e,renderCell:t,getCellText:n,renderValueEditor:i,createEmptyValue:a,disabled:o=!1}){let[s,c]=(0,ke.useState)(!1),{document:l,focus:u}=e,f=l.rows[u.row].cells[u.column];return(0,Z.jsxs)(`section`,{className:H.editor,"aria-label":`Конструктор таблицы`,children:[(0,Z.jsx)(p,{label:`Название таблицы`,value:l.caption,disabled:o,onChange:t=>e.change({...l,caption:t??``})}),(0,Z.jsx)(Ee,{editor:e,disabled:o,extendSelection:s,onExtendSelectionChange:c}),e.error?(0,Z.jsx)(`p`,{role:`alert`,children:e.error}):null,(0,Z.jsx)(K,{editor:e,disabled:o,renderCell:t,getCellText:n,extendSelection:s}),(0,Z.jsxs)(`div`,{className:H.inspector,children:[(0,Z.jsxs)(`strong`,{children:[`Ячейка: строка `,u.row+1,`, столбец `,u.column+1]}),i({cell:f,disabled:o,onChange:t=>e.change(_e(l,u,t))}),e.selection.rowSpan*e.selection.columnSpan>1?(0,Z.jsx)(`p`,{children:`При объединении показывается верхняя левая ячейка. Остальное содержимое сохранится и снова появится после разъединения.`}):null]}),(0,Z.jsx)(Ce,{editor:e,disabled:o,createEmptyValue:a}),(0,Z.jsxs)(`div`,{className:H.toolbar,children:[(0,Z.jsx)(r,{label:`Скрыть заголовки при публикации`,value:l.hideHeaders,disabled:o,onChange:t=>e.change({...l,hideHeaders:t})}),(0,Z.jsx)(r,{label:`Показывать номера строк`,value:l.showRowNumbers,disabled:o,onChange:t=>e.change({...l,showRowNumbers:t})}),(0,Z.jsx)(d,{label:`Ширина выбранного столбца, px`,value:l.columns[u.column].width??void 0,min:40,max:1600,disabled:o,onChange:t=>{t!==void 0&&(t<40||t>1600)||e.change({...l,columns:l.columns.map((e,n)=>n===u.column?{...e,width:t??null}:e)})}})]})]})}var ke,Z;function Ae(){return(Ae=e((()=>{ke=t(),N(),n(),f(),U(),Se(),Te(),De(),Z=i(),Oe.__docgenInfo={description:`Композиция редактора, не владеющая transport, server state или форматом содержимого ячеек.`,methods:[],displayName:`TableEditor`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
44
+ readonly document: TableDocument<T>;
45
+ readonly selection: TableDocumentRange;
46
+ readonly focus: TableDocumentPosition;
47
+ readonly canUndo: boolean;
48
+ readonly canRedo: boolean;
49
+ readonly historyPosition: number;
50
+ readonly historyLength: number;
51
+ readonly error: string | null;
52
+ readonly select: (position: TableDocumentPosition, extend?: boolean) => void;
53
+ readonly change: (document: TableDocument<T>) => void;
54
+ readonly execute: (command: (document: TableDocument<T>) => TableDocument<T>) => void;
55
+ readonly undo: () => void;
56
+ readonly redo: () => void;
57
+ }`,signature:{properties:[{key:`document`,value:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`,required:!0}},{key:`selection`,value:{name:`TableDocumentRange`,required:!0}},{key:`focus`,value:{name:`TableDocumentPosition`,required:!0}},{key:`canUndo`,value:{name:`boolean`,required:!0}},{key:`canRedo`,value:{name:`boolean`,required:!0}},{key:`historyPosition`,value:{name:`number`,required:!0}},{key:`historyLength`,value:{name:`number`,required:!0}},{key:`error`,value:{name:`union`,raw:`string | null`,elements:[{name:`string`},{name:`null`}],required:!0}},{key:`select`,value:{name:`signature`,type:`function`,raw:`(position: TableDocumentPosition, extend?: boolean) => void`,signature:{arguments:[{type:{name:`TableDocumentPosition`},name:`position`},{type:{name:`boolean`},name:`extend`}],return:{name:`void`}},required:!0}},{key:`change`,value:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => void`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`void`}},required:!0}},{key:`execute`,value:{name:`signature`,type:`function`,raw:`(command: (document: TableDocument<T>) => TableDocument<T>) => void`,signature:{arguments:[{type:{name:`signature`,type:`function`,raw:`(document: TableDocument<T>) => TableDocument<T>`,signature:{arguments:[{type:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`},name:`document`}],return:{name:`TableDocument`,elements:[{name:`T`}],raw:`TableDocument<T>`}}},name:`command`}],return:{name:`void`}},required:!0}},{key:`undo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`redo`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},renderCell:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(cell: TableDocumentCell<T>) => ReactNode`,signature:{arguments:[{type:{name:`TableDocumentCell`,elements:[{name:`T`}],raw:`TableDocumentCell<T>`},name:`cell`}],return:{name:`ReactNode`}}},description:``},getCellText:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(cell: TableDocumentCell<T>) => string`,signature:{arguments:[{type:{name:`TableDocumentCell`,elements:[{name:`T`}],raw:`TableDocumentCell<T>`},name:`cell`}],return:{name:`string`}}},description:`Доступное текстовое представление preview, в котором интерактивные ссылки отключены.`},renderValueEditor:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(props: TableEditorValueProps<T>) => ReactNode`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
58
+ readonly cell: TableDocumentCell<T>;
59
+ readonly disabled: boolean;
60
+ readonly onChange: (value: T) => void;
61
+ }`,signature:{properties:[{key:`cell`,value:{name:`TableDocumentCell`,elements:[{name:`T`}],raw:`TableDocumentCell<T>`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}},{key:`onChange`,value:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}},required:!0}}]}},name:`props`}],return:{name:`ReactNode`}}},description:``},createEmptyValue:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => T`,signature:{arguments:[],return:{name:`T`}}},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}}}})))()}function je(e){let[t,n]=(0,Me.useState)(()=>(D(e),{documents:[e],index:0,anchor:{row:0,column:0},focus:{row:0,column:0},error:null})),r=t.documents[t.index],i=(e,t=!1)=>{let i=k(r,e),a={row:i.row,column:i.column};n(e=>({...e,anchor:t?e.anchor:a,focus:a,error:null}))},a=e=>{D(e),n(t=>{if(t.documents[t.index]===e)return t;let n=[...t.documents.slice(0,t.index+1),e].slice(-101),r=k(e,{row:Math.min(t.focus.row,e.rows.length-1),column:Math.min(t.focus.column,e.columns.length-1)}),i={row:r.row,column:r.column};return{documents:n,index:n.length-1,anchor:i,focus:i,error:null}})},o=e=>n(t=>{let n=Math.max(0,Math.min(t.index+e,t.documents.length-1));return{...t,index:n,anchor:{row:0,column:0},focus:{row:0,column:0},error:null}});return{document:r,selection:A(r,t.anchor,t.focus),focus:t.focus,canUndo:t.index>0,canRedo:t.index<t.documents.length-1,historyPosition:t.index,historyLength:t.documents.length,error:t.error,select:i,change:a,undo:()=>o(-1),redo:()=>o(1),execute:e=>{try{a(e(r))}catch(e){n(t=>({...t,error:e instanceof Error?e.message:`Не удалось изменить таблицу.`}))}}}}var Me;function Ne(){return(Ne=e((()=>{Me=t(),N()})))()}var Pe;function Fe(){return(Fe=e((()=>{Pe={version:1,caption:`Учебная таблица`,columns:Array.from({length:4},(e,t)=>({id:`column-${t}`,width:180})),rows:[[`Раздел`,`Показатель`,`План`,`Результат`],[`Первый раздел`,`Участники`,`24`,`26`],[`Второй раздел`,`Занятия`,`12`,`12`],[`Третий раздел`,`Проекты`,`4`,`5`]].map((e,t)=>({id:`row-${t}`,cells:e.map((e,n)=>({id:`cell-${t}-${n}`,value:e}))})),merges:[],headerRowCount:1,hideHeaders:!1,showRowNumbers:!1}})))()}function Ie(){let e=je(Pe);return(0,Q.jsx)(Oe,{editor:e,createEmptyValue:()=>``,getCellText:e=>e.value,renderCell:e=>e.value||`Пустая ячейка`,renderValueEditor:({cell:e,disabled:t,onChange:n})=>(0,Q.jsx)(ae,{label:`Содержимое ячейки`,value:e.value,disabled:t,onChange:n})})}var Q;function Le(){return(Le=e((()=>{ie(),Ae(),Ne(),Fe(),Q=i(),Ie.__docgenInfo={description:`Рабочий пример host-интеграции; production приложение заменяет plain text своим редактором значения.`,methods:[],displayName:`TableEditorDemo`}})))()}var Re,$,ze;function Be(){return(Be=e((()=>{Le(),Re={title:`Editors/TableEditor`,component:Ie,parameters:{layout:`padded`}},$={},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{}`,...$.parameters?.docs?.source}}},ze=[`Interactive`]})))()}Be();export{$ as Interactive,ze as __namedExportsOrder,Re as default};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-D0R9pFj7.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d}from"./blocks-Bu5I-6jJ.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./Tabs.stories-DGys1vSD.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:h,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-0M2vpakb.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d}from"./blocks-C4R1QC9R.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./Tabs.stories-cQ4RTo0w.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:h,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,w.jsx)(u,{children:`Tabs`}),`
3
3
  `,(0,w.jsx)(o,{children:`Набор tabs-компонентов с разделением простого scroll-сценария и составного panel-layout сценария`}),`
4
4
  `,(0,w.jsxs)(t.p,{children:[`После рефакторинга `,(0,w.jsx)(t.code,{children:`tabs`}),` разделены на два независимых сценария:`]}),`