@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 +0,0 @@
1
- {"version":3,"file":"input-files-CDGpJaUm.js","names":[],"sources":["../../src/input-files/InputFiles.module.scss","../../src/input-files/InputFilesList.tsx","../../src/input-files/InputFiles.tsx"],"sourcesContent":["/* Контрол, имитирующий внешний вид InputText */\n.control {\n\theight: var(--control-height);\n\twidth: 100%;\n\tpadding: 0 var(--space-sm);\n\tfont-size: var(--font-size-md);\n\tcursor: pointer;\n\n\tdisplay: flex;\n\talign-items: center;\n}\n\n/* Скрытый нативный input[type=\"file\"] */\n.hiddenInput {\n\tposition: absolute;\n\twidth: 0;\n\theight: 0;\n\topacity: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n}\n\n/* Список выбранных файлов */\n.fileList {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--space-xs);\n\tmargin-top: var(--space-xs);\n}\n\n/* Элемент списка — строка с именем файла и кнопкой удаления */\n.fileItem {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tpadding: var(--space-xs) var(--space-sm);\n\tbackground-color: var(--surface-2);\n\tborder-radius: var(--radius-sm);\n\t// font-size: var(--font-size-sm);\n}\n\n/* Имя файла — обрезка с троеточием */\n.fileItemName {\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n/* Кнопка удаления файла из списка */\n.removeButton {\n\tflex-shrink: 0;\n\twidth: 1.25em;\n\theight: 1.25em;\n\tcolor: var(--content-2);\n\n\t&:hover {\n\t\tcolor: var(--content-accent);\n\t}\n}\n","import { useCallback } from \"react\";\n\nimport { ReadFileResult } from \"@ryuzaki13/react-foundation-lib/file\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { XIcon } from \"lucide-react\";\n\nimport styles from \"./InputFiles.module.scss\";\n\ninterface InputFilesListProps<TFile extends ReadFileResult> {\n\tfiles: TFile[];\n\tonChange: (files: TFile[]) => void;\n}\n\nexport function InputFilesList<TFile extends ReadFileResult>({ files, onChange }: InputFilesListProps<TFile>) {\n\tconst handleRemove = useCallback(\n\t\t(index: number) => {\n\t\t\tonChange(files.filter((_, i) => i !== index));\n\t\t},\n\t\t[files, onChange]\n\t);\n\n\tif (!files || !files.length) return null;\n\n\treturn (\n\t\t<ul className={styles.fileList}>\n\t\t\t{files.map((item, index) => (\n\t\t\t\t<li key={`${item.meta.name}-${item.meta.lastModified}`} className={styles.fileItem}>\n\t\t\t\t\t<span className={styles.fileItemName}>{item.meta.name}</span>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={cn(styles.removeButton, \"flexCenter\")}\n\t\t\t\t\t\tonClick={() => handleRemove(index)}\n\t\t\t\t\t\taria-label={`Удалить ${item.meta.name}`}>\n\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t</button>\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t);\n}\n","import { useCallback, useRef } from \"react\";\n\nimport { assertValidAccept, assertValidAllowedMime, readFile, ReadFileError, ReadFileResult } from \"@ryuzaki13/react-foundation-lib/file\";\nimport { cn, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputControl, InputUI, useInputFieldIds } from \"../input\";\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./InputFiles.module.scss\";\nimport { InputFilesList } from \"./InputFilesList\";\n\ninterface InputFilesCommonProps extends Omit<UiBaseProps<undefined>, \"value\" | \"onChange\"> {\n\t/** Callback ошибки чтения файла */\n\tonReadError?: (error: ReadFileError) => void;\n\n\t/** HTML-атрибут accept для нативного input[type=\"file\"] (например `[\".pdf\", \".docx\"]`) */\n\taccept?: readonly string[];\n\t/** Список допустимых MIME-типов — передаётся в readFile */\n\tallowedMime?: readonly string[];\n\t/** Максимальный размер одного файла в байтах */\n\tmaxBytes?: number;\n\t/** Максимальное количество файлов. При достижении лимита input блокируется */\n\tmaxFiles?: number;\n\n\t/** Текст ошибки под полем */\n\terror?: string;\n\t/** Callback сброса ошибки */\n\tonClearError?: () => void;\n\t/** CSS-класс обёртки */\n\tclassName?: string;\n}\n\ntype InputFilesDataUrlResult = Extract<ReadFileResult, { mode: \"data-url\" }>;\ntype InputFilesArrayBufferResult = Extract<ReadFileResult, { mode: \"array-buffer\" }>;\n\n/**\n * Пропсы компонента InputFiles.\n *\n * Компонент предназначен для выбора нескольких файлов.\n * Выбранные файлы отображаются списком под полем ввода,\n * каждый с кнопкой удаления (крестик).\n *\n * В onChange передаётся обновлённый массив результатов readFile.\n */\nexport type InputFilesProps =\n\t| (InputFilesCommonProps & {\n\t\t\tvalue: InputFilesDataUrlResult[];\n\t\t\tonChange: (value: InputFilesDataUrlResult[]) => void;\n\t\t\t/** Режим чтения: \"data-url\" по умолчанию */\n\t\t\treadMode?: \"data-url\";\n\t })\n\t| (InputFilesCommonProps & {\n\t\t\tvalue: InputFilesArrayBufferResult[];\n\t\t\tonChange: (value: InputFilesArrayBufferResult[]) => void;\n\t\t\t/** Режим чтения файла как ArrayBuffer */\n\t\t\treadMode: \"array-buffer\";\n\t });\n\n/**\n * InputFiles — компонент выбора нескольких файлов.\n *\n * Поле стилизовано как InputText. При клике открывается нативный\n * диалог с multiple. Каждый выбранный файл читается через readFile\n * и добавляется в массив value.\n *\n * Список выбранных файлов отображается под полем.\n * Каждый файл можно удалить кнопкой «крестик».\n *\n * InputFiles типизирует массив по `readMode`.\n * Если `readMode` не задан или равен `\"data-url\"`, в `value` и `onChange`\n * используется массив объектов с `dataUrl`. Если `readMode` равен\n * `\"array-buffer\"`, используется массив объектов с `buffer`.\n */\nexport function InputFiles(props: InputFilesProps) {\n\tconst {\n\t\tvalue,\n\t\tonReadError,\n\t\taccept,\n\t\tallowedMime,\n\t\tmaxBytes,\n\t\tmaxFiles,\n\t\tlabel,\n\t\tdescription,\n\t\tplaceholder = \"Выберите файлы\",\n\t\tdisabled,\n\t\tsize,\n\t\terror,\n\t\tonClearError,\n\t\tclassName\n\t} = props;\n\n\tassertValidAllowedMime(allowedMime);\n\tassertValidAccept(accept);\n\n\t/** Реф на скрытый нативный input[type=\"file\"] */\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\t/** Достигнут ли лимит файлов */\n\tconst isLimitReached = typeof maxFiles === \"number\" && value.length >= maxFiles;\n\n\t/**\n\t * Обработчик выбора файлов из нативного диалога.\n\t * Каждый файл читается через readFile.\n\t * Успешно прочитанные файлы добавляются к текущему массиву value.\n\t */\n\tconst handleChange = useCallback(\n\t\tasync (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst files = e.target.files;\n\t\t\tif (!files || files.length === 0) return;\n\n\t\t\tconst selectedFiles = Array.from(files);\n\n\t\t\t// Сбрасываем значение input чтобы можно было выбрать те же файлы повторно\n\t\t\te.target.value = \"\";\n\n\t\t\t// Сбрасываем ошибку при выборе новых файлов\n\t\t\tif (error && onClearError) onClearError();\n\n\t\t\t// Определяем сколько файлов можно ещё добавить\n\t\t\tconst remaining = typeof maxFiles === \"number\" ? maxFiles - value.length : selectedFiles.length;\n\t\t\tconst filesToProcess = selectedFiles.slice(0, remaining);\n\n\t\t\tif (props.readMode === \"array-buffer\") {\n\t\t\t\t// Читаем файлы как ArrayBuffer и сохраняем точный тип массива для потребителя.\n\t\t\t\tconst results: InputFilesArrayBufferResult[] = [];\n\n\t\t\t\tfor (const file of filesToProcess) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await readFile(file, { allowedMime, maxBytes, mode: \"array-buffer\" });\n\t\t\t\t\t\tresults.push(result);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (err instanceof ReadFileError && onReadError) {\n\t\t\t\t\t\t\tonReadError(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (results.length > 0) {\n\t\t\t\t\tprops.onChange([...props.value, ...results]);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Читаем файлы как Data URL и сохраняем точный тип массива для потребителя.\n\t\t\tconst results: InputFilesDataUrlResult[] = [];\n\t\t\tfor (const file of filesToProcess) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await readFile(file, { allowedMime, maxBytes });\n\t\t\t\t\tresults.push(result);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err instanceof ReadFileError && onReadError) {\n\t\t\t\t\t\tonReadError(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (results.length > 0) {\n\t\t\t\tprops.onChange([...props.value, ...results]);\n\t\t\t}\n\t\t},\n\t\t[props, maxFiles, value.length, allowedMime, maxBytes, onReadError, error, onClearError]\n\t);\n\n\t/** Клик по видимому контролу открывает нативный диалог */\n\tconst handleClick = useCallback(() => {\n\t\tinputRef.current?.click();\n\t}, []);\n\n\tconst filesList =\n\t\tprops.readMode === \"array-buffer\" ? (\n\t\t\t<InputFilesList files={props.value} onChange={props.onChange} />\n\t\t) : (\n\t\t\t<InputFilesList files={props.value} onChange={props.onChange} />\n\t\t);\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<input\n\t\t\t\tref={inputRef}\n\t\t\t\tid={controlId}\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept={(accept ?? allowedMime)?.join(\",\")}\n\t\t\t\tmultiple\n\t\t\t\tdisabled={disabled || isLimitReached}\n\t\t\t\tclassName={styles.hiddenInput}\n\t\t\t\tonChange={handleChange}\n\t\t\t\ttabIndex={-1}\n\t\t\t/>\n\n\t\t\t<InputControl>\n\t\t\t\t{() => (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\ttabIndex={disabled || isLimitReached ? -1 : 0}\n\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\tonKeyDown={(event) => handleKeyboardActivation(event, handleClick, { disabled: disabled || isLimitReached })}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.control, !!error && \"invalid\")}\n\t\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\t\taria-disabled={disabled || isLimitReached}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}>\n\t\t\t\t\t\t<span className={uiStyles.uiPlaceholder}>{isLimitReached ? `Максимум ${maxFiles} файлов` : placeholder}</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\n\t\t\t{/* Список выбранных файлов */}\n\t\t\t{filesList}\n\t\t</InputUI>\n\t);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"picker-DZ4-1BvK.js","names":[],"sources":["../../src/picker/PickerField.tsx","../../src/picker/PickerClearButton.tsx","../../src/picker/Picker.module.scss","../../src/picker/PickerSelectionToolbar.tsx","../../src/picker/PickerOptions.tsx","../../src/picker/model/extractPickerTextContent.ts","../../src/picker/PickerPlaceholder.ts","../../src/picker/PickerPopup.tsx","../../src/picker/PickerSelectedToken.tsx","../../src/picker/PickerStatus.tsx","../../src/picker/PickerTriggerActions.tsx","../../src/picker/PickerTriggerInput.tsx","../../src/picker/PickerTrigger.tsx","../../src/picker/model/createPickerTriggerPolicy.ts","../../src/picker/model/usePickerDefaultFilter.ts","../../src/picker/model/usePickerFloatingListbox.ts","../../src/picker/model/usePickerQuery.ts","../../src/picker/model/usePickerSelectionLifecycle.ts","../../src/picker/model/usePickerTriggerController.ts"],"sourcesContent":["import { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\n\nimport { InputUI } from \"../input\";\nimport { useInputFieldIds } from \"../input/lib/useInputFieldIds\";\n\nimport { PickerFieldProps } from \"./types\";\n\nexport function PickerField<TValue extends InputType>({\n\tid,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tsize,\n\tclassName,\n\terror,\n\tchildren\n}: PickerFieldProps<TValue>) {\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tsize={size}\n\t\t\tclassName={className}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t{children({ controlId, labelId, descriptionId, errorId, describedBy })}\n\t\t</InputUI>\n\t);\n}\n","import { type MouseEvent } from \"react\";\n\nimport { XIcon } from \"lucide-react\";\n\nimport uiStyles from \"../ui.module.scss\";\n\ntype PickerClearButtonProps = {\n\tdisabled?: boolean;\n\tariaLabel?: string;\n\tonClear: () => void;\n};\n\n/** Единое действие очистки выбранного значения во всех clearable picker-компонентах. */\nexport function PickerClearButton({ disabled, ariaLabel = \"Очистить выбор\", onClear }: PickerClearButtonProps) {\n\tconst stopTriggerInteraction = (event: MouseEvent<HTMLButtonElement>) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t};\n\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled={disabled}\n\t\t\tclassName={uiStyles.uiClearButton}\n\t\t\tdata-ui=\"picker-clear-button\"\n\t\t\tdata-action=\"clear-picker\"\n\t\t\tonMouseDown={stopTriggerInteraction}\n\t\t\tonClick={(event) => {\n\t\t\t\tstopTriggerInteraction(event);\n\t\t\t\tonClear();\n\t\t\t}}\n\t\t\taria-label={ariaLabel}>\n\t\t\t<XIcon />\n\t\t</button>\n\t);\n}\n","@use \"@/styles/mixins\" as *;\n\n.popupPositioner,\n.options {\n\toverflow: hidden;\n\tdisplay: grid;\n\tgrid-template-rows: minmax(0, 1fr);\n\tborder-radius: var(--radius-sm);\n}\n\n.popupPositioner {\n\t--anchor-gap: var(--space-xs);\n\t--anchor-padding: var(--space-xs);\n\t--anchor-offset: 0;\n\n\tmin-width: 0;\n\tz-index: var(--z-dropdown);\n\tbox-shadow: var(--shadow-md);\n}\n\n.options {\n\t--input-width: min(100vw, var(--base-width, 15em));\n\n\twidth: 100%;\n\tmin-width: var(--input-width);\n\tmin-height: 0;\n\tmax-height: 75vh;\n\n\tpadding: var(--space-sm);\n\tbackground-color: var(--surface-0);\n\tborder: var(--border);\n\n\t&:empty {\n\t\tvisibility: hidden;\n\t}\n\n\t&[data-has-toolbar=\"true\"] {\n\t\tgrid-template-rows: auto minmax(0, 1fr);\n\t}\n}\n\n.optionsToolbar {\n\tdisplay: grid;\n\tgap: var(--space-xs);\n\tpadding: var(--space-xs);\n}\n\n.optionsBody {\n\tmin-height: 0;\n}\n\n.status {\n\tpadding: var(--space-xs) var(--space-sm);\n\tcolor: var(--content-2);\n}\n\n.statusError {\n\tcolor: var(--status-error-text);\n}\n\n.triggerContainer {\n\tposition: relative;\n\n\t&[data-has-overlay=\"true\"] input {\n\t\t--ui-color: transparent;\n\t\t--ui-color-hover: transparent;\n\t\t--ui-color-active: transparent;\n\n\t\tcolor: transparent;\n\t\tcaret-color: transparent;\n\t\t-webkit-text-fill-color: transparent;\n\t}\n}\n\n.triggerHasClear {\n\t--trigger-count: 2;\n\t// Резервирует в input место для кнопок очистки и открытия списка.\n\t--input-end-adornment-width: calc(var(--control-height) * 2);\n}\n\n.selectedToken {\n\tposition: absolute;\n\tinset: 0 calc(var(--control-height) * var(--trigger-count, 1) + var(--space-sm)) 0 var(--space-sm);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tmin-width: 0;\n\tpointer-events: none;\n}\n\n.selectedTokenText {\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n\n@include mobile {\n\t.options {\n\t\t--input-width: calc(100dvw - var(--space-xl));\n\t}\n}\n\n.selectionActionButton {\n\tpadding-block: var(--space-xs);\n\tborder-radius: var(--radius-sm);\n\n\t&:hover {\n\t\tbackground-color: var(--surface-2);\n\t}\n}\n","import { type Ref } from \"react\";\n\nimport { Grid } from \"../grid\";\n\nimport styles from \"./Picker.module.scss\";\n\ntype PickerSelectionToolbarProps = {\n\tonSelectAll: () => void;\n\tonDeselectAll: () => void;\n\tselectAllButtonRef?: Ref<HTMLButtonElement>;\n};\n\n/**\n * Общая панель массовых действий для picker-компонентов с множественным выбором.\n * Компонент не знает формат значения и делегирует изменение владельцу selection-модели.\n */\nexport function PickerSelectionToolbar({ onSelectAll, onDeselectAll, selectAllButtonRef }: PickerSelectionToolbarProps) {\n\treturn (\n\t\t<Grid.Container gap=\"xs\" templateColumns=\"1fr 1fr\">\n\t\t\t<button\n\t\t\t\tref={selectAllButtonRef}\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={styles.selectionActionButton}\n\t\t\t\tonClick={onSelectAll}\n\t\t\t\tdata-ui=\"picker-select-all\"\n\t\t\t\tdata-action=\"select-all\">\n\t\t\t\tВыбрать все\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={styles.selectionActionButton}\n\t\t\t\tonClick={onDeselectAll}\n\t\t\t\tdata-ui=\"picker-deselect-all\"\n\t\t\t\tdata-action=\"deselect-all\">\n\t\t\t\tСнять выбор\n\t\t\t</button>\n\t\t</Grid.Container>\n\t);\n}\n","import { type HTMLAttributes, type ReactNode, type Ref } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { Separator } from \"../separator\";\n\nimport styles from \"./Picker.module.scss\";\nimport { PickerSelectionToolbar } from \"./PickerSelectionToolbar\";\n\nexport type PickerSelectionActions = {\n\tonSelectAll: () => void;\n\tonDeselectAll: () => void;\n\tselectAllButtonRef?: Ref<HTMLButtonElement>;\n};\n\nexport interface PickerOptionsProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n\trootRef?: Ref<HTMLDivElement>;\n\tchildren: ReactNode;\n\ttoolbar?: ReactNode | false;\n\tselectionActions?: PickerSelectionActions;\n\tlayoutClassName?: string;\n\tbodyClassName?: string;\n\tscrollable?: boolean;\n}\n\n/**\n * Единая оболочка списка опций для picker, listbox и menu. Если переданы\n * selectionActions, но не передан toolbar, компонент показывает стандартные\n * действия выбора и снятия выбора.\n */\nexport function PickerOptions({\n\trootRef,\n\tchildren,\n\ttoolbar,\n\tselectionActions,\n\tlayoutClassName,\n\tbodyClassName,\n\tscrollable = true,\n\tclassName,\n\t...props\n}: PickerOptionsProps) {\n\tconst resolvedToolbar = toolbar === undefined && selectionActions ? <PickerSelectionToolbar {...selectionActions} /> : toolbar || null;\n\n\treturn (\n\t\t<div\n\t\t\t{...props}\n\t\t\tref={rootRef}\n\t\t\tclassName={cn(styles.options, layoutClassName, className)}\n\t\t\tdata-ui=\"picker-options\"\n\t\t\tdata-has-toolbar={resolvedToolbar ? \"true\" : undefined}>\n\t\t\t{resolvedToolbar ? (\n\t\t\t\t<div className={styles.optionsToolbar}>\n\t\t\t\t\t{resolvedToolbar}\n\t\t\t\t\t<Separator />\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<div className={cn(styles.optionsBody, scrollable ? \"scrollable overscroll\" : \"overflowHidden\", bodyClassName)}>{children}</div>\n\t\t</div>\n\t);\n}\n","import { isValidElement, type ReactNode } from \"react\";\n\nexport function extractPickerTextContent(node: ReactNode): string | undefined {\n\tif (typeof node === \"string\" || typeof node === \"number\") {\n\t\treturn String(node);\n\t}\n\n\tif (Array.isArray(node)) {\n\t\tconst values = node\n\t\t\t.map(extractPickerTextContent)\n\t\t\t.filter((value): value is string => Boolean(value))\n\t\t\t.map((value) => value.trim())\n\t\t\t.filter(Boolean);\n\t\treturn values.length ? values.join(\" \") : undefined;\n\t}\n\n\tif (isValidElement<{ children?: ReactNode; searchText?: unknown }>(node)) {\n\t\tif (typeof node.props.searchText === \"string\") {\n\t\t\treturn node.props.searchText;\n\t\t}\n\n\t\treturn extractPickerTextContent(node.props.children);\n\t}\n\n\treturn undefined;\n}\n","import { type ReactNode } from \"react\";\n\nimport { extractPickerTextContent } from \"./model/extractPickerTextContent\";\n\ntype PickerPlaceholderParams = {\n\tplaceholder?: string;\n\tlabel?: ReactNode;\n\toptionCount: number;\n\tfallback?: string;\n};\n\n/**\n * Формирует единый текст placeholder для picker-компонентов и всегда показывает\n * актуальное количество доступных вариантов.\n */\nexport function getPickerPlaceholder({ placeholder, label, optionCount, fallback = \"Выберите значение\" }: PickerPlaceholderParams) {\n\tconst labelText = extractPickerTextContent(label);\n\tconst text = placeholder ?? labelText ?? fallback;\n\n\treturn `${text} <${optionCount}>`;\n}\n","import { type CSSProperties, type KeyboardEvent, type MouseEvent, type ReactNode } from \"react\";\n\nimport { FloatingContext, FloatingFocusManager, FloatingPortal } from \"@floating-ui/react\";\nimport { AnimatePresence, motion } from \"motion/react\";\n\nimport styles from \"./Picker.module.scss\";\nimport { PickerOptions, type PickerSelectionActions } from \"./PickerOptions\";\n\ninterface PickerPopupProps {\n\topen: boolean;\n\tcontext: FloatingContext;\n\tfloatingStyles: CSSProperties;\n\tlistId: string;\n\tlabelId?: string;\n\tpopupAriaLabel?: string;\n\tdescriptionId?: string;\n\tactiveOptionId?: string;\n\tariaMultiselectable?: boolean;\n\tpopupRole?: \"listbox\" | \"dialog\";\n\tsetFloating: (node: HTMLElement | null) => void;\n\tgetFloatingProps: (userProps?: Record<string, unknown>) => Record<string, unknown>;\n\tonKeyDown: (event: KeyboardEvent<HTMLElement>) => void;\n\tinitialFocus?: number;\n\treturnFocus?: boolean;\n\ttabIndex?: number;\n\tclassName?: string;\n\tmaxWidth?: CSSProperties[\"maxWidth\"];\n\tlayoutClassName?: string;\n\tbodyClassName?: string;\n\ttoolbar?: ReactNode | false;\n\tselectionActions?: PickerSelectionActions;\n\tchildren: ReactNode;\n}\n\nfunction stopNestedFloatingMouseDown(event: MouseEvent<HTMLElement>): void {\n\tevent.stopPropagation();\n}\n\nexport function PickerPopup({\n\topen,\n\tcontext,\n\tfloatingStyles,\n\tlistId,\n\tlabelId,\n\tpopupAriaLabel,\n\tdescriptionId,\n\tactiveOptionId,\n\tariaMultiselectable,\n\tpopupRole = \"listbox\",\n\tsetFloating,\n\tgetFloatingProps,\n\tonKeyDown,\n\tinitialFocus = -1,\n\treturnFocus = false,\n\ttabIndex = 0,\n\tclassName,\n\tmaxWidth,\n\tlayoutClassName,\n\tbodyClassName,\n\ttoolbar,\n\tselectionActions,\n\tchildren\n}: PickerPopupProps) {\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t{open && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<FloatingFocusManager context={context} modal={false} initialFocus={initialFocus} returnFocus={returnFocus}>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tref={setFloating}\n\t\t\t\t\t\t\tstyle={{ ...floatingStyles, maxWidth }}\n\t\t\t\t\t\t\tinitial={{ opacity: 0, scale: 0.95 }}\n\t\t\t\t\t\t\tanimate={{ opacity: 1, scale: 1 }}\n\t\t\t\t\t\t\texit={{ opacity: 0, scale: 0.95 }}\n\t\t\t\t\t\t\t{...getFloatingProps({\n\t\t\t\t\t\t\t\tid: listId,\n\t\t\t\t\t\t\t\trole: popupRole,\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\t\"aria-labelledby\": labelId,\n\t\t\t\t\t\t\t\t\"aria-label\": labelId ? undefined : popupAriaLabel,\n\t\t\t\t\t\t\t\t\"aria-describedby\": descriptionId,\n\t\t\t\t\t\t\t\t\"aria-activedescendant\": activeOptionId,\n\t\t\t\t\t\t\t\t\"aria-multiselectable\": ariaMultiselectable || undefined,\n\t\t\t\t\t\t\t\tonMouseDown: stopNestedFloatingMouseDown,\n\t\t\t\t\t\t\t\tonKeyDown,\n\t\t\t\t\t\t\t\tclassName: styles.popupPositioner\n\t\t\t\t\t\t\t})}>\n\t\t\t\t\t\t\t<PickerOptions\n\t\t\t\t\t\t\t\tclassName={className}\n\t\t\t\t\t\t\t\tlayoutClassName={layoutClassName}\n\t\t\t\t\t\t\t\tbodyClassName={bodyClassName}\n\t\t\t\t\t\t\t\ttoolbar={toolbar}\n\t\t\t\t\t\t\t\tselectionActions={selectionActions}\n\t\t\t\t\t\t\t\tscrollable={false}>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</PickerOptions>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t</FloatingFocusManager>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</AnimatePresence>\n\t);\n}\n","import { type HTMLAttributes, type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./Picker.module.scss\";\n\nexport interface PickerSelectedTokenProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n\tchildren: ReactNode;\n}\n\n/** Единое визуальное представление выбранного значения внутри picker-trigger. */\nexport function PickerSelectedToken({ children, className, ...props }: PickerSelectedTokenProps) {\n\treturn (\n\t\t<span {...props} className={cn(styles.selectedToken, className)} data-ui=\"picker-selected-token\">\n\t\t\t<span className={styles.selectedTokenText}>{children}</span>\n\t\t</span>\n\t);\n}\n","import { ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Picker.module.scss\";\n\ninterface PickerStatusProps {\n\temptyState?: ReactNode;\n\t// loadingState?: ReactNode;\n\terrorState?: ReactNode;\n}\n\nexport function PickerStatus({ emptyState, errorState }: PickerStatusProps) {\n\tconst content = errorState ?? emptyState;\n\n\tif (content === undefined || content === null) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={cn(uiStyles.uiPopupOption, styles.status, errorState !== undefined && styles.statusError)} aria-disabled={true}>\n\t\t\t{content}\n\t\t</div>\n\t);\n}\n","import { MouseEvent, ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport uiStyles from \"../ui.module.scss\";\n\ninterface PickerTriggerActionsProps {\n\topen: boolean;\n\tdisabled?: boolean;\n\tchildren?: ReactNode;\n\tonToggleMouseDown?: (event: MouseEvent<HTMLButtonElement>) => void;\n\tonToggleClick: () => void;\n\topenAriaLabel?: string;\n\tcloseAriaLabel?: string;\n}\n\nexport function PickerTriggerActions({\n\topen,\n\tdisabled,\n\tchildren,\n\tonToggleMouseDown,\n\tonToggleClick,\n\topenAriaLabel = \"Открыть список\",\n\tcloseAriaLabel = \"Закрыть список\"\n}: PickerTriggerActionsProps) {\n\treturn (\n\t\t<div className={uiStyles.uiToggleButtonContainer} data-disabled={disabled || undefined}>\n\t\t\t{children}\n\n\t\t\t<div className={uiStyles.uiButtonSeparator} />\n\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tdisabled={disabled}\n\t\t\t\taria-label={open ? closeAriaLabel : openAriaLabel}\n\t\t\t\tclassName={uiStyles.uiToggleButton}\n\t\t\t\tonMouseDown={onToggleMouseDown}\n\t\t\t\tonClick={onToggleClick}>\n\t\t\t\t<ChevronDownIcon className={cn(uiStyles.uiToggleIcon, open && uiStyles.uiToggleIconOpen)} />\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","import { ComponentPropsWithoutRef, forwardRef, ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputControl, InputLoadingFrame } from \"../input\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Picker.module.scss\";\n\nexport interface PickerTriggerInputProps extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\"> {\n\trootRef?: (node: HTMLDivElement | null) => void;\n\tendAdornment?: ReactNode;\n\toverlay?: ReactNode;\n\trootClassName?: string;\n\tinputClassName?: string;\n\tisLoading?: boolean;\n}\n\nexport const PickerTriggerInput = forwardRef<HTMLInputElement, PickerTriggerInputProps>(\n\t({ rootRef, endAdornment, overlay, rootClassName, inputClassName, isLoading, ...props }, ref) => {\n\t\tconst hasOverlay = overlay !== undefined && overlay !== null;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={rootRef}\n\t\t\t\tclassName={cn(uiStyles.uiInputContainer, styles.triggerContainer, rootClassName)}\n\t\t\t\tdata-has-overlay={hasOverlay || undefined}>\n\t\t\t\t{isLoading ? (\n\t\t\t\t\t<InputLoadingFrame />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InputControl endAdornment={endAdornment}>\n\t\t\t\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t\t\t\t<input {...props} ref={ref} className={cn(uiStyles.uiInputWithToggle, controlClassName, inputClassName)} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</InputControl>\n\t\t\t\t\t\t{hasOverlay ? overlay : null}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nPickerTriggerInput.displayName = \"PickerTriggerInput\";\n","import { type ReactNode, type Ref } from \"react\";\n\nimport styles from \"./Picker.module.scss\";\nimport { PickerClearButton } from \"./PickerClearButton\";\nimport { getPickerPlaceholder } from \"./PickerPlaceholder\";\nimport { PickerSelectedToken } from \"./PickerSelectedToken\";\nimport { PickerTriggerActions } from \"./PickerTriggerActions\";\nimport { PickerTriggerInput, type PickerTriggerInputProps } from \"./PickerTriggerInput\";\n\nexport interface PickerTriggerProps extends Omit<PickerTriggerInputProps, \"placeholder\" | \"overlay\" | \"endAdornment\"> {\n\tref?: Ref<HTMLInputElement>;\n\topen: boolean;\n\toptionCount: number;\n\tplaceholder?: string;\n\tlabel?: ReactNode;\n\tplaceholderFallback?: string;\n\tselectedValue?: ReactNode;\n\thasSelection?: boolean;\n\tshowSelectedValue?: boolean;\n\tclearable?: boolean;\n\tonClear?: () => void;\n\tclearAriaLabel?: string;\n\tonToggleMouseDown?: PickerTriggerActionsProps[\"onToggleMouseDown\"];\n\tonToggleClick: PickerTriggerActionsProps[\"onToggleClick\"];\n\topenAriaLabel?: string;\n\tcloseAriaLabel?: string;\n}\n\ntype PickerTriggerActionsProps = Parameters<typeof PickerTriggerActions>[0];\n\n/**\n * Общая композиция picker-trigger: input, выбранное значение, очистка и кнопка\n * открытия. Владельцы picker-моделей передают только состояние и обработчики.\n */\nexport function PickerTrigger({\n\tref,\n\topen,\n\toptionCount,\n\tplaceholder,\n\tlabel,\n\tplaceholderFallback,\n\tselectedValue,\n\thasSelection,\n\tshowSelectedValue = selectedValue !== undefined && selectedValue !== null,\n\tclearable = false,\n\tonClear,\n\tclearAriaLabel,\n\tonToggleMouseDown,\n\tonToggleClick,\n\topenAriaLabel,\n\tcloseAriaLabel,\n\tdisabled,\n\tinputClassName,\n\t...inputProps\n}: PickerTriggerProps) {\n\tconst hasSelectedValue = hasSelection ?? (selectedValue !== undefined && selectedValue !== null);\n\tconst canClear = clearable && hasSelectedValue && onClear !== undefined && !disabled;\n\n\treturn (\n\t\t<PickerTriggerInput\n\t\t\t{...inputProps}\n\t\t\tref={ref}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={\n\t\t\t\tshowSelectedValue ? undefined : getPickerPlaceholder({ placeholder, label, optionCount, fallback: placeholderFallback })\n\t\t\t}\n\t\t\tinputClassName={inputClassName}\n\t\t\trootClassName={clearable ? styles.triggerHasClear : undefined}\n\t\t\toverlay={showSelectedValue ? <PickerSelectedToken>{selectedValue}</PickerSelectedToken> : undefined}\n\t\t\tendAdornment={\n\t\t\t\t<PickerTriggerActions\n\t\t\t\t\topen={open}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonToggleMouseDown={onToggleMouseDown}\n\t\t\t\t\tonToggleClick={onToggleClick}\n\t\t\t\t\topenAriaLabel={openAriaLabel}\n\t\t\t\t\tcloseAriaLabel={closeAriaLabel}>\n\t\t\t\t\t{canClear ? <PickerClearButton ariaLabel={clearAriaLabel} onClear={onClear} /> : null}\n\t\t\t\t</PickerTriggerActions>\n\t\t\t}\n\t\t/>\n\t);\n}\n","export type PickerTriggerMode = \"display\" | \"search-single\" | \"search-multi\";\n\ninterface PickerTriggerTextFocusParams {\n\topen: boolean;\n\tcurrentQuery: string;\n\thasDisplayValue: boolean;\n}\n\nexport interface PickerTriggerPolicy {\n\tfocusFloatingOnOpen: boolean;\n\trestoreFocusOnClose: boolean;\n\tresetQueryOnClose: boolean;\n\tshouldOpenOnTriggerClick: (open: boolean) => boolean;\n\tshouldOpenOnInputChange: (open: boolean) => boolean;\n\tshouldFocusReferenceOnToggle: (open: boolean) => boolean;\n\tshouldSelectTriggerTextOnFocus: (params: PickerTriggerTextFocusParams) => boolean;\n}\n\n/**\n * Единая политика поведения trigger-input для picker-компонентов.\n * Нормализует различия между display-режимом, single-search и multi-search.\n */\nexport function createPickerTriggerPolicy(mode: PickerTriggerMode): PickerTriggerPolicy {\n\tswitch (mode) {\n\t\tcase \"search-single\":\n\t\t\treturn {\n\t\t\t\tfocusFloatingOnOpen: false,\n\t\t\t\trestoreFocusOnClose: false,\n\t\t\t\tresetQueryOnClose: true,\n\t\t\t\tshouldOpenOnTriggerClick: () => false,\n\t\t\t\tshouldOpenOnInputChange: (open) => !open,\n\t\t\t\tshouldFocusReferenceOnToggle: (open) => !open,\n\t\t\t\tshouldSelectTriggerTextOnFocus: ({ open, currentQuery, hasDisplayValue }) =>\n\t\t\t\t\t!open && currentQuery.length === 0 && hasDisplayValue\n\t\t\t};\n\t\tcase \"search-multi\":\n\t\t\treturn {\n\t\t\t\tfocusFloatingOnOpen: false,\n\t\t\t\trestoreFocusOnClose: false,\n\t\t\t\tresetQueryOnClose: true,\n\t\t\t\tshouldOpenOnTriggerClick: () => false,\n\t\t\t\tshouldOpenOnInputChange: (open) => !open,\n\t\t\t\tshouldFocusReferenceOnToggle: (open) => !open,\n\t\t\t\tshouldSelectTriggerTextOnFocus: () => false\n\t\t\t};\n\t\tcase \"display\":\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\tfocusFloatingOnOpen: true,\n\t\t\t\trestoreFocusOnClose: true,\n\t\t\t\tresetQueryOnClose: false,\n\t\t\t\tshouldOpenOnTriggerClick: (open) => !open,\n\t\t\t\tshouldOpenOnInputChange: () => false,\n\t\t\t\tshouldFocusReferenceOnToggle: () => false,\n\t\t\t\tshouldSelectTriggerTextOnFocus: () => false\n\t\t\t};\n\t}\n}\n","import { useMemo } from \"react\";\n\nimport { normalizeTextToLower } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\ninterface UsePickerDefaultFilterOptions<T> {\n\toptions: readonly T[];\n\tquery: string;\n\tenabled?: boolean;\n\tgetSearchText: (option: T) => unknown;\n}\n\nfunction normalizeSearchText(value: unknown) {\n\tconst parts = Array.isArray(value) ? value : [value];\n\n\treturn normalizeTextToLower(parts.filter(Boolean).join(\" \"));\n}\n\nexport function usePickerDefaultFilter<T>({ options, query, enabled = true, getSearchText }: UsePickerDefaultFilterOptions<T>) {\n\tconst normalizedQuery = normalizeTextToLower(query);\n\n\treturn useMemo(() => {\n\t\tif (!enabled || !normalizedQuery) {\n\t\t\treturn [...options];\n\t\t}\n\n\t\treturn options.filter((option) => normalizeSearchText(getSearchText(option)).includes(normalizedQuery));\n\t}, [enabled, getSearchText, normalizedQuery, options]);\n}\n","import { Placement } from \"@floating-ui/react\";\nimport {\n\ttype FloatingListboxPlacementStrategy,\n\ttype FloatingListboxSizeResolver,\n\tuseFloatingListbox\n} from \"@ryuzaki13/react-foundation-lib/hooks\";\n\nimport { PickerTriggerMode, createPickerTriggerPolicy } from \"./createPickerTriggerPolicy\";\n\ninterface UsePickerFloatingListboxParams<T> {\n\toptions: readonly T[];\n\tselectedIndex: number;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tgetOptionDisabled?: (option: T) => boolean;\n\tonSelect?: (option: T) => void;\n\tdisabled?: boolean;\n\tplacement?: Placement;\n\tplacementStrategy?: FloatingListboxPlacementStrategy;\n\tcloseOnSelect?: boolean;\n\tfocusFloatingOnOpen?: boolean;\n\tallowOpenWithoutOptions?: boolean;\n\trestoreFocusOnClose?: boolean;\n\ttriggerMode?: PickerTriggerMode;\n\tresolveFloatingSize?: FloatingListboxSizeResolver;\n}\n\n/**\n * Единая точка входа для popup/listbox поведения во всех picker-компонентах.\n */\nexport function usePickerFloatingListbox<T>(params: UsePickerFloatingListboxParams<T>) {\n\tconst triggerPolicy = params.triggerMode ? createPickerTriggerPolicy(params.triggerMode) : undefined;\n\n\treturn useFloatingListbox({\n\t\t...params,\n\t\tfocusFloatingOnOpen: params.focusFloatingOnOpen ?? triggerPolicy?.focusFloatingOnOpen,\n\t\trestoreFocusOnClose: params.restoreFocusOnClose ?? triggerPolicy?.restoreFocusOnClose\n\t});\n}\n","import { useState } from \"react\";\n\nimport { PickerTriggerMode, createPickerTriggerPolicy } from \"./createPickerTriggerPolicy\";\n\ninterface UsePickerQueryOptions {\n\tquery?: string;\n\tdefaultQuery?: string;\n\tonQuery?: (value: string) => void;\n\tresetOnClose?: boolean;\n\ttriggerMode?: PickerTriggerMode;\n}\n\n/**\n * Управляет controlled/uncontrolled query и возвращает policy закрытия владельцу open-state.\n * Сброс выполняется самим владельцем в событии close, поэтому hook не зеркалит lifecycle через effect.\n */\nexport function usePickerQuery({ query, defaultQuery, onQuery, resetOnClose, triggerMode }: UsePickerQueryOptions) {\n\tconst isControlled = query !== undefined;\n\tconst [internalQuery, setInternalQuery] = useState(defaultQuery ?? \"\");\n\tconst currentQuery = isControlled ? (query ?? \"\") : internalQuery;\n\tconst resolvedResetOnClose = resetOnClose ?? (triggerMode ? createPickerTriggerPolicy(triggerMode).resetQueryOnClose : true);\n\n\tconst setQuery = (nextValue: string) => {\n\t\tif (!isControlled) {\n\t\t\tsetInternalQuery(nextValue);\n\t\t}\n\n\t\tonQuery?.(nextValue);\n\t};\n\n\treturn {\n\t\tquery: currentQuery,\n\t\tsetQuery,\n\t\tclearQuery: () => setQuery(\"\"),\n\t\tresetQueryOnClose: resolvedResetOnClose\n\t};\n}\n","import { useEffect, useRef, useState } from \"react\";\n\ninterface UsePickerSelectionLifecycleOptions<TValue> {\n\tvalue: TValue;\n\topen: boolean;\n\tonCommit: (value: TValue) => void;\n\tonOpen?: () => void;\n\tonClose?: (value: TValue) => void;\n\tisEqual: (left: TValue, right: TValue) => boolean;\n}\n\n/**\n * Общий жизненный цикл чернового выбора для picker-компонентов,\n * где изменения подтверждаются при закрытии popup.\n */\nexport function usePickerSelectionLifecycle<TValue>({\n\tvalue,\n\topen,\n\tonCommit,\n\tonOpen,\n\tonClose,\n\tisEqual\n}: UsePickerSelectionLifecycleOptions<TValue>) {\n\tconst previousOpenRef = useRef(false);\n\tconst [draftValue, setDraftValue] = useState(value);\n\n\tuseEffect(() => {\n\t\tif (previousOpenRef.current && !open) {\n\t\t\tif (!isEqual(draftValue, value)) {\n\t\t\t\tonCommit(draftValue);\n\t\t\t}\n\n\t\t\tonClose?.(draftValue);\n\t\t}\n\n\t\tpreviousOpenRef.current = open;\n\t}, [draftValue, isEqual, onClose, onCommit, open, value]);\n\n\tconst prepareOpen = () => {\n\t\tsetDraftValue(value);\n\t\tonOpen?.();\n\t};\n\n\treturn {\n\t\tdraftValue,\n\t\tsetDraftValue,\n\t\tprepareOpen\n\t};\n}\n","import { MouseEvent, RefObject } from \"react\";\n\nimport { PickerTriggerMode, createPickerTriggerPolicy } from \"./createPickerTriggerPolicy\";\n\ninterface UsePickerTriggerControllerOptions {\n\tmode: PickerTriggerMode;\n\topen: boolean;\n\tcurrentQuery: string;\n\thasDisplayValue: boolean;\n\tinputRef: RefObject<HTMLInputElement | null>;\n\tsetQuery?: (value: string) => void;\n\topenList?: () => void;\n\tclose?: () => void;\n\ttoggleOpen?: () => void;\n\tonBeforeOpen?: () => void;\n}\n\ninterface HandleTriggerKeyDownOptions {\n\tevent: React.KeyboardEvent<HTMLElement>;\n\tonActivateWhenOpen?: () => void;\n\tenableSpaceActivation?: boolean;\n\tenableClosedArrowDownOpen?: boolean;\n\tsuppressClosedArrowUp?: boolean;\n}\n\nfunction focusInput(inputRef: RefObject<HTMLInputElement | null>) {\n\trequestAnimationFrame(() => {\n\t\tinputRef.current?.focus();\n\t});\n}\n\n/**\n * Единый контроллер пользовательских действий на trigger-input.\n * Держит поведение display/search-single/search-multi в одном месте.\n */\nexport function usePickerTriggerController({\n\tmode,\n\topen,\n\tcurrentQuery,\n\thasDisplayValue,\n\tinputRef,\n\tsetQuery,\n\topenList,\n\tclose,\n\ttoggleOpen,\n\tonBeforeOpen\n}: UsePickerTriggerControllerOptions) {\n\tconst policy = createPickerTriggerPolicy(mode);\n\n\tconst openTrigger = () => {\n\t\tonBeforeOpen?.();\n\n\t\tif (openList) {\n\t\t\topenList();\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleOpen?.();\n\t};\n\n\tconst closeTrigger = () => {\n\t\tif (close) {\n\t\t\tclose();\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleOpen?.();\n\t};\n\n\tconst toggleTrigger = () => {\n\t\tif (open) {\n\t\t\tcloseTrigger();\n\t\t} else {\n\t\t\topenTrigger();\n\t\t}\n\n\t\tif (policy.shouldFocusReferenceOnToggle(open)) {\n\t\t\tfocusInput(inputRef);\n\t\t}\n\t};\n\n\treturn {\n\t\tpolicy,\n\t\thandleTriggerInputChange: (nextValue: string) => {\n\t\t\tsetQuery?.(nextValue);\n\n\t\t\tif (policy.shouldOpenOnInputChange(open)) {\n\t\t\t\topenTrigger();\n\t\t\t}\n\t\t},\n\t\thandleTriggerClick: () => {\n\t\t\tif (policy.shouldOpenOnTriggerClick(open)) {\n\t\t\t\topenTrigger();\n\t\t\t}\n\t\t},\n\t\thandleTriggerFocus: (input: HTMLInputElement) => {\n\t\t\tif (\n\t\t\t\tpolicy.shouldSelectTriggerTextOnFocus({\n\t\t\t\t\topen,\n\t\t\t\t\tcurrentQuery,\n\t\t\t\t\thasDisplayValue\n\t\t\t\t})\n\t\t\t) {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tinput.select();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\thandleToggleMouseDown: (event: MouseEvent<HTMLButtonElement>) => {\n\t\t\tevent.preventDefault();\n\t\t},\n\t\thandleToggleClick: () => {\n\t\t\ttoggleTrigger();\n\t\t},\n\t\thandleTriggerKeyDown: ({\n\t\t\tevent,\n\t\t\tonActivateWhenOpen,\n\t\t\tenableSpaceActivation = false,\n\t\t\tenableClosedArrowDownOpen = false,\n\t\t\tsuppressClosedArrowUp = false\n\t\t}: HandleTriggerKeyDownOptions) => {\n\t\t\tif (!open && suppressClosedArrowUp && event.key === \"ArrowUp\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!open && enableClosedArrowDownOpen && event.key === \"ArrowDown\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleTrigger();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"Enter\") {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (open) {\n\t\t\t\t\tonActivateWhenOpen?.();\n\t\t\t\t} else {\n\t\t\t\t\ttoggleTrigger();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (enableSpaceActivation && event.key === \" \") {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (open) {\n\t\t\t\t\tonActivateWhenOpen?.();\n\t\t\t\t} else {\n\t\t\t\t\ttoggleTrigger();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttoggleTrigger\n\t};\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-group-DhpP7JSJ.js","names":[],"sources":["../../src/radio-group/RadioGroup.module.scss","../../src/radio-group/RadioGroup.tsx"],"sourcesContent":[".radioGroup {\n\tdisplay: flex;\n\talign-content: flex-start;\n\tflex-wrap: wrap;\n\t// min-height: var(--control-height);\n\theight: auto;\n\n\t&.noWrap {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.horizontal {\n\t\tflex-direction: row;\n\t}\n\n\t&.vertical {\n\t\tflex-direction: column;\n\t\talign-content: stretch;\n\t}\n}\n\n.radioItem {\n\tflex: 1 0 0%;\n\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-sm);\n\n\tcolor: var(--content-2);\n\t// border: var(--border-width) solid transparent;\n\tborder-radius: var(--radius-xs);\n\tpadding: 0 var(--space-md);\n\tmargin: var(--border-width);\n\t// baseInputControl = --control-height, + borderTop/Bottom + transparentLineTop/Bottom\n\tmin-height: calc(var(--control-height) - calc(var(--border-width) * 4));\n\n\tcursor: pointer;\n\n\t&:hover {\n\t\tcolor: var(--content-1);\n\t\tbackground-color: var(--surface-2);\n\t\t// border-color: var(--border-1);\n\t}\n\n\t&.checked {\n\t\tcolor: var(--status-brand-on-fill);\n\t\tbackground-color: var(--status-brand-fill);\n\t\t// border-color: var(--border-0);\n\t}\n\n\t&:disabled {\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.radioItemContent {\n\tflex: 1 0 0%;\n\n\tdisplay: grid;\n\talign-content: center;\n\tgap: var(--space-sm);\n}\n\n.radioItemIcon {\n\tflex: 0 0 0%;\n\n\tsvg {\n\t\twidth: 1em;\n\t\theight: 1em;\n\t}\n}\n","import React, { createContext, KeyboardEvent, ReactNode, useCallback, useContext, useId, useLayoutEffect, useMemo, useState } from \"react\";\n\nimport { cn, getRovingFocusTargetIndex, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckCircleIcon } from \"lucide-react\";\n\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./RadioGroup.module.scss\";\n\ninterface RadioGroupContextValue {\n\tvalue?: unknown;\n\tonChange?: (value: unknown) => void;\n\tdisabled?: boolean;\n\torientation: \"vertical\" | \"horizontal\";\n\tgroupId: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\tfirstOptionId?: string;\n\tregisterOption: (optionId: string) => () => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\ninterface RadioGroupProps<T> {\n\tvalue?: T;\n\tonChange?: (value: T) => void;\n\tlabel?: string;\n\tdescription?: string;\n\tdisabled?: boolean;\n\tclassName?: string;\n\tnoWrap?: true;\n\torientation?: \"vertical\" | \"horizontal\";\n\t\"aria-label\"?: string;\n\tchildren: React.ReactNode;\n}\n\n/**\n * Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.\n */\nexport function RadioGroup<T>({\n\tvalue,\n\tonChange,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tnoWrap,\n\torientation = \"horizontal\",\n\t\"aria-label\": ariaLabel,\n\tchildren\n}: RadioGroupProps<T>) {\n\tconst groupId = useId();\n\tconst labelId = label ? `${groupId}-label` : undefined;\n\tconst descriptionId = description ? `${groupId}-description` : undefined;\n\tconst [registeredOptionIds, setRegisteredOptionIds] = useState<string[]>([]);\n\tconst handleChange = useCallback((nextValue: unknown) => onChange?.(nextValue as T), [onChange]);\n\n\t/**\n\t * Хранит порядок опций внутри группы, чтобы при отсутствии выбранного значения\n\t * оставлять ровно один tab stop на первой доступной радиокнопке.\n\t */\n\tconst registerOption = useCallback((optionId: string) => {\n\t\tsetRegisteredOptionIds((currentIds) => (currentIds.includes(optionId) ? currentIds : [...currentIds, optionId]));\n\n\t\treturn () => {\n\t\t\tsetRegisteredOptionIds((currentIds) => currentIds.filter((currentId) => currentId !== optionId));\n\t\t};\n\t}, []);\n\n\tconst contextValue = useMemo(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tonChange: handleChange,\n\t\t\tdisabled,\n\t\t\torientation,\n\t\t\tgroupId,\n\t\t\tlabelId,\n\t\t\tdescriptionId,\n\t\t\tfirstOptionId: registeredOptionIds[0],\n\t\t\tregisterOption\n\t\t}),\n\t\t[descriptionId, disabled, groupId, handleChange, labelId, orientation, registerOption, registeredOptionIds, value]\n\t);\n\n\treturn (\n\t\t<div className={cn(uiStyles.uiElement, disabled && uiStyles.disabled, className)}>\n\t\t\t{label && (\n\t\t\t\t<div id={labelId} className={uiStyles.uiLabel}>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{description && (\n\t\t\t\t<div id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<RadioGroupContext.Provider value={contextValue}>\n\t\t\t\t<div\n\t\t\t\t\trole=\"radiogroup\"\n\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\taria-label={labelId ? undefined : ariaLabel}\n\t\t\t\t\taria-describedby={descriptionId}\n\t\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.radioGroup, noWrap && styles.noWrap, styles[orientation])}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</RadioGroupContext.Provider>\n\t\t</div>\n\t);\n}\n\ninterface OptionProps<T> {\n\tvalue: T;\n\tlabel: ReactNode;\n\tdescription?: ReactNode;\n\tclassName?: string;\n}\n\n/**\n * Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.\n */\nexport function Option<T>({ value, label, description, className }: OptionProps<T>) {\n\tconst context = useContext(RadioGroupContext);\n\tconst optionId = useId();\n\tconst registerOption = context?.registerOption;\n\n\tuseLayoutEffect(() => {\n\t\tif (!registerOption) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn registerOption(optionId);\n\t}, [registerOption, optionId]);\n\n\tif (!context) {\n\t\treturn (\n\t\t\t<div className={cn(styles.radioItem, className)}>\n\t\t\t\t<p className=\"textNoWrap\">{label}</p>\n\t\t\t\t{description && <div className=\"fontSizeSm content2\">{description}</div>}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isChecked = Object.is(context.value, value);\n\tconst isDisabled = context.disabled === true;\n\tconst isFallbackTabStop = context.value === undefined && context.firstOptionId === optionId;\n\n\tconst handleChange = () => {\n\t\tif (isDisabled || isChecked) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontext.onChange?.(value);\n\t};\n\n\t// TODO: логика переиспользуемая, надо вынести в хук\n\tconst handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n\t\tif (isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (handleKeyboardActivation(event, handleChange)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = event.currentTarget;\n\t\tconst groupElement = currentTarget.closest<HTMLElement>('[role=\"radiogroup\"]');\n\t\tconst radioItems = Array.from(groupElement?.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]:not([disabled])') ?? []);\n\n\t\tif (!radioItems.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentIndex = radioItems.indexOf(currentTarget);\n\t\tif (currentIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextIndex = getRovingFocusTargetIndex({\n\t\t\tcurrentIndex,\n\t\t\titemCount: radioItems.length,\n\t\t\tkey: event.key,\n\t\t\torientation: context.orientation\n\t\t});\n\n\t\tif (nextIndex === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tradioItems[nextIndex]?.focus();\n\t\tradioItems[nextIndex]?.click();\n\t};\n\n\treturn (\n\t\t<button\n\t\t\tid={`${context.groupId}-option-${optionId}`}\n\t\t\ttype=\"button\"\n\t\t\trole=\"radio\"\n\t\t\taria-checked={isChecked}\n\t\t\tdisabled={isDisabled}\n\t\t\ttabIndex={isChecked || isFallbackTabStop ? 0 : -1}\n\t\t\tclassName={cn(styles.radioItem, isChecked && styles.checked, className)}\n\t\t\tdata-ui=\"radio-option\"\n\t\t\tdata-action=\"select-radio-option\"\n\t\t\tonClick={handleChange}\n\t\t\tonKeyDown={handleKeyDown}>\n\t\t\t<span className={styles.radioItemContent}>\n\t\t\t\t<span className=\"textNoWrap\">{label}</span>\n\t\t\t\t{description && <span className=\"fontSizeSm\">{description}</span>}\n\t\t\t</span>\n\t\t\t<span className={styles.radioItemIcon}>\n\t\t\t\t<CheckCircleIcon style={{ display: \"block\", visibility: isChecked ? \"visible\" : \"hidden\" }} />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n\nRadioGroup.Option = Option;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-DMLFUBlb.js","names":[],"sources":["../../src/table/Table.module.scss","../../src/table/Table.tsx"],"sourcesContent":[".selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.sentinel {\n\theight: 1px;\n}\n","import { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\nimport {\n\ttype FoundationTableRow,\n\tfoundationTableFeatures,\n\ttype TableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableColumnVisibilityState,\n\ttype TableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { useTable } from \"@tanstack/react-table\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./Table.module.scss\";\n\n/**\n * Возвращает индекс как строковый id, если внешний id не передан.\n */\nfunction defaultGetRowId<TData>(_row: TData, index: number): string {\n\treturn String(index);\n}\n\n/**\n * Пропсы компонента Table.\n *\n * Компонент предназначен для плоских данных и по API осознанно сближен с TreeTable.\n */\nexport interface TableProps<TData extends object> {\n\t/**\n\t * Необязательный заголовок над таблицей.\n\t */\n\ttitle?: string;\n\t/**\n\t * Признак первичной загрузки.\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Признак фоновой догрузки или обновления данных.\n\t */\n\tisFetching?: boolean;\n\t/**\n\t * Плоский источник строк.\n\t */\n\tdata: readonly TData[] | undefined | null;\n\t/**\n\t * Описание колонок таблицы.\n\t */\n\tcolumns: readonly TableColumnDef<TData>[];\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Внешний список выбранных строк.\n\t *\n\t * Если передан, таблица синхронизирует визуальное выделение с этим набором id.\n\t */\n\tselectedRowIds?: readonly string[];\n\t/**\n\t * Стабильный идентификатор строки.\n\t *\n\t * Если не задан, используется индекс строки.\n\t */\n\tgetRowId?: (row: TData, index: number) => string;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\t/**\n\t * Дополнительный CSS-класс тега `table`.\n\t */\n\ttableClassName?: string;\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Внешнее controlled-состояние start-pinning для колонок.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние start-pinning для колонок.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Включает изменение ширины колонок через header-handle.\n\t */\n\tenableColumnResizing?: boolean;\n\t/**\n\t * Включает изменение порядка колонок через drag&drop заголовков.\n\t */\n\tenableColumnReordering?: boolean;\n\t/**\n\t * Минимальная ширина колонки при resize в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения видимости колонок.\n\t */\n\tonColumnVisibilityChange?: (state: TableColumnVisibilityState) => void;\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n\t/**\n\t * Вызывается после изменения start-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n\t/**\n\t * Вызывается при активации строки кликом или клавиатурой.\n\t */\n\tonRowClick?: (row: TData) => void;\n\t/**\n\t * Вызывается после изменения выбранных строк.\n\t */\n\tonRowSelectionChange?: (rows: TData[]) => void;\n\t/**\n\t * Вызывается при достижении конца таблицы внутри scroll-контейнера.\n\t */\n\tonReachEnd?: () => void;\n\t/**\n\t * Позволяет запретить выбор отдельных строк.\n\t */\n\tgetRowCanSelect?: (row: TData) => boolean;\n\t/**\n\t * Позволяет добавить CSS-класс для конкретной строки.\n\t */\n\tgetRowClassName?: (row: TData) => string | undefined;\n\t/**\n\t * Контекстное меню заголовка колонки. Используется для общих runtime-действий\n\t * вроде server sorting без встраивания доменной логики в shared-таблицу.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TData>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\t *\n\t * В отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n\t * `defaultContent` уже содержит отформатированное значение, если оно применимо.\n\t */\n\trenderCellContent?: BaseTableProps<TData>[\"renderCellContent\"];\n}\n\n/**\n * Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.\n */\nexport function Table<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\tselectionMode = \"none\",\n\tselectedRowIds,\n\tgetRowId,\n\tclassName,\n\tminHeight,\n\ttableClassName,\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tonColumnVisibilityChange,\n\tonColumnOrderChange,\n\tonColumnSizingChange,\n\tonColumnPinningChange,\n\tonRowClick,\n\tonRowSelectionChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TableProps<TData>) {\n\tconst tableData = useMemo(() => data ?? [], [data]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst resolveRowId = getRowId ?? defaultGetRowId<TData>;\n\tconst rowById = useMemo(() => new Map(tableData.map((row, index) => [resolveRowId(row, index), row])), [resolveRowId, tableData]);\n\tconst availableRowIds = useMemo(() => Array.from(rowById.keys()), [rowById]);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds,\n\t\trowById,\n\t\tselectionMode,\n\t\tselectedRowIds,\n\t\tonRowSelectionChange\n\t});\n\tconst { columnVisibility: resolvedColumnVisibility, onColumnVisibilityChange: handleColumnVisibilityChange } = useTableColumnVisibility(\n\t\t{\n\t\t\tcolumnVisibility,\n\t\t\tdefaultColumnVisibility,\n\t\t\tonColumnVisibilityChange\n\t\t}\n\t);\n\tconst { columnOrder: resolvedColumnOrder, onColumnOrderChange: handleColumnOrderChange } = useTableColumnOrder({\n\t\tcolumnOrder,\n\t\tdefaultColumnOrder,\n\t\tonColumnOrderChange\n\t});\n\tconst { columnSizing: resolvedColumnSizing, onColumnSizingChange: handleColumnSizingChange } = useTableColumnSizing({\n\t\tcolumnSizing,\n\t\tdefaultColumnSizing,\n\t\tcolumnResizeMinWidth,\n\t\tonColumnSizingChange\n\t});\n\tconst { columnPinning: resolvedColumnPinning, onColumnPinningChange: handleColumnPinningChange } = useTableColumnPinning({\n\t\tcolumnPinning,\n\t\tdefaultColumnPinning,\n\t\tonColumnPinningChange\n\t});\n\tconst baseTableColumnState = useMemo<BaseTableColumnState>(\n\t\t() => ({\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility\n\t\t}),\n\t\t[resolvedColumnOrder, resolvedColumnPinning, resolvedColumnSizing, resolvedColumnVisibility]\n\t);\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tif (!onReachEnd || !scrollableRef.current || !sentinelRef.current || isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst entry = entries[0];\n\n\t\t\t\tif (entry?.isIntersecting) {\n\t\t\t\t\temitReachEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: scrollableRef.current,\n\t\t\t\tthreshold: 0.1\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(sentinelRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isLoading, onReachEnd, tableData.length]);\n\n\tconst table = useTable({\n\t\tfeatures: foundationTableFeatures,\n\t\tdata: tableData as TData[],\n\t\tcolumns: columns as TableColumnDef<TData>[],\n\t\tstate: {\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\t\trowSelection\n\t\t},\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tgetRowId: (row, index) => resolveRowId(row, index),\n\t\tenableMultiRowSelection: selectionMode === \"multi\",\n\t\tenableRowSelection: (row) => {\n\t\t\tif (selectionMode === \"none\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(row.original) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst rowModelRows = table.getRowModel().rows;\n\tconst mergedCellLayout = useMemo(\n\t\t() =>\n\t\t\tbuildBaseTableMergedCellsLayout({\n\t\t\t\trows: rowModelRows,\n\t\t\t\tcolumns: visibleLeafColumns\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns]\n\t);\n\tconst leadingColumnId = visibleLeafColumns[0]?.id;\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: FoundationTableRow<TData>) => {\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(row.original);\n\t};\n\n\treturn (\n\t\t<BaseTable\n\t\t\ttable={table}\n\t\t\tcolumnState={baseTableColumnState}\n\t\t\ttitle={title}\n\t\t\tisLoading={isLoading}\n\t\t\tisFetching={isFetching}\n\t\t\tclassName={className}\n\t\t\tminHeight={minHeight}\n\t\t\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tonActivateRow={selectionMode !== \"none\" || onRowClick ? activateRow : undefined}\n\t\t\tisRowInteractive={(row) => Boolean(onRowClick || (selectionMode !== \"none\" && row.getCanSelect()))}\n\t\t\tgetRowClassName={(row) => getRowClassName?.(row.original)}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcell.column.id === leadingColumnId && row.getIsSelected() ? styles.selectedIndicatorCell : undefined\n\t\t\t}\n\t\t\tgetCellLayout={({ cell }) => mergedCellLayout.get(cell.id)}\n\t\t\trenderHeaderContextMenu={renderHeaderContextMenu}\n\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\trenderCellContent={(args) => {\n\t\t\t\tconst displayValue = formatPipelineDisplayValue({\n\t\t\t\t\tfield: formattingSnapshot.runtimeByColumnId[args.cell.column.id],\n\t\t\t\t\trawValue: args.cell.getValue(),\n\t\t\t\t\trowData: args.row.original as TableFormulaRowData,\n\t\t\t\t\trowKind: \"plain\"\n\t\t\t\t});\n\t\t\t\tconst defaultContent = !shouldUseTableFormatting({\n\t\t\t\t\tcolumnId: args.cell.column.id,\n\t\t\t\t\truntimeByColumnId: formattingSnapshot.runtimeByColumnId,\n\t\t\t\t\tcustomCellColumnIds: formattingSnapshot.customCellColumnIds\n\t\t\t\t}) ? (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t) : (\n\t\t\t\t\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t);\n\n\t\t\t\tif (renderCellContent) {\n\t\t\t\t\treturn renderCellContent({\n\t\t\t\t\t\t...args,\n\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn defaultContent;\n\t\t\t}}\n\t\t\tafterTableContent={onReachEnd ? <div ref={sentinelRef} className={styles.sentinel} aria-hidden=\"true\" /> : null}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.module-BsDio9A3.js","names":[],"sources":["../../src/ui.module.scss"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.uiSizable {\n\t--base-width: 100%;\n\n\twidth: var(--base-width);\n\n\t&.xs {\n\t\t--base-width: calc(var(--drp-ui-width-xs, var(--ui-width-xs)) - var(--width-add));\n\t}\n\n\t&.sm {\n\t\t--base-width: calc(var(--drp-ui-width-sm, var(--ui-width-sm)) - var(--width-add));\n\t}\n\n\t&.md {\n\t\t--base-width: calc(var(--drp-ui-width-md, var(--ui-width-md)) - var(--width-add));\n\t}\n\n\t&.lg {\n\t\t--base-width: calc(var(--drp-ui-width-lg, var(--ui-width-lg)) - var(--width-add));\n\t}\n\n\t&.xl {\n\t\t--base-width: calc(var(--drp-ui-width-xl, var(--ui-width-xl)) - var(--width-add));\n\t}\n}\n\n// TODO: Тестовый класс\n.uiErrorElement {\n\t--grid-size: var(--space-sm);\n\t--grid-line-size: var(--border-width);\n\t--grid-line-color: var(--status-error-soft);\n\n\theight: var(--control-height);\n\twidth: 100%; // calc(10em - var(--width-add));\n\tflex-shrink: 0;\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\tborder: var(--focus-width) solid var(--status-error-border);\n\tborder-radius: var(--radius-sm);\n\toutline: none;\n\n\tfont-weight: 700;\n\tfont-variation-settings: \"wght\" 700;\n\n\tcolor: var(--status-error-text);\n\tbackground-color: var(--surface-0);\n\tbackground-image:\n\t\trepeating-linear-gradient(\n\t\t\t45deg,\n\t\t\tvar(--grid-line-color) 0 var(--grid-line-size),\n\t\t\ttransparent var(--grid-line-size) var(--grid-size)\n\t\t),\n\t\trepeating-linear-gradient(\n\t\t\t-45deg,\n\t\t\tvar(--grid-line-color) 0 var(--grid-line-size),\n\t\t\ttransparent var(--grid-line-size) var(--grid-size)\n\t\t);\n}\n\n.uiContainer {\n\tposition: relative;\n\twidth: 100%;\n}\n\n.uiInputContainer {\n\t@extend .uiContainer;\n\n\t--padding-right: var(--control-height);\n}\n\n.uiLabelBase {\n\tdisplay: inline-block;\n\tfont-weight: 400;\n\tfont-variation-settings: \"wght\" 400;\n}\n\n.uiLabel {\n\t@extend .uiLabelBase;\n\n\tmargin-block: var(--space-xs);\n}\n\n.uiDescription {\n\t--paragraph-margin: 0;\n\n\tpadding-bottom: var(--space-xs);\n\tcolor: var(--content-1);\n\tfont-weight: 300;\n\tfont-variation-settings: \"wght\" 300;\n}\n\n.uiLabel,\n.uiDescription {\n\tmargin-inline: var(--space-xs);\n}\n\n.uiPlaceholder {\n\tcolor: var(--content-2);\n\tfont-weight: 100;\n\tfont-variation-settings: \"wght\" 100;\n\t// font-size: var(--font-size-sm);\n\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.required {\n\t.uiLabelBase::after {\n\t\tcontent: \" *\";\n\t\tcolor: var(--status-error-text);\n\t}\n}\n\n.uiControl {\n\t@include ui-tone(\"neutral\");\n\t@include ui-appearance-outline;\n\t@include ui-control-base;\n\n\t--ui-radius: var(--radius-sm);\n\n\t&.invalid,\n\t&:invalid {\n\t\t@include ui-tone(\"error\");\n\t\t@include ui-appearance-outline;\n\t}\n\n\t&::placeholder {\n\t\t@extend .uiPlaceholder;\n\t}\n}\n\n.uiToneNeutral {\n\t@include ui-tone(\"neutral\");\n}\n\n.uiToneBrand {\n\t@include ui-tone(\"brand\");\n}\n\n.uiToneError {\n\t@include ui-tone(\"error\");\n}\n\n.uiToneWarning {\n\t@include ui-tone(\"warning\");\n}\n\n.uiToneSuccess {\n\t@include ui-tone(\"success\");\n}\n\n.uiToneInfo {\n\t@include ui-tone(\"info\");\n}\n\n.uiAppearanceSolid {\n\t@include ui-appearance-solid;\n}\n\n.uiAppearanceOutline {\n\t@include ui-appearance-outline;\n}\n\n.uiAppearanceGhost {\n\t@include ui-appearance-ghost;\n}\n\n.uiAppearanceTransparent {\n\t@include ui-appearance-transparent;\n}\n\n.uiInputControl {\n\t@extend .uiControl;\n\n\theight: var(--control-height);\n}\n\n.uiInputWithToggle {\n\t@extend .uiInputControl;\n\n\tcolor: var(--content-0);\n\n\tpadding: 0 var(--padding-right) 0 var(--space-sm);\n\twidth: 100%;\n\ttext-align: left;\n\n\t// &[type=\"button\"] {\n\t// \twhite-space: nowrap;\n\t// }\n}\n\n.uiSelectionControl {\n\t@include ui-control-base;\n\n\t--ui-color: var(--content-0);\n\t--ui-color-hover: var(--content-0);\n\t--ui-color-active: var(--content-0);\n\t--ui-background: var(--surface-0);\n\t--ui-background-hover: var(--ui-tone-soft);\n\t--ui-background-active: var(--ui-tone-soft);\n\t--ui-border-color: var(--ui-tone-border);\n\t--ui-border-hover: var(--ui-tone-border-hover);\n\t--ui-border-active: var(--ui-tone-border-active);\n\t--ui-border-focus: var(--ui-tone-border-focus);\n\n\tappearance: none;\n\tmargin: 0;\n\tcursor: pointer;\n\n\t&:checked {\n\t\tborder-color: var(--ui-tone-border-active);\n\n\t\t& + .uiSelectionIcon {\n\t\t\tcolor: var(--ui-tone-fill);\n\t\t}\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\n\t\tborder-color: var(--border-0);\n\n\t\t&:checked {\n\t\t\t& + .uiSelectionIcon {\n\t\t\t\tcolor: var(--border-0);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.uiSelectionIcon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\tpointer-events: none;\n\tcolor: transparent;\n\ttransition:\n\t\tcolor var(--transition-fast) ease,\n\t\topacity var(--transition-fast) ease;\n}\n\n.uiElement,\n.uiPopupOption {\n\t&.disabled,\n\t&:disabled {\n\t\tcursor: default;\n\t\tpointer-events: none;\n\t\tuser-select: none;\n\n\t\t.uiLabel,\n\t\t.uiDescription {\n\t\t\tcolor: var(--content-2);\n\t\t}\n\n\t\t.uiPlaceholder,\n\t\t.uiOptionText,\n\t\t.uiOptionCode {\n\t\t\topacity: 0.25;\n\t\t}\n\t}\n}\n\n.uiPanelTonePrimary {\n\t--ui-panel-background: var(--surface-0);\n}\n\n.uiPanelToneSecondary {\n\t--ui-panel-background: var(--surface-1);\n}\n\n.uiPanelToneTertiary {\n\t--ui-panel-background: var(--surface-2);\n}\n\n.uiFilledPanel {\n\tbackground-color: var(--ui-panel-background, var(--surface-0));\n}\n\n.uiFramedPanel {\n\tborder: var(--border);\n\tborder-radius: var(--radius-sm);\n\tpadding: var(--space-sm);\n}\n\n.uiPanel {\n\t@extend .uiFramedPanel;\n\t@extend .uiFilledPanel;\n}\n\n.uiStateFocus {\n\t@include focusVisible;\n\n\tbackground-color: var(--surface-1);\n\tborder-color: var(--border-1);\n\tcursor: pointer;\n}\n\n.uiOptionBase {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-start;\n\tgap: var(--space-sm);\n\theight: 100%;\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.uiPopupOption {\n\t@extend .uiOptionBase;\n\n\theight: auto;\n\tmin-height: var(--control-height);\n}\n\n.uiPopupOption {\n\tborder-radius: var(--radius-sm);\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: var(--content-0);\n\n\ttransition:\n\t\tbackground-color var(--transition-fast) ease,\n\t\tcolor var(--transition-fast) ease;\n\n\t.uiMenuOptionIcon,\n\t.uiPopupOptionIcon {\n\t\tflex-shrink: 0;\n\t\tfont-size: var(--font-size-sm);\n\t\twidth: var(--icon-size);\n\t\theight: var(--icon-size);\n\t}\n\n\t.uiMenuOptionIcon,\n\t.keyboard {\n\t\tcolor: var(--content-2);\n\t}\n\n\t&.selected {\n\t\tcolor: var(--interactive-selected-color);\n\t\tbackground-color: var(--interactive-selected-surface);\n\t\tcursor: default;\n\t}\n\n\t&.uiPopupOptionActive,\n\t&:active {\n\t\tcolor: var(--interactive-active-color);\n\t\tbackground-color: var(--interactive-active-surface);\n\t}\n\n\t@include hover(true) {\n\t\tcolor: var(--interactive-hover-color);\n\t\tbackground-color: var(--interactive-hover-surface);\n\t\tcursor: pointer;\n\t}\n\n\t&.disabled {\n\t\t// background-color: var(--surface-2);\n\t\tcolor: var(--content-2);\n\t}\n\n\t&:focus-within {\n\t\t// @extend .uiStateFocus;\n\t\t@include focusVisible;\n\t}\n}\n\n.uiOptionButton,\n.uiOptionLink {\n\t@extend .uiOptionBase;\n\n\tflex: 1 1 0;\n\tmin-width: 0;\n\theight: 100%;\n\tpadding: var(--space-xs) var(--space-sm);\n\tborder: none;\n\tborder-radius: inherit;\n\toutline: none;\n\tbackground: transparent;\n\tcolor: inherit;\n\tcursor: inherit;\n\ttext-decoration: none;\n}\n\n.uiPopupOptionSeparator {\n\tborder-top: var(--border);\n\tmargin-block: var(--space-xs);\n}\n\n.uiPopupGroupLabel {\n\tpadding: var(--space-xs) var(--space-sm);\n\tcolor: var(--content-2);\n\tfont-weight: 300;\n\ttext-transform: uppercase;\n\tfont-size: var(--font-size-sm);\n}\n\n.uiMenuOptionIcon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.uiOptionText {\n\t// font-size: var(--font-size-sm);\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.uiOptionCode {\n\tfont-family: var(--font-family-mono);\n\t// font-size: var(--font-size-sm);\n\tcolor: var(--content-1);\n\tfont-weight: 300;\n\tfont-variation-settings: \"wght\" 300;\n}\n\n.uiOptionContentEmphasize {\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.uiToggleButtonContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\theight: 100%;\n\twidth: 100%;\n\n\ttransition-property: width;\n\ttransition-duration: var(--transition-fast);\n\ttransition-timing-function: cubic-bezier(1, 0, 0.5, 0.5);\n\n\t> button {\n\t\tbackground: transparent;\n\t\tborder: none;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: var(--control-height);\n\t\twidth: var(--control-height);\n\t\tborder-radius: var(--radius-sm);\n\t\tflex: 0 0 var(--control-height);\n\t}\n\n\t// &[data-disabled] {\n\t// \tcursor: default;\n\t// \tpointer-events: none;\n\t// \topacity: var(--disabled-opacity);\n\t// }\n}\n\n.uiToggleButton {\n\tcolor: var(--content-0);\n\n\t&:hover {\n\t\tcolor: var(--content-accent);\n\t}\n}\n\n.uiToggleIcon {\n\ttransition: transform var(--transition-fast) ease-in-out;\n\n\t&.uiToggleIconOpen {\n\t\ttransform: rotate(180deg);\n\t}\n}\n\n// TODO: пока в свалку стили для дата-подобных компонентов\n\n// Для компонентов, который не являются input, но выставляют себя за него\n.uiInputControlFake {\n\t@extend .uiInputControl;\n\n\twidth: 100%;\n\tpadding: 0 var(--space-sm);\n\tfont-size: var(--font-size-md);\n\n\tdisplay: flex;\n\talign-items: center;\n\n\tcursor: text;\n}\n\n.uiClearButton {\n\tcolor: var(--status-error-text);\n\n\t&:disabled {\n\t\topacity: 0;\n\t\tpointer-events: none;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\t}\n}\n\n.uiButtonSeparator {\n\tborder-left: var(--border);\n\theight: calc(100% - var(--space-sm));\n}\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"uiClasses-BVwFzzsr.js","names":[],"sources":["../../src/uiClasses.ts"],"sourcesContent":["import uiStyles from \"./ui.module.scss\";\n\nimport type { UiAppearance, UiPanelTone, UiTone, UiVariant } from \"./types\";\n\nexport type UiScheme = {\n\ttone: UiTone;\n\tappearance: UiAppearance;\n};\n\nexport type UiSelectionAppearance = Extract<UiAppearance, \"outline\" | \"solid\">;\n\nconst variantSchemeMap: Record<UiVariant, UiScheme> = {\n\tneutral: { tone: \"neutral\", appearance: \"solid\" },\n\tneutralOutline: { tone: \"neutral\", appearance: \"outline\" },\n\tghost: { tone: \"neutral\", appearance: \"ghost\" },\n\tbrand: { tone: \"brand\", appearance: \"solid\" },\n\terror: { tone: \"error\", appearance: \"solid\" },\n\twarning: { tone: \"warning\", appearance: \"solid\" },\n\tsuccess: { tone: \"success\", appearance: \"solid\" },\n\tinfo: { tone: \"info\", appearance: \"solid\" },\n\tbrandOutline: { tone: \"brand\", appearance: \"outline\" },\n\terrorOutline: { tone: \"error\", appearance: \"outline\" },\n\twarningOutline: { tone: \"warning\", appearance: \"outline\" },\n\tsuccessOutline: { tone: \"success\", appearance: \"outline\" },\n\tinfoOutline: { tone: \"info\", appearance: \"outline\" },\n\ttransparent: { tone: \"neutral\", appearance: \"transparent\" }\n};\n\nconst toneClassNameMap: Record<UiTone, string> = {\n\tneutral: uiStyles.uiToneNeutral,\n\tbrand: uiStyles.uiToneBrand,\n\terror: uiStyles.uiToneError,\n\twarning: uiStyles.uiToneWarning,\n\tsuccess: uiStyles.uiToneSuccess,\n\tinfo: uiStyles.uiToneInfo\n};\n\nconst appearanceClassNameMap: Record<UiAppearance, string> = {\n\tsolid: uiStyles.uiAppearanceSolid,\n\toutline: uiStyles.uiAppearanceOutline,\n\tghost: uiStyles.uiAppearanceGhost,\n\ttransparent: uiStyles.uiAppearanceTransparent\n};\n\nconst panelToneClassNameMap: Record<UiPanelTone, string> = {\n\tprimary: uiStyles.uiPanelTonePrimary,\n\tsecondary: uiStyles.uiPanelToneSecondary,\n\ttertiary: uiStyles.uiPanelToneTertiary\n};\n\nexport function getUiToneClassName(tone: UiTone): string {\n\treturn toneClassNameMap[tone];\n}\n\nexport function getUiAppearanceClassName(appearance: UiAppearance): string {\n\treturn appearanceClassNameMap[appearance];\n}\n\nexport function getUiPanelToneClassName(tone: UiPanelTone): string {\n\treturn panelToneClassNameMap[tone];\n}\n\nexport function resolveUiScheme({\n\tvariant,\n\ttone,\n\tappearance,\n\tfallbackTone = \"neutral\",\n\tfallbackAppearance = \"outline\"\n}: {\n\tvariant?: UiVariant;\n\ttone?: UiTone;\n\tappearance?: UiAppearance;\n\tfallbackTone?: UiTone;\n\tfallbackAppearance?: UiAppearance;\n}): UiScheme {\n\tif (tone || appearance) {\n\t\treturn {\n\t\t\ttone: tone ?? fallbackTone,\n\t\t\tappearance: appearance ?? fallbackAppearance\n\t\t};\n\t}\n\n\tif (variant) {\n\t\treturn variantSchemeMap[variant];\n\t}\n\n\treturn {\n\t\ttone: fallbackTone,\n\t\tappearance: fallbackAppearance\n\t};\n}\n"],"mappings":";;AAWA,IAAM,IAAgD;CACrD,SAAS;EAAE,MAAM;EAAW,YAAY;CAAQ;CAChD,gBAAgB;EAAE,MAAM;EAAW,YAAY;CAAU;CACzD,OAAO;EAAE,MAAM;EAAW,YAAY;CAAQ;CAC9C,OAAO;EAAE,MAAM;EAAS,YAAY;CAAQ;CAC5C,OAAO;EAAE,MAAM;EAAS,YAAY;CAAQ;CAC5C,SAAS;EAAE,MAAM;EAAW,YAAY;CAAQ;CAChD,SAAS;EAAE,MAAM;EAAW,YAAY;CAAQ;CAChD,MAAM;EAAE,MAAM;EAAQ,YAAY;CAAQ;CAC1C,cAAc;EAAE,MAAM;EAAS,YAAY;CAAU;CACrD,cAAc;EAAE,MAAM;EAAS,YAAY;CAAU;CACrD,gBAAgB;EAAE,MAAM;EAAW,YAAY;CAAU;CACzD,gBAAgB;EAAE,MAAM;EAAW,YAAY;CAAU;CACzD,aAAa;EAAE,MAAM;EAAQ,YAAY;CAAU;CACnD,aAAa;EAAE,MAAM;EAAW,YAAY;CAAc;AAC3D,GAEM,IAA2C;CAChD,SAAS,EAAS;CAClB,OAAO,EAAS;CAChB,OAAO,EAAS;CAChB,SAAS,EAAS;CAClB,SAAS,EAAS;CAClB,MAAM,EAAS;AAChB,GAEM,IAAuD;CAC5D,OAAO,EAAS;CAChB,SAAS,EAAS;CAClB,OAAO,EAAS;CAChB,aAAa,EAAS;AACvB,GAEM,IAAqD;CAC1D,SAAS,EAAS;CAClB,WAAW,EAAS;CACpB,UAAU,EAAS;AACpB;AAEA,SAAgB,EAAmB,GAAsB;CACxD,OAAO,EAAiB;AACzB;AAEA,SAAgB,EAAyB,GAAkC;CAC1E,OAAO,EAAuB;AAC/B;AAEA,SAAgB,EAAwB,GAA2B;CAClE,OAAO,EAAsB;AAC9B;AAEA,SAAgB,EAAgB,EAC/B,YACA,SACA,eACA,kBAAe,WACf,wBAAqB,aAOT;CAYZ,OAXI,KAAQ,IACJ;EACN,MAAM,KAAQ;EACd,YAAY,KAAc;CAC3B,IAGG,IACI,EAAiB,KAGlB;EACN,MAAM;EACN,YAAY;CACb;AACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/dialog/Dialog.tsx"],"sourcesContent":["import React, { PropsWithChildren, useId } from \"react\";\n\nimport { getOrCreatePortalRoot, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { createPortal } from \"react-dom\";\n\ninterface DialogProps extends PropsWithChildren {\n\ttitle: React.ReactNode;\n\tdescription: string;\n\topen: boolean;\n\tonClose: () => void;\n\tminWidth?: string | number;\n}\n\n/**\n * Модальное диалоговое окно для важных подтверждений и коротких пользовательских сценариев.\n */\nexport function Dialog({ title, description, open, onClose, minWidth, children }: DialogProps) {\n\tconst titleId = useId();\n\tconst descriptionId = useId();\n\tconst panelRef = useOverlayFocus<HTMLDivElement>({\n\t\tactive: open,\n\t\ttrapFocus: true,\n\t\trestoreFocus: true,\n\t\tinitialFocus: \"auto\"\n\t});\n\n\tuseEscapeDismiss({\n\t\tactive: open,\n\t\tonDismiss: onClose,\n\t\tcontainerRef: panelRef\n\t});\n\n\tif (!open) {\n\t\treturn null;\n\t}\n\n\tif (typeof document === \"undefined\") {\n\t\treturn null;\n\t}\n\n\tconst portalTarget = getOrCreatePortalRoot(\"dialog-root\");\n\n\tif (!portalTarget) {\n\t\treturn null;\n\t}\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName=\"fixed inset0 flexCenter surfaceBackdrop\"\n\t\t\tstyle={{ zIndex: \"var(--z-dialog)\" }}\n\t\t\tonMouseDown={(event) => event.target === event.currentTarget && onClose()}>\n\t\t\t<div\n\t\t\t\tref={panelRef}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\taria-labelledby={title ? titleId : undefined}\n\t\t\t\taria-describedby={description ? descriptionId : undefined}\n\t\t\t\ttabIndex={-1}\n\t\t\t\tclassName=\"surface0 shadowMd paddingLg radiusSm\"\n\t\t\t\tstyle={{ minWidth }}>\n\t\t\t\t{title && (\n\t\t\t\t\t<h2 id={titleId} className=\"margin0\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h2>\n\t\t\t\t)}\n\t\t\t\t{description && <p id={descriptionId}>{description}</p>}\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>,\n\t\tportalTarget\n\t);\n}\n"],"mappings":";;;;;AAgBA,SAAgB,EAAO,EAAE,UAAO,gBAAa,SAAM,YAAS,aAAU,eAAyB;CAC9F,IAAM,IAAU,EAAM,GAChB,IAAgB,EAAM,GACtB,IAAW,EAAgC;EAChD,QAAQ;EACR,WAAW;EACX,cAAc;EACd,cAAc;CACf,CAAC;CAYD,IAVA,EAAiB;EAChB,QAAQ;EACR,WAAW;EACX,cAAc;CACf,CAAC,GAEG,CAAC,KAID,OAAO,WAAa,KACvB,OAAO;CAGR,IAAM,IAAe,EAAsB,aAAa;CAMxD,OAJK,IAIE,EACN,kBAAC,OAAD;EACC,WAAU;EACV,OAAO,EAAE,QAAQ,kBAAkB;EACnC,cAAc,MAAU,EAAM,WAAW,EAAM,iBAAiB,EAAQ;EACxE,UAAA,kBAAC,OAAD;GACC,KAAK;GACL,MAAK;GACL,cAAW;GACX,mBAAiB,IAAQ,IAAU,KAAA;GACnC,oBAAkB,IAAc,IAAgB,KAAA;GAChD,UAAU;GACV,WAAU;GACV,OAAO,EAAE,YAAS;GARnB,UAAA;IASE,KACA,kBAAC,MAAD;KAAI,IAAI;KAAS,WAAU;KACzB,UAAA;IACE,CAAA;IAEJ,KAAe,kBAAC,KAAD;KAAG,IAAI;KAAgB,UAAA;IAAe,CAAA;IACrD;GACG;;CACD,CAAA,GACL,CACD,IA3BQ;AA4BT"}
@@ -1,93 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./check-BdRTIK6S.js";import{n as i,t as a}from"./download-dw_WzNlC.js";import{i as o,n as s,r as c}from"./iframe-D0R9pFj7.js";import{n as l,t as u}from"./Button-BpQRrzrS.js";var d,f;function p(){return(p=e((()=>{o(),d=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]],f=c(`bell`,d)})))()}var m,h;function g(){return(g=e((()=>{o(),m=[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]],h=c(`plus`,m)})))()}var _=t({Basic:()=>x,ComposableScheme:()=>C,Variants:()=>S,WithIcons:()=>w,__namedExportsOrder:()=>T,default:()=>b}),v,y,b,x,S,C,w,T;function E(){return(E=e((()=>{p(),n(),i(),g(),l(),v=s(),{useArgs:y}=__STORYBOOK_MODULE_PREVIEW_API__,b={title:`UI/Button`,component:u,args:{children:`Действие`,variant:`neutralOutline`,disabled:!1,iconEnd:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текстовое содержимое кнопки.`,control:`text`},variant:{description:"Готовая схема для обратной совместимости. Если заданы `tone` или `appearance`, они имеют приоритет.",control:`select`,options:[`neutral`,`neutralOutline`,`ghost`,`brand`,`error`,`warning`,`success`,`info`,`brandOutline`,`errorOutline`,`warningOutline`,`successOutline`,`infoOutline`,`transparent`]},tone:{description:`Цветовой тон кнопки.`,control:`inline-radio`,options:[`neutral`,`brand`,`error`,`warning`,`success`,`info`]},appearance:{description:`Визуальная форма кнопки.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},icon:{description:`Иконка слева или справа от текста.`,control:!1},iconEnd:{description:`Перемещает иконку в конец кнопки.`,control:`boolean`},type:{description:"Тип нативной кнопки; по умолчанию безопасный `button`.",control:`select`,options:[`button`,`submit`,`reset`]},disabled:{description:`Блокирует нажатие.`,control:`boolean`}}},x={render:function(){let[e]=y();return(0,v.jsx)(u,{...e})}},S={render:()=>(0,v.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,v.jsx)(u,{variant:`neutral`,children:`Neutral Solid`}),(0,v.jsx)(u,{variant:`neutralOutline`,children:`Neutral Outline`}),(0,v.jsx)(u,{variant:`ghost`,children:`Ghost`}),(0,v.jsx)(u,{variant:`brand`,children:`Brand Solid`}),(0,v.jsx)(u,{variant:`brandOutline`,children:`Brand Outline`}),(0,v.jsx)(u,{variant:`info`,children:`Info Solid`}),(0,v.jsx)(u,{variant:`success`,children:`Success Solid`}),(0,v.jsx)(u,{variant:`warning`,children:`Warning Solid`}),(0,v.jsx)(u,{variant:`error`,children:`Error Solid`}),(0,v.jsx)(u,{variant:`infoOutline`,children:`Info Outline`}),(0,v.jsx)(u,{variant:`successOutline`,children:`Success Outline`}),(0,v.jsx)(u,{variant:`warningOutline`,children:`Warning Outline`}),(0,v.jsx)(u,{variant:`errorOutline`,children:`Error Outline`}),(0,v.jsx)(u,{variant:`transparent`,children:`Transparent`})]}),args:{children:`Действие`}},C={render:()=>(0,v.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,v.jsx)(u,{tone:`neutral`,appearance:`solid`,children:`Neutral Solid`}),(0,v.jsx)(u,{tone:`neutral`,appearance:`outline`,children:`Neutral Outline`}),(0,v.jsx)(u,{tone:`neutral`,appearance:`ghost`,children:`Neutral Ghost`}),(0,v.jsx)(u,{tone:`brand`,appearance:`solid`,children:`Brand Solid`}),(0,v.jsx)(u,{tone:`brand`,appearance:`outline`,children:`Brand Outline`}),(0,v.jsx)(u,{tone:`brand`,appearance:`ghost`,children:`Brand Ghost`}),(0,v.jsx)(u,{tone:`brand`,appearance:`transparent`,children:`Brand Transparent`}),(0,v.jsx)(u,{tone:`info`,appearance:`outline`,children:`Info Outline`}),(0,v.jsx)(u,{tone:`success`,appearance:`solid`,children:`Success Solid`}),(0,v.jsx)(u,{tone:`error`,appearance:`transparent`,children:`Error Transparent`})]})},w={render:()=>(0,v.jsxs)(`div`,{style:{display:`flex`,gap:12,flexWrap:`wrap`},children:[(0,v.jsx)(u,{icon:(0,v.jsx)(a,{}),children:`Скачать`}),(0,v.jsx)(u,{icon:(0,v.jsx)(h,{}),tone:`info`,appearance:`solid`,children:`Создать`}),(0,v.jsx)(u,{icon:(0,v.jsx)(r,{}),iconEnd:!0,tone:`success`,appearance:`solid`,children:`Подтвердить`}),(0,v.jsx)(u,{icon:(0,v.jsx)(f,{}),title:`Уведомления`})]}),args:{children:`Действие`}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
2
- render: function Render() {
3
- const [args] = useArgs<ButtonProps>();
4
- return <Button {...args} />;
5
- }
6
- // play: async function ({ args, canvas, userEvent }) {
7
- // const button = canvas.getByRole("button", { name: /button/i });
8
- // // 👇 Simulate behavior
9
- // await userEvent.click(button);
10
- // // 👇 Make assertions
11
- // await expect(button).toBeVisible();
12
- // await expect(args.onClick).not.toHaveBeenCalled();
13
- // }
14
- }`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
15
- render: () => <div style={{
16
- display: "grid",
17
- gap: 12,
18
- gridTemplateColumns: "repeat(auto-fit, minmax(180px, 1fr))"
19
- }}>
20
- <Button variant="neutral">Neutral Solid</Button>
21
- <Button variant="neutralOutline">Neutral Outline</Button>
22
- <Button variant="ghost">Ghost</Button>
23
- <Button variant="brand">Brand Solid</Button>
24
- <Button variant="brandOutline">Brand Outline</Button>
25
- <Button variant="info">Info Solid</Button>
26
- <Button variant="success">Success Solid</Button>
27
- <Button variant="warning">Warning Solid</Button>
28
- <Button variant="error">Error Solid</Button>
29
- <Button variant="infoOutline">Info Outline</Button>
30
- <Button variant="successOutline">Success Outline</Button>
31
- <Button variant="warningOutline">Warning Outline</Button>
32
- <Button variant="errorOutline">Error Outline</Button>
33
- <Button variant="transparent">Transparent</Button>
34
- </div>,
35
- args: {
36
- children: "Действие"
37
- }
38
- }`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
39
- render: () => <div style={{
40
- display: "grid",
41
- gap: 12,
42
- gridTemplateColumns: "repeat(auto-fit, minmax(180px, 1fr))"
43
- }}>
44
- <Button tone="neutral" appearance="solid">
45
- Neutral Solid
46
- </Button>
47
- <Button tone="neutral" appearance="outline">
48
- Neutral Outline
49
- </Button>
50
- <Button tone="neutral" appearance="ghost">
51
- Neutral Ghost
52
- </Button>
53
- <Button tone="brand" appearance="solid">
54
- Brand Solid
55
- </Button>
56
- <Button tone="brand" appearance="outline">
57
- Brand Outline
58
- </Button>
59
- <Button tone="brand" appearance="ghost">
60
- Brand Ghost
61
- </Button>
62
- <Button tone="brand" appearance="transparent">
63
- Brand Transparent
64
- </Button>
65
- <Button tone="info" appearance="outline">
66
- Info Outline
67
- </Button>
68
- <Button tone="success" appearance="solid">
69
- Success Solid
70
- </Button>
71
- <Button tone="error" appearance="transparent">
72
- Error Transparent
73
- </Button>
74
- </div>
75
- }`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
76
- render: () => <div style={{
77
- display: "flex",
78
- gap: 12,
79
- flexWrap: "wrap"
80
- }}>
81
- <Button icon={<DownloadIcon />}>Скачать</Button>
82
- <Button icon={<PlusIcon />} tone="info" appearance="solid">
83
- Создать
84
- </Button>
85
- <Button icon={<CheckIcon />} iconEnd tone="success" appearance="solid">
86
- Подтвердить
87
- </Button>
88
- <Button icon={<BellIcon />} title="Уведомления" />
89
- </div>,
90
- args: {
91
- children: "Действие"
92
- }
93
- }`,...w.parameters?.docs?.source}}},T=[`Basic`,`Variants`,`ComposableScheme`,`WithIcons`]})))()}export{w as a,S as i,_ as n,E as o,C as r,x as t};
@@ -1 +0,0 @@
1
- .Dshr-j{padding:0}.esetVt{text-align:center;margin-bottom:var(--space-sm);color:var(--content-1);grid-template-columns:repeat(7,1fr);display:grid}.i-LJYe{font-size:var(--font-size-xs)}.XZsnCH{gap:var(--border-width);display:grid}._2KDjTS{gap:var(--border-width);grid-template-columns:repeat(7,1fr);display:grid}.o-freG{--range-radius:calc(var(--control-height) / 2);height:var(--control-height);cursor:pointer;border-radius:var(--radius-xs);background-color:var(--surface-1)}.o-freG:hover:not(.GcV08-){background-color:var(--surface-accent)}.o-freG.UCrE-I{color:var(--content-2);background-color:#0000}.o-freG.L2V3uq:hover:not(.GcV08-):not(.Te9oCq):not(.cUF2pQ){background-color:var(--surface-1)}.o-freG.L2V3uq.UCrE-I:hover:not(.GcV08-):not(.Te9oCq):not(.cUF2pQ){background-color:#0000}.o-freG.Te9oCq,.o-freG.d1L5uw{background-color:var(--surface-accent);color:var(--content-0)}.o-freG.cUF2pQ,.o-freG.LU0M9Y,.o-freG.MR3y5p{background-color:var(--surface-accent);color:var(--content-accent);font-variation-settings:"wght" 600;font-weight:600}.o-freG.VDqDpm:not(.cUF2pQ):not(.d1L5uw):not(.LU0M9Y):not(.MR3y5p){color:var(--status-error-fill)}.o-freG.GcV08-{color:var(--content-2);cursor:not-allowed}.o-freG.GcV08-:hover{background:0 0}.o-freG.CLR-7m{border:var(--border);color:var(--status-info-text);border-color:var(--status-info-text)}.p5pRGW{padding:0}.pUHpxD{gap:var(--border-width);grid-template-columns:repeat(3,1fr);align-content:center;display:grid}.lwWv-z{height:var(--control-height);cursor:pointer;border-radius:var(--radius-xs);text-transform:capitalize;background-color:var(--surface-1)}.lwWv-z:hover:not(._8gn-3z){background-color:var(--surface-accent)}.lwWv-z.b57d-c{background-color:var(--surface-accent);color:var(--content-0)}.lwWv-z.nGc5FO,.lwWv-z.JLqjri,.lwWv-z.UQMYwg{background-color:var(--surface-accent);color:var(--content-accent);font-variation-settings:"wght" 600;font-weight:600}.lwWv-z._8gn-3z{color:var(--content-2);cursor:not-allowed}.lwWv-z._8gn-3z:hover{background:0 0}.E35KE6{width:calc(18em + var(--width-add))}.L14Qef{padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;gap:var(--space-sm);border-bottom:var(--border);display:flex}._--xW7O{padding:0}.-N-5Jk{gap:var(--border-width);grid-template-columns:repeat(3,1fr);display:grid}.hhY92S{height:var(--control-height);cursor:pointer;border-radius:var(--radius-xs);background-color:var(--surface-1)}.hhY92S:hover:not(.IhX7jj){background-color:var(--surface-accent)}.hhY92S.NWNpWj{background-color:var(--surface-accent);color:var(--content-0)}.hhY92S.d1SfcV,.hhY92S.Gkui4r,.hhY92S._0dVZLW{background-color:var(--surface-accent);color:var(--content-accent);font-variation-settings:"wght" 600;font-weight:600}.hhY92S.IhX7jj{color:var(--content-2);cursor:not-allowed}.hhY92S.IhX7jj:hover{background:0 0}
@@ -1 +0,0 @@
1
- .MsGee8{z-index:var(--z-dropdown);outline:none}._5yVJwD{--menu-max-height:calc(100dvh - var(--space-xl));--menu-min-width:14em;--menu-max-width:min(24em, calc(100dvw - var(--space-xl)));--input-width:var(--menu-min-width);min-width:var(--menu-min-width);max-width:var(--menu-max-width);max-height:var(--menu-max-height)}.f9wo9l{width:var(--radial-panel-size);height:var(--radial-panel-size);z-index:var(--z-context-menu,var(--z-dropdown));pointer-events:none;outline:none;position:fixed}._9IPwGF{inset:calc(var(--radial-item-size) / 2);border:var(--border);background:radial-gradient(circle, color-mix(in srgb, var(--surface-0) 96%, transparent) 0 36%, transparent 37%), color-mix(in srgb, var(--surface-0) 88%, transparent);box-shadow:var(--shadow-md);pointer-events:none;border-radius:50%;position:absolute}.CAmmlz{width:calc(var(--radial-item-size) * .72);height:calc(var(--radial-item-size) * .72);padding:var(--space-xs);border:var(--border);background-color:var(--surface-0);color:var(--content-0);box-shadow:var(--shadow-sm);pointer-events:auto;transition:background-color var(--transition-fast) ease, border-color var(--transition-fast) ease, color var(--transition-fast) ease, transform var(--transition-fast) ease;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.CAmmlz:focus{background-color:var(--surface-1);border-color:var(--border-1)}.CAmmlz:focus-visible{background-color:var(--surface-accent);color:var(--content-accent);cursor:pointer;transform:translate(-50%,-50%)scale(1.06)}@media (any-hover:hover){.CAmmlz:hover{background-color:var(--surface-accent);color:var(--content-accent);cursor:pointer;transform:translate(-50%,-50%)scale(1.06)}}@media (any-hover:none){.CAmmlz:active{background-color:var(--surface-accent);color:var(--content-accent);cursor:pointer;transform:translate(-50%,-50%)scale(1.06)}}._5KEBWR{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--font-size-sm);line-height:1.1;overflow:hidden}.L28onY{pointer-events:none;position:absolute;inset:0}.Pg-1Y3{width:var(--radial-item-size);height:var(--radial-item-size);transform:rotate(var(--radial-item-angle)) translate(var(--radial-radius)) rotate(calc(var(--radial-item-angle) * -1)) translate(-50%, -50%);pointer-events:none;position:absolute;top:50%;left:50%}.ObIrS2{width:100%;height:100%;padding:var(--space-xs);border:var(--border);background-color:var(--surface-0);color:var(--content-0);box-shadow:var(--shadow-sm);pointer-events:auto;transition:background-color var(--transition-fast) ease, border-color var(--transition-fast) ease, color var(--transition-fast) ease, transform var(--transition-fast) ease;border-radius:50%;grid-template-rows:1fr auto;place-items:center;gap:.15rem;display:grid}.ObIrS2:focus{background-color:var(--surface-1);border-color:var(--border-1)}.ObIrS2:disabled,.ObIrS2[aria-disabled=true]{cursor:default;color:var(--content-2);opacity:.52;pointer-events:none}.ObIrS2:focus-visible{background-color:var(--surface-accent);color:var(--content-accent);cursor:pointer;transform:scale(1.06)}@media (any-hover:hover){.ObIrS2:hover{background-color:var(--surface-accent);color:var(--content-accent);cursor:pointer;transform:scale(1.06)}}@media (any-hover:none){.ObIrS2:active{background-color:var(--surface-accent);color:var(--content-accent);cursor:pointer;transform:scale(1.06)}}._0jf5vt{min-width:var(--space-md);min-height:var(--space-md);justify-content:center;align-items:center;display:inline-flex}._0jf5vt>svg{width:var(--space-md);height:var(--space-md)}.zKwsQF{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--font-size-sm);overflow:hidden}
@@ -1 +0,0 @@
1
- .P-rCx1{align-items:center;display:flex}._9yjaDf{justify-content:flex-start;align-items:center;min-width:0;display:flex}._9yjaDf:hover{color:var(--content-accent)}.izVkky{align-items:center;padding-inline-end:var(--space-sm);display:flex}.KAIPfW>.O-da-N{border-radius:0}.KAIPfW>.O-da-N:not(:first-child){border-top:none}.KAIPfW>.O-da-N:first-child{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.KAIPfW>.O-da-N:last-child{border-bottom-left-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}
@@ -1 +0,0 @@
1
- .sZ0x6w,._538Ejd{padding:var(--space-sm);background-color:var(--surface-1);border:var(--border-width) solid var(--border-2);border-radius:var(--radius-sm);color:var(--content-0);filter:drop-shadow(var(--shadow-sm))}.sZ0x6w.fqciCO,.fqciCO._538Ejd{--border-1:var(--content-0);background-color:var(--content-0);border-color:var(--border-1);color:var(--surface-1)}.sZ0x6w.sHkUiQ,.sHkUiQ._538Ejd{--border-1:var(--status-info-text);background-color:var(--status-info-text);border-color:var(--status-info-text);color:var(--status-info-on-fill)}.sZ0x6w.bpGNoX,.bpGNoX._538Ejd{--border-1:var(--status-error-text);background-color:var(--status-error-text);border-color:var(--status-error-text);color:var(--status-error-on-fill)}.sZ0x6w.tYnRg-,.tYnRg-._538Ejd{--border-1:var(--status-warning-text);background-color:var(--status-warning-text);border-color:var(--status-warning-text);color:var(--status-warning-on-fill)}.sZ0x6w._8lflEh,._8lflEh._538Ejd{--border-1:var(--status-success-text);background-color:var(--status-success-text);border-color:var(--status-success-text);color:var(--status-success-on-fill)}._538Ejd{z-index:var(--z-tooltip);pointer-events:none;text-align:initial;font-size:var(--font-size-sm);font-variation-settings:"wght" 500;font-style:normal;font-weight:500;line-height:var(--line-height)}
@@ -1 +0,0 @@
1
- .UMTbLD{color:inherit;border-left-style:solid;border-left-color:var(--state-border-color,transparent);border-left-width:.0625em;padding-left:.25em;text-decoration:none;display:block}.UMTbLD.cz57Fx{border-left-width:.3125em;padding-left:0}.UMTbLD.cz57Fx.oPzAxu{border-left-color:var(--status-info-fill)}.UMTbLD.cz57Fx.MBu26r{border-left-color:var(--status-success-fill)}.UMTbLD.cz57Fx._03z-1l{border-left-color:var(--status-warning-fill)}.UMTbLD.cz57Fx._0RqsqJ{border-left-color:var(--status-error-fill)}.mXkUoM.oPzAxu{color:var(--status-info-text);fill:var(--status-info-fill);stroke:var(--status-info-on-fill)}.mXkUoM.MBu26r{color:var(--status-success-text);fill:var(--status-success-fill);stroke:var(--status-success-on-fill)}.mXkUoM._03z-1l{color:var(--status-warning-text);fill:var(--status-warning-fill);stroke:var(--status-warning-on-fill);stroke-width:2px}.mXkUoM._0RqsqJ{color:var(--status-error-text);fill:var(--status-error-fill);stroke:var(--status-error-on-fill)}.YJUVjb{cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:1;width:6px;height:100%;position:absolute;top:0;right:0}.YJUVjb:hover,.YJUVjb:focus-visible{background:var(--focus-ring)}.YJUVjb:focus-visible{outline:var(--focus);outline-offset:calc(var(--focus-offset) * -1)}._0rNBMr,.gp-7Db{min-width:0}.Ck-sXP{border-collapse:separate;border-spacing:0;table-layout:fixed;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;width:100%}.-F3gli{z-index:10}.V5tPM-{box-shadow:inset var(--focus-offset) 0 0 var(--border-0)}._2VJbvj{background-color:var(--surface-0)}.AD8NkG{padding:var(--space-sm) var(--space-md);background-color:var(--surface-2);border-bottom:var(--border);color:var(--content-0);vertical-align:middle;position:relative}.qqixKn{min-width:0}.dVDRNv{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.dVDRNv:active{cursor:grabbing}.klOoMz{opacity:.75}.fJvFJA{z-index:12;position:sticky}._7D8xa9{transition:background-color var(--transition-fast) ease}._3j87pS{cursor:pointer}._3j87pS:hover .uwojkJ,._3j87pS:focus-visible .uwojkJ,.lLsmW6 .uwojkJ{background-color:var(--surface-1)}.uwojkJ{padding:var(--space-sm) var(--space-md);background-color:var(--surface-0);border-bottom:var(--border);vertical-align:middle}.uYvZ5P{z-index:2;position:sticky}.QIS3xA{border-bottom-color:#0000}.a580w0{padding:var(--space-md);background-color:var(--surface-0)}.UOhaMF .a580w0{border-bottom:0}.DtKAgs{pointer-events:none;z-index:40;position:absolute;inset:0}.jPPyP7,.Oa7e5P,.KhQtgF{width:100%;min-width:0}.Oa7e5P,.KhQtgF{align-items:center;display:flex}.KhQtgF{gap:var(--space-xs)}
@@ -1,15 +0,0 @@
1
- import{a as e,n as t,t as n}from"./rolldown-runtime-DkW27tQK.js";import{t as r}from"./react-BZJXY1be.js";import{n as i,t as a}from"./circle-alert-Dj1kZNNX.js";import{n as o,t as s}from"./circle-check-B1w7Ls8y.js";import{i as c,n as l,r as u,t as d}from"./info-B0qzF0Mr.js";import{n as f,r as p,t as m}from"./sortable-fWu4d9fl.js";import{n as h}from"./iframe-D0R9pFj7.js";import{t as ee}from"./shim-DlYORV19.js";import{A as g,B as _,C as v,D as y,E as b,F as x,G as S,H as te,I as C,K as ne,L as w,M as T,N as re,O as ie,P as ae,R as E,S as D,T as O,U as k,V as A,W as j,b as M,c as oe,f as se,j as ce,k as le,l as ue,m as de,p as fe,q as pe,u as me,v as he,w as ge,x as _e,y as ve,z as N}from"./odata-tqjAk19x.js";import{a as P,i as F,n as ye}from"./utils-tg3ibbzi.js";import{a as be,i as xe,t as Se}from"./array-D-_yMMUK-DYqn1Ozn.js";import{h as Ce,l as we,y as Te}from"./formatters-DVE1YVNQ-CMsbb5-m.js";import{i as Ee,n as De,r as Oe,t as ke}from"./NoData-CNK8-UBc.js";import{n as Ae,t as je}from"./GridContainer-fKYgDsLl.js";import{c as Me,m as Ne,n as Pe,o as Fe,p as Ie,r as Le}from"./hooks-B-ZW7F36.js";import{n as Re,t as ze}from"./Scrollable-CWkMU4wH.js";import{n as Be,t as Ve}from"./ContextMenu-BcNU89-b.js";var He=n((e=>{var t=r(),n=ee();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Ue=n(((e,t)=>{t.exports=He()})),We,Ge,Ke,qe,Je,Ye,Xe,I;function Ze(){return(Ze=t((()=>{We=`UMTbLD`,Ge=`cz57Fx`,Ke=`oPzAxu`,qe=`MBu26r`,Je=`_03z-1l`,Ye=`_0RqsqJ`,Xe=`mXkUoM`,I={stateWrapper:We,status:Ge,information:Ke,success:qe,warning:Je,error:Ye,state:Xe}})))()}var L,Qe,R,z,B,V,$e;function et(){return(et=t((()=>{r(),F(),i(),o(),c(),l(),Ze(),L=h(),Qe=({state:e=`none`,text:t,className:n})=>(0,L.jsxs)(`div`,{className:P(`flexCenter gapSm`,n),children:[(()=>{switch(e){case`error`:return(0,L.jsx)(z,{});case`warning`:return(0,L.jsx)(B,{});case`success`:return(0,L.jsx)(V,{});case`information`:return(0,L.jsx)($e,{});default:return null}})(),t]}),R=({state:e})=>{switch(e){case`error`:return(0,L.jsx)(z,{});case`warning`:return(0,L.jsx)(B,{});case`success`:return(0,L.jsx)(V,{});case`information`:return(0,L.jsx)($e,{});default:return null}},z=()=>(0,L.jsx)(u,{className:P(I.state,I.error)}),B=()=>(0,L.jsx)(a,{className:P(I.state,I.warning)}),V=()=>(0,L.jsx)(s,{className:P(I.state,I.success)}),$e=()=>(0,L.jsx)(d,{className:P(I.state,I.information)}),Qe.__docgenInfo={description:``,methods:[],displayName:`StateIcon`,props:{state:{required:!1,tsType:{name:`State`},description:``,defaultValue:{value:`"none"`,computed:!1}},text:{required:!0,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}},R.__docgenInfo={description:``,methods:[],displayName:`RenderStateIcon`,props:{state:{required:!1,tsType:{name:`State`},description:``}}},z.__docgenInfo={description:``,methods:[],displayName:`ErrorIcon`},B.__docgenInfo={description:``,methods:[],displayName:`WarningIcon`},V.__docgenInfo={description:``,methods:[],displayName:`SuccessIcon`},$e.__docgenInfo={description:``,methods:[],displayName:`InformationIcon`}})))()}function tt(e){return nt(e)||typeof e==`function`||rt(e)}function nt(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function rt(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function H(e,t){return e==null?null:tt(e)?at.createElement(e,t):e}function it(e){if(`cell`in e&&e.cell){let t=e.cell,n=t.column.columnDef,r=t,i=n;return r.getIsAggregated?.()?H(i.aggregatedCell??n.cell,t.getContext()):r.getIsPlaceholder?.()?null:H(n.cell,t.getContext())}return`header`in e&&e.header?H(e.header.column.columnDef.header,e.header.getContext()):`footer`in e&&e.footer?H(e.footer.column.columnDef.footer,e.footer.getContext()):null}var at;function ot(){return(ot=t((()=>{at=e(r(),1)})))()}function st({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function ct(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}function lt(e){try{++xt,e()}finally{--xt||dt()}}function ut(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=gt(n,e)}function dt(){if(!(xt>0)){for(;W<bt;){let e=mt[W];mt[W++]=void 0,e.notify()}W=0,bt=0}}function ft(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:+!n,get(){return G!==void 0&&ht(i,G,U),i._snapshot},subscribe(e){let t=ct(e),n={current:!1},r=pt(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=G,o=t?.compare??Object.is;if(n)G=i,++U,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{G=a,n&&(i.flags&=-5),ut(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&vt(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&yt(e)}}else e&32&&(i.flags=e&-33);return G!==void 0&&ht(i,G,U),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(_t(e),yt(e),dt())}},i}function pt(e){let t=()=>{let t=G;G=n,++U,n.depsTail=void 0,n.flags=6;try{return e()}finally{G=t,n.flags&=-5,ut(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&vt(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,ut(this)}};return t(),n}var mt,U,ht,gt,_t,vt,yt,W,bt,G,xt;function St(){return(St=t((()=>{mt=[],U=0,{link:ht,unlink:gt,propagate:_t,checkDirty:vt,shallowPropagate:yt}=st({update(e){return e._update()},notify(e){mt[bt++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,ut(e))}}),W=0,bt=0,xt=0})))()}function Ct(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=wt(e);if(n.length!==wt(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function wt(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function Tt(e,t){return e===t}function Et(e,t=e=>e,n){let r=n?.compare??Tt,i=(0,Dt.useCallback)(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=(0,Dt.useCallback)(()=>e.get(),[e]);return(0,Ot.useSyncExternalStoreWithSelector)(i,a,a,t,r)}var Dt,Ot;function kt(){return(kt=t((()=>{Dt=r(),Ot=Ue()})))()}function At(e){let t=Et(e.source,e.selector,{compare:Ct});return typeof e.children==`function`?e.children(t):e.children}function jt(){return(jt=t((()=>{kt()})))()}function Mt(e){let t=e;return Object.defineProperty(e,"state",{get(){return e.get()}}),`set`in e&&(t.setState=e.set.bind(e)),t}function Nt(e){let{createAtom:t,batch:n}=e,r=t(0);return{createOptionsStore:!1,wrapExternalAtoms:!1,addSubscription:()=>{throw Error(`Feature not supported in current reactivity implementation`)},unmount:()=>{throw Error(`Feature not supported in current reactivity implementation`)},schedule:e.schedule??(e=>queueMicrotask(e)),batch:n,untrack:e=>e(),createReadonlyAtom:(e,n)=>{let i=n?.compare??Object.is,a=!1,o,s=()=>{let t=e();return(!a||!i(o,t))&&(o=t,a=!0),o},c=t(()=>(r.get(),s()),{compare:i});return{get:s,subscribe:c.subscribe.bind(c)}},createWritableAtom:(e,n)=>t(e,{compare:n?.compare}),commit:()=>{r.set(e=>e+1)}}}function Pt(e,t=Object.is){let n=!1,r;return{get:e.get,markCommitted:e=>{r=e,n=!0},subscribe:i=>e.subscribe(e=>{(!n||!t(r,e))&&i(e)})}}function Ft(){return Nt({createAtom:ft,batch:lt})}function It(){return(It=t((()=>{St()})))()}function Lt(e){return e.row.getValue(e.column.id)}function Rt(e){return e.getValue()??e.table.options.renderFallbackValue}function zt(e){return{table:e.table,column:e.column,row:e.row,cell:e,getValue:()=>e.getValue(),renderValue:()=>e.renderValue()}}var Bt;function Vt(){return(Vt=t((()=>{k(),Bt={assignCellPrototype:(e,t)=>{C(`coreCellsFeature`,e,t,{cell_getValue:{fn:e=>Lt(e)},cell_renderValue:{fn:e=>Rt(e)},cell_getContext:{fn:e=>zt(e),memoDeps:e=>[e]}})}}})))()}function Ht(e){if(!e._columnPrototype){e._columnPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignColumnPrototype?.(e._columnPrototype,e)}return e._columnPrototype}function Ut(e,t,n,r){let i={...e.getDefaultColumnDef(),...t},a=i.accessorKey,o=a===void 0?void 0:String(a),s=i.id??o?.replaceAll(`.`,`_`)??(typeof i.header==`string`?i.header:void 0),c;if(i.accessorFn)c=i.accessorFn;else if(a!==void 0){if(typeof a==`string`&&a.includes(`.`)){let e=a.split(`.`);c=t=>{let n=t;for(let t=0;t<e.length;t++){let r=e[t];n=n?.[r]}return n}}else c=e=>e[i.accessorKey]}if(!s)throw Error();let l=Ht(e),u=Object.create(l);u.accessorFn=c,u.columnDef=i,u.columns=[],u.depth=n,u.id=`${String(s)}`,u.parent=r;let d=e._columnInstanceInitFns;for(let e=0;e<d.length;e++)d[e](u);return u}function Wt(e){return[e,...e.columns.flatMap(e=>e.getFlatColumns())]}function Gt(e){if(e.columns.length){let t=e.columns.flatMap(e=>e.getLeafColumns());return E(e.table,`getOrderColumns`,ie)(t)}return[e]}function Kt(e){return{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>e.renderValue()?.toString?.()??null,...Object.values(e._features).reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef?.()),{}),...e.options.defaultColumn}}function qt(e,t,n,r=0){let i=Array(t.length);for(let a=0;a<t.length;a++){if(!(a in t))continue;let o=t[a],s=Ut(e,o,r,n),c=o;s.columns=c.columns?qt(e,c.columns,s,r+1):[],i[a]=s}return i}function Jt(e){return qt(e,e.options.columns)}function Yt(e){return e.getAllColumns().flatMap(e=>e.getFlatColumns())}function Xt(e){let t=j(),n=e.getAllFlatColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function Zt(e){let t=e.getAllColumns().flatMap(e=>e.getLeafColumns());return E(e,`getOrderColumns`,ie)(t)}function Qt(e){let t=j(),n=e.getAllLeafColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function $t(e,t){return e.getAllFlatColumnsById()[t]}function en(){return(en=t((()=>{k(),y()})))()}var tn;function nn(){return(nn=t((()=>{k(),en(),tn={assignColumnPrototype:(e,t)=>{C(`coreColumnsFeature`,e,t,{column_getFlatColumns:{fn:e=>Wt(e),memoDeps:e=>[e.table.options.columns]},column_getLeafColumns:{fn:e=>Gt(e),memoDeps:e=>[e.table.atoms.columnOrder?.get(),e.table.atoms.grouping?.get(),e.table.options.columns,e.table.options.groupedColumnMode]}})},constructTableAPIs:e=>{w(`coreColumnsFeature`,e,{table_getDefaultColumnDef:{fn:()=>Kt(e),memoDeps:()=>[e.options.defaultColumn]},table_getAllColumns:{fn:()=>Jt(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumns:{fn:()=>Yt(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumnsById:{fn:()=>Xt(e),memoDeps:()=>[e.options.columns]},table_getAllLeafColumns:{fn:()=>Zt(e),memoDeps:()=>[e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getAllLeafColumnsById:{fn:()=>Qt(e),memoDeps:()=>[e.getAllLeafColumns()]},table_getColumn:{fn:t=>$t(e,t)}})}}})))()}function rn(e,t){for(let n=0;n<e.subHeaders.length;n++)rn(e.subHeaders[n],t);t.push(e)}function an(e){let t=[];return rn(e,t),t}function on(e){return{column:e.column,header:e,table:e.column.table}}function sn(e){let{start:t,end:n}=e.atoms.columnPinning?.get()??ae(),r=e.getAllColumns(),i=E(e,`getVisibleLeafColumns`,re);if(!t.length&&!n.length)return le(r,i,e);let a=e.getAllLeafColumnsById(),o=[];for(let e=0;e<t.length;e++){let n=a[t[e]];n&&E(n,`getIsVisible`,ce)&&o.push(n)}let s=[];for(let e=0;e<n.length;e++){let t=a[n[e]];t&&E(t,`getIsVisible`,ce)&&s.push(t)}let c=i.filter(e=>!t.includes(e.id)&&!n.includes(e.id));return le(r,[...o,...c,...s],e)}function cn(e){return[...e.getHeaderGroups()].reverse()}function ln(e){let t=e.getHeaderGroups(),n=[];for(let e=0;e<t.length;e++){let r=t[e].headers;for(let e=0;e<r.length;e++)n.push(r[e])}return n}function un(e){let t=e.getHeaderGroups()[0]?.headers??[],n=[];for(let e=0;e<t.length;e++){let r=t[e].getLeafHeaders();for(let e=0;e<r.length;e++)n.push(r[e])}return n}function dn(){return(dn=t((()=>{k(),T(),g(),x()})))()}var fn;function pn(){return(pn=t((()=>{k(),dn(),fn={assignHeaderPrototype:(e,t)=>{C(`coreHeadersFeature`,e,t,{header_getLeafHeaders:{fn:e=>an(e),memoDeps:e=>[e.column.table.options.columns]},header_getContext:{fn:e=>on(e),memoDeps:e=>[e.column.table.options.columns]}})},constructTableAPIs:e=>{w(`coreHeadersFeature`,e,{table_getHeaderGroups:{fn:()=>sn(e),memoDeps:()=>[e.options.columns,e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.atoms.columnPinning?.get(),e.atoms.columnVisibility?.get(),e.options.groupedColumnMode]},table_getFooterGroups:{fn:()=>cn(e),memoDeps:()=>[e.getHeaderGroups()]},table_getFlatHeaders:{fn:()=>ln(e),memoDeps:()=>[e.getHeaderGroups()]},table_getLeafHeaders:{fn:()=>un(e),memoDeps:()=>[e.getHeaderGroups()]}})}}})))()}function mn(e){if(!e._rowPrototype){e._rowPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignRowPrototype?.(e._rowPrototype,e)}return e._rowPrototype}var hn;function gn(){return(gn=t((()=>{k(),hn=(e,t,n,r,i,a,o)=>{let s=mn(e),c=Object.create(s);c._displayIndexCache=-1,c._uniqueValuesCache=j(),c._valuesCache=j(),c.depth=i,c.id=t,c.index=r,c.original=n,c.parentId=o,c.subRows=a??[];let l=e._rowInstanceInitFns;for(let e=0;e<l.length;e++)l[e](c);return c}})))()}function _n(){return[]}function vn(e,t){S(e,`cellSelection`,t?_n():N(e.initialState.cellSelection)??_n())}function yn(e){e.atoms.cellSelection&&(e.options.autoResetAll??e.options.autoResetCellSelection??!0)&&e._reactivity.schedule(()=>vn(e))}function bn(){return(bn=t((()=>{k()})))()}function xn(e){if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if((e.atoms.pagination?.get()?.pageIndex??K)===K)return;wn(e,!0)}}function Sn(e,t){S(e,`pagination`,t)}function Cn(e,t){Sn(e,n=>{let r=A(t,n.pageIndex),i=e.options.pageCount===void 0||e.options.pageCount===-1?2**53-1:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...n,pageIndex:r}})}function wn(e,t){Cn(e,t?K:e.initialState.pagination?.pageIndex??K)}var K;function Tn(){return(Tn=t((()=>{k(),K=0})))()}function En(e,t){S(e,`sorting`,t)}function Dn(e,t){En(e,t?[]:N(e.initialState.sorting??[]))}function On(e){e.atoms.sorting&&(e.options.autoResetAll??e.options.autoResetSorting??!1)&&Dn(e)}function kn(){return(kn=t((()=>{k()})))()}function An(){return e=>pe({feature:`coreRowModelsFeature`,table:e,fnName:`table.getCoreRowModel`,memoDeps:()=>[e.options.data],fn:()=>Mn(e,e.options.data),onAfterUpdate:ne(()=>{b(e),xn(e),On(e),yn(e)})})}function jn(e,t,n,r=0,i){let a=[];for(let o=0;o<n.length;o++){let s=n[o],c=hn(e,e.getRowId(s,o,i),s,o,r,void 0,i?.id);t.flatRows.push(c),t.rowsById[c.id]=c,a.push(c),e.options.getSubRows&&(c.originalSubRows=e.options.getSubRows(s,o),c.originalSubRows?.length&&(c.subRows=jn(e,t,c.originalSubRows,r+1,c)))}return a}function Mn(e,t){let n={rows:[],flatRows:[],rowsById:j()};return n.rows=jn(e,n,t),n}function Nn(){return(Nn=t((()=>{k(),gn(),bn(),O(),Tn(),kn()})))()}function Pn(e){return e._rowModels.coreRowModel||(e._rowModels.coreRowModel=e.options.features.coreRowModel?.(e)??An()(e)),e._rowModels.coreRowModel()}function Fn(e){return e.getCoreRowModel()}function In(e){return e._rowModels.filteredRowModel||(e._rowModels.filteredRowModel=e.options.features.filteredRowModel?.(e)),e.options.manualFiltering||!e._rowModels.filteredRowModel?e.getPreFilteredRowModel():e._rowModels.filteredRowModel()}function Ln(e){return e.getFilteredRowModel()}function Rn(e){return e._rowModels.groupedRowModel||(e._rowModels.groupedRowModel=e.options.features.groupedRowModel?.(e)),e.options.manualGrouping||!e._rowModels.groupedRowModel?e.getPreGroupedRowModel():e._rowModels.groupedRowModel()}function zn(e){return e.getGroupedRowModel()}function Bn(e){return e._rowModels.sortedRowModel||(e._rowModels.sortedRowModel=e.options.features.sortedRowModel?.(e)),e.options.manualSorting||!e._rowModels.sortedRowModel?e.getPreSortedRowModel():e._rowModels.sortedRowModel()}function Vn(e){return e.getSortedRowModel()}function Hn(e){return e._rowModels.expandedRowModel||(e._rowModels.expandedRowModel=e.options.features.expandedRowModel?.(e)),e.options.manualExpanding||!e._rowModels.expandedRowModel?e.getPreExpandedRowModel():e._rowModels.expandedRowModel()}function Un(e){return e.getExpandedRowModel()}function Wn(e){return e._rowModels.paginatedRowModel||(e._rowModels.paginatedRowModel=e.options.features.paginatedRowModel?.(e)),e.options.manualPagination||!e._rowModels.paginatedRowModel?e.getPrePaginatedRowModel():e._rowModels.paginatedRowModel()}function Gn(e){return e.getPaginatedRowModel()}function Kn(){return(Kn=t((()=>{Nn()})))()}var qn;function Jn(){return(Jn=t((()=>{k(),Kn(),qn={constructTableAPIs:e=>{w(`coreRowModelsFeature`,e,{table_getCoreRowModel:{fn:()=>Pn(e)},table_getPreFilteredRowModel:{fn:()=>Fn(e)},table_getFilteredRowModel:{fn:()=>In(e)},table_getPreGroupedRowModel:{fn:()=>Ln(e)},table_getGroupedRowModel:{fn:()=>Rn(e)},table_getPreSortedRowModel:{fn:()=>zn(e)},table_getSortedRowModel:{fn:()=>Bn(e)},table_getPreExpandedRowModel:{fn:()=>Vn(e)},table_getExpandedRowModel:{fn:()=>Hn(e)},table_getPrePaginatedRowModel:{fn:()=>Un(e)},table_getPaginatedRowModel:{fn:()=>Wn(e)},table_getRowModel:{fn:()=>Gn(e)}})}}})))()}function Yn(e){if(!e._cellPrototype){e._cellPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignCellPrototype?.(e._cellPrototype,e)}return e._cellPrototype}function Xn(e,t,n){let r=Yn(n),i=Object.create(r);i.column=e,i.id=`${t.id}_${e.id}`,i.row=t;let a=n._cellInstanceInitFns;for(let e=0;e<a.length;e++)a[e](i);return i}function Zn(e){let t=e.table.getRowsInDisplayOrder(),n=e._displayIndexCache;return t[n]===e?n:-1}function Qn(e){let t=e.getPrePaginatedRowModel().rows;if(e.options.paginateExpandedRows===!1){let e=[],n=t=>{t._displayIndexCache=e.length,e.push(t),t.subRows.length&&t.getIsExpanded?.()&&t.subRows.forEach(n)};return t.forEach(n),e}for(let e=0;e<t.length;e++)t[e]._displayIndexCache=e;return t}function $n(e,t){if(te(e._valuesCache,t))return e._valuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return e._valuesCache[t]=n.accessorFn(e.original,e.index),e._valuesCache[t]}function er(e,t){if(te(e._uniqueValuesCache,t))return e._uniqueValuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return n.columnDef.getUniqueValues?(e._uniqueValuesCache[t]=n.columnDef.getUniqueValues(e.original,e.index),e._uniqueValuesCache[t]):(e._uniqueValuesCache[t]=[e.getValue(t)],e._uniqueValuesCache[t])}function tr(e,t){return e.getValue(t)??e.table.options.renderFallbackValue}function nr(e){return _(e.subRows,e=>e.subRows)}function rr(e){let t=e.getCoreRowModel().flatRows,n=0;for(let e=0;e<t.length;e++)n=Math.max(n,t[e].depth);return n}function ir(e){if(e.parentId)return e.table.getCoreRowModel().rowsById[e.parentId]??e.table.getRow(e.parentId,!0)}function ar(e){let t=[],n=e;for(;;){let e=n.getParentRow();if(!e)break;t.push(e),n=e}return t.reverse()}function or(e){let t=e.table.getAllLeafColumns(),n=e._cellsCache;n||=e._cellsCache=new WeakMap;let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i],o=n.get(a);o||(o=Xn(a,e,e.table),n.set(a,o)),r[i]=o}return r}function sr(e){let t=j(),n=e.getAllCells();for(let e=0;e<n.length;e++){let r=n[e];t[r.column.id]=r}return t}function cr(e,t,n,r){return t.options.getRowId?.(e,n,r)??(r?`${r.id}.${n}`:String(n))}function lr(e,t,n){let r=(n?e.getPrePaginatedRowModel():e.getRowModel()).rowsById[t];if(!r&&(r=e.getCoreRowModel().rowsById[t],!r))throw Error();return r}function ur(){return(ur=t((()=>{k()})))()}var dr;function fr(){return(fr=t((()=>{k(),ur(),dr={assignRowPrototype:(e,t)=>{C(`coreRowsFeature`,e,t,{row_getDisplayIndex:{fn:e=>Zn(e)},row_getAllCellsByColumnId:{fn:e=>sr(e),memoDeps:e=>[e.getAllCells()]},row_getAllCells:{fn:e=>or(e),memoDeps:e=>[e.table.getAllLeafColumns()]},row_getLeafRows:{fn:e=>nr(e),memoDeps:e=>[e.subRows]},row_getParentRow:{fn:e=>ir(e)},row_getParentRows:{fn:e=>ar(e)},row_getUniqueValues:{fn:(e,t)=>er(e,t)},row_getValue:{fn:(e,t)=>$n(e,t)},row_renderValue:{fn:(e,t)=>tr(e,t)}})},constructTableAPIs:e=>{w(`coreRowsFeature`,e,{table_getRowsInDisplayOrder:{fn:()=>Qn(e),memoDeps:()=>[e.getPrePaginatedRowModel().rows,e.options.paginateExpandedRows,e.options.paginateExpandedRows===!1?e.atoms.expanded?.get():void 0]},table_getRowId:{fn:(t,n,r)=>cr(t,e,n,r)},table_getRow:{fn:(t,n)=>lr(e,t,n)},table_getMaxSubRowDepth:{fn:()=>rr(e),memoDeps:()=>[e.getCoreRowModel()]}})}}})))()}function pr(e,t,n=(e,t)=>e===t){let r=t===void 0?e.options.state:t;e._reactivity.batch(()=>{if(r)for(let t in r){let i=e.baseAtoms[t];if(!i)continue;let a=r[t],o=a===void 0?e.initialState[t]:a;n(e._reactivity.untrack(()=>i.get()),o)||i.set(()=>o)}})}function mr(e,t,n=(e,t)=>e===t){e._reactivity.batch(()=>{pr(e,t,n),e._reactivity.commit?.()})}function hr(e){let t=N(e.initialState);e._reactivity.batch(()=>{let n=Object.keys(t);for(let r=0;r<n.length;r++){let i=n[r];e.baseAtoms[i].set(t[i])}});let n=Object.values(e._features);for(let t=0;t<n.length;t++)n[t].resetTableInstanceData?.(e)}function gr(e,t){let{features:n,atoms:r,initialState:i}=e.options;if(!e.options.mergeOptions)return{...e.options,...t,features:n,atoms:r,initialState:i};let a=e.options.mergeOptions(e.options,t),o={...Object.getOwnPropertyDescriptors(a)};return Object.defineProperties(Object.create(Object.getPrototypeOf(a)),{...o,features:{value:n,enumerable:!0,configurable:!0,writable:!0},atoms:{value:r,enumerable:!0,configurable:!0,writable:!0},initialState:{value:i,enumerable:!0,configurable:!0,writable:!0}})}function _r(e,t,n){let r=gr(e,A(t,e.options));e.optionsStore?e.optionsStore.set(()=>r):e.options=r,n?.syncExternalState!==!1&&mr(e,r.state??null)}function vr(){return(vr=t((()=>{k()})))()}var yr;function br(){return(br=t((()=>{k(),vr(),yr={constructTableAPIs:e=>{w(`coreTablesFeature`,e,{table_reset:{fn:()=>hr(e)},table_setOptions:{fn:t=>_r(e,t)}})}}})))()}var xr;function Sr(){return(Sr=t((()=>{Vt(),nn(),pn(),Jn(),fr(),br(),xr={coreCellsFeature:Bt,coreColumnsFeature:tn,coreHeadersFeature:fn,coreRowModelsFeature:qn,coreRowsFeature:dr,coreTablesFeature:yr}})))()}function Cr(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=wr(e);if(n.length!==wr(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function wr(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function Tr(e,t={}){return Object.values(e).forEach(e=>{t=e.getInitialState?.(t)??t}),N(t)}function Er(e){let t=e.features.coreReactivityFeature,{aggregationFns:n,columnMeta:r,coreRowModel:i,expandedRowModel:a,facetedMinMaxValues:o,facetedRowModel:s,facetedUniqueValues:c,filterFns:l,filterMeta:u,filteredRowModel:d,groupedRowModel:f,paginatedRowModel:p,sortFns:m,sortedRowModel:h,tableMeta:ee,...g}=e.features,_={_cellInstanceInitFns:[],_columnInstanceInitFns:[],_features:{...xr,...g},_headerGroupInstanceInitFns:[],_headerInstanceInitFns:[],_reactivity:t,_rowInstanceInitFns:[],_rowModelFns:{aggregationFns:n,filterFns:l,sortFns:m},_rowModels:{},atoms:{},baseAtoms:{}},v=Object.values(_._features),y={...v.reduce((e,t)=>Object.assign(e,t.getDefaultTableOptions?.(_)),{}),...e};if(t.wrapExternalAtoms&&y.atoms)for(let[e,n]of Object.entries(y.atoms)){let r=n,i=t.createWritableAtom(r.get(),{debugName:`externalAtom/${e}`});y.atoms[e]=i;let a=!1,o=r.subscribe(e=>{a||i.set(e)}),s=i.subscribe(e=>{a=!0,r.set(e),a=!1});t.addSubscription(o),t.addSubscription(s)}t.createOptionsStore?(_.optionsStore=t.createWritableAtom(y,{debugName:`table/optionsStore`}),Object.defineProperty(_,"options",{configurable:!0,enumerable:!0,get(){return _.optionsStore.get()},set(e){_.optionsStore.set(()=>e)}})):_.options=y,_.initialState=Tr(_._features,_.options.initialState);let b=Object.keys(_.initialState);for(let e=0;e<b.length;e++){let n=b[e];_.baseAtoms[n]=t.createWritableAtom(_.initialState[n],{debugName:`table/baseAtoms/${n}`}),_.atoms[n]=t.createReadonlyAtom(()=>{let e=_.options,t=e.atoms?.[n],r=t?t.get():_.baseAtoms[n].get();if(t)return r;let i=e.state;if(i&&te(i,n)){let e=i[n];return e===void 0?_.initialState[n]:e}return r},{debugName:`table/atoms/${n}`})}pr(_),_.store=Mt(t.createReadonlyAtom(()=>{let e={};for(let t=0;t<b.length;t++){let n=b[t];e[n]=_.atoms[n].get()}return e},{compare:Cr,debugName:`table/store`}));for(let e=0;e<v.length;e++){let t=v[e];t.initTableInstanceData?.(_),t.initCellInstanceData&&_._cellInstanceInitFns.push(t.initCellInstanceData.bind(t)),t.initColumnInstanceData&&_._columnInstanceInitFns.push(t.initColumnInstanceData.bind(t)),t.initHeaderGroupInstanceData&&_._headerGroupInstanceInitFns.push(t.initHeaderGroupInstanceData.bind(t)),t.initHeaderInstanceData&&_._headerInstanceInitFns.push(t.initHeaderInstanceData.bind(t)),t.initRowInstanceData&&_._rowInstanceInitFns.push(t.initRowInstanceData.bind(t)),t.constructTableAPIs?.(_)}return _}function Dr(){return(Dr=t((()=>{k(),vr(),Sr()})))()}function Or(e,t){let[{table:n,rootSource:r}]=(0,q.useState)(()=>{let t=Er({...e,features:{coreReactivityFeature:Ft(),...e.features}});return t.Subscribe=(e=>At({...e,source:e.source??t.store})),t.FlexRender=it,{table:t,rootSource:Pt(t.store,Ct)}}),i=n;_r(i,t=>({...t,...e}),{syncExternalState:!1});let a=i.options.state,o=r.get(),s=Et(r,t,{compare:Ct});return kr(()=>{r.markCommitted(o),mr(i,a??null,Ct)}),(0,q.useMemo)(()=>({...n,options:e,state:s}),[n,e,s])}var q,kr;function Ar(){return(Ar=t((()=>{ot(),jt(),It(),Dr(),q=r(),kt(),vr(),kr=typeof window>`u`?q.useEffect:q.useLayoutEffect})))()}var jr,Mr;function Nr(){return(Nr=t((()=>{jr=`YJUVjb`,Mr={resizeHandle:jr}})))()}function Pr(e,t){let n=e.closest(`th`)?.getBoundingClientRect().width;return v(typeof n==`number`&&Number.isFinite(n)?n:t,t)}function Fr({columnId:e,className:t,minWidth:n,keyboardStep:r=Lr,ariaLabel:i=`Изменить ширину колонки`,getStartWidth:a,onResize:o,onResizeEnd:s,onReset:c}){let l=n??60,u=(0,J.useRef)(0),d=(0,J.useRef)(0),f=(0,J.useRef)(0),p=(0,J.useRef)(!1),m=(0,J.useRef)(!1),h=t=>{let n=a?.(e,t)??Pr(t,l);return v(n,l)},ee=e=>{(e.button===0||e.pointerType!==`mouse`)&&(p.current=!0,m.current=!1,u.current=e.clientX,d.current=h(e.currentTarget),f.current=d.current,e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation())},g=t=>{if(!p.current)return;let n=v(d.current+t.clientX-u.current,l);f.current=n,m.current=!0,o(e,n),t.preventDefault(),t.stopPropagation()},_=t=>{if(p.current){p.current=!1,m.current&&s?.(e,f.current);try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}t.preventDefault(),t.stopPropagation()}};return(0,Ir.jsx)(`div`,{role:`separator`,"aria-label":i,"aria-orientation":`vertical`,tabIndex:0,onPointerDown:ee,onPointerMove:g,onPointerUp:_,onPointerCancel:_,onKeyDown:t=>{if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`Home`)return;if(t.preventDefault(),t.stopPropagation(),t.key===`Home`){c?.(e);return}let n=t.key===`ArrowRight`?1:-1,i=h(t.currentTarget),a=v(i+n*r,l);o(e,a),s?.(e,a)},onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),c?.(e)},className:P(Mr.resizeHandle,t)})}var J,Ir,Lr;function Rr(){return(Rr=t((()=>{J=r(),M(),F(),Nr(),Ir=h(),Lr=8,Fr.__docgenInfo={description:``,methods:[],displayName:`TableColumnResizeHandle`,props:{columnId:{required:!0,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minWidth:{required:!1,tsType:{name:`number`},description:``},keyboardStep:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`8`,computed:!1}},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Изменить ширину колонки"`,computed:!1}},getStartWidth:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, element: HTMLElement) => number`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`HTMLElement`},name:`element`}],return:{name:`number`}}},description:``},onResize:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}}},description:``},onResizeEnd:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}}},description:``},onReset:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(columnId: string) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`}],return:{name:`void`}}},description:``}}}})))()}function zr(e,t){return typeof e==`function`?e(t):e}function Br({columnId:e,children:t,dragDisabled:n=!1,draggingClassName:r,resizeHandle:i,className:a,style:o,...s}){let{attributes:c,listeners:l,setActivatorNodeRef:u,setNodeRef:d,transform:f,isDragging:p,rect:m}=Me({id:e,disabled:n}),h=p?m.current?.width:void 0,ee={transform:Ie.Translate.toString(f),zIndex:p?`calc(var(--z-header) + 1)`:void 0,...h?{width:h,minWidth:h}:{},...o},g={attributes:c,listeners:l,setActivatorElement:u,disabled:n,isDragging:p};return(0,Vr.jsxs)(`th`,{...s,ref:d,className:P(a,p&&r),style:ee,children:[zr(t,g),i?(0,Vr.jsx)(Fr,{...i}):null]})}var Vr;function Hr(){return(Hr=t((()=>{Fe(),Ne(),F(),Rr(),Vr=h(),Br.__docgenInfo={description:``,methods:[],displayName:`TableHeaderInteractionCell`,props:{columnId:{required:!0,tsType:{name:`UniqueIdentifier`},description:``},children:{required:!0,tsType:{name:`union`,raw:`ReactNode | ((dragState: TableHeaderCellDragState) => ReactNode)`,elements:[{name:`ReactNode`},{name:`unknown`}]},description:``},dragDisabled:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},draggingClassName:{required:!1,tsType:{name:`string`},description:``},resizeHandle:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
2
- columnId: string;
3
- className?: string;
4
- minWidth?: number;
5
- keyboardStep?: number;
6
- ariaLabel?: string;
7
- getStartWidth?: (columnId: string, element: HTMLElement) => number;
8
- onResize: (columnId: string, width: number) => void;
9
- onResizeEnd?: (columnId: string, width: number) => void;
10
- onReset?: (columnId: string) => void;
11
- }`,signature:{properties:[{key:`columnId`,value:{name:`string`,required:!0}},{key:`className`,value:{name:`string`,required:!1}},{key:`minWidth`,value:{name:`number`,required:!1}},{key:`keyboardStep`,value:{name:`number`,required:!1}},{key:`ariaLabel`,value:{name:`string`,required:!1}},{key:`getStartWidth`,value:{name:`signature`,type:`function`,raw:`(columnId: string, element: HTMLElement) => number`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`HTMLElement`},name:`element`}],return:{name:`number`}},required:!1}},{key:`onResize`,value:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}},required:!0}},{key:`onResizeEnd`,value:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}},required:!1}},{key:`onReset`,value:{name:`signature`,type:`function`,raw:`(columnId: string) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`}],return:{name:`void`}},required:!1}}]}},description:``}}}})))()}function Ur(e){return{start:Array.from(new Set((e?.start??[]).filter(e=>typeof e==`string`&&e.trim().length>0))),end:[]}}function Wr(e,t){let n=t?.[e.id];if(typeof n==`number`&&Number.isFinite(n)&&n>0)return`${Math.floor(n)}px`;let r=se(e.columnDef)?.width??4;return typeof r==`number`&&(r=Math.max(r,4)),ve(r)}function Gr(e,t){let n=e.getAllLeafColumns().filter(e=>e.getIsVisible()),r=new Map(n.map(e=>[e.id,e])),i=n.map(e=>e.id),a=Se(t.columnPinning.start,i),o=Se(t.columnPinning.end,i),s=new Set([...a,...o]),c=[];for(let e of n)s.has(e.id)||c.push(e.id);let l=he({ids:c,order:t.columnOrder});return be([...a,...l,...o],r)}function Kr(e,t){let n=Gr(e,t),r=new Map(n.map(e=>[e.id,e]));return D({ids:n.map(e=>e.id),getWidth:e=>{let n=r.get(e);return n?Wr(n,t.columnSizing):`0px`}}).flatMap(e=>{let t=r.get(e.id);return t?[{...e,column:t}]:[]})}function qr(e,t){let n={},r=[];for(let i of Gr(e,t))i.getIsPinned()===`start`&&(n[i.id]=Jr(r),r.push(Wr(i,t.columnSizing)));return n}function Jr(e){return e.length===0?`0px`:e.length===1?e[0]:`calc(${e.join(` + `)})`}function Yr(){return(Yr=t((()=>{xe(),M()})))()}function Xr(e){if(typeof e.id==`string`&&e.id.trim())return e.id;if(`accessorKey`in e&&typeof e.accessorKey==`string`&&e.accessorKey.trim())return e.accessorKey}function Zr(e){return`cell`in e&&e.cell!=null}function Qr(e,t){for(let n of e){if(`columns`in n&&Array.isArray(n.columns)&&n.columns.length>0){Qr(n.columns,t);continue}t(n)}}function $r(e){let t={},n=new Set;return Qr(e,e=>{let r=Xr(e);if(!r)return;Zr(e)&&n.add(r);let i=oe(e);i&&(t[r]={...i,id:i.id??r,role:i.role??`dimension`,type:i.type??`string`})}),{runtimeByColumnId:we(t),customCellColumnIds:n}}function ei(e){return!e.customCellColumnIds.has(e.columnId)&&!!e.runtimeByColumnId[e.columnId]}function ti(){return(ti=t((()=>{Ce(),M()})))()}function ni(e){return e!=null&&e!==``}function ri(e,t){return e.map(e=>({row:e,boundaryKey:t(e),cellByColumnId:new Map(e.getVisibleCells().map(e=>[e.column.id,e]))}))}function ii({rows:e,columns:t,resolveRowBoundaryKey:n=()=>`__all_rows__`,excludeColumnIds:r}){let i=t.filter(e=>!r?.has(e.id)&&se(e.columnDef)?.mergeDuplicates===!0);if(e.length===0||i.length===0)return new Map;let a=ri(e,n),o=new Map;for(let e of i){let t=-1,n,r,i=i=>{if(t!==-1){if(i-t<=1){t=-1,n=void 0,r=void 0;return}for(let n=t;n<i;n+=1){let r=a[n]?.cellByColumnId.get(e.id)?.id;r&&o.set(r,{hideContent:n>t,mergeWithNext:n<i-1})}t=-1,n=void 0,r=void 0}};for(let o=0;o<a.length;o+=1){let s=a[o],c=s?.cellByColumnId.get(e.id),l=c?.getValue();if(!c||!ni(l)){i(o);continue}if(t===-1){t=o,n=l,r=s?.boundaryKey;continue}(!Object.is(r,s?.boundaryKey)||!Object.is(n,l))&&(i(o),t=o,n=l,r=s?.boundaryKey)}i(a.length)}return o}function ai(){return(ai=t((()=>{M()})))()}function oi({columnOrder:e,defaultColumnOrder:t,onColumnOrderChange:n}){let[r,i]=(0,si.useState)(void 0),a=(0,si.useMemo)(()=>ge(e??r??t),[e,t,r]);return{columnOrder:a,onColumnOrderChange:(0,si.useCallback)(t=>{let r=ge(A(t,a));e===void 0&&i(r),n?.(r)},[e,n,a])}}var si;function ci(){return(ci=t((()=>{si=r(),M(),k()})))()}function li({columnPinning:e,defaultColumnPinning:t,onColumnPinningChange:n}){let[r,i]=(0,ui.useState)(void 0),a=(0,ui.useMemo)(()=>Ur(e??r??t),[e,t,r]);return{columnPinning:a,onColumnPinningChange:(0,ui.useCallback)(t=>{let r={start:Ur(A(t,a)).start};e===void 0&&i(r),n?.(r)},[e,n,a])}}var ui;function di(){return(di=t((()=>{ui=r(),k(),Yr()})))()}function fi({columnSizing:e,defaultColumnSizing:t,columnResizeMinWidth:n,onColumnSizingChange:r}){let[i,a]=(0,pi.useState)(void 0),o=(0,pi.useMemo)(()=>de(e??i??t,n),[n,e,t,i]);return{columnSizing:o,onColumnSizingChange:(0,pi.useCallback)(t=>{let i=de(A(t,o),n);e===void 0&&a(i),r?.(i)},[n,e,r,o])}}var pi;function mi(){return(mi=t((()=>{pi=r(),M(),k()})))()}function hi({columnVisibility:e,defaultColumnVisibility:t,onColumnVisibilityChange:n}){let[r,i]=(0,Y.useState)(void 0),a=(0,Y.useMemo)(()=>e??r??t??{},[e,t,r]);return{columnVisibility:a,onColumnVisibilityChange:(0,Y.useCallback)(t=>{let r=A(t,a);e===void 0&&i(r),n?.(r)},[e,n,a])}}var Y;function gi(){return(gi=t((()=>{Y=r(),k()})))()}var _i;function vi(){return(vi=t((()=>{Ne(),_i=e=>{let{transform:t}=e;return{...t,y:0}}})))()}var yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,X;function zi(){return(zi=t((()=>{yi=`_0rNBMr`,bi=`gp-7Db`,xi=`Ck-sXP`,Si=`-F3gli`,Ci=`V5tPM-`,wi=`_2VJbvj`,Ti=`AD8NkG`,Ei=`qqixKn`,Di=`dVDRNv`,Oi=`klOoMz`,ki=`fJvFJA`,Ai=`_7D8xa9`,ji=`_3j87pS`,Mi=`uwojkJ`,Ni=`lLsmW6`,Pi=`uYvZ5P`,Fi=`QIS3xA`,Ii=`a580w0`,Li=`UOhaMF`,Ri=`DtKAgs`,X={root:yi,headerContextMenuTrigger:bi,table:xi,head:Si,pinnedStartBoundary:Ci,headerRow:wi,headerCell:Ti,headerCellContent:Ei,headerCellDraggable:Di,headerCellDragging:Oi,headerCellPinnedStart:ki,bodyRow:Ai,bodyRowInteractive:ji,bodyCell:Mi,bodyRowSelected:Ni,bodyCellPinnedStart:Pi,bodyCellMergedWithNext:Fi,feedbackCell:Ii,fetchingRow:Li,noData:Ri}})))()}function Bi({header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:i,enableColumnResizing:a,enableColumnReordering:o,columnResizeMinWidth:s,renderHeaderContent:c,onResizeColumn:l,onResetColumnWidth:u}){return(0,Vi.jsx)(Br,{columnId:e.column.id,colSpan:e.colSpan,dragDisabled:!o||i,draggingClassName:X.headerCellDragging,className:P(X.headerCell,t&&X.headerCellPinnedStart,r&&X.pinnedStartBoundary),style:{...t?{insetInlineStart:n}:{}},resizeHandle:a&&!e.isPlaceholder?{columnId:e.column.id,minWidth:s,onResize:l,onReset:u}:void 0,children:({listeners:t,setActivatorElement:n})=>(0,Vi.jsx)(`div`,{ref:o&&!i?n:void 0,className:P(X.headerCellContent,o&&!i&&X.headerCellDraggable),...o&&!i?t??{}:{},children:c(e)})})}var Vi;function Hi(){return(Hi=t((()=>{F(),Hr(),zi(),Vi=h(),Bi.__docgenInfo={description:``,methods:[],displayName:`BaseTableHeaderCell`,props:{header:{required:!0,tsType:{name:`FoundationTableHeader`,elements:[{name:`TData`}],raw:`FoundationTableHeader<TData>`},description:``},isPinnedStart:{required:!0,tsType:{name:`boolean`},description:``},insetInlineStart:{required:!1,tsType:{name:`string`},description:``},isPinnedBoundary:{required:!0,tsType:{name:`boolean`},description:``},isDragDisabled:{required:!0,tsType:{name:`boolean`},description:``},enableColumnResizing:{required:!0,tsType:{name:`boolean`},description:``},enableColumnReordering:{required:!0,tsType:{name:`boolean`},description:``},columnResizeMinWidth:{required:!0,tsType:{name:`union`,raw:`number | undefined`,elements:[{name:`number`},{name:`undefined`}]},description:``},renderHeaderContent:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(header: FoundationTableHeader<TData>) => ReactNode`,signature:{arguments:[{type:{name:`FoundationTableHeader`,elements:[{name:`TData`}],raw:`FoundationTableHeader<TData>`},name:`header`}],return:{name:`ReactNode`}}},description:``},onResizeColumn:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}}},description:``},onResetColumnWidth:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(columnId: string) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`}],return:{name:`void`}}},description:``}}}})))()}function Ui(e,t){let n=e.getLeafHeaders().map(e=>t.get(e.column.id)).filter(e=>typeof e==`number`);return n.length?Math.min(...n):2**53-1}function Wi(e,t){let n=e.getStartHeaderGroups(),r=e.getCenterHeaderGroups(),i=e.getEndHeaderGroups(),a=Math.max(n.length,r.length,i.length);return Array.from({length:a},(e,a)=>[...n[a]?.headers??[],...r[a]?.headers??[],...i[a]?.headers??[]].filter(e=>e.isPlaceholder?!0:e.getLeafHeaders().some(e=>t.has(e.column.id))).sort((e,n)=>Ui(e,t)-Ui(n,t)))}function Gi(e,t,n){let r=e.getLeafHeaders().map(e=>e.column.id);return r.length>0&&r.every(e=>e in t)?{isPinnedStart:!0,insetInlineStart:t[r[0]]??`0px`,isPinnedBoundary:!!(n&&r.includes(n))}:{isPinnedStart:!1,isPinnedBoundary:!1}}function Ki(e,t){let n=e.getAllLeafColumns().map(e=>e.id);return he({ids:n,order:t.columnOrder})}function qi({table:e,columnState:t,title:n,isLoading:r,isFetching:i,className:a,minHeight:o=`15em`,tableClassName:s,selectionMode:c=`none`,scrollableRef:l,interactiveElementSelector:u,onActivateRow:d,isRowInteractive:f,getRowClassName:h,getCellClassName:ee,getCellStyle:g,getCellLayout:_,renderCellContent:v,renderHeaderContextMenu:y,enableColumnResizing:b=!1,enableColumnReordering:x=!1,columnResizeMinWidth:S,afterTableContent:te}){let C=Kr(e,t),ne=(0,Z.useMemo)(()=>C.map(e=>e.column),[C]),w=(0,Z.useMemo)(()=>C.map(e=>e.id),[C]),T=(0,Z.useMemo)(()=>new Map(w.map((e,t)=>[e,t])),[w]),re=(0,Z.useMemo)(()=>new Set(w),[w]),ie=Pe({activationDistance:8}),ae=Wi(e,T),E=qr(e,t),D=ne.filter(e=>e.getIsPinned()===`start`).at(-1)?.id,O=(0,Z.useMemo)(()=>t.columnPinning.start??[],[t.columnPinning.start]),k=(0,Z.useMemo)(()=>new Set(O),[O]),A=e.getRowModel(),j=!!n,M=A.rows.length>0,oe=(0,Z.useCallback)(e=>[...e].sort((e,t)=>(T.get(e.column.id)??2**53-1)-(T.get(t.column.id)??2**53-1)),[T]),ce=(0,Z.useCallback)((t,n)=>{e.setColumnSizing(e=>me(e,t,n,S))},[S,e]),le=(0,Z.useCallback)(t=>{e.setColumnSizing(e=>ue(e,t))},[e]),de=(0,Z.useCallback)(n=>{let r=p({event:n,items:w});if(!r)return;let i=Ki(e,t),a=fe({order:i,headerIds:w,pinnedIds:O,activeId:String(r.activeId),overId:String(r.overId)});a&&e.setColumnOrder(a)},[t,O,e,w]),pe=e=>{if(e.isPlaceholder)return null;let t=H(e.column.columnDef.header,e.getContext()),n=y?.(e);return n?(0,Q.jsxs)(Ve,{children:[(0,Q.jsx)(Ve.Trigger,{children:(0,Q.jsx)(`div`,{className:X.headerContextMenuTrigger,tabIndex:0,children:t})}),(0,Q.jsx)(Ve.Content,{children:n})]}):t},he=(e,t)=>{!(f?.(t)??!!d)||!d||_e(e.target,u)||d(t)},ge=(e,t)=>{!(f?.(t)??!!d)||!d||_e(e.target,u)||ye(e,()=>d(t))};return(0,Q.jsxs)(je,{templateRows:j?`auto 1fr`:`1fr`,className:P(`overflowHidden w100 h100`,X.root,a),style:{minHeight:o},children:[j&&(0,Q.jsx)(`h3`,{className:`marginBottomXs`,children:n}),(0,Q.jsxs)(`div`,{className:`surface0 overflowHidden relative w100 h100`,children:[(0,Q.jsx)(ze,{ref:l,className:`w100 h100`,children:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`table`,{className:P(X.table,s),children:[(0,Q.jsx)(`colgroup`,{children:C.map(e=>(0,Q.jsx)(`col`,{style:e.width?{width:e.width}:void 0},e.id))}),(0,Q.jsx)(`thead`,{className:P(`stickyTop`,X.head),children:x?(0,Q.jsx)(m.Root,{sensors:ie,modifiers:[_i],onDragEnd:de,children:(0,Q.jsx)(m.Container,{containerId:`base-table-header`,items:w,layout:`horizontal`,children:ae.map((e,t)=>(0,Q.jsx)(`tr`,{className:X.headerRow,children:e.map(e=>{let{isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r}=Gi(e,E,D),i=e.isPlaceholder||!re.has(e.column.id)||k.has(e.column.id);return(0,Q.jsx)(Bi,{header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:i,enableColumnResizing:b,enableColumnReordering:x,columnResizeMinWidth:S,renderHeaderContent:pe,onResizeColumn:ce,onResetColumnWidth:le},e.id)})},`header-group-${t}`))})}):ae.map((e,t)=>(0,Q.jsx)(`tr`,{className:X.headerRow,children:e.map(e=>{let{isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r}=Gi(e,E,D);return(0,Q.jsx)(Bi,{header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:!0,enableColumnResizing:b,enableColumnReordering:x,columnResizeMinWidth:S,renderHeaderContent:pe,onResizeColumn:ce,onResetColumnWidth:le},e.id)})},`header-group-${t}`))}),(0,Q.jsxs)(`tbody`,{children:[A.rows.map(e=>{let t=f?.(e)??!!d;return(0,Q.jsx)(`tr`,{className:P(X.bodyRow,t&&X.bodyRowInteractive,e.getIsSelected()&&X.bodyRowSelected,h?.(e)),"aria-selected":c===`none`?void 0:e.getIsSelected(),tabIndex:t?0:void 0,onClick:t=>he(t,e),onKeyDown:t=>ge(t,e),children:oe([...e.getStartVisibleCells(),...e.getCenterVisibleCells(),...e.getEndVisibleCells()]).map(t=>{let n=se(t.column.columnDef),r=H(t.column.columnDef.cell,t.getContext()),i={row:e,cell:t,defaultContent:r,columnMeta:n},a=_?.(i),o=t.column.getIsPinned()===`start`,s=t.column.id===D,c={...n?.align?{textAlign:n.align}:{},...o?{insetInlineStart:E[t.column.id]??`0px`}:{},...g?.(i)??{}};return(0,Q.jsx)(`td`,{className:P(X.bodyCell,o&&X.bodyCellPinnedStart,s&&X.pinnedStartBoundary,a?.mergeWithNext&&X.bodyCellMergedWithNext,ee?.(i)),style:c,children:a?.hideContent?null:v?v(i):r},t.id)})},e.id)}),i&&M&&(0,Q.jsx)(`tr`,{className:X.fetchingRow,children:(0,Q.jsx)(`td`,{colSpan:Math.max(ne.length,1),className:X.feedbackCell,children:(0,Q.jsx)(Oe,{})})})]})]}),te]})}),(0,Q.jsxs)(`div`,{className:`absolute inset0 border`,style:{pointerEvents:`none`,zIndex:20},children:[!r&&!i&&!M&&(0,Q.jsx)(ke,{className:X.noData}),r&&!M&&(0,Q.jsx)(Oe,{className:`h100 w100`})]})]})]})}var Z,Q;function Ji(){return(Ji=t((()=>{Z=r(),vi(),Le(),M(),F(),ot(),Be(),Ae(),Ee(),De(),Re(),f(),Yr(),zi(),Hi(),Q=h(),qi.__docgenInfo={description:"Базовая таблица с общим UI-каркасом для Table и TreeTable.\n\n@NOTE: не для использования напрямую, это база для `Table` и `TreeTable`",methods:[],displayName:`BaseTable`,props:{table:{required:!0,tsType:{name:`FoundationTableInstance`,elements:[{name:`TData`}],raw:`FoundationTableInstance<TData>`},description:``},columnState:{required:!0,tsType:{name:`Pick`,elements:[{name:`FoundationTableState`},{name:`union`,raw:`"columnOrder" | "columnPinning" | "columnSizing" | "columnVisibility"`,elements:[{name:`literal`,value:`"columnOrder"`},{name:`literal`,value:`"columnPinning"`},{name:`literal`,value:`"columnSizing"`},{name:`literal`,value:`"columnVisibility"`}]}],raw:`Pick<FoundationTableState, "columnOrder" | "columnPinning" | "columnSizing" | "columnVisibility">`},description:``},title:{required:!1,tsType:{name:`string`},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},isFetching:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`union`,raw:"`${number}em` | `${number}%`",elements:[{name:`literal`,value:"`${number}em`"},{name:`literal`,value:"`${number}%`"}]},description:``,defaultValue:{value:`"15em"`,computed:!1}},tableClassName:{required:!1,tsType:{name:`string`},description:``},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:``,defaultValue:{value:`"none"`,computed:!1}},scrollableRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLDivElement`}],raw:`Ref<HTMLDivElement>`},description:``},interactiveElementSelector:{required:!1,tsType:{name:`string`},description:``},onActivateRow:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: FoundationTableRow<TData>) => void`,signature:{arguments:[{type:{name:`FoundationTableRow`,elements:[{name:`TData`}],raw:`FoundationTableRow<TData>`},name:`row`}],return:{name:`void`}}},description:``},isRowInteractive:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: FoundationTableRow<TData>) => boolean`,signature:{arguments:[{type:{name:`FoundationTableRow`,elements:[{name:`TData`}],raw:`FoundationTableRow<TData>`},name:`row`}],return:{name:`boolean`}}},description:``},getRowClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: FoundationTableRow<TData>) => string | undefined`,signature:{arguments:[{type:{name:`FoundationTableRow`,elements:[{name:`TData`}],raw:`FoundationTableRow<TData>`},name:`row`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},getCellClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => string | undefined`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},getCellStyle:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => CSSProperties | undefined`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`union`,raw:`CSSProperties | undefined`,elements:[{name:`CSSProperties`},{name:`undefined`}]}}},description:``},getCellLayout:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => BaseTableCellLayout | undefined`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`union`,raw:`BaseTableCellLayout | undefined`,elements:[{name:`BaseTableCellLayout`},{name:`undefined`}]}}},description:``},renderCellContent:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => ReactNode`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`ReactNode`}}},description:``},renderHeaderContextMenu:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(header: FoundationTableHeader<TData>) => ReactNode`,signature:{arguments:[{type:{name:`FoundationTableHeader`,elements:[{name:`TData`}],raw:`FoundationTableHeader<TData>`},name:`header`}],return:{name:`ReactNode`}}},description:`Общий слот контекстного меню заголовка.
12
-
13
- BaseTable намеренно не знает про сортировку, группировку или доменные
14
- действия. Он только сохраняет единый доступный способ открыть меню для
15
- \`Table\` и \`TreeTable\`, а содержимое передает потребитель.`},enableColumnResizing:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},enableColumnReordering:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},columnResizeMinWidth:{required:!1,tsType:{name:`number`},description:``},afterTableContent:{required:!1,tsType:{name:`ReactNode`},description:``}}}})))()}var Yi,Xi,Zi,Qi;function $i(){return($i=t((()=>{Yi=`jPPyP7`,Xi=`Oa7e5P`,Zi=`KhQtgF`,Qi={formattedCellValue:Yi,formattedCell:Xi,formattedCellInner:Zi}})))()}function ea({displayValue:e,align:t=`left`}){let n=(0,ta.useRef)(null),r=e.showValue,i=e.showIcon?e.icon:void 0,a=r&&e.value!=null?String(e.value):``,o=Te(e.state),s=t===`right`?`flex-end`:t===`center`?`center`:`flex-start`,c=t===`center`?`center`:t===`right`?`right`:`left`;return(0,ta.useEffect)(()=>{let t=n.current;if(!t)return;let r=()=>{if(!e.overflowTooltip||!a){t.removeAttribute(`title`);return}if(t.scrollWidth>t.clientWidth+1){t.setAttribute(`title`,a);return}t.removeAttribute(`title`)};if(r(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(r);return i.observe(t),()=>{i.disconnect()}},[e.overflowTooltip,a]),(0,$.jsx)(`div`,{className:P(Qi.formattedCell,o),children:(0,$.jsxs)(`div`,{className:Qi.formattedCellInner,style:{justifyContent:s},children:[e.iconPosition===`left`?(0,$.jsx)(R,{state:i}):null,r?(0,$.jsx)(`span`,{ref:n,className:P(`textOverflow`,Qi.formattedCellValue),style:{textAlign:c},children:a}):null,e.iconPosition===`right`?(0,$.jsx)(R,{state:i}):null]})})}var ta,$;function na(){return(na=t((()=>{ta=r(),Ce(),F(),et(),$i(),$=h(),ea.__docgenInfo={description:"Общий renderer форматированной ячейки для `Table` и будущего `TreeTable`.\n\nКомпонент отвечает только за UI-отрисовку уже вычисленного display-result:\nruntime и бизнес-логика вычисления значения в него не входят.",methods:[],displayName:`FormattedTableCell`,props:{displayValue:{required:!0,tsType:{name:`FormattersPipelineDisplayValue`},description:`Нормализованный display-result из formatting-runtime.`},align:{required:!1,tsType:{name:`TableColumnAlign`},description:`Табличное выравнивание содержимого.`,defaultValue:{value:`"left"`,computed:!1}}}}})))()}export{ei as _,gi as a,Ar as b,fi as c,ci as d,oi as f,ti as g,$r as h,Ji as i,di as l,ai as m,na as n,hi as o,ii as p,qi as r,mi as s,ea as t,li as u,Gr as v,Or as x,Yr as y};
@@ -1 +0,0 @@
1
- .acj1dM{--_image-viewer-top-row-height:calc(var(--image-viewer-icon-size,1.75rem) + var(--image-viewer-toolbar-padding,var(--space-md,.625rem)) + var(--image-viewer-toolbar-padding,var(--space-md,.625rem)) + 1rem);--yarl__portal_zindex:var(--image-viewer-z-index,var(--z-image-viewer,300));--yarl__color_backdrop:var(--image-viewer-backdrop,#000000eb);--yarl__container_background_color:var(--image-viewer-backdrop,#000000eb);--yarl__color_button:var(--image-viewer-control-color,#ffffffd1);--yarl__color_button_active:var(--image-viewer-control-active-color,var(--white,#fff));--yarl__color_button_disabled:var(--image-viewer-control-disabled-color,#ffffff61);--yarl__button_background_color:var(--image-viewer-control-background,transparent);--yarl__button_border:var(--image-viewer-control-border,0);--yarl__button_filter:var(--image-viewer-control-filter,drop-shadow(0 .125rem .25rem #000000b3));--yarl__icon_size:var(--image-viewer-icon-size,1.75rem);--yarl__toolbar_padding:var(--image-viewer-toolbar-padding,var(--space-md,.625rem));--yarl__slide_icon_loading_color:var(--image-viewer-loading-color,var(--image-viewer-control-color,#ffffffd1));--yarl__slide_icon_error_color:var(--image-viewer-error-color,var(--status-error-fill,#d32f2f));--yarl__slide_captions_container_background:var(--image-viewer-caption-background,#0000009e);--yarl__slide_title_color:var(--image-viewer-caption-color,var(--white,#fff));--yarl__slide_description_color:var(--image-viewer-caption-color,var(--white,#fff));--yarl__counter_color:var(--image-viewer-counter-color,var(--image-viewer-control-color,#ffffffd1));--yarl__thumbnails_container_background_color:var(--image-viewer-backdrop,#000000eb);--yarl__thumbnails_thumbnail_background:var(--image-viewer-thumbnail-background,#ffffff14);--yarl__thumbnails_thumbnail_border_color:var(--image-viewer-thumbnail-border-color,var(--image-viewer-control-color,#ffffffd1));--yarl__thumbnails_thumbnail_active_border_color:var(--image-viewer-thumbnail-active-border-color,var(--image-viewer-control-active-color,var(--white,#fff)));font-family:var(--font-family-base,sans-serif)}.acj1dM .yarl__button{border-radius:var(--image-viewer-control-radius,var(--radius-sm,.3125rem));transition:color var(--transition-fast,.2s) ease, background-color var(--transition-fast,.2s) ease}.acj1dM .yarl__button:focus-visible,.acj1dM .yarl__thumbnails_thumbnail:focus-visible{outline:var(--image-viewer-focus,var(--focus,.125rem solid currentColor));outline-offset:var(--image-viewer-focus-offset,var(--focus-offset,.125rem))}.acj1dM .yarl__thumbnails_thumbnail:focus-visible{box-shadow:none}.acj1dM .yarl__slide_image{border-radius:var(--image-viewer-image-radius,var(--radius-sm,.3125rem))}.acj1dM .yarl__slide_title_container{box-sizing:border-box;height:var(--_image-viewer-top-row-height);overflow:hidden}.jt3y3m{width:var(--image-viewer-icon-size,1.75rem);height:var(--image-viewer-icon-size,1.75rem);stroke-width:var(--image-viewer-icon-stroke-width,2)}._2SAWIU{animation:1s linear infinite _1GqI3h}@keyframes _1GqI3h{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){._2SAWIU{animation:none}}
@@ -1 +0,0 @@
1
- .STGQ3g{z-index:var(--z-notify);gap:var(--space-sm);padding:var(--space-lg);width:min(28em, 100dvw - var(--space-lg) * 2);pointer-events:none;display:grid;position:fixed;bottom:0;left:0}.RaiISE{--notify-accent:var(--border-1);--notify-accent-surface:var(--surface-1);--notify-accent-text:var(--content-accent);pointer-events:auto;width:100%;padding:var(--space-md);border-left:.3125em solid var(--notify-accent);border-radius:var(--radius-md);background:linear-gradient(37deg, var(--notify-accent-surface), var(--surface-0));color:var(--content-0);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.cM81wO{--notify-accent:var(--status-info-border);--notify-accent-surface:var(--status-info-soft);--notify-accent-text:var(--status-info-text)}.nH2cuZ{--notify-accent:var(--status-success-border);--notify-accent-surface:var(--status-success-soft);--notify-accent-text:var(--status-success-text)}.A2glD7{--notify-accent:var(--status-warning-border);--notify-accent-surface:var(--status-warning-soft);--notify-accent-text:var(--status-warning-text)}.yWjijS{--notify-accent:var(--status-error-border);--notify-accent-surface:var(--status-error-soft);--notify-accent-text:var(--status-error-text)}._1HO2ne,.OyRJpj,.vrCrow{min-width:0}.OyRJpj{flex:1;min-width:0}.A0X-ma{width:var(--control-height);height:var(--control-height);background-color:var(--notify-accent-surface);color:var(--notify-accent-text);border:var(--border-width) solid color-mix(in srgb, var(--notify-accent) 22%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.A0X-ma svg{width:1.125em;height:1.125em}.AkHvPV{margin-bottom:var(--space-xs);color:var(--notify-accent-text);font-size:var(--font-size-xs);font-variation-settings:"wght" 600;letter-spacing:.04em;text-transform:uppercase;font-weight:600}._4YDLB5{color:var(--notify-accent-text);font-variation-settings:"wght" 600;font-weight:600}.CK3Bqv{margin-top:var(--space-xs);color:var(--content-0);white-space:pre-wrap;word-break:break-word}.nLmQut{gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}@media (max-width:47.9988em){.STGQ3g{padding:var(--space-md);width:min(100dvw, 100dvw - var(--space-md) * 2)}}
@@ -1 +0,0 @@
1
- ._81qOBF,.Fj-KxT{border-radius:var(--radius-sm);grid-template-rows:minmax(0,1fr);display:grid;overflow:hidden}._81qOBF{--anchor-gap:var(--space-xs);--anchor-padding:var(--space-xs);--anchor-offset:0;min-width:0;z-index:var(--z-dropdown);box-shadow:var(--shadow-md)}.Fj-KxT{--input-width:min(100vw, var(--base-width,15em));width:100%;min-width:var(--input-width);min-height:0;max-height:75vh;padding:var(--space-sm);background-color:var(--surface-0);border:var(--border)}.Fj-KxT:empty{visibility:hidden}.Fj-KxT[data-has-toolbar=true]{grid-template-rows:auto minmax(0,1fr)}.tCn0CX{gap:var(--space-xs);padding:var(--space-xs);display:grid}.pP2yXa{min-height:0}.bupTWA{padding:var(--space-xs) var(--space-sm);color:var(--content-2)}.GkeyGF{color:var(--status-error-text)}._8F667e{position:relative}._8F667e[data-has-overlay=true] input{--ui-color:transparent;--ui-color-hover:transparent;--ui-color-active:transparent;color:#0000;caret-color:#0000;-webkit-text-fill-color:transparent}.RMwzIX{--trigger-count:2;--input-end-adornment-width:calc(var(--control-height) * 2)}.wvU2oL{inset:0 calc(var(--control-height) * var(--trigger-count,1) + var(--space-sm)) 0 var(--space-sm);pointer-events:none;justify-content:flex-end;align-items:center;min-width:0;display:flex;position:absolute}.efKX6F{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:47.9988em){.Fj-KxT{--input-width:calc(100dvw - var(--space-xl))}}.OGMk6I{padding-block:var(--space-xs);border-radius:var(--radius-sm)}.OGMk6I:hover{background-color:var(--surface-2)}
@@ -1 +0,0 @@
1
- .fA7zne{gap:var(--space-sm);flex-direction:column;display:flex}.fA7zne[data-disabled] .gg-atO{color:var(--content-2);background-color:var(--surface-2);border-color:var(--overlay-backdrop)}.fA7zne[data-disabled] .bTLJZl{opacity:var(--disabled-opacity)}.fA7zne[data-disabled] .vDAmRy{border-color:var(--overlay-backdrop);background-color:var(--surface-2);color:var(--content-2);box-shadow:none}.fA7zne[data-disabled] .PpaxP2,.fA7zne[data-disabled] ._9K78Fi{color:var(--overlay-backdrop)}.TMbaqW{gap:0}._77qn1L{padding-inline:calc((var(--control-height) - var(--space-xs)) / 2);position:relative}.cxJQqh{height:var(--control-height);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.-X13t0{top:calc(50% - (var(--control-height) - var(--space-xs)) / 2);width:0;height:0;position:absolute;left:0}.gg-atO,.bTLJZl{height:var(--space-sm);border-radius:999px;position:absolute;top:50%;transform:translateY(-50%)}.gg-atO{background-color:var(--surface-2);border:var(--border);left:0;right:0}.bTLJZl{background-color:var(--status-brand-fill)}.vDAmRy{top:calc((var(--control-height) - var(--space-xs)) / 2);width:calc(var(--control-height) - var(--space-md));height:calc(var(--control-height) - var(--space-md));border:var(--border);background-color:var(--surface-0);color:var(--content-0);box-shadow:var(--shadow-sm);cursor:grab;z-index:2;transition:transform var(--transition-fast) ease, border-color var(--transition-fast) ease, box-shadow var(--transition-fast) ease, background-color var(--transition-fast) ease;border-radius:50%;position:absolute;left:0;transform:translate(-50%,-50%)}.vDAmRy:active,.vDAmRy:hover{border-color:var(--border-1)}.vDAmRy:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.vDAmRy[data-dragging]{cursor:grabbing;box-shadow:var(--shadow-md);transform:translate(-50%,-50%)scale(1.04)}.iNrV0y{min-height:calc(var(--font-size-sm) + var(--space-md));margin-inline:calc((var(--control-height) - var(--space-xs)) / 2);position:relative}.PpaxP2,._9K78Fi{color:var(--content-2);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex;position:absolute}.PpaxP2:focus-visible,._9K78Fi:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.PpaxP2[data-active],._9K78Fi[data-active]{color:var(--content-0)}.PpaxP2:disabled,._9K78Fi:disabled{cursor:default}.PpaxP2{gap:var(--space-xs);white-space:nowrap;flex-direction:column;top:0;transform:translate(-50%)}._9K78Fi{top:calc(var(--control-height) - var(--space-xs));width:var(--control-height);height:var(--control-height);z-index:1;justify-content:center;left:0;transform:translate(-50%,-50%)}.vzEDBe{width:var(--space-sm);height:var(--space-sm);background-color:currentColor;border-radius:50%}._0OWJh0{font-size:var(--font-size-sm)}.Mk4xi2{min-width:min(24em, 100vw - var(--space-xl))}.SL0IDQ{gap:var(--space-xs);cursor:text}.mdezg5{width:7ch;min-width:0;font-family:var(--font-family-mono);color:inherit;text-align:center;caret-color:var(--content-0);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;margin:0;padding:0}.mdezg5::selection{background-color:var(--focus-ring);color:var(--surface-0)}.mdezg5:disabled{opacity:.25}.a4R18g{-webkit-user-select:none;user-select:none;color:var(--content-2);flex-shrink:0}.a4R18g[data-disabled]{opacity:.25}
@@ -1 +0,0 @@
1
- .bJvCcD{--status-indicator-fill:var(--status-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(--status-neutral-fill)}.bRw83O{--status-indicator-fill:var(--status-info-fill)}.VQh7sh{--status-indicator-fill:var(--status-success-fill)}.zdESHk{--status-indicator-fill:var(--status-warning-fill)}.-KLln9{--status-indicator-fill:var(--status-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}}