@ryuzaki13/react-foundation-ui 1.11.1 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/README.md +36 -0
  2. package/dist/advanced-search/index.js +2 -2
  3. package/dist/barcode-scanner/BarcodeScannerDialog.d.ts +46 -0
  4. package/dist/barcode-scanner/BarcodeScannerDialog.d.ts.map +1 -0
  5. package/dist/barcode-scanner/index.d.ts +3 -0
  6. package/dist/barcode-scanner/index.d.ts.map +1 -0
  7. package/dist/barcode-scanner/index.js +135 -0
  8. package/dist/barcode-scanner/index.js.map +1 -0
  9. package/dist/base-table/index.js +1 -1
  10. package/dist/chunks/{base-table-DswaYoH-.js → base-table-B9m-r0Ve.js} +2 -2
  11. package/dist/chunks/{base-table-DswaYoH-.js.map → base-table-B9m-r0Ve.js.map} +1 -1
  12. package/dist/chunks/{context-menu-HC7Vteb5.js → context-menu-Dj6MXgv6.js} +2 -2
  13. package/dist/chunks/{context-menu-HC7Vteb5.js.map → context-menu-Dj6MXgv6.js.map} +1 -1
  14. package/dist/chunks/{multi-select-D1JjZJfr.js → multi-select-V7SLAduU.js} +3 -3
  15. package/dist/chunks/{multi-select-D1JjZJfr.js.map → multi-select-V7SLAduU.js.map} +1 -1
  16. package/dist/chunks/{picker-DO9HFqJV.js → picker-DZ4-1BvK.js} +2 -2
  17. package/dist/chunks/picker-DZ4-1BvK.js.map +1 -0
  18. package/dist/chunks/{select-3jk0ljU1.js → select-B7cWlJxL.js} +3 -3
  19. package/dist/chunks/select-B7cWlJxL.js.map +1 -0
  20. package/dist/chunks/{table-aozLLSJk.js → table-Dvh4o6Ly.js} +2 -2
  21. package/dist/chunks/{table-aozLLSJk.js.map → table-Dvh4o6Ly.js.map} +1 -1
  22. package/dist/context-menu/index.js +1 -1
  23. package/dist/layout-picker/index.js +1 -1
  24. package/dist/listbox/index.js +1 -1
  25. package/dist/multi-select/index.js +1 -1
  26. package/dist/picker/index.js +1 -1
  27. package/dist/preset-select/index.js +1 -1
  28. package/dist/select/index.js +1 -1
  29. package/dist/simple-table/index.js +1 -1
  30. package/dist/slider/index.js +1 -1
  31. package/dist/state-select/index.js +1 -1
  32. package/dist/styles.css +1 -1
  33. package/dist/table/index.js +1 -1
  34. package/dist/table-sorting/index.js +1 -1
  35. package/dist/tree-select/index.js +1 -1
  36. package/dist/tree-table/index.js +1 -1
  37. package/package.json +10 -1
  38. package/storybook-static/assets/{Badge-B0pMNo6u.js → Badge-xeXe52JJ.js} +1 -1
  39. package/storybook-static/assets/{Badge.stories-DmJySgC9.js → Badge.stories-CmVjv-uT.js} +1 -1
  40. package/storybook-static/assets/{BadgeList-CPMgBZNy.js → BadgeList-BcoPWNyN.js} +1 -1
  41. package/storybook-static/assets/BarcodeScannerDialog-DQGhFXAm.css +1 -0
  42. package/storybook-static/assets/BarcodeScannerDialog.stories-yAA6tA1d.js +72 -0
  43. package/storybook-static/assets/{Button-DdP87Kjo.js → Button-CFOJHJwd.js} +1 -1
  44. package/storybook-static/assets/{Button-BQCqsOSh.js → Button-DJER9ynI.js} +1 -1
  45. package/storybook-static/assets/{Button.stories-B95Gfrv6.js → Button.stories-U_2CIpOj.js} +1 -1
  46. package/storybook-static/assets/{CalendarView-Dkx103Eo.js → CalendarView-B4DHU14y.js} +1 -1
  47. package/storybook-static/assets/{CheckBox-6jhHJHNx.js → CheckBox-DLjlV0re.js} +1 -1
  48. package/storybook-static/assets/{CheckBox-CEiyvt0g.js → CheckBox-DcOrStyV.js} +1 -1
  49. package/storybook-static/assets/{CheckBox.stories-C-ry0F3S.js → CheckBox.stories-HK9oMf2U.js} +1 -1
  50. package/storybook-static/assets/{Color-6AOWCN3U-C7ZBfvPD.js → Color-6AOWCN3U-TVtDY8qi.js} +1 -1
  51. package/storybook-static/assets/{ContextMenu-BXr3AZy_.js → ContextMenu-C6ZM2Mo4.js} +1 -1
  52. package/storybook-static/assets/{ContextMenu-B7zzWFcl.js → ContextMenu-ZU-3k31S.js} +1 -1
  53. package/storybook-static/assets/{ContextMenu.stories-BixTxzOj.js → ContextMenu.stories-JO0hLeHH.js} +1 -1
  54. package/storybook-static/assets/{CustomOptionButton-B4TQxEG7.js → CustomOptionButton-Bh__qmrf.js} +1 -1
  55. package/storybook-static/assets/{DateInput-CiNA_ASr.js → DateInput-CaqZCM7S.js} +1 -1
  56. package/storybook-static/assets/{DateInput-Dd18xSEj.js → DateInput-Cyy5MkIX.js} +1 -1
  57. package/storybook-static/assets/{DateInput.stories-BEsG3vsL.js → DateInput.stories-TxCUy1Nf.js} +1 -1
  58. package/storybook-static/assets/{DateRangePresetSelect-CPYFDKex.js → DateRangePresetSelect-9yDtN_-K.js} +1 -1
  59. package/storybook-static/assets/{DateRangePresetSelect-Ccz7NfDd.js → DateRangePresetSelect-DZve4le1.js} +1 -1
  60. package/storybook-static/assets/{DateRangePresetSelect.stories-opQhou6g.js → DateRangePresetSelect.stories-2xcwHu0v.js} +1 -1
  61. package/storybook-static/assets/{Detail-iNp-Y0oX.js → Detail-Bv8TlvPR.js} +1 -1
  62. package/storybook-static/assets/{Detail.stories-wMP_UVa0.js → Detail.stories-RHFHl-QD.js} +1 -1
  63. package/storybook-static/assets/{Dialog-C61I39GX.js → Dialog-B6CmbIp6.js} +1 -1
  64. package/storybook-static/assets/{Dialog-DvJy6JL7.js → Dialog-JG-Js1_P.js} +1 -1
  65. package/storybook-static/assets/{Dialog.stories-BA49irYS.js → Dialog.stories-CMG0bq1P.js} +1 -1
  66. package/storybook-static/assets/{Disclosure-CuKVlkDs.js → Disclosure-CKD2uWXW.js} +1 -1
  67. package/storybook-static/assets/{Disclosure.stories-DGEYHdsF.js → Disclosure.stories-CCoZix5k.js} +1 -1
  68. package/storybook-static/assets/{DisclosureGroup-DhU1dNC8.js → DisclosureGroup-DxIXFd4p.js} +1 -1
  69. package/storybook-static/assets/{DocsRenderer-JROSPFPF-BkpUvEnq.js → DocsRenderer-JROSPFPF-Xf4KJ_Qh.js} +1 -1
  70. package/storybook-static/assets/{DropZone-7ceW1dn3.js → DropZone-BuU0GrtU.js} +1 -1
  71. package/storybook-static/assets/{DropZone-C78CmTpa.js → DropZone-C14QKp48.js} +1 -1
  72. package/storybook-static/assets/{DropZone.stories-ufjhh7h-.js → DropZone.stories-nLb_ObZg.js} +1 -1
  73. package/storybook-static/assets/{DropdownMenu-n6JW93BD.js → DropdownMenu-Db8c-Zn1.js} +1 -1
  74. package/storybook-static/assets/{ExpandableActionPanel-Hr0krU6W.js → ExpandableActionPanel-CsS6nONV.js} +1 -1
  75. package/storybook-static/assets/{ExpandableActionPanel.stories-DhvuWFNv.js → ExpandableActionPanel.stories-D2uLOAZ8.js} +1 -1
  76. package/storybook-static/assets/{Flex-B94m_qyY.js → Flex-n7EPU0Zg.js} +1 -1
  77. package/storybook-static/assets/{Flex.stories-B8AaUI7D.js → Flex.stories-BLqFw3hw.js} +1 -1
  78. package/storybook-static/assets/{FloatingPopover-DJiX84PM.js → FloatingPopover-Xth-H2JR.js} +1 -1
  79. package/storybook-static/assets/FormattedTableCell-cvi554Ef.js +15 -0
  80. package/storybook-static/assets/{Grid-kT9nG3ti.js → Grid-Ca7aufxq.js} +1 -1
  81. package/storybook-static/assets/{Grid.stories-CIpqBZEV.js → Grid.stories-JCGqm-rs.js} +1 -1
  82. package/storybook-static/assets/{ImageCropper.stories-lLmE-m8y.js → ImageCropper.stories-BFnA9lQ8.js} +1 -1
  83. package/storybook-static/assets/{ImageRenderer-CumAPDzJ.js → ImageRenderer-Dou6U8Cd.js} +1 -1
  84. package/storybook-static/assets/{ImageRenderer.stories-DRBkO7a5.js → ImageRenderer.stories-C74Qukdv.js} +1 -1
  85. package/storybook-static/assets/{ImageView.stories-CJPbRo4F.js → ImageView.stories-DBbugUss.js} +1 -1
  86. package/storybook-static/assets/{ImageViewer.stories-Dga7I4WU.js → ImageViewer.stories-BmzkBXJR.js} +2 -2
  87. package/storybook-static/assets/{ImageViewerRuntime-B2Mqo_WZ.js → ImageViewerRuntime-voWTu9L2.js} +1 -1
  88. package/storybook-static/assets/{Input-C1R3JI6C.js → Input-CD-NDeTl.js} +1 -1
  89. package/storybook-static/assets/{Input-aN_k-nwG.js → Input-DX4_SiCQ.js} +1 -1
  90. package/storybook-static/assets/{Input.stories-CamuqrIq.js → Input.stories-B4aVxE7P.js} +1 -1
  91. package/storybook-static/assets/{InputDateTime-DLGntd6J.js → InputDateTime-GVzmQgws.js} +1 -1
  92. package/storybook-static/assets/{InputDateTime.stories-DKS2OEea.js → InputDateTime.stories-Dd6aHwhL.js} +1 -1
  93. package/storybook-static/assets/{InputFile-VpaVOpAd.js → InputFile-C7IlWWuo.js} +1 -1
  94. package/storybook-static/assets/{InputFile-Co7tvxPX.js → InputFile-De0O-P06.js} +1 -1
  95. package/storybook-static/assets/{InputFile.stories-DXdlBxEU.js → InputFile.stories-B5DPvKKg.js} +1 -1
  96. package/storybook-static/assets/{InputFiles-DvkMwKO7.js → InputFiles-jpJ8OsvW.js} +1 -1
  97. package/storybook-static/assets/{InputFiles-BTCuD668.js → InputFiles-k1ui98yk.js} +1 -1
  98. package/storybook-static/assets/{InputFiles.stories-DrTZMej-.js → InputFiles.stories-yhEjTkhb.js} +1 -1
  99. package/storybook-static/assets/{InputFilesList-CGjnqnzc.js → InputFilesList-DQ8xIsNB.js} +1 -1
  100. package/storybook-static/assets/{InputImage-DiEO91jk.js → InputImage-BcfFZoeK.js} +1 -1
  101. package/storybook-static/assets/{InputImage-Ipb-FcJa.js → InputImage-ChqqaulB.js} +1 -1
  102. package/storybook-static/assets/{InputImage.stories-ttixjbus.js → InputImage.stories-DbH8bUI5.js} +1 -1
  103. package/storybook-static/assets/{InteractiveComponents-B4gMe903.js → InteractiveComponents-AOIUFszB.js} +1 -1
  104. package/storybook-static/assets/{InteractiveComponents.stories-Bao1bjuz.js → InteractiveComponents.stories-BWKhw0r9.js} +1 -1
  105. package/storybook-static/assets/LayoutPicker-Bw46oQ_0.js +376 -0
  106. package/storybook-static/assets/{LayoutPicker-CuHY0iUU.js → LayoutPicker-DbsRuLFI.js} +1 -1
  107. package/storybook-static/assets/{LayoutPicker.stories-DYrG4wtT.js → LayoutPicker.stories-C86co23-.js} +1 -1
  108. package/storybook-static/assets/{Listbox-BxHmY5ET.js → Listbox-CSMsOd31.js} +1 -1
  109. package/storybook-static/assets/{Listbox-BL0ioHxs.js → Listbox-DYRwIMlK.js} +1 -1
  110. package/storybook-static/assets/{Listbox.stories-DJyYFh1U.js → Listbox.stories-7NFvXRCS.js} +1 -1
  111. package/storybook-static/assets/{Modal-Q7o1iqet.js → Modal-DNeEDLQQ.js} +1 -1
  112. package/storybook-static/assets/Modal-THLBkb1a.js +1 -0
  113. package/storybook-static/assets/{Modal.stories-DwIrHxPr.js → Modal.stories-BfoU_GML.js} +1 -1
  114. package/storybook-static/assets/ModalManagerProvider-DZ0QK10e.js +1 -0
  115. package/storybook-static/assets/{MultiSelect-HPQ3mNkL.js → MultiSelect-BT6apkyP.js} +1 -1
  116. package/storybook-static/assets/{MultiSelect-CJesPVwA.js → MultiSelect-DFIEQ66c.js} +1 -1
  117. package/storybook-static/assets/{MultiSelect.stories-Bb2GHyNF.js → MultiSelect.stories-D0BHrQym.js} +1 -1
  118. package/storybook-static/assets/{NoData-CGqnBZTW.js → NoData-CVxb7dGU.js} +1 -1
  119. package/storybook-static/assets/{NotificationsHost-CwzaWa75.js → NotificationsHost-CaLF-GIF.js} +1 -1
  120. package/storybook-static/assets/{NotificationsHost.stories-CcPBctyV.js → NotificationsHost.stories-Cnf45TOG.js} +1 -1
  121. package/storybook-static/assets/{ODataMultiSelect-C_M7IJ-E.js → ODataMultiSelect-CCofPFd1.js} +1 -1
  122. package/storybook-static/assets/{ODataMultiSelect.stories-CEWZoIYN.js → ODataMultiSelect.stories-CjduYosa.js} +1 -1
  123. package/storybook-static/assets/{ODataSelect-CeQ91U4i.js → ODataSelect-D7CqYyzD.js} +1 -1
  124. package/storybook-static/assets/{ODataSelect.stories-OpbcMtd0.js → ODataSelect.stories-CXV_NdRT.js} +1 -1
  125. package/storybook-static/assets/{ODataTreeMultiSelect-By-iwUlb.js → ODataTreeMultiSelect-BftPFs2n.js} +1 -1
  126. package/storybook-static/assets/{ODataTreeMultiSelect.stories-DjediQp3.js → ODataTreeMultiSelect.stories-or0wQ9AP.js} +1 -1
  127. package/storybook-static/assets/{ODataTreeSelect-C4fBiCfR.js → ODataTreeSelect-D5xOD_30.js} +1 -1
  128. package/storybook-static/assets/{ODataTreeSelect.stories-BRVIyV0K.js → ODataTreeSelect.stories-D2x68_IW.js} +1 -1
  129. package/storybook-static/assets/{OneStepScroller-BeOhzxOb.js → OneStepScroller-C4yOwu7w.js} +1 -1
  130. package/storybook-static/assets/{Option-BALI2Izw.js → Option-I8HVUw9B.js} +2 -2
  131. package/storybook-static/assets/{OptionButton-Cu_hyVYx.js → OptionButton-xVwyJ3j2.js} +1 -1
  132. package/storybook-static/assets/{PeriodSelect-C0tZpOZ2.js → PeriodSelect-Dx9nlZ5b.js} +1 -1
  133. package/storybook-static/assets/{PeriodSelect-D7ZyNQQj.js → PeriodSelect-DyB-sGeM.js} +1 -1
  134. package/storybook-static/assets/{PeriodSelect.stories-CaKpWoBI.js → PeriodSelect.stories-D8dRUZqc.js} +1 -1
  135. package/storybook-static/assets/{PickerTriggerActions-CouIkvlG.js → PickerTriggerActions-ZarFFzzM.js} +1 -1
  136. package/storybook-static/assets/{Popover-BNl3GC6I.js → Popover-C5hwgiuL.js} +1 -1
  137. package/storybook-static/assets/{Popover-VojsocpB.js → Popover-CwS4OEAV.js} +1 -1
  138. package/storybook-static/assets/{Popover.stories-voeYCJAG.js → Popover.stories-DhqDwrcv.js} +1 -1
  139. package/storybook-static/assets/{PresetRangeDateInput-BAsiw0m9.js → PresetRangeDateInput-Df2H0YZU.js} +1 -1
  140. package/storybook-static/assets/{PresetRangeDateInput-DTFvAuEG.js → PresetRangeDateInput-yr-ltDie.js} +1 -1
  141. package/storybook-static/assets/{PresetRangeDateInput.stories-BpytrxVn.js → PresetRangeDateInput.stories-DWOjQ4Zf.js} +1 -1
  142. package/storybook-static/assets/{PresetSelect-DqsBg04y.js → PresetSelect-ByDcnzCX.js} +1 -1
  143. package/storybook-static/assets/{README-KslesuPp.js → README-2IcraWHE.js} +1 -1
  144. package/storybook-static/assets/{README-6evrAby4.js → README-2eDgLZuV.js} +1 -1
  145. package/storybook-static/assets/{README-CP8A3pUx.js → README-41H-AUuO.js} +1 -1
  146. package/storybook-static/assets/{README-Dt7VgalJ.js → README-AkT4HI-u.js} +1 -1
  147. package/storybook-static/assets/{README-D6Vv7boA.js → README-B1NAcRKT.js} +1 -1
  148. package/storybook-static/assets/{README-qYd4IxwX.js → README-B2HzDG5u.js} +1 -1
  149. package/storybook-static/assets/{README-CNGBJoj9.js → README-B7NYCoih.js} +1 -1
  150. package/storybook-static/assets/{README-BvWWZXkg.js → README-BFrWKslN.js} +1 -1
  151. package/storybook-static/assets/{README-CRPSrjud.js → README-BInzuU6X.js} +1 -1
  152. package/storybook-static/assets/{README-DLMl2PNQ.js → README-Bb_w1Nym.js} +1 -1
  153. package/storybook-static/assets/{README-CFx77m4x.js → README-BefUR1FM.js} +1 -1
  154. package/storybook-static/assets/{README-V9-IwPwN.js → README-Bh-x23CQ.js} +1 -1
  155. package/storybook-static/assets/{README-CSnzw2D-.js → README-BlIhHhIF.js} +1 -1
  156. package/storybook-static/assets/{README-DTdq97bt.js → README-BrGdMSth.js} +1 -1
  157. package/storybook-static/assets/{README-D0tDmHet.js → README-C0eV13Sr.js} +1 -1
  158. package/storybook-static/assets/{README-D2ulcVfy.js → README-C5ffwEKG.js} +1 -1
  159. package/storybook-static/assets/{README-C9NwfMMB.js → README-C6VoMZPn.js} +1 -1
  160. package/storybook-static/assets/{README-C-Pfk84O.js → README-C6mrJ7kb.js} +1 -1
  161. package/storybook-static/assets/{README-CGU1FPkG.js → README-CIYrqth9.js} +1 -1
  162. package/storybook-static/assets/{README-D01CDD_h.js → README-CMydTTS6.js} +1 -1
  163. package/storybook-static/assets/{README-BVJkWNdT.js → README-CUWKggHu.js} +1 -1
  164. package/storybook-static/assets/{README-CshGb2DJ.js → README-CaoO8Ut5.js} +1 -1
  165. package/storybook-static/assets/{README-BVZEvH2e.js → README-Cd1d0wgT.js} +1 -1
  166. package/storybook-static/assets/{README-D5JHlt8a.js → README-ChJJgEZt.js} +1 -1
  167. package/storybook-static/assets/{README-pEhV0D6Q.js → README-Ci0Kh1hT.js} +1 -1
  168. package/storybook-static/assets/{README-y2sdEYQd.js → README-CjRe0c1V.js} +1 -1
  169. package/storybook-static/assets/{README-JfTIbTxa.js → README-Cjf73J3z.js} +1 -1
  170. package/storybook-static/assets/{README-DlSdPLoj.js → README-CvT8FpW1.js} +1 -1
  171. package/storybook-static/assets/{README-BIY0CXzT.js → README-CvUdVa7L.js} +1 -1
  172. package/storybook-static/assets/{README-B4L4Qms9.js → README-CzfreI7x.js} +1 -1
  173. package/storybook-static/assets/{README-ymNGc5K0.js → README-DDFlsdF6.js} +1 -1
  174. package/storybook-static/assets/{README-B2JDHSDg.js → README-DF-mwTId.js} +1 -1
  175. package/storybook-static/assets/{README-BvwvQC0S.js → README-DFH0KR45.js} +1 -1
  176. package/storybook-static/assets/{README-Bwn32UEx.js → README-DG9Aq5O7.js} +1 -1
  177. package/storybook-static/assets/{README-BRJb1GLe.js → README-DJVLbFKd.js} +1 -1
  178. package/storybook-static/assets/{README-CBcr-aZ-.js → README-DJjcvyeX.js} +1 -1
  179. package/storybook-static/assets/{README-SmqCd027.js → README-DZRPFRwC.js} +1 -1
  180. package/storybook-static/assets/{README-822aEKM9.js → README-DdurFiZJ.js} +1 -1
  181. package/storybook-static/assets/{README-CZrtJjG5.js → README-DhqJsnNJ.js} +1 -1
  182. package/storybook-static/assets/{README-CxvHN56L.js → README-LWv6IIBV.js} +1 -1
  183. package/storybook-static/assets/{README-BV9yMaZH.js → README-XDT1NSK3.js} +1 -1
  184. package/storybook-static/assets/{README-CNwWDpPA.js → README-X_V5F9VK.js} +1 -1
  185. package/storybook-static/assets/{README-C78L4rcb.js → README-YmEv1fWN.js} +1 -1
  186. package/storybook-static/assets/{README-DPWMkaF9.js → README-idblV6mv.js} +1 -1
  187. package/storybook-static/assets/{README-D95b9s0-.js → README-jNLhEStI.js} +1 -1
  188. package/storybook-static/assets/{README-BuA3_CmY.js → README-lB3klDGb.js} +1 -1
  189. package/storybook-static/assets/{README-BH_ofrva.js → README-mhW5Aj9o.js} +1 -1
  190. package/storybook-static/assets/{README-RqmpGW_K.js → README-oXktEVVG.js} +1 -1
  191. package/storybook-static/assets/{README-DpbDg5ce.js → README-pJ0Dv8pm.js} +1 -1
  192. package/storybook-static/assets/{README-D1eYEpJo.js → README-pP_dKNmF.js} +1 -1
  193. package/storybook-static/assets/{README-DaTftOiF.js → README-uFeDyLKo.js} +1 -1
  194. package/storybook-static/assets/{README-eGS9MpcY.js → README-zxMZWAG-.js} +1 -1
  195. package/storybook-static/assets/{RadioButton-CnpzlpUJ.js → RadioButton-3OVIrkg4.js} +1 -1
  196. package/storybook-static/assets/{RadioButton-Ba9QfrAy.js → RadioButton-DiapWNGf.js} +1 -1
  197. package/storybook-static/assets/{RadioButton.stories-BnN4pgGe.js → RadioButton.stories-Df1y-QjJ.js} +1 -1
  198. package/storybook-static/assets/{RadioGroup-BykHY9bQ.js → RadioGroup-D3BysS3K.js} +1 -1
  199. package/storybook-static/assets/{RadioGroup-Snp96mXk.js → RadioGroup-DoOe4_wG.js} +1 -1
  200. package/storybook-static/assets/{RadioGroup.stories-ElfRHSzd.js → RadioGroup.stories-0aCFeFN2.js} +1 -1
  201. package/storybook-static/assets/{Scrollable-CZQNMT37.js → Scrollable-02LDVVqT.js} +1 -1
  202. package/storybook-static/assets/{Select-DB19StkW.js → Select-BpLN5zpQ.js} +1 -1
  203. package/storybook-static/assets/Select-D3Wk8fwj.js +12 -0
  204. package/storybook-static/assets/{Select.stories-B-x2u4Ka.js → Select.stories-B-RfQZ5q.js} +1 -1
  205. package/storybook-static/assets/{SerializableSelect-RdiASBU7.js → SerializableSelect-CZf4QPZi.js} +1 -1
  206. package/storybook-static/assets/{SerializableSelect.stories-D3oi1vVq.js → SerializableSelect.stories-DBiDumoN.js} +1 -1
  207. package/storybook-static/assets/{SingleDateTimeInput-lU6cGbfx.js → SingleDateTimeInput-LLvsDwQT.js} +1 -1
  208. package/storybook-static/assets/{SingleDateTimeInput-ekp5dih9.js → SingleDateTimeInput-UMS-nqrM.js} +1 -1
  209. package/storybook-static/assets/{SingleDateTimeInput.stories-CL-wJh62.js → SingleDateTimeInput.stories-CBARmmwN.js} +1 -1
  210. package/storybook-static/assets/{Slider-BaGjYkeA.js → Slider-D82fAdWL.js} +1 -1
  211. package/storybook-static/assets/{Slider-TYTl3yDT.js → Slider-Dd9L-QGJ.js} +1 -1
  212. package/storybook-static/assets/{Slider.stories-B1Q15yer.js → Slider.stories-DF8nIKZp.js} +1 -1
  213. package/storybook-static/assets/{SliderInput-DQCecLsI.js → SliderInput-CgmboZ1q.js} +1 -1
  214. package/storybook-static/assets/{SliderInput-D7HC0Qy7.js → SliderInput-D7hnLXHS.js} +1 -1
  215. package/storybook-static/assets/{SliderInput.stories-Dks-x9HE.js → SliderInput.stories-BzAIEc5i.js} +1 -1
  216. package/storybook-static/assets/{Sortable-BNy1ZMbQ.js → Sortable-B3X-lOlN.js} +1 -1
  217. package/storybook-static/assets/{Sortable.stories-Cb6IiB1t.js → Sortable.stories-CngQWqnx.js} +1 -1
  218. package/storybook-static/assets/{Splitter-DIgl2n1Z.js → Splitter-SgFpplUJ.js} +1 -1
  219. package/storybook-static/assets/{Splitter.stories-BIjaaFzl.js → Splitter.stories-Fn131gq4.js} +1 -1
  220. package/storybook-static/assets/{StateSelect-B6gJ8hJa.js → StateSelect-BjtS9CeU.js} +1 -1
  221. package/storybook-static/assets/{StateSelect-zOqdyaQn.js → StateSelect-uGGrERzF.js} +1 -1
  222. package/storybook-static/assets/{StateSelect.stories-BO-IgbhM.js → StateSelect.stories-BeBboHki.js} +1 -1
  223. package/storybook-static/assets/{StringToggle.stories-D4f7Fbw8.js → StringToggle.stories-C8L5uM8M.js} +1 -1
  224. package/storybook-static/assets/{Switch-CJrR8E7p.js → Switch-BVv0ctfZ.js} +1 -1
  225. package/storybook-static/assets/{Switch-D5xdNKsi.js → Switch-Dy9ANQK-.js} +1 -1
  226. package/storybook-static/assets/{Switch.stories-9rHvE9GC.js → Switch.stories-DQQj-bF6.js} +1 -1
  227. package/storybook-static/assets/{Table-BndDbNw8.js → Table-DPzutyXT.js} +1 -1
  228. package/storybook-static/assets/{Table.stories-CJCfJUjh.js → Table.stories-BCVWtmqh.js} +2 -2
  229. package/storybook-static/assets/{Tabs-CP10ZNq4.js → Tabs-CrrOHegg.js} +1 -1
  230. package/storybook-static/assets/{Tabs.stories-C9yRAUoL.js → Tabs.stories-YlPJcHz6.js} +2 -2
  231. package/storybook-static/assets/{TabsBox-CF6lsJX9.js → TabsBox-C-qdFgsq.js} +1 -1
  232. package/storybook-static/assets/{TagInput-CNuIR1Js.js → TagInput-ClXASgV9.js} +1 -1
  233. package/storybook-static/assets/{TagInput.stories-EHAVYqjD.js → TagInput.stories-Dq6pf1E5.js} +1 -1
  234. package/storybook-static/assets/{Text-Dk57_ZbR.js → Text-ZVTVRrGw.js} +1 -1
  235. package/storybook-static/assets/{Textarea-C62-_iti.js → Textarea-CU4Td5J9.js} +1 -1
  236. package/storybook-static/assets/{Textarea-BE9dNCqI.js → Textarea-z6NWx_Bh.js} +1 -1
  237. package/storybook-static/assets/{Textarea.stories-DKvABJTj.js → Textarea.stories-CubRAISW.js} +1 -1
  238. package/storybook-static/assets/{TimePanel-x3TlepfZ.js → TimePanel-BFAQJ1bI.js} +1 -1
  239. package/storybook-static/assets/{TimePanel.stories-DaZB0D5G.js → TimePanel.stories-CUhGDlm7.js} +1 -1
  240. package/storybook-static/assets/{Toggle-BC4e-JyH.js → Toggle-DVOO4tBr.js} +1 -1
  241. package/storybook-static/assets/{Toggle-FZ3jr9eC.js → Toggle-DtSDY2EH.js} +1 -1
  242. package/storybook-static/assets/{Toggle.stories-bBbcFQPg.js → Toggle.stories-CovKjNNa.js} +1 -1
  243. package/storybook-static/assets/{TreeMultiSelect-BsA8SRFS.js → TreeMultiSelect-CTy2vKDl.js} +1 -1
  244. package/storybook-static/assets/{TreeMultiSelect-BY0kKT3J.js → TreeMultiSelect-C_-6fD0U.js} +1 -1
  245. package/storybook-static/assets/{TreeMultiSelect.stories-CuYZx8Ye.js → TreeMultiSelect.stories-BlO667QL.js} +1 -1
  246. package/storybook-static/assets/TreePickerBase-C-i24HIU.js +76 -0
  247. package/storybook-static/assets/{TreeSelect-DFQ3bXsn.js → TreeSelect-DF6r0bgV.js} +1 -1
  248. package/storybook-static/assets/{TreeSelect-CurHAVQd.js → TreeSelect-De7cNaat.js} +1 -1
  249. package/storybook-static/assets/{TreeSelect.stories-CWIRI6gz.js → TreeSelect.stories-BxwiUwJ2.js} +1 -1
  250. package/storybook-static/assets/{TreeTable-cuDoXkMK.js → TreeTable-nptjywjg.js} +1 -1
  251. package/storybook-static/assets/TreeTable.stories-DsYX5mJ-.js +138 -0
  252. package/storybook-static/assets/{blocks-Bc4j9MF9.js → blocks-Cwytla0s.js} +3 -3
  253. package/storybook-static/assets/{check-BgL33jfp.js → check-Dj2DWtl2.js} +1 -1
  254. package/storybook-static/assets/{chevron-down-R3Jdqzrn.js → chevron-down-m0P0EdBN.js} +1 -1
  255. package/storybook-static/assets/{chevron-left-mLWJvyEZ.js → chevron-left-DW4SDuDX.js} +1 -1
  256. package/storybook-static/assets/{chevron-right-CPZF-d1L.js → chevron-right-e_i1Rck4.js} +1 -1
  257. package/storybook-static/assets/{chunk-W22LQPXL-C62lx28p.js → chunk-W22LQPXL-C2LnR3e-.js} +1 -1
  258. package/storybook-static/assets/{circle-alert-F3LNsip3.js → circle-alert-BNDiZKnw.js} +1 -1
  259. package/storybook-static/assets/{circle-check-B-PCEcP6.js → circle-check-B6srYcn_.js} +1 -1
  260. package/storybook-static/assets/{components-EKvM9m9t.js → components-tHsatYT-.js} +3 -3
  261. package/storybook-static/assets/{contextMenu-DXU_cSyO.js → contextMenu-CpPvJBva.js} +1 -1
  262. package/storybook-static/assets/{download-_gpfOcUw.js → download-KWzg2zqy.js} +1 -1
  263. package/storybook-static/assets/{floating-ui.react-DWG5_l50.js → floating-ui.react-CjiPL5a6.js} +1 -1
  264. package/storybook-static/assets/{foundationApi-Bf1RvCy6.js → foundationApi-CLxcCnvf.js} +1 -1
  265. package/storybook-static/assets/{foundationLib-BqFATCRV.js → foundationLib-DgxJv4Jl.js} +1 -1
  266. package/storybook-static/assets/{hooks-CVQS96HT.js → hooks-CVpzpZQk.js} +1 -1
  267. package/storybook-static/assets/{iframe-DB62bexO.js → iframe-DhaBiZWQ.js} +4 -4
  268. package/storybook-static/assets/iframe-DhmTKnLw.js +1 -0
  269. package/storybook-static/assets/{info-_jHhDMxQ.js → info-C4afqn1I.js} +1 -1
  270. package/storybook-static/assets/{odata-CSE2o56k.js → odata-BOF0ce_Y.js} +1 -1
  271. package/storybook-static/assets/{odataStoryFixtures-CnD5g3U7.js → odataStoryFixtures-DA_Hfm0X.js} +1 -1
  272. package/storybook-static/assets/react-CrorOkzN.js +9 -0
  273. package/storybook-static/assets/{refresh-cw-gwn6yl4E.js → refresh-cw-Bxr1O2kj.js} +1 -1
  274. package/storybook-static/assets/{settings-2-CI-uItnb.js → settings-2-DnEl3XDa.js} +1 -1
  275. package/storybook-static/assets/{sortable-D9YLnSq2.js → sortable-CHijVtYk.js} +1 -1
  276. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-D1Qwwr3j.js → syntaxhighlighter-QEQV7K2Y-rSGLtIgQ.js} +1 -1
  277. package/storybook-static/assets/{trash-2-C8HzUkes.js → trash-2-DtRryQRr.js} +1 -1
  278. package/storybook-static/assets/{triangle-alert-CiqmLtau.js → triangle-alert-YJECENS1.js} +1 -1
  279. package/storybook-static/assets/{useODataSelectBase-CIQ0s0Kh.js → useODataSelectBase-BXlViAjV.js} +1 -1
  280. package/storybook-static/assets/{useODataTreeData-DrVyNvfl.js → useODataTreeData-CNceXy5R.js} +1 -1
  281. package/storybook-static/assets/usePickerQuery-_QGEmwCx.js +1 -0
  282. package/storybook-static/assets/usePickerTriggerController-CHg5GzEW.js +6 -0
  283. package/storybook-static/assets/{x-fspKtNh2.js → x-DxGUdYeK.js} +1 -1
  284. package/storybook-static/assets/zxing_reader-BxB2YfIY.wasm +0 -0
  285. package/storybook-static/iframe.html +2 -2
  286. package/storybook-static/index.json +1 -1
  287. package/storybook-static/project.json +1 -1
  288. package/dist/chunks/picker-DO9HFqJV.js.map +0 -1
  289. package/dist/chunks/select-3jk0ljU1.js.map +0 -1
  290. package/storybook-static/assets/FormattedTableCell-_E06deOh.js +0 -15
  291. package/storybook-static/assets/LayoutPicker-CbOMOuPf.js +0 -376
  292. package/storybook-static/assets/ModalManagerProvider-41HvR5kw.js +0 -1
  293. package/storybook-static/assets/Select-7gK0WOKA.js +0 -12
  294. package/storybook-static/assets/TreePickerBase-Cy2h0kPW.js +0 -76
  295. package/storybook-static/assets/TreeTable.stories-C2QEYgml.js +0 -138
  296. package/storybook-static/assets/iframe-C-PXkEVa.js +0 -1
  297. package/storybook-static/assets/react-CKPG354p.js +0 -9
  298. package/storybook-static/assets/usePickerQuery-DgtD9ozg.js +0 -1
  299. package/storybook-static/assets/usePickerTriggerController-CeQZVvq6.js +0 -6
  300. /package/storybook-static/assets/{ModalManagerProvider-CTRpBlaO.css → Modal-CTRpBlaO.css} +0 -0
