@ryuzaki13/react-foundation-ui 1.5.0 → 1.5.2

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 (333) hide show
  1. package/dist/advanced-search/index.js +4 -4
  2. package/dist/base-table/index.js +1 -1
  3. package/dist/chunks/CalendarView-Cfih7hjD.js +439 -0
  4. package/dist/chunks/{CalendarView-DtacoN_c.js.map → CalendarView-Cfih7hjD.js.map} +1 -1
  5. package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
  6. package/dist/chunks/{TextEditorLexicalClient-DVML-Nhd.js → TextEditorLexicalClient-BSafrkLJ.js} +241 -275
  7. package/dist/chunks/TextEditorLexicalClient-BSafrkLJ.js.map +1 -0
  8. package/dist/chunks/{base-table-BPcdSitC.js → base-table-X7aSSjXa.js} +2 -2
  9. package/dist/chunks/{base-table-BPcdSitC.js.map → base-table-X7aSSjXa.js.map} +1 -1
  10. package/dist/chunks/{context-menu-BY4pYGwB.js → context-menu-tcD3kVAc.js} +58 -62
  11. package/dist/chunks/context-menu-tcD3kVAc.js.map +1 -0
  12. package/dist/chunks/date-input-Bsl9dxxY.js +341 -0
  13. package/dist/chunks/date-input-Bsl9dxxY.js.map +1 -0
  14. package/dist/chunks/{input-BWCaVC06.js → input-CAw1Loze.js} +54 -47
  15. package/dist/chunks/input-CAw1Loze.js.map +1 -0
  16. package/dist/chunks/{input-files-62qH2TMj.js → input-files-CLtQ7p8j.js} +2 -2
  17. package/dist/chunks/{input-files-62qH2TMj.js.map → input-files-CLtQ7p8j.js.map} +1 -1
  18. package/dist/chunks/{input-search-CdPI1cb6.js → input-search-F6MPrUGF.js} +2 -2
  19. package/dist/chunks/{input-search-CdPI1cb6.js.map → input-search-F6MPrUGF.js.map} +1 -1
  20. package/dist/chunks/modal-DPIXoMkB.js.map +1 -1
  21. package/dist/chunks/{multi-select-01xmD1nZ.js → multi-select-CZPB8H6v.js} +61 -60
  22. package/dist/chunks/multi-select-CZPB8H6v.js.map +1 -0
  23. package/dist/chunks/{picker-Mdb73_uW.js → picker-TYLwgl1c.js} +82 -92
  24. package/dist/chunks/{picker-Mdb73_uW.js.map → picker-TYLwgl1c.js.map} +1 -1
  25. package/dist/chunks/{select-DRf4_a1Z.js → select-BwbljzU9.js} +35 -34
  26. package/dist/chunks/select-BwbljzU9.js.map +1 -0
  27. package/dist/chunks/{table-DSg9gi_l.js → table-DihiNNJt.js} +2 -2
  28. package/dist/chunks/{table-DSg9gi_l.js.map → table-DihiNNJt.js.map} +1 -1
  29. package/dist/chunks/types-CxXyru6U.js.map +1 -1
  30. package/dist/chunks/{useODataSelectBase-DI_wwKgw.js → useODataSelectBase-Bfljwe39.js} +16 -24
  31. package/dist/chunks/{useODataSelectBase-DI_wwKgw.js.map → useODataSelectBase-Bfljwe39.js.map} +1 -1
  32. package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
  33. package/dist/context-menu/index.js +1 -1
  34. package/dist/date-input/index.js +2 -2
  35. package/dist/date-input/lib/dateInputValue.d.ts +2 -6
  36. package/dist/date-input/lib/dateInputValue.d.ts.map +1 -1
  37. package/dist/date-input/lib/types.d.ts +0 -4
  38. package/dist/date-input/lib/types.d.ts.map +1 -1
  39. package/dist/date-input/model/useDateInput.d.ts +2 -2
  40. package/dist/date-input/model/useDateInput.d.ts.map +1 -1
  41. package/dist/date-input/ui/CalendarView.d.ts.map +1 -1
  42. package/dist/date-input/ui/DateInput.d.ts +0 -4
  43. package/dist/date-input/ui/DateInput.d.ts.map +1 -1
  44. package/dist/date-time-input/index.js +229 -234
  45. package/dist/date-time-input/index.js.map +1 -1
  46. package/dist/date-time-input/model/useDateTimeSegments.d.ts.map +1 -1
  47. package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
  48. package/dist/disclosure/index.js.map +1 -1
  49. package/dist/drop-zone/index.js +1 -1
  50. package/dist/image/index.js +2 -2
  51. package/dist/input/Input.d.ts.map +1 -1
  52. package/dist/input/index.js +1 -1
  53. package/dist/input-date-time/index.js +1 -1
  54. package/dist/input-file/index.js +1 -1
  55. package/dist/input-files/index.js +1 -1
  56. package/dist/input-image/index.js +1 -1
  57. package/dist/input-search/index.js +1 -1
  58. package/dist/layout-picker/index.js +1 -1
  59. package/dist/list/List.d.ts.map +1 -1
  60. package/dist/list/index.js +74 -45
  61. package/dist/list/index.js.map +1 -1
  62. package/dist/list/useListVirtualizer.d.ts +13 -0
  63. package/dist/list/useListVirtualizer.d.ts.map +1 -0
  64. package/dist/multi-select/index.js +1 -1
  65. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  66. package/dist/picker/index.js +1 -1
  67. package/dist/picker/model/usePickerQuery.d.ts +6 -2
  68. package/dist/picker/model/usePickerQuery.d.ts.map +1 -1
  69. package/dist/picker/model/usePickerSelectionLifecycle.d.ts.map +1 -1
  70. package/dist/preset-range-date-input/index.js +1 -1
  71. package/dist/preset-select/index.js +1 -1
  72. package/dist/select/Select.d.ts.map +1 -1
  73. package/dist/select/index.js +1 -1
  74. package/dist/simple-table/index.js +1 -1
  75. package/dist/slider/SliderInput.d.ts.map +1 -1
  76. package/dist/slider/index.js +333 -290
  77. package/dist/slider/index.js.map +1 -1
  78. package/dist/state-select/index.js +1 -1
  79. package/dist/styles.css +1 -1
  80. package/dist/table/index.js +1 -1
  81. package/dist/table-sorting/index.js +1 -1
  82. package/dist/tabs/index.js.map +1 -1
  83. package/dist/tag-input/TagInput.d.ts.map +1 -1
  84. package/dist/tag-input/index.js +1 -1
  85. package/dist/tag-input/index.js.map +1 -1
  86. package/dist/text-editor/EmailDialog.d.ts +1 -2
  87. package/dist/text-editor/EmailDialog.d.ts.map +1 -1
  88. package/dist/text-editor/LinkDialog.d.ts +1 -2
  89. package/dist/text-editor/LinkDialog.d.ts.map +1 -1
  90. package/dist/text-editor/PhoneDialog.d.ts +1 -2
  91. package/dist/text-editor/PhoneDialog.d.ts.map +1 -1
  92. package/dist/text-editor/SemanticDialog.d.ts +1 -2
  93. package/dist/text-editor/SemanticDialog.d.ts.map +1 -1
  94. package/dist/text-editor/TextEditorDialogs.d.ts +2 -1
  95. package/dist/text-editor/TextEditorDialogs.d.ts.map +1 -1
  96. package/dist/text-editor/TimeDialog.d.ts +1 -2
  97. package/dist/text-editor/TimeDialog.d.ts.map +1 -1
  98. package/dist/text-editor/index.js +1 -1
  99. package/dist/text-editor/nodes/AccessibleLinkNode.d.ts.map +1 -1
  100. package/dist/text-editor/nodes/SemanticTagNode.d.ts.map +1 -1
  101. package/dist/text-editor/toolbar/types.d.ts.map +1 -1
  102. package/dist/textarea/index.js +1 -1
  103. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  104. package/dist/tree-select/index.js +244 -249
  105. package/dist/tree-select/index.js.map +1 -1
  106. package/dist/tree-table/index.js +1 -1
  107. package/package.json +1 -1
  108. package/storybook-static/assets/{Badge-CblO4qSx.js → Badge-DdvnnE8F.js} +1 -1
  109. package/storybook-static/assets/{Badge.stories-CtRrqjAo.js → Badge.stories-BUKUom98.js} +1 -1
  110. package/storybook-static/assets/{Button-Bzc9jBAF.js → Button-CghMveZ5.js} +1 -1
  111. package/storybook-static/assets/{Button-BVt4jmN4.js → Button-Co_JCRHU.js} +1 -1
  112. package/storybook-static/assets/{Button.stories-tqfxm0ox.js → Button.stories-CGj8XyOO.js} +1 -1
  113. package/storybook-static/assets/{CalendarView-MkrPd5D-.js → CalendarView-CaphwAt-.js} +1 -1
  114. package/storybook-static/assets/{CheckBox-0BK2dgdD.js → CheckBox-BQcaUjLx.js} +1 -1
  115. package/storybook-static/assets/{CheckBox-CWipX4CI.js → CheckBox-DAffOBou.js} +1 -1
  116. package/storybook-static/assets/CheckBox-Dw4nDCv8.css +1 -0
  117. package/storybook-static/assets/{CheckBox.stories-B5yWzlQa.js → CheckBox.stories-D_pMeQfu.js} +1 -1
  118. package/storybook-static/assets/{Color-6AOWCN3U-WdTzF_2p.js → Color-6AOWCN3U--6e3-dEn.js} +1 -1
  119. package/storybook-static/assets/{ContextMenu-kbSWsoCE.js → ContextMenu-CCuLOUEi.js} +1 -1
  120. package/storybook-static/assets/ContextMenu-CCwVy2bU.js +1 -0
  121. package/storybook-static/assets/{ContextMenu.stories-CQcrX3sj.js → ContextMenu.stories-DvArgxXF.js} +1 -1
  122. package/storybook-static/assets/{DateInput-CyNIW9Md.js → DateInput-2WtbeZR7.js} +1 -1
  123. package/storybook-static/assets/DateInput-DNJ3WoMQ.js +1 -0
  124. package/storybook-static/assets/{DateInput.stories-DyB3PjTl.js → DateInput.stories-v5ti6IEo.js} +1 -1
  125. package/storybook-static/assets/{DateRangePresetSelect-CBZ0OAmn.js → DateRangePresetSelect-CPxgZfAB.js} +1 -1
  126. package/storybook-static/assets/{DateRangePresetSelect-BwibZk_q.js → DateRangePresetSelect-q30Gumdf.js} +1 -1
  127. package/storybook-static/assets/{DateRangePresetSelect.stories-kmmKl-3j.js → DateRangePresetSelect.stories-DdOS7cEa.js} +1 -1
  128. package/storybook-static/assets/{Detail-pHBZ5bkR.js → Detail-DIuLwIa1.js} +1 -1
  129. package/storybook-static/assets/{Detail.stories-Bs5YNmLn.js → Detail.stories-D3P1LkKH.js} +1 -1
  130. package/storybook-static/assets/{Dialog-DbFhCtF1.js → Dialog-zOHAVMnY.js} +1 -1
  131. package/storybook-static/assets/{Dialog-DBTU-LRR.js → Dialog-zxssjiyA.js} +1 -1
  132. package/storybook-static/assets/{Dialog.stories-_WQW8YNs.js → Dialog.stories-CPdleZZG.js} +1 -1
  133. package/storybook-static/assets/{Disclosure-vOJWmhLt.js → Disclosure-X-fwyTOO.js} +1 -1
  134. package/storybook-static/assets/{Disclosure.stories-wyulIOoJ.js → Disclosure.stories-DhBj8XEl.js} +1 -1
  135. package/storybook-static/assets/{DisclosureGroup-DjObX5Qs.css → DisclosureGroup-CNoH2D1R.css} +1 -1
  136. package/storybook-static/assets/{DisclosureGroup-BUDxwl5C.js → DisclosureGroup-COBTA8iF.js} +1 -1
  137. package/storybook-static/assets/{DocsRenderer-JROSPFPF-B7vhvrpB.js → DocsRenderer-JROSPFPF-DBKu16F9.js} +1 -1
  138. package/storybook-static/assets/{DropZone-BvRT0gUm.js → DropZone-BxSCEj48.js} +1 -1
  139. package/storybook-static/assets/{DropZone-B7Q1qQqP.js → DropZone-C8pMmwdl.js} +1 -1
  140. package/storybook-static/assets/{DropZone.stories-WmoR3uPj.js → DropZone.stories-BCAhhItK.js} +1 -1
  141. package/storybook-static/assets/{DropdownMenu-BW35W6_U.js → DropdownMenu-Bi3Tiwls.js} +1 -1
  142. package/storybook-static/assets/{ExpandableActionPanel-C9G9PsZx.js → ExpandableActionPanel-CBwWx_Nv.js} +1 -1
  143. package/storybook-static/assets/{ExpandableActionPanel.stories-Dllpmeu_.js → ExpandableActionPanel.stories-BkYsUqoo.js} +1 -1
  144. package/storybook-static/assets/{Flex-Cydb-4MR.js → Flex-CO947dLM.js} +1 -1
  145. package/storybook-static/assets/{Flex.stories-Dczj9g4W.js → Flex.stories-DMUThbwO.js} +1 -1
  146. package/storybook-static/assets/{FloatingPopover-C-W77AcJ.js → FloatingPopover-BlMi_zjk.js} +1 -1
  147. package/storybook-static/assets/{FormattedTableCell-fePg_bmP.js → FormattedTableCell-DDNLMP5K.js} +1 -1
  148. package/storybook-static/assets/{Grid-Dal3v5dj.js → Grid-39TY8m4Z.js} +1 -1
  149. package/storybook-static/assets/{Grid.stories-Byb4mMpE.js → Grid.stories-DYvrXiSG.js} +1 -1
  150. package/storybook-static/assets/{ImageCropper.stories-B9OD2pur.js → ImageCropper.stories-B9ltINOC.js} +1 -1
  151. package/storybook-static/assets/{ImageRenderer-BcUjptiu.js → ImageRenderer-DA--Akcn.js} +1 -1
  152. package/storybook-static/assets/{ImageRenderer.stories-BuO2nhom.js → ImageRenderer.stories-BVdd0zeh.js} +1 -1
  153. package/storybook-static/assets/{ImageView.stories-mSkR535R.js → ImageView.stories-DIQCaBWQ.js} +1 -1
  154. package/storybook-static/assets/{ImageViewer.stories-DVdR3-_j.js → ImageViewer.stories-CyYc6RrG.js} +2 -2
  155. package/storybook-static/assets/{ImageViewerRuntime-DiR_HwIE.js → ImageViewerRuntime-eZU4pDw8.js} +1 -1
  156. package/storybook-static/assets/{Input-DZQKV4DP.js → Input-DvVsbr8K.js} +1 -1
  157. package/storybook-static/assets/{Input-BdCavSu1.js → Input-VmS-QVKm.js} +1 -1
  158. package/storybook-static/assets/{Input.stories-Cu66SvKb.js → Input.stories-mATd9a0c.js} +1 -1
  159. package/storybook-static/assets/{InputDateTime-Day94W-O.js → InputDateTime-BSnv1V99.js} +1 -1
  160. package/storybook-static/assets/{InputDateTime.stories-990MuicZ.js → InputDateTime.stories-BHseZWJW.js} +1 -1
  161. package/storybook-static/assets/{InputFile-CJll5mC-.js → InputFile-Du6kJw8h.js} +1 -1
  162. package/storybook-static/assets/{InputFile-Cp8x84ZG.js → InputFile-YpStVIKr.js} +1 -1
  163. package/storybook-static/assets/{InputFile.stories-fNNwbNfa.js → InputFile.stories-B9bGCSU3.js} +1 -1
  164. package/storybook-static/assets/{InputFiles-OusF5Lfq.js → InputFiles-BNhs2jEI.js} +1 -1
  165. package/storybook-static/assets/{InputFiles-CBvR3Szf.js → InputFiles-PUk0s7uQ.js} +1 -1
  166. package/storybook-static/assets/{InputFiles.stories-DcpEbOOo.js → InputFiles.stories-CxVfsYaA.js} +1 -1
  167. package/storybook-static/assets/{InputFilesList-zuNP1QIB.js → InputFilesList-_rwKzQPQ.js} +1 -1
  168. package/storybook-static/assets/{InputImage-CjMAL3uq.js → InputImage-Trwkv0rb.js} +1 -1
  169. package/storybook-static/assets/{InputImage-Dl2bJNZk.js → InputImage-XAl4ina5.js} +1 -1
  170. package/storybook-static/assets/{InputImage.stories-BzxEndIe.js → InputImage.stories-Dddz-oRL.js} +1 -1
  171. package/storybook-static/assets/{InteractiveComponents.stories-CXF1nGLl.js → InteractiveComponents.stories-BZZTxt_C.js} +1 -1
  172. package/storybook-static/assets/{LayoutPicker-DzAN3gGO.js → LayoutPicker-BzGJmYT0.js} +1 -1
  173. package/storybook-static/assets/{LayoutPicker-BahcFBzK.js → LayoutPicker-z5o3xDMb.js} +1 -1
  174. package/storybook-static/assets/{LayoutPicker.stories-ByamaGlv.js → LayoutPicker.stories-Du2gCRWE.js} +1 -1
  175. package/storybook-static/assets/{Listbox-C5hwzE4s.js → Listbox-C4QRr_MP.js} +1 -1
  176. package/storybook-static/assets/{Listbox-CHsNGsDc.js → Listbox-DuZWJ8ZZ.js} +1 -1
  177. package/storybook-static/assets/{Listbox.stories-CvXZeESb.js → Listbox.stories-Y-8RgXM_.js} +1 -1
  178. package/storybook-static/assets/{Modal-Dib11Lzy.js → Modal-D9Zfvpww.js} +1 -1
  179. package/storybook-static/assets/{Modal.stories-DYMy-kLP.js → Modal.stories-BnFP5Zrr.js} +1 -1
  180. package/storybook-static/assets/{ModalManagerProvider-BL_cTIW7.css → ModalManagerProvider-C5bd7SFD.css} +1 -1
  181. package/storybook-static/assets/{ModalManagerProvider-natWXnSM.js → ModalManagerProvider-Duey-HBY.js} +1 -1
  182. package/storybook-static/assets/{MultiSelect-DlCZ7dhH.js → MultiSelect-BeQ2iAxN.js} +1 -1
  183. package/storybook-static/assets/{MultiSelect-Cl9MkPZw.js → MultiSelect-BhMW5jH5.js} +1 -1
  184. package/storybook-static/assets/{MultiSelect.stories-202TRBKq.js → MultiSelect.stories-Cayi9A_V.js} +1 -1
  185. package/storybook-static/assets/{NoData-DcHZdLTJ.js → NoData-CeHT8LTg.js} +1 -1
  186. package/storybook-static/assets/{NotificationsHost-DzqEi2vc.js → NotificationsHost-_4XSnTo2.js} +1 -1
  187. package/storybook-static/assets/{NotificationsHost.stories-CvoQfIjj.js → NotificationsHost.stories-C-2ucbpq.js} +1 -1
  188. package/storybook-static/assets/{ODataMultiSelect-CHQguikm.js → ODataMultiSelect-DILkVUzB.js} +1 -1
  189. package/storybook-static/assets/{ODataMultiSelect.stories-BZbWK4CP.js → ODataMultiSelect.stories-odWzDl6l.js} +1 -1
  190. package/storybook-static/assets/{ODataSelect-C1YGDpg_.js → ODataSelect-BUAhfvPU.js} +1 -1
  191. package/storybook-static/assets/{ODataSelect.stories-D4tQXs2c.js → ODataSelect.stories-PpNPmCz2.js} +1 -1
  192. package/storybook-static/assets/{ODataTreeMultiSelect-BjR7zhyJ.js → ODataTreeMultiSelect-BH7nIL9w.js} +1 -1
  193. package/storybook-static/assets/{ODataTreeMultiSelect.stories-Drg8mLhi.js → ODataTreeMultiSelect.stories-C4zOROB1.js} +1 -1
  194. package/storybook-static/assets/{ODataTreeSelect-D_fcT3Aw.js → ODataTreeSelect-CkJq3807.js} +1 -1
  195. package/storybook-static/assets/{ODataTreeSelect.stories-BWFdmmvf.js → ODataTreeSelect.stories-BcbRGbmJ.js} +1 -1
  196. package/storybook-static/assets/{OneStepScroller-DWCRXFHq.js → OneStepScroller-BGIjsObI.js} +1 -1
  197. package/storybook-static/assets/{PeriodSelect-DtfTzrNK.js → PeriodSelect-BcG6A50F.js} +1 -1
  198. package/storybook-static/assets/{PeriodSelect-C7QQKxZ4.js → PeriodSelect-DvAMLr40.js} +1 -1
  199. package/storybook-static/assets/{PeriodSelect.stories-CF65LIHm.js → PeriodSelect.stories-DmvK-wEi.js} +1 -1
  200. package/storybook-static/assets/{PickerSelectionToolbar-D9atWyWj.js → PickerSelectionToolbar-Cas1QrbP.js} +1 -1
  201. package/storybook-static/assets/{PickerTriggerActions-C7WeaOKN.js → PickerTriggerActions-DUcQfADH.js} +1 -1
  202. package/storybook-static/assets/{Popover-CUJF-IMC.js → Popover-Dl9KlVW0.js} +1 -1
  203. package/storybook-static/assets/{Popover-DQJIeny_.js → Popover-mm3LuMCX.js} +1 -1
  204. package/storybook-static/assets/{Popover.stories-BON0z3PX.js → Popover.stories-BqlULHhR.js} +1 -1
  205. package/storybook-static/assets/{PresetRangeDateInput-D3_uzWzQ.js → PresetRangeDateInput-84a4mW00.js} +1 -1
  206. package/storybook-static/assets/{PresetRangeDateInput-DpA1KOCo.js → PresetRangeDateInput-Dp-RORYt.js} +1 -1
  207. package/storybook-static/assets/{PresetRangeDateInput.stories-CDDJDiei.js → PresetRangeDateInput.stories-Bw3dSWVM.js} +1 -1
  208. package/storybook-static/assets/{PresetSelect-DlV2eC-b.js → PresetSelect-DbMc37dQ.js} +1 -1
  209. package/storybook-static/assets/{RadioButton-BLyqp88m.js → RadioButton-Ceuq5i6x.js} +1 -1
  210. package/storybook-static/assets/{RadioButton-wkLEwRaH.js → RadioButton-DhaK8UUD.js} +1 -1
  211. package/storybook-static/assets/{RadioButton.stories-DS9RYBEJ.js → RadioButton.stories-S98_hDUl.js} +1 -1
  212. package/storybook-static/assets/{RadioGroup-CsWIje1J.js → RadioGroup-BqSOcKQI.js} +1 -1
  213. package/storybook-static/assets/{RadioGroup-DERcyzA0.js → RadioGroup-Di55rXi_.js} +1 -1
  214. package/storybook-static/assets/{RadioGroup.stories-DkgUPavS.js → RadioGroup.stories-7RFD3uHM.js} +1 -1
  215. package/storybook-static/assets/{Scrollable-DvJ3T3Ik.js → Scrollable-B0p5mrx8.js} +1 -1
  216. package/storybook-static/assets/Select-BS9Its_r.js +12 -0
  217. package/storybook-static/assets/{Select-DmEm2boi.js → Select-CIqhX4mK.js} +1 -1
  218. package/storybook-static/assets/{Select.stories-BEPJovVd.js → Select.stories-DNhv8-zb.js} +1 -1
  219. package/storybook-static/assets/{SelectOptionContent-B5E2W8PZ.js → SelectOptionContent-DXq8ymaG.js} +1 -1
  220. package/storybook-static/assets/{SerializableSelect-wgzDfqEi.js → SerializableSelect-Wq154MOD.js} +1 -1
  221. package/storybook-static/assets/{SerializableSelect.stories-V8IqyO9Y.js → SerializableSelect.stories-5sc1J9RV.js} +1 -1
  222. package/storybook-static/assets/{SingleDateTimeInput-B7v0t9f5.js → SingleDateTimeInput-Bkv6gIle.js} +1 -1
  223. package/storybook-static/assets/SingleDateTimeInput-D7sbOu36.js +1 -0
  224. package/storybook-static/assets/{SingleDateTimeInput.stories-FOoEMoyF.js → SingleDateTimeInput.stories-DWWk1ufW.js} +1 -1
  225. package/storybook-static/assets/{Slider-24H5ASxG.js → Slider-BGsWuJAm.js} +1 -1
  226. package/storybook-static/assets/{Slider-3HQKHpoi.js → Slider-BxM1AhD9.js} +1 -1
  227. package/storybook-static/assets/{Slider.stories-DeeP8cmV.js → Slider.stories-VJI4Rnlr.js} +1 -1
  228. package/storybook-static/assets/{SliderInput-CFbx-GW7.js → SliderInput-CzLa4eqn.js} +1 -1
  229. package/storybook-static/assets/SliderInput-D4y-O8R2.js +2 -0
  230. package/storybook-static/assets/{SliderInput.stories-Djli653m.js → SliderInput.stories-g0Kwo7dl.js} +1 -1
  231. package/storybook-static/assets/{Sortable-CMo2PMKX.js → Sortable-CgA1YBUW.js} +1 -1
  232. package/storybook-static/assets/{Sortable.stories-BFsQvwMx.js → Sortable.stories-x3gePcSZ.js} +1 -1
  233. package/storybook-static/assets/{Splitter-dwOhGuIg.js → Splitter-BgFyt-RI.js} +1 -1
  234. package/storybook-static/assets/{Splitter.stories-DZ3nAxpo.js → Splitter.stories-CkN8ukyN.js} +1 -1
  235. package/storybook-static/assets/{StateSelect-j3gi4kbM.js → StateSelect-Ce4t44r8.js} +1 -1
  236. package/storybook-static/assets/{StateSelect-IigEzRom.js → StateSelect-DSuIDlz9.js} +1 -1
  237. package/storybook-static/assets/{StateSelect.stories-Bj-2m2hS.js → StateSelect.stories-BPomWgn7.js} +1 -1
  238. package/storybook-static/assets/{StringToggle.stories-ClSl76ts.js → StringToggle.stories-CnMi5EAT.js} +1 -1
  239. package/storybook-static/assets/{Switch-C9OAPzUM.js → Switch-DDCJrhcQ.js} +1 -1
  240. package/storybook-static/assets/{Switch-BDbBZjMA.js → Switch-OWLmHmHZ.js} +1 -1
  241. package/storybook-static/assets/{Switch.stories-CQ3ueThx.js → Switch.stories-BDu-Afks.js} +1 -1
  242. package/storybook-static/assets/{Table-BbGcLQ81.js → Table-DZg-HjgT.js} +1 -1
  243. package/storybook-static/assets/{Table.stories-DvaHP59R.js → Table.stories-C1tWXfqI.js} +1 -1
  244. package/storybook-static/assets/{Tabs-CNEYvzUv.js → Tabs-DRfMQ8Jx.js} +1 -1
  245. package/storybook-static/assets/{Tabs.stories-BpyQokl8.js → Tabs.stories-Dgdc1lZD.js} +1 -1
  246. package/storybook-static/assets/TabsBox-B5ugO318.css +1 -0
  247. package/storybook-static/assets/{TabsBox-ClZCbgKB.js → TabsBox-DljUVTsd.js} +1 -1
  248. package/storybook-static/assets/{TagInput-DorsSF_V.js → TagInput-BCS6WLcW.js} +1 -1
  249. package/storybook-static/assets/{TagInput.stories-ChgRz4Co.js → TagInput.stories-Dy5AVzAj.js} +1 -1
  250. package/storybook-static/assets/{Text-DUqtop-c.js → Text-C4TWqy0Q.js} +1 -1
  251. package/storybook-static/assets/{Textarea-ZfZJmHsp.js → Textarea-5Gx2U0_d.js} +1 -1
  252. package/storybook-static/assets/{Textarea-yZWv6QdW.js → Textarea-BZrJEPN7.js} +1 -1
  253. package/storybook-static/assets/{Textarea.stories-B5Q7syxH.js → Textarea.stories-BvdLNmb_.js} +1 -1
  254. package/storybook-static/assets/{TimePanel-C39f__j8.js → TimePanel-D3QC0eS8.js} +1 -1
  255. package/storybook-static/assets/{TimePanel.stories-DtjILTPk.js → TimePanel.stories-BZOB234n.js} +1 -1
  256. package/storybook-static/assets/{Toggle-CdpPJI_O.js → Toggle-BpzUjB13.js} +1 -1
  257. package/storybook-static/assets/{Toggle-BndjhQFY.js → Toggle-DarFnpF4.js} +1 -1
  258. package/storybook-static/assets/{Toggle.stories-BD_C0YTw.js → Toggle.stories-DyPUelGH.js} +1 -1
  259. package/storybook-static/assets/{TreeMultiSelect--M1WiE_f.js → TreeMultiSelect-DNjTWvVq.js} +1 -1
  260. package/storybook-static/assets/{TreeMultiSelect-BPz5kISi.js → TreeMultiSelect-DqpIhAuh.js} +1 -1
  261. package/storybook-static/assets/{TreeMultiSelect.stories-BgkDJur9.js → TreeMultiSelect.stories-Uc9jwEfE.js} +1 -1
  262. package/storybook-static/assets/TreePickerBase-BRKipsrA.js +22 -0
  263. package/storybook-static/assets/{TreeSelect-B0RWsDT4.js → TreeSelect-Bp1Zik9B.js} +1 -1
  264. package/storybook-static/assets/{TreeSelect-BrQGgG40.js → TreeSelect-CrLx5V7M.js} +1 -1
  265. package/storybook-static/assets/{TreeSelect.stories-DkgdJ5XX.js → TreeSelect.stories-RlHKzmuz.js} +1 -1
  266. package/storybook-static/assets/{TreeTable-HQr8pb9r.js → TreeTable-DhQ6u1Pe.js} +1 -1
  267. package/storybook-static/assets/{TreeTable.stories-C4hcph6x.js → TreeTable.stories-CAs-UAM0.js} +1 -1
  268. package/storybook-static/assets/{async-lzSWdC34.js → async-B2DliTcn.js} +1 -1
  269. package/storybook-static/assets/{blocks-D8l_hmHU.js → blocks-CGuhQMXa.js} +3 -3
  270. package/storybook-static/assets/{browserAndReact-BwvRFhzI.js → browserAndReact-C-OypV8y.js} +1 -1
  271. package/storybook-static/assets/{check-DpX8PMs_.js → check-Bw0XnpCV.js} +1 -1
  272. package/storybook-static/assets/{chevron-down-DE8FRR-h.js → chevron-down-CfrX73tO.js} +1 -1
  273. package/storybook-static/assets/{chevron-left-Cy3TEG_Y.js → chevron-left-DpeXiQaY.js} +1 -1
  274. package/storybook-static/assets/{chevron-right-CZ4-4s1X.js → chevron-right-BFJM6q51.js} +1 -1
  275. package/storybook-static/assets/{chunk-W22LQPXL-Ci-XApFb.js → chunk-W22LQPXL-Bt3_v9HM.js} +1 -1
  276. package/storybook-static/assets/{circle-alert-CWbgc3Jn.js → circle-alert-y52RJRUz.js} +1 -1
  277. package/storybook-static/assets/{circle-check-DODquDnH.js → circle-check-D-VabHaY.js} +1 -1
  278. package/storybook-static/assets/{components-BdUOCBP9.js → components-I69uHPsH.js} +3 -3
  279. package/storybook-static/assets/{contextMenu-XvvXJEpW.js → contextMenu-DfPU9cBt.js} +1 -1
  280. package/storybook-static/assets/defaultRenderers-Bkg6olnb.js +1 -0
  281. package/storybook-static/assets/{download-BEGaHxQc.js → download-CtH__7oe.js} +1 -1
  282. package/storybook-static/assets/{filesAndExcel-C9FnZv9P.js → filesAndExcel-BkVmFKKv.js} +1 -1
  283. package/storybook-static/assets/{floating-ui.react-GziJy4gA.js → floating-ui.react-CxI0EsOT.js} +1 -1
  284. package/storybook-static/assets/{formatters-CVj-3Vn0-C5-BLq9O.js → formatters-CVj-3Vn0-BFaHJqZL.js} +1 -1
  285. package/storybook-static/assets/{formatters-vWial7jf.js → formatters-D37vYORi.js} +1 -1
  286. package/storybook-static/assets/{formatters-runtime-DO0szrYr.js → formatters-runtime-D3X8TbPs.js} +1 -1
  287. package/storybook-static/assets/{foundationLib-CIqc9fhG.js → foundationLib-DozGtKQB.js} +1 -1
  288. package/storybook-static/assets/{hooks-DfgvMSqN.js → hooks-Df19Nsi2.js} +1 -1
  289. package/storybook-static/assets/{iframe-BHhbrImE.js → iframe-BQrLcg06.js} +3 -3
  290. package/storybook-static/assets/iframe-lJqBcWzL.js +1 -0
  291. package/storybook-static/assets/{info-DSZ4aUvi.js → info-BeGxRQvx.js} +1 -1
  292. package/storybook-static/assets/{odata-DmijE2H9.js → odata-BDmwSB0b.js} +1 -1
  293. package/storybook-static/assets/odata-service-B5w4YBao-BW9QLSrS.js +3 -0
  294. package/storybook-static/assets/{odataAndTables-m2AMS6oI.js → odataAndTables-CdiAn8YJ.js} +1 -1
  295. package/storybook-static/assets/{odataFetchFn-CwpkgKoz.js → odataFetchFn-B4sQvu6J.js} +1 -1
  296. package/storybook-static/assets/{odataStoryFixtures-CBtJYQsv.js → odataStoryFixtures-DJ_pv2Rq.js} +1 -1
  297. package/storybook-static/assets/{persisted-DpSU25AR.js → persisted-Cryvs_Te.js} +1 -1
  298. package/storybook-static/assets/{pureUtilities-BG4ZSO63.js → pureUtilities-YEJFcbIT.js} +1 -1
  299. package/storybook-static/assets/{react-Bz35HWpn.js → react-D5HGS0WP.js} +1 -1
  300. package/storybook-static/assets/{refresh-cw-ltgf4cUB.js → refresh-cw-BtYtkXmi.js} +1 -1
  301. package/storybook-static/assets/{runtimeAndState-C_GrWjr8.js → runtimeAndState-Bc0p1zM-.js} +1 -1
  302. package/storybook-static/assets/{settings-2-qpVYfZn_.js → settings-2-BTaug5uU.js} +1 -1
  303. package/storybook-static/assets/{sortable-CrCQ3H1V.js → sortable-CV5Mg3jp.js} +1 -1
  304. package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-eOr9ght-.js → syntaxhighlighter-T5IQBZDB-CyWSuE24.js} +1 -1
  305. package/storybook-static/assets/{trash-2-lfhUDclN.js → trash-2-Bcxa3Ezm.js} +1 -1
  306. package/storybook-static/assets/{triangle-alert-D9YGTafY.js → triangle-alert-Cy0xZ6CK.js} +1 -1
  307. package/storybook-static/assets/{useODataSelectBase-BVgxJPNn.js → useODataSelectBase-rnvEwUEf.js} +1 -1
  308. package/storybook-static/assets/{useODataTreeData-CdLHOBnD.js → useODataTreeData-DFL7fNez.js} +1 -1
  309. package/storybook-static/assets/{usePickerQuery-B6U-oOS6.js → usePickerQuery-BpbIXzlf.js} +1 -1
  310. package/storybook-static/assets/{usePickerTriggerController-C-VxrzSe.js → usePickerTriggerController-CLjquchr.js} +1 -1
  311. package/storybook-static/assets/{x-CNM39xuu.js → x-CTu2RxD8.js} +1 -1
  312. package/storybook-static/iframe.html +2 -2
  313. package/storybook-static/project.json +1 -1
  314. package/dist/chunks/CalendarView-DtacoN_c.js +0 -439
  315. package/dist/chunks/TextEditorLexicalClient-DVML-Nhd.js.map +0 -1
  316. package/dist/chunks/context-menu-BY4pYGwB.js.map +0 -1
  317. package/dist/chunks/date-input-DKkJO_-h.js +0 -340
  318. package/dist/chunks/date-input-DKkJO_-h.js.map +0 -1
  319. package/dist/chunks/input-BWCaVC06.js.map +0 -1
  320. package/dist/chunks/multi-select-01xmD1nZ.js.map +0 -1
  321. package/dist/chunks/select-DRf4_a1Z.js.map +0 -1
  322. package/storybook-static/assets/CheckBox-8XczNrjq.css +0 -1
  323. package/storybook-static/assets/ContextMenu-BjWu5DHB.js +0 -1
  324. package/storybook-static/assets/DateInput-BUgBb3aH.js +0 -1
  325. package/storybook-static/assets/Select-g0c0XGQY.js +0 -12
  326. package/storybook-static/assets/SingleDateTimeInput-CN7PyOsb.js +0 -1
  327. package/storybook-static/assets/SliderInput-bqFr-Lyp.js +0 -2
  328. package/storybook-static/assets/TabsBox-Co1vxD90.css +0 -1
  329. package/storybook-static/assets/TreePickerBase-Dup03AiC.js +0 -22
  330. package/storybook-static/assets/defaultRenderers-lMEgLPIU.js +0 -1
  331. package/storybook-static/assets/iframe-oIP1aL7X.js +0 -1
  332. package/storybook-static/assets/odata-service-B5w4YBao-BcP2cvfZ.js +0 -3
  333. /package/storybook-static/assets/{CheckBox.module-DPvJxTHD.js → CheckBox.module-CM_GPl_E.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { Text as e } from "../text/index.js";
2
2
  import { t } from "./ui.module-BfaIVBba.js";
3
3
  import { t as n } from "./check-box-6HGX_KOy.js";
4
- import { a as r, c as i, d as a, f as o, i as s, l as c, n as l, p as u, r as d, t as f, u as p } from "./picker-Mdb73_uW.js";
4
+ import { a as r, c as i, d as a, f as o, i as s, l as c, n as l, p as u, r as d, t as f, u as p } from "./picker-TYLwgl1c.js";
5
5
  import { t as ee } from "./separator-B72Aq-6a.js";
6
- import { n as m, r as h, t as g } from "./useODataSelectBase-DI_wwKgw.js";
6
+ import { n as m, r as h, t as g } from "./useODataSelectBase-Bfljwe39.js";
7
7
  import { forwardRef as _, useCallback as te, useMemo as v, useRef as ne, useState as y } from "react";
8
8
  import { flattenODataDependentServices as re, useODataCollectionModel as ie } from "@ryuzaki13/react-foundation-api/odata";
9
9
  import { cn as ae } from "@ryuzaki13/react-foundation-lib/utils";
@@ -168,13 +168,14 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
168
168
  z,
169
169
  p,
170
170
  n
171
- ]), { query: V, setQuery: Se } = d({
172
- open: L,
171
+ ]), { query: V, setQuery: Se, resetQueryOnClose: Ce } = d({
173
172
  query: ae,
174
173
  defaultQuery: ce,
175
174
  onQuery: C,
176
175
  triggerMode: R
177
- }), H = r({
176
+ }), we = (e) => {
177
+ L && !e && Ce && Se(""), ye(e);
178
+ }, H = r({
178
179
  options: z,
179
180
  query: V,
180
181
  enabled: w,
@@ -184,14 +185,14 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
184
185
  query: V,
185
186
  enabled: w,
186
187
  getSearchText: (t) => ge(t, e, B)
187
- }), W = v(() => [...H, ...U], [U, H]), Ce = H.length > 0 ? 0 : -1, { draftValue: G, setDraftValue: K, prepareOpen: we } = l({
188
+ }), W = v(() => [...H, ...U], [U, H]), Te = H.length > 0 ? 0 : -1, { draftValue: G, setDraftValue: K, prepareOpen: Ee } = l({
188
189
  value: z,
189
190
  open: L,
190
191
  onCommit: h,
191
192
  onOpen: T,
192
193
  onClose: ue,
193
194
  isEqual: (t, n) => _e(t, n, e)
194
- }), q = v(() => new Set(G.map((t) => O(t, e))), [e, G]), Te = v(() => ({
195
+ }), q = v(() => new Set(G.map((t) => O(t, e))), [e, G]), De = v(() => ({
195
196
  selectedItems: G,
196
197
  committedSelectedItems: z,
197
198
  selectedKeys: q,
@@ -201,29 +202,29 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
201
202
  G,
202
203
  L,
203
204
  q
204
- ]), J = te((e) => D?.(e, Te) ?? !1, [D, Te]), { activeIndex: Y, context: Ee, floatingStyles: De, getFloatingProps: Oe, setReference: ke, setFloating: Ae, setOptionRef: je, close: Me, openList: Ne, toggleOpen: Pe, selectActiveOption: Fe, handleReferenceKeyDown: Ie, handleFloatingKeyDown: Le, getOptionId: Re, getActiveOptionId: ze } = s({
205
+ ]), J = te((e) => D?.(e, De) ?? !1, [D, De]), { activeIndex: Y, context: Oe, floatingStyles: ke, getFloatingProps: Ae, setReference: je, setFloating: Me, setOptionRef: Ne, close: Pe, openList: Fe, toggleOpen: Ie, selectActiveOption: Le, handleReferenceKeyDown: Re, handleFloatingKeyDown: ze, getOptionId: Be, getActiveOptionId: Ve } = s({
205
206
  options: W,
206
- selectedIndex: Ce,
207
+ selectedIndex: Te,
207
208
  open: L,
208
- onOpenChange: ye,
209
+ onOpenChange: we,
209
210
  onSelect: void 0,
210
211
  disabled: k,
211
212
  getOptionDisabled: J,
212
213
  closeOnSelect: !1,
213
214
  allowOpenWithoutOptions: !0,
214
215
  triggerMode: R
215
- }), Be = le ?? V, X = (t) => {
216
+ }), He = le ?? V, X = (t) => {
216
217
  let n = O(t, e);
217
218
  K((r) => r.some((t) => O(t, e) === n) ? r.filter((t) => O(t, e) !== n) : J(t) ? r : [...r, t]);
218
- }, Ve = (e) => {
219
+ }, Ue = (e) => {
219
220
  if (I.current = e, typeof F == "function") {
220
221
  F(e);
221
222
  return;
222
223
  }
223
224
  F && (F.current = e);
224
- }, He = () => {
225
+ }, We = () => {
225
226
  K([]), L || h([]);
226
- }, Ue = () => {
227
+ }, Ge = () => {
227
228
  K((t) => {
228
229
  let n = [...t], r = new Set(t.map((t) => O(t, e)));
229
230
  for (let t of W) {
@@ -232,44 +233,44 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
232
233
  }
233
234
  return n;
234
235
  });
235
- }, We = () => {
236
+ }, Ke = () => {
236
237
  K([]);
237
- }, Z = (e) => {
238
- J(e) || (K([e]), Me());
239
- }, Ge = L ? G : z, Ke = Ge.length > 0, qe = {
240
- selectedItems: Ge,
238
+ }, qe = (e) => {
239
+ J(e) || (K([e]), Pe());
240
+ }, Je = L ? G : z, Z = Je.length > 0, Ye = {
241
+ selectedItems: Je,
241
242
  committedSelectedItems: z,
242
243
  availableItems: U,
243
244
  query: V,
244
245
  open: L,
245
- clearSelection: He,
246
- selectAll: Ue,
247
- deselectAll: We
248
- }, Je = M === void 0 ? de({
246
+ clearSelection: We,
247
+ selectAll: Ge,
248
+ deselectAll: Ke
249
+ }, Xe = M === void 0 ? de({
249
250
  codeKey: e,
250
251
  textKey: B
251
- }) : M, Ye = N === void 0 ? fe : N, Xe = P ?? pe({
252
+ }) : M, Ze = N === void 0 ? fe : N, Qe = P ?? pe({
252
253
  codeKey: e,
253
254
  textKey: B,
254
255
  hideCode: a
255
- }), Ze = typeof Je == "function" ? Je(qe) : null, Qe = typeof Ye == "function" ? Ye(qe) : null, Q = H.map((e, t) => ({
256
+ }), $e = typeof Xe == "function" ? Xe(Ye) : null, et = typeof Ze == "function" ? Ze(Ye) : null, Q = H.map((e, t) => ({
256
257
  item: e,
257
258
  index: t
258
- })), $e = U.map((e, t) => ({
259
+ })), tt = U.map((e, t) => ({
259
260
  item: e,
260
261
  index: t + Q.length
261
- })), et = !j && !A && W.length === 0, $ = f({
262
+ })), nt = !j && !A && W.length === 0, $ = f({
262
263
  mode: R,
263
264
  open: L,
264
265
  currentQuery: V,
265
266
  hasDisplayValue: !1,
266
267
  inputRef: I,
267
268
  setQuery: Se,
268
- openList: Ne,
269
- close: Me,
270
- toggleOpen: Pe,
269
+ openList: Fe,
270
+ close: Pe,
271
+ toggleOpen: Ie,
271
272
  onBeforeOpen: () => {
272
- L || we();
273
+ L || Ee();
273
274
  }
274
275
  });
275
276
  return /* @__PURE__ */ b(u, {
@@ -281,22 +282,22 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
281
282
  children: ({ controlId: n, labelId: r, describedBy: a }) => {
282
283
  let s = `${n}-listbox`;
283
284
  return /* @__PURE__ */ x(se, { children: [/* @__PURE__ */ b(i, {
284
- ref: Ve,
285
- rootRef: ke,
285
+ ref: Ue,
286
+ rootRef: je,
286
287
  id: n,
287
288
  type: "text",
288
289
  role: "combobox",
289
290
  autoComplete: "off",
290
291
  disabled: k,
291
292
  value: V,
292
- placeholder: Ke ? void 0 : `${re ?? g ?? "Выберите значения"} <${p.length}>`,
293
+ placeholder: Z ? void 0 : `${re ?? g ?? "Выберите значения"} <${p.length}>`,
293
294
  "aria-labelledby": r,
294
295
  "aria-describedby": a,
295
296
  "aria-haspopup": "listbox",
296
297
  "aria-expanded": L,
297
298
  "aria-controls": L ? s : void 0,
298
299
  "aria-autocomplete": "list",
299
- "aria-activedescendant": L ? ze(s) : void 0,
300
+ "aria-activedescendant": L ? Ve(s) : void 0,
300
301
  rootClassName: "flex alignItemsCenter",
301
302
  endAdornment: /* @__PURE__ */ b(c, {
302
303
  open: L,
@@ -305,16 +306,16 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
305
306
  onToggleClick: $.handleToggleClick,
306
307
  children: /* @__PURE__ */ b("button", {
307
308
  type: "button",
308
- disabled: !Ke,
309
+ disabled: !Z,
309
310
  className: t.uiClearButton,
310
311
  "data-ui": "multi-select-clear-button",
311
312
  "data-action": "clear-multi-select",
312
- onClick: He,
313
+ onClick: We,
313
314
  "aria-label": "Очистить все",
314
315
  children: /* @__PURE__ */ b(oe, {})
315
316
  })
316
317
  }),
317
- overlay: Ze,
318
+ overlay: $e,
318
319
  onChange: (e) => {
319
320
  $.handleTriggerInputChange(e.target.value);
320
321
  },
@@ -323,7 +324,7 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
323
324
  $.handleTriggerFocus(e.currentTarget);
324
325
  },
325
326
  onKeyDown: (e) => {
326
- Ie(e), !e.defaultPrevented && $.handleTriggerKeyDown({
327
+ Re(e), !e.defaultPrevented && $.handleTriggerKeyDown({
327
328
  event: e,
328
329
  onActivateWhenOpen: () => {
329
330
  if (Y >= 0) {
@@ -333,7 +334,7 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
333
334
  return;
334
335
  }
335
336
  }
336
- Fe();
337
+ Le();
337
338
  },
338
339
  enableClosedArrowDownOpen: !0,
339
340
  suppressClosedArrowUp: !0
@@ -341,22 +342,22 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
341
342
  }
342
343
  }), /* @__PURE__ */ b(o, {
343
344
  open: L,
344
- context: Ee,
345
- floatingStyles: De,
345
+ context: Oe,
346
+ floatingStyles: ke,
346
347
  listId: s,
347
348
  labelId: r,
348
349
  descriptionId: a,
349
- activeOptionId: L ? ze(s) : void 0,
350
- setFloating: Ae,
351
- getFloatingProps: Oe,
352
- onKeyDown: Le,
350
+ activeOptionId: L ? Ve(s) : void 0,
351
+ setFloating: Me,
352
+ getFloatingProps: Ae,
353
+ onKeyDown: ze,
353
354
  initialFocus: -1,
354
355
  returnFocus: !1,
355
356
  tabIndex: -1,
356
357
  className: t.uiPopupOptions,
357
- header: Qe,
358
+ header: et,
358
359
  children: /* @__PURE__ */ b(me, {
359
- isNoData: et,
360
+ isNoData: nt,
360
361
  isLoading: j,
361
362
  error: A,
362
363
  children: /* @__PURE__ */ x("div", {
@@ -369,29 +370,29 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
369
370
  selectedKeys: q,
370
371
  codeKey: e,
371
372
  query: V,
372
- highlightQuery: Be,
373
+ highlightQuery: He,
373
374
  getOptionDisabled: J,
374
- getOptionId: Re,
375
- setOptionRef: je,
375
+ getOptionId: Be,
376
+ setOptionRef: Ne,
376
377
  toggleOption: X,
377
- selectOnlyOption: Z,
378
- renderItem: Xe
378
+ selectOnlyOption: qe,
379
+ renderItem: Qe
379
380
  }),
380
381
  Q.length > 0 && xe.length > 0 && /* @__PURE__ */ b(ee, { className: "marginBlockSm" }),
381
382
  /* @__PURE__ */ b(ve, {
382
- entries: $e,
383
+ entries: tt,
383
384
  listId: s,
384
385
  activeIndex: Y,
385
386
  selectedKeys: q,
386
387
  codeKey: e,
387
388
  query: V,
388
- highlightQuery: Be,
389
+ highlightQuery: He,
389
390
  getOptionDisabled: J,
390
- getOptionId: Re,
391
- setOptionRef: je,
391
+ getOptionId: Be,
392
+ setOptionRef: Ne,
392
393
  toggleOption: X,
393
- selectOnlyOption: Z,
394
- renderItem: Xe
394
+ selectOnlyOption: qe,
395
+ renderItem: Qe
395
396
  })
396
397
  ]
397
398
  })
@@ -522,4 +523,4 @@ function I({ label: e, description: t, disabled: n, placeholder: r, size: i, opt
522
523
  //#endregion
523
524
  export { k as a, j as i, N as n, T as o, M as r, C as s, I as t };
524
525
 
525
- //# sourceMappingURL=multi-select-01xmD1nZ.js.map
526
+ //# sourceMappingURL=multi-select-CZPB8H6v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-CZPB8H6v.js","names":[],"sources":["../../src/multi-select/ui/MultiSelectOption.tsx","../../src/multi-select/ui/MultiSelect.module.scss","../../src/multi-select/ui/MultiSelectToken.tsx","../../src/multi-select/ui/defaultRenderers.tsx","../../src/multi-select/ui/MultiSelectOptionSkeleton.tsx","../../src/multi-select/ui/MultiSelect.tsx","../../src/multi-select/model/useODataMultiSelect.ts","../../src/multi-select/ui/ODataMultiSelect.tsx","../../src/multi-select/ui/ODataDependentSegmentMultiSelect.tsx","../../src/multi-select/ui/ODataDependentMultiSelect.tsx","../../src/multi-select/ui/SerializableMultiSelect.tsx"],"sourcesContent":["import { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { SelectOptionContent } from \"../../select/SelectOptionContent\";\n\ninterface MultiSelectOptionProps {\n\titem: CollectionItem;\n\ttextKey: string;\n\tcodeKey?: string;\n\thighlight?: string;\n\tselected: boolean;\n}\n\n/**\n * Отдельная опция внутри `MultiSelect`. Отрисовывает состояние выбора и подсветку текста для найденных совпадений.\n */\nexport function MultiSelectOption({ item, textKey, codeKey, highlight }: MultiSelectOptionProps) {\n\treturn <SelectOptionContent label={item[textKey]} code={codeKey && item[codeKey]} highlight={highlight} />;\n}\n","@use \"@/styles/mixins\" as *;\n\n.multiSelect {\n\t// Общий контейнер\n\tpadding: 0;\n}\n\n.multiSelectTokens {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\n\tposition: absolute;\n\tinset: 0 calc(var(--control-height) * 2) 0 var(--space-md);\n\n\tpointer-events: none;\n\toverflow: hidden;\n\n\t&:empty {\n\t\tdisplay: none;\n\t}\n}\n\n.multiSelectToken {\n\tfont-size: var(--font-size-sm);\n\tfont-weight: 300;\n\tfont-variation-settings: \"wght\" 300;\n\n\t// flex: 1 1 0%;\n\t// min-width: 0;\n\tmax-width: 100%;\n\n\toverflow: hidden;\n\twhite-space: nowrap;\n\tword-break: normal;\n\ttext-overflow: ellipsis;\n\n\tpointer-events: none;\n}\n","import styles from \"./MultiSelect.module.scss\";\n\ninterface MultiSelectTokenProps {\n\tvalue: string | undefined;\n}\n\n/**\n * Токен выбранного значения в `MultiSelect`. Показывает выбранный элемент и кнопку его удаления из текущего набора.\n */\nexport function MultiSelectToken({ value }: MultiSelectTokenProps) {\n\tif (!value) return null;\n\n\treturn (\n\t\t<div className={styles.multiSelectTokens}>\n\t\t\t<div className={styles.multiSelectToken}>{value}</div>\n\t\t</div>\n\t);\n}\n","import { formatRussianPlural, type RussianPluralForms } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { PickerSelectionToolbar } from \"../../picker\";\n\nimport { type MultiSelectItemState, type MultiSelectRenderContext } from \"./MultiSelect\";\nimport { MultiSelectOption } from \"./MultiSelectOption\";\nimport { MultiSelectToken } from \"./MultiSelectToken\";\n\ninterface MultiSelectRendererConfig {\n\tcodeKey: string;\n\ttextKey?: string;\n\thideCode?: boolean;\n}\n\nconst ELEMENT_FORMS: RussianPluralForms = {\n\tone: \"элемент\",\n\tfew: \"элемента\",\n\tmany: \"элементов\"\n};\n\nexport function formatOptionCount(count: number) {\n\treturn formatRussianPlural(count, ELEMENT_FORMS);\n}\n\nexport function resolveMultiSelectTextKey(items: CollectionItem[], codeKey: string, textKey?: string) {\n\tif (textKey) {\n\t\treturn textKey;\n\t}\n\n\tconst sampleItem = items[0];\n\n\tif (!sampleItem) {\n\t\treturn codeKey;\n\t}\n\n\treturn Object.keys(sampleItem).find((key) => key !== codeKey) ?? codeKey;\n}\n\nexport function getDefaultMultiSelectTokenValue(items: CollectionItem[], codeKey: string, textKey?: string) {\n\tif (items.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tif (items.length > 1) {\n\t\treturn formatOptionCount(items.length);\n\t}\n\n\tconst resolvedTextKey = resolveMultiSelectTextKey(items, codeKey, textKey);\n\treturn items[0]?.[resolvedTextKey] ?? items[0]?.[codeKey];\n}\n\nexport function createDefaultMultiSelectTokenRenderer(config: MultiSelectRendererConfig) {\n\treturn function renderDefaultToken(context: MultiSelectRenderContext) {\n\t\treturn <MultiSelectToken value={getDefaultMultiSelectTokenValue(context.selectedItems, config.codeKey, config.textKey)} />;\n\t};\n}\n\nexport function renderDefaultMultiSelectToolbar(context: MultiSelectRenderContext) {\n\treturn <PickerSelectionToolbar onSelectAll={context.selectAll} onDeselectAll={context.deselectAll} />;\n}\n\nexport function createDefaultMultiSelectItemRenderer(config: MultiSelectRendererConfig) {\n\treturn function renderDefaultItem(item: CollectionItem, state: MultiSelectItemState) {\n\t\treturn (\n\t\t\t<MultiSelectOption\n\t\t\t\titem={item}\n\t\t\t\tselected={state.selected}\n\t\t\t\thighlight={state.highlightQuery}\n\t\t\t\ttextKey={resolveMultiSelectTextKey([item], config.codeKey, config.textKey)}\n\t\t\t\tcodeKey={config.hideCode ? undefined : config.codeKey}\n\t\t\t/>\n\t\t);\n\t};\n}\n","import { Text } from \"../../text\";\nimport uiStyles from \"../../ui.module.scss\";\n\ninterface MultiSelectOptionSkeletonProps {\n\ttext: string;\n\tisError?: boolean;\n}\n\n/**\n * Скелетон строки опции для `MultiSelect`. Используется во время загрузки или при отображении ошибок получения списка.\n */\nexport function MultiSelectOptionSkeleton({ text, isError }: MultiSelectOptionSkeletonProps) {\n\treturn (\n\t\t<div className={uiStyles.uiPopupOption}>\n\t\t\t<span className={uiStyles.uiPopupOptionIcon}></span>\n\t\t\t<Text color={isError ? \"error\" : \"primary\"}>{text}</Text>\n\t\t</div>\n\t);\n}\n","import React, { forwardRef, type PropsWithChildren, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { XIcon } from \"lucide-react\";\n\nimport { CheckBox } from \"../../check-box\";\nimport {\n\tPickerField,\n\tPickerPopup,\n\tPickerStatus,\n\tPickerTriggerActions,\n\tPickerTriggerInput,\n\tusePickerDefaultFilter,\n\tusePickerFloatingListbox,\n\tusePickerQuery,\n\tusePickerSelectionLifecycle,\n\tusePickerTriggerController\n} from \"../../picker\";\nimport { Separator } from \"../../separator\";\nimport { type UiBaseProps } from \"../../types\";\nimport uiStyles from \"../../ui.module.scss\";\n\nimport {\n\tcreateDefaultMultiSelectItemRenderer,\n\tcreateDefaultMultiSelectTokenRenderer,\n\trenderDefaultMultiSelectToolbar,\n\tresolveMultiSelectTextKey\n} from \"./defaultRenderers\";\nimport styles from \"./MultiSelect.module.scss\";\nimport { MultiSelectOptionSkeleton } from \"./MultiSelectOptionSkeleton\";\n\nimport type { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\ninterface MultiSelectOptionsProps extends PropsWithChildren {\n\tisNoData?: boolean;\n\tisLoading?: boolean;\n\terror?: string;\n}\n\nfunction MultiSelectOptionsWrapper({ isNoData, isLoading, error, children }: MultiSelectOptionsProps) {\n\tif (isNoData) return <PickerStatus emptyState={<MultiSelectOptionSkeleton text=\"Нет данных\" />} />;\n\tif (isLoading) return <PickerStatus loadingState={<MultiSelectOptionSkeleton text=\"Загрузка...\" />} />;\n\tif (error) return <PickerStatus errorState={<MultiSelectOptionSkeleton isError text=\"Ошибка загрузки\" />} />;\n\n\treturn <>{children}</>;\n}\n\nexport interface MultiSelectItemState {\n\tselected: boolean;\n\tactive: boolean;\n\tdisabled: boolean;\n\tquery: string;\n\thighlightQuery: string;\n}\n\nexport interface MultiSelectRenderContext {\n\tselectedItems: CollectionItem[];\n\tcommittedSelectedItems: CollectionItem[];\n\tavailableItems: CollectionItem[];\n\tquery: string;\n\topen: boolean;\n\tclearSelection: () => void;\n\tselectAll: () => void;\n\tdeselectAll: () => void;\n}\n\nexport interface MultiSelectOptionDisableContext {\n\tselectedItems: CollectionItem[];\n\tcommittedSelectedItems: CollectionItem[];\n\tselectedKeys: ReadonlySet<string>;\n\topen: boolean;\n}\n\ntype MultiSelectOptionalRenderer<TContext> = ((context: TContext) => React.ReactNode) | null | false;\n\ninterface MultiSelectRenderers {\n\trenderToken?: MultiSelectOptionalRenderer<MultiSelectRenderContext>;\n\trenderToolbar?: MultiSelectOptionalRenderer<MultiSelectRenderContext>;\n\trenderItem?: (item: CollectionItem, state: MultiSelectItemState) => React.ReactNode;\n}\n\nexport interface MultiSelectProps<TOption extends Record<string, string> = CollectionItem>\n\textends MultiSelectRenderers, UiBaseProps<TOption[]> {\n\tcodeKey: string;\n\ttextKey?: string;\n\thideCode?: boolean;\n\tquery?: string;\n\tdefaultQuery?: string;\n\thighlightQuery?: string;\n\tonQuery?: (value: string) => void;\n\tdefaultFilter?: boolean;\n\titems: TOption[];\n\tgetOptionDisabled?: (item: TOption, context: MultiSelectOptionDisableContext) => boolean;\n\tonOpen?: () => void;\n\tonClose?: (value: TOption[]) => void;\n\terror?: string;\n\tisLoading?: boolean;\n}\n\nconst fallback: CollectionItem[] = [];\n\nfunction getItemKey(item: CollectionItem, codeKey: string) {\n\treturn item[codeKey];\n}\n\nfunction getItemSearchParts(item: CollectionItem, codeKey: string, textKey: string) {\n\treturn Array.from(new Set([item[textKey], item[codeKey], ...Object.values(item)]));\n}\n\nfunction areSelectionsEqual(left: CollectionItem[], right: CollectionItem[], codeKey: string) {\n\tif (left.length !== right.length) {\n\t\treturn false;\n\t}\n\n\tconst rightKeys = new Set(right.map((item) => getItemKey(item, codeKey)));\n\n\treturn left.every((item) => rightKeys.has(getItemKey(item, codeKey)));\n}\n\ninterface MultiSelectOptionEntry {\n\titem: CollectionItem;\n\tindex: number;\n}\n\ninterface MultiSelectOptionGroupProps {\n\tentries: MultiSelectOptionEntry[];\n\tlistId: string;\n\tactiveIndex: number;\n\tselectedKeys: Set<string>;\n\tcodeKey: string;\n\tquery: string;\n\thighlightQuery: string;\n\tgetOptionDisabled?: (item: CollectionItem) => boolean;\n\tgetOptionId: (listId: string, index: number) => string;\n\tsetOptionRef: (index: number, node: HTMLElement | null) => void;\n\ttoggleOption: (item: CollectionItem) => void;\n\tselectOnlyOption: (item: CollectionItem) => void;\n\trenderItem: (item: CollectionItem, state: MultiSelectItemState) => React.ReactNode;\n}\n\nfunction MultiSelectOptionGroup({\n\tentries,\n\tlistId,\n\tactiveIndex,\n\tselectedKeys,\n\tcodeKey,\n\tquery,\n\thighlightQuery,\n\tgetOptionDisabled,\n\tgetOptionId,\n\tsetOptionRef,\n\ttoggleOption,\n\tselectOnlyOption,\n\trenderItem\n}: MultiSelectOptionGroupProps) {\n\treturn entries.map(({ item, index }) => {\n\t\tconst active = index === activeIndex;\n\t\tconst selected = selectedKeys.has(getItemKey(item, codeKey));\n\t\tconst optionDisabled = getOptionDisabled?.(item) ?? false;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tkey={`${getItemKey(item, codeKey)}-${index}`}\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\tclassName={cn(\n\t\t\t\t\tuiStyles.uiSelectOption,\n\t\t\t\t\toptionDisabled && uiStyles.disabled,\n\t\t\t\t\tselected && uiStyles.selected,\n\t\t\t\t\tactive && uiStyles.uiPopupOptionActive\n\t\t\t\t)}\n\t\t\t\tonMouseDown={(event) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}}>\n\t\t\t\t<div\n\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t}}>\n\t\t\t\t\t<CheckBox\n\t\t\t\t\t\tvalue={selected}\n\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\tif (!optionDisabled) {\n\t\t\t\t\t\t\t\ttoggleOption(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseDown={(event) => {\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"overflowHidden\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tif (!optionDisabled) {\n\t\t\t\t\t\t\tselectOnlyOption(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t{renderItem(item, { selected, active, disabled: optionDisabled, query, highlightQuery })}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t});\n}\n\n/**\n * Поле множественного выбора с внутренним черновиком значений и подтверждением выбора при закрытии списка.\n * Подходит как для самостоятельного использования, так и как базовый слой для OData-оберток.\n */\nexport const MultiSelect = forwardRef<HTMLInputElement, MultiSelectProps>(\n\t(\n\t\t{\n\t\t\tcodeKey,\n\t\t\ttextKey,\n\t\t\thideCode,\n\t\t\titems,\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tlabel,\n\t\t\tdescription,\n\t\t\tplaceholder,\n\t\t\tsize,\n\t\t\tquery,\n\t\t\tdefaultQuery,\n\t\t\thighlightQuery,\n\t\t\tonQuery,\n\t\t\tdefaultFilter = true,\n\t\t\tonOpen,\n\t\t\tonClose,\n\t\t\tgetOptionDisabled,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tisLoading,\n\t\t\trenderToken,\n\t\t\trenderToolbar,\n\t\t\trenderItem\n\t\t},\n\t\tref\n\t) => {\n\t\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\t\tconst [open, setOpen] = useState(false);\n\t\tconst triggerMode = \"search-multi\";\n\t\tconst committedSelectedItems = value ?? fallback;\n\t\tconst committedSelectedKeys = useMemo(\n\t\t\t() => new Set(committedSelectedItems.map((item) => getItemKey(item, codeKey))),\n\t\t\t[codeKey, committedSelectedItems]\n\t\t);\n\t\tconst availableItems = useMemo(\n\t\t\t() => items.filter((item) => !committedSelectedKeys.has(getItemKey(item, codeKey))),\n\t\t\t[codeKey, committedSelectedKeys, items]\n\t\t);\n\t\tconst resolvedTextKey = useMemo(\n\t\t\t() => resolveMultiSelectTextKey([...committedSelectedItems, ...items], codeKey, textKey),\n\t\t\t[codeKey, committedSelectedItems, items, textKey]\n\t\t);\n\t\tconst {\n\t\t\tquery: currentQuery,\n\t\t\tsetQuery,\n\t\t\tresetQueryOnClose\n\t\t} = usePickerQuery({\n\t\t\tquery,\n\t\t\tdefaultQuery,\n\t\t\tonQuery,\n\t\t\ttriggerMode\n\t\t});\n\t\tconst handleOpenChange = (nextOpen: boolean) => {\n\t\t\tif (open && !nextOpen && resetQueryOnClose) {\n\t\t\t\tsetQuery(\"\");\n\t\t\t}\n\n\t\t\tsetOpen(nextOpen);\n\t\t};\n\t\tconst filteredCommittedSelectedItems = usePickerDefaultFilter({\n\t\t\toptions: committedSelectedItems,\n\t\t\tquery: currentQuery,\n\t\t\tenabled: defaultFilter,\n\t\t\tgetSearchText: (item) => getItemSearchParts(item, codeKey, resolvedTextKey)\n\t\t});\n\t\tconst filteredAvailableItems = usePickerDefaultFilter({\n\t\t\toptions: availableItems,\n\t\t\tquery: currentQuery,\n\t\t\tenabled: defaultFilter,\n\t\t\tgetSearchText: (item) => getItemSearchParts(item, codeKey, resolvedTextKey)\n\t\t});\n\t\tconst visibleOptions = useMemo(\n\t\t\t() => [...filteredCommittedSelectedItems, ...filteredAvailableItems],\n\t\t\t[filteredAvailableItems, filteredCommittedSelectedItems]\n\t\t);\n\t\tconst selectedIndex = filteredCommittedSelectedItems.length > 0 ? 0 : -1;\n\t\tconst {\n\t\t\tdraftValue: draftSelectedItems,\n\t\t\tsetDraftValue: setDraftSelectedItems,\n\t\t\tprepareOpen\n\t\t} = usePickerSelectionLifecycle({\n\t\t\tvalue: committedSelectedItems,\n\t\t\topen,\n\t\t\tonCommit: onChange,\n\t\t\tonOpen,\n\t\t\tonClose,\n\t\t\tisEqual: (left, right) => areSelectionsEqual(left, right, codeKey)\n\t\t});\n\t\tconst selectedKeys = useMemo(\n\t\t\t() => new Set(draftSelectedItems.map((item) => getItemKey(item, codeKey))),\n\t\t\t[codeKey, draftSelectedItems]\n\t\t);\n\t\tconst optionDisableContext = useMemo<MultiSelectOptionDisableContext>(\n\t\t\t() => ({\n\t\t\t\tselectedItems: draftSelectedItems,\n\t\t\t\tcommittedSelectedItems,\n\t\t\t\tselectedKeys,\n\t\t\t\topen\n\t\t\t}),\n\t\t\t[committedSelectedItems, draftSelectedItems, open, selectedKeys]\n\t\t);\n\t\tconst isOptionDisabled = useCallback(\n\t\t\t(item: CollectionItem) => getOptionDisabled?.(item, optionDisableContext) ?? false,\n\t\t\t[getOptionDisabled, optionDisableContext]\n\t\t);\n\t\tconst {\n\t\t\tactiveIndex,\n\t\t\tcontext,\n\t\t\tfloatingStyles,\n\t\t\tgetFloatingProps,\n\t\t\tsetReference,\n\t\t\tsetFloating,\n\t\t\tsetOptionRef,\n\t\t\tclose,\n\t\t\topenList,\n\t\t\ttoggleOpen,\n\t\t\tselectActiveOption,\n\t\t\thandleReferenceKeyDown,\n\t\t\thandleFloatingKeyDown,\n\t\t\tgetOptionId,\n\t\t\tgetActiveOptionId\n\t\t} = usePickerFloatingListbox({\n\t\t\toptions: visibleOptions,\n\t\t\tselectedIndex,\n\t\t\topen,\n\t\t\tonOpenChange: handleOpenChange,\n\t\t\tonSelect: undefined,\n\t\t\tdisabled,\n\t\t\tgetOptionDisabled: isOptionDisabled,\n\t\t\tcloseOnSelect: false,\n\t\t\tallowOpenWithoutOptions: true,\n\t\t\ttriggerMode\n\t\t});\n\n\t\tconst currentHighlightQuery = highlightQuery ?? currentQuery;\n\t\tconst toggleDraftSelection = (item: CollectionItem) => {\n\t\t\tconst itemKey = getItemKey(item, codeKey);\n\n\t\t\tsetDraftSelectedItems((currentItems) => {\n\t\t\t\tconst isSelected = currentItems.some((selectedItem) => getItemKey(selectedItem, codeKey) === itemKey);\n\n\t\t\t\tif (isSelected) {\n\t\t\t\t\treturn currentItems.filter((selectedItem) => getItemKey(selectedItem, codeKey) !== itemKey);\n\t\t\t\t}\n\n\t\t\t\tif (isOptionDisabled(item)) {\n\t\t\t\t\treturn currentItems;\n\t\t\t\t}\n\n\t\t\t\treturn [...currentItems, item];\n\t\t\t});\n\t\t};\n\n\t\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\t\tinputRef.current = node;\n\n\t\t\tif (typeof ref === \"function\") {\n\t\t\t\tref(node);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (ref) {\n\t\t\t\tref.current = node;\n\t\t\t}\n\t\t};\n\n\t\tconst clearSelection = () => {\n\t\t\tsetDraftSelectedItems([]);\n\n\t\t\tif (!open) {\n\t\t\t\tonChange([]);\n\t\t\t}\n\t\t};\n\n\t\tconst selectAll = () => {\n\t\t\tsetDraftSelectedItems((currentItems) => {\n\t\t\t\tconst nextItems = [...currentItems];\n\t\t\t\tconst selectedKeys = new Set(currentItems.map((item) => getItemKey(item, codeKey)));\n\n\t\t\t\tfor (const item of visibleOptions) {\n\t\t\t\t\tconst itemKey = getItemKey(item, codeKey);\n\n\t\t\t\t\tif (!selectedKeys.has(itemKey) && !isOptionDisabled(item)) {\n\t\t\t\t\t\tselectedKeys.add(itemKey);\n\t\t\t\t\t\tnextItems.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn nextItems;\n\t\t\t});\n\t\t};\n\n\t\tconst deselectAll = () => {\n\t\t\tsetDraftSelectedItems([]);\n\t\t};\n\n\t\tconst selectOnlyOption = (item: CollectionItem) => {\n\t\t\tif (isOptionDisabled(item)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetDraftSelectedItems([item]);\n\t\t\tclose();\n\t\t};\n\n\t\tconst currentSelectedItems = open ? draftSelectedItems : committedSelectedItems;\n\t\tconst hasSelectedItems = currentSelectedItems.length > 0;\n\t\tconst renderContext: MultiSelectRenderContext = {\n\t\t\tselectedItems: currentSelectedItems,\n\t\t\tcommittedSelectedItems,\n\t\t\tavailableItems: filteredAvailableItems,\n\t\t\tquery: currentQuery,\n\t\t\topen,\n\t\t\tclearSelection,\n\t\t\tselectAll,\n\t\t\tdeselectAll\n\t\t};\n\t\tconst tokenRenderer =\n\t\t\trenderToken === undefined ? createDefaultMultiSelectTokenRenderer({ codeKey, textKey: resolvedTextKey }) : renderToken;\n\t\tconst toolbarRenderer = renderToolbar === undefined ? renderDefaultMultiSelectToolbar : renderToolbar;\n\t\tconst itemRenderer =\n\t\t\trenderItem ??\n\t\t\tcreateDefaultMultiSelectItemRenderer({\n\t\t\t\tcodeKey,\n\t\t\t\ttextKey: resolvedTextKey,\n\t\t\t\thideCode\n\t\t\t});\n\t\tconst tokenNode = typeof tokenRenderer === \"function\" ? tokenRenderer(renderContext) : null;\n\t\tconst toolbarNode = typeof toolbarRenderer === \"function\" ? toolbarRenderer(renderContext) : null;\n\t\t// const hasToken = tokenNode !== null && tokenNode !== undefined;\n\t\tconst selectedEntries = filteredCommittedSelectedItems.map((item, index) => ({ item, index }));\n\t\tconst itemEntries = filteredAvailableItems.map((item, index) => ({ item, index: index + selectedEntries.length }));\n\t\tconst isNoData = !isLoading && !error && visibleOptions.length === 0;\n\t\tconst triggerController = usePickerTriggerController({\n\t\t\tmode: triggerMode,\n\t\t\topen,\n\t\t\tcurrentQuery,\n\t\t\thasDisplayValue: false,\n\t\t\tinputRef,\n\t\t\tsetQuery,\n\t\t\topenList,\n\t\t\tclose,\n\t\t\ttoggleOpen,\n\t\t\tonBeforeOpen: () => {\n\t\t\t\tif (!open) {\n\t\t\t\t\tprepareOpen();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn (\n\t\t\t<PickerField label={label} description={description} disabled={disabled} size={size} className={styles.multiSelect}>\n\t\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PickerTriggerInput\n\t\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\tvalue={currentQuery}\n\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\thasSelectedItems ? undefined : `${placeholder ?? label ?? \"Выберите значения\"} <${items.length}>`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\t\trootClassName=\"flex alignItemsCenter\"\n\t\t\t\t\t\t\t\tendAdornment={\n\t\t\t\t\t\t\t\t\t<PickerTriggerActions\n\t\t\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}>\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled={!hasSelectedItems}\n\t\t\t\t\t\t\t\t\t\t\tclassName={uiStyles.uiClearButton}\n\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"multi-select-clear-button\"\n\t\t\t\t\t\t\t\t\t\t\tdata-action=\"clear-multi-select\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={clearSelection}\n\t\t\t\t\t\t\t\t\t\t\taria-label=\"Очистить все\">\n\t\t\t\t\t\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</PickerTriggerActions>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\toverlay={tokenNode}\n\t\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\t\ttriggerController.handleTriggerInputChange(event.target.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\t\tonActivateWhenOpen: () => {\n\t\t\t\t\t\t\t\t\t\t\tif (activeIndex >= 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst activeItem = visibleOptions[activeIndex];\n\t\t\t\t\t\t\t\t\t\t\t\tif (activeItem) {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleDraftSelection(activeItem);\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tselectActiveOption();\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tenableClosedArrowDownOpen: true,\n\t\t\t\t\t\t\t\t\t\tsuppressClosedArrowUp: true\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/>\n\n\t\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\t\tactiveOptionId={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\t\tinitialFocus={-1}\n\t\t\t\t\t\t\t\treturnFocus={false}\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\tclassName={uiStyles.uiPopupOptions}\n\t\t\t\t\t\t\t\theader={toolbarNode}>\n\t\t\t\t\t\t\t\t<MultiSelectOptionsWrapper isNoData={isNoData} isLoading={isLoading} error={error}>\n\t\t\t\t\t\t\t\t\t<div className=\"scrollable h100\">\n\t\t\t\t\t\t\t\t\t\t<MultiSelectOptionGroup\n\t\t\t\t\t\t\t\t\t\t\tentries={selectedEntries}\n\t\t\t\t\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\t\t\t\t\tactiveIndex={activeIndex}\n\t\t\t\t\t\t\t\t\t\t\tselectedKeys={selectedKeys}\n\t\t\t\t\t\t\t\t\t\t\tcodeKey={codeKey}\n\t\t\t\t\t\t\t\t\t\t\tquery={currentQuery}\n\t\t\t\t\t\t\t\t\t\t\thighlightQuery={currentHighlightQuery}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionDisabled={isOptionDisabled}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionId={getOptionId}\n\t\t\t\t\t\t\t\t\t\t\tsetOptionRef={setOptionRef}\n\t\t\t\t\t\t\t\t\t\t\ttoggleOption={toggleDraftSelection}\n\t\t\t\t\t\t\t\t\t\t\tselectOnlyOption={selectOnlyOption}\n\t\t\t\t\t\t\t\t\t\t\trenderItem={itemRenderer}\n\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t{selectedEntries.length > 0 && availableItems.length > 0 && <Separator className=\"marginBlockSm\" />}\n\n\t\t\t\t\t\t\t\t\t\t<MultiSelectOptionGroup\n\t\t\t\t\t\t\t\t\t\t\tentries={itemEntries}\n\t\t\t\t\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\t\t\t\t\tactiveIndex={activeIndex}\n\t\t\t\t\t\t\t\t\t\t\tselectedKeys={selectedKeys}\n\t\t\t\t\t\t\t\t\t\t\tcodeKey={codeKey}\n\t\t\t\t\t\t\t\t\t\t\tquery={currentQuery}\n\t\t\t\t\t\t\t\t\t\t\thighlightQuery={currentHighlightQuery}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionDisabled={isOptionDisabled}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionId={getOptionId}\n\t\t\t\t\t\t\t\t\t\t\tsetOptionRef={setOptionRef}\n\t\t\t\t\t\t\t\t\t\t\ttoggleOption={toggleDraftSelection}\n\t\t\t\t\t\t\t\t\t\t\tselectOnlyOption={selectOnlyOption}\n\t\t\t\t\t\t\t\t\t\t\trenderItem={itemRenderer}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</MultiSelectOptionsWrapper>\n\t\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t}}\n\t\t\t</PickerField>\n\t\t);\n\t}\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n","import { ODataCollectionModel, ODataSelectBaseProps } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { mapSelectedItemsToValues, useODataSelectBase } from \"../../select/model/useODataSelectBase\";\n\ninterface UseODataMultiSelectOptions extends Omit<ODataSelectBaseProps, \"model\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tonChange: (keys: string[]) => void;\n}\n\nexport function useODataMultiSelect({ odata, segment, model, value, dependencies, onChange }: UseODataMultiSelectOptions) {\n\tconst odataModel = useODataSelectBase({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies\n\t});\n\n\tconst handleChange = (items: CollectionItem[]) => {\n\t\tonChange(mapSelectedItemsToValues(items, odataModel.selectionKey));\n\t};\n\n\treturn {\n\t\t...odataModel,\n\t\thandleChange\n\t};\n}\n","import React from \"react\";\n\nimport { ODataSelectBaseProps, useODataCollectionModel } from \"@ryuzaki13/react-foundation-api/odata\";\n\nimport { UiBaseProps } from \"../../types\";\nimport { useODataMultiSelect } from \"../model/useODataMultiSelect\";\n\nimport { MultiSelect } from \"./MultiSelect\";\n\ntype ODataMultiSelectProps = ODataSelectBaseProps & Omit<UiBaseProps<string[]>, \"placeholder\"> & {};\n\nexport const ODataMultiSelect: React.FC<ODataMultiSelectProps> = ({\n\todata,\n\tsegment,\n\tmodel: initialModel,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tvalue,\n\tdependencies,\n\tonChange,\n\tsize\n}) => {\n\tconst model = useODataCollectionModel(initialModel);\n\tconst odataModel = useODataMultiSelect({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies,\n\t\tonChange\n\t});\n\n\treturn (\n\t\t<MultiSelect\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tsize={size}\n\t\t\tcodeKey={odataModel.codeKey}\n\t\t\ttextKey={odataModel.textKey}\n\t\t\thideCode={segment.hideCode ?? odata.hideCode}\n\t\t\titems={odataModel.filteredItems}\n\t\t\tvalue={odataModel.selectedItems}\n\t\t\tonChange={odataModel.handleChange}\n\t\t\tonQuery={odataModel.setQuery}\n\t\t\tquery={odataModel.query}\n\t\t\tdefaultFilter={false}\n\t\t\thighlightQuery={odataModel.debouncedQuery}\n\t\t\tdisabled={disabled || odataModel.isLoading}\n\t\t\tplaceholder={odataModel.placeholder}\n\t\t\terror={odataModel.isError ? \"Ошибка загрузки\" : undefined}\n\t\t/>\n\t);\n};\n","import { useCallback, useState } from \"react\";\n\nimport { ODataMultiSelect } from \"./ODataMultiSelect\";\n\nimport type { ODataDependentSegmentItem } from \"@ryuzaki13/react-foundation-api/odata\";\n\ninterface ODataDependentSegmentMultiSelectProps {\n\titem: ODataDependentSegmentItem;\n\t/**\n\t * Выбранные значения (управляемый компонент)\n\t */\n\tvalues?: Record<string, string[]>;\n\t/**\n\t * Обработчик изменения выбранных значений\n\t */\n\tonChange?: (selected: Record<string, string[]>) => void;\n\t/**\n\t * Ширина одного элемента в `em` единицах.\n\t *\n\t * @default 15\n\t */\n\twidth?: number;\n}\n\nexport const ODataDependentSegmentMultiSelect: React.FC<ODataDependentSegmentMultiSelectProps> = ({\n\titem,\n\tvalues,\n\tonChange,\n\twidth = 15\n}) => {\n\tconst [internalSelectedValues, setInternalSelectedValues] = useState<Record<string, string[]>>({});\n\tconst selectedValues = values ?? internalSelectedValues;\n\tconst widthStyle = `calc(${width}em + var(--width-add))`;\n\n\tconst handleSelectionChange = useCallback(\n\t\t(keys: string[]) => {\n\t\t\tconst nextSelectedValues = {\n\t\t\t\t...selectedValues,\n\t\t\t\t[item.id]: keys\n\t\t\t};\n\n\t\t\tif (!values) {\n\t\t\t\tsetInternalSelectedValues(nextSelectedValues);\n\t\t\t}\n\n\t\t\tonChange?.(nextSelectedValues);\n\t\t},\n\t\t[item.id, onChange, selectedValues, values]\n\t);\n\n\treturn (\n\t\t<div style={{ maxWidth: widthStyle, minWidth: widthStyle }}>\n\t\t\t<ODataMultiSelect\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={selectedValues}\n\t\t\t\tvalue={selectedValues[item.id]}\n\t\t\t\tonChange={handleSelectionChange}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n","import { useState } from \"react\";\n\nimport { flattenODataDependentServices, ODataDependentBaseProps } from \"@ryuzaki13/react-foundation-api/odata\";\n\nimport { ODataDependentSegmentMultiSelect } from \"./ODataDependentSegmentMultiSelect\";\n\ninterface ODataDependentMultiSelectProps extends ODataDependentBaseProps {\n\t/**\n\t * Выбранные значения (управляемый компонент)\n\t */\n\tvalues?: Record<string, string[]>;\n\n\t/**\n\t * Обработчик изменения выбранных значений\n\t */\n\tonChange?: (selected: Record<string, string[]>) => void;\n\n\t/**\n\t * Ширина одного элемента в `em` единицах.\n\t *\n\t * @default 15\n\t */\n\twidth?: number;\n}\n\nexport const ODataDependentMultiSelect: React.FC<ODataDependentMultiSelectProps> = ({\n\twidth = 15,\n\todata,\n\tsegments,\n\tmodel,\n\tvalues,\n\tonChange\n}) => {\n\tconst [internalSelectedValues, setInternalSelectedValues] = useState<Record<string, string[]>>({});\n\tconst selectedValues = values ?? internalSelectedValues;\n\tconst items = flattenODataDependentServices([\n\t\t{\n\t\t\todata,\n\t\t\tsegments,\n\t\t\tmodel\n\t\t}\n\t]);\n\n\treturn items.map((item) => (\n\t\t<ODataDependentSegmentMultiSelect\n\t\t\tkey={item.id}\n\t\t\titem={item}\n\t\t\tvalues={selectedValues}\n\t\t\tonChange={(nextSelectedValues) => {\n\t\t\t\tif (!values) {\n\t\t\t\t\tsetInternalSelectedValues(nextSelectedValues);\n\t\t\t\t}\n\n\t\t\t\tonChange?.(nextSelectedValues);\n\t\t\t}}\n\t\t\twidth={width}\n\t\t/>\n\t));\n};\n","import { MultiSelect } from \"./MultiSelect\";\n\nimport type { UiBaseProps } from \"../../types\";\nimport type { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\ntype SerializableOptionRecord = Record<string, unknown>;\n\ntype SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {\n\t[K in keyof TOption]: Extract<TOption[K], string> extends never ? never : K;\n}[keyof TOption];\n\nexport interface SerializableMultiSelectProps<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n> extends UiBaseProps<Extract<TOption[TOptionKey], string>[]> {\n\toptions: readonly TOption[];\n\toptionKey: TOptionKey;\n\toptionLabel: TOptionLabel;\n\trenderCode?: true;\n}\n\nfunction getSerializableOptionKey<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>>(\n\toption: TOption,\n\toptionKey: TOptionKey\n): Extract<TOption[TOptionKey], string> {\n\treturn option[optionKey] as Extract<TOption[TOptionKey], string>;\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\") {\n\t\treturn label;\n\t}\n\n\tconst key = getSerializableOptionKey(option, optionKey);\n\treturn typeof key === \"string\" ? key : String(key);\n}\n\nexport function SerializableMultiSelect<\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}: SerializableMultiSelectProps<TOption, TOptionKey, TOptionLabel>) {\n\t// Как будто можно не мемоизировать, нет смысла\n\tconst items = options.map<CollectionItem>((option) => ({\n\t\tkey: String(getSerializableOptionKey(option, optionKey)),\n\t\ttext: getSerializableOptionLabel(option, optionLabel, optionKey)\n\t}));\n\tconst selectedKeys = new Set((value ?? []).map((item) => String(item)));\n\tconst selectedItems = items.filter((item) => selectedKeys.has(item.key));\n\n\treturn (\n\t\t<MultiSelect\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\titems={items}\n\t\t\tcodeKey=\"key\"\n\t\t\ttextKey=\"text\"\n\t\t\thideCode={renderCode ? undefined : true}\n\t\t\tvalue={selectedItems}\n\t\t\tonChange={(nextItems) => onChange(nextItems.map((item) => item.key) as Extract<TOption[TOptionKey], string>[])}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}