@ryuzaki13/react-foundation-ui 1.4.5 → 1.5.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 (410) hide show
  1. package/dist/advanced-search/index.js +9 -9
  2. package/dist/badge/index.js +1 -1
  3. package/dist/base-table/index.js +1 -1
  4. package/dist/button/index.js +1 -1
  5. package/dist/check-box/index.js +1 -1
  6. package/dist/chunks/{CalendarView-Z_XWk7aI.js → CalendarView-DtacoN_c.js} +2 -2
  7. package/dist/chunks/{CalendarView-Z_XWk7aI.js.map → CalendarView-DtacoN_c.js.map} +1 -1
  8. package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
  9. package/dist/chunks/{TextEditorLexicalClient-CK8j3RA4.js → TextEditorLexicalClient-DVML-Nhd.js} +6 -6
  10. package/dist/chunks/{TextEditorLexicalClient-CK8j3RA4.js.map → TextEditorLexicalClient-DVML-Nhd.js.map} +1 -1
  11. package/dist/chunks/{badge-DwIUjH0a.js → badge-CbclcpUi.js} +2 -2
  12. package/dist/chunks/{badge-DwIUjH0a.js.map → badge-CbclcpUi.js.map} +1 -1
  13. package/dist/chunks/{base-table-BFsVwXg3.js → base-table-BPcdSitC.js} +3 -3
  14. package/dist/chunks/{base-table-BFsVwXg3.js.map → base-table-BPcdSitC.js.map} +1 -1
  15. package/dist/chunks/{button-BU2kRzwu.js → button-BOl7hYmT.js} +4 -4
  16. package/dist/chunks/button-BOl7hYmT.js.map +1 -0
  17. package/dist/chunks/{check-box-Dd3YFuxd.js → check-box-6HGX_KOy.js} +5 -5
  18. package/dist/chunks/check-box-6HGX_KOy.js.map +1 -0
  19. package/dist/chunks/{context-menu-C6RO7soI.js → context-menu-BY4pYGwB.js} +2 -2
  20. package/dist/chunks/{context-menu-C6RO7soI.js.map → context-menu-BY4pYGwB.js.map} +1 -1
  21. package/dist/chunks/{date-input-BzExUQnc.js → date-input-DKkJO_-h.js} +19 -19
  22. package/dist/chunks/date-input-DKkJO_-h.js.map +1 -0
  23. package/dist/chunks/{floating-arrow-BE-z4QkE.js → floating-arrow-DPKwJfww.js} +3 -3
  24. package/dist/chunks/{floating-arrow-BE-z4QkE.js.map → floating-arrow-DPKwJfww.js.map} +1 -1
  25. package/dist/chunks/{input-Bp6_Ucgr.js → input-BWCaVC06.js} +9 -7
  26. package/dist/chunks/input-BWCaVC06.js.map +1 -0
  27. package/dist/chunks/{input-files-D1JzSw_Y.js → input-files-62qH2TMj.js} +3 -3
  28. package/dist/chunks/{input-files-D1JzSw_Y.js.map → input-files-62qH2TMj.js.map} +1 -1
  29. package/dist/chunks/{input-search-Bkhcinru.js → input-search-CdPI1cb6.js} +2 -2
  30. package/dist/chunks/{input-search-Bkhcinru.js.map → input-search-CdPI1cb6.js.map} +1 -1
  31. package/dist/chunks/{misc-BYxxlJz6.js → misc-Cp_r022Z.js} +2 -2
  32. package/dist/chunks/{misc-BYxxlJz6.js.map → misc-Cp_r022Z.js.map} +1 -1
  33. package/dist/chunks/{modal-paexEF0j.js → modal-DPIXoMkB.js} +3 -3
  34. package/dist/chunks/{modal-paexEF0j.js.map → modal-DPIXoMkB.js.map} +1 -1
  35. package/dist/chunks/{multi-select-COEkc8Qc.js → multi-select-01xmD1nZ.js} +114 -104
  36. package/dist/chunks/multi-select-01xmD1nZ.js.map +1 -0
  37. package/dist/chunks/{picker-e6IsrMUG.js → picker-Mdb73_uW.js} +3 -3
  38. package/dist/chunks/picker-Mdb73_uW.js.map +1 -0
  39. package/dist/chunks/popover-BTT7zSqx.js +230 -0
  40. package/dist/chunks/{popover-CGU3MlsH.js.map → popover-BTT7zSqx.js.map} +1 -1
  41. package/dist/chunks/{radio-group-CM9Lg_nc.js → radio-group-4j2HbemI.js} +2 -2
  42. package/dist/chunks/{radio-group-CM9Lg_nc.js.map → radio-group-4j2HbemI.js.map} +1 -1
  43. package/dist/chunks/{select-BON0S9Dr.js → select-DRf4_a1Z.js} +6 -6
  44. package/dist/chunks/select-DRf4_a1Z.js.map +1 -0
  45. package/dist/chunks/{table-Dd5BcC0k.js → table-DSg9gi_l.js} +2 -2
  46. package/dist/chunks/{table-Dd5BcC0k.js.map → table-DSg9gi_l.js.map} +1 -1
  47. package/dist/chunks/{ui.module-BisoTevy.js → ui.module-BfaIVBba.js} +3 -1
  48. package/dist/chunks/ui.module-BfaIVBba.js.map +1 -0
  49. package/dist/chunks/{uiClasses-BNjBunnY.js → uiClasses-4atXOh0J.js} +2 -2
  50. package/dist/chunks/{uiClasses-BNjBunnY.js.map → uiClasses-4atXOh0J.js.map} +1 -1
  51. package/dist/chunks/{useODataSelectBase-CKe1AVMI.js → useODataSelectBase-DI_wwKgw.js} +2 -2
  52. package/dist/chunks/{useODataSelectBase-CKe1AVMI.js.map → useODataSelectBase-DI_wwKgw.js.map} +1 -1
  53. package/dist/context-menu/index.js +1 -1
  54. package/dist/date-input/index.js +2 -2
  55. package/dist/date-input/ui/DateInput.d.ts.map +1 -1
  56. package/dist/date-time-input/index.js +195 -194
  57. package/dist/date-time-input/index.js.map +1 -1
  58. package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
  59. package/dist/disclosure/index.js +4 -3
  60. package/dist/disclosure/index.js.map +1 -1
  61. package/dist/drop-zone/index.js +1 -1
  62. package/dist/expandable-action-panel/index.js +2 -2
  63. package/dist/floating-arrow/index.js +1 -1
  64. package/dist/image/index.js +4 -4
  65. package/dist/input/Input.d.ts +2 -1
  66. package/dist/input/Input.d.ts.map +1 -1
  67. package/dist/input/index.js +1 -1
  68. package/dist/input-date-time/index.js +2 -2
  69. package/dist/input-file/index.js +2 -2
  70. package/dist/input-files/index.js +1 -1
  71. package/dist/input-image/index.js +2 -2
  72. package/dist/input-search/index.js +1 -1
  73. package/dist/layout-picker/index.js +94 -107
  74. package/dist/layout-picker/index.js.map +1 -1
  75. package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
  76. package/dist/list/index.js +1 -1
  77. package/dist/listbox/Listbox.d.ts +1 -0
  78. package/dist/listbox/Listbox.d.ts.map +1 -1
  79. package/dist/listbox/index.js +39 -34
  80. package/dist/listbox/index.js.map +1 -1
  81. package/dist/misc/index.js +1 -1
  82. package/dist/modal/index.js +1 -1
  83. package/dist/multi-select/index.js +2 -2
  84. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  85. package/dist/multi-select/ui/defaultRenderers.d.ts +2 -1
  86. package/dist/multi-select/ui/defaultRenderers.d.ts.map +1 -1
  87. package/dist/notifications/index.js +1 -1
  88. package/dist/picker/index.js +1 -1
  89. package/dist/popover/FloatingPopover.d.ts +5 -0
  90. package/dist/popover/FloatingPopover.d.ts.map +1 -1
  91. package/dist/popover/index.js +1 -1
  92. package/dist/preset-range-date-input/index.js +2 -3
  93. package/dist/preset-range-date-input/index.js.map +1 -1
  94. package/dist/preset-select/index.js +1 -1
  95. package/dist/radio-button/index.js +3 -3
  96. package/dist/radio-button/index.js.map +1 -1
  97. package/dist/radio-group/index.js +1 -1
  98. package/dist/select/Select.d.ts.map +1 -1
  99. package/dist/select/index.js +1 -1
  100. package/dist/simple-table/index.js +1 -1
  101. package/dist/slider/Slider.d.ts.map +1 -1
  102. package/dist/slider/index.js +131 -117
  103. package/dist/slider/index.js.map +1 -1
  104. package/dist/state-select/index.js +1 -1
  105. package/dist/styles.css +1 -1
  106. package/dist/switch/index.js +1 -1
  107. package/dist/table/index.js +1 -1
  108. package/dist/table-sorting/index.js +1 -1
  109. package/dist/tabs/index.js +2 -2
  110. package/dist/tabs/index.js.map +1 -1
  111. package/dist/tag-input/index.js +2 -2
  112. package/dist/text/index.js +1 -1
  113. package/dist/text-editor/index.js +2 -2
  114. package/dist/textarea/Textarea.d.ts.map +1 -1
  115. package/dist/textarea/index.js +3 -2
  116. package/dist/textarea/index.js.map +1 -1
  117. package/dist/toggle/index.js +1 -1
  118. package/dist/tree-select/TreeMultiSelect.d.ts.map +1 -1
  119. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  120. package/dist/tree-select/index.js +244 -244
  121. package/dist/tree-select/index.js.map +1 -1
  122. package/dist/tree-table/index.js +1 -1
  123. package/package.json +8 -2
  124. package/src/styles/_base.scss +3 -3
  125. package/src/styles/config/_index.scss +43 -38
  126. package/src/styles/mixins/_controls.scss +17 -16
  127. package/storybook-static/assets/Badge-CD5894x5.css +1 -0
  128. package/storybook-static/assets/{Badge-Bh73-APE.js → Badge-CblO4qSx.js} +1 -1
  129. package/storybook-static/assets/{Badge.stories-gNFtCWnR.js → Badge.stories-CtRrqjAo.js} +1 -1
  130. package/storybook-static/assets/{Button-O9QPAftp.js → Button-BVt4jmN4.js} +1 -1
  131. package/storybook-static/assets/{Button-mjF9HSg0.js → Button-Bzc9jBAF.js} +1 -1
  132. package/storybook-static/assets/{Button-DtU4kGzD.css → Button-DuVDH6-g.css} +1 -1
  133. package/storybook-static/assets/{Button.stories-wkiE0c_a.js → Button.stories-tqfxm0ox.js} +1 -1
  134. package/storybook-static/assets/CalendarView-MkrPd5D-.js +1 -0
  135. package/storybook-static/assets/{CheckBox-CB8fTQF0.js → CheckBox-0BK2dgdD.js} +1 -1
  136. package/storybook-static/assets/CheckBox-8XczNrjq.css +1 -0
  137. package/storybook-static/assets/{CheckBox-Clpeg9q7.js → CheckBox-CWipX4CI.js} +2 -2
  138. package/storybook-static/assets/{CheckBox.stories-pfWBxvOy.js → CheckBox.stories-B5yWzlQa.js} +1 -1
  139. package/storybook-static/assets/{Color-6AOWCN3U-CVvkiihj.js → Color-6AOWCN3U-WdTzF_2p.js} +1 -1
  140. package/storybook-static/assets/{ContextMenu-Sv4wfyS3.js → ContextMenu-BjWu5DHB.js} +1 -1
  141. package/storybook-static/assets/{ContextMenu-eGnlhRRu.js → ContextMenu-kbSWsoCE.js} +1 -1
  142. package/storybook-static/assets/ContextMenu.stories-CQcrX3sj.js +90 -0
  143. package/storybook-static/assets/DateInput-4lH8A4HQ.css +1 -0
  144. package/storybook-static/assets/DateInput-BUgBb3aH.js +1 -0
  145. package/storybook-static/assets/{DateInput-DQDplLib.js → DateInput-CyNIW9Md.js} +1 -1
  146. package/storybook-static/assets/{DateInput.stories-BNpS4CND.js → DateInput.stories-DyB3PjTl.js} +1 -1
  147. package/storybook-static/assets/{DateRangePresetSelect-DCBEf98i.js → DateRangePresetSelect-BwibZk_q.js} +1 -1
  148. package/storybook-static/assets/{DateRangePresetSelect-Bfx-d5qg.js → DateRangePresetSelect-CBZ0OAmn.js} +1 -1
  149. package/storybook-static/assets/{DateRangePresetSelect.stories-PAV2jgQb.js → DateRangePresetSelect.stories-kmmKl-3j.js} +1 -1
  150. package/storybook-static/assets/{Detail-DvmdQCue.js → Detail-pHBZ5bkR.js} +1 -1
  151. package/storybook-static/assets/{Detail.stories-CEm00aSN.js → Detail.stories-Bs5YNmLn.js} +1 -1
  152. package/storybook-static/assets/Dialog-DBTU-LRR.js +1 -0
  153. package/storybook-static/assets/{Dialog-3I2Y7jD7.js → Dialog-DbFhCtF1.js} +1 -1
  154. package/storybook-static/assets/Dialog.stories-_WQW8YNs.js +31 -0
  155. package/storybook-static/assets/{Disclosure-DUIQ37oh.js → Disclosure-vOJWmhLt.js} +1 -1
  156. package/storybook-static/assets/Disclosure.stories-wyulIOoJ.js +40 -0
  157. package/storybook-static/assets/DisclosureGroup-BUDxwl5C.js +2 -0
  158. package/storybook-static/assets/DisclosureGroup-DjObX5Qs.css +1 -0
  159. package/storybook-static/assets/{DocsRenderer-JROSPFPF-DwPk6ai7.js → DocsRenderer-JROSPFPF-B7vhvrpB.js} +1 -1
  160. package/storybook-static/assets/DropZone-B7Q1qQqP.js +9 -0
  161. package/storybook-static/assets/{DropZone-BGuCU5dq.js → DropZone-BvRT0gUm.js} +1 -1
  162. package/storybook-static/assets/DropZone.stories-WmoR3uPj.js +36 -0
  163. package/storybook-static/assets/DropdownMenu-BW35W6_U.js +1 -0
  164. package/storybook-static/assets/ExpandableActionPanel-C9G9PsZx.js +2 -0
  165. package/storybook-static/assets/ExpandableActionPanel.stories-Dllpmeu_.js +19 -0
  166. package/storybook-static/assets/{Flex-CBwbh1yu.js → Flex-Cydb-4MR.js} +1 -1
  167. package/storybook-static/assets/{Flex.stories-cdk6vRZq.js → Flex.stories-Dczj9g4W.js} +1 -1
  168. package/storybook-static/assets/FloatingPopover-C-W77AcJ.js +1 -0
  169. package/storybook-static/assets/{FloatingPopover-DC84VrV3.css → FloatingPopover-jwILx9b0.css} +1 -1
  170. package/storybook-static/assets/FormattedTableCell-fePg_bmP.js +18 -0
  171. package/storybook-static/assets/{Grid-BkKqSMfk.js → Grid-Dal3v5dj.js} +1 -1
  172. package/storybook-static/assets/{Grid.stories-828arrPi.js → Grid.stories-Byb4mMpE.js} +1 -1
  173. package/storybook-static/assets/{ImageCropper.stories-CrIWrKKR.js → ImageCropper.stories-B9OD2pur.js} +1 -1
  174. package/storybook-static/assets/{ImageRenderer-F3AaZx-K.js → ImageRenderer-BcUjptiu.js} +1 -1
  175. package/storybook-static/assets/{ImageRenderer.stories-l3PnRYxy.js → ImageRenderer.stories-BuO2nhom.js} +1 -1
  176. package/storybook-static/assets/{ImageView.stories-C6uhkvCN.js → ImageView.stories-mSkR535R.js} +1 -1
  177. package/storybook-static/assets/{ImageViewer.stories-BSPiv5lU.js → ImageViewer.stories-DVdR3-_j.js} +2 -2
  178. package/storybook-static/assets/{ImageViewerRuntime-BOpMGgz6.js → ImageViewerRuntime-DiR_HwIE.js} +1 -1
  179. package/storybook-static/assets/{Input-D-ZrbHVw.js → Input-BdCavSu1.js} +1 -1
  180. package/storybook-static/assets/Input-DZQKV4DP.js +3 -0
  181. package/storybook-static/assets/Input-Db2-9PJZ.css +1 -0
  182. package/storybook-static/assets/{Input.stories-vqPv6pLx.js → Input.stories-Cu66SvKb.js} +1 -1
  183. package/storybook-static/assets/{InputDateTime-DHBVbRii.js → InputDateTime-Day94W-O.js} +1 -1
  184. package/storybook-static/assets/{InputDateTime.stories-BAvLMBuk.js → InputDateTime.stories-990MuicZ.js} +1 -1
  185. package/storybook-static/assets/InputFile-CJll5mC-.js +1 -0
  186. package/storybook-static/assets/{InputFile-B9TVOEZV.js → InputFile-Cp8x84ZG.js} +1 -1
  187. package/storybook-static/assets/InputFile.stories-fNNwbNfa.js +36 -0
  188. package/storybook-static/assets/{InputFiles-CxZkOZFK.js → InputFiles-CBvR3Szf.js} +1 -1
  189. package/storybook-static/assets/InputFiles-OusF5Lfq.js +1 -0
  190. package/storybook-static/assets/InputFiles.stories-DcpEbOOo.js +33 -0
  191. package/storybook-static/assets/{InputFilesList-OEX4zGI3.js → InputFilesList-zuNP1QIB.js} +1 -1
  192. package/storybook-static/assets/{InputImage-31A6fxSf.js → InputImage-CjMAL3uq.js} +1 -1
  193. package/storybook-static/assets/InputImage-Dl2bJNZk.js +7 -0
  194. package/storybook-static/assets/InputImage.stories-BzxEndIe.js +45 -0
  195. package/storybook-static/assets/InteractiveComponents.stories-CXF1nGLl.js +303 -0
  196. package/storybook-static/assets/{LayoutPicker-Dc55ovYM.js → LayoutPicker-BahcFBzK.js} +1 -1
  197. package/storybook-static/assets/LayoutPicker-CZRoovVS.css +1 -0
  198. package/storybook-static/assets/LayoutPicker-DzAN3gGO.js +376 -0
  199. package/storybook-static/assets/LayoutPicker-yb6IMmd2.css +1 -0
  200. package/storybook-static/assets/LayoutPicker.stories-ByamaGlv.js +74 -0
  201. package/storybook-static/assets/Listbox-C5hwzE4s.js +41 -0
  202. package/storybook-static/assets/Listbox-CHsNGsDc.js +1 -0
  203. package/storybook-static/assets/Listbox.stories-CvXZeESb.js +53 -0
  204. package/storybook-static/assets/{Modal-CXvDgktT.js → Modal-Dib11Lzy.js} +1 -1
  205. package/storybook-static/assets/Modal.stories-DYMy-kLP.js +180 -0
  206. package/storybook-static/assets/ModalManagerProvider-natWXnSM.js +1 -0
  207. package/storybook-static/assets/{MultiSelect-DN4foQlG.js → MultiSelect-Cl9MkPZw.js} +1 -1
  208. package/storybook-static/assets/MultiSelect-DlCZ7dhH.js +2 -0
  209. package/storybook-static/assets/{MultiSelect.stories-CgKNQmma.js → MultiSelect.stories-202TRBKq.js} +1 -1
  210. package/storybook-static/assets/{NoData-W7wK8oTW.js → NoData-DcHZdLTJ.js} +1 -1
  211. package/storybook-static/assets/{NotificationsHost-D1UoWmF8.js → NotificationsHost-DzqEi2vc.js} +1 -1
  212. package/storybook-static/assets/{NotificationsHost.stories-BWUuMmPl.js → NotificationsHost.stories-CvoQfIjj.js} +1 -1
  213. package/storybook-static/assets/{ODataMultiSelect-DE1V4el8.js → ODataMultiSelect-CHQguikm.js} +1 -1
  214. package/storybook-static/assets/{ODataMultiSelect.stories-Q1DUIL2W.js → ODataMultiSelect.stories-BZbWK4CP.js} +1 -1
  215. package/storybook-static/assets/{ODataSelect-CtoT2Wxx.js → ODataSelect-C1YGDpg_.js} +1 -1
  216. package/storybook-static/assets/{ODataSelect.stories-DLi7Rwzk.js → ODataSelect.stories-D4tQXs2c.js} +1 -1
  217. package/storybook-static/assets/{ODataTreeMultiSelect-DEZfgyPK.js → ODataTreeMultiSelect-BjR7zhyJ.js} +1 -1
  218. package/storybook-static/assets/{ODataTreeMultiSelect.stories-H42q78xI.js → ODataTreeMultiSelect.stories-Drg8mLhi.js} +1 -1
  219. package/storybook-static/assets/{ODataTreeSelect-BeylEiPN.js → ODataTreeSelect-D_fcT3Aw.js} +1 -1
  220. package/storybook-static/assets/{ODataTreeSelect.stories-MOILmtfY.js → ODataTreeSelect.stories-BWFdmmvf.js} +2 -2
  221. package/storybook-static/assets/{OneStepScroller-BSvYN6QP.js → OneStepScroller-DWCRXFHq.js} +1 -1
  222. package/storybook-static/assets/{PeriodSelect-KQFGCxq6.js → PeriodSelect-C7QQKxZ4.js} +1 -1
  223. package/storybook-static/assets/PeriodSelect-DtfTzrNK.js +5 -0
  224. package/storybook-static/assets/PeriodSelect.stories-CF65LIHm.js +60 -0
  225. package/storybook-static/assets/{PickerSelectionToolbar-Cvv8vTZm.js → PickerSelectionToolbar-D9atWyWj.js} +1 -1
  226. package/storybook-static/assets/{PickerTriggerActions-BBZmXagt.js → PickerTriggerActions-C7WeaOKN.js} +1 -1
  227. package/storybook-static/assets/{Popover-D6gSyjaW.js → Popover-CUJF-IMC.js} +1 -1
  228. package/storybook-static/assets/{Popover-7YZIq8Fi.js → Popover-DQJIeny_.js} +1 -1
  229. package/storybook-static/assets/{Popover.stories-DM69Ztws.js → Popover.stories-BON0z3PX.js} +1 -1
  230. package/storybook-static/assets/PresetRangeDateInput-D3_uzWzQ.js +1 -0
  231. package/storybook-static/assets/{PresetRangeDateInput-Ch6GapcJ.js → PresetRangeDateInput-DpA1KOCo.js} +1 -1
  232. package/storybook-static/assets/PresetRangeDateInput.stories-CDDJDiei.js +15 -0
  233. package/storybook-static/assets/{PresetSelect-C8uIYhPJ.js → PresetSelect-DlV2eC-b.js} +1 -1
  234. package/storybook-static/assets/RadioButton-BLyqp88m.js +2 -0
  235. package/storybook-static/assets/{RadioButton-BQjiyASl.js → RadioButton-wkLEwRaH.js} +1 -1
  236. package/storybook-static/assets/RadioButton.stories-DS9RYBEJ.js +35 -0
  237. package/storybook-static/assets/{RadioGroup-vw4ObVj-.js → RadioGroup-CsWIje1J.js} +1 -1
  238. package/storybook-static/assets/{RadioGroup-DNqu6WaC.js → RadioGroup-DERcyzA0.js} +1 -1
  239. package/storybook-static/assets/{RadioGroup.stories-B-WQzZW_.js → RadioGroup.stories-DkgUPavS.js} +1 -1
  240. package/storybook-static/assets/{Scrollable-DrxMuH2M.js → Scrollable-DvJ3T3Ik.js} +1 -1
  241. package/storybook-static/assets/{Select-BxigZNtu.js → Select-DmEm2boi.js} +1 -1
  242. package/storybook-static/assets/{Select-X_O4M8Hi.js → Select-g0c0XGQY.js} +1 -1
  243. package/storybook-static/assets/{Select.stories-BpTrYJSr.js → Select.stories-BEPJovVd.js} +1 -1
  244. package/storybook-static/assets/{SelectOptionContent-RAmgWCOm.js → SelectOptionContent-B5E2W8PZ.js} +1 -1
  245. package/storybook-static/assets/{SerializableSelect-CA9wjk2m.js → SerializableSelect-wgzDfqEi.js} +1 -1
  246. package/storybook-static/assets/{SerializableSelect.stories-DXd4E-3U.js → SerializableSelect.stories-V8IqyO9Y.js} +1 -1
  247. package/storybook-static/assets/{SingleDateTimeInput-BeFLYUBF.js → SingleDateTimeInput-B7v0t9f5.js} +1 -1
  248. package/storybook-static/assets/SingleDateTimeInput-CN7PyOsb.js +1 -0
  249. package/storybook-static/assets/SingleDateTimeInput-dwDPQ0HY.css +1 -0
  250. package/storybook-static/assets/SingleDateTimeInput.stories-FOoEMoyF.js +78 -0
  251. package/storybook-static/assets/Slider-24H5ASxG.js +1 -0
  252. package/storybook-static/assets/{Slider-BdWBkKp4.js → Slider-3HQKHpoi.js} +1 -1
  253. package/storybook-static/assets/Slider-BWuie2gr.css +1 -0
  254. package/storybook-static/assets/{Slider.stories-CgmOhVBs.js → Slider.stories-DeeP8cmV.js} +1 -1
  255. package/storybook-static/assets/{SliderInput-QmF2VQWA.js → SliderInput-CFbx-GW7.js} +1 -1
  256. package/storybook-static/assets/SliderInput-bqFr-Lyp.js +2 -0
  257. package/storybook-static/assets/SliderInput.stories-Djli653m.js +67 -0
  258. package/storybook-static/assets/{Sortable-D5OTpesH.js → Sortable-CMo2PMKX.js} +1 -1
  259. package/storybook-static/assets/{Sortable.stories-yz3c5EhY.js → Sortable.stories-BFsQvwMx.js} +1 -1
  260. package/storybook-static/assets/{Splitter-DVq6XBul.js → Splitter-dwOhGuIg.js} +1 -1
  261. package/storybook-static/assets/{Splitter.stories-CopPw1_p.js → Splitter.stories-DZ3nAxpo.js} +1 -1
  262. package/storybook-static/assets/StateSelect-IigEzRom.js +4 -0
  263. package/storybook-static/assets/{StateSelect-ojwXeKmx.js → StateSelect-j3gi4kbM.js} +1 -1
  264. package/storybook-static/assets/StateSelect.stories-Bj-2m2hS.js +44 -0
  265. package/storybook-static/assets/{StringToggle.stories-ByYMmlXl.js → StringToggle.stories-ClSl76ts.js} +1 -1
  266. package/storybook-static/assets/{Switch-Dy4Pahkn.js → Switch-BDbBZjMA.js} +1 -1
  267. package/storybook-static/assets/Switch-C9OAPzUM.js +1 -0
  268. package/storybook-static/assets/Switch.stories-CQ3ueThx.js +26 -0
  269. package/storybook-static/assets/{Table-BO6Oa4JV.js → Table-BbGcLQ81.js} +1 -1
  270. package/storybook-static/assets/{Table.stories--TpBKwmP.js → Table.stories-DvaHP59R.js} +1 -1
  271. package/storybook-static/assets/{Tabs-7c93qVyH.js → Tabs-CNEYvzUv.js} +1 -1
  272. package/storybook-static/assets/Tabs.stories-BpyQokl8.js +57 -0
  273. package/storybook-static/assets/TabsBox-ClZCbgKB.js +2 -0
  274. package/storybook-static/assets/TabsBox-Co1vxD90.css +1 -0
  275. package/storybook-static/assets/TagInput-ChmW4s9O.css +1 -0
  276. package/storybook-static/assets/TagInput-DorsSF_V.js +7 -0
  277. package/storybook-static/assets/TagInput.stories-ChgRz4Co.js +12 -0
  278. package/storybook-static/assets/{Text-BPlJUr3R.js → Text-DUqtop-c.js} +1 -1
  279. package/storybook-static/assets/{Textarea-D3S4MkiX.js → Textarea-ZfZJmHsp.js} +1 -1
  280. package/storybook-static/assets/Textarea-yZWv6QdW.js +1 -0
  281. package/storybook-static/assets/Textarea.stories-B5Q7syxH.js +27 -0
  282. package/storybook-static/assets/{TimePanel-C2iZ9Qr6.js → TimePanel-C39f__j8.js} +1 -1
  283. package/storybook-static/assets/{TimePanel.stories-JTjIv6z1.js → TimePanel.stories-DtjILTPk.js} +1 -1
  284. package/storybook-static/assets/{Toggle-CHmajZE5.js → Toggle-BndjhQFY.js} +1 -1
  285. package/storybook-static/assets/{Toggle-OlKw8qaK.js → Toggle-CdpPJI_O.js} +1 -1
  286. package/storybook-static/assets/{Toggle.stories-k4Z8qQVs.js → Toggle.stories-BD_C0YTw.js} +1 -1
  287. package/storybook-static/assets/{TreeMultiSelect-dOg0l7rk.js → TreeMultiSelect--M1WiE_f.js} +1 -1
  288. package/storybook-static/assets/TreeMultiSelect-BPz5kISi.js +1 -0
  289. package/storybook-static/assets/{TreeMultiSelect.stories-CAzZRxn5.js → TreeMultiSelect.stories-BgkDJur9.js} +1 -1
  290. package/storybook-static/assets/{TreePickerBase-DMs9EpFv.css → TreePickerBase-BxLupQDs.css} +1 -1
  291. package/storybook-static/assets/{TreePickerBase-ycYQYQgi.js → TreePickerBase-Dup03AiC.js} +2 -2
  292. package/storybook-static/assets/{TreeSelect-BrNyI_Qx.js → TreeSelect-B0RWsDT4.js} +1 -1
  293. package/storybook-static/assets/{TreeSelect-CDecTnag.js → TreeSelect-BrQGgG40.js} +1 -1
  294. package/storybook-static/assets/{TreeSelect.stories-BUOw2Rwn.js → TreeSelect.stories-DkgdJ5XX.js} +1 -1
  295. package/storybook-static/assets/{TreeTable-BXw7lFBk.js → TreeTable-HQr8pb9r.js} +1 -1
  296. package/storybook-static/assets/{TreeTable.stories-z40pruPV.js → TreeTable.stories-C4hcph6x.js} +1 -1
  297. package/storybook-static/assets/{async-BLDV04P4.js → async-lzSWdC34.js} +1 -1
  298. package/storybook-static/assets/{blocks-BiaKjftm.js → blocks-D8l_hmHU.js} +3 -3
  299. package/storybook-static/assets/{browserAndReact-DX4H5rjQ.js → browserAndReact-BwvRFhzI.js} +1 -1
  300. package/storybook-static/assets/{check-fB4gCKB_.js → check-DpX8PMs_.js} +1 -1
  301. package/storybook-static/assets/{chevron-down-B9GH0QvB.js → chevron-down-DE8FRR-h.js} +1 -1
  302. package/storybook-static/assets/{chevron-left-DjbyJeHO.js → chevron-left-Cy3TEG_Y.js} +1 -1
  303. package/storybook-static/assets/{chevron-right-D29uf09I.js → chevron-right-CZ4-4s1X.js} +1 -1
  304. package/storybook-static/assets/{chunk-W22LQPXL-CGkHFiZ0.js → chunk-W22LQPXL-Ci-XApFb.js} +1 -1
  305. package/storybook-static/assets/{circle-alert-Dmd7-WNp.js → circle-alert-CWbgc3Jn.js} +1 -1
  306. package/storybook-static/assets/{circle-check-VtVMsaJJ.js → circle-check-DODquDnH.js} +1 -1
  307. package/storybook-static/assets/{components-CsfQDbHv.js → components-BdUOCBP9.js} +3 -3
  308. package/storybook-static/assets/{contextMenu-CzdfaUsd.js → contextMenu-XvvXJEpW.js} +1 -1
  309. package/storybook-static/assets/defaultRenderers-lMEgLPIU.js +1 -0
  310. package/storybook-static/assets/defaultRenderers-tFmVIvt_.css +1 -0
  311. package/storybook-static/assets/{download-CyVhTbv6.js → download-BEGaHxQc.js} +1 -1
  312. package/storybook-static/assets/{filesAndExcel-DlUnL-Uu.js → filesAndExcel-C9FnZv9P.js} +1 -1
  313. package/storybook-static/assets/{floating-ui.react-DZ8IyUV4.js → floating-ui.react-GziJy4gA.js} +1 -1
  314. package/storybook-static/assets/formatters-CVj-3Vn0-C5-BLq9O.js +1 -0
  315. package/storybook-static/assets/{formatters-runtime-DVi3RdYb.js → formatters-runtime-DO0szrYr.js} +1 -1
  316. package/storybook-static/assets/{formatters-BTz64vfu.js → formatters-vWial7jf.js} +16 -1
  317. package/storybook-static/assets/{foundationLib-CFj4J-Pc.js → foundationLib-CIqc9fhG.js} +1 -1
  318. package/storybook-static/assets/{hooks-Ch5aYb7R.js → hooks-DfgvMSqN.js} +2 -2
  319. package/storybook-static/assets/{iframe-DaN-XFub.js → iframe-BHhbrImE.js} +4 -4
  320. package/storybook-static/assets/iframe-D7iJQEr5.css +1 -0
  321. package/storybook-static/assets/iframe-oIP1aL7X.js +1 -0
  322. package/storybook-static/assets/{info-Cirk1RKZ.js → info-DSZ4aUvi.js} +1 -1
  323. package/storybook-static/assets/{odata-BtfB5Aje.js → odata-DmijE2H9.js} +1 -1
  324. package/storybook-static/assets/{odata-service-DnPlNGpU-Bpd4Zh9L.js → odata-service-B5w4YBao-BcP2cvfZ.js} +1 -1
  325. package/storybook-static/assets/{odataAndTables-TEZyQ-TZ.js → odataAndTables-m2AMS6oI.js} +1 -1
  326. package/storybook-static/assets/{odataFetchFn-DEKVPDzV.js → odataFetchFn-CwpkgKoz.js} +1 -1
  327. package/storybook-static/assets/{odataStoryFixtures-CDDaJZKW.js → odataStoryFixtures-CBtJYQsv.js} +1 -1
  328. package/storybook-static/assets/{persisted-BzLLmgUK.js → persisted-DpSU25AR.js} +1 -1
  329. package/storybook-static/assets/{pureUtilities-Dw249t3R.js → pureUtilities-BG4ZSO63.js} +1 -1
  330. package/storybook-static/assets/react-Bz35HWpn.js +9 -0
  331. package/storybook-static/assets/{refresh-cw-BN3JCsXv.js → refresh-cw-ltgf4cUB.js} +1 -1
  332. package/storybook-static/assets/{runtimeAndState-CCVgv3ck.js → runtimeAndState-C_GrWjr8.js} +1 -1
  333. package/storybook-static/assets/{settings-2-jtcbbWm5.js → settings-2-qpVYfZn_.js} +1 -1
  334. package/storybook-static/assets/{sortable-dNWaObUX.js → sortable-CrCQ3H1V.js} +1 -1
  335. package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-hYwVxXYm.js → syntaxhighlighter-T5IQBZDB-eOr9ght-.js} +1 -1
  336. package/storybook-static/assets/{trash-2-DrVfT0z5.js → trash-2-lfhUDclN.js} +1 -1
  337. package/storybook-static/assets/{triangle-alert-B1Q28Bq9.js → triangle-alert-D9YGTafY.js} +1 -1
  338. package/storybook-static/assets/ui-CD51AD-_.css +1 -0
  339. package/storybook-static/assets/ui.module-kfCm3RIG.js +1 -0
  340. package/storybook-static/assets/{uiClasses-CO3Cdv1E.js → uiClasses-BS9RPcty.js} +1 -1
  341. package/storybook-static/assets/{useODataSelectBase-DlbeGYUP.js → useODataSelectBase-BVgxJPNn.js} +1 -1
  342. package/storybook-static/assets/{useODataTreeData-CvsoLfiG.js → useODataTreeData-CdLHOBnD.js} +1 -1
  343. package/storybook-static/assets/{usePickerDefaultFilter-DdxyE_i8.js → usePickerDefaultFilter-Be420WNF.js} +1 -1
  344. package/storybook-static/assets/{usePickerQuery-6rDaPaB0.js → usePickerQuery-B6U-oOS6.js} +1 -1
  345. package/storybook-static/assets/{usePickerTriggerController-BHBjSLtn.js → usePickerTriggerController-C-VxrzSe.js} +1 -1
  346. package/storybook-static/assets/{usePickerTriggerController-DzBkX15M.css → usePickerTriggerController-Q-ULIoGr.css} +1 -1
  347. package/storybook-static/assets/{x-Dh43gJN9.js → x-CNM39xuu.js} +1 -1
  348. package/storybook-static/iframe.html +3 -3
  349. package/storybook-static/index.json +1 -1
  350. package/storybook-static/project.json +1 -1
  351. package/dist/chunks/button-BU2kRzwu.js.map +0 -1
  352. package/dist/chunks/check-box-Dd3YFuxd.js.map +0 -1
  353. package/dist/chunks/date-input-BzExUQnc.js.map +0 -1
  354. package/dist/chunks/input-Bp6_Ucgr.js.map +0 -1
  355. package/dist/chunks/multi-select-COEkc8Qc.js.map +0 -1
  356. package/dist/chunks/picker-e6IsrMUG.js.map +0 -1
  357. package/dist/chunks/popover-CGU3MlsH.js +0 -222
  358. package/dist/chunks/select-BON0S9Dr.js.map +0 -1
  359. package/dist/chunks/ui.module-BisoTevy.js.map +0 -1
  360. package/storybook-static/assets/Badge-Cr7bAbxa.css +0 -1
  361. package/storybook-static/assets/CalendarView-CqKlnF8k.js +0 -1
  362. package/storybook-static/assets/CheckBox-CT1_Mjc0.css +0 -1
  363. package/storybook-static/assets/ContextMenu.stories-CVw3hOvY.js +0 -90
  364. package/storybook-static/assets/DateInput-D8_Oleoy.js +0 -1
  365. package/storybook-static/assets/DateInput-pmGiwdvw.css +0 -1
  366. package/storybook-static/assets/Dialog.stories-lcadmonM.js +0 -31
  367. package/storybook-static/assets/Disclosure-DzVnkjef.css +0 -1
  368. package/storybook-static/assets/Disclosure.stories-BeizaZWP.js +0 -41
  369. package/storybook-static/assets/DropZone.stories-B4J6OZ3T.js +0 -44
  370. package/storybook-static/assets/ExpandableActionPanel.stories-gCrqbhG6.js +0 -20
  371. package/storybook-static/assets/FloatingPopover-D4h-c24R.js +0 -1
  372. package/storybook-static/assets/FormattedTableCell-Dh-kHTOC.js +0 -18
  373. package/storybook-static/assets/Input-BioMOZju.css +0 -1
  374. package/storybook-static/assets/Input-Co--DMHY.js +0 -3
  375. package/storybook-static/assets/InputFile.stories-CypBLWFh.js +0 -36
  376. package/storybook-static/assets/InputFiles.stories-BGwCp7OC.js +0 -33
  377. package/storybook-static/assets/InputImage.stories-CdpOudXI.js +0 -51
  378. package/storybook-static/assets/LayoutPicker-9tLTatHF.css +0 -1
  379. package/storybook-static/assets/LayoutPicker.stories-DXcn-WXQ.js +0 -449
  380. package/storybook-static/assets/Listbox-DF8E6oMR.js +0 -38
  381. package/storybook-static/assets/Listbox.stories-C98_9wX3.js +0 -47
  382. package/storybook-static/assets/Modal.stories-DAC_QwN7.js +0 -180
  383. package/storybook-static/assets/MultiSelect-B-wX6JPo.js +0 -2
  384. package/storybook-static/assets/MultiSelectToken-DDu5n78h.css +0 -1
  385. package/storybook-static/assets/MultiSelectToken-fjW8p4YG.js +0 -1
  386. package/storybook-static/assets/PeriodSelect.stories-BIYx4_Yy.js +0 -64
  387. package/storybook-static/assets/PresetRangeDateInput.stories-Cqd4eb0N.js +0 -15
  388. package/storybook-static/assets/RadioButton.stories-Cbho4i83.js +0 -36
  389. package/storybook-static/assets/SingleDateTimeInput-mOllNfg2.css +0 -1
  390. package/storybook-static/assets/SingleDateTimeInput.stories-B1aZ754N.js +0 -78
  391. package/storybook-static/assets/Slider-BYrHesOR.js +0 -1
  392. package/storybook-static/assets/Slider-DMDFRH6B.css +0 -1
  393. package/storybook-static/assets/SliderInput.stories-MjSmhiOM.js +0 -68
  394. package/storybook-static/assets/StateSelect.stories-D46m5HNn.js +0 -47
  395. package/storybook-static/assets/Switch.stories-EiAb5Z-D.js +0 -26
  396. package/storybook-static/assets/Tabs-BLkTB6pp.css +0 -1
  397. package/storybook-static/assets/Tabs.stories-DXZ0r2ix.js +0 -58
  398. package/storybook-static/assets/TagInput-LeQAhDgs.css +0 -1
  399. package/storybook-static/assets/TagInput.stories-CoM8rXwa.js +0 -18
  400. package/storybook-static/assets/Textarea.stories-47k8uHdB.js +0 -27
  401. package/storybook-static/assets/TreeMultiSelect-BC_n1Wb-.js +0 -1
  402. package/storybook-static/assets/formatters--mhLir82-v41eaI4a.js +0 -1
  403. package/storybook-static/assets/iframe-CJQlmNUm.css +0 -1
  404. package/storybook-static/assets/iframe-Cr7AcW_R.js +0 -1
  405. package/storybook-static/assets/react-KzpmXJc9.js +0 -9
  406. package/storybook-static/assets/ui-CSPaMpbi.css +0 -1
  407. package/storybook-static/assets/ui.module-DoMIk8Oc.js +0 -1
  408. /package/storybook-static/assets/{CheckBox.module-BBzuj5He.js → CheckBox.module-DPvJxTHD.js} +0 -0
  409. /package/storybook-static/assets/{Modal-BL_cTIW7.css → ModalManagerProvider-BL_cTIW7.css} +0 -0
  410. /package/storybook-static/assets/{array-BBSjoTRy-CIRmlF93.js → array-D-_yMMUK-CIRmlF93.js} +0 -0