@@ -1 +1 @@
1
- {"generatedAt":1788716260072,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"tanstack-react","packageName":"@tanstack/react-router","version":"1.170.32"},"knownPackages":{"testPackages":{"@chromatic-com/storybook":"5.3.0","@storybook/addon-vitest":"10.5.10","@testing-library/dom":"10.4.1","@testing-library/react":"16.3.3","@testing-library/user-event":"^14.6.1","@vitest/browser":"4.1.11","playwright":"1.62.1","vitest":"4.1.11"},"stateManagementPackages":{"zustand":"5.0.0"},"dataFetchingPackages":{"@tanstack/react-query":"5.101.4"},"routerPackages":{"@tanstack/react-router":"1.170.23"}},"hasRouterPackage":false,"packageManager":{"type":"npm","version":"11.7.0","agent":"npm","nodeLinker":"node_modules"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/react-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/react","portableStoriesFileCount":1,"applicationFileCount":9,"storybookVersion":"10.5.10","storybookVersionSpecifier":"^10.5.5","language":"typescript","storybookPackages":{"@storybook/react-vite":{"version":"10.5.10"},"storybook":{}},"addons":{"@chromatic-com/storybook":{"version":"5.3.0"},"@storybook/addon-docs":{"version":"10.5.10"},"@storybook/addon-a11y":{"version":"10.5.10"},"@storybook/addon-vitest":{"version":"10.5.10"}},"packageJsonType":"module"}
1
+ {"generatedAt":1788809626301,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"tanstack-react","packageName":"@tanstack/react-router","version":"1.170.32"},"knownPackages":{"testPackages":{"@chromatic-com/storybook":"5.3.0","@storybook/addon-vitest":"10.5.10","@testing-library/dom":"10.4.1","@testing-library/react":"16.3.3","@testing-library/user-event":"^14.6.1","@vitest/browser":"4.1.11","playwright":"1.62.1","vitest":"4.1.11"},"stateManagementPackages":{"zustand":"5.0.0"},"dataFetchingPackages":{"@tanstack/react-query":"5.101.4"},"routerPackages":{"@tanstack/react-router":"1.170.23"}},"hasRouterPackage":false,"packageManager":{"type":"npm","version":"11.7.0","agent":"npm","nodeLinker":"node_modules"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/react-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/react","portableStoriesFileCount":1,"applicationFileCount":9,"storybookVersion":"10.5.10","storybookVersionSpecifier":"^10.5.5","language":"typescript","storybookPackages":{"@storybook/react-vite":{"version":"10.5.10"},"storybook":{}},"addons":{"@chromatic-com/storybook":{"version":"5.3.0"},"@storybook/addon-docs":{"version":"10.5.10"},"@storybook/addon-a11y":{"version":"10.5.10"},"@storybook/addon-vitest":{"version":"10.5.10"}},"packageJsonType":"module"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"picker-DO9HFqJV.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\" : \"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":"select-3jk0ljU1.js","names":[],"sources":["../../src/select/lib/getOptionSearchText.ts","../../src/select/model/useODataSelect.ts","../../src/select/lib/createSelectOptionSections.ts","../../src/select/Select.tsx","../../src/select/SelectOptionContent.tsx","../../src/select/ODataSelect.tsx","../../src/select/ODataDependentSegmentSelect.tsx","../../src/select/SerializableSelect.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\n\nimport { extractPickerTextContent } from \"../../picker\";\nimport { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport function getOptionSearchText<T extends InputType>({\n\toption,\n\tgetOptionLabel,\n\tgetOptionCode,\n\tgetOptionGroup\n}: {\n\toption: T;\n\tgetOptionLabel: (option: T) => ReactNode;\n\tgetOptionCode?: (option: T) => ReactNode;\n\tgetOptionGroup?: (option: T) => SelectOptionGroup | undefined;\n}) {\n\treturn [\n\t\textractPickerTextContent(getOptionLabel(option)),\n\t\textractPickerTextContent(getOptionCode?.(option)),\n\t\textractPickerTextContent(getOptionGroup?.(option)?.label)\n\t]\n\t\t.filter((part): part is string => Boolean(part))\n\t\t.join(\" \")\n\t\t.toLowerCase();\n}\n\n/** Находит selected option по value и возвращает fallback, если значение еще не нормализовано. */\nexport function resolveSelectedOption<TOption extends { value: string }>(\n\toptions: readonly TOption[],\n\tvalue: string,\n\tfallback: TOption\n): TOption {\n\treturn options.find((option) => option.value === value) ?? fallback;\n}\n","import { useMemo } from \"react\";\n\nimport { ODataCollectionModel, ODataSingleSelectProps } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata-service\";\n\nimport { useODataSelectBase } from \"./useODataSelectBase\";\n\ninterface UseODataSelectOptions extends Omit<ODataSingleSelectProps, \"model\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tonChange: (value: string | undefined) => void;\n}\n\nexport function useODataSelect({ odata, segment, model, value, dependencies, onChange }: UseODataSelectOptions) {\n\tconst odataModel = useODataSelectBase({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue: value ? [value] : [],\n\t\tdependencies\n\t});\n\n\tconst selectedItem = odataModel.selectedItems[0];\n\tconst options = useMemo(() => {\n\t\tif (!selectedItem) {\n\t\t\treturn odataModel.filteredItems;\n\t\t}\n\n\t\treturn [selectedItem, ...odataModel.filteredItems];\n\t}, [odataModel.filteredItems, selectedItem]);\n\n\tconst handleChange = (item: CollectionItem | undefined) => {\n\t\tonChange(item?.[odataModel.selectionKey]);\n\t};\n\n\treturn {\n\t\t...odataModel,\n\t\tselectedItem,\n\t\toptions,\n\t\thandleChange\n\t};\n}\n","import { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport type SelectOptionSectionItem<TOption> = {\n\treadonly option: TOption;\n\treadonly index: number;\n};\n\nexport type SelectOptionSection<TOption> = {\n\treadonly group: SelectOptionGroup | undefined;\n\treadonly items: readonly SelectOptionSectionItem<TOption>[];\n};\n\n/**\n * Собирает соседние опции с одинаковым group key в секции, сохраняя исходные индексы для клавиатурной навигации listbox.\n */\nexport function createSelectOptionSections<TOption>(\n\toptions: readonly TOption[],\n\tgetOptionGroup: (option: TOption) => SelectOptionGroup | undefined\n): readonly SelectOptionSection<TOption>[] {\n\tconst sections: Array<{ group: SelectOptionGroup | undefined; items: SelectOptionSectionItem<TOption>[] }> = [];\n\n\toptions.forEach((option, index) => {\n\t\tconst group = getOptionGroup(option);\n\t\tconst currentSection = sections.at(-1);\n\t\tconst belongsToCurrentSection = currentSection?.group?.key === group?.key;\n\n\t\tif (currentSection && belongsToCurrentSection) {\n\t\t\tcurrentSection.items.push({ option, index });\n\t\t\treturn;\n\t\t}\n\n\t\tsections.push({\n\t\t\tgroup,\n\t\t\titems: [{ option, index }]\n\t\t});\n\t});\n\n\treturn sections;\n}\n","import { type CSSProperties, Fragment, ReactNode, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { Placement } from \"@floating-ui/react\";\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { CustomOptionButton, Option, OptionButton } from \"../option\";\nimport {\n\textractPickerTextContent,\n\tPickerField,\n\tPickerPopup,\n\tPickerStatus,\n\tPickerTrigger,\n\tusePickerDefaultFilter,\n\tusePickerFloatingListbox,\n\tusePickerQuery,\n\tusePickerTriggerController\n} from \"../picker\";\nimport { ChangeHandler, UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport { getOptionSearchText } from \"./lib\";\nimport { createSelectOptionSections } from \"./lib/createSelectOptionSections\";\nimport { type SelectOptionGroup, type SelectOptionKey } from \"./SelectOptionGroup\";\n\nexport { type SelectOptionGroup, type SelectOptionKey } from \"./SelectOptionGroup\";\n\nexport type SelectOptionState = {\n\tactive: boolean;\n\tselected: boolean;\n\tdisabled: boolean;\n};\n\ntype SelectSharedProps<TOption extends InputType> = Omit<UiBaseProps<TOption, TOption | undefined>, \"onChange\"> & {\n\toptions: readonly TOption[];\n\tgetOptionKey: (option: TOption) => SelectOptionKey;\n\tgetOptionLabel: (option: TOption) => string;\n\tgetOptionCode?: (option: TOption) => string;\n\t/** Явный поисковый текст для опции с произвольным ReactNode-render. */\n\tgetOptionSearchText?: (option: TOption) => string | readonly string[];\n\tgetOptionDisabled?: (option: TOption) => boolean;\n\tgetOptionAriaLabel?: (option: TOption) => string;\n\tgetOptionGroup?: (option: TOption) => SelectOptionGroup | undefined;\n\tgetOptionClassName?: (option: TOption, state: SelectOptionState) => string | undefined;\n\trenderOption?: (option: TOption, state: SelectOptionState) => ReactNode;\n\trenderValue?: (option: TOption) => ReactNode;\n\tclassName?: string;\n\tbuttonClassName?: string;\n\toptionsClassName?: string;\n\toptionsMaxWidth?: CSSProperties[\"maxWidth\"];\n\toptionsContentClassName?: string;\n\tsearchable?: boolean;\n\tquery?: string;\n\tdefaultQuery?: string;\n\tonQuery?: (value: string) => void;\n\tdefaultFilter?: boolean;\n\tisLoading?: boolean;\n\trenderPopupHeader?: ReactNode;\n\temptyState?: ReactNode;\n\terrorState?: ReactNode;\n\tplacement?: Placement;\n};\n\ntype SelectChangeValue<TOption extends InputType, TClearable extends boolean | undefined> = true extends TClearable\n\t? TOption | undefined\n\t: TOption;\n\nexport type SelectProps<TOption extends InputType, TClearable extends boolean | undefined = false> = SelectSharedProps<TOption> & {\n\tclearable?: TClearable;\n\tonChange: ChangeHandler<SelectChangeValue<TOption, TClearable>>;\n};\n\n/**\n * Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.\n */\nexport function Select<TOption extends InputType, TClearable extends boolean | undefined = false>(props: SelectProps<TOption, TClearable>) {\n\tconst {\n\t\tlabel,\n\t\tdescription,\n\t\tdisabled,\n\t\tplaceholder,\n\t\tsize,\n\t\toptions,\n\t\tvalue,\n\t\tonChange,\n\t\tgetOptionKey,\n\t\tgetOptionLabel,\n\t\tgetOptionCode,\n\t\tgetOptionSearchText: getExplicitOptionSearchText,\n\t\tgetOptionDisabled,\n\t\tgetOptionAriaLabel,\n\t\tgetOptionGroup,\n\t\tgetOptionClassName,\n\t\trenderOption,\n\t\trenderValue,\n\t\tclassName,\n\t\tbuttonClassName,\n\t\toptionsClassName,\n\t\toptionsMaxWidth,\n\t\toptionsContentClassName,\n\t\tsearchable = false,\n\t\tdefaultFilter = true,\n\t\tquery,\n\t\tdefaultQuery,\n\t\tonQuery,\n\t\trenderPopupHeader,\n\t\temptyState,\n\t\tisLoading,\n\t\terrorState,\n\t\tplacement = \"bottom-start\",\n\t\tclearable = false\n\t} = props;\n\tconst emitChange = onChange as ChangeHandler<TOption | undefined>;\n\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\tconst triggerMode = searchable ? \"search-single\" : \"display\";\n\tconst selectedKey = value === undefined ? undefined : getOptionKey(value);\n\tconst selectedOption =\n\t\tselectedKey === undefined ? undefined : (options.find((option) => getOptionKey(option) === selectedKey) ?? value);\n\tconst {\n\t\tquery: currentQuery,\n\t\tsetQuery,\n\t\tresetQueryOnClose\n\t} = usePickerQuery({\n\t\tquery,\n\t\tdefaultQuery,\n\t\tonQuery,\n\t\ttriggerMode\n\t});\n\tconst handleOpenChange = (nextOpen: boolean) => {\n\t\tif (open && !nextOpen && resetQueryOnClose) {\n\t\t\tsetQuery(\"\");\n\t\t}\n\n\t\tsetOpen(nextOpen);\n\t};\n\tconst getSearchText = useCallback(\n\t\t(option: TOption) =>\n\t\t\tgetExplicitOptionSearchText?.(option) ??\n\t\t\tgetOptionSearchText({\n\t\t\t\toption,\n\t\t\t\tgetOptionLabel,\n\t\t\t\tgetOptionCode,\n\t\t\t\tgetOptionGroup\n\t\t\t}),\n\t\t[getExplicitOptionSearchText, getOptionCode, getOptionGroup, getOptionLabel]\n\t);\n\tconst visibleOptions = usePickerDefaultFilter({\n\t\toptions,\n\t\tquery: currentQuery,\n\t\tenabled: searchable && defaultFilter,\n\t\tgetSearchText\n\t});\n\tconst optionSections = useMemo(\n\t\t() => (getOptionGroup ? createSelectOptionSections(visibleOptions, getOptionGroup) : undefined),\n\t\t[getOptionGroup, visibleOptions]\n\t);\n\tconst selectedIndex = selectedKey === undefined ? -1 : visibleOptions.findIndex((option) => getOptionKey(option) === selectedKey);\n\tconst {\n\t\tactiveIndex,\n\t\tcontext,\n\t\tfloatingStyles,\n\t\tgetFloatingProps,\n\t\tsetReference,\n\t\tsetFloating,\n\t\tsetOptionRef,\n\t\tclose,\n\t\topenList,\n\t\ttoggleOpen,\n\t\tselectOption,\n\t\tselectActiveOption,\n\t\thandleReferenceKeyDown,\n\t\thandleFloatingKeyDown,\n\t\tgetOptionId,\n\t\tgetActiveOptionId\n\t} = usePickerFloatingListbox({\n\t\toptions: visibleOptions,\n\t\tselectedIndex,\n\t\topen,\n\t\tonOpenChange: handleOpenChange,\n\t\tgetOptionDisabled,\n\t\tonSelect: emitChange,\n\t\tdisabled,\n\t\tplacement,\n\t\ttriggerMode\n\t});\n\n\tconst hasOptions = visibleOptions.length > 0;\n\tconst labelContent = selectedOption !== undefined ? getOptionLabel(selectedOption) : undefined;\n\tconst displayContent = selectedOption !== undefined ? (renderValue ? renderValue(selectedOption) : labelContent) : undefined;\n\tconst labelText = extractPickerTextContent(labelContent);\n\tconst codeText = selectedOption !== undefined ? extractPickerTextContent(getOptionCode?.(selectedOption)) : undefined;\n\tconst displayText =\n\t\textractPickerTextContent(displayContent) ?? labelText ?? codeText ?? (selectedKey !== undefined ? String(selectedKey) : \"\");\n\tconst showSearchValue = searchable && (open || currentQuery.length > 0);\n\tconst inputValue = showSearchValue ? currentQuery : selectedOption !== undefined ? displayText : \"\";\n\tconst triggerController = usePickerTriggerController({\n\t\tmode: triggerMode,\n\t\topen,\n\t\tcurrentQuery,\n\t\thasDisplayValue: selectedOption !== undefined,\n\t\tinputRef,\n\t\tsetQuery,\n\t\topenList,\n\t\tclose,\n\t\ttoggleOpen\n\t});\n\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\tinputRef.current = node;\n\t};\n\tconst handleClear = () => {\n\t\tif (clearable) {\n\t\t\temitChange(undefined);\n\t\t}\n\n\t\tsetQuery(\"\");\n\t\tclose();\n\t};\n\tconst renderOptionNode = (listId: string, option: TOption, index: number) => {\n\t\tconst optionKey = getOptionKey(option);\n\t\tconst selected = selectedKey !== undefined && optionKey === selectedKey;\n\t\tconst active = index === activeIndex;\n\t\tconst optionDisabled = getOptionDisabled?.(option) ?? false;\n\t\tconst optionState = { active, selected, disabled: optionDisabled };\n\n\t\treturn (\n\t\t\t<Option\n\t\t\t\tkey={optionKey}\n\t\t\t\tid={getOptionId(listId, index)}\n\t\t\t\tref={(node) => setOptionRef(index, node)}\n\t\t\t\trole=\"option\"\n\t\t\t\taria-selected={selected}\n\t\t\t\taria-disabled={optionDisabled || undefined}\n\t\t\t\taria-label={getOptionAriaLabel?.(option)}\n\t\t\t\tactive={active}\n\t\t\t\tselected={selected}\n\t\t\t\tdisabled={optionDisabled}\n\t\t\t\tclassName={getOptionClassName?.(option, optionState)}>\n\t\t\t\t{renderOption ? (\n\t\t\t\t\t<CustomOptionButton\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\tonMouseDown={(event) => event.preventDefault()}\n\t\t\t\t\t\tonClick={() => selectOption(option)}>\n\t\t\t\t\t\t{renderOption(option, optionState)}\n\t\t\t\t\t</CustomOptionButton>\n\t\t\t\t) : (\n\t\t\t\t\t<OptionButton\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\ticon={selected ? <CheckIcon /> : <span />}\n\t\t\t\t\t\ttext={getOptionLabel(option)}\n\t\t\t\t\t\tcode={getOptionCode?.(option)}\n\t\t\t\t\t\tonMouseDown={(event) => event.preventDefault()}\n\t\t\t\t\t\tonClick={() => selectOption(option)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Option>\n\t\t);\n\t};\n\n\treturn (\n\t\t<PickerField label={label} description={description} disabled={disabled} size={size} className={className}>\n\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PickerTrigger\n\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\treadOnly={!searchable}\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\toptionCount={options.length}\n\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tselectedValue={displayContent ?? displayText}\n\t\t\t\t\t\t\thasSelection={selectedOption !== undefined}\n\t\t\t\t\t\t\tshowSelectedValue={false /*selectedOption !== undefined && !showSearchValue*/}\n\t\t\t\t\t\t\tclearable={Boolean(clearable)}\n\t\t\t\t\t\t\tonClear={handleClear}\n\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}\n\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\taria-autocomplete={searchable ? \"list\" : \"none\"}\n\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\tinputClassName={cn(buttonClassName, \"textOverflow\")}\n\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\tif (!searchable) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerInputChange(event.target.value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\tonActivateWhenOpen: selectActiveOption,\n\t\t\t\t\t\t\t\t\tenableSpaceActivation: !searchable\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\tactiveOptionId={hasOptions ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\tclassName={optionsClassName}\n\t\t\t\t\t\t\tmaxWidth={optionsMaxWidth}\n\t\t\t\t\t\t\ttoolbar={renderPopupHeader}>\n\t\t\t\t\t\t\t<div className={cn(optionsContentClassName, \"h100 scrollable\")}>\n\t\t\t\t\t\t\t\t{hasOptions ? (\n\t\t\t\t\t\t\t\t\toptionSections ? (\n\t\t\t\t\t\t\t\t\t\toptionSections.map((section, sectionIndex) => {\n\t\t\t\t\t\t\t\t\t\t\tconst groupLabelId = section.group ? `${listId}-group-${sectionIndex}` : undefined;\n\t\t\t\t\t\t\t\t\t\t\tconst optionNodes = section.items.map(({ option, index }) =>\n\t\t\t\t\t\t\t\t\t\t\t\trenderOptionNode(listId, option, index)\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\treturn section.group ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`group-${String(section.group.key)}-${sectionIndex}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-labelledby={groupLabelId}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div id={groupLabelId} className={uiStyles.uiPopupGroupLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{section.group.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{optionNodes}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<Fragment key={`options-${sectionIndex}`}>{optionNodes}</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tvisibleOptions.map((option, index) => renderOptionNode(listId, option, index))\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<PickerStatus emptyState={emptyState} errorState={errorState} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}}\n\t\t</PickerField>\n\t);\n}\n","import { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { OptionCode, OptionText } from \"../option\";\nimport { HighlightText } from \"../text\";\n\ninterface OptionContentProps {\n\tlabel: string;\n\tcode?: string;\n\thighlight?: string;\n\t/** Приватный визуальный modifier label для специализированного владельца option. */\n\tlabelClassName?: string;\n\t/** Отдельный modifier code, потому что code задаёт собственный variable-font weight. */\n\tcodeClassName?: string;\n}\n\n/**\n * Универсальный рендерер опции. Используется и в single-select, и в multi-select.\n */\nexport function SelectOptionContent({ label, code, highlight, labelClassName, codeClassName }: OptionContentProps) {\n\treturn (\n\t\t<>\n\t\t\t<OptionText className={cn(\"flexEllipsis\", labelClassName)}>\n\t\t\t\t<HighlightText text={label} highlight={highlight} />\n\t\t\t</OptionText>\n\t\t\t{code && (\n\t\t\t\t<OptionCode className={codeClassName}>\n\t\t\t\t\t<HighlightText text={code} highlight={highlight} />\n\t\t\t\t</OptionCode>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React from \"react\";\n\nimport { ODataSingleSelectProps, useODataCollectionModel } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata-service\";\n\nimport { InputUILoading } from \"../input\";\nimport { UiBaseProps } from \"../types\";\n\nimport { useODataSelect } from \"./model/useODataSelect\";\nimport { Select } from \"./Select\";\nimport { SelectOptionContent } from \"./SelectOptionContent\";\n\ntype ODataSelectProps = Omit<ODataSingleSelectProps, \"value\"> & UiBaseProps<string | undefined> & { clearable?: boolean };\n\nfunction getODataOptionTextKey(item: CollectionItem | undefined, textKey: string, codeKey: string) {\n\tif (!item) {\n\t\treturn textKey || codeKey;\n\t}\n\n\treturn textKey || Object.keys(item).find((key) => key !== codeKey) || codeKey;\n}\n\nexport const ODataSelect: React.FC<ODataSelectProps> = ({\n\todata,\n\tsegment,\n\tmodel: initialModel,\n\tsize,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tvalue,\n\tdependencies,\n\tonChange,\n\tclearable\n}) => {\n\tconst model = useODataCollectionModel(initialModel);\n\tconst odataModel = useODataSelect({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies,\n\t\tonChange\n\t});\n\n\tif (odataModel.isLoading) {\n\t\treturn <InputUILoading size={size} label={label} description={description} />;\n\t}\n\n\tconst hideCode = segment.hideCode ?? odata.hideCode;\n\tconst resolvedTextKey = getODataOptionTextKey(odataModel.selectedItem ?? odataModel.options[0], odataModel.textKey, odataModel.codeKey);\n\n\treturn (\n\t\t<Select\n\t\t\tsize={size}\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\toptions={odataModel.options}\n\t\t\tvalue={odataModel.selectedItem}\n\t\t\tonChange={odataModel.handleChange}\n\t\t\tgetOptionKey={(item) => item[odataModel.codeKey]}\n\t\t\tgetOptionLabel={(item) => item[resolvedTextKey]}\n\t\t\tgetOptionCode={hideCode ? undefined : (item) => item[odataModel.codeKey]}\n\t\t\tgetOptionAriaLabel={(item) =>\n\t\t\t\thideCode || item[resolvedTextKey] === item[odataModel.codeKey]\n\t\t\t\t\t? String(item[resolvedTextKey])\n\t\t\t\t\t: `${item[resolvedTextKey]} ${item[odataModel.codeKey]}`\n\t\t\t}\n\t\t\trenderValue={(item) => (\n\t\t\t\t<SelectOptionContent label={item[resolvedTextKey]} code={hideCode ? undefined : item[odataModel.codeKey]} />\n\t\t\t)}\n\t\t\trenderOption={(item) => (\n\t\t\t\t<SelectOptionContent\n\t\t\t\t\tlabel={item[resolvedTextKey]}\n\t\t\t\t\tcode={hideCode ? undefined : item[odataModel.codeKey]}\n\t\t\t\t\thighlight={odataModel.debouncedQuery}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\tsearchable\n\t\t\tquery={odataModel.query}\n\t\t\tonQuery={odataModel.setQuery}\n\t\t\tdefaultFilter={false}\n\t\t\tdisabled={disabled || odataModel.isLoading}\n\t\t\tplaceholder={odataModel.placeholder}\n\t\t\tisLoading={odataModel.isLoading}\n\t\t\terrorState={odataModel.isError ? \"Ошибка загрузки\" : undefined}\n\t\t\temptyState={!odataModel.isLoading && !odataModel.isError ? \"Нет данных\" : undefined}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n};\n","import { useCallback } from \"react\";\n\nimport { useODataDependentSelection } from \"../odata-dependent\";\n\nimport { ODataSelect } from \"./ODataSelect\";\n\nimport type { ODataDependentSegmentControlProps } from \"../odata-dependent\";\n\nexport type ODataDependentSegmentSelectProps = ODataDependentSegmentControlProps & {\n\t/** Показывает действие очистки выбранного значения. */\n\tclearable?: boolean;\n};\n\n/**\n * Адаптирует один развёрнутый зависимый OData-сегмент к single-select UI.\n * Общий снимок остаётся массивным, поэтому совместим с `dependencies` и\n * может совместно использоваться с segment-level MultiSelect-контролами.\n */\nexport function ODataDependentSegmentSelect(props: ODataDependentSegmentSelectProps) {\n\tconst { item, disabled, label, description, size, width = 15, clearable } = props;\n\tconst selection = useODataDependentSelection(props);\n\tconst { updateSegment } = selection;\n\tconst widthStyle = `calc(${width}em + var(--width-add))`;\n\n\tconst handleSelectionChange = useCallback(\n\t\t(value: string | undefined) => {\n\t\t\tupdateSegment(item.id, value === undefined ? [] : [value]);\n\t\t},\n\t\t[item.id, updateSegment]\n\t);\n\n\treturn (\n\t\t<div style={{ maxWidth: widthStyle, minWidth: widthStyle }}>\n\t\t\t<ODataSelect\n\t\t\t\todata={item.odata}\n\t\t\t\tsegment={item.segment}\n\t\t\t\tmodel={item.model}\n\t\t\t\tdependencies={selection.values}\n\t\t\t\tvalue={selection.values[item.id]?.[0]}\n\t\t\t\tonChange={handleSelectionChange}\n\t\t\t\tdisabled={disabled || selection.isSegmentDisabled(item.id)}\n\t\t\t\tlabel={label}\n\t\t\t\tdescription={description}\n\t\t\t\tsize={size}\n\t\t\t\tclearable={clearable}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n","import { Select } from \"./Select\";\n\nimport type { UiBaseProps } from \"../types\";\nimport type { SelectOptionKey } from \"./Select\";\n\ntype SerializableOptionRecord = Record<string, unknown>;\n\ntype SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {\n\t[K in keyof TOption]: Extract<TOption[K], SelectOptionKey> extends never ? never : K;\n}[keyof TOption];\n\ntype SerializableOptionValue<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>> = Extract<\n\tTOption[TOptionKey],\n\tSelectOptionKey\n>;\n\nexport interface SerializableSelectProps<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n> extends Omit<UiBaseProps<SerializableOptionValue<TOption, TOptionKey> | undefined>, \"onChange\"> {\n\toptions: readonly TOption[];\n\tonChange: (value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void;\n\toptionKey: TOptionKey;\n\toptionLabel: TOptionLabel;\n\trenderCode?: true;\n\tclassName?: string;\n\tclearable?: boolean;\n}\n\nfunction getSerializableOptionKey<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>>(\n\toption: TOption,\n\toptionKey: TOptionKey\n): Extract<TOption[TOptionKey], SelectOptionKey> {\n\treturn String(option[optionKey]) as Extract<TOption[TOptionKey], SelectOptionKey>;\n}\n\nfunction getSerializableOptionLabel<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>(option: TOption, optionLabel: TOptionLabel, optionKey: TOptionKey): string {\n\tconst label = option[optionLabel];\n\n\tif (typeof label === \"string\" || typeof label === \"number\") {\n\t\treturn String(label);\n\t}\n\n\tconst key = getSerializableOptionKey(option, optionKey);\n\treturn String(key);\n}\n\nexport function SerializableSelect<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tplaceholder,\n\tsize,\n\toptions,\n\tvalue,\n\tonChange,\n\toptionKey,\n\toptionLabel,\n\trenderCode,\n\tclassName,\n\tclearable\n}: SerializableSelectProps<TOption, TOptionKey, TOptionLabel>) {\n\tconst selectedOption =\n\t\tvalue === undefined ? undefined : options.find((option) => getSerializableOptionKey(option, optionKey) === value);\n\n\treturn (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={placeholder}\n\t\t\tsize={size}\n\t\t\toptions={options}\n\t\t\tvalue={selectedOption}\n\t\t\tonChange={(option: TOption | undefined) => onChange(option ? getSerializableOptionKey(option, optionKey) : undefined)}\n\t\t\tgetOptionKey={(option: TOption) => getSerializableOptionKey(option, optionKey)}\n\t\t\tgetOptionLabel={(option: TOption) => getSerializableOptionLabel(option, optionLabel, optionKey)}\n\t\t\tgetOptionCode={renderCode ? (option: TOption) => getSerializableOptionKey(option, optionKey) : undefined}\n\t\t\tclassName={className}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -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-F3LNsip3.js";import{n as o,t as s}from"./circle-check-B-PCEcP6.js";import{i as c,n as l,r as u,t as d}from"./info-_jHhDMxQ.js";import{n as f,r as p,t as m}from"./sortable-D9YLnSq2.js";import{n as h}from"./iframe-DB62bexO.js";import{t as g}from"./shim-DlYORV19.js";import{A as _,B as v,C as y,D as b,E as x,F as S,G as C,H as ee,I as w,K as te,L as T,M as E,N as ne,O as re,P as ie,R as D,S as O,T as k,U as A,V as j,W as M,b as N,c as ae,f as oe,j as se,k as ce,l as le,m as ue,p as de,q as fe,u as pe,v as me,w as he,x as ge,y as _e,z as P}from"./odata-CSE2o56k.js";import{a as F,i as I,n as ve}from"./utils-tg3ibbzi.js";import{a as ye,n as be,o as xe}from"./array-D-_yMMUK-BQ0uu1hZ.js";import{r as Se,u as Ce,y as we}from"./formatters-D33Uh3si-Df97arf9.js";import{i as Te,n as Ee,r as De,t as Oe}from"./NoData-CGqnBZTW.js";import{n as ke,t as Ae}from"./ContextMenu-BXr3AZy_.js";import{n as je,t as Me}from"./GridContainer-fKYgDsLl.js";import{c as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as Re}from"./hooks-CVQS96HT.js";import{n as ze,t as Be}from"./Scrollable-CZQNMT37.js";var Ve=n((e=>{var t=r(),n=g();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}})),He=n(((e,t)=>{t.exports=Ve()}));function Ue(e){return We(e)||typeof e==`function`||Ge(e)}function We(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Ge(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function L(e,t){return e==null?null:Ue(e)?qe.createElement(e,t):e}function Ke(e){if(`cell`in e&&e.cell){let t=e.cell,n=t.column.columnDef,r=t,i=n;return r.getIsAggregated?.()?L(i.aggregatedCell??n.cell,t.getContext()):r.getIsPlaceholder?.()?null:L(n.cell,t.getContext())}return`header`in e&&e.header?L(e.header.column.columnDef.header,e.header.getContext()):`footer`in e&&e.footer?L(e.footer.column.columnDef.footer,e.footer.getContext()):null}var qe;function Je(){return(Je=t((()=>{qe=e(r(),1)})))()}function Ye({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 Xe(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 Ze(e){try{++st,e()}finally{--st||Qe()}}function R(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=nt(n,e)}function Qe(){if(!(st>0)){for(;V<ot;){let e=z[V];z[V++]=void 0,e.notify()}V=0,ot=0}}function $e(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 H!==void 0&&tt(i,H,B),i._snapshot},subscribe(e){let t=Xe(e),n={current:!1},r=et(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=H,o=t?.compare??Object.is;if(n)H=i,++B,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{H=a,n&&(i.flags&=-5),R(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&it(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&at(e)}}else e&32&&(i.flags=e&-33);return H!==void 0&&tt(i,H,B),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(rt(e),at(e),Qe())}},i}function et(e){let t=()=>{let t=H;H=n,++B,n.depsTail=void 0,n.flags=6;try{return e()}finally{H=t,n.flags&=-5,R(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&&it(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,R(this)}};return t(),n}var z,B,tt,nt,rt,it,at,V,ot,H,st;function ct(){return(ct=t((()=>{z=[],B=0,{link:tt,unlink:nt,propagate:rt,checkDirty:it,shallowPropagate:at}=Ye({update(e){return e._update()},notify(e){z[ot++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,R(e))}}),V=0,ot=0,st=0})))()}function lt(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=ut(e);if(n.length!==ut(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 ut(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function dt(e,t){return e===t}function ft(e,t=e=>e,n){let r=n?.compare??dt,i=(0,pt.useCallback)(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=(0,pt.useCallback)(()=>e.get(),[e]);return(0,mt.useSyncExternalStoreWithSelector)(i,a,a,t,r)}var pt,mt;function ht(){return(ht=t((()=>{pt=r(),mt=He()})))()}function gt(e){let t=ft(e.source,e.selector,{compare:lt});return typeof e.children==`function`?e.children(t):e.children}function _t(){return(_t=t((()=>{ht()})))()}function vt(e){let t=e;return Object.defineProperty(e,"state",{get(){return e.get()}}),`set`in e&&(t.setState=e.set.bind(e)),t}function yt(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 bt(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 xt(){return yt({createAtom:$e,batch:Ze})}function St(){return(St=t((()=>{ct()})))()}function Ct(e){return e.row.getValue(e.column.id)}function wt(e){return e.getValue()??e.table.options.renderFallbackValue}function Tt(e){return{table:e.table,column:e.column,row:e.row,cell:e,getValue:()=>e.getValue(),renderValue:()=>e.renderValue()}}var Et;function Dt(){return(Dt=t((()=>{A(),Et={assignCellPrototype:(e,t)=>{w(`coreCellsFeature`,e,t,{cell_getValue:{fn:e=>Ct(e)},cell_renderValue:{fn:e=>wt(e)},cell_getContext:{fn:e=>Tt(e),memoDeps:e=>[e]}})}}})))()}function Ot(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 kt(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=Ot(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 At(e){return[e,...e.columns.flatMap(e=>e.getFlatColumns())]}function jt(e){if(e.columns.length){let t=e.columns.flatMap(e=>e.getLeafColumns());return D(e.table,`getOrderColumns`,re)(t)}return[e]}function Mt(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 Nt(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=kt(e,o,r,n),c=o;s.columns=c.columns?Nt(e,c.columns,s,r+1):[],i[a]=s}return i}function Pt(e){return Nt(e,e.options.columns)}function Ft(e){return e.getAllColumns().flatMap(e=>e.getFlatColumns())}function It(e){let t=M(),n=e.getAllFlatColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function Lt(e){let t=e.getAllColumns().flatMap(e=>e.getLeafColumns());return D(e,`getOrderColumns`,re)(t)}function Rt(e){let t=M(),n=e.getAllLeafColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function zt(e,t){return e.getAllFlatColumnsById()[t]}function Bt(){return(Bt=t((()=>{A(),b()})))()}var Vt;function Ht(){return(Ht=t((()=>{A(),Bt(),Vt={assignColumnPrototype:(e,t)=>{w(`coreColumnsFeature`,e,t,{column_getFlatColumns:{fn:e=>At(e),memoDeps:e=>[e.table.options.columns]},column_getLeafColumns:{fn:e=>jt(e),memoDeps:e=>[e.table.atoms.columnOrder?.get(),e.table.atoms.grouping?.get(),e.table.options.columns,e.table.options.groupedColumnMode]}})},constructTableAPIs:e=>{T(`coreColumnsFeature`,e,{table_getDefaultColumnDef:{fn:()=>Mt(e),memoDeps:()=>[e.options.defaultColumn]},table_getAllColumns:{fn:()=>Pt(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumns:{fn:()=>Ft(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumnsById:{fn:()=>It(e),memoDeps:()=>[e.options.columns]},table_getAllLeafColumns:{fn:()=>Lt(e),memoDeps:()=>[e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getAllLeafColumnsById:{fn:()=>Rt(e),memoDeps:()=>[e.getAllLeafColumns()]},table_getColumn:{fn:t=>zt(e,t)}})}}})))()}function Ut(e,t){for(let n=0;n<e.subHeaders.length;n++)Ut(e.subHeaders[n],t);t.push(e)}function Wt(e){let t=[];return Ut(e,t),t}function Gt(e){return{column:e.column,header:e,table:e.column.table}}function Kt(e){let{start:t,end:n}=e.atoms.columnPinning?.get()??ie(),r=e.getAllColumns(),i=D(e,`getVisibleLeafColumns`,ne);if(!t.length&&!n.length)return ce(r,i,e);let a=e.getAllLeafColumnsById(),o=[];for(let e=0;e<t.length;e++){let n=a[t[e]];n&&D(n,`getIsVisible`,se)&&o.push(n)}let s=[];for(let e=0;e<n.length;e++){let t=a[n[e]];t&&D(t,`getIsVisible`,se)&&s.push(t)}let c=i.filter(e=>!t.includes(e.id)&&!n.includes(e.id));return ce(r,[...o,...c,...s],e)}function qt(e){return[...e.getHeaderGroups()].reverse()}function Jt(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 Yt(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 Xt(){return(Xt=t((()=>{A(),E(),_(),S()})))()}var Zt;function Qt(){return(Qt=t((()=>{A(),Xt(),Zt={assignHeaderPrototype:(e,t)=>{w(`coreHeadersFeature`,e,t,{header_getLeafHeaders:{fn:e=>Wt(e),memoDeps:e=>[e.column.table.options.columns]},header_getContext:{fn:e=>Gt(e),memoDeps:e=>[e.column.table.options.columns]}})},constructTableAPIs:e=>{T(`coreHeadersFeature`,e,{table_getHeaderGroups:{fn:()=>Kt(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:()=>qt(e),memoDeps:()=>[e.getHeaderGroups()]},table_getFlatHeaders:{fn:()=>Jt(e),memoDeps:()=>[e.getHeaderGroups()]},table_getLeafHeaders:{fn:()=>Yt(e),memoDeps:()=>[e.getHeaderGroups()]}})}}})))()}function $t(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 en;function tn(){return(tn=t((()=>{A(),en=(e,t,n,r,i,a,o)=>{let s=$t(e),c=Object.create(s);c._displayIndexCache=-1,c._uniqueValuesCache=M(),c._valuesCache=M(),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 nn(){return[]}function rn(e,t){C(e,`cellSelection`,t?nn():P(e.initialState.cellSelection)??nn())}function an(e){e.atoms.cellSelection&&(e.options.autoResetAll??e.options.autoResetCellSelection??!0)&&e._reactivity.schedule(()=>rn(e))}function on(){return(on=t((()=>{A()})))()}function sn(e){if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if((e.atoms.pagination?.get()?.pageIndex??U)===U)return;un(e,!0)}}function cn(e,t){C(e,`pagination`,t)}function ln(e,t){cn(e,n=>{let r=j(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 un(e,t){ln(e,t?U:e.initialState.pagination?.pageIndex??U)}var U;function dn(){return(dn=t((()=>{A(),U=0})))()}function fn(e,t){C(e,`sorting`,t)}function pn(e,t){fn(e,t?[]:P(e.initialState.sorting??[]))}function mn(e){e.atoms.sorting&&(e.options.autoResetAll??e.options.autoResetSorting??!1)&&pn(e)}function hn(){return(hn=t((()=>{A()})))()}function gn(){return e=>fe({feature:`coreRowModelsFeature`,table:e,fnName:`table.getCoreRowModel`,memoDeps:()=>[e.options.data],fn:()=>vn(e,e.options.data),onAfterUpdate:te(()=>{x(e),sn(e),mn(e),an(e)})})}function _n(e,t,n,r=0,i){let a=[];for(let o=0;o<n.length;o++){let s=n[o],c=en(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=_n(e,t,c.originalSubRows,r+1,c)))}return a}function vn(e,t){let n={rows:[],flatRows:[],rowsById:M()};return n.rows=_n(e,n,t),n}function yn(){return(yn=t((()=>{A(),tn(),on(),k(),dn(),hn()})))()}function bn(e){return e._rowModels.coreRowModel||(e._rowModels.coreRowModel=e.options.features.coreRowModel?.(e)??gn()(e)),e._rowModels.coreRowModel()}function xn(e){return e.getCoreRowModel()}function Sn(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 Cn(e){return e.getFilteredRowModel()}function wn(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 Tn(e){return e.getGroupedRowModel()}function En(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 Dn(e){return e.getSortedRowModel()}function On(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 kn(e){return e.getExpandedRowModel()}function An(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 jn(e){return e.getPaginatedRowModel()}function Mn(){return(Mn=t((()=>{yn()})))()}var Nn;function Pn(){return(Pn=t((()=>{A(),Mn(),Nn={constructTableAPIs:e=>{T(`coreRowModelsFeature`,e,{table_getCoreRowModel:{fn:()=>bn(e)},table_getPreFilteredRowModel:{fn:()=>xn(e)},table_getFilteredRowModel:{fn:()=>Sn(e)},table_getPreGroupedRowModel:{fn:()=>Cn(e)},table_getGroupedRowModel:{fn:()=>wn(e)},table_getPreSortedRowModel:{fn:()=>Tn(e)},table_getSortedRowModel:{fn:()=>En(e)},table_getPreExpandedRowModel:{fn:()=>Dn(e)},table_getExpandedRowModel:{fn:()=>On(e)},table_getPrePaginatedRowModel:{fn:()=>kn(e)},table_getPaginatedRowModel:{fn:()=>An(e)},table_getRowModel:{fn:()=>jn(e)}})}}})))()}function Fn(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 In(e,t,n){let r=Fn(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 Ln(e){let t=e.table.getRowsInDisplayOrder(),n=e._displayIndexCache;return t[n]===e?n:-1}function Rn(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 zn(e,t){if(ee(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 Bn(e,t){if(ee(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 Vn(e,t){return e.getValue(t)??e.table.options.renderFallbackValue}function Hn(e){return v(e.subRows,e=>e.subRows)}function Un(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 Wn(e){if(e.parentId)return e.table.getCoreRowModel().rowsById[e.parentId]??e.table.getRow(e.parentId,!0)}function Gn(e){let t=[],n=e;for(;;){let e=n.getParentRow();if(!e)break;t.push(e),n=e}return t.reverse()}function Kn(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=In(a,e,e.table),n.set(a,o)),r[i]=o}return r}function qn(e){let t=M(),n=e.getAllCells();for(let e=0;e<n.length;e++){let r=n[e];t[r.column.id]=r}return t}function Jn(e,t,n,r){return t.options.getRowId?.(e,n,r)??(r?`${r.id}.${n}`:String(n))}function Yn(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 Xn(){return(Xn=t((()=>{A()})))()}var Zn;function Qn(){return(Qn=t((()=>{A(),Xn(),Zn={assignRowPrototype:(e,t)=>{w(`coreRowsFeature`,e,t,{row_getDisplayIndex:{fn:e=>Ln(e)},row_getAllCellsByColumnId:{fn:e=>qn(e),memoDeps:e=>[e.getAllCells()]},row_getAllCells:{fn:e=>Kn(e),memoDeps:e=>[e.table.getAllLeafColumns()]},row_getLeafRows:{fn:e=>Hn(e),memoDeps:e=>[e.subRows]},row_getParentRow:{fn:e=>Wn(e)},row_getParentRows:{fn:e=>Gn(e)},row_getUniqueValues:{fn:(e,t)=>Bn(e,t)},row_getValue:{fn:(e,t)=>zn(e,t)},row_renderValue:{fn:(e,t)=>Vn(e,t)}})},constructTableAPIs:e=>{T(`coreRowsFeature`,e,{table_getRowsInDisplayOrder:{fn:()=>Rn(e),memoDeps:()=>[e.getPrePaginatedRowModel().rows,e.options.paginateExpandedRows,e.options.paginateExpandedRows===!1?e.atoms.expanded?.get():void 0]},table_getRowId:{fn:(t,n,r)=>Jn(t,e,n,r)},table_getRow:{fn:(t,n)=>Yn(e,t,n)},table_getMaxSubRowDepth:{fn:()=>Un(e),memoDeps:()=>[e.getCoreRowModel()]}})}}})))()}function $n(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 er(e,t,n=(e,t)=>e===t){e._reactivity.batch(()=>{$n(e,t,n),e._reactivity.commit?.()})}function tr(e){let t=P(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 nr(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 rr(e,t,n){let r=nr(e,j(t,e.options));e.optionsStore?e.optionsStore.set(()=>r):e.options=r,n?.syncExternalState!==!1&&er(e,r.state??null)}function ir(){return(ir=t((()=>{A()})))()}var ar;function or(){return(or=t((()=>{A(),ir(),ar={constructTableAPIs:e=>{T(`coreTablesFeature`,e,{table_reset:{fn:()=>tr(e)},table_setOptions:{fn:t=>rr(e,t)}})}}})))()}var sr;function cr(){return(cr=t((()=>{Dt(),Ht(),Qt(),Pn(),Qn(),or(),sr={coreCellsFeature:Et,coreColumnsFeature:Vt,coreHeadersFeature:Zt,coreRowModelsFeature:Nn,coreRowsFeature:Zn,coreTablesFeature:ar}})))()}function lr(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=ur(e);if(n.length!==ur(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 ur(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function dr(e,t={}){return Object.values(e).forEach(e=>{t=e.getInitialState?.(t)??t}),P(t)}function fr(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:g,..._}=e.features,v={_cellInstanceInitFns:[],_columnInstanceInitFns:[],_features:{...sr,..._},_headerGroupInstanceInitFns:[],_headerInstanceInitFns:[],_reactivity:t,_rowInstanceInitFns:[],_rowModelFns:{aggregationFns:n,filterFns:l,sortFns:m},_rowModels:{},atoms:{},baseAtoms:{}},y=Object.values(v._features),b={...y.reduce((e,t)=>Object.assign(e,t.getDefaultTableOptions?.(v)),{}),...e};if(t.wrapExternalAtoms&&b.atoms)for(let[e,n]of Object.entries(b.atoms)){let r=n,i=t.createWritableAtom(r.get(),{debugName:`externalAtom/${e}`});b.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?(v.optionsStore=t.createWritableAtom(b,{debugName:`table/optionsStore`}),Object.defineProperty(v,"options",{configurable:!0,enumerable:!0,get(){return v.optionsStore.get()},set(e){v.optionsStore.set(()=>e)}})):v.options=b,v.initialState=dr(v._features,v.options.initialState);let x=Object.keys(v.initialState);for(let e=0;e<x.length;e++){let n=x[e];v.baseAtoms[n]=t.createWritableAtom(v.initialState[n],{debugName:`table/baseAtoms/${n}`}),v.atoms[n]=t.createReadonlyAtom(()=>{let e=v.options,t=e.atoms?.[n],r=t?t.get():v.baseAtoms[n].get();if(t)return r;let i=e.state;if(i&&ee(i,n)){let e=i[n];return e===void 0?v.initialState[n]:e}return r},{debugName:`table/atoms/${n}`})}$n(v),v.store=vt(t.createReadonlyAtom(()=>{let e={};for(let t=0;t<x.length;t++){let n=x[t];e[n]=v.atoms[n].get()}return e},{compare:lr,debugName:`table/store`}));for(let e=0;e<y.length;e++){let t=y[e];t.initTableInstanceData?.(v),t.initCellInstanceData&&v._cellInstanceInitFns.push(t.initCellInstanceData.bind(t)),t.initColumnInstanceData&&v._columnInstanceInitFns.push(t.initColumnInstanceData.bind(t)),t.initHeaderGroupInstanceData&&v._headerGroupInstanceInitFns.push(t.initHeaderGroupInstanceData.bind(t)),t.initHeaderInstanceData&&v._headerInstanceInitFns.push(t.initHeaderInstanceData.bind(t)),t.initRowInstanceData&&v._rowInstanceInitFns.push(t.initRowInstanceData.bind(t)),t.constructTableAPIs?.(v)}return v}function pr(){return(pr=t((()=>{A(),ir(),cr()})))()}function mr(e,t){let[{table:n,rootSource:r}]=(0,W.useState)(()=>{let t=fr({...e,features:{coreReactivityFeature:xt(),...e.features}});return t.Subscribe=(e=>gt({...e,source:e.source??t.store})),t.FlexRender=Ke,{table:t,rootSource:bt(t.store,lt)}}),i=n;rr(i,t=>({...t,...e}),{syncExternalState:!1});let a=i.options.state,o=r.get(),s=ft(r,t,{compare:lt});return hr(()=>{r.markCommitted(o),er(i,a??null,lt)}),(0,W.useMemo)(()=>({...n,options:e,state:s}),[n,e,s])}var W,hr;function gr(){return(gr=t((()=>{Je(),_t(),St(),pr(),W=r(),ht(),ir(),hr=typeof window>`u`?W.useEffect:W.useLayoutEffect})))()}var _r,vr,yr,br,xr,Sr,Cr,G;function wr(){return(wr=t((()=>{_r=`UMTbLD`,vr=`cz57Fx`,yr=`oPzAxu`,br=`MBu26r`,xr=`_03z-1l`,Sr=`_0RqsqJ`,Cr=`mXkUoM`,G={stateWrapper:_r,status:vr,information:yr,success:br,warning:xr,error:Sr,state:Cr}})))()}var K,Tr,Er,Dr,Or,kr,Ar;function jr(){return(jr=t((()=>{r(),I(),i(),o(),c(),l(),wr(),K=h(),Tr=({state:e=`none`,text:t,className:n})=>(0,K.jsxs)(`div`,{className:F(`flexCenter gapSm`,n),children:[(()=>{switch(e){case`error`:return(0,K.jsx)(Dr,{});case`warning`:return(0,K.jsx)(Or,{});case`success`:return(0,K.jsx)(kr,{});case`information`:return(0,K.jsx)(Ar,{});default:return null}})(),t]}),Er=({state:e})=>{switch(e){case`error`:return(0,K.jsx)(Dr,{});case`warning`:return(0,K.jsx)(Or,{});case`success`:return(0,K.jsx)(kr,{});case`information`:return(0,K.jsx)(Ar,{});default:return null}},Dr=()=>(0,K.jsx)(u,{className:F(G.state,G.error)}),Or=()=>(0,K.jsx)(a,{className:F(G.state,G.warning)}),kr=()=>(0,K.jsx)(s,{className:F(G.state,G.success)}),Ar=()=>(0,K.jsx)(d,{className:F(G.state,G.information)}),Tr.__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:``}}},Er.__docgenInfo={description:``,methods:[],displayName:`RenderStateIcon`,props:{state:{required:!1,tsType:{name:`State`},description:``}}},Dr.__docgenInfo={description:``,methods:[],displayName:`ErrorIcon`},Or.__docgenInfo={description:``,methods:[],displayName:`WarningIcon`},kr.__docgenInfo={description:``,methods:[],displayName:`SuccessIcon`},Ar.__docgenInfo={description:``,methods:[],displayName:`InformationIcon`}})))()}var Mr,Nr;function Pr(){return(Pr=t((()=>{Mr=`YJUVjb`,Nr={resizeHandle:Mr}})))()}function Fr(e,t){let n=e.closest(`th`)?.getBoundingClientRect().width;return y(typeof n==`number`&&Number.isFinite(n)?n:t,t)}function Ir({columnId:e,className:t,minWidth:n,keyboardStep:r=Rr,ariaLabel:i=`Изменить ширину колонки`,getStartWidth:a,onResize:o,onResizeEnd:s,onReset:c}){let l=n??60,u=(0,q.useRef)(0),d=(0,q.useRef)(0),f=(0,q.useRef)(0),p=(0,q.useRef)(!1),m=(0,q.useRef)(!1),h=t=>{let n=a?.(e,t)??Fr(t,l);return y(n,l)},g=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())},_=t=>{if(!p.current)return;let n=y(d.current+t.clientX-u.current,l);f.current=n,m.current=!0,o(e,n),t.preventDefault(),t.stopPropagation()},v=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,Lr.jsx)(`div`,{role:`separator`,"aria-label":i,"aria-orientation":`vertical`,tabIndex:0,onPointerDown:g,onPointerMove:_,onPointerUp:v,onPointerCancel:v,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=y(i+n*r,l);o(e,a),s?.(e,a)},onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),c?.(e)},className:F(Nr.resizeHandle,t)})}var q,Lr,Rr;function zr(){return(zr=t((()=>{q=r(),N(),I(),Pr(),Lr=h(),Rr=8,Ir.__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 Br(e,t){return typeof e==`function`?e(t):e}function Vr({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}=Ne({id:e,disabled:n}),h=p?m.current?.width:void 0,g={transform:Le.Translate.toString(f),zIndex:p?`calc(var(--z-header) + 1)`:void 0,...h?{width:h,minWidth:h}:{},...o},_={attributes:c,listeners:l,setActivatorElement:u,disabled:n,isDragging:p};return(0,Hr.jsxs)(`th`,{...s,ref:d,className:F(a,p&&r),style:g,children:[Br(t,_),i?(0,Hr.jsx)(Ir,{...i}):null]})}var Hr;function Ur(){return(Ur=t((()=>{Ie(),Pe(),I(),zr(),Hr=h(),Vr.__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 Wr(e){return{start:Array.from(new Set((e?.start??[]).filter(e=>typeof e==`string`&&e.trim().length>0))),end:[]}}function Gr(e,t){let n=t?.[e.id];if(typeof n==`number`&&Number.isFinite(n)&&n>0)return`${Math.floor(n)}px`;let r=oe(e.columnDef)?.width??4;return typeof r==`number`&&(r=Math.max(r,4)),_e(r)}function Kr(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=be(t.columnPinning.start,i),o=be(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=me({ids:c,order:t.columnOrder});return xe([...a,...l,...o],r)}function qr(e,t){let n=Kr(e,t),r=new Map(n.map(e=>[e.id,e]));return O({ids:n.map(e=>e.id),getWidth:e=>{let n=r.get(e);return n?Gr(n,t.columnSizing):`0px`}}).flatMap(e=>{let t=r.get(e.id);return t?[{...e,column:t}]:[]})}function Jr(e,t){let n={},r=[];for(let i of Kr(e,t))i.getIsPinned()===`start`&&(n[i.id]=Yr(r),r.push(Gr(i,t.columnSizing)));return n}function Yr(e){return e.length===0?`0px`:e.length===1?e[0]:`calc(${e.join(` + `)})`}function Xr(){return(Xr=t((()=>{ye(),N()})))()}function Zr(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 Qr(e){return`cell`in e&&e.cell!=null}function $r(e,t){for(let n of e){if(`columns`in n&&Array.isArray(n.columns)&&n.columns.length>0){$r(n.columns,t);continue}t(n)}}function ei(e){let t={},n=new Set;return $r(e,e=>{let r=Zr(e);if(!r)return;Qr(e)&&n.add(r);let i=ae(e);i&&(t[r]={...i,id:i.id??r,role:i.role??`dimension`,type:i.type??`string`})}),{runtimeByColumnId:Ce(t),customCellColumnIds:n}}function ti(e){return!e.customCellColumnIds.has(e.columnId)&&!!e.runtimeByColumnId[e.columnId]}function ni(){return(ni=t((()=>{we(),N()})))()}function ri(e){return e!=null&&e!==``}function ii(e,t){return e.map(e=>({row:e,boundaryKey:t(e),cellByColumnId:new Map(e.getVisibleCells().map(e=>[e.column.id,e]))}))}function ai({rows:e,columns:t,resolveRowBoundaryKey:n=()=>`__all_rows__`,excludeColumnIds:r}){let i=t.filter(e=>!r?.has(e.id)&&oe(e.columnDef)?.mergeDuplicates===!0);if(e.length===0||i.length===0)return new Map;let a=ii(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||!ri(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 oi(){return(oi=t((()=>{N()})))()}function si({columnOrder:e,defaultColumnOrder:t,onColumnOrderChange:n}){let[r,i]=(0,ci.useState)(void 0),a=(0,ci.useMemo)(()=>he(e??r??t),[e,t,r]);return{columnOrder:a,onColumnOrderChange:(0,ci.useCallback)(t=>{let r=he(j(t,a));e===void 0&&i(r),n?.(r)},[e,n,a])}}var ci;function li(){return(li=t((()=>{ci=r(),N(),A()})))()}function ui({columnPinning:e,defaultColumnPinning:t,onColumnPinningChange:n}){let[r,i]=(0,di.useState)(void 0),a=(0,di.useMemo)(()=>Wr(e??r??t),[e,t,r]);return{columnPinning:a,onColumnPinningChange:(0,di.useCallback)(t=>{let r={start:Wr(j(t,a)).start};e===void 0&&i(r),n?.(r)},[e,n,a])}}var di;function fi(){return(fi=t((()=>{di=r(),A(),Xr()})))()}function pi({columnSizing:e,defaultColumnSizing:t,columnResizeMinWidth:n,onColumnSizingChange:r}){let[i,a]=(0,mi.useState)(void 0),o=(0,mi.useMemo)(()=>ue(e??i??t,n),[n,e,t,i]);return{columnSizing:o,onColumnSizingChange:(0,mi.useCallback)(t=>{let i=ue(j(t,o),n);e===void 0&&a(i),r?.(i)},[n,e,r,o])}}var mi;function hi(){return(hi=t((()=>{mi=r(),N(),A()})))()}function gi({columnVisibility:e,defaultColumnVisibility:t,onColumnVisibilityChange:n}){let[r,i]=(0,J.useState)(void 0),a=(0,J.useMemo)(()=>e??r??t??{},[e,t,r]);return{columnVisibility:a,onColumnVisibilityChange:(0,J.useCallback)(t=>{let r=j(t,a);e===void 0&&i(r),n?.(r)},[e,n,a])}}var J;function _i(){return(_i=t((()=>{J=r(),A()})))()}var vi;function yi(){return(yi=t((()=>{Pe(),vi=e=>{let{transform:t}=e;return{...t,y:0}}})))()}var bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Y;function Bi(){return(Bi=t((()=>{bi=`_0rNBMr`,xi=`gp-7Db`,Si=`Ck-sXP`,Ci=`-F3gli`,wi=`V5tPM-`,Ti=`_2VJbvj`,Ei=`AD8NkG`,Di=`qqixKn`,Oi=`dVDRNv`,ki=`klOoMz`,Ai=`fJvFJA`,ji=`_7D8xa9`,Mi=`_3j87pS`,Ni=`uwojkJ`,Pi=`lLsmW6`,Fi=`uYvZ5P`,Ii=`QIS3xA`,Li=`a580w0`,Ri=`UOhaMF`,zi=`DtKAgs`,Y={root:bi,headerContextMenuTrigger:xi,table:Si,head:Ci,pinnedStartBoundary:wi,headerRow:Ti,headerCell:Ei,headerCellContent:Di,headerCellDraggable:Oi,headerCellDragging:ki,headerCellPinnedStart:Ai,bodyRow:ji,bodyRowInteractive:Mi,bodyCell:Ni,bodyRowSelected:Pi,bodyCellPinnedStart:Fi,bodyCellMergedWithNext:Ii,feedbackCell:Li,fetchingRow:Ri,noData:zi}})))()}function Vi({header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:i,enableColumnResizing:a,enableColumnReordering:o,columnResizeMinWidth:s,renderHeaderContent:c,onResizeColumn:l,onResetColumnWidth:u}){return(0,Hi.jsx)(Vr,{columnId:e.column.id,dragDisabled:!o||i,draggingClassName:Y.headerCellDragging,className:F(Y.headerCell,t&&Y.headerCellPinnedStart,r&&Y.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,Hi.jsx)(`div`,{ref:o&&!i?n:void 0,className:F(Y.headerCellContent,o&&!i&&Y.headerCellDraggable),...o&&!i?t??{}:{},children:c(e)})})}var Hi;function Ui(){return(Ui=t((()=>{I(),Ur(),Bi(),Hi=h(),Vi.__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 Wi(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 Gi(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)=>Wi(e,t)-Wi(n,t)))}function Ki(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 qi(e,t){let n=e.getAllLeafColumns().map(e=>e.id);return me({ids:n,order:t.columnOrder})}function Ji({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:g,getCellStyle:_,getCellLayout:v,renderCellContent:y,renderHeaderContextMenu:b,enableColumnResizing:x=!1,enableColumnReordering:S=!1,columnResizeMinWidth:C,afterTableContent:ee}){let w=qr(e,t),te=(0,X.useMemo)(()=>w.map(e=>e.column),[w]),T=(0,X.useMemo)(()=>w.map(e=>e.id),[w]),E=(0,X.useMemo)(()=>new Map(T.map((e,t)=>[e,t])),[T]),ne=(0,X.useMemo)(()=>new Set(T),[T]),re=Re({activationDistance:8}),ie=Gi(e,E),D=Jr(e,t),O=te.filter(e=>e.getIsPinned()===`start`).at(-1)?.id,k=(0,X.useMemo)(()=>t.columnPinning.start??[],[t.columnPinning.start]),A=(0,X.useMemo)(()=>new Set(k),[k]),j=e.getRowModel(),M=!!n,N=j.rows.length>0,ae=(0,X.useCallback)(e=>[...e].sort((e,t)=>(E.get(e.column.id)??2**53-1)-(E.get(t.column.id)??2**53-1)),[E]),se=(0,X.useCallback)((t,n)=>{e.setColumnSizing(e=>pe(e,t,n,C))},[C,e]),ce=(0,X.useCallback)(t=>{e.setColumnSizing(e=>le(e,t))},[e]),ue=(0,X.useCallback)(n=>{let r=p({event:n,items:T});if(!r)return;let i=qi(e,t),a=de({order:i,headerIds:T,pinnedIds:k,activeId:String(r.activeId),overId:String(r.overId)});a&&e.setColumnOrder(a)},[t,k,e,T]),fe=e=>{if(e.isPlaceholder)return null;let t=L(e.column.columnDef.header,e.getContext()),n=b?.(e);return n?(0,Z.jsxs)(Ae,{children:[(0,Z.jsx)(Ae.Trigger,{children:(0,Z.jsx)(`div`,{className:Y.headerContextMenuTrigger,tabIndex:0,children:t})}),(0,Z.jsx)(Ae.Content,{children:n})]}):t},me=(e,t)=>{!(f?.(t)??!!d)||!d||ge(e.target,u)||d(t)},he=(e,t)=>{!(f?.(t)??!!d)||!d||ge(e.target,u)||ve(e,()=>d(t))};return(0,Z.jsxs)(Me,{templateRows:M?`auto 1fr`:`1fr`,className:F(`overflowHidden w100 h100`,Y.root,a),style:{minHeight:o},children:[M&&(0,Z.jsx)(`h3`,{className:`marginBottomXs`,children:n}),(0,Z.jsxs)(`div`,{className:`surface0 overflowHidden relative w100 h100`,children:[(0,Z.jsx)(Be,{ref:l,className:`w100 h100`,children:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`table`,{className:F(Y.table,s),children:[(0,Z.jsx)(`colgroup`,{children:w.map(e=>(0,Z.jsx)(`col`,{style:e.width?{width:e.width}:void 0},e.id))}),(0,Z.jsx)(`thead`,{className:F(`stickyTop`,Y.head),children:S?(0,Z.jsx)(m.Root,{sensors:re,modifiers:[vi],onDragEnd:ue,children:(0,Z.jsx)(m.Container,{containerId:`base-table-header`,items:T,layout:`horizontal`,children:ie.map((e,t)=>(0,Z.jsx)(`tr`,{className:Y.headerRow,children:e.map(e=>{let{isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r}=Ki(e,D,O),i=e.isPlaceholder||!ne.has(e.column.id)||A.has(e.column.id);return(0,Z.jsx)(Vi,{header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:i,enableColumnResizing:x,enableColumnReordering:S,columnResizeMinWidth:C,renderHeaderContent:fe,onResizeColumn:se,onResetColumnWidth:ce},e.id)})},`header-group-${t}`))})}):ie.map((e,t)=>(0,Z.jsx)(`tr`,{className:Y.headerRow,children:e.map(e=>{let{isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r}=Ki(e,D,O);return(0,Z.jsx)(Vi,{header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:!0,enableColumnResizing:x,enableColumnReordering:S,columnResizeMinWidth:C,renderHeaderContent:fe,onResizeColumn:se,onResetColumnWidth:ce},e.id)})},`header-group-${t}`))}),(0,Z.jsxs)(`tbody`,{children:[j.rows.map(e=>{let t=f?.(e)??!!d;return(0,Z.jsx)(`tr`,{className:F(Y.bodyRow,t&&Y.bodyRowInteractive,e.getIsSelected()&&Y.bodyRowSelected,h?.(e)),"aria-selected":c===`none`?void 0:e.getIsSelected(),tabIndex:t?0:void 0,onClick:t=>me(t,e),onKeyDown:t=>he(t,e),children:ae([...e.getStartVisibleCells(),...e.getCenterVisibleCells(),...e.getEndVisibleCells()]).map(t=>{let n=oe(t.column.columnDef),r=L(t.column.columnDef.cell,t.getContext()),i={row:e,cell:t,defaultContent:r,columnMeta:n},a=v?.(i),o=t.column.getIsPinned()===`start`,s=t.column.id===O,c={...n?.align?{textAlign:n.align}:{},...o?{insetInlineStart:D[t.column.id]??`0px`}:{},..._?.(i)??{}};return(0,Z.jsx)(`td`,{className:F(Y.bodyCell,o&&Y.bodyCellPinnedStart,s&&Y.pinnedStartBoundary,a?.mergeWithNext&&Y.bodyCellMergedWithNext,g?.(i)),style:c,children:a?.hideContent?null:y?y(i):r},t.id)})},e.id)}),i&&N&&(0,Z.jsx)(`tr`,{className:Y.fetchingRow,children:(0,Z.jsx)(`td`,{colSpan:Math.max(te.length,1),className:Y.feedbackCell,children:(0,Z.jsx)(De,{})})})]})]}),ee]})}),(0,Z.jsxs)(`div`,{className:`absolute inset0 border`,style:{pointerEvents:`none`,zIndex:20},children:[!r&&!i&&!N&&(0,Z.jsx)(Oe,{className:Y.noData}),r&&!N&&(0,Z.jsx)(De,{className:`h100 w100`})]})]})]})}var X,Z;function Yi(){return(Yi=t((()=>{X=r(),yi(),Fe(),N(),I(),Je(),ke(),je(),Te(),Ee(),ze(),f(),Xr(),Bi(),Ui(),Z=h(),Ji.__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 Xi,Zi,Qi,Q;function $i(){return($i=t((()=>{Xi=`jPPyP7`,Zi=`Oa7e5P`,Qi=`KhQtgF`,Q={formattedCellValue:Xi,formattedCell:Zi,formattedCellInner:Qi}})))()}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=Se(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:F(Q.formattedCell,o),children:(0,$.jsxs)(`div`,{className:Q.formattedCellInner,style:{justifyContent:s},children:[e.iconPosition===`left`?(0,$.jsx)(Er,{state:i}):null,r?(0,$.jsx)(`span`,{ref:n,className:F(`textOverflow`,Q.formattedCellValue),style:{textAlign:c},children:a}):null,e.iconPosition===`right`?(0,$.jsx)(Er,{state:i}):null]})})}var ta,$;function na(){return(na=t((()=>{ta=r(),we(),I(),jr(),$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{ti as _,_i as a,gr as b,pi as c,li as d,si as f,ni as g,ei as h,Yi as i,fi as l,oi as m,na as n,gi as o,ai as p,Ji as r,hi as s,ea as t,ui as u,Kr as v,mr as x,Xr as y};