@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,180 +0,0 @@
1
- import{n as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{t as r}from"./react-C21x__mS.js";import{n as i,t as a}from"./x-Dh43gJN9.js";import{n as o}from"./iframe-DaN-XFub.js";import{t as s}from"./react-dom-2o2phaJG.js";import{a as c,i as l}from"./utils-DUM89eIj.js";import{a as ee,n as te,r as ne,t as re}from"./dom-B3G_GtJw.js";import{n as u,t as d}from"./FlexContainer-LmZIdhq2.js";import{n as f,t as p}from"./Button-mjF9HSg0.js";import{a as ie,c as m,l as h,n as ae,o as oe,r as se,s as g,t as _}from"./react-KzpmXJc9.js";import{c as v,t as y}from"./Input-Co--DMHY.js";import{n as b,t as ce}from"./GridContainer-qDguE1HS.js";import{n as x,t as le}from"./Scrollable-DrxMuH2M.js";function ue(){!g.current&&ie();let[e]=(0,de.useState)(h.current);return e}var de;function S(){return(S=e((()=>{m(),oe(),de=r()})))()}var C,w,fe,pe,me,he,ge,T,E,D,O,k;function A(){return(A=e((()=>{C=`vGPUKV`,w=`O7gb7P`,fe=`RVq8v3`,pe=`PCSUAL`,me=`XDCHzq`,he=`t1kl8L`,ge=`o3PEEB`,T=`WhUkxm`,E=`NDgdMi`,D=`JDlse5`,O=`FaDKSt`,k={modal:C,sm:w,md:fe,lg:pe,xl:me,xxl:he,inside:ge,header:T,body:E,headerText:D,headerButton:O}})))()}var j,M,N;function P(){return(P=e((()=>{j={hidden:{opacity:0,scale:.96,y:12},visible:{opacity:1,scale:1,y:0}},M={duration:.18,ease:[.22,1,.36,1]},N={duration:0}})))()}var F,I,L;function R(){return(R=e((()=>{F=r(),I=(0,F.createContext)({modals:[],openModal:()=>{},closeModal:()=>{},isTopModal:()=>!1}),L=()=>(0,F.useContext)(I)})))()}var z,_e,B,V,H,U,W;function ve(){return(ve=e((()=>{z=t(r(),1),ne(),l(),i(),_(),_e=s(),f(),u(),b(),x(),A(),P(),R(),B=o(),V=({children:e,className:t})=>(0,B.jsx)(`div`,{className:c(`surface2 paddingMd borderBottom`,t),children:e}),V.displayName=`Modal.Toolbar`,H=({children:e,className:t,scrollable:n})=>(0,B.jsx)(`div`,{className:c(`paddingMd h100 overflowHidden`,t),children:n?(0,B.jsx)(le,{className:`h100`,children:e}):e}),H.displayName=`Modal.Content`,U=({children:e,className:t})=>(0,B.jsx)(`div`,{className:c(`surface2 borderTop paddingMd`,t),children:(0,B.jsx)(d,{gap:`sm`,align:`center`,justify:`end`,children:e})}),U.displayName=`Modal.Footer`,W=({isOpen:e,title:t,size:n=`sm`,height:r,onClose:i,children:o})=>{let s=(0,z.useId)(),l=(0,z.useId)(),{modals:ne,openModal:u,closeModal:d,isTopModal:f}=L(),ie=ue(),m=(0,z.useRef)(null),h=(0,z.useRef)(0),oe=e&&(ne.length===0||f(s));(0,z.useEffect)(()=>{e&&(m.current=document.activeElement instanceof HTMLElement?document.activeElement:null)},[e]);let g=ee({active:e||!1,trapFocus:!0,restoreFocus:!1});te({active:oe||!1,onDismiss:i,containerRef:g}),(0,z.useEffect)(()=>{e&&u(s)},[e,s,u]),(0,z.useEffect)(()=>()=>{window.cancelAnimationFrame(h.current),d(s)},[d,s]);function _(){d(s);let e=m.current;h.current=window.requestAnimationFrame(()=>{e?.isConnected&&e.focus(),m.current=null})}let v=re(`modal-root`);if(!v)return null;let y=null,b=null,x=null,le=z.Children.toArray(o);for(let e of le)switch(e.type.displayName){case V.displayName:if(y)throw Error(`Modal: duplicate <Toolbar> found`);y=e;break;case U.displayName:if(x)throw Error(`Modal: duplicate <Footer> found`);x=e;break;case H.displayName:if(b)throw Error(`Modal: duplicate <Content> found`);b=e}return(0,_e.createPortal)((0,B.jsx)(se,{onExitComplete:_,children:e?(0,B.jsxs)(ae.div,{ref:g,className:c(k.modal,k[n]),style:{height:r},role:`dialog`,"aria-modal":`true`,"aria-labelledby":l,"aria-describedby":`${l}-content`,initial:`hidden`,animate:`visible`,exit:`hidden`,variants:j,transition:ie?N:M,children:[(0,B.jsxs)(`div`,{className:c(k.header,y?``:`borderBottom`),children:[(0,B.jsx)(`h3`,{className:k.headerText,id:l,children:t}),(0,B.jsx)(p,{icon:(0,B.jsx)(a,{}),className:k.headerButton,variant:`ghost`,"aria-label":`Закрыть модальное окно`,onClick:i})]}),(0,B.jsxs)(ce,{id:`${l}-content`,templateRows:`${y?`auto`:``} 1fr ${x?`auto`:``}`.trim(),className:k.body,children:[y,b,x]})]}):null}),v)},V.__docgenInfo={description:``,methods:[],displayName:`Modal.Toolbar`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}},H.__docgenInfo={description:``,methods:[],displayName:`Modal.Content`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``},scrollable:{required:!1,tsType:{name:`boolean`},description:``}}},U.__docgenInfo={description:``,methods:[],displayName:`Modal.Footer`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}function ye({children:e,compensateScrollbar:t=!1}){let[n,r]=(0,G.useState)([]),i=(0,G.useRef)(0),a=(0,G.useRef)(0),o=(0,G.useRef)(``),s=(0,G.useRef)(!1),c=(0,G.useCallback)(e=>{r(t=>[...t,e])},[]),l=(0,G.useCallback)(e=>{r(t=>t.filter(t=>t!==e))},[]),ee=(0,G.useCallback)(e=>n[n.length-1]===e,[n]);return(0,G.useEffect)(()=>{let e=i.current===0;if(e&&n.length>0){let e=window.scrollY,r=document.querySelector(`#app-root`);a.current=Math.max(0,window.innerWidth-document.documentElement.clientWidth),o.current=document.body.style.paddingRight,document.body.style.position=`fixed`,document.body.style.top=`-${e}px`,document.body.style.width=`100%`,t&&(document.body.style.paddingRight=`${a.current}px`,s.current=!0),r?.setAttribute(`inert`,`true`),i.current=n.length;return}if(!e&&n.length>0&&t!==s.current&&(document.body.style.paddingRight=t?`${a.current}px`:o.current,s.current=t),!e&&n.length===0){let e=document.querySelector(`#app-root`),t=parseInt(document.body.style.top||`0`)*-1;document.body.style.position=``,document.body.style.top=``,document.body.style.width=``,s.current&&=(document.body.style.paddingRight=o.current,!1),e?.removeAttribute(`inert`),window.scrollTo({top:t,left:0,behavior:`instant`})}i.current=n.length},[t,n.length]),(0,be.jsx)(I.Provider,{value:{modals:n,openModal:c,closeModal:l,isTopModal:ee},children:e})}var G,be;function xe(){return(xe=e((()=>{G=t(r(),1),R(),be=o(),ye.__docgenInfo={description:`Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.`,methods:[],displayName:`ModalManagerProvider`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},compensateScrollbar:{required:!1,tsType:{name:`boolean`},description:`Компенсирует исчезновение скроллбара правым padding у body.`,defaultValue:{value:`false`,computed:!1}}}}})))()}var Se=n({Controlled:()=>Y,ScrollableContent:()=>Z,Sizes:()=>Q,StackedModals:()=>$,WithToolbarAndFooter:()=>X,__namedExportsOrder:()=>Te,default:()=>we});function Ce({children:e}){return(0,J.jsx)(`div`,{style:{minHeight:`60dvh`,padding:24,display:`flex`,alignItems:`center`,justifyContent:`center`},children:e})}function K(){let[e,t]=(0,q.useState)(`Алексей`),[n,r]=(0,q.useState)(`Департамент автоматизации бизнеса`);return(0,J.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,J.jsx)(y,{label:`Имя`,value:e,onChange:t,placeholder:`Введите имя`}),(0,J.jsx)(y,{label:`Подразделение`,value:n,onChange:r,placeholder:`Введите подразделение`}),(0,J.jsxs)(`div`,{style:{padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[`Текущие значения: `,e||`не указано`,`, `,n||`не указано`]})]})}var q,J,we,Y,X,Z,Q,$,Te;function Ee(){return(Ee=e((()=>{q=r(),f(),v(),ve(),xe(),J=o(),we={title:`Shared/UI/Modal`,component:W,parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:"Композиционная модалка с `Toolbar`, `Content` и `Footer`, поддержкой focus trap, возврата фокуса, закрытия по `Escape` и менеджером стека через `ModalManagerProvider`."}}},decorators:[e=>(0,J.jsx)(ye,{children:(0,J.jsx)(Ce,{children:e()})})],args:{isOpen:!1,title:`Редактирование профиля`,size:`md`,height:void 0,onClose:()=>{},children:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(H,{children:(0,J.jsx)(K,{})}),(0,J.jsxs)(U,{children:[(0,J.jsx)(p,{variant:`transparent`,children:`Отмена`}),(0,J.jsx)(p,{children:`Сохранить`})]})]})},argTypes:{isOpen:{description:`Управляет видимостью модального окна.`,control:`boolean`},title:{description:`Заголовок модального окна.`,control:`text`},size:{description:`Предустановленный размер модального окна.`,control:`inline-radio`,options:[`sm`,`md`,`lg`,`xl`,`inside`]},height:{description:`Явная высота body-области модалки.`,control:`text`},onClose:{description:"Вызывается при закрытии по кнопке, `Escape` или пользовательскому действию.",control:!1},children:{description:"Композиция из `ModalToolbar`, `ModalContent`, `ModalFooter`.",control:!1}}},Y={name:`Управляемая модалка`,render:e=>{let[t,n]=(0,q.useState)(!1);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{onClick:()=>n(!0),children:`Открыть модалку`}),(0,J.jsxs)(W,{...e,isOpen:t,onClose:()=>n(!1),children:[(0,J.jsx)(H,{children:(0,J.jsx)(K,{})}),(0,J.jsxs)(U,{children:[(0,J.jsx)(p,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,J.jsx)(p,{onClick:()=>n(!1),children:`Сохранить`})]})]})]})}},X={name:`Полная композиция`,render:e=>{let[t,n]=(0,q.useState)(!1);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{onClick:()=>n(!0),children:`Открыть сценарий редактирования`}),(0,J.jsxs)(W,{...e,isOpen:t,onClose:()=>n(!1),height:`min(34rem, 70dvh)`,children:[(0,J.jsx)(V,{children:(0,J.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`div`,{style:{fontWeight:600},children:`Черновик обновлён автоматически`}),(0,J.jsx)(`div`,{style:{opacity:.72},children:`Последнее сохранение: 2 минуты назад`})]}),(0,J.jsx)(p,{variant:`transparent`,children:`Сбросить`})]})}),(0,J.jsx)(H,{children:(0,J.jsx)(K,{})}),(0,J.jsxs)(U,{children:[(0,J.jsx)(p,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,J.jsx)(p,{variant:`success`,onClick:()=>n(!1),children:`Применить`})]})]})]})}},Z={name:`Длинный контент`,render:e=>{let[t,n]=(0,q.useState)(!1);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{onClick:()=>n(!0),children:`Открыть длинный контент`}),(0,J.jsxs)(W,{...e,isOpen:t,onClose:()=>n(!1),size:`lg`,height:`min(38rem, 75dvh)`,title:`Журнал изменений`,children:[(0,J.jsx)(H,{children:(0,J.jsx)(`div`,{style:{display:`grid`,gap:12},children:Array.from({length:18},(e,t)=>(0,J.jsxs)(`div`,{style:{padding:12,borderRadius:8,border:`1px solid var(--border-1)`,background:`var(--surface-1)`},children:[(0,J.jsxs)(`div`,{style:{fontWeight:600},children:[`Событие #`,t+1]}),(0,J.jsx)(`div`,{style:{opacity:.72},children:`Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.`})]},t))})}),(0,J.jsx)(U,{children:(0,J.jsx)(p,{onClick:()=>n(!1),children:`Закрыть`})})]})]})}},Q={name:`Размеры`,render:()=>{let[e,t]=(0,q.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:12,justifyContent:`center`},children:[`sm`,`md`,`lg`,`xl`,`inside`].map(e=>(0,J.jsx)(p,{variant:`transparent`,onClick:()=>t(e),children:e.toUpperCase()},e))}),e&&(0,J.jsxs)(W,{isOpen:!0,onClose:()=>t(null),size:e,title:`Размер ${e.toUpperCase()}`,children:[(0,J.jsx)(H,{children:(0,J.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,J.jsx)(`div`,{children:`Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.`}),(0,J.jsx)(`div`,{style:{opacity:.72},children:"Проверьте отступы, читабельность и поведение при `Escape`."})]})}),(0,J.jsx)(U,{children:(0,J.jsx)(p,{onClick:()=>t(null),children:`Понятно`})})]})]})}},$={name:`Стек модалок`,render:e=>{let[t,n]=(0,q.useState)(!1),[r,i]=(0,q.useState)(!1);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{onClick:()=>n(!0),children:`Открыть первую модалку`}),(0,J.jsxs)(W,{...e,isOpen:t,onClose:()=>{i(!1),n(!1)},size:`lg`,title:`Первая модалка`,children:[(0,J.jsx)(H,{children:(0,J.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,J.jsx)(`div`,{children:"Откройте вторую модалку и проверьте, что `Escape` закрывает только верхний слой."}),(0,J.jsx)(p,{variant:`transparent`,onClick:()=>i(!0),children:`Открыть вторую модалку`})]})}),(0,J.jsx)(U,{children:(0,J.jsx)(p,{variant:`transparent`,onClick:()=>n(!1),children:`Закрыть первую`})})]}),(0,J.jsxs)(W,{isOpen:r,onClose:()=>i(!1),size:`sm`,title:`Вторая модалка`,children:[(0,J.jsx)(H,{children:(0,J.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,J.jsx)(`div`,{children:`Эта модалка должна считаться верхней в стеке.`}),(0,J.jsx)(y,{label:`Короткое поле`,value:`Фокус внутри`,onChange:()=>{}})]})}),(0,J.jsx)(U,{children:(0,J.jsx)(p,{onClick:()=>i(!1),children:`Закрыть вторую`})})]})]})}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
2
- name: "Управляемая модалка",
3
- render: args => {
4
- const [open, setOpen] = useState(false);
5
- return <>
6
- <Button onClick={() => setOpen(true)}>Открыть модалку</Button>
7
- <Modal {...args} isOpen={open} onClose={() => setOpen(false)}>
8
- <ModalContent>
9
- <DemoFormContent />
10
- </ModalContent>
11
- <ModalFooter>
12
- <Button variant="transparent" onClick={() => setOpen(false)}>
13
- Отмена
14
- </Button>
15
- <Button onClick={() => setOpen(false)}>Сохранить</Button>
16
- </ModalFooter>
17
- </Modal>
18
- </>;
19
- }
20
- }`,...Y.parameters?.docs?.source}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
21
- name: "Полная композиция",
22
- render: args => {
23
- const [open, setOpen] = useState(false);
24
- return <>
25
- <Button onClick={() => setOpen(true)}>Открыть сценарий редактирования</Button>
26
- <Modal {...args} isOpen={open} onClose={() => setOpen(false)} height="min(34rem, 70dvh)">
27
- <ModalToolbar>
28
- <div style={{
29
- display: "flex",
30
- alignItems: "center",
31
- justifyContent: "space-between",
32
- gap: 12,
33
- padding: 12,
34
- borderRadius: 8,
35
- background: "var(--surface-1)",
36
- border: "1px solid var(--border-1)"
37
- }}>
38
- <div>
39
- <div style={{
40
- fontWeight: 600
41
- }}>Черновик обновлён автоматически</div>
42
- <div style={{
43
- opacity: 0.72
44
- }}>Последнее сохранение: 2 минуты назад</div>
45
- </div>
46
- <Button variant="transparent">Сбросить</Button>
47
- </div>
48
- </ModalToolbar>
49
- <ModalContent>
50
- <DemoFormContent />
51
- </ModalContent>
52
- <ModalFooter>
53
- <Button variant="transparent" onClick={() => setOpen(false)}>
54
- Отмена
55
- </Button>
56
- <Button variant="success" onClick={() => setOpen(false)}>
57
- Применить
58
- </Button>
59
- </ModalFooter>
60
- </Modal>
61
- </>;
62
- }
63
- }`,...X.parameters?.docs?.source}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
64
- name: "Длинный контент",
65
- render: args => {
66
- const [open, setOpen] = useState(false);
67
- return <>
68
- <Button onClick={() => setOpen(true)}>Открыть длинный контент</Button>
69
- <Modal {...args} isOpen={open} onClose={() => setOpen(false)} size="lg" height="min(38rem, 75dvh)" title="Журнал изменений">
70
- <ModalContent>
71
- <div style={{
72
- display: "grid",
73
- gap: 12
74
- }}>
75
- {Array.from({
76
- length: 18
77
- }, (_, index) => <div key={index} style={{
78
- padding: 12,
79
- borderRadius: 8,
80
- border: "1px solid var(--border-1)",
81
- background: "var(--surface-1)"
82
- }}>
83
- <div style={{
84
- fontWeight: 600
85
- }}>Событие #{index + 1}</div>
86
- <div style={{
87
- opacity: 0.72
88
- }}>
89
- Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.
90
- </div>
91
- </div>)}
92
- </div>
93
- </ModalContent>
94
- <ModalFooter>
95
- <Button onClick={() => setOpen(false)}>Закрыть</Button>
96
- </ModalFooter>
97
- </Modal>
98
- </>;
99
- }
100
- }`,...Z.parameters?.docs?.source}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
101
- name: "Размеры",
102
- render: () => {
103
- const [openSize, setOpenSize] = useState<"sm" | "md" | "lg" | "xl" | "inside" | null>(null);
104
- return <>
105
- <div style={{
106
- display: "flex",
107
- flexWrap: "wrap",
108
- gap: 12,
109
- justifyContent: "center"
110
- }}>
111
- {(["sm", "md", "lg", "xl", "inside"] as const).map(size => <Button key={size} variant="transparent" onClick={() => setOpenSize(size)}>
112
- {size.toUpperCase()}
113
- </Button>)}
114
- </div>
115
-
116
- {openSize && <Modal isOpen onClose={() => setOpenSize(null)} size={openSize} title={\`Размер \${openSize.toUpperCase()}\`}>
117
- <ModalContent>
118
- <div style={{
119
- display: "grid",
120
- gap: 12
121
- }}>
122
- <div>Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.</div>
123
- <div style={{
124
- opacity: 0.72
125
- }}>Проверьте отступы, читабельность и поведение при \`Escape\`.</div>
126
- </div>
127
- </ModalContent>
128
- <ModalFooter>
129
- <Button onClick={() => setOpenSize(null)}>Понятно</Button>
130
- </ModalFooter>
131
- </Modal>}
132
- </>;
133
- }
134
- }`,...Q.parameters?.docs?.source}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
135
- name: "Стек модалок",
136
- render: args => {
137
- const [outerOpen, setOuterOpen] = useState(false);
138
- const [innerOpen, setInnerOpen] = useState(false);
139
- return <>
140
- <Button onClick={() => setOuterOpen(true)}>Открыть первую модалку</Button>
141
-
142
- <Modal {...args} isOpen={outerOpen} onClose={() => {
143
- setInnerOpen(false);
144
- setOuterOpen(false);
145
- }} size="lg" title="Первая модалка">
146
- <ModalContent>
147
- <div style={{
148
- display: "grid",
149
- gap: 16
150
- }}>
151
- <div>Откройте вторую модалку и проверьте, что \`Escape\` закрывает только верхний слой.</div>
152
- <Button variant="transparent" onClick={() => setInnerOpen(true)}>
153
- Открыть вторую модалку
154
- </Button>
155
- </div>
156
- </ModalContent>
157
- <ModalFooter>
158
- <Button variant="transparent" onClick={() => setOuterOpen(false)}>
159
- Закрыть первую
160
- </Button>
161
- </ModalFooter>
162
- </Modal>
163
-
164
- <Modal isOpen={innerOpen} onClose={() => setInnerOpen(false)} size="sm" title="Вторая модалка">
165
- <ModalContent>
166
- <div style={{
167
- display: "grid",
168
- gap: 12
169
- }}>
170
- <div>Эта модалка должна считаться верхней в стеке.</div>
171
- <Input label="Короткое поле" value={"Фокус внутри"} onChange={() => {}} />
172
- </div>
173
- </ModalContent>
174
- <ModalFooter>
175
- <Button onClick={() => setInnerOpen(false)}>Закрыть вторую</Button>
176
- </ModalFooter>
177
- </Modal>
178
- </>;
179
- }
180
- }`,...$.parameters?.docs?.source}}},Te=[`Controlled`,`WithToolbarAndFooter`,`ScrollableContent`,`Sizes`,`StackedModals`]})))()}export{$ as a,S as c,Q as i,Se as n,X as o,Z as r,Ee as s,Y as t};
@@ -1,2 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./CheckBox-Clpeg9q7.js";import{n as a,t as o}from"./x-Dh43gJN9.js";import{n as s}from"./iframe-DaN-XFub.js";import{a as ee,i as c}from"./utils-DUM89eIj.js";import{n as l,t as u}from"./SelectOptionContent-RAmgWCOm.js";import{n as d,t as f}from"./Text-BPlJUr3R.js";import{n as p,t as m}from"./ui.module-DoMIk8Oc.js";import{c as h,g,h as _,i as v,l as te,m as ne,n as re,p as ie,r as y,s as ae,t as b,u as x}from"./usePickerTriggerController-BHBjSLtn.js";import{n as S,t as C}from"./PickerSelectionToolbar-Cvv8vTZm.js";import{i as w,n as oe,r as T,t as E}from"./usePickerQuery-6rDaPaB0.js";import{n as D,t as se}from"./PickerTriggerActions-BBZmXagt.js";import{n as ce,t as O}from"./usePickerDefaultFilter-DdxyE_i8.js";import{a as k,i as A,n as j,o as le,r as ue,t as M}from"./MultiSelectToken-fjW8p4YG.js";function N({item:e,textKey:t,codeKey:n,highlight:r}){return(0,P.jsx)(u,{label:e[t],code:n&&e[n],highlight:r})}var P;function F(){return(F=e((()=>{l(),P=s(),N.__docgenInfo={description:"Отдельная опция внутри `MultiSelect`. Отрисовывает состояние выбора и подсветку текста для найденных совпадений.",methods:[],displayName:`MultiSelectOption`,props:{item:{required:!0,tsType:{name:`CollectionItem`},description:``},textKey:{required:!0,tsType:{name:`string`},description:``},codeKey:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``}}}})))()}function I(e,t,n){if(n)return n;let r=e[0];return r?Object.keys(r).find(e=>e!==t)??t:t}function de(e,t,n){if(e.length===0)return;if(e.length>1)return`${e.length} элементов`;let r=I(e,t,n);return e[0]?.[r]??e[0]?.[t]}function fe(e){return function(t){return(0,L.jsx)(M,{value:de(t.selectedItems,e.codeKey,e.textKey)})}}function pe(e){return(0,L.jsx)(C,{onSelectAll:e.selectAll,onDeselectAll:e.deselectAll})}function me(e){return function(t,n){return(0,L.jsx)(N,{item:t,selected:n.selected,highlight:n.highlightQuery,textKey:I([t],e.codeKey,e.textKey),codeKey:e.hideCode?void 0:e.codeKey})}}var L;function R(){return(R=e((()=>{S(),F(),j(),L=s(),pe.__docgenInfo={description:``,methods:[],displayName:`renderDefaultMultiSelectToolbar`,props:{selectedItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},committedSelectedItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},availableItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},query:{required:!0,tsType:{name:`string`},description:``},open:{required:!0,tsType:{name:`boolean`},description:``},clearSelection:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},selectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},deselectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}function z({text:e,isError:t}){return(0,B.jsxs)(`div`,{className:p.uiPopupOption,children:[(0,B.jsx)(`span`,{className:p.uiPopupOptionIcon}),(0,B.jsx)(f,{color:t?`error`:`primary`,children:e})]})}var B;function V(){return(V=e((()=>{d(),m(),B=s(),z.__docgenInfo={description:"Скелетон строки опции для `MultiSelect`. Используется во время загрузки или при отображении ошибок получения списка.",methods:[],displayName:`MultiSelectOptionSkeleton`,props:{text:{required:!0,tsType:{name:`string`},description:``},isError:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}function he({isNoData:e,isLoading:t,error:n,children:r}){return e?(0,W.jsx)(T,{emptyState:(0,W.jsx)(z,{text:`Нет данных`})}):t?(0,W.jsx)(T,{loadingState:(0,W.jsx)(z,{text:`Загрузка...`})}):n?(0,W.jsx)(T,{errorState:(0,W.jsx)(z,{isError:!0,text:`Ошибка загрузки`})}):(0,W.jsx)(W.Fragment,{children:r})}function H(e,t){return e[t]}function ge(e,t,n){return Array.from(new Set([e[n],e[t],...Object.values(e)]))}function _e(e,t,n){if(e.length!==t.length)return!1;let r=new Set(t.map(e=>H(e,n)));return e.every(e=>r.has(H(e,n)))}function ve({entries:e,listId:t,activeIndex:n,selectedKeys:r,codeKey:a,query:o,highlightQuery:s,getOptionDisabled:c,getOptionId:l,setOptionRef:u,toggleOption:d,selectOnlyOption:f,renderItem:m}){return e.map(({item:e,index:h})=>{let g=h===n,_=r.has(H(e,a)),v=c?.(e)??!1;return(0,W.jsxs)(`div`,{id:l(t,h),ref:e=>u(h,e),role:`option`,"aria-selected":_,"aria-disabled":v||void 0,className:ee(p.uiSelectOption,v&&p.disabled,_&&p.selected,g&&p.uiPopupOptionActive),onMouseDown:e=>{e.preventDefault()},children:[(0,W.jsx)(`div`,{onClick:e=>{e.stopPropagation()},children:(0,W.jsx)(i,{value:_,disabled:v,onChange:()=>{v||d(e)},onClick:e=>{e.stopPropagation()},onMouseDown:e=>{e.stopPropagation()}})}),(0,W.jsx)(`div`,{className:`overflowHidden`,onClick:()=>{v||f(e)},children:m(e,{selected:_,active:g,disabled:v,query:o,highlightQuery:s})})]},`${H(e,a)}-${h}`)})}var U,W,ye,G;function K(){return(K=e((()=>{U=t(n(),1),c(),a(),r(),g(),x(),w(),D(),h(),O(),y(),E(),k(),b(),ne(),m(),R(),A(),V(),W=s(),ye=[],G=(0,U.forwardRef)(({codeKey:e,textKey:t,hideCode:n,items:r,value:i,onChange:a,label:s,description:ee,placeholder:c,size:l,query:u,defaultQuery:d,highlightQuery:f,onQuery:m,defaultFilter:h=!0,onOpen:g,onClose:ne,getOptionDisabled:y,disabled:b,error:x,isLoading:S,renderToken:C,renderToolbar:w,renderItem:T},E)=>{let D=(0,U.useRef)(null),[O,k]=(0,U.useState)(!1),A=`search-multi`,j=i??ye,M=(0,U.useMemo)(()=>new Set(j.map(t=>H(t,e))),[e,j]),N=(0,U.useMemo)(()=>r.filter(t=>!M.has(H(t,e))),[e,M,r]),P=(0,U.useMemo)(()=>I([...j,...r],e,t),[e,j,r,t]),{query:F,setQuery:de}=oe({open:O,query:u,defaultQuery:d,onQuery:m,triggerMode:A}),L=ce({options:j,query:F,enabled:h,getSearchText:t=>ge(t,e,P)}),R=ce({options:N,query:F,enabled:h,getSearchText:t=>ge(t,e,P)}),z=(0,U.useMemo)(()=>[...L,...R],[R,L]),B=L.length>0?0:-1,{draftValue:V,setDraftValue:G,prepareOpen:K}=le({value:j,open:O,onCommit:a,onOpen:g,onClose:ne,isEqual:(t,n)=>_e(t,n,e)}),q=(0,U.useMemo)(()=>new Set(V.map(t=>H(t,e))),[e,V]),be=(0,U.useMemo)(()=>({selectedItems:V,committedSelectedItems:j,selectedKeys:q,open:O}),[j,V,O,q]),J=(0,U.useCallback)(e=>y?.(e,be)??!1,[y,be]),{activeIndex:Y,context:xe,floatingStyles:Se,getFloatingProps:Ce,setReference:we,setFloating:Te,setOptionRef:Ee,close:De,openList:Oe,toggleOpen:ke,selectActiveOption:Ae,handleReferenceKeyDown:je,handleFloatingKeyDown:Me,getOptionId:Ne,getActiveOptionId:Pe}=v({options:z,selectedIndex:B,open:O,onOpenChange:k,onSelect:void 0,disabled:b,getOptionDisabled:J,closeOnSelect:!1,allowOpenWithoutOptions:!0,triggerMode:A}),Fe=f??F,X=t=>{let n=H(t,e);G(r=>r.some(t=>H(t,e)===n)?r.filter(t=>H(t,e)!==n):J(t)?r:[...r,t])},Ie=e=>{if(D.current=e,typeof E==`function`){E(e);return}E&&(E.current=e)},Le=()=>{G([]),O||a([])},Re=()=>{G(t=>{let n=[...t],r=new Set(t.map(t=>H(t,e)));for(let t of z){let i=H(t,e);!r.has(i)&&!J(t)&&(r.add(i),n.push(t))}return n})},ze=()=>{G([])},Be=e=>{J(e)||(G([e]),De())},Ve=O?V:j,Z=Ve.length>0,He={selectedItems:Ve,committedSelectedItems:j,availableItems:R,query:F,open:O,clearSelection:Le,selectAll:Re,deselectAll:ze},Ue=C===void 0?fe({codeKey:e,textKey:P}):C,We=w===void 0?pe:w,Ge=T??me({codeKey:e,textKey:P,hideCode:n}),Ke=typeof Ue==`function`?Ue(He):null,qe=typeof We==`function`?We(He):null,Q=L.map((e,t)=>({item:e,index:t})),Je=R.map((e,t)=>({item:e,index:t+Q.length})),Ye=!S&&!x&&z.length===0,$=re({mode:A,open:O,currentQuery:F,hasDisplayValue:!1,inputRef:D,setQuery:de,openList:Oe,close:De,toggleOpen:ke,onBeforeOpen:()=>{O||K()}});return(0,W.jsx)(_,{label:s,description:ee,disabled:b,size:l,className:ue.multiSelect,children:({controlId:t,labelId:n,describedBy:i})=>{let a=`${t}-listbox`;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ae,{ref:Ie,rootRef:we,id:t,type:`text`,role:`combobox`,autoComplete:`off`,disabled:b,value:F,placeholder:Z?void 0:`${c} <${r.length}>`,"aria-labelledby":n,"aria-describedby":i,"aria-haspopup":`listbox`,"aria-expanded":O,"aria-controls":O?a:void 0,"aria-autocomplete":`list`,"aria-activedescendant":O?Pe(a):void 0,rootClassName:`flex alignItemsCenter`,endAdornment:(0,W.jsxs)(se,{open:O,disabled:b,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,children:[Ke,(0,W.jsx)(`button`,{type:`button`,disabled:!Z,className:p.uiClearButton,"data-ui":`multi-select-clear-button`,"data-action":`clear-multi-select`,onClick:Le,"aria-label":`Очистить все`,children:(0,W.jsx)(o,{})})]}),onChange:e=>{$.handleTriggerInputChange(e.target.value)},onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{je(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{if(Y>=0){let e=z[Y];if(e){X(e);return}}Ae()},enableClosedArrowDownOpen:!0,suppressClosedArrowUp:!0})}}),(0,W.jsx)(te,{open:O,context:xe,floatingStyles:Se,listId:a,labelId:n,descriptionId:i,activeOptionId:O?Pe(a):void 0,setFloating:Te,getFloatingProps:Ce,onKeyDown:Me,initialFocus:-1,returnFocus:!1,tabIndex:-1,className:p.uiPopupOptions,header:qe,children:(0,W.jsx)(he,{isNoData:Ye,isLoading:S,error:x,children:(0,W.jsxs)(`div`,{className:`scrollable h100`,children:[(0,W.jsx)(ve,{entries:Q,listId:a,activeIndex:Y,selectedKeys:q,codeKey:e,query:F,highlightQuery:Fe,getOptionDisabled:J,getOptionId:Ne,setOptionRef:Ee,toggleOption:X,selectOnlyOption:Be,renderItem:Ge}),Q.length>0&&N.length>0&&(0,W.jsx)(ie,{className:`marginBlockSm`}),(0,W.jsx)(ve,{entries:Je,listId:a,activeIndex:Y,selectedKeys:q,codeKey:e,query:F,highlightQuery:Fe,getOptionDisabled:J,getOptionId:Ne,setOptionRef:Ee,toggleOption:X,selectOnlyOption:Be,renderItem:Ge})]})})})]})}})}),G.displayName=`MultiSelect`,G.__docgenInfo={description:`Поле множественного выбора с внутренним черновиком значений и подтверждением выбора при закрытии списка.
2
- Подходит как для самостоятельного использования, так и как базовый слой для OData-оберток.`,methods:[],displayName:`MultiSelect`,props:{renderToken:{required:!1,tsType:{name:`union`,raw:`((context: TContext) => React.ReactNode) | null | false`,elements:[{name:`unknown`},{name:`null`},{name:`literal`,value:`false`}]},description:``},renderToolbar:{required:!1,tsType:{name:`union`,raw:`((context: TContext) => React.ReactNode) | null | false`,elements:[{name:`unknown`},{name:`null`},{name:`literal`,value:`false`}]},description:``},renderItem:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: CollectionItem, state: MultiSelectItemState) => React.ReactNode`,signature:{arguments:[{type:{name:`CollectionItem`},name:`item`},{type:{name:`MultiSelectItemState`},name:`state`}],return:{name:`ReactReactNode`,raw:`React.ReactNode`}}},description:``},label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},codeKey:{required:!0,tsType:{name:`string`},description:``},textKey:{required:!1,tsType:{name:`string`},description:``},hideCode:{required:!1,tsType:{name:`boolean`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},highlightQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},defaultFilter:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},items:{required:!0,tsType:{name:`Array`,elements:[{name:`TOption`}],raw:`TOption[]`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: TOption, context: MultiSelectOptionDisableContext) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`item`},{type:{name:`MultiSelectOptionDisableContext`},name:`context`}],return:{name:`boolean`}}},description:``},onOpen:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: TOption[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TOption`}],raw:`TOption[]`},name:`value`}],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}export{K as n,G as t};
@@ -1 +0,0 @@
1
- ._9oSdQi{padding:0}.iobHig{height:calc(100% - var(--space-sm));width:calc(var(--base-width,100%) - var(--control-height) * 2 - var(--space-md));pointer-events:none;justify-content:flex-end;align-items:center;display:flex}.iobHig:empty{display:none}.yatXso{white-space:nowrap;word-break:normal;text-overflow:ellipsis;pointer-events:none;max-width:100%;overflow:hidden}
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-DaN-XFub.js";function r({value:e,open:t,onCommit:n,onOpen:r,onClose:a,isEqual:o}){let s=(0,i.useRef)(!1),[c,l]=(0,i.useState)(e),u=(0,i.useEffectEvent)(e=>l(e));return(0,i.useEffect)(()=>{t||u(e)},[t,e]),(0,i.useEffect)(()=>{s.current&&!t&&(o(c,e)||n(c),a?.(c)),s.current=t},[c,o,a,n,t,e]),{draftValue:c,setDraftValue:l,prepareOpen:()=>{l(e),r?.()}}}var i;function a(){return(a=e((()=>{i=t()})))()}var o,s,c,l;function u(){return(u=e((()=>{o=`_9oSdQi`,s=`iobHig`,c=`yatXso`,l={multiSelect:o,multiSelectTokens:s,multiSelectToken:c}})))()}function d({value:e}){return e?(0,f.jsx)(`div`,{className:l.multiSelectTokens,children:(0,f.jsx)(`div`,{className:l.multiSelectToken,children:e})}):null}var f;function p(){return(p=e((()=>{u(),f=n(),d.__docgenInfo={description:"Токен выбранного значения в `MultiSelect`. Показывает выбранный элемент и кнопку его удаления из текущего набора.",methods:[],displayName:`MultiSelectToken`,props:{value:{required:!0,tsType:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]},description:``}}}})))()}export{a,u as i,p as n,r as o,l as r,d as t};
@@ -1,64 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaN-XFub.js";import{n as i,t as a}from"./Text-BPlJUr3R.js";import{l as o,s}from"./odata-service-DnPlNGpU-Bpd4Zh9L.js";import{a as c,g as l,h as u}from"./formatters--mhLir82-v41eaI4a.js";import{r as d,t as f}from"./DateInput-D8_Oleoy.js";import{n as p,t as m}from"./GridContainer-qDguE1HS.js";import{n as h,o as g,r as _,t as v}from"./PresetSelect-C8uIYhPJ.js";function y(e){return typeof e==`string`&&D.has(e)}function b(e,t=E){let n=_(e,y,t),r=n.length>0?n:E,i=new Set(r);return E.filter(e=>i.has(e))}function x(e,t=T){return g(e,t)}function S({maxDayRangeDays:e,maxWeekRangeWeeks:t,labels:n}={}){let r=o(e),i=o(t);return T.map(e=>{let t={...e,label:n?.[e.id]??e.label};return e.id===`day`&&r!==void 0?{...t,maxRangeDays:r}:e.id===`week`&&i!==void 0?{...t,maxRangeDays:i*7}:t})}function C(e,t){let n=o(e.maxRangeDays);if(n===void 0||t===void 0)return!1;let r=l(t);return r!==null&&r>n}function w(e,t,n){if(t.length===0)return;let r=e===void 0?-1:t.findIndex(t=>t.id===e),i=r>=0?t[r]:void 0;return i&&!C(i,n)?i.id:(r>=0?t.slice(r+1):t).find(e=>!C(e,n))?.id??t.find(e=>!C(e,n))?.id}var T,E,D;function O(){return(O=e((()=>{u(),s(),T=Object.freeze([{id:`day`,label:`по дням`},{id:`week`,label:`по неделям`},{id:`month`,label:`по месяцам`},{id:`year`,label:`по годам`}]),E=Object.freeze([`day`,`week`,`month`,`year`]),D=new Set(T.map(e=>e.id))})))()}function k({value:e,onChange:t,options:n,labels:r,presetIds:i,dateRange:a,maxDayRangeDays:o,maxWeekRangeWeeks:s,...c}){let l=(0,A.useMemo)(()=>n??x(b(i),S({maxDayRangeDays:o,maxWeekRangeWeeks:s,labels:r})),[r,o,s,n,i]),u=(0,A.useMemo)(()=>w(e,l,a),[a,l,e]),d=(0,A.useRef)(null),f=(0,A.useEffectEvent)(()=>{if(u===void 0||u===e){d.current=null;return}let n=d.current;n&&n.value===e&&n.availableValue===u||(d.current={value:e,availableValue:u},t(u))});return(0,A.useEffect)(()=>{f()},[u,e]),(0,j.jsx)(v,{...c,options:l,value:u,onChange:t,getOptionDisabled:e=>C(e,a)})}var A,j;function M(){return(M=e((()=>{A=n(),h(),O(),j=r(),k.__docgenInfo={description:`Select периода детализации, который может ограничивать доступные варианты по диапазону дат.`,methods:[],displayName:`PeriodSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!1,tsType:{name:`unknown`},description:"Полный список custom options с высшим приоритетом. При его передаче\nвстроенные `presetIds`, `labels` и пороги диапазона не применяются."},labels:{required:!1,tsType:{name:`Partial`,elements:[{name:`Readonly`,elements:[{name:`Record`,elements:[{name:`union`,raw:`"day" | "week" | "month" | "year"`,elements:[{name:`literal`,value:`"day"`},{name:`literal`,value:`"week"`},{name:`literal`,value:`"month"`},{name:`literal`,value:`"year"`}]},{name:`string`}],raw:`Record<PeriodSelectPresetId, string>`}],raw:`Readonly<Record<PeriodSelectPresetId, string>>`}],raw:`Partial<PeriodSelectLabels>`},description:`Частично заменяет подписи встроенных вариантов, не изменяя их id,
2
- канонический порядок и правила доступности.
3
- Не применяется, когда передан собственный \`options\`.`},presetIds:{required:!1,tsType:{name:`unknown`},description:`Разрешенные встроенные варианты периода. Значение нормализуется в канонический
4
- порядок, а пустой либо невалидный список безопасно заменяется полным набором.
5
- Не применяется, когда передан собственный \`options\`.`},dateRange:{required:!1,tsType:{name:`DateRangeInput`},description:``},maxDayRangeDays:{required:!1,tsType:{name:`number`},description:``},maxWeekRangeWeeks:{required:!1,tsType:{name:`number`},description:``}}}})))()}var N=t({AllAllowedOptionsDisabled:()=>K,AlternativeLabels:()=>G,AutoSwitchByRange:()=>U,Controlled:()=>H,Disabled:()=>q,MonthAndYear:()=>W,__namedExportsOrder:()=>J,default:()=>V});function P(e){return e!==void 0&&c(e)?e:null}function F(e){let[,t]=L(),n=P(e.dateRange),r=l(e.dateRange??null);return(0,I.jsxs)(m,{gap:`md`,children:[(0,I.jsx)(k,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,I.jsx)(f,{label:`Связанный диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:n,onChange:e=>t({dateRange:e??void 0})}),(0,I.jsxs)(a,{as:`p`,color:`secondary`,"aria-live":`polite`,children:[`Выбрано: `,(0,I.jsx)(a,{as:`code`,children:e.value??`не выбрано`}),`. Дней в диапазоне:`,` `,(0,I.jsx)(a,{as:`code`,children:r??`не задано`}),`.`]})]})}var I,L,R,z,B,V,H,U,W,G,K,q,J;function Y(){return(Y=e((()=>{u(),d(),p(),i(),O(),M(),I=r(),{useArgs:L}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:R}=__STORYBOOK_MODULE_TEST__,z=[new Date(2026,2,1,0,0,0),new Date(2026,2,14,23,59,59)],B=[new Date(2026,0,1,0,0,0),new Date(2026,4,20,23,59,59)],V={title:`Shared/UI/PeriodSelect`,component:k,args:{label:`Период детализации`,description:`Выберите уровень группировки дат.`,placeholder:`Выберите период`,value:`day`,onChange:R(),presetIds:E,dateRange:z,maxDayRangeDays:31,maxWeekRangeWeeks:26,disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Select периода детализации дат. Компонент работает с id периода и может блокировать слишком детальные варианты по переданному диапазону дат.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда период не выбран.`,control:`text`},value:{description:`Текущий id периода.`,control:`select`,options:E},onChange:{description:`Вызывается с id выбранного периода.`,control:!1},options:{description:"Кастомный список периодов по контракту `PeriodSelectOption`; имеет приоритет над `presetIds`, `labels` и порогами диапазона.",control:!1},labels:{description:`Частичные подписи встроенных периодов поверх канонического каталога.`,control:`object`},presetIds:{description:"Разрешенные встроенные периоды. Порядок отображения остается `day → week → month → year`.",control:`check`,options:E},dateRange:{description:`Диапазон дат, по которому вычисляются заблокированные периоды.`,control:!1},maxDayRangeDays:{description:"Максимальное количество дней, при котором доступен период `day`.",control:{type:`number`,min:1,step:1}},maxWeekRangeWeeks:{description:"Максимальное количество недель, при котором доступен период `week`.",control:{type:`number`,min:1,step:1}},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},H={name:`Контролируемый выбор`,render:function(e){return(0,I.jsx)(F,{...e})}},U={name:`Автопереключение по диапазону`,args:{value:`day`,dateRange:B,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,I.jsx)(F,{...e})}},W={name:`Только месяцы и годы`,args:{value:`month`,presetIds:[`month`,`year`]},render:function(e){return(0,I.jsx)(F,{...e})}},G={name:`Альтернативные подписи`,args:{value:`month`,labels:{day:`за день`,week:`за неделю`,month:`за месяц`,year:`за год`}},render:function(e){return(0,I.jsx)(F,{...e})}},K={name:`Все разрешенные варианты недоступны`,args:{value:`day`,presetIds:[`day`,`week`],dateRange:B,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,I.jsx)(F,{...e})}},q={name:`Заблокированный контрол`,args:{disabled:!0,value:`week`}},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`{
6
- name: "Контролируемый выбор",
7
- render: function Render(args) {
8
- return <PeriodSelectStoryCanvas {...args} />;
9
- }
10
- }`,...H.parameters?.docs?.source},description:{story:"Контролируемый сценарий синхронизирует `value` и `dateRange` через Storybook args.",...H.parameters?.docs?.description}}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
11
- name: "Автопереключение по диапазону",
12
- args: {
13
- value: "day",
14
- dateRange: longDateRange,
15
- maxDayRangeDays: 31,
16
- maxWeekRangeWeeks: 8
17
- },
18
- render: function Render(args) {
19
- return <PeriodSelectStoryCanvas {...args} />;
20
- }
21
- }`,...U.parameters?.docs?.source},description:{story:"Длинный диапазон блокирует `day` и `week`, поэтому контрол переключает значение на ближайший доступный период.",...U.parameters?.docs?.description}}},W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
22
- name: "Только месяцы и годы",
23
- args: {
24
- value: "month",
25
- presetIds: ["month", "year"]
26
- },
27
- render: function Render(args) {
28
- return <PeriodSelectStoryCanvas {...args} />;
29
- }
30
- }`,...W.parameters?.docs?.source},description:{story:`Allow-list ограничивает встроенный каталог двумя крупными уровнями детализации.`,...W.parameters?.docs?.description}}},G.parameters={...G.parameters,docs:{...G.parameters?.docs,source:{originalSource:`{
31
- name: "Альтернативные подписи",
32
- args: {
33
- value: "month",
34
- labels: {
35
- day: "за день",
36
- week: "за неделю",
37
- month: "за месяц",
38
- year: "за год"
39
- }
40
- },
41
- render: function Render(args) {
42
- return <PeriodSelectStoryCanvas {...args} />;
43
- }
44
- }`,...G.parameters?.docs?.source},description:{story:`Частичный labels override меняет формулировки встроенных вариантов,
45
- сохраняя их id, порядок и ограничения доступности.`,...G.parameters?.docs?.description}}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
46
- name: "Все разрешенные варианты недоступны",
47
- args: {
48
- value: "day",
49
- presetIds: ["day", "week"],
50
- dateRange: longDateRange,
51
- maxDayRangeDays: 31,
52
- maxWeekRangeWeeks: 8
53
- },
54
- render: function Render(args) {
55
- return <PeriodSelectStoryCanvas {...args} />;
56
- }
57
- }`,...K.parameters?.docs?.source},description:{story:`При длинном диапазоне все разрешенные варианты временно недоступны; внешний
58
- controlled-id сохраняется, и после сокращения диапазона отображение восстанавливается.`,...K.parameters?.docs?.description}}},q.parameters={...q.parameters,docs:{...q.parameters?.docs,source:{originalSource:`{
59
- name: "Заблокированный контрол",
60
- args: {
61
- disabled: true,
62
- value: "week"
63
- }
64
- }`,...q.parameters?.docs?.source}}},J=[`Controlled`,`AutoSwitchByRange`,`MonthAndYear`,`AlternativeLabels`,`AllAllowedOptionsDisabled`,`Disabled`]})))()}export{q as a,Y as c,H as i,G as n,W as o,U as r,N as s,K as t};
@@ -1,15 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaN-XFub.js";import{n as i,t as a}from"./Text-BPlJUr3R.js";import{n as o,t as s}from"./FlexContainer-LmZIdhq2.js";import{r as c,t as l}from"./DateInput-D8_Oleoy.js";import{a as u,c as d,i as f,n as p,o as m,r as h,s as g,t as _}from"./DateRangePresetSelect-Bfx-d5qg.js";function v(e){return e??`__empty__`}function y({value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:i,presetIds:a,presetOptions:o,presetLabel:c,presetDescription:f,presetPlaceholder:p=`Выберите пресет диапазона`,presetDisabled:y,...S}){let[C]=(0,b.useState)(()=>new Date),w=i??C,T=(0,b.useMemo)(()=>o??g(u(a,h)),[a,o]),E=e??null,D=(0,b.useMemo)(()=>m(E,w,T),[E,T,w]),O=n??D??void 0,k=(0,b.useRef)(``),A=(0,b.useCallback)(e=>{if(!r)return;let t=v(e);t!==k.current&&(k.current=t,r(e))},[r]),j=e=>{let n=d(e,w,T);if(!n){A(null);return}A(n.id),t(n.range)},M=e=>{t(e),A(m(e,w,T))};return(0,x.jsxs)(s,{gap:`sm`,align:`end`,children:[(0,x.jsx)(_,{size:`md`,label:c,description:f,placeholder:p,disabled:y??S.disabled,value:O,onChange:j,options:T,referenceDate:w}),(0,x.jsx)(l,{...S,size:`md`,value:E,onChange:M})]})}var b,x;function S(){return(S=e((()=>{b=n(),c(),p(),f(),o(),x=r(),y.__docgenInfo={description:`Составной компонент выбора диапазона дат через пресет или ручной ввод.`,methods:[],displayName:`PresetRangeDateInput`,props:{presetId:{required:!1,tsType:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},description:``},onPresetIdChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(presetId: DateRangePresetOption["id"] | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},name:`presetId`}],return:{name:`void`}}},description:``},referenceDate:{required:!1,tsType:{name:`Date`},description:``},presetIds:{required:!1,tsType:{name:`unknown`},description:``},presetOptions:{required:!1,tsType:{name:`unknown`},description:``},presetLabel:{required:!1,tsType:{name:`ReactNode`},description:``},presetDescription:{required:!1,tsType:{name:`string`},description:``},presetPlaceholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите пресет диапазона"`,computed:!1}},presetDisabled:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}var C=t({Default:()=>D,__namedExportsOrder:()=>O,default:()=>E}),w,T,E,D,O;function k(){return(k=e((()=>{w=n(),o(),i(),S(),T=r(),E={title:`Shared/UI/PresetRangeDateInput`,component:y,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`}},D={render:()=>{let[e,t]=(0,w.useState)([new Date(2026,2,10,0,0,0),new Date(2026,2,10,23,59,59)]),[n,r]=(0,w.useState)(`today`);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{gap:`sm`,align:`end`,children:(0,T.jsx)(y,{value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:new Date(2026,2,10,12,0,0),presetLabel:`Быстрый диапазон`,size:`md`})}),(0,T.jsxs)(a,{as:`p`,className:`marginBlockSm`,children:[`Активный presetId: `,(0,T.jsx)(a,{as:`code`,children:n??`null`})]})]})}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
2
- render: () => {
3
- const [value, setValue] = useState<NullableDateRange | null>([new Date(2026, 2, 10, 0, 0, 0), new Date(2026, 2, 10, 23, 59, 59)]);
4
- const [presetId, setPresetId] = useState<string | null>("today");
5
- return <>
6
- <FlexContainer gap="sm" align="end">
7
- <PresetRangeDateInput value={value} onChange={setValue} presetId={presetId} onPresetIdChange={setPresetId} referenceDate={new Date(2026, 2, 10, 12, 0, 0)} presetLabel="Быстрый диапазон" size="md" />
8
- </FlexContainer>
9
-
10
- <Text as="p" className="marginBlockSm">
11
- Активный presetId: <Text as="code">{presetId ?? "null"}</Text>
12
- </Text>
13
- </>;
14
- }
15
- }`,...D.parameters?.docs?.source},description:{story:`Демонстрирует совместную работу пресета и ручного диапазона.`,...D.parameters?.docs?.description}}},O=[`Default`]})))()}export{C as n,k as r,D as t};
@@ -1,36 +0,0 @@
1
- import{n as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{t as r}from"./react-C21x__mS.js";import{i,n as a,r as o}from"./iframe-DaN-XFub.js";import{a as s,i as c}from"./utils-DUM89eIj.js";import{n as l,t as u}from"./ui.module-DoMIk8Oc.js";import{n as d,r as f}from"./uiClasses-CO3Cdv1E.js";import{n as p,t as m}from"./CheckBox.module-BBzuj5He.js";var h,g;function _(){return(_=e((()=>{i(),h=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],g=o(`circle`,h)})))()}var v,y;function b(){return(b=e((()=>{v=`gu8UMB`,y={radioInput:v}})))()}var x,S,C;function w(){return(w=e((()=>{x=t(r(),1),c(),_(),p(),u(),f(),b(),S=a(),C=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:o,value:c,id:u,tone:f=`neutral`,...p})=>{let h=(0,x.useId)(),_=u??h,v=t?`${_}-description`:void 0,b=e??n,C=c??!1;return(0,S.jsxs)(`div`,{className:s(l.uiElement,i&&l.uiSizable,i&&l[i],r&&l.disabled,a),children:[(0,S.jsxs)(`div`,{className:m.row,children:[(0,S.jsxs)(`div`,{className:s(m.wrapper,d(f)),children:[(0,S.jsx)(`input`,{...p,id:_,type:`checkbox`,role:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-checked":C,"aria-describedby":v,className:s(l.uiSelectionControl,m.input,y.radioInput),onChange:()=>o?.(!C)}),(0,S.jsx)(`div`,{className:s(l.uiSelectionIcon,m.icon),"aria-hidden":`true`,children:(0,S.jsx)(g,{})})]}),b&&(0,S.jsx)(`label`,{htmlFor:_,className:l.uiLabel,children:b})]}),t&&(0,S.jsx)(`p`,{id:v,className:l.uiDescription,children:t})]})},C.__docgenInfo={description:`Компонент радиокнопки для выбора одного варианта.
2
- Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}var T=n({Controlled:()=>k,Disabled:()=>j,Group:()=>A,__namedExportsOrder:()=>M,default:()=>O}),E,D,O,k,A,j,M;function N(){return(N=e((()=>{E=r(),w(),D=a(),O={title:`Shared/UI/RadioButton`,component:C,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Семантический тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]},name:{description:"HTML `name` для группировки кнопок.",control:`text`}}},k={render:e=>{let[t,n]=(0,E.useState)(e.value??!1);return(0,D.jsx)(C,{...e,value:t,onChange:n})},args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,name:`single-radio`,tone:`neutral`}},A={render:()=>{let[e,t]=(0,E.useState)(`email`);return(0,D.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,D.jsx)(C,{name:`notify-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,D.jsx)(C,{name:`notify-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},j={args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
3
- render: args => {
4
- const [value, setValue] = useState(args.value ?? false);
5
- return <RadioButton {...args} value={value} onChange={setValue} />;
6
- },
7
- args: {
8
- label: "Выбрать опцию",
9
- description: "Одиночная радиокнопка в controlled-режиме.",
10
- value: false,
11
- name: "single-radio",
12
- tone: "neutral"
13
- }
14
- }`,...k.parameters?.docs?.source}}},A.parameters={...A.parameters,docs:{...A.parameters?.docs,source:{originalSource:`{
15
- render: () => {
16
- const [selected, setSelected] = useState<"email" | "sms">("email");
17
- return <div role="radiogroup" aria-label="Канал уведомлений" style={{
18
- display: "grid",
19
- gap: 12
20
- }}>
21
- <RadioButton name="notify-channel" label="Email" value={selected === "email"} onChange={checked => checked && setSelected("email")} tone="info" />
22
- <RadioButton name="notify-channel" label="SMS" value={selected === "sms"} onChange={checked => checked && setSelected("sms")} tone="info" />
23
- </div>;
24
- },
25
- args: {
26
- value: undefined
27
- }
28
- }`,...A.parameters?.docs?.source}}},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
29
- args: {
30
- label: "Недоступная опция",
31
- description: "Заблокировано политикой конфигурации.",
32
- value: true,
33
- disabled: true,
34
- tone: "neutral"
35
- }
36
- }`,...j.parameters?.docs?.source}}},M=[`Controlled`,`Group`,`Disabled`]})))()}export{N as a,T as i,j as n,A as r,k as t};
@@ -1 +0,0 @@
1
- .AvG-mf{border-radius:var(--radius-xs);font-family:var(--font-family-mono);color:inherit;text-align:center;caret-color:var(--content-0);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;margin:0;padding:0}.AvG-mf::placeholder{color:var(--content-2)}.AvG-mf::selection{background-color:var(--focus-ring);color:var(--surface-0)}.AvG-mf:disabled{opacity:.25}.ig7KtT{-webkit-user-select:none;user-select:none;color:var(--content-1);flex-shrink:0}.ig7KtT[data-disabled]{opacity:.25}.RTruv0:hover{color:var(--focus-ring)}.YQHPZa{gap:var(--space-md);display:grid}.-RZe-i{grid-template-columns:minmax(0,1fr)}.Ox0SRE{grid-template-columns:auto calc(9em + var(--width-add));align-items:stretch}.gfaRup,._59kEea{min-width:0}.Jjdu1Q{min-width:calc(9em + var(--width-add))}.Q8Y2xS{padding-top:var(--space-md);border-top:var(--border)}.XxZYTW{padding-left:var(--space-md);border-left:var(--border)}
@@ -1,78 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{c as r,l as i,n as a,t as o}from"./CalendarView-CqKlnF8k.js";import{i as s,n as c,r as l}from"./iframe-DaN-XFub.js";import{a as u,i as d}from"./utils-DUM89eIj.js";import{_ as f,b as p,h as m,y as h}from"./odata-service-DnPlNGpU-Bpd4Zh9L.js";import{a as g,f as ee,h as _}from"./formatters--mhLir82-v41eaI4a.js";import{n as v,t as y}from"./Popover-D6gSyjaW.js";import{n as b,t as x}from"./ui.module-DoMIk8Oc.js";import{n as S,t as te}from"./Button-mjF9HSg0.js";import{c as ne,l as C,o as re,r as ie,u as ae}from"./Input-Co--DMHY.js";import{a as w,i as oe,n as se,r as T,t as E}from"./date-segments-D3HouZ37.js";import{a as D,c as ce,d as le,i as O,l as ue,n as de,o as fe,r as pe,s as k,t as me,u as A}from"./TimePanel-C2iZ9Qr6.js";var j,he;function M(){return(M=e((()=>{s(),j=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]],he=l(`clock-3`,j)})))()}function N(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function ge({value:e,onChange:t,onClearError:n,disabled:r,minDate:i,maxDate:a,mode:o=`date-time`}){let s=(0,P.useMemo)(()=>D(o),[o]),c=(0,P.useMemo)(()=>oe(s),[s]),l=(0,P.useMemo)(()=>N(c),[c]),u=(0,P.useMemo)(()=>se(e??null,c),[c,e]),[d,f]=(0,P.useState)(null),p=e?.getTime()??null,m=(0,P.useEffectEvent)(e=>f(e));(0,P.useEffect)(()=>{m(null)},[p,o]);let h=d??u,g=(0,P.useRef)(new Map),ee=(0,P.useRef)(0),_=(0,P.useCallback)(n=>{if(E(c,n))return t(null),null;let r=w(c,n,{defaultDate:o===`time`?A(e,`time`)??O():void 0});return!r||!k(r,i,a,o)?null:(t(r),r)},[a,i,o,t,c,e]),v=(0,P.useCallback)((e,t=!0)=>{let n=g.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),y=(0,P.useCallback)(e=>{let t=l.indexOf(e);return t<l.length-1?l[t+1]:null},[l]),b=(0,P.useCallback)(e=>{let t=l.indexOf(e);return t>0?l[t-1]:null},[l]),x=(0,P.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:c,segmentValues:h,registerRef:(0,P.useCallback)(e=>t=>{if(t){g.current.set(e,t);return}g.current.delete(e)},[]),handleInput:(0,P.useCallback)(e=>t=>{if(r)return;let i=c[e];if(i.kind!==`editable`)return;let a=t.target.value.replace(/\D/g,``).slice(0,i.length),o=new Map(h);if(o.set(e,a),f(o),n?.(),a.length===i.length){let t=y(e);t!==null&&requestAnimationFrame(()=>v(t))}_(o)},[r,v,y,n,h,c,_]),handleKeyDown:(0,P.useCallback)(e=>t=>{if(r)return;let n=c[e];if(n.kind!==`editable`)return;let i=h.get(e)??``,a=t.currentTarget;switch(t.key){case`ArrowRight`:if(a.selectionStart===i.length||i===``){t.preventDefault();let n=y(e);n!==null&&v(n)}break;case`ArrowLeft`:if(a.selectionStart===0||i===``){t.preventDefault();let n=b(e);n!==null&&v(n)}break;case`ArrowUp`:{t.preventDefault();let r=i===``?n.min:Number.parseInt(i,10)+1;r>n.max&&(r=n.min);let o=new Map(h);o.set(e,x(String(r),n)),f(o),_(o),requestAnimationFrame(()=>a.select());break}case`ArrowDown`:{t.preventDefault();let r=i===``?n.max:Number.parseInt(i,10)-1;r<n.min&&(r=n.max);let o=new Map(h);o.set(e,x(String(r),n)),f(o),_(o),requestAnimationFrame(()=>a.select());break}case`Backspace`:if(i===``){t.preventDefault();let n=b(e);n!==null&&v(n)}break;case`Delete`:{t.preventDefault();let n=new Map(h);n.set(e,``),f(n),_(n);break}}},[r,v,y,b,x,h,c,_]),handleFocus:(0,P.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,P.useCallback)(()=>{clearTimeout(ee.current)},[]),handleContainerBlur:(0,P.useCallback)(()=>{let n=new Map(h);ee.current=window.setTimeout(()=>{if(E(c,n)){t(null),f(n);return}let r=w(c,n,{defaultDate:o===`time`?A(e,`time`)??O():void 0});if(!r||!k(r,i,a,o)){f(null);return}f(n)},0)},[a,i,o,t,h,c,e]),focusFirstEmpty:(0,P.useCallback)(()=>{let e=l.find(e=>!(h.get(e)??``))??l[l.length-1];e!==void 0&&v(e)},[l,v,h])}}var P;function F(){return(F=e((()=>{P=n(),T(),fe()})))()}var I,L,R,z,B,_e,ve,ye,V,be,xe,H;function Se(){return(Se=e((()=>{I=`AvG-mf`,L=`ig7KtT`,R=`RTruv0`,z=`YQHPZa`,B=`-RZe-i`,_e=`Ox0SRE`,ve=`gfaRup`,ye=`_59kEea`,V=`Jjdu1Q`,be=`Q8Y2xS`,xe=`XxZYTW`,H={segmentInput:I,separator:L,calendarButton:R,popoverContent:z,bottom:B,right:_e,calendarPane:ve,timePanelPane:ye,timeOnlyPopoverContent:V,timePanelPaneBottom:be,timePanelPaneRight:xe}})))()}function U({value:e,onChange:t,label:n,description:i,placeholder:a,disabled:s,size:c,error:l,onClearError:d,minDate:f,maxDate:p,timePanelPlacement:m=`right`,mode:h=`date-time`}){let _=A(e,h),v=_?.getTime()??null,x=(0,W.useMemo)(()=>ee(new Date),[]),[S,ne]=(0,W.useState)(!1),[C,w]=(0,W.useState)(_??null),[oe,se]=(0,W.useState)(`day`),[T,E]=(0,W.useState)(()=>le(_,x,h)),{controlId:D,labelId:O,descriptionId:de,errorId:fe,describedBy:j}=ae({hasLabel:n!=null,hasDescription:!!i,hasError:!!l}),M=(0,W.useEffectEvent)(e=>w(e)),N=(0,W.useEffectEvent)(e=>E(e));(0,W.useEffect)(()=>{S||M(_??null),_&&N(_)},[_,v,S]),(0,W.useEffect)(()=>{_&&N(_)},[_,v]);let{segments:P,segmentValues:F,registerRef:I,handleInput:L,handleKeyDown:R,handleFocus:z,handleContainerFocus:B,handleContainerBlur:_e,focusFirstEmpty:ve}=ge({value:_,onChange:t,onClearError:d,disabled:s,minDate:f,maxDate:p,mode:h}),ye=e=>{if(h===`time`||g(e)||s)return;let t=ce(e,C??_??T),{hours:n,minutes:r}=pe(e,t.getHours(),t.getMinutes(),f,p,h),i=ue(e,n,r);k(i,f,p,h)&&(d?.(),w(i),E(i))},V=(e,t)=>{if(s)return;let n=C??_??T,r=pe(n,e,t,f,p,h),i=ue(n,r.hours,r.minutes,h);k(i,f,p,h)&&(d?.(),w(i),E(i))},be=e=>{e&&(w(_??null),E(le(_,x,h))),ne(e)},xe=()=>{(_?.getTime()??null)!==(C?.getTime()??null)&&t(C)},Se=m===`right`?H.timePanelPaneRight:H.timePanelPaneBottom,U=h===`time`?`Открыть выбор времени`:`Открыть календарь даты и времени`,Ce=a??(h===`time`?`чч:мм`:`дд.мм.гггг чч:мм`),K=C??_??T;return(0,G.jsxs)(y,{open:S,onOpenChange:be,children:[(0,G.jsx)(re,{label:n,description:i,disabled:s,size:c,error:l,controlId:D,labelId:O,descriptionId:de,errorId:fe,children:(0,G.jsx)(ie,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,G.jsx)(y.Trigger,{children:(0,G.jsx)(te,{variant:`transparent`,disabled:s,className:H.calendarButton,icon:h===`time`?(0,G.jsx)(he,{}):(0,G.jsx)(r,{}),"aria-label":U})}),children:({controlClassName:e})=>(0,G.jsx)(`div`,{id:D,className:u(b.uiInputControlFake,e),"data-disabled":s||void 0,"data-invalid":l?``:void 0,role:`group`,"aria-invalid":!!l||void 0,"aria-placeholder":Ce,"aria-labelledby":O,"aria-describedby":j,onFocus:B,onBlur:_e,onClick:e=>{e.target===e.currentTarget&&ve()},children:P.map((e,t)=>e.kind===`literal`?(0,G.jsx)(`span`,{className:H.separator,"data-disabled":s||void 0,children:e.text},t):(0,G.jsx)(`input`,{ref:I(t),type:`text`,inputMode:`numeric`,className:H.segmentInput,style:{width:`${e.length+.5}ch`},value:F.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:s,"aria-label":e.ariaLabel,autoComplete:`off`,onChange:L(t),onKeyDown:R(t),onFocus:z()},t))})})}),(0,G.jsx)(y.Content,{background:`primary`,onClose:xe,children:h===`time`?(0,G.jsx)(`div`,{className:H.timeOnlyPopoverContent,children:(0,G.jsx)(me,{value:K,disabled:s,minDate:f,maxDate:p,mode:h,onChange:V})}):(0,G.jsxs)(`div`,{className:u(H.popoverContent,H[m]),children:[(0,G.jsx)(`div`,{className:H.calendarPane,children:(0,G.jsx)(o,{view:oe,datePickerLevel:`day`,selectionMode:`day`,onViewChange:se,value:K,onChange:ye,minDate:f,maxDate:p,currentDate:T,onCurrentDateChange:E})}),(0,G.jsx)(`div`,{className:u(H.timePanelPane,Se),children:(0,G.jsx)(me,{value:K,disabled:s,minDate:f,maxDate:p,mode:h,onChange:V})})]})})]})}var W,G;function Ce(){return(Ce=e((()=>{W=n(),_(),d(),i(),M(),S(),a(),ne(),C(),v(),x(),fe(),F(),Se(),de(),G=c(),U.__docgenInfo={description:`Поле выбора даты-времени со строгой сегментной маской и popover-пикером.`,methods:[],displayName:`SingleDateTimeInput`,props:{error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},minDate:{required:!1,tsType:{name:`Date`},description:``},maxDate:{required:!1,tsType:{name:`Date`},description:``},timePanelPlacement:{required:!1,tsType:{name:`union`,raw:`"bottom" | "right"`,elements:[{name:`literal`,value:`"bottom"`},{name:`literal`,value:`"right"`}]},description:``,defaultValue:{value:`"right"`,computed:!1}},mode:{required:!1,tsType:{name:`union`,raw:`"date-time" | "time"`,elements:[{name:`literal`,value:`"date-time"`},{name:`literal`,value:`"time"`}]},description:``,defaultValue:{value:`"date-time"`,computed:!1}},label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}var K=t({Default:()=>Y,Empty:()=>Z,TimeOnly:()=>X,WithLimits:()=>Q,WithRightPanel:()=>$,__namedExportsOrder:()=>Te,default:()=>we}),q,J,we,Y,X,Z,Q,$,Te;function Ee(){return(Ee=e((()=>{q=n(),p(),Ce(),J=c(),we={title:`Shared/UI/SingleDateTimeInput`,component:U,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля даты и времени.`,control:`text`},description:{description:`Описание под заголовком поля.`,control:`text`},placeholder:{description:`Текстовая подсказка для сегментного ввода.`,control:`text`},value:{description:"Текущее значение в виде `Date | null`.",control:!1},onChange:{description:`Вызывается при вводе или выборе валидной даты-времени.`,control:!1},minDate:{description:`Минимально допустимая дата-время.`,control:`date`},maxDate:{description:`Максимально допустимая дата-время.`,control:`date`},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Сбрасывает внешнюю ошибку при ручном вводе и выборе в picker.`,control:!1},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует сегментный ввод и popover picker.`,control:`boolean`},timePanelPlacement:{description:`Размещение панели выбора времени относительно календаря.`,control:`inline-radio`,options:[`bottom`,`right`]},mode:{description:`Режим работы поля: дата-время или только время.`,control:`inline-radio`,options:[`date-time`,`time`]}}},Y={render:e=>{let[t,n]=(0,q.useState)(e.value??new Date(2026,2,5,9,15,0,0));return(0,J.jsxs)(`div`,{children:[(0,J.jsx)(U,{...e,value:t,onChange:n}),(0,J.jsxs)(`p`,{children:[`Вывод значения через `,(0,J.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsDateTime(value)`}),`:`]}),(0,J.jsx)(`pre`,{children:h(t)}),(0,J.jsxs)(`p`,{children:[`Вывод значения через `,(0,J.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsODataDatetime(value)`}),`:`]}),(0,J.jsx)(`pre`,{children:m(t)})]})},args:{label:`Дата и время`,description:`Фиксированный формат: дд.мм.гггг чч:мм`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`}},X={render:e=>{let[t,n]=(0,q.useState)(new Date(1970,0,1,9,15,0,0));return(0,J.jsxs)(`div`,{children:[(0,J.jsx)(U,{...e,value:t,onChange:n}),(0,J.jsxs)(`p`,{children:[`Вывод значения через `,(0,J.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsTime(value)`}),`:`]}),(0,J.jsx)(`pre`,{children:f(t)}),(0,J.jsx)(`p`,{children:`Техническая дата значения всегда фиксируется как 01.01.1970.`}),(0,J.jsx)(`pre`,{children:t?t.toISOString():``})]})},args:{label:`Время`,description:`Режим только времени с маской чч:мм и wheel-picker без календаря.`,placeholder:`чч:мм`,mode:`time`,minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},Z={render:e=>{let[t,n]=(0,q.useState)(null);return(0,J.jsx)(U,{...e,value:t,onChange:n})},args:{label:`Пустое значение`,description:`Поле можно заполнить вручную или через popover picker.`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`}},Q={render:e=>{let[t,n]=(0,q.useState)(new Date(2026,2,10,12,30,0,0));return(0,J.jsx)(U,{...e,value:t,onChange:n})},args:{label:`Дата отгрузки`,description:`Доступен только интервал с 10 по 12 марта 2026 года.`,minDate:new Date(2026,2,10,9,0,0,0),maxDate:new Date(2026,2,12,18,30,0,0),timePanelPlacement:`bottom`}},$={render:e=>{let[t,n]=(0,q.useState)(new Date(2026,2,10,12,30,0,0));return(0,J.jsx)(U,{...e,value:t,onChange:n})},args:{label:`Дата и время`,description:`Wheel-панель времени расположена справа от календаря.`,timePanelPlacement:`right`}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
2
- render: args => {
3
- const [value, setValue] = useState<Date | null>(args.value ?? new Date(2026, 2, 5, 9, 15, 0, 0));
4
- return <div>
5
- <SingleDateTimeInput {...args} value={value} onChange={setValue} />
6
-
7
- <p>
8
- Вывод значения через <code className="statusInfo">formatDateAsDateTime(value)</code>:
9
- </p>
10
- <pre>{formatDateAsDateTime(value)}</pre>
11
- <p>
12
- Вывод значения через <code className="statusInfo">formatDateAsODataDatetime(value)</code>:
13
- </p>
14
- <pre>{formatDateAsODataDatetime(value)}</pre>
15
- </div>;
16
- },
17
- args: {
18
- label: "Дата и время",
19
- description: "Фиксированный формат: дд.мм.гггг чч:мм",
20
- placeholder: "дд.мм.гггг чч:мм",
21
- timePanelPlacement: "bottom"
22
- }
23
- }`,...Y.parameters?.docs?.source},description:{story:`Демонстрирует основной сценарий выбора даты и времени с точностью до минуты.`,...Y.parameters?.docs?.description}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
24
- render: args => {
25
- const [value, setValue] = useState<Date | null>(new Date(1970, 0, 1, 9, 15, 0, 0));
26
- return <div>
27
- <SingleDateTimeInput {...args} value={value} onChange={setValue} />
28
-
29
- <p>
30
- Вывод значения через <code className="statusInfo">formatDateAsTime(value)</code>:
31
- </p>
32
- <pre>{formatDateAsTime(value)}</pre>
33
- <p>Техническая дата значения всегда фиксируется как 01.01.1970.</p>
34
- <pre>{value ? value.toISOString() : ""}</pre>
35
- </div>;
36
- },
37
- args: {
38
- label: "Время",
39
- description: "Режим только времени с маской чч:мм и wheel-picker без календаря.",
40
- placeholder: "чч:мм",
41
- mode: "time",
42
- minDate: new Date(2026, 2, 10, 9, 15, 0, 0),
43
- maxDate: new Date(2026, 2, 10, 18, 30, 0, 0)
44
- }
45
- }`,...X.parameters?.docs?.source},description:{story:"Демонстрирует режим выбора только времени на технической дате `1970-01-01`.",...X.parameters?.docs?.description}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
46
- render: args => {
47
- const [value, setValue] = useState<Date | null>(null);
48
- return <SingleDateTimeInput {...args} value={value} onChange={setValue} />;
49
- },
50
- args: {
51
- label: "Пустое значение",
52
- description: "Поле можно заполнить вручную или через popover picker.",
53
- placeholder: "дд.мм.гггг чч:мм",
54
- timePanelPlacement: "bottom"
55
- }
56
- }`,...Z.parameters?.docs?.source},description:{story:`Показывает пустое контролируемое значение.`,...Z.parameters?.docs?.description}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
57
- render: args => {
58
- const [value, setValue] = useState<Date | null>(new Date(2026, 2, 10, 12, 30, 0, 0));
59
- return <SingleDateTimeInput {...args} value={value} onChange={setValue} />;
60
- },
61
- args: {
62
- label: "Дата отгрузки",
63
- description: "Доступен только интервал с 10 по 12 марта 2026 года.",
64
- minDate: new Date(2026, 2, 10, 9, 0, 0, 0),
65
- maxDate: new Date(2026, 2, 12, 18, 30, 0, 0),
66
- timePanelPlacement: "bottom"
67
- }
68
- }`,...Q.parameters?.docs?.source},description:{story:`Демонстрирует ограничение диапазона и синхронизацию календаря со временем.`,...Q.parameters?.docs?.description}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
69
- render: args => {
70
- const [value, setValue] = useState<Date | null>(new Date(2026, 2, 10, 12, 30, 0, 0));
71
- return <SingleDateTimeInput {...args} value={value} onChange={setValue} />;
72
- },
73
- args: {
74
- label: "Дата и время",
75
- description: "Wheel-панель времени расположена справа от календаря.",
76
- timePanelPlacement: "right"
77
- }
78
- }`,...$.parameters?.docs?.source},description:{story:`Демонстрирует размещение wheel-панели справа от календаря.`,...$.parameters?.docs?.description}}},Te=[`Default`,`TimeOnly`,`Empty`,`WithLimits`,`WithRightPanel`]})))()}export{Q as a,X as i,Z as n,$ as o,K as r,Ee as s,Y as t};
@@ -1 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaN-XFub.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./FloatingPopover-D4h-c24R.js";import{c,l as ee,o as te,u as ne}from"./Input-Co--DMHY.js";function l(e){if(!Number.isFinite(e))return 0;let t=e.toString().toLowerCase(),n=t.indexOf(`e-`);if(n>=0)return Number(t.slice(n+2));let r=t.indexOf(`.`);return r>=0?t.length-r-1:0}function u(e,t){if(t<=0)return Math.round(e);let n=10**t;return Math.round(e*n)/n}function d(e,t){return!Number.isFinite(e)||!Number.isFinite(t)?{min:0,max:100}:e<=t?{min:e,max:t}:{min:t,max:e}}function f(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):t}function p(e){return!Number.isFinite(e)||e===void 0||e<=0?1:e}function m(e,t,n){if(!e?.length)return[];let r=new Set;return e.filter(e=>Number.isFinite(e.value)&&e.value>=t&&e.value<=n).slice().sort((e,t)=>e.value-t.value).filter(e=>!r.has(e.value)&&(r.add(e.value),!0))}function h(e,t,n,r){let i=p(r),a=f(e,t,n),o=Math.max(l(i),l(t),l(n));return f(u(t+Math.round((a-t)/i)*i,o),t,n)}function g(e,t){if(!t.length)return;let n=t[0],r=Math.abs(e-n.value);for(let i=1;i<t.length;i+=1){let a=t[i],o=Math.abs(e-a.value);o<r&&(n=a,r=o)}return n}function _(e,t,n,r){if(!t.length)return f(e,n,r);let i=f(e,n,r);return g(i,t)?.value??i}function v(e,t){let{min:n,max:r}=d(t.min,t.max),i=m(t.marks,n,r);return i.length>0?_(e,i,n,r):h(e,n,r,t.step)}function y(e,t,n){return n<=t?0:(f(e,t,n)-t)/(n-t)*100}function re(e,t,n){if(n<=t)return t;let r=f(e,0,100);return t+(n-t)*r/100}function b(e,t,n,r,i=`value`){return i===`index`&&t.length>1?e/(t.length-1)*100:i===`index`?0:y(t[e]?.value??n,n,r)}function x(e,t,n,r,i=`value`){if(!t.length)return;let a=f(e,0,100),o=t[0],s=Math.abs(a-b(0,t,n,r,i));for(let e=1;e<t.length;e+=1){let c=Math.abs(a-b(e,t,n,r,i));c<s&&(o=t[e],s=c)}return o}function ie(e,t,n,r=n.min,i=n.max){let{min:a,max:o}=d(r,i),s=m(n.marks,a,o);if(s.length>0){let n=s.map(e=>e.value),r=0,i=Math.abs(e-n[0]);for(let t=1;t<n.length;t+=1){let a=Math.abs(e-n[t]);a<i&&(i=a,r=t)}return n[f(r+t,0,n.length-1)]}let c=p(n.step);return h(e+t*c,a,o,c)}function S(){return(S=e((()=>{})))()}function C(e,t,n){return m(e,t,n)}function w(e,t,n){let r=t.findIndex(t=>t.value===e.value);return b(Math.max(0,r),t,n.min,n.max,n.marksPosition)}function T(e,t){let{min:n,max:r}=d(t.min,t.max),i=C(t.marks,n,r);if(i.length>0){let a=i.find(t=>t.value===e)??g(e,i);if(a)return w(a,i,{...t,min:n,max:r,marks:i})}return y(e,n,r)}function ae(e,t){let{min:n,max:r}=d(t.min,t.max);return x(e,C(t.marks,n,r),n,r,t.marksPosition)}function E(e,t){return v(e,t)}function oe(e,t){let{min:n,max:r}=d(t.min,t.max);return e===void 0?n:E(e,{...t,min:n,max:r})}function D(e){if(e)return!Object.hasOwn(e,`outputValue`)||e.outputValue===void 0?e.value:e.outputValue}function O(e,t,n){let r=t.filter(t=>D(t)===e);if(r.length)return e===null?n===0?r[0]:r[r.length-1]:r[0]}function k(e,t,n){let r=O(e,t,n);if(r)return r;let i,a=1/0;for(let n of t){let t=D(n);if(typeof t!=`number`||!Number.isFinite(t))continue;let r=Math.abs(e-t);r<a&&(i=n,a=r)}return i}function A(e,t,n,r){if(e===null)return null;let{min:i,max:a}=d(r.min,r.max),o=C(r.marks,i,a),s=Number.isFinite(e)?e:t;if(o.length>0){let e=k(s,o,n),r=D(e);return r===void 0?e?.value??t:r}return h(s,i,a,r.step)}function j(e,t){let{min:n,max:r}=d(t.min,t.max);if(!e)return[null,null];let i=A(e[0],n,0,{...t,min:n,max:r}),a=A(e[1],r,1,{...t,min:n,max:r});return i!==null&&a!==null&&i>a?[a,i]:[i,a]}function M(e,t,n,r){if(e===null)return t;let{min:i,max:a}=d(r.min,r.max),o=C(r.marks,i,a);return o.length>0?(O(e,o,n)??(typeof e==`number`?k(e,o,n):void 0))?.value??t:h(e,i,a,r.step)}function se(e,t){let{min:n,max:r}=d(t.min,t.max),i=j(e,{...t,min:n,max:r}),a=M(i[0],n,0,{...t,min:n,max:r}),o=M(i[1],r,1,{...t,min:n,max:r});return a<=o?[a,o]:[o,a]}function ce(e,t){let{min:n,max:r}=d(t.min,t.max),i=C(t.marks,n,r);if(i.length>0){let t=g(e,i),n=D(t);return n===void 0?t?.value??e:n}return h(e,n,r,t.step)}function le(e,t){let[n,r]=t;return Math.abs(e-n)<=Math.abs(e-r)?0:1}function ue(e,t){let{min:n,max:r}=d(t.min,t.max);return Array.isArray(e)?{startPercent:T(e[0],{...t,min:n,max:r}),endPercent:T(e[1],{...t,min:n,max:r})}:{startPercent:0,endPercent:T(e,{...t,min:n,max:r})}}function N(){return(N=e((()=>{})))()}var P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,de,Y;function X(){return(X=e((()=>{P=`fA7zne`,F=`TMbaqW`,I=`_77qn1L`,L=`cxJQqh`,R=`gg-atO`,z=`bTLJZl`,B=`vDAmRy`,V=`iNrV0y`,H=`PpaxP2`,U=`_9K78Fi`,W=`vzEDBe`,G=`_0OWJh0`,K=`Mk4xi2`,q=`SL0IDQ`,J=`mdezg5`,de=`a4R18g`,Y={slider:P,sliderCompact:F,trackShell:I,track:L,rail:R,fill:z,thumb:B,marks:V,mark:H,compactMark:U,markDot:W,markLabel:G,popoverContent:K,rangeInputControl:q,rangeSegmentInput:J,rangeSeparator:de}})))()}function fe(e){return e===`ArrowLeft`||e===`ArrowDown`?-1:e===`ArrowRight`||e===`ArrowUp`?1:e===`PageDown`?-10:e===`PageUp`?10:null}function pe(e,t){return!!e&&e[0]===t[0]&&e[1]===t[1]}function me(e,t){return e===null?t===0?`-∞`:`∞`:String(e)}function he(e,t){return t.find(t=>t.value===e)?.label??String(e)}function ge(e){return typeof e==`string`||typeof e==`number`?(0,$.jsx)(`span`,{className:`textNoWrap`,children:e}):e}function Z(e){let{min:t,max:n,step:r,marks:a,marksPosition:o=`value`,marksDisplay:c=`compact`,className:ee,error:l,onClearError:u,label:f,description:p,disabled:m,size:h}=e,{min:g,max:_}=(0,Q.useMemo)(()=>d(t,n),[t,n]),v=(0,Q.useMemo)(()=>C(a,g,_),[a,g,_]),y=(0,Q.useMemo)(()=>({min:g,max:_,step:r,marks:v,marksPosition:o}),[g,_,r,v,o]),b=e.mode===`range`,x=b?void 0:oe(e.value,y),S=b?j(e.value,y):void 0,E=b?se(e.value,y):void 0,D=b?E:[x],O=ue(b?E:x,y),k=(0,Q.useRef)(null),A=(0,Q.useRef)([]),M=(0,Q.useRef)(null),N=(0,Q.useRef)(null),[P,F]=(0,Q.useState)(null),{controlId:I,labelId:L,descriptionId:R,errorId:z,describedBy:B}=ne({hasLabel:f!=null,hasDescription:!!p,hasError:!!l}),V=t=>{m||e.mode!==`single`||(e.value===void 0||e.value!==t)&&(e.onChange(t),u?.())},H=t=>{m||e.mode!==`range`||pe(e.value,t)||(e.onChange(t),u?.())},U=(t,n)=>{if(!m){if(e.mode===`range`){let[e,r]=E,[i,a]=S,o=j(n===0?[ce(Math.min(t,r),y),a]:[i,ce(Math.max(t,e),y)],y);H(o);return}V(oe(t,y))}},W=e=>{let t=k.current?.getBoundingClientRect();if(!t)return g;let n=(e-t.left)/t.width*100;return(v.length>0?ae(n,y):void 0)?.value??re(n,g,_)},G=(0,Q.useRef)(U),K=(0,Q.useRef)(W);(0,Q.useEffect)(()=>{G.current=U,K.current=W}),(0,Q.useEffect)(()=>{let e=e=>{N.current!==null&&e&&e.pointerId!==N.current||(N.current=null,M.current=null,F(null))},t=e=>{M.current!==null&&(N.current===null||e.pointerId===N.current)&&G.current(K.current(e.clientX),M.current)};return window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,e),window.addEventListener(`pointercancel`,e),()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,e),window.removeEventListener(`pointercancel`,e)}},[]);let q=(e,t)=>{N.current=e,M.current=t,F(t),A.current[t]?.focus()},J=e=>{if(m)return;e.preventDefault();let t=W(e.clientX),n=b?le(t,E):0;U(t,n),q(e.pointerId,n)},de=e=>t=>{m||(t.preventDefault(),t.stopPropagation(),q(t.pointerId,e))},X=e=>t=>{if(m)return;let n=b&&e===1?E[0]:g,r=b&&e===0?E[1]:_,i=fe(t.key);if(t.key===`Home`){t.preventDefault(),U(n,e);return}if(t.key===`End`){t.preventDefault(),U(r,e);return}if(i===null)return;t.preventDefault();let a=D[e],o=ie(a,i,y,n,r);U(o,e)},Z=e=>{if(m)return;let t=b?le(e,E):0;U(e,t),A.current[t]?.focus()},_e=(e,t)=>{if(b){let n=S[t];return v.find(t=>t.value===e)?.label??me(n,t)}return he(e,v)};return(0,$.jsx)(te,{label:f,description:p,disabled:m,className:ee,size:h,error:l,controlId:I,labelId:L,descriptionId:R,errorId:z,children:(0,$.jsxs)(`div`,{id:I,className:i(Y.slider,c===`compact`&&Y.sliderCompact),children:[(0,$.jsx)(`div`,{className:Y.trackShell,children:(0,$.jsxs)(`div`,{ref:k,"data-slot":`track`,className:Y.track,role:`presentation`,onPointerDown:J,children:[(0,$.jsx)(`div`,{className:Y.rail}),(0,$.jsx)(`div`,{"data-slot":`fill`,className:Y.fill,style:{left:`${O.startPercent}%`,width:`${O.endPercent-O.startPercent}%`}}),c===`compact`&&v.map(e=>{let t=w(e,v,y),n=b?e.value>=E[0]&&e.value<=E[1]:e.value<=x;return(0,$.jsx)(s,{tooltip:!0,placement:`top`,content:ge(e.label),children:(0,$.jsx)(`button`,{type:`button`,"data-slot":`mark`,"data-active":n?``:void 0,className:Y.compactMark,style:{left:`${t}%`},"aria-label":e.ariaLabel,disabled:m,onClick:()=>Z(e.value),children:(0,$.jsx)(`span`,{className:Y.markDot,"aria-hidden":`true`})})},e.value)}),D.map((e,t)=>{let n=_e(e,t);return(0,$.jsx)(s,{tooltip:!0,placement:`top`,content:ge(n),openDelay:0,closeDelay:100,children:(0,$.jsx)(`button`,{ref:e=>{A.current[t]=e},type:`button`,role:`slider`,"data-slot":`thumb`,"data-thumb-index":t,"data-dragging":P===t?``:void 0,className:Y.thumb,disabled:m,style:{left:`${T(e,y)}%`},"aria-disabled":m||void 0,"aria-orientation":`horizontal`,"aria-valuemin":b&&t===1?E[0]:g,"aria-valuemax":b&&t===0?E[1]:_,"aria-valuenow":e,"aria-valuetext":typeof n==`string`||typeof n==`number`?String(n):void 0,"aria-labelledby":L,"aria-describedby":B,"aria-label":L?void 0:b?t===0?`Минимальное значение`:`Максимальное значение`:`Значение`,onPointerDown:de(t),onKeyDown:X(t)})},t)})]})}),c===`full`&&v.length>0&&(0,$.jsx)(`div`,{className:Y.marks,children:v.map(e=>{let t=b?e.value>=E[0]&&e.value<=E[1]:e.value<=x;return(0,$.jsxs)(`button`,{type:`button`,"data-slot":`mark`,"data-active":t?``:void 0,className:Y.mark,style:{left:`${w(e,v,y)}%`},"aria-label":e.ariaLabel,disabled:m,onClick:()=>Z(e.value),children:[(0,$.jsx)(`span`,{className:Y.markDot,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:Y.markLabel,children:e.label})]},e.value)})})]})})}function _e(e){return(0,$.jsx)(Z,{...e,mode:`single`,marksDisplay:`compact`})}function ve(e){return(0,$.jsx)(Z,{...e,mode:`range`,marksDisplay:`compact`})}var Q,$;function ye(){return(ye=e((()=>{Q=t(n(),1),a(),c(),ee(),o(),N(),X(),$=r(),Z.__docgenInfo={description:``,methods:[],displayName:`SliderBase`},_e.__docgenInfo={description:``,methods:[],displayName:`Slider`,props:{min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы отбрасываются.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы отбрасываются.`},step:{required:!1,tsType:{name:`number`},description:"Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks."},marks:{required:!1,tsType:{name:`unknown`},description:`Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:"Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу."},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс контейнера поля.`},error:{required:!1,tsType:{name:`string`},description:"Текст внешней ошибки, отображается через общую `InputUI`-обёртку."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.`}},composes:[`Omit`]},ve.__docgenInfo={description:``,methods:[],displayName:`SliderRange`,props:{min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы отбрасываются.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы отбрасываются.`},step:{required:!1,tsType:{name:`number`},description:"Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks."},marks:{required:!1,tsType:{name:`unknown`},description:`Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:"Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу."},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс контейнера поля.`},error:{required:!1,tsType:{name:`string`},description:"Текст внешней ошибки, отображается через общую `InputUI`-обёртку."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.`}},composes:[`Omit`]}})))()}export{Y as a,N as c,C as d,S as f,ye as i,j as l,Z as n,X as o,d as p,ve as r,D as s,_e as t,oe as u};
@@ -1 +0,0 @@
1
- .fA7zne{gap:var(--space-sm);flex-direction:column;display:flex}.TMbaqW{gap:0}._77qn1L{padding-inline:calc((var(--control-height) - var(--space-xs)) / 2);position:relative}.cxJQqh{height:var(--control-height);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.gg-atO,.bTLJZl{height:var(--space-xs);border-radius:999px;position:absolute;top:50%;transform:translateY(-50%)}.gg-atO{background-color:var(--surface-2);border:var(--border);left:0;right:0}.bTLJZl{background-color:var(--content-0)}.vDAmRy{width:calc(var(--control-height) - var(--space-xs));height:calc(var(--control-height) - var(--space-xs));border:var(--border);background-color:var(--surface-0);color:var(--content-0);box-shadow:var(--shadow-sm);cursor:grab;z-index:2;transition:transform var(--transition-fast) ease, border-color var(--transition-fast) ease, box-shadow var(--transition-fast) ease, background-color var(--transition-fast) ease;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.vDAmRy:active,.vDAmRy:hover{border-color:var(--border-1)}.vDAmRy:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.vDAmRy[data-dragging]{cursor:grabbing;box-shadow:var(--shadow-md);transform:translate(-50%,-50%)scale(1.04)}.iNrV0y{min-height:calc(var(--font-size-sm) + var(--space-md));margin-inline:calc((var(--control-height) - var(--space-xs)) / 2);position:relative}.PpaxP2{align-items:center;gap:var(--space-xs);color:var(--content-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-direction:column;padding:0;display:inline-flex;position:absolute;top:0;transform:translate(-50%)}.PpaxP2:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.PpaxP2[data-active]{color:var(--content-0)}._9K78Fi{width:var(--control-height);height:var(--control-height);color:var(--content-2);cursor:pointer;z-index:1;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;transform:translate(-50%,-50%)}._9K78Fi:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}._9K78Fi[data-active]{color:var(--content-0)}._9K78Fi:disabled{cursor:default}.vzEDBe{width:var(--space-sm);height:var(--space-sm);background-color:currentColor;border-radius:50%}._0OWJh0{font-size:var(--font-size-sm)}.Mk4xi2{min-width:min(24em, 100vw - var(--space-xl))}.SL0IDQ{gap:var(--space-xs);cursor:text}.mdezg5{width:7ch;min-width:0;font-family:var(--font-family-mono);color:inherit;text-align:center;caret-color:var(--content-0);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;margin:0;padding:0}.mdezg5::selection{background-color:var(--focus-ring);color:var(--surface-0)}.mdezg5:disabled{opacity:.25}.a4R18g{-webkit-user-select:none;user-select:none;color:var(--content-2);flex-shrink:0}.a4R18g[data-disabled]{opacity:.25}