@@ -1,69 +1,78 @@
1
1
  import { Text as e } from "../text/index.js";
2
- import { t } from "./ui.module-BisoTevy.js";
3
- import { t as n } from "./check-box-Dd3YFuxd.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-e6IsrMUG.js";
2
+ import { t } from "./ui.module-BfaIVBba.js";
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";
5
5
  import { t as ee } from "./separator-B72Aq-6a.js";
6
- import { n as m, r as h, t as g } from "./useODataSelectBase-CKe1AVMI.js";
6
+ import { n as m, r as h, t as g } from "./useODataSelectBase-DI_wwKgw.js";
7
7
  import { forwardRef as _, useCallback as te, useMemo as v, useRef as ne, useState as y } from "react";
8
- import { flattenODataDependentServices as b, useODataCollectionModel as re } from "@ryuzaki13/react-foundation-api/odata";
9
- import { cn as ie } from "@ryuzaki13/react-foundation-lib/utils";
10
- import { XIcon as ae } from "lucide-react";
11
- import { Fragment as oe, jsx as x, jsxs as S } from "react/jsx-runtime";
8
+ import { flattenODataDependentServices as re, useODataCollectionModel as ie } from "@ryuzaki13/react-foundation-api/odata";
9
+ import { cn as ae } from "@ryuzaki13/react-foundation-lib/utils";
10
+ import { XIcon as oe } from "lucide-react";
11
+ import { Fragment as se, jsx as b, jsxs as x } from "react/jsx-runtime";
12
+ import { formatRussianPlural as ce } from "@ryuzaki13/react-foundation-lib/formatters";
12
13
  //#region src/multi-select/ui/MultiSelectOption.tsx
13
- function se({ item: e, textKey: t, codeKey: n, highlight: r }) {
14
- return /* @__PURE__ */ x(h, {
14
+ function le({ item: e, textKey: t, codeKey: n, highlight: r }) {
15
+ return /* @__PURE__ */ b(h, {
15
16
  label: e[t],
16
17
  code: n && e[n],
17
18
  highlight: r
18
19
  });
19
20
  }
20
- var C = {
21
+ var S = {
21
22
  multiSelect: "_9oSdQi",
22
23
  multiSelectTokens: "iobHig",
23
24
  multiSelectToken: "yatXso"
24
25
  };
25
26
  //#endregion
26
27
  //#region src/multi-select/ui/MultiSelectToken.tsx
27
- function w({ value: e }) {
28
- return e ? /* @__PURE__ */ x("div", {
29
- className: C.multiSelectTokens,
30
- children: /* @__PURE__ */ x("div", {
31
- className: C.multiSelectToken,
28
+ function C({ value: e }) {
29
+ return e ? /* @__PURE__ */ b("div", {
30
+ className: S.multiSelectTokens,
31
+ children: /* @__PURE__ */ b("div", {
32
+ className: S.multiSelectToken,
32
33
  children: e
33
34
  })
34
35
  }) : null;
35
36
  }
36
37
  //#endregion
37
38
  //#region src/multi-select/ui/defaultRenderers.tsx
38
- function T(e, t, n) {
39
+ var w = {
40
+ one: "элемент",
41
+ few: "элемента",
42
+ many: "элементов"
43
+ };
44
+ function T(e) {
45
+ return ce(e, w);
46
+ }
47
+ function E(e, t, n) {
39
48
  if (n) return n;
40
49
  let r = e[0];
41
50
  return r ? Object.keys(r).find((e) => e !== t) ?? t : t;
42
51
  }
43
- function E(e, t, n) {
52
+ function ue(e, t, n) {
44
53
  if (e.length === 0) return;
45
- if (e.length > 1) return `${e.length} элементов`;
46
- let r = T(e, t, n);
54
+ if (e.length > 1) return T(e.length);
55
+ let r = E(e, t, n);
47
56
  return e[0]?.[r] ?? e[0]?.[t];
48
57
  }
49
- function ce(e) {
58
+ function de(e) {
50
59
  return function(t) {
51
- return /* @__PURE__ */ x(w, { value: E(t.selectedItems, e.codeKey, e.textKey) });
60
+ return /* @__PURE__ */ b(C, { value: ue(t.selectedItems, e.codeKey, e.textKey) });
52
61
  };
53
62
  }
54
- function le(e) {
55
- return /* @__PURE__ */ x(a, {
63
+ function fe(e) {
64
+ return /* @__PURE__ */ b(a, {
56
65
  onSelectAll: e.selectAll,
57
66
  onDeselectAll: e.deselectAll
58
67
  });
59
68
  }
60
- function ue(e) {
69
+ function pe(e) {
61
70
  return function(t, n) {
62
- return /* @__PURE__ */ x(se, {
71
+ return /* @__PURE__ */ b(le, {
63
72
  item: t,
64
73
  selected: n.selected,
65
74
  highlight: n.highlightQuery,
66
- textKey: T([t], e.codeKey, e.textKey),
75
+ textKey: E([t], e.codeKey, e.textKey),
67
76
  codeKey: e.hideCode ? void 0 : e.codeKey
68
77
  });
69
78
  };
@@ -71,9 +80,9 @@ function ue(e) {
71
80
  //#endregion
72
81
  //#region src/multi-select/ui/MultiSelectOptionSkeleton.tsx
73
82
  function D({ text: n, isError: r }) {
74
- return /* @__PURE__ */ S("div", {
83
+ return /* @__PURE__ */ x("div", {
75
84
  className: t.uiPopupOption,
76
- children: [/* @__PURE__ */ x("span", { className: t.uiPopupOptionIcon }), /* @__PURE__ */ x(e, {
85
+ children: [/* @__PURE__ */ b("span", { className: t.uiPopupOptionIcon }), /* @__PURE__ */ b(e, {
77
86
  color: r ? "error" : "primary",
78
87
  children: n
79
88
  })]
@@ -81,46 +90,46 @@ function D({ text: n, isError: r }) {
81
90
  }
82
91
  //#endregion
83
92
  //#region src/multi-select/ui/MultiSelect.tsx
84
- function de({ isNoData: e, isLoading: t, error: n, children: r }) {
85
- return e ? /* @__PURE__ */ x(p, { emptyState: /* @__PURE__ */ x(D, { text: "Нет данных" }) }) : t ? /* @__PURE__ */ x(p, { loadingState: /* @__PURE__ */ x(D, { text: "Загрузка..." }) }) : n ? /* @__PURE__ */ x(p, { errorState: /* @__PURE__ */ x(D, {
93
+ function me({ isNoData: e, isLoading: t, error: n, children: r }) {
94
+ return e ? /* @__PURE__ */ b(p, { emptyState: /* @__PURE__ */ b(D, { text: "Нет данных" }) }) : t ? /* @__PURE__ */ b(p, { loadingState: /* @__PURE__ */ b(D, { text: "Загрузка..." }) }) : n ? /* @__PURE__ */ b(p, { errorState: /* @__PURE__ */ b(D, {
86
95
  isError: !0,
87
96
  text: "Ошибка загрузки"
88
- }) }) : /* @__PURE__ */ x(oe, { children: r });
97
+ }) }) : /* @__PURE__ */ b(se, { children: r });
89
98
  }
90
- var fe = [];
99
+ var he = [];
91
100
  function O(e, t) {
92
101
  return e[t];
93
102
  }
94
- function pe(e, t, n) {
103
+ function ge(e, t, n) {
95
104
  return Array.from(/* @__PURE__ */ new Set([
96
105
  e[n],
97
106
  e[t],
98
107
  ...Object.values(e)
99
108
  ]));
100
109
  }
101
- function me(e, t, n) {
110
+ function _e(e, t, n) {
102
111
  if (e.length !== t.length) return !1;
103
112
  let r = new Set(t.map((e) => O(e, n)));
104
113
  return e.every((e) => r.has(O(e, n)));
105
114
  }
106
- function he({ entries: e, listId: r, activeIndex: i, selectedKeys: a, codeKey: o, query: s, highlightQuery: c, getOptionDisabled: l, getOptionId: u, setOptionRef: d, toggleOption: f, selectOnlyOption: p, renderItem: ee }) {
115
+ function ve({ entries: e, listId: r, activeIndex: i, selectedKeys: a, codeKey: o, query: s, highlightQuery: c, getOptionDisabled: l, getOptionId: u, setOptionRef: d, toggleOption: f, selectOnlyOption: p, renderItem: ee }) {
107
116
  return e.map(({ item: e, index: m }) => {
108
117
  let h = m === i, g = a.has(O(e, o)), _ = l?.(e) ?? !1;
109
- return /* @__PURE__ */ S("div", {
118
+ return /* @__PURE__ */ x("div", {
110
119
  id: u(r, m),
111
120
  ref: (e) => d(m, e),
112
121
  role: "option",
113
122
  "aria-selected": g,
114
123
  "aria-disabled": _ || void 0,
115
- className: ie(t.uiSelectOption, _ && t.disabled, g && t.selected, h && t.uiPopupOptionActive),
124
+ className: ae(t.uiSelectOption, _ && t.disabled, g && t.selected, h && t.uiPopupOptionActive),
116
125
  onMouseDown: (e) => {
117
126
  e.preventDefault();
118
127
  },
119
- children: [/* @__PURE__ */ x("div", {
128
+ children: [/* @__PURE__ */ b("div", {
120
129
  onClick: (e) => {
121
130
  e.stopPropagation();
122
131
  },
123
- children: /* @__PURE__ */ x(n, {
132
+ children: /* @__PURE__ */ b(n, {
124
133
  value: g,
125
134
  disabled: _,
126
135
  onChange: () => {
@@ -133,7 +142,7 @@ function he({ entries: e, listId: r, activeIndex: i, selectedKeys: a, codeKey: o
133
142
  e.stopPropagation();
134
143
  }
135
144
  })
136
- }), /* @__PURE__ */ x("div", {
145
+ }), /* @__PURE__ */ b("div", {
137
146
  className: "overflowHidden",
138
147
  onClick: () => {
139
148
  _ || p(e);
@@ -149,39 +158,39 @@ function he({ entries: e, listId: r, activeIndex: i, selectedKeys: a, codeKey: o
149
158
  }, `${O(e, o)}-${m}`);
150
159
  });
151
160
  }
152
- var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange: h, label: g, description: _, placeholder: b, size: re, query: ie, defaultQuery: se, highlightQuery: w, onQuery: E, defaultFilter: D = !0, onOpen: k, onClose: ge, getOptionDisabled: A, disabled: j, error: M, isLoading: N, renderToken: P, renderToolbar: F, renderItem: _e }, I) => {
153
- let ve = ne(null), [L, ye] = y(!1), R = "search-multi", z = m ?? fe, be = v(() => new Set(z.map((t) => O(t, e))), [e, z]), xe = v(() => p.filter((t) => !be.has(O(t, e))), [
161
+ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange: h, label: g, description: _, placeholder: re, size: ie, query: ae, defaultQuery: ce, highlightQuery: le, onQuery: C, defaultFilter: w = !0, onOpen: T, onClose: ue, getOptionDisabled: D, disabled: k, error: A, isLoading: j, renderToken: M, renderToolbar: N, renderItem: P }, F) => {
162
+ let I = ne(null), [L, ye] = y(!1), R = "search-multi", z = m ?? he, be = v(() => new Set(z.map((t) => O(t, e))), [e, z]), xe = v(() => p.filter((t) => !be.has(O(t, e))), [
154
163
  e,
155
164
  be,
156
165
  p
157
- ]), B = v(() => T([...z, ...p], e, n), [
166
+ ]), B = v(() => E([...z, ...p], e, n), [
158
167
  e,
159
168
  z,
160
169
  p,
161
170
  n
162
171
  ]), { query: V, setQuery: Se } = d({
163
172
  open: L,
164
- query: ie,
165
- defaultQuery: se,
166
- onQuery: E,
173
+ query: ae,
174
+ defaultQuery: ce,
175
+ onQuery: C,
167
176
  triggerMode: R
168
177
  }), H = r({
169
178
  options: z,
170
179
  query: V,
171
- enabled: D,
172
- getSearchText: (t) => pe(t, e, B)
180
+ enabled: w,
181
+ getSearchText: (t) => ge(t, e, B)
173
182
  }), U = r({
174
183
  options: xe,
175
184
  query: V,
176
- enabled: D,
177
- getSearchText: (t) => pe(t, e, B)
185
+ enabled: w,
186
+ getSearchText: (t) => ge(t, e, B)
178
187
  }), W = v(() => [...H, ...U], [U, H]), Ce = H.length > 0 ? 0 : -1, { draftValue: G, setDraftValue: K, prepareOpen: we } = l({
179
188
  value: z,
180
189
  open: L,
181
190
  onCommit: h,
182
- onOpen: k,
183
- onClose: ge,
184
- isEqual: (t, n) => me(t, n, e)
191
+ onOpen: T,
192
+ onClose: ue,
193
+ isEqual: (t, n) => _e(t, n, e)
185
194
  }), q = v(() => new Set(G.map((t) => O(t, e))), [e, G]), Te = v(() => ({
186
195
  selectedItems: G,
187
196
  committedSelectedItems: z,
@@ -192,26 +201,26 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
192
201
  G,
193
202
  L,
194
203
  q
195
- ]), J = te((e) => A?.(e, Te) ?? !1, [A, 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({
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({
196
205
  options: W,
197
206
  selectedIndex: Ce,
198
207
  open: L,
199
208
  onOpenChange: ye,
200
209
  onSelect: void 0,
201
- disabled: j,
210
+ disabled: k,
202
211
  getOptionDisabled: J,
203
212
  closeOnSelect: !1,
204
213
  allowOpenWithoutOptions: !0,
205
214
  triggerMode: R
206
- }), Be = w ?? V, X = (t) => {
215
+ }), Be = le ?? V, X = (t) => {
207
216
  let n = O(t, e);
208
217
  K((r) => r.some((t) => O(t, e) === n) ? r.filter((t) => O(t, e) !== n) : J(t) ? r : [...r, t]);
209
218
  }, Ve = (e) => {
210
- if (ve.current = e, typeof I == "function") {
211
- I(e);
219
+ if (I.current = e, typeof F == "function") {
220
+ F(e);
212
221
  return;
213
222
  }
214
- I && (I.current = e);
223
+ F && (F.current = e);
215
224
  }, He = () => {
216
225
  K([]), L || h([]);
217
226
  }, Ue = () => {
@@ -236,10 +245,10 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
236
245
  clearSelection: He,
237
246
  selectAll: Ue,
238
247
  deselectAll: We
239
- }, Je = P === void 0 ? ce({
248
+ }, Je = M === void 0 ? de({
240
249
  codeKey: e,
241
250
  textKey: B
242
- }) : P, Ye = F === void 0 ? le : F, Xe = _e ?? ue({
251
+ }) : M, Ye = N === void 0 ? fe : N, Xe = P ?? pe({
243
252
  codeKey: e,
244
253
  textKey: B,
245
254
  hideCode: a
@@ -249,12 +258,12 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
249
258
  })), $e = U.map((e, t) => ({
250
259
  item: e,
251
260
  index: t + Q.length
252
- })), et = !N && !M && W.length === 0, $ = f({
261
+ })), et = !j && !A && W.length === 0, $ = f({
253
262
  mode: R,
254
263
  open: L,
255
264
  currentQuery: V,
256
265
  hasDisplayValue: !1,
257
- inputRef: ve,
266
+ inputRef: I,
258
267
  setQuery: Se,
259
268
  openList: Ne,
260
269
  close: Me,
@@ -263,24 +272,24 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
263
272
  L || we();
264
273
  }
265
274
  });
266
- return /* @__PURE__ */ x(u, {
275
+ return /* @__PURE__ */ b(u, {
267
276
  label: g,
268
277
  description: _,
269
- disabled: j,
270
- size: re,
271
- className: C.multiSelect,
278
+ disabled: k,
279
+ size: ie,
280
+ className: S.multiSelect,
272
281
  children: ({ controlId: n, labelId: r, describedBy: a }) => {
273
282
  let s = `${n}-listbox`;
274
- return /* @__PURE__ */ S(oe, { children: [/* @__PURE__ */ x(i, {
283
+ return /* @__PURE__ */ x(se, { children: [/* @__PURE__ */ b(i, {
275
284
  ref: Ve,
276
285
  rootRef: ke,
277
286
  id: n,
278
287
  type: "text",
279
288
  role: "combobox",
280
289
  autoComplete: "off",
281
- disabled: j,
290
+ disabled: k,
282
291
  value: V,
283
- placeholder: Ke ? void 0 : `${b} <${p.length}>`,
292
+ placeholder: Ke ? void 0 : `${re ?? g ?? "Выберите значения"} <${p.length}>`,
284
293
  "aria-labelledby": r,
285
294
  "aria-describedby": a,
286
295
  "aria-haspopup": "listbox",
@@ -289,12 +298,12 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
289
298
  "aria-autocomplete": "list",
290
299
  "aria-activedescendant": L ? ze(s) : void 0,
291
300
  rootClassName: "flex alignItemsCenter",
292
- endAdornment: /* @__PURE__ */ S(c, {
301
+ endAdornment: /* @__PURE__ */ b(c, {
293
302
  open: L,
294
- disabled: j,
303
+ disabled: k,
295
304
  onToggleMouseDown: $.handleToggleMouseDown,
296
305
  onToggleClick: $.handleToggleClick,
297
- children: [Ze, /* @__PURE__ */ x("button", {
306
+ children: /* @__PURE__ */ b("button", {
298
307
  type: "button",
299
308
  disabled: !Ke,
300
309
  className: t.uiClearButton,
@@ -302,9 +311,10 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
302
311
  "data-action": "clear-multi-select",
303
312
  onClick: He,
304
313
  "aria-label": "Очистить все",
305
- children: /* @__PURE__ */ x(ae, {})
306
- })]
314
+ children: /* @__PURE__ */ b(oe, {})
315
+ })
307
316
  }),
317
+ overlay: Ze,
308
318
  onChange: (e) => {
309
319
  $.handleTriggerInputChange(e.target.value);
310
320
  },
@@ -329,7 +339,7 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
329
339
  suppressClosedArrowUp: !0
330
340
  });
331
341
  }
332
- }), /* @__PURE__ */ x(o, {
342
+ }), /* @__PURE__ */ b(o, {
333
343
  open: L,
334
344
  context: Ee,
335
345
  floatingStyles: De,
@@ -345,14 +355,14 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
345
355
  tabIndex: -1,
346
356
  className: t.uiPopupOptions,
347
357
  header: Qe,
348
- children: /* @__PURE__ */ x(de, {
358
+ children: /* @__PURE__ */ b(me, {
349
359
  isNoData: et,
350
- isLoading: N,
351
- error: M,
352
- children: /* @__PURE__ */ S("div", {
360
+ isLoading: j,
361
+ error: A,
362
+ children: /* @__PURE__ */ x("div", {
353
363
  className: "scrollable h100",
354
364
  children: [
355
- /* @__PURE__ */ x(he, {
365
+ /* @__PURE__ */ b(ve, {
356
366
  entries: Q,
357
367
  listId: s,
358
368
  activeIndex: Y,
@@ -367,8 +377,8 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
367
377
  selectOnlyOption: Z,
368
378
  renderItem: Xe
369
379
  }),
370
- Q.length > 0 && xe.length > 0 && /* @__PURE__ */ x(ee, { className: "marginBlockSm" }),
371
- /* @__PURE__ */ x(he, {
380
+ Q.length > 0 && xe.length > 0 && /* @__PURE__ */ b(ee, { className: "marginBlockSm" }),
381
+ /* @__PURE__ */ b(ve, {
372
382
  entries: $e,
373
383
  listId: s,
374
384
  activeIndex: Y,
@@ -393,7 +403,7 @@ var k = _(({ codeKey: e, textKey: n, hideCode: a, items: p, value: m, onChange:
393
403
  k.displayName = "MultiSelect";
394
404
  //#endregion
395
405
  //#region src/multi-select/model/useODataMultiSelect.ts
396
- function ge({ odata: e, segment: t, model: n, value: r, dependencies: i, onChange: a }) {
406
+ function A({ odata: e, segment: t, model: n, value: r, dependencies: i, onChange: a }) {
397
407
  let o = m({
398
408
  odata: e,
399
409
  segment: t,
@@ -410,16 +420,16 @@ function ge({ odata: e, segment: t, model: n, value: r, dependencies: i, onChang
410
420
  }
411
421
  //#endregion
412
422
  //#region src/multi-select/ui/ODataMultiSelect.tsx
413
- var A = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a, value: o, dependencies: s, onChange: c, size: l }) => {
414
- let u = ge({
423
+ var j = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a, value: o, dependencies: s, onChange: c, size: l }) => {
424
+ let u = A({
415
425
  odata: e,
416
426
  segment: t,
417
- model: re(n),
427
+ model: ie(n),
418
428
  value: o,
419
429
  dependencies: s,
420
430
  onChange: c
421
431
  });
422
- return /* @__PURE__ */ x(k, {
432
+ return /* @__PURE__ */ b(k, {
423
433
  label: r,
424
434
  description: i,
425
435
  size: l,
@@ -437,7 +447,7 @@ var A = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a
437
447
  placeholder: u.placeholder,
438
448
  error: u.isError ? "Ошибка загрузки" : void 0
439
449
  });
440
- }, j = ({ item: e, values: t, onChange: n, width: r = 15 }) => {
450
+ }, M = ({ item: e, values: t, onChange: n, width: r = 15 }) => {
441
451
  let [i, a] = y({}), o = t ?? i, s = `calc(${r}em + var(--width-add))`, c = te((r) => {
442
452
  let i = {
443
453
  ...o,
@@ -450,12 +460,12 @@ var A = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a
450
460
  o,
451
461
  t
452
462
  ]);
453
- return /* @__PURE__ */ x("div", {
463
+ return /* @__PURE__ */ b("div", {
454
464
  style: {
455
465
  maxWidth: s,
456
466
  minWidth: s
457
467
  },
458
- children: /* @__PURE__ */ x(A, {
468
+ children: /* @__PURE__ */ b(j, {
459
469
  odata: e.odata,
460
470
  segment: e.segment,
461
471
  model: e.model,
@@ -464,13 +474,13 @@ var A = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a
464
474
  onChange: c
465
475
  })
466
476
  });
467
- }, M = ({ width: e = 15, odata: t, segments: n, model: r, values: i, onChange: a }) => {
477
+ }, N = ({ width: e = 15, odata: t, segments: n, model: r, values: i, onChange: a }) => {
468
478
  let [o, s] = y({}), c = i ?? o;
469
- return b([{
479
+ return re([{
470
480
  odata: t,
471
481
  segments: n,
472
482
  model: r
473
- }]).map((t) => /* @__PURE__ */ x(j, {
483
+ }]).map((t) => /* @__PURE__ */ b(M, {
474
484
  item: t,
475
485
  values: c,
476
486
  onChange: (e) => {
@@ -481,21 +491,21 @@ var A = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a
481
491
  };
482
492
  //#endregion
483
493
  //#region src/multi-select/ui/SerializableMultiSelect.tsx
484
- function N(e, t) {
494
+ function P(e, t) {
485
495
  return e[t];
486
496
  }
487
- function P(e, t, n) {
497
+ function F(e, t, n) {
488
498
  let r = e[t];
489
499
  if (typeof r == "string") return r;
490
- let i = N(e, n);
500
+ let i = P(e, n);
491
501
  return typeof i == "string" ? i : String(i);
492
502
  }
493
- function F({ label: e, description: t, disabled: n, placeholder: r, size: i, options: a, value: o, onChange: s, optionKey: c, optionLabel: l, renderCode: u }) {
503
+ function I({ label: e, description: t, disabled: n, placeholder: r, size: i, options: a, value: o, onChange: s, optionKey: c, optionLabel: l, renderCode: u }) {
494
504
  let d = a.map((e) => ({
495
- key: String(N(e, c)),
496
- text: P(e, l, c)
505
+ key: String(P(e, c)),
506
+ text: F(e, l, c)
497
507
  })), f = new Set((o ?? []).map((e) => String(e))), p = d.filter((e) => f.has(e.key));
498
- return /* @__PURE__ */ x(k, {
508
+ return /* @__PURE__ */ b(k, {
499
509
  label: e,
500
510
  description: t,
501
511
  disabled: n,
@@ -510,6 +520,6 @@ function F({ label: e, description: t, disabled: n, placeholder: r, size: i, opt
510
520
  });
511
521
  }
512
522
  //#endregion
513
- export { k as a, A as i, M as n, w as o, j as r, F as t };
523
+ export { k as a, j as i, N as n, T as o, M as r, C as s, I as t };
514
524
 
515
- //# sourceMappingURL=multi-select-COEkc8Qc.js.map
525
+ //# sourceMappingURL=multi-select-01xmD1nZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-01xmD1nZ.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 { query: currentQuery, setQuery } = usePickerQuery({\n\t\t\topen,\n\t\t\tquery,\n\t\t\tdefaultQuery,\n\t\t\tonQuery,\n\t\t\ttriggerMode\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: setOpen,\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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"}
@@ -1,6 +1,6 @@
1
- import { t as e } from "./ui.module-BisoTevy.js";
1
+ import { t as e } from "./ui.module-BfaIVBba.js";
2
2
  import { t } from "./grid-dI94AAbi.js";
3
- import { i as n, l as r, s as i } from "./input-Bp6_Ucgr.js";
3
+ import { i as n, l as r, s as i } from "./input-BWCaVC06.js";
4
4
  import { t as a } from "./separator-B72Aq-6a.js";
5
5
  import { forwardRef as o, useEffect as s, useEffectEvent as c, useMemo as l, useRef as u, useState as d } from "react";
6
6
  import { cn as f } from "@ryuzaki13/react-foundation-lib/utils";
@@ -347,4 +347,4 @@ function R({ mode: e, open: t, currentQuery: n, hasDisplayValue: r, inputRef: i,
347
347
  //#endregion
348
348
  export { N as a, k as c, E as d, T as f, P as i, O as l, I as n, j as o, S as p, F as r, A as s, R as t, D as u };
349
349
 
350
- //# sourceMappingURL=picker-e6IsrMUG.js.map
350
+ //# sourceMappingURL=picker-Mdb73_uW.js.map