@ryuzaki13/react-foundation-ui 1.5.5 → 1.5.7

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 (367) hide show
  1. package/dist/advanced-search/index.js +8 -8
  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-Cfih7hjD.js → CalendarView-DO899w6E.js} +2 -2
  7. package/dist/chunks/{CalendarView-Cfih7hjD.js.map → CalendarView-DO899w6E.js.map} +1 -1
  8. package/dist/chunks/{TextEditorLexicalClient-BSafrkLJ.js → TextEditorLexicalClient-C7XL4lZ5.js} +6 -6
  9. package/dist/chunks/{TextEditorLexicalClient-BSafrkLJ.js.map → TextEditorLexicalClient-C7XL4lZ5.js.map} +1 -1
  10. package/dist/chunks/{badge-CbclcpUi.js → badge-BXwM9cFq.js} +2 -2
  11. package/dist/chunks/{badge-CbclcpUi.js.map → badge-BXwM9cFq.js.map} +1 -1
  12. package/dist/chunks/{base-table-X7aSSjXa.js → base-table-CFJHhLNb.js} +2 -2
  13. package/dist/chunks/{base-table-X7aSSjXa.js.map → base-table-CFJHhLNb.js.map} +1 -1
  14. package/dist/chunks/{button-BOl7hYmT.js → button-BcnvJpqz.js} +3 -3
  15. package/dist/chunks/{button-BOl7hYmT.js.map → button-BcnvJpqz.js.map} +1 -1
  16. package/dist/chunks/{check-box-6HGX_KOy.js → check-box-BrPHWs2l.js} +3 -3
  17. package/dist/chunks/{check-box-6HGX_KOy.js.map → check-box-BrPHWs2l.js.map} +1 -1
  18. package/dist/chunks/{context-menu-tcD3kVAc.js → context-menu-DcdUfWN3.js} +2 -2
  19. package/dist/chunks/{context-menu-tcD3kVAc.js.map → context-menu-DcdUfWN3.js.map} +1 -1
  20. package/dist/chunks/{date-input-Bsl9dxxY.js → date-input-Db7GPkPC.js} +5 -5
  21. package/dist/chunks/{date-input-Bsl9dxxY.js.map → date-input-Db7GPkPC.js.map} +1 -1
  22. package/dist/chunks/{input-CAw1Loze.js → input-CMVATAFR.js} +2 -2
  23. package/dist/chunks/{input-CAw1Loze.js.map → input-CMVATAFR.js.map} +1 -1
  24. package/dist/chunks/{input-files-CLtQ7p8j.js → input-files-DM6I2iF_.js} +3 -3
  25. package/dist/chunks/{input-files-CLtQ7p8j.js.map → input-files-DM6I2iF_.js.map} +1 -1
  26. package/dist/chunks/{input-search-F6MPrUGF.js → input-search-BlTKbtAL.js} +2 -2
  27. package/dist/chunks/{input-search-F6MPrUGF.js.map → input-search-BlTKbtAL.js.map} +1 -1
  28. package/dist/chunks/{modal-DPIXoMkB.js → modal-z1Ej4Y-r.js} +2 -2
  29. package/dist/chunks/{modal-DPIXoMkB.js.map → modal-z1Ej4Y-r.js.map} +1 -1
  30. package/dist/chunks/{multi-select-CZPB8H6v.js → multi-select-BMBjWg3h.js} +5 -5
  31. package/dist/chunks/{multi-select-CZPB8H6v.js.map → multi-select-BMBjWg3h.js.map} +1 -1
  32. package/dist/chunks/{picker-TYLwgl1c.js → picker-C-a-2NkB.js} +3 -3
  33. package/dist/chunks/{picker-TYLwgl1c.js.map → picker-C-a-2NkB.js.map} +1 -1
  34. package/dist/chunks/{radio-group-4j2HbemI.js → radio-group-D-eBPuGm.js} +2 -2
  35. package/dist/chunks/radio-group-D-eBPuGm.js.map +1 -0
  36. package/dist/chunks/{select-BwbljzU9.js → select-BhVOTvZ_.js} +5 -5
  37. package/dist/chunks/{select-BwbljzU9.js.map → select-BhVOTvZ_.js.map} +1 -1
  38. package/dist/chunks/{table-DihiNNJt.js → table-jMjMoYKh.js} +2 -2
  39. package/dist/chunks/{table-DihiNNJt.js.map → table-jMjMoYKh.js.map} +1 -1
  40. package/dist/chunks/{ui.module-BfaIVBba.js → ui.module-D_ZhzCRv.js} +2 -1
  41. package/dist/chunks/ui.module-D_ZhzCRv.js.map +1 -0
  42. package/dist/chunks/{uiClasses-4atXOh0J.js → uiClasses-CF_aN4Tv.js} +11 -2
  43. package/dist/chunks/uiClasses-CF_aN4Tv.js.map +1 -0
  44. package/dist/chunks/{useODataSelectBase-Bfljwe39.js → useODataSelectBase-CQJuzk5Q.js} +2 -2
  45. package/dist/chunks/{useODataSelectBase-Bfljwe39.js.map → useODataSelectBase-CQJuzk5Q.js.map} +1 -1
  46. package/dist/context-menu/index.js +1 -1
  47. package/dist/date-input/index.js +2 -2
  48. package/dist/date-time-input/index.js +3 -3
  49. package/dist/development/storybook/createControlledStoryRender.d.ts +12 -0
  50. package/dist/development/storybook/createControlledStoryRender.d.ts.map +1 -0
  51. package/dist/disclosure/index.js +3 -4
  52. package/dist/disclosure/index.js.map +1 -1
  53. package/dist/drop-zone/index.js +1 -1
  54. package/dist/expandable-action-panel/index.js +1 -1
  55. package/dist/image/index.js +4 -4
  56. package/dist/input/index.js +1 -1
  57. package/dist/input-date-time/index.js +2 -2
  58. package/dist/input-file/index.js +2 -2
  59. package/dist/input-files/index.js +1 -1
  60. package/dist/input-image/index.js +2 -2
  61. package/dist/input-search/index.js +1 -1
  62. package/dist/layout-picker/index.js +2 -2
  63. package/dist/listbox/index.js +1 -1
  64. package/dist/modal/index.js +1 -1
  65. package/dist/multi-select/index.js +1 -1
  66. package/dist/notifications/index.js +1 -1
  67. package/dist/picker/index.js +1 -1
  68. package/dist/preset-range-date-input/index.js +1 -1
  69. package/dist/preset-select/index.js +1 -1
  70. package/dist/radio-button/index.js +2 -2
  71. package/dist/radio-group/index.js +1 -1
  72. package/dist/select/index.js +1 -1
  73. package/dist/simple-table/index.js +1 -1
  74. package/dist/slider/Slider.d.ts.map +1 -1
  75. package/dist/slider/index.js +9 -8
  76. package/dist/slider/index.js.map +1 -1
  77. package/dist/state-select/index.js +1 -1
  78. package/dist/styles.css +1 -1
  79. package/dist/switch/index.js +1 -1
  80. package/dist/table/index.js +1 -1
  81. package/dist/table-sorting/index.js +1 -1
  82. package/dist/tag-input/index.js +2 -2
  83. package/dist/text-editor/index.js +1 -1
  84. package/dist/textarea/index.js +2 -2
  85. package/dist/toggle/index.js +1 -1
  86. package/dist/tree-select/index.js +6 -6
  87. package/dist/tree-table/index.js +1 -1
  88. package/dist/types.d.ts +6 -2
  89. package/dist/types.d.ts.map +1 -1
  90. package/dist/uiClasses.d.ts.map +1 -1
  91. package/package.json +1 -1
  92. package/src/styles/_controls.scss +4 -0
  93. package/src/styles/config/_index.scss +71 -46
  94. package/src/styles/mixins/_mixin.scss +6 -6
  95. package/storybook-static/assets/{Badge-Cy0HXIr5.js → Badge-C57OpH6H.js} +1 -1
  96. package/storybook-static/assets/Badge.stories-CUtS3gdC.js +56 -0
  97. package/storybook-static/assets/BadgeList-Br7PCtJe.js +4 -0
  98. package/storybook-static/assets/Button-BUAFSG7a.js +14 -0
  99. package/storybook-static/assets/{Button-BYDec2zN.js → Button-CXacCJwd.js} +11 -1
  100. package/storybook-static/assets/Button.stories-CG-Xqadt.js +93 -0
  101. package/storybook-static/assets/{CalendarView-D4HgymQc.js → CalendarView-DxkdSsAx.js} +1 -1
  102. package/storybook-static/assets/{CheckBox-DdyYpHip.js → CheckBox-CIv6lt7Z.js} +2 -2
  103. package/storybook-static/assets/{CheckBox-C99Hl-lm.js → CheckBox-DnxmVFE5.js} +1 -1
  104. package/storybook-static/assets/CheckBox.stories-foJ6NnTj.js +58 -0
  105. package/storybook-static/assets/{Color-6AOWCN3U-lPm5uN2n.js → Color-6AOWCN3U-DrqTmtJf.js} +1 -1
  106. package/storybook-static/assets/{ContextMenu-BMqXGc8f.js → ContextMenu-BOM4Gk64.js} +1 -1
  107. package/storybook-static/assets/{ContextMenu-DQv1v1zy.js → ContextMenu-C8SQXRxm.js} +1 -1
  108. package/storybook-static/assets/ContextMenu.stories-CFwISC9P.js +37 -0
  109. package/storybook-static/assets/{DateInput-Bv6Hhu6A.js → DateInput-BWSZLH9k.js} +1 -1
  110. package/storybook-static/assets/{DateInput-DakqiSFb.js → DateInput-ClKgqyQO.js} +1 -1
  111. package/storybook-static/assets/{DateInput.stories-Cba_7cj5.js → DateInput.stories-BIMqPAY-.js} +1 -1
  112. package/storybook-static/assets/{DateRangePresetSelect-BmEPKVFD.js → DateRangePresetSelect-DWIraW8Q.js} +1 -1
  113. package/storybook-static/assets/{DateRangePresetSelect-R8gpZJUt.js → DateRangePresetSelect-yzuX25-A.js} +2 -2
  114. package/storybook-static/assets/DateRangePresetSelect.stories-Bqxh85ie.js +19 -0
  115. package/storybook-static/assets/{Detail-BBic5raN.js → Detail-BwbUH-2a.js} +1 -1
  116. package/storybook-static/assets/Detail.stories-BJZxxHBe.js +56 -0
  117. package/storybook-static/assets/{Dialog-NVtu2Lfd.js → Dialog-B6ZkSwFG.js} +1 -1
  118. package/storybook-static/assets/{Dialog-aECS25qq.js → Dialog-CjAdwNLK.js} +1 -1
  119. package/storybook-static/assets/Dialog.stories-Cw9Inezq.js +22 -0
  120. package/storybook-static/assets/{Disclosure-CMtpfiPs.js → Disclosure-BgaRYF6o.js} +1 -1
  121. package/storybook-static/assets/Disclosure.stories-B3cOFkzP.js +23 -0
  122. package/storybook-static/assets/DisclosureGroup-BFWSlYOk.css +1 -0
  123. package/storybook-static/assets/DisclosureGroup-DjDW1NYH.js +2 -0
  124. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CpcMEXZo.js → DocsRenderer-JROSPFPF-BWdUj6SG.js} +1 -1
  125. package/storybook-static/assets/{DropZone-CGk3TQs_.js → DropZone-D7XJczCv.js} +1 -1
  126. package/storybook-static/assets/{DropZone-DSkgQNJy.js → DropZone-DnJJRVvs.js} +1 -1
  127. package/storybook-static/assets/DropZone.stories-DCILeRID.js +26 -0
  128. package/storybook-static/assets/{DropdownMenu-CIwvcBv7.js → DropdownMenu-eA7CqmEq.js} +1 -1
  129. package/storybook-static/assets/{ExpandableActionPanel-C-xRvGLK.js → ExpandableActionPanel-Bi8GdZk8.js} +1 -1
  130. package/storybook-static/assets/ExpandableActionPanel.stories-CnpIhE-p.js +9 -0
  131. package/storybook-static/assets/{Flex-BZPZFjuo.js → Flex-CTId58Yi.js} +1 -1
  132. package/storybook-static/assets/{Flex.stories-C-GWEtfM.js → Flex.stories-DzO6eshU.js} +12 -12
  133. package/storybook-static/assets/{FloatingPopover-DPYP9R5G.js → FloatingPopover-Bj3n1Cbm.js} +1 -1
  134. package/storybook-static/assets/{FormattedTableCell-DAa1fbw9.js → FormattedTableCell-DgbwZ60P.js} +1 -1
  135. package/storybook-static/assets/{Grid-CouPzQim.js → Grid-Dd82LOHp.js} +1 -1
  136. package/storybook-static/assets/{Grid.stories-DRy5MjMl.js → Grid.stories-DijrLN9C.js} +15 -15
  137. package/storybook-static/assets/{ImageCropper.stories-UkAS9yEp.js → ImageCropper.stories-BeJRCTBT.js} +23 -7
  138. package/storybook-static/assets/{ImageRenderer-DG9JMH12.js → ImageRenderer-DJPFz9-n.js} +1 -1
  139. package/storybook-static/assets/ImageRenderer.stories--ai66HWP.js +34 -0
  140. package/storybook-static/assets/ImageView.stories-khEGxQEm.js +14 -0
  141. package/storybook-static/assets/{ImageViewer.stories-D09Y8qy7.js → ImageViewer.stories-DF6RRs2D.js} +30 -12
  142. package/storybook-static/assets/{ImageViewerRuntime-Bj8A9MgR.js → ImageViewerRuntime-DBwCIibL.js} +1 -1
  143. package/storybook-static/assets/{Input-CLXuEb2-.js → Input-BqqylVpn.js} +1 -1
  144. package/storybook-static/assets/{Input-g2XrzU2e.js → Input-Fk3IRww_.js} +1 -1
  145. package/storybook-static/assets/Input.stories-BQMPGwcm.js +52 -0
  146. package/storybook-static/assets/{InputDateTime-9jtVktvp.js → InputDateTime-B3aoGdLh.js} +1 -1
  147. package/storybook-static/assets/{InputDateTime.stories-QMtC2jN7.js → InputDateTime.stories-BVD7wYFB.js} +23 -20
  148. package/storybook-static/assets/{InputFile-Dv5BpleO.js → InputFile-BPIyxf85.js} +1 -1
  149. package/storybook-static/assets/{InputFile-CniSRV0z.js → InputFile-CeDA-DBu.js} +1 -1
  150. package/storybook-static/assets/InputFile.stories-CTyjqf2i.js +27 -0
  151. package/storybook-static/assets/{InputFiles-BTOdLOY4.js → InputFiles-Ay6AhGXY.js} +1 -1
  152. package/storybook-static/assets/{InputFiles-CsbUWxMN.js → InputFiles-Bs_ANsbH.js} +1 -1
  153. package/storybook-static/assets/InputFiles.stories-DpulRmAF.js +26 -0
  154. package/storybook-static/assets/{InputFilesList-YZLWgLqU.js → InputFilesList-O66HnsfV.js} +1 -1
  155. package/storybook-static/assets/{InputImage-CoqzaT5z.js → InputImage-8CkQNIx-.js} +1 -1
  156. package/storybook-static/assets/{InputImage-Ct2PIHnB.js → InputImage-C61yYNvh.js} +1 -1
  157. package/storybook-static/assets/InputImage.stories-B9EdEI54.js +56 -0
  158. package/storybook-static/assets/InteractiveComponents-D3625WeG.js +87 -0
  159. package/storybook-static/assets/InteractiveComponents.stories-DlUOC0gE.js +472 -0
  160. package/storybook-static/assets/{LayoutPicker-CBKIOA6m.js → LayoutPicker-BzdqkISv.js} +1 -1
  161. package/storybook-static/assets/{LayoutPicker-C14HuoJT.js → LayoutPicker-TghytR7l.js} +1 -1
  162. package/storybook-static/assets/{LayoutPicker.stories-Cbdev2zd.js → LayoutPicker.stories-BcQcVoGX.js} +1 -1
  163. package/storybook-static/assets/{Listbox-DGdrVenc.js → Listbox-DuNXYpU5.js} +1 -1
  164. package/storybook-static/assets/{Listbox-Mqn7EoPt.js → Listbox-kuB9DZmS.js} +1 -1
  165. package/storybook-static/assets/Listbox.stories-RaF4O2dQ.js +68 -0
  166. package/storybook-static/assets/{Modal-DZgFrzRQ.js → Modal-i-qVmfOZ.js} +1 -1
  167. package/storybook-static/assets/Modal.stories-jAQ3yHty.js +232 -0
  168. package/storybook-static/assets/{ModalManagerProvider-CDpI_bMR.js → ModalManagerProvider-_TvqmYe3.js} +1 -1
  169. package/storybook-static/assets/{MultiSelect-CYLKB_VV.js → MultiSelect-BD6xtx7W.js} +1 -1
  170. package/storybook-static/assets/{MultiSelect-Cujmvoxp.js → MultiSelect-DiBUW3Jo.js} +1 -1
  171. package/storybook-static/assets/MultiSelect.stories-Cc4-fIjA.js +55 -0
  172. package/storybook-static/assets/{NoData-B4H6VMN9.js → NoData-BvxB_r9f.js} +1 -1
  173. package/storybook-static/assets/{NotificationsHost-DGolEXP8.js → NotificationsHost-DDxqV6_Y.js} +1 -1
  174. package/storybook-static/assets/NotificationsHost.stories-tMVttzUz.js +29 -0
  175. package/storybook-static/assets/{ODataMultiSelect-zz9GzQ4E.js → ODataMultiSelect-96O4f-qa.js} +1 -1
  176. package/storybook-static/assets/ODataMultiSelect.stories-DpRZoXwK.js +137 -0
  177. package/storybook-static/assets/{ODataSelect-Dh1wVGqr.js → ODataSelect-MS3gU6J3.js} +1 -1
  178. package/storybook-static/assets/ODataSelect.stories-V6u4XJN4.js +207 -0
  179. package/storybook-static/assets/{ODataTreeMultiSelect-CcSYG9z8.js → ODataTreeMultiSelect-B_pN_Ec6.js} +1 -1
  180. package/storybook-static/assets/ODataTreeMultiSelect.stories-DsyoOuR8.js +78 -0
  181. package/storybook-static/assets/{ODataTreeSelect-DJIwvxiv.js → ODataTreeSelect-iQ8y3cDY.js} +1 -1
  182. package/storybook-static/assets/ODataTreeSelect.stories-DCzwGTkw.js +55 -0
  183. package/storybook-static/assets/{OneStepScroller-Dtw3XxR_.js → OneStepScroller-DHETHT90.js} +1 -1
  184. package/storybook-static/assets/{PeriodSelect-BlHfE2Sb.js → PeriodSelect-C5gt4lj6.js} +1 -1
  185. package/storybook-static/assets/{PeriodSelect-BFLetGco.js → PeriodSelect-CC7faqoe.js} +1 -1
  186. package/storybook-static/assets/PeriodSelect.stories-1gMZgYMb.js +50 -0
  187. package/storybook-static/assets/{PickerSelectionToolbar-DzMAzpep.js → PickerSelectionToolbar-DA9AqLfK.js} +1 -1
  188. package/storybook-static/assets/{PickerTriggerActions-BKQ28AXr.js → PickerTriggerActions-Bt4rbg1T.js} +1 -1
  189. package/storybook-static/assets/{Popover-3iAlzyR9.js → Popover-DoiYIRMQ.js} +1 -1
  190. package/storybook-static/assets/{Popover-BrEAV6tC.js → Popover-gg-G1aUp.js} +1 -1
  191. package/storybook-static/assets/Popover.stories-Yt2zItKA.js +47 -0
  192. package/storybook-static/assets/{PresetRangeDateInput-Cmyn-fEA.js → PresetRangeDateInput-CB6Cyj_z.js} +1 -1
  193. package/storybook-static/assets/PresetRangeDateInput-OuBr9O7l.js +1 -0
  194. package/storybook-static/assets/PresetRangeDateInput.stories-DEv0NvxR.js +3 -0
  195. package/storybook-static/assets/{PresetSelect-DzafFdIZ.js → PresetSelect-QCMUn7im.js} +1 -1
  196. package/storybook-static/assets/{RadioButton-BelOYlsv.js → RadioButton-BWyJs5Z6.js} +2 -2
  197. package/storybook-static/assets/{RadioButton-CP2MTHNG.js → RadioButton-D1O1e-bK.js} +1 -1
  198. package/storybook-static/assets/RadioButton.stories-kT4uLnRo.js +32 -0
  199. package/storybook-static/assets/{RadioGroup-CMerSWPc.js → RadioGroup-Bz9Pc7gG.js} +1 -1
  200. package/storybook-static/assets/{RadioGroup-zJ6x863B.js → RadioGroup-Cc8bDKSK.js} +1 -1
  201. package/storybook-static/assets/{RadioGroup-DzkFQ83G.css → RadioGroup-vkD0hI_b.css} +1 -1
  202. package/storybook-static/assets/RadioGroup.stories-XUcezf_a.js +17 -0
  203. package/storybook-static/assets/{Scrollable-bLa141TT.js → Scrollable-7AnJblZH.js} +1 -1
  204. package/storybook-static/assets/{Select-iRRHKOR9.js → Select-2OS5b3gj.js} +1 -1
  205. package/storybook-static/assets/{Select-BuBKmTxm.js → Select-B0JlKRZh.js} +1 -1
  206. package/storybook-static/assets/Select.stories-6NgDnQLy.js +69 -0
  207. package/storybook-static/assets/{SelectOptionContent-C5EAnQ_6.js → SelectOptionContent-DrMuPE4L.js} +1 -1
  208. package/storybook-static/assets/{SerializableSelect-D8W_hXze.js → SerializableSelect-C29Dtj1j.js} +1 -1
  209. package/storybook-static/assets/SerializableSelect.stories-Dk_0LHfx.js +73 -0
  210. package/storybook-static/assets/{SingleDateTimeInput-CuTy_t_1.js → SingleDateTimeInput-Bu-VV-X4.js} +1 -1
  211. package/storybook-static/assets/{SingleDateTimeInput-qTqbSGck.js → SingleDateTimeInput-pNtbntt7.js} +1 -1
  212. package/storybook-static/assets/SingleDateTimeInput.stories-BY6gytNo.js +48 -0
  213. package/storybook-static/assets/{Slider-D2-xtMN2.js → Slider-CKDNtVxH.js} +1 -1
  214. package/storybook-static/assets/{Slider-Zza_tIz2.js → Slider-CzKsc6lR.js} +1 -1
  215. package/storybook-static/assets/Slider-bVVL6_Jz.css +1 -0
  216. package/storybook-static/assets/Slider.stories-C9CiqYKL.js +80 -0
  217. package/storybook-static/assets/{SliderInput-BT-DMyS-.js → SliderInput-Dw5e7zgd.js} +1 -1
  218. package/storybook-static/assets/{SliderInput-C8OO6jI-.js → SliderInput-LIlYbZ-q.js} +1 -1
  219. package/storybook-static/assets/SliderInput.stories-DScPfD4E.js +92 -0
  220. package/storybook-static/assets/{Sortable-BC2UlTFz.js → Sortable-BrbLX--A.js} +1 -1
  221. package/storybook-static/assets/Sortable.stories-CNgF8pCO.js +77 -0
  222. package/storybook-static/assets/{Splitter-BOMgf1Rr.js → Splitter-B5t8ta7u.js} +1 -1
  223. package/storybook-static/assets/{Splitter.stories-DayYmTEb.js → Splitter.stories-Cz_ZAwsO.js} +26 -9
  224. package/storybook-static/assets/{StateSelect-DRHlFj9s.js → StateSelect-BpZxLrbE.js} +1 -1
  225. package/storybook-static/assets/{StateSelect-CjBaZyCH.js → StateSelect-CkC0uV89.js} +1 -1
  226. package/storybook-static/assets/StateSelect.stories-7YPBHcZj.js +59 -0
  227. package/storybook-static/assets/StringToggle.stories-dy82Cq3e.js +5 -0
  228. package/storybook-static/assets/{Switch-D3OypknC.js → Switch-DmUkZLoV.js} +1 -1
  229. package/storybook-static/assets/{Switch-Bs4yhyjR.js → Switch-L91cfss1.js} +1 -1
  230. package/storybook-static/assets/Switch.stories-DacAiGQz.js +15 -0
  231. package/storybook-static/assets/{Table-B4yXrSY8.js → Table-B13zUr91.js} +1 -1
  232. package/storybook-static/assets/Table.stories-BPgaag4D.js +207 -0
  233. package/storybook-static/assets/{Tabs-WGjWEgV9.js → Tabs-XHS1tTCR.js} +1 -1
  234. package/storybook-static/assets/Tabs.stories-DCGe98nI.js +87 -0
  235. package/storybook-static/assets/{TabsBox-B37Xpp9P.js → TabsBox-NeiMksCt.js} +1 -1
  236. package/storybook-static/assets/{TagInput-Blo36mAx.js → TagInput-DmTij_wJ.js} +1 -1
  237. package/storybook-static/assets/TagInput.stories-Crz2d9WK.js +18 -0
  238. package/storybook-static/assets/{Text-C1at2dMq.js → Text-VK5-gznU.js} +1 -1
  239. package/storybook-static/assets/{Textarea-B02c6Ggv.js → Textarea-FgIOtg__.js} +1 -1
  240. package/storybook-static/assets/{Textarea-S7xMlxUP.js → Textarea-dZHo8H-N.js} +1 -1
  241. package/storybook-static/assets/Textarea.stories-DlVs_0Da.js +17 -0
  242. package/storybook-static/assets/{TimePanel-CZ2CNXd5.js → TimePanel-CmNDtcUu.js} +1 -1
  243. package/storybook-static/assets/TimePanel.stories-DzDCIjYh.js +14 -0
  244. package/storybook-static/assets/{Toggle-BZsOOBwn.js → Toggle-CszEtVgG.js} +1 -1
  245. package/storybook-static/assets/{Toggle-BjyGbAMN.js → Toggle-iIIRwhJ0.js} +1 -1
  246. package/storybook-static/assets/Toggle.stories-OHqcyxRB.js +25 -0
  247. package/storybook-static/assets/{TreeMultiSelect-Bp9Ypu3w.js → TreeMultiSelect-BcpQXmXz.js} +1 -1
  248. package/storybook-static/assets/{TreeMultiSelect-CFNKXcU5.js → TreeMultiSelect-D08x-Zz7.js} +1 -1
  249. package/storybook-static/assets/TreeMultiSelect.stories-CmZ3kEc3.js +60 -0
  250. package/storybook-static/assets/{TreePickerBase-B4nW8V67.js → TreePickerBase-PstNPiQo.js} +1 -1
  251. package/storybook-static/assets/{TreeSelect-DHjzbXxe.js → TreeSelect-CrpAtboA.js} +1 -1
  252. package/storybook-static/assets/{TreeSelect-6lILMCzp.js → TreeSelect-xXFRj_Bm.js} +1 -1
  253. package/storybook-static/assets/TreeSelect.stories-DJaUtn0O.js +40 -0
  254. package/storybook-static/assets/{TreeTable-Dw2YFyUT.js → TreeTable-C7OZPq-9.js} +1 -1
  255. package/storybook-static/assets/TreeTable.stories-Dd0YYVZ2.js +168 -0
  256. package/storybook-static/assets/{async-CbzeGif1.js → async-Bu5V6wLi.js} +1 -1
  257. package/storybook-static/assets/{blocks-DQl3eTFV.js → blocks-LF4-T76K.js} +3 -3
  258. package/storybook-static/assets/{browserAndReact-CC7HF1qC.js → browserAndReact-DpeuPHLP.js} +1 -1
  259. package/storybook-static/assets/{check-D-psTYia.js → check-CxEwVoKp.js} +1 -1
  260. package/storybook-static/assets/{chevron-down-Das8TW8b.js → chevron-down-DpN_oMWM.js} +1 -1
  261. package/storybook-static/assets/{chevron-left-Dq0qJ7av.js → chevron-left-C9_RRcAe.js} +1 -1
  262. package/storybook-static/assets/{chevron-right-Ctnpw34b.js → chevron-right-K8IWV8l8.js} +1 -1
  263. package/storybook-static/assets/{chunk-W22LQPXL-D-HehNH1.js → chunk-W22LQPXL-iNmw4j69.js} +1 -1
  264. package/storybook-static/assets/{circle-alert-25c5aKIP.js → circle-alert-B_axag0r.js} +1 -1
  265. package/storybook-static/assets/{circle-check-DXXEdCIE.js → circle-check-DdUogvti.js} +1 -1
  266. package/storybook-static/assets/{components-Dg-CCU90.js → components-BRUtb9vg.js} +3 -3
  267. package/storybook-static/assets/{contextMenu-DTmHIVHM.js → contextMenu-OelXFAKZ.js} +1 -1
  268. package/storybook-static/assets/createControlledStoryRender-DHsyXc1B.js +1 -0
  269. package/storybook-static/assets/{defaultRenderers-IYkjKXvR.js → defaultRenderers-CJ0K8d9m.js} +1 -1
  270. package/storybook-static/assets/{download-D5fSxET6.js → download-D12Nvnyu.js} +1 -1
  271. package/storybook-static/assets/{filesAndExcel-CHPqG7k9.js → filesAndExcel-BBtR-68u.js} +1 -1
  272. package/storybook-static/assets/{floating-ui.react-Z3F8qO7F.js → floating-ui.react-CGVF2LPS.js} +1 -1
  273. package/storybook-static/assets/{formatters-BH5xiyRy.js → formatters-c0BLP2hy.js} +1 -1
  274. package/storybook-static/assets/{formatters-runtime-D9WhzCIX.js → formatters-runtime-DAwNvKyD.js} +1 -1
  275. package/storybook-static/assets/{foundationLib-BMiwtR-Z.js → foundationLib-DfmfMVN5.js} +1 -1
  276. package/storybook-static/assets/{hooks-Ck7lIgxa.js → hooks-B-9_3OzU.js} +1 -1
  277. package/storybook-static/assets/iframe-CTtK5YHC.js +1 -0
  278. package/storybook-static/assets/{iframe-CYobheWD.js → iframe-CZ0KI0zu.js} +4 -4
  279. package/storybook-static/assets/{iframe-wwpu8YXD.css → iframe-_EkhDToa.css} +1 -1
  280. package/storybook-static/assets/{info-YO6kz7oI.js → info-Cb4lUntE.js} +1 -1
  281. package/storybook-static/assets/{odata-DY-n4qXl.js → odata-CXz6Bety.js} +1 -1
  282. package/storybook-static/assets/{odataAndTables-CEDAX_B4.js → odataAndTables-Dog6Bul7.js} +1 -1
  283. package/storybook-static/assets/{odataFetchFn-OTPWXX4r.js → odataFetchFn-BwGEe7ia.js} +1 -1
  284. package/storybook-static/assets/odataStoryFixtures-C6PXnQRZ.js +25 -0
  285. package/storybook-static/assets/{persisted-XkVJ2BSX.js → persisted-5MRV37vp.js} +1 -1
  286. package/storybook-static/assets/{pureUtilities-CXYqAXzu.js → pureUtilities-Bn1exZyB.js} +1 -1
  287. package/storybook-static/assets/{react-CNEBWIpL.js → react-BqQSSAdw.js} +1 -1
  288. package/storybook-static/assets/{refresh-cw-tPAOjIhX.js → refresh-cw-CYH4ov0F.js} +1 -1
  289. package/storybook-static/assets/{runtimeAndState-4rwCbfx1.js → runtimeAndState-BJDYVcfW.js} +1 -1
  290. package/storybook-static/assets/{settings-2-Aj50ai8G.js → settings-2-CHcDR5TK.js} +1 -1
  291. package/storybook-static/assets/{sortable-CzYI9YKz.js → sortable-D2oVv65U.js} +1 -1
  292. package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-IJFHSaoq.js → syntaxhighlighter-T5IQBZDB-BZS8iv6c.js} +1 -1
  293. package/storybook-static/assets/{trash-2-C0LHJG3P.js → trash-2-K0OwBMlQ.js} +1 -1
  294. package/storybook-static/assets/{triangle-alert-D1MS3de_.js → triangle-alert-ByLBT1gp.js} +1 -1
  295. package/storybook-static/assets/ui-nZtwyXyS.css +1 -0
  296. package/storybook-static/assets/ui.module-DjxH5szp.js +1 -0
  297. package/storybook-static/assets/uiClasses-CjI3jv6I.js +1 -0
  298. package/storybook-static/assets/{useODataSelectBase-ComGcCMU.js → useODataSelectBase-DPQiQAXO.js} +1 -1
  299. package/storybook-static/assets/{useODataTreeData-zmGHo0kF.js → useODataTreeData-BmBSwDNz.js} +1 -1
  300. package/storybook-static/assets/{usePickerQuery-C1tepQnh.js → usePickerQuery-DIOf9uC7.js} +1 -1
  301. package/storybook-static/assets/{usePickerTriggerController-Cxo7izm1.js → usePickerTriggerController-gFigo0fq.js} +1 -1
  302. package/storybook-static/assets/{x-Dzd3S4ku.js → x-B3ccJTtF.js} +1 -1
  303. package/storybook-static/iframe.html +3 -3
  304. package/storybook-static/index.json +1 -1
  305. package/storybook-static/project.json +1 -1
  306. package/dist/chunks/radio-group-4j2HbemI.js.map +0 -1
  307. package/dist/chunks/ui.module-BfaIVBba.js.map +0 -1
  308. package/dist/chunks/uiClasses-4atXOh0J.js.map +0 -1
  309. package/storybook-static/assets/Badge.stories-CmzQahZl.js +0 -54
  310. package/storybook-static/assets/Button-G_ZnGyXY.js +0 -12
  311. package/storybook-static/assets/Button.stories-DKtOUA8L.js +0 -75
  312. package/storybook-static/assets/CheckBox.stories-CEKyfP3d.js +0 -60
  313. package/storybook-static/assets/ContextMenu.stories-Dv0PbUYq.js +0 -90
  314. package/storybook-static/assets/DateRangePresetSelect.stories-BugmuzbR.js +0 -11
  315. package/storybook-static/assets/Detail.stories-Dcvx2XeS.js +0 -44
  316. package/storybook-static/assets/Dialog.stories-BlE8KyqF.js +0 -31
  317. package/storybook-static/assets/Disclosure.stories-CQtDJC0Y.js +0 -40
  318. package/storybook-static/assets/DisclosureGroup-BBYuBGIn.css +0 -1
  319. package/storybook-static/assets/DisclosureGroup-C7kadoVD.js +0 -2
  320. package/storybook-static/assets/DropZone.stories-gbnC2zmJ.js +0 -36
  321. package/storybook-static/assets/ExpandableActionPanel.stories-DLM9Ngrq.js +0 -19
  322. package/storybook-static/assets/ImageRenderer.stories-BTTGZ1gl.js +0 -22
  323. package/storybook-static/assets/ImageView.stories-kHf-FdmO.js +0 -9
  324. package/storybook-static/assets/Input.stories-ia7ttPQv.js +0 -38
  325. package/storybook-static/assets/InputFile.stories-CM1CpvyA.js +0 -36
  326. package/storybook-static/assets/InputFiles.stories-CSGb3Fg6.js +0 -33
  327. package/storybook-static/assets/InputImage.stories-48QPNNvb.js +0 -45
  328. package/storybook-static/assets/InteractiveComponents.stories-DKpEH8Wn.js +0 -303
  329. package/storybook-static/assets/Listbox.stories-hZtjBKIX.js +0 -53
  330. package/storybook-static/assets/Modal.stories-W1kjdQpw.js +0 -180
  331. package/storybook-static/assets/MultiSelect.stories-BnmOPMcq.js +0 -29
  332. package/storybook-static/assets/NotificationsHost.stories-DOZprbOB.js +0 -25
  333. package/storybook-static/assets/ODataMultiSelect.stories-DDakF7DF.js +0 -73
  334. package/storybook-static/assets/ODataSelect.stories-Bd7IqAJz.js +0 -73
  335. package/storybook-static/assets/ODataTreeMultiSelect.stories-DzgVS2uv.js +0 -30
  336. package/storybook-static/assets/ODataTreeSelect.stories-DjUg9PpL.js +0 -24
  337. package/storybook-static/assets/PeriodSelect.stories-DhVcKcfE.js +0 -60
  338. package/storybook-static/assets/Popover.stories-EbIGa6Xz.js +0 -69
  339. package/storybook-static/assets/PresetRangeDateInput-BxBcwRrC.js +0 -1
  340. package/storybook-static/assets/PresetRangeDateInput.stories-BEiKgo4b.js +0 -15
  341. package/storybook-static/assets/RadioButton.stories-C2At3zOQ.js +0 -35
  342. package/storybook-static/assets/RadioGroup.stories-DP0Rb8kU.js +0 -42
  343. package/storybook-static/assets/Select.stories-DsK2KAnc.js +0 -46
  344. package/storybook-static/assets/SerializableSelect.stories-DwSCbcn8.js +0 -46
  345. package/storybook-static/assets/SingleDateTimeInput.stories-C_KdNabz.js +0 -78
  346. package/storybook-static/assets/Slider-BWuie2gr.css +0 -1
  347. package/storybook-static/assets/Slider.stories-Bbgt-EWg.js +0 -77
  348. package/storybook-static/assets/SliderInput.stories-BZxKunf6.js +0 -67
  349. package/storybook-static/assets/Sortable.stories-i35oL30b.js +0 -141
  350. package/storybook-static/assets/StateSelect.stories-CapA4Oy1.js +0 -44
  351. package/storybook-static/assets/StringToggle.stories-B9p8YjZk.js +0 -6
  352. package/storybook-static/assets/Switch.stories-Eli-Nxhy.js +0 -26
  353. package/storybook-static/assets/Table.stories-DKbzDmyV.js +0 -122
  354. package/storybook-static/assets/Tabs.stories-u3YDpejg.js +0 -57
  355. package/storybook-static/assets/TagInput.stories-BanBYkO8.js +0 -12
  356. package/storybook-static/assets/Textarea.stories-CFLZGItr.js +0 -27
  357. package/storybook-static/assets/TimePanel.stories-DbgZ63KX.js +0 -25
  358. package/storybook-static/assets/Toggle.stories-Cb3o7efj.js +0 -30
  359. package/storybook-static/assets/TreeMultiSelect.stories-39QVC3ju.js +0 -35
  360. package/storybook-static/assets/TreeSelect.stories-D7olQgJr.js +0 -18
  361. package/storybook-static/assets/TreeTable.stories-DdrbXMIl.js +0 -83
  362. package/storybook-static/assets/iframe-Ba8ub8fM.js +0 -1
  363. package/storybook-static/assets/odataStoryFixtures-BtTotZS_.js +0 -25
  364. package/storybook-static/assets/ui-4LkYZ0Er.css +0 -1
  365. package/storybook-static/assets/ui.module-CHEKb9Cb.js +0 -1
  366. package/storybook-static/assets/uiClasses-Bme9Qqv6.js +0 -1
  367. /package/storybook-static/assets/{Badge-CD5894x5.css → BadgeList-CD5894x5.css} +0 -0
@@ -0,0 +1,73 @@
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-CZ0KI0zu.js";import{n as i,t as a}from"./Select-2OS5b3gj.js";function o(e,t){return e[t]}function s(e,t,n){let r=e[t];if(typeof r==`string`||typeof r==`number`)return r;let i=o(e,n);return typeof i==`string`||typeof i==`number`?i:String(i)}function c({label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:u,onChange:d,optionKey:f,optionLabel:p,renderCode:m,className:h,clearable:g}){let _=u===void 0?void 0:c.find(e=>o(e,f)===u);return(0,l.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:_,onChange:e=>d(e?o(e,f):void 0),getOptionKey:e=>o(e,f),getOptionLabel:e=>s(e,p,f),getOptionCode:m?e=>o(e,f):void 0,className:h,clearable:g})}var l;function u(){return(u=e((()=>{i(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`SerializableSelect`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void`,signature:{arguments:[{type:{name:`union`,raw:`SerializableOptionValue<TOption, TOptionKey> | undefined`,elements:[{name:`Extract`,elements:[{name:`TOption[TOptionKey]`,raw:`TOption[TOptionKey]`},{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}],raw:`Extract<
2
+ TOption[TOptionKey],
3
+ SelectOptionKey
4
+ >`},{name:`undefined`}]},name:`value`}],return:{name:`void`}}},description:``},optionKey:{required:!0,tsType:{name:`TOptionKey`},description:``},optionLabel:{required:!0,tsType:{name:`TOptionLabel`},description:``},renderCode:{required:!1,tsType:{name:`literal`,value:`true`},description:``},className:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}var d=t({AsyncReloadLike:()=>S,Controlled:()=>y,Disabled:()=>C,Placeholder:()=>b,WithCode:()=>x,__namedExportsOrder:()=>w,default:()=>v}),f,p,m,h,g,_,v,y,b,x,S,C,w;function T(){return(T=e((()=>{f=n(),u(),p=r(),{useArgs:m,useState:h}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:g}=__STORYBOOK_MODULE_TEST__,_=[{id:10,name:`Продажи`,code:`SLS`,branch:`Екатеринбург`},{id:20,name:`Закупки`,code:`PRC`,branch:`Челябинск`},{id:30,name:`Логистика`,code:`LGS`,branch:`Новосибирск`},{id:40,name:`Сервис`,code:`SRV`,branch:`Москва`}],v={title:`Shared/UI/SerializableSelect`,component:c,args:{label:`Подразделение`,description:`Сериализуемая обёртка над Select для object-options и field-based конфигурации.`,placeholder:`Выберите подразделение`,options:_,optionKey:`id`,optionLabel:`name`,value:void 0,onChange:g(),size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Высокоуровневая обёртка над low-level Select. Принимает массив объектов, получает key и label по именам полей, а наружу возвращает только значение ключа. Нужна для сериализуемых конфигов, в том числе в src/shared/ui/controls/*.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда ключ ещё не выбран.`,control:`text`},options:{description:`Массив объектных option.`,control:!1},optionKey:{description:`Поле объекта, значение которого используется как ключ и отдаётся наружу через onChange.`,control:!1},optionLabel:{description:`Поле объекта, значение которого отображается как основной текст option.`,control:!1},renderCode:{description:`Если включено, справа от текста будет показан ключ optionKey.`,control:`boolean`},value:{description:`Текущий выбранный ключ option, а не вся option целиком.`,control:!1},onChange:{description:`Вызывается с новым значением optionKey.`,control:!1},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранного ключа.`,control:`boolean`}}},y={name:`Выбор по ключу`,render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,value:e.value??20,onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:20}},b={render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},x={name:`С кодом`,render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,value:e.value??10,renderCode:!0,onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:10,renderCode:!0}},S={name:`Смена набора опций`,render:function(e){let[,t]=m(),[n,r]=h(!1),i=(0,f.useMemo)(()=>n?_.filter(e=>e.id!==20):_,[n]);return(0,p.jsxs)(`div`,{style:{display:`grid`,gap:`12px`,maxWidth:`320px`},children:[(0,p.jsx)(`button`,{type:`button`,onClick:()=>r(e=>!e),children:n?`Показать полный список`:`Скрыть одну опцию`}),(0,p.jsx)(c,{...e,options:i,value:e.value??30,onChange:n=>{e.onChange(n),t({value:n})}})]})},args:{value:30}},C={args:{disabled:!0,value:10}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
5
+ name: "Выбор по ключу",
6
+ render: function Render(args) {
7
+ const [, updateArgs] = useArgs<SerializableSelectProps<DepartmentOption, "id", "name">>();
8
+ return <SerializableSelect {...args} value={args.value ?? 20} onChange={value => {
9
+ args.onChange(value);
10
+ updateArgs({
11
+ value
12
+ });
13
+ }} />;
14
+ },
15
+ args: {
16
+ value: 20
17
+ }
18
+ }`,...y.parameters?.docs?.source}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
19
+ render: function Render(args) {
20
+ const [, updateArgs] = useArgs<SerializableSelectProps<DepartmentOption, "id", "name">>();
21
+ return <SerializableSelect {...args} onChange={value => {
22
+ args.onChange(value);
23
+ updateArgs({
24
+ value
25
+ });
26
+ }} />;
27
+ }
28
+ }`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
29
+ name: "С кодом",
30
+ render: function Render(args) {
31
+ const [, updateArgs] = useArgs<SerializableSelectProps<DepartmentOption, "id", "name">>();
32
+ return <SerializableSelect {...args} value={args.value ?? 10} renderCode onChange={value => {
33
+ args.onChange(value);
34
+ updateArgs({
35
+ value
36
+ });
37
+ }} />;
38
+ },
39
+ args: {
40
+ value: 10,
41
+ renderCode: true
42
+ }
43
+ }`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
44
+ name: "Смена набора опций",
45
+ render: function Render(args) {
46
+ const [, updateArgs] = useArgs<SerializableSelectProps<DepartmentOption, "id", "name">>();
47
+ const [showShortList, setShowShortList] = useStorybookState(false);
48
+ const options = useMemo(() => showShortList ? departmentOptions.filter(option => option.id !== 20) : departmentOptions, [showShortList]);
49
+ return <div style={{
50
+ display: "grid",
51
+ gap: "12px",
52
+ maxWidth: "320px"
53
+ }}>
54
+ <button type="button" onClick={() => setShowShortList(current => !current)}>
55
+ {showShortList ? "Показать полный список" : "Скрыть одну опцию"}
56
+ </button>
57
+ <SerializableSelect {...args} options={options} value={args.value ?? 30} onChange={value => {
58
+ args.onChange(value);
59
+ updateArgs({
60
+ value
61
+ });
62
+ }} />
63
+ </div>;
64
+ },
65
+ args: {
66
+ value: 30
67
+ }
68
+ }`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
69
+ args: {
70
+ disabled: true,
71
+ value: 10
72
+ }
73
+ }`,...C.parameters?.docs?.source}}},w=[`Controlled`,`Placeholder`,`WithCode`,`AsyncReloadLike`,`Disabled`]})))()}export{d as a,b as i,y as n,x as o,C as r,T as s,S as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{c as n,l as r,n as i,t as a}from"./CalendarView-D4HgymQc.js";import{i as o,n as s,r as c}from"./iframe-CYobheWD.js";import{a as l,i as u}from"./utils-DUM89eIj.js";import{C as d,b as f,y as p}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as m,t as h}from"./Popover-BrEAV6tC.js";import{n as g,t as _}from"./ui.module-CHEKb9Cb.js";import{c as v,l as y,o as b,r as x,u as S}from"./Input-g2XrzU2e.js";import{a as C,i as w,n as ee,r as te,t as T}from"./date-segments-D3HouZ37.js";import{a as E,c as ne,d as re,i as D,l as ie,n as ae,o as O,r as oe,s as k,t as A,u as j}from"./TimePanel-CZ2CNXd5.js";var M,se;function N(){return(N=e((()=>{o(),M=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]],se=c(`clock-3`,M)})))()}function P(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function ce({value:e,onChange:t,onClearError:n,disabled:r,minDate:i,maxDate:a,mode:o=`date-time`}){let s=(0,F.useMemo)(()=>E(o),[o]),c=(0,F.useMemo)(()=>w(s),[s]),l=(0,F.useMemo)(()=>P(c),[c]),u=(0,F.useMemo)(()=>ee(e??null,c),[c,e]),d=e?.getTime()??null,[f,p]=(0,F.useState)(null),m=(f?.sourceValueTime===d&&f.sourceMode===o?f.values:null)??u,h=(0,F.useRef)(new Map),g=(0,F.useRef)(0),_=(0,F.useCallback)(e=>{p(e===null?null:{sourceValueTime:d,sourceMode:o,values:e})},[d,o]),v=(0,F.useCallback)(n=>{if(T(c,n))return t(null),null;let r=C(c,n,{defaultDate:o===`time`?j(e,`time`)??D():void 0});return!r||!k(r,i,a,o)?null:(t(r),r)},[a,i,o,t,c,e]),y=(0,F.useCallback)((e,t=!0)=>{let n=h.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,F.useCallback)(e=>{let t=l.indexOf(e);return t<l.length-1?l[t+1]:null},[l]),x=(0,F.useCallback)(e=>{let t=l.indexOf(e);return t>0?l[t-1]:null},[l]),S=(0,F.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:c,segmentValues:m,registerRef:(0,F.useCallback)(e=>t=>{if(t){h.current.set(e,t);return}h.current.delete(e)},[]),handleInput:(0,F.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(m);if(o.set(e,a),_(o),n?.(),a.length===i.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(o)},[r,y,b,n,m,c,_,v]),handleKeyDown:(0,F.useCallback)(e=>t=>{if(r)return;let n=c[e];if(n.kind!==`editable`)return;let i=m.get(e)??``,a=t.currentTarget;switch(t.key){case`ArrowRight`:if(a.selectionStart===i.length||i===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(a.selectionStart===0||i===``){t.preventDefault();let n=x(e);n!==null&&y(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(m);o.set(e,S(String(r),n)),_(o),v(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(m);o.set(e,S(String(r),n)),_(o),v(o),requestAnimationFrame(()=>a.select());break}case`Backspace`:if(i===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(m);n.set(e,``),_(n),v(n);break}}},[r,y,b,x,S,m,c,_,v]),handleFocus:(0,F.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,F.useCallback)(()=>{clearTimeout(g.current)},[]),handleContainerBlur:(0,F.useCallback)(()=>{let n=new Map(m);g.current=window.setTimeout(()=>{if(T(c,n)){t(null),_(n);return}let r=C(c,n,{defaultDate:o===`time`?j(e,`time`)??D():void 0});if(!r||!k(r,i,a,o)){_(null);return}_(n)},0)},[a,i,o,t,m,c,_,e]),focusFirstEmpty:(0,F.useCallback)(()=>{let e=l.find(e=>!(m.get(e)??``))??l[l.length-1];e!==void 0&&y(e)},[l,y,m])}}var F;function I(){return(I=e((()=>{F=t(),te(),O()})))()}var L,R,z,B,V,H,U,W,G,K,q;function J(){return(J=e((()=>{L=`AvG-mf`,R=`ig7KtT`,z=`YQHPZa`,B=`-RZe-i`,V=`Ox0SRE`,H=`gfaRup`,U=`_59kEea`,W=`Jjdu1Q`,G=`Q8Y2xS`,K=`XxZYTW`,q={segmentInput:L,separator:R,popoverContent:z,bottom:B,right:V,calendarPane:H,timePanelPane:U,timeOnlyPopoverContent:W,timePanelPaneBottom:G,timePanelPaneRight:K}})))()}function Y({value:e,onChange:t,label:r,description:i,placeholder:o,disabled:s,size:c,error:u,onClearError:p,minDate:m,maxDate:_,timePanelPlacement:v=`right`,mode:y=`date-time`}){let C=(0,X.useMemo)(()=>j(e,y),[y,e]),w=(0,X.useMemo)(()=>d(new Date),[]),[ee,te]=(0,X.useState)(!1),[T,E]=(0,X.useState)(C??null),[D,ae]=(0,X.useState)(`day`),[O,M]=(0,X.useState)(()=>re(C,w,y)),{controlId:N,labelId:P,descriptionId:F,errorId:I,describedBy:L}=S({hasLabel:r!=null,hasDescription:!!i,hasError:!!u}),{segments:R,segmentValues:z,registerRef:B,handleInput:V,handleKeyDown:H,handleFocus:U,handleContainerFocus:W,handleContainerBlur:G,focusFirstEmpty:K}=ce({value:C,onChange:t,onClearError:p,disabled:s,minDate:m,maxDate:_,mode:y}),J=e=>{if(y===`time`||f(e)||s)return;let t=ne(e,T??C??O),{hours:n,minutes:r}=oe(e,t.getHours(),t.getMinutes(),m,_,y),i=ie(e,n,r);k(i,m,_,y)&&(p?.(),E(i),M(i))},Y=(e,t)=>{if(s)return;let n=T??C??O,r=oe(n,e,t,m,_,y),i=ie(n,r.hours,r.minutes,y);k(i,m,_,y)&&(p?.(),E(i),M(i))},Q=e=>{e&&(E(C??null),M(re(C,w,y))),te(e)},le=()=>{(C?.getTime()??null)!==(T?.getTime()??null)&&t(T)},ue=v===`right`?q.timePanelPaneRight:q.timePanelPaneBottom,de=y===`time`?`Открыть выбор времени`:`Открыть календарь даты и времени`,fe=o??(y===`time`?`чч:мм`:`дд.мм.гггг чч:мм`),$=T??C??O;return(0,Z.jsxs)(h,{open:ee,onOpenChange:Q,children:[(0,Z.jsx)(b,{label:r,description:i,disabled:s,size:c,error:u,controlId:N,labelId:P,descriptionId:F,errorId:I,children:(0,Z.jsx)(x,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,Z.jsx)(h.Trigger,{children:(0,Z.jsx)(`div`,{className:g.uiToggleButtonContainer,children:(0,Z.jsx)(`button`,{type:`button`,disabled:s,"aria-label":de,className:g.uiToggleButton,children:y===`time`?(0,Z.jsx)(se,{}):(0,Z.jsx)(n,{})})})}),children:({controlClassName:e})=>(0,Z.jsx)(`div`,{id:N,className:l(g.uiInputControlFake,e),"data-disabled":s||void 0,"data-invalid":u?``:void 0,role:`group`,"aria-invalid":!!u||void 0,"aria-placeholder":fe,"aria-labelledby":P,"aria-describedby":L,onFocus:W,onBlur:G,onClick:e=>{e.target===e.currentTarget&&K()},children:R.map((e,t)=>e.kind===`literal`?(0,Z.jsx)(`span`,{className:q.separator,"data-disabled":s||void 0,children:e.text},t):(0,Z.jsx)(`input`,{ref:B(t),type:`text`,inputMode:`numeric`,className:q.segmentInput,style:{width:`${e.length+.5}ch`},value:z.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:s,"aria-label":e.ariaLabel,autoComplete:`off`,onChange:V(t),onKeyDown:H(t),onFocus:U()},t))})})}),(0,Z.jsx)(h.Content,{background:`primary`,onClose:le,children:y===`time`?(0,Z.jsx)(`div`,{className:q.timeOnlyPopoverContent,children:(0,Z.jsx)(A,{value:$,disabled:s,minDate:m,maxDate:_,mode:y,onChange:Y})}):(0,Z.jsxs)(`div`,{className:l(q.popoverContent,q[v]),children:[(0,Z.jsx)(`div`,{className:q.calendarPane,children:(0,Z.jsx)(a,{view:D,datePickerLevel:`day`,selectionMode:`day`,onViewChange:ae,value:$,onChange:J,minDate:m,maxDate:_,currentDate:O,onCurrentDateChange:M})}),(0,Z.jsx)(`div`,{className:l(q.timePanelPane,ue),children:(0,Z.jsx)(A,{value:$,disabled:s,minDate:m,maxDate:_,mode:y,onChange:Y})})]})})]})}var X,Z;function Q(){return(Q=e((()=>{X=t(),p(),u(),r(),N(),i(),v(),y(),m(),_(),O(),I(),J(),ae(),Z=s(),Y.__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:``}}}})))()}export{Q as n,Y as t};
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{c as n,l as r,n as i,t as a}from"./CalendarView-DxkdSsAx.js";import{i as o,n as s,r as c}from"./iframe-CZ0KI0zu.js";import{a as l,i as u}from"./utils-DUM89eIj.js";import{C as d,b as f,y as p}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as m,t as h}from"./Popover-gg-G1aUp.js";import{n as g,t as _}from"./ui.module-DjxH5szp.js";import{c as v,l as y,o as b,r as x,u as S}from"./Input-Fk3IRww_.js";import{a as C,i as w,n as ee,r as te,t as T}from"./date-segments-D3HouZ37.js";import{a as E,c as ne,d as re,i as D,l as ie,n as ae,o as O,r as oe,s as k,t as A,u as j}from"./TimePanel-CmNDtcUu.js";var M,se;function N(){return(N=e((()=>{o(),M=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]],se=c(`clock-3`,M)})))()}function P(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function ce({value:e,onChange:t,onClearError:n,disabled:r,minDate:i,maxDate:a,mode:o=`date-time`}){let s=(0,F.useMemo)(()=>E(o),[o]),c=(0,F.useMemo)(()=>w(s),[s]),l=(0,F.useMemo)(()=>P(c),[c]),u=(0,F.useMemo)(()=>ee(e??null,c),[c,e]),d=e?.getTime()??null,[f,p]=(0,F.useState)(null),m=(f?.sourceValueTime===d&&f.sourceMode===o?f.values:null)??u,h=(0,F.useRef)(new Map),g=(0,F.useRef)(0),_=(0,F.useCallback)(e=>{p(e===null?null:{sourceValueTime:d,sourceMode:o,values:e})},[d,o]),v=(0,F.useCallback)(n=>{if(T(c,n))return t(null),null;let r=C(c,n,{defaultDate:o===`time`?j(e,`time`)??D():void 0});return!r||!k(r,i,a,o)?null:(t(r),r)},[a,i,o,t,c,e]),y=(0,F.useCallback)((e,t=!0)=>{let n=h.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,F.useCallback)(e=>{let t=l.indexOf(e);return t<l.length-1?l[t+1]:null},[l]),x=(0,F.useCallback)(e=>{let t=l.indexOf(e);return t>0?l[t-1]:null},[l]),S=(0,F.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:c,segmentValues:m,registerRef:(0,F.useCallback)(e=>t=>{if(t){h.current.set(e,t);return}h.current.delete(e)},[]),handleInput:(0,F.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(m);if(o.set(e,a),_(o),n?.(),a.length===i.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(o)},[r,y,b,n,m,c,_,v]),handleKeyDown:(0,F.useCallback)(e=>t=>{if(r)return;let n=c[e];if(n.kind!==`editable`)return;let i=m.get(e)??``,a=t.currentTarget;switch(t.key){case`ArrowRight`:if(a.selectionStart===i.length||i===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(a.selectionStart===0||i===``){t.preventDefault();let n=x(e);n!==null&&y(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(m);o.set(e,S(String(r),n)),_(o),v(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(m);o.set(e,S(String(r),n)),_(o),v(o),requestAnimationFrame(()=>a.select());break}case`Backspace`:if(i===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(m);n.set(e,``),_(n),v(n);break}}},[r,y,b,x,S,m,c,_,v]),handleFocus:(0,F.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,F.useCallback)(()=>{clearTimeout(g.current)},[]),handleContainerBlur:(0,F.useCallback)(()=>{let n=new Map(m);g.current=window.setTimeout(()=>{if(T(c,n)){t(null),_(n);return}let r=C(c,n,{defaultDate:o===`time`?j(e,`time`)??D():void 0});if(!r||!k(r,i,a,o)){_(null);return}_(n)},0)},[a,i,o,t,m,c,_,e]),focusFirstEmpty:(0,F.useCallback)(()=>{let e=l.find(e=>!(m.get(e)??``))??l[l.length-1];e!==void 0&&y(e)},[l,y,m])}}var F;function I(){return(I=e((()=>{F=t(),te(),O()})))()}var L,R,z,B,V,H,U,W,G,K,q;function J(){return(J=e((()=>{L=`AvG-mf`,R=`ig7KtT`,z=`YQHPZa`,B=`-RZe-i`,V=`Ox0SRE`,H=`gfaRup`,U=`_59kEea`,W=`Jjdu1Q`,G=`Q8Y2xS`,K=`XxZYTW`,q={segmentInput:L,separator:R,popoverContent:z,bottom:B,right:V,calendarPane:H,timePanelPane:U,timeOnlyPopoverContent:W,timePanelPaneBottom:G,timePanelPaneRight:K}})))()}function Y({value:e,onChange:t,label:r,description:i,placeholder:o,disabled:s,size:c,error:u,onClearError:p,minDate:m,maxDate:_,timePanelPlacement:v=`right`,mode:y=`date-time`}){let C=(0,X.useMemo)(()=>j(e,y),[y,e]),w=(0,X.useMemo)(()=>d(new Date),[]),[ee,te]=(0,X.useState)(!1),[T,E]=(0,X.useState)(C??null),[D,ae]=(0,X.useState)(`day`),[O,M]=(0,X.useState)(()=>re(C,w,y)),{controlId:N,labelId:P,descriptionId:F,errorId:I,describedBy:L}=S({hasLabel:r!=null,hasDescription:!!i,hasError:!!u}),{segments:R,segmentValues:z,registerRef:B,handleInput:V,handleKeyDown:H,handleFocus:U,handleContainerFocus:W,handleContainerBlur:G,focusFirstEmpty:K}=ce({value:C,onChange:t,onClearError:p,disabled:s,minDate:m,maxDate:_,mode:y}),J=e=>{if(y===`time`||f(e)||s)return;let t=ne(e,T??C??O),{hours:n,minutes:r}=oe(e,t.getHours(),t.getMinutes(),m,_,y),i=ie(e,n,r);k(i,m,_,y)&&(p?.(),E(i),M(i))},Y=(e,t)=>{if(s)return;let n=T??C??O,r=oe(n,e,t,m,_,y),i=ie(n,r.hours,r.minutes,y);k(i,m,_,y)&&(p?.(),E(i),M(i))},Q=e=>{e&&(E(C??null),M(re(C,w,y))),te(e)},le=()=>{(C?.getTime()??null)!==(T?.getTime()??null)&&t(T)},ue=v===`right`?q.timePanelPaneRight:q.timePanelPaneBottom,de=y===`time`?`Открыть выбор времени`:`Открыть календарь даты и времени`,fe=o??(y===`time`?`чч:мм`:`дд.мм.гггг чч:мм`),$=T??C??O;return(0,Z.jsxs)(h,{open:ee,onOpenChange:Q,children:[(0,Z.jsx)(b,{label:r,description:i,disabled:s,size:c,error:u,controlId:N,labelId:P,descriptionId:F,errorId:I,children:(0,Z.jsx)(x,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,Z.jsx)(h.Trigger,{children:(0,Z.jsx)(`div`,{className:g.uiToggleButtonContainer,children:(0,Z.jsx)(`button`,{type:`button`,disabled:s,"aria-label":de,className:g.uiToggleButton,children:y===`time`?(0,Z.jsx)(se,{}):(0,Z.jsx)(n,{})})})}),children:({controlClassName:e})=>(0,Z.jsx)(`div`,{id:N,className:l(g.uiInputControlFake,e),"data-disabled":s||void 0,"data-invalid":u?``:void 0,role:`group`,"aria-invalid":!!u||void 0,"aria-placeholder":fe,"aria-labelledby":P,"aria-describedby":L,onFocus:W,onBlur:G,onClick:e=>{e.target===e.currentTarget&&K()},children:R.map((e,t)=>e.kind===`literal`?(0,Z.jsx)(`span`,{className:q.separator,"data-disabled":s||void 0,children:e.text},t):(0,Z.jsx)(`input`,{ref:B(t),type:`text`,inputMode:`numeric`,className:q.segmentInput,style:{width:`${e.length+.5}ch`},value:z.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:s,"aria-label":e.ariaLabel,autoComplete:`off`,onChange:V(t),onKeyDown:H(t),onFocus:U()},t))})})}),(0,Z.jsx)(h.Content,{background:`primary`,onClose:le,children:y===`time`?(0,Z.jsx)(`div`,{className:q.timeOnlyPopoverContent,children:(0,Z.jsx)(A,{value:$,disabled:s,minDate:m,maxDate:_,mode:y,onChange:Y})}):(0,Z.jsxs)(`div`,{className:l(q.popoverContent,q[v]),children:[(0,Z.jsx)(`div`,{className:q.calendarPane,children:(0,Z.jsx)(a,{view:D,datePickerLevel:`day`,selectionMode:`day`,onViewChange:ae,value:$,onChange:J,minDate:m,maxDate:_,currentDate:O,onCurrentDateChange:M})}),(0,Z.jsx)(`div`,{className:l(q.timePanelPane,ue),children:(0,Z.jsx)(A,{value:$,disabled:s,minDate:m,maxDate:_,mode:y,onChange:Y})})]})})]})}var X,Z;function Q(){return(Q=e((()=>{X=t(),p(),u(),r(),N(),i(),v(),y(),m(),_(),O(),I(),J(),ae(),Z=s(),Y.__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:``}}}})))()}export{Q as n,Y as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CYobheWD.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DQl3eTFV.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./SingleDateTimeInput.stories-C_KdNabz.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:_,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-LF4-T76K.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./SingleDateTimeInput.stories-BY6gytNo.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:_,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`SingleDateTimeInput`}),`
3
3
  `,(0,S.jsx)(o,{children:`Строгий сегментный ввод даты-времени и времени с popover picker`}),`
4
4
  `,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`SingleDateTimeInput`}),` объединяет два сценария:`]}),`
@@ -0,0 +1,48 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./SingleDateTimeInput-Bu-VV-X4.js";import{n as i}from"./iframe-CZ0KI0zu.js";import{_ as a,b as o,h as s,y as c}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{n as l,t as u}from"./createControlledStoryRender-DHsyXc1B.js";var d=t({Default:()=>g,Empty:()=>v,TimeOnly:()=>_,WithLimits:()=>y,WithRightPanel:()=>b,__namedExportsOrder:()=>x,default:()=>h});function f(e){return u((t,n)=>{let i=t.value??null;return(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r,{...t,value:i,onChange:e=>{t.onChange(e),n({value:e})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}}),e===`date-time`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`p`,{children:[`Вывод значения через `,(0,p.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsDateTime(value)`}),`:`]}),(0,p.jsx)(`pre`,{children:c(i)}),(0,p.jsxs)(`p`,{children:[`Вывод значения через `,(0,p.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsODataDatetime(value)`}),`:`]}),(0,p.jsx)(`pre`,{children:s(i)})]}),e===`time`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`p`,{children:[`Вывод значения через `,(0,p.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsTime(value)`}),`:`]}),(0,p.jsx)(`pre`,{children:a(i)}),(0,p.jsx)(`p`,{children:`Техническая дата значения всегда фиксируется как 01.01.1970.`}),(0,p.jsx)(`pre`,{children:i?i.toISOString():``})]})]})})}var p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{o(),l(),n(),p=i(),{fn:m}=__STORYBOOK_MODULE_TEST__,h={title:`Shared/UI/SingleDateTimeInput`,component:r,args:{value:null,onChange:m()},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`]}}},g={render:f(`date-time`),args:{label:`Дата и время`,description:`Фиксированный формат: дд.мм.гггг чч:мм`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`,value:new Date(2026,2,5,9,15,0,0)}},_={render:f(`time`),args:{label:`Время`,description:`Режим только времени с маской чч:мм и wheel-picker без календаря.`,placeholder:`чч:мм`,mode:`time`,value:new Date(1970,0,1,9,15,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},v={render:f(`none`),args:{label:`Пустое значение`,description:`Поле можно заполнить вручную или через popover picker.`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`,value:null}},y={render:f(`none`),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`,value:new Date(2026,2,10,12,30,0,0)}},b={render:f(`none`),args:{label:`Дата и время`,description:`Wheel-панель времени расположена справа от календаря.`,timePanelPlacement:`right`,value:new Date(2026,2,10,12,30,0,0)}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
2
+ render: createSingleDateTimeInputStoryRender("date-time"),
3
+ args: {
4
+ label: "Дата и время",
5
+ description: "Фиксированный формат: дд.мм.гггг чч:мм",
6
+ placeholder: "дд.мм.гггг чч:мм",
7
+ timePanelPlacement: "bottom",
8
+ value: new Date(2026, 2, 5, 9, 15, 0, 0)
9
+ }
10
+ }`,...g.parameters?.docs?.source},description:{story:`Демонстрирует основной сценарий выбора даты и времени с точностью до минуты.`,...g.parameters?.docs?.description}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
11
+ render: createSingleDateTimeInputStoryRender("time"),
12
+ args: {
13
+ label: "Время",
14
+ description: "Режим только времени с маской чч:мм и wheel-picker без календаря.",
15
+ placeholder: "чч:мм",
16
+ mode: "time",
17
+ value: new Date(1970, 0, 1, 9, 15, 0, 0),
18
+ minDate: new Date(2026, 2, 10, 9, 15, 0, 0),
19
+ maxDate: new Date(2026, 2, 10, 18, 30, 0, 0)
20
+ }
21
+ }`,..._.parameters?.docs?.source},description:{story:"Демонстрирует режим выбора только времени на технической дате `1970-01-01`.",..._.parameters?.docs?.description}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
22
+ render: createSingleDateTimeInputStoryRender("none"),
23
+ args: {
24
+ label: "Пустое значение",
25
+ description: "Поле можно заполнить вручную или через popover picker.",
26
+ placeholder: "дд.мм.гггг чч:мм",
27
+ timePanelPlacement: "bottom",
28
+ value: null
29
+ }
30
+ }`,...v.parameters?.docs?.source},description:{story:`Показывает пустое контролируемое значение.`,...v.parameters?.docs?.description}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
31
+ render: createSingleDateTimeInputStoryRender("none"),
32
+ args: {
33
+ label: "Дата отгрузки",
34
+ description: "Доступен только интервал с 10 по 12 марта 2026 года.",
35
+ minDate: new Date(2026, 2, 10, 9, 0, 0, 0),
36
+ maxDate: new Date(2026, 2, 12, 18, 30, 0, 0),
37
+ timePanelPlacement: "bottom",
38
+ value: new Date(2026, 2, 10, 12, 30, 0, 0)
39
+ }
40
+ }`,...y.parameters?.docs?.source},description:{story:`Демонстрирует ограничение диапазона и синхронизацию календаря со временем.`,...y.parameters?.docs?.description}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
41
+ render: createSingleDateTimeInputStoryRender("none"),
42
+ args: {
43
+ label: "Дата и время",
44
+ description: "Wheel-панель времени расположена справа от календаря.",
45
+ timePanelPlacement: "right",
46
+ value: new Date(2026, 2, 10, 12, 30, 0, 0)
47
+ }
48
+ }`,...b.parameters?.docs?.source},description:{story:`Демонстрирует размещение wheel-панели справа от календаря.`,...b.parameters?.docs?.description}}},x=[`Default`,`TimeOnly`,`Empty`,`WithLimits`,`WithRightPanel`]})))()}export{y as a,_ as i,v as n,b as o,d as r,S as s,g as t};
@@ -1 +1 @@
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-CYobheWD.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./FloatingPopover-DPYP9R5G.js";import{c,l as ee,o as te,u as ne}from"./Input-g2XrzU2e.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 D(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 O(e){if(e)return!Object.hasOwn(e,`outputValue`)||e.outputValue===void 0?e.value:e.outputValue}function k(e,t,n){let r=t.filter(t=>O(t)===e);if(r.length)return e===null?n===0?r[0]:r[r.length-1]:r[0]}function A(e,t,n){let r=k(e,t,n);if(r)return r;let i,a=1/0;for(let n of t){let t=O(n);if(typeof t!=`number`||!Number.isFinite(t))continue;let r=Math.abs(e-t);r<a&&(i=n,a=r)}return i}function j(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=A(s,o,n),r=O(e);return r===void 0?e?.value??t:r}return h(s,i,a,r.step)}function M(e,t){let{min:n,max:r}=d(t.min,t.max);if(!e)return[null,null];let i=j(e[0],n,0,{...t,min:n,max:r}),a=j(e[1],r,1,{...t,min:n,max:r});return i!==null&&a!==null&&i>a?[a,i]:[i,a]}function N(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?(k(e,o,n)??(typeof e==`number`?A(e,o,n):void 0))?.value??t:h(e,i,a,r.step)}function oe(e,t){let{min:n,max:r}=d(t.min,t.max),i=M(e,{...t,min:n,max:r}),a=N(i[0],n,0,{...t,min:n,max:r}),o=N(i[1],r,1,{...t,min:n,max:r});return a<=o?[a,o]:[o,a]}function se(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=O(t);return n===void 0?t?.value??e:n}return h(e,n,r,t.step)}function ce(e,t){let[n,r]=t;return Math.abs(e-n)<=Math.abs(e-r)?0:1}function le(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 P(){return(P=e((()=>{})))()}var ue,F,I,L,R,z,B,V,H,U,W,G,K,q,J,de,fe,Y;function X(){return(X=e((()=>{ue=`fA7zne`,F=`TMbaqW`,I=`_77qn1L`,L=`cxJQqh`,R=`-X13t0`,z=`gg-atO`,B=`bTLJZl`,V=`vDAmRy`,H=`iNrV0y`,U=`PpaxP2`,W=`_9K78Fi`,G=`vzEDBe`,K=`_0OWJh0`,q=`Mk4xi2`,J=`SL0IDQ`,de=`mdezg5`,fe=`a4R18g`,Y={slider:ue,sliderCompact:F,trackShell:I,track:L,tooltipReference:R,rail:z,fill:B,thumb:V,marks:H,mark:U,compactMark:W,markDot:G,markLabel:K,popoverContent:q,rangeInputControl:J,rangeSegmentInput:de,rangeSeparator:fe}})))()}function pe(e){return e===`ArrowLeft`||e===`ArrowDown`?-1:e===`ArrowRight`||e===`ArrowUp`?1:e===`PageDown`?-10:e===`PageUp`?10:null}function me(e,t){return!!e&&e[0]===t[0]&&e[1]===t[1]}function he(e,t){return e===null?t===0?`-∞`:`∞`:String(e)}function ge(e,t){return t.find(t=>t.value===e)?.label??String(e)}function _e(e){return typeof e==`string`||typeof e==`number`?(0,$.jsx)(`span`,{className:`textNoWrap`,children:e}):e}function ve({position:e,children:t}){return(0,$.jsx)(`span`,{"data-slot":`slider-tooltip-reference`,className:Y.tooltipReference,style:{left:`${e}%`},children:t})}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:D(e.value,y),S=b?M(e.value,y):void 0,E=b?oe(e.value,y):void 0,O=b?E:[x],k=le(b?E:x,y),A=(0,Q.useRef)(null),j=(0,Q.useRef)([]),N=(0,Q.useRef)(null),P=(0,Q.useRef)(null),[ue,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`||me(e.value,t)||(e.onChange(t),u?.())},U=(t,n)=>{if(!m){if(e.mode===`range`){let[e,r]=E,[i,a]=S,o=M(n===0?[se(Math.min(t,r),y),a]:[i,se(Math.max(t,e),y)],y);H(o);return}V(D(t,y))}},W=e=>{let t=A.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=>{P.current!==null&&e&&e.pointerId!==P.current||(P.current=null,N.current=null,F(null))},t=e=>{N.current!==null&&(P.current===null||e.pointerId===P.current)&&G.current(K.current(e.clientX),N.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)=>{P.current=e,N.current=t,F(t),j.current[t]?.focus()},J=e=>{if(m)return;e.preventDefault();let t=W(e.clientX),n=b?ce(t,E):0;U(t,n),q(e.pointerId,n)},de=e=>t=>{m||(t.preventDefault(),t.stopPropagation(),q(t.pointerId,e))},fe=e=>t=>{if(m)return;let n=b&&e===1?E[0]:g,r=b&&e===0?E[1]:_,i=pe(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=O[e],o=ie(a,i,y,n,r);U(o,e)},X=e=>{if(m)return;let t=b?ce(e,E):0;U(e,t),j.current[t]?.focus()},Z=(e,t)=>{if(b){let n=S[t];return v.find(t=>t.value===e)?.label??he(n,t)}return ge(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:A,"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:`${k.startPercent}%`,width:`${k.endPercent-k.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)(ve,{position:t,children:(0,$.jsx)(s,{tooltip:!0,placement:`top`,content:_e(e.label),children:(0,$.jsx)(`button`,{type:`button`,"data-slot":`mark`,"data-active":n?``:void 0,className:Y.compactMark,"aria-label":e.ariaLabel,disabled:m,onClick:()=>X(e.value),children:(0,$.jsx)(`span`,{className:Y.markDot,"aria-hidden":`true`})})})},e.value)}),O.map((e,t)=>{let n=Z(e,t);return(0,$.jsx)(ve,{position:T(e,y),children:(0,$.jsx)(s,{tooltip:!0,placement:`top`,content:_e(n),openDelay:0,closeDelay:100,positionUpdateKey:e,children:(0,$.jsx)(`button`,{ref:e=>{j.current[t]=e},type:`button`,role:`slider`,"data-slot":`thumb`,"data-thumb-index":t,"data-dragging":ue===t?``:void 0,className:Y.thumb,disabled:m,"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:fe(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:()=>X(e.value),children:[(0,$.jsx)(`span`,{className:Y.markDot,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:Y.markLabel,children:e.label})]},e.value)})})]})})}function ye(e){return(0,$.jsx)(Z,{...e,mode:`single`,marksDisplay:`compact`})}function be(e){return(0,$.jsx)(Z,{...e,mode:`range`,marksDisplay:`compact`})}var Q,$;function xe(){return(xe=e((()=>{Q=t(n(),1),a(),c(),ee(),o(),P(),X(),$=r(),Z.__docgenInfo={description:``,methods:[],displayName:`SliderBase`},ye.__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`]},be.__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,P as c,C as d,S as f,xe as i,M as l,Z as n,X as o,d as p,be as r,O as s,ye as t,D as u};
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-CZ0KI0zu.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./FloatingPopover-Bj3n1Cbm.js";import{c,l as ee,o as te,u as ne}from"./Input-Fk3IRww_.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 D(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 O(e){if(e)return!Object.hasOwn(e,`outputValue`)||e.outputValue===void 0?e.value:e.outputValue}function k(e,t,n){let r=t.filter(t=>O(t)===e);if(r.length)return e===null?n===0?r[0]:r[r.length-1]:r[0]}function A(e,t,n){let r=k(e,t,n);if(r)return r;let i,a=1/0;for(let n of t){let t=O(n);if(typeof t!=`number`||!Number.isFinite(t))continue;let r=Math.abs(e-t);r<a&&(i=n,a=r)}return i}function j(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=A(s,o,n),r=O(e);return r===void 0?e?.value??t:r}return h(s,i,a,r.step)}function M(e,t){let{min:n,max:r}=d(t.min,t.max);if(!e)return[null,null];let i=j(e[0],n,0,{...t,min:n,max:r}),a=j(e[1],r,1,{...t,min:n,max:r});return i!==null&&a!==null&&i>a?[a,i]:[i,a]}function N(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?(k(e,o,n)??(typeof e==`number`?A(e,o,n):void 0))?.value??t:h(e,i,a,r.step)}function oe(e,t){let{min:n,max:r}=d(t.min,t.max),i=M(e,{...t,min:n,max:r}),a=N(i[0],n,0,{...t,min:n,max:r}),o=N(i[1],r,1,{...t,min:n,max:r});return a<=o?[a,o]:[o,a]}function se(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=O(t);return n===void 0?t?.value??e:n}return h(e,n,r,t.step)}function ce(e,t){let[n,r]=t;return Math.abs(e-n)<=Math.abs(e-r)?0:1}function le(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 P(){return(P=e((()=>{})))()}var ue,F,I,L,R,z,B,V,H,U,W,G,K,q,J,de,fe,Y;function X(){return(X=e((()=>{ue=`fA7zne`,F=`gg-atO`,I=`bTLJZl`,L=`vDAmRy`,R=`PpaxP2`,z=`_9K78Fi`,B=`TMbaqW`,V=`_77qn1L`,H=`cxJQqh`,U=`-X13t0`,W=`iNrV0y`,G=`vzEDBe`,K=`_0OWJh0`,q=`Mk4xi2`,J=`SL0IDQ`,de=`mdezg5`,fe=`a4R18g`,Y={slider:ue,rail:F,fill:I,thumb:L,mark:R,compactMark:z,sliderCompact:B,trackShell:V,track:H,tooltipReference:U,marks:W,markDot:G,markLabel:K,popoverContent:q,rangeInputControl:J,rangeSegmentInput:de,rangeSeparator:fe}})))()}function pe(e){return e===`ArrowLeft`||e===`ArrowDown`?-1:e===`ArrowRight`||e===`ArrowUp`?1:e===`PageDown`?-10:e===`PageUp`?10:null}function me(e,t){return!!e&&e[0]===t[0]&&e[1]===t[1]}function he(e,t){return e===null?t===0?`-∞`:`∞`:String(e)}function ge(e,t){return t.find(t=>t.value===e)?.label??String(e)}function _e(e){return typeof e==`string`||typeof e==`number`?(0,$.jsx)(`span`,{className:`textNoWrap`,children:e}):e}function ve({position:e,children:t}){return(0,$.jsx)(`span`,{"data-slot":`slider-tooltip-reference`,className:Y.tooltipReference,style:{left:`${e}%`},children:t})}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:D(e.value,y),S=b?M(e.value,y):void 0,E=b?oe(e.value,y):void 0,O=b?E:[x],k=le(b?E:x,y),A=(0,Q.useRef)(null),j=(0,Q.useRef)([]),N=(0,Q.useRef)(null),P=(0,Q.useRef)(null),[ue,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`||me(e.value,t)||(e.onChange(t),u?.())},U=(t,n)=>{if(!m){if(e.mode===`range`){let[e,r]=E,[i,a]=S,o=M(n===0?[se(Math.min(t,r),y),a]:[i,se(Math.max(t,e),y)],y);H(o);return}V(D(t,y))}},W=e=>{let t=A.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=>{P.current!==null&&e&&e.pointerId!==P.current||(P.current=null,N.current=null,F(null))},t=e=>{N.current!==null&&(P.current===null||e.pointerId===P.current)&&G.current(K.current(e.clientX),N.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)=>{P.current=e,N.current=t,F(t),j.current[t]?.focus()},J=e=>{if(m)return;e.preventDefault();let t=W(e.clientX),n=b?ce(t,E):0;U(t,n),q(e.pointerId,n)},de=e=>t=>{m||(t.preventDefault(),t.stopPropagation(),q(t.pointerId,e))},fe=e=>t=>{if(m)return;let n=b&&e===1?E[0]:g,r=b&&e===0?E[1]:_,i=pe(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=O[e],o=ie(a,i,y,n,r);U(o,e)},X=e=>{if(m)return;let t=b?ce(e,E):0;U(e,t),j.current[t]?.focus()},Z=(e,t)=>{if(b){let n=S[t];return v.find(t=>t.value===e)?.label??he(n,t)}return ge(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),"data-disabled":m||void 0,children:[(0,$.jsx)(`div`,{className:Y.trackShell,children:(0,$.jsxs)(`div`,{ref:A,"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:`${k.startPercent}%`,width:`${k.endPercent-k.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)(ve,{position:t,children:(0,$.jsx)(s,{tooltip:!0,placement:`top`,content:_e(e.label),children:(0,$.jsx)(`button`,{type:`button`,"data-slot":`mark`,"data-active":n?``:void 0,className:Y.compactMark,"aria-label":e.ariaLabel,disabled:m,onClick:()=>X(e.value),children:(0,$.jsx)(`span`,{className:Y.markDot,"aria-hidden":`true`})})})},e.value)}),O.map((e,t)=>{let n=Z(e,t);return(0,$.jsx)(ve,{position:T(e,y),children:(0,$.jsx)(s,{tooltip:!0,placement:`top`,content:_e(n),openDelay:0,closeDelay:100,positionUpdateKey:e,children:(0,$.jsx)(`button`,{ref:e=>{j.current[t]=e},type:`button`,role:`slider`,"data-slot":`thumb`,"data-thumb-index":t,"data-dragging":ue===t?``:void 0,className:Y.thumb,disabled:m,"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:fe(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:()=>X(e.value),children:[(0,$.jsx)(`span`,{className:Y.markDot,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:Y.markLabel,children:e.label})]},e.value)})})]})})}function ye(e){return(0,$.jsx)(Z,{...e,mode:`single`,marksDisplay:`compact`})}function be(e){return(0,$.jsx)(Z,{...e,mode:`range`,marksDisplay:`compact`})}var Q,$;function xe(){return(xe=e((()=>{Q=t(n(),1),a(),c(),ee(),o(),P(),X(),$=r(),Z.__docgenInfo={description:``,methods:[],displayName:`SliderBase`},ye.__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`]},be.__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,P as c,C as d,S as f,xe as i,M as l,Z as n,X as o,d as p,be as r,O as s,ye as t,D as u};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CYobheWD.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DQl3eTFV.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./Slider.stories-Bbgt-EWg.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-LF4-T76K.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./Slider.stories-C9CiqYKL.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,T.jsx)(u,{children:`Slider`}),`
3
3
  `,(0,T.jsx)(o,{children:`Компактные single и range слайдеры с marks, tooltip и открытыми границами`}),`
4
4
  `,(0,T.jsxs)(t.p,{children:[(0,T.jsx)(t.code,{children:`Slider`}),` и `,(0,T.jsx)(t.code,{children:`SliderRange`}),` — отдельные публичные компоненты. Оба используют общую числовую шкалу, но не смешивают single/range через prop.`]}),`
@@ -0,0 +1 @@
1
+ .fA7zne{gap:var(--space-sm);flex-direction:column;display:flex}.fA7zne[data-disabled] .gg-atO{color:var(--content-2);background-color:var(--surface-2);border-color:var(--overlay-backdrop)}.fA7zne[data-disabled] .bTLJZl{opacity:var(--disabled-opacity)}.fA7zne[data-disabled] .vDAmRy{border-color:var(--overlay-backdrop);background-color:var(--surface-2);color:var(--content-2);box-shadow:none}.fA7zne[data-disabled] .PpaxP2,.fA7zne[data-disabled] ._9K78Fi{color:var(--overlay-backdrop)}.TMbaqW{gap:0}._77qn1L{padding-inline:calc((var(--control-height) - var(--space-xs)) / 2);position:relative}.cxJQqh{height:var(--control-height);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.-X13t0{top:calc(50% - (var(--control-height) - var(--space-xs)) / 2);width:0;height:0;position:absolute;left:0}.gg-atO,.bTLJZl{height:var(--space-sm);border-radius:999px;position:absolute;top:50%;transform:translateY(-50%)}.gg-atO{background-color:var(--surface-2);border:var(--border);left:0;right:0}.bTLJZl{background-color:var(--status-info-fill)}.vDAmRy{top:calc((var(--control-height) - var(--space-xs)) / 2);width:calc(var(--control-height) - var(--space-md));height:calc(var(--control-height) - var(--space-md));border:var(--border);background-color:var(--surface-0);color:var(--content-0);box-shadow:var(--shadow-sm);cursor:grab;z-index:2;transition:transform var(--transition-fast) ease, border-color var(--transition-fast) ease, box-shadow var(--transition-fast) ease, background-color var(--transition-fast) ease;border-radius:50%;position:absolute;left:0;transform:translate(-50%,-50%)}.vDAmRy:active,.vDAmRy:hover{border-color:var(--border-1)}.vDAmRy:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.vDAmRy[data-dragging]{cursor:grabbing;box-shadow:var(--shadow-md);transform:translate(-50%,-50%)scale(1.04)}.iNrV0y{min-height:calc(var(--font-size-sm) + var(--space-md));margin-inline:calc((var(--control-height) - var(--space-xs)) / 2);position:relative}.PpaxP2,._9K78Fi{color:var(--content-2);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex;position:absolute}.PpaxP2:focus-visible,._9K78Fi:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.PpaxP2[data-active],._9K78Fi[data-active]{color:var(--content-0)}.PpaxP2:disabled,._9K78Fi:disabled{cursor:default}.PpaxP2{gap:var(--space-xs);white-space:nowrap;flex-direction:column;top:0;transform:translate(-50%)}._9K78Fi{top:calc(var(--control-height) - var(--space-xs));width:var(--control-height);height:var(--control-height);z-index:1;justify-content:center;left:0;transform:translate(-50%,-50%)}.vzEDBe{width:var(--space-sm);height:var(--space-sm);background-color:currentColor;border-radius:50%}._0OWJh0{font-size:var(--font-size-sm)}.Mk4xi2{min-width:min(24em, 100vw - var(--space-xl))}.SL0IDQ{gap:var(--space-xs);cursor:text}.mdezg5{width:7ch;min-width:0;font-family:var(--font-family-mono);color:inherit;text-align:center;caret-color:var(--content-0);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;margin:0;padding:0}.mdezg5::selection{background-color:var(--focus-ring);color:var(--surface-0)}.mdezg5:disabled{opacity:.25}.a4R18g{-webkit-user-select:none;user-select:none;color:var(--content-2);flex-shrink:0}.a4R18g[data-disabled]{opacity:.25}
@@ -0,0 +1,80 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-CZ0KI0zu.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{i as a,r as o,t as s}from"./Slider-CKDNtVxH.js";var c=t({Disabled:()=>k,MonthsIndexMarks:()=>w,RangeMonthToDaysOutput:()=>D,RangeOpenMonthToDaysOutput:()=>O,RangeOpenWithoutExplicitMiddleOutput:()=>E,RangePlain:()=>T,SingleStep:()=>S,SingleWithMarks:()=>C,__namedExportsOrder:()=>A,default:()=>b});function l(e,t){return i((n,r)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{...n,onChange:e=>{n.onChange(e),r({value:e})},onClearError:()=>{n.onClearError?.(),r({error:void 0})}}),(0,p.jsx)(f,{value:n.value,field:e,unit:t})]}))}function u(e,t){return e===null?`null`:`${e}${t}`}function d(e,t,n=``){let[r,i]=e??[null,null],a=[];return r!==null&&a.push(`${t} >= ${r}${n}`),i!==null&&a.push(`${t} <= ${i}${n}`),a.length>0?a.join(` AND `):`Фильтр не ограничивает значение`}function f({value:e,field:t,unit:n=``,children:r}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],human:`${u(i,n)} — ${u(a,n)}`,filter:d(e,t,n)},null,2)}),r]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{a(),r(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:25,label:`25`},{value:50,label:`50`},{value:75,label:`75`},{value:100,label:`100`}],g=[{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:9,label:`9 мес.`},{value:12,label:`12 мес.`},{value:18,label:`18 мес.`},{value:24,label:`24 мес.`}],_=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],v=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],y=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720},{value:25,label:`Без верхней границы`,outputValue:null}],b={title:`Shared/UI/Slider`,component:s,args:{label:`Слайдер`,value:30,onChange:m(),min:0,max:100,step:5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над слайдером.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},value:{description:`Текущее выбранное значение; в range-сценариях — пара границ.`,control:!1},onChange:{description:`Вызывается после выбора значения или границ.`,control:!1},min:{description:`Минимальная координата шкалы.`,control:`number`},max:{description:`Максимальная координата шкалы.`,control:`number`},step:{description:`Шаг шкалы, когда не заданы допустимые marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки выбора; range-marks могут возвращать отдельный outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и обёртки поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует pointer-, click- и keyboard-взаимодействие.`,control:`boolean`}}},x=i((e,t)=>(0,p.jsx)(s,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),S={render:x,args:{label:`Громкость`,description:`Компактный single-value слайдер со step=5.`,value:35,step:5}},C={render:x,args:{label:`Процент выполнения`,description:`Marks активны, кликабельны и показывают подписи через tooltip.`,value:50,marks:h}},w={render:x,args:{label:`Срок`,min:1,max:24,value:6,marks:g,marksPosition:`index`,description:`Неравномерные значения месяцев расположены с равным визуальным шагом.`}},T={render:l(`progress`,`%`),args:{label:`Процент выполнения`,description:"Обычный range: `value` mark является и координатой шкалы, и значением фильтра.",min:0,max:100,marks:h,value:[25,75]}},E={render:l(`months`,` мес.`),args:{label:`Срок в месяцах`,description:"Открытые границы задаются только крайними `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:_,marksPosition:`index`,value:[null,12]}},D={render:l(`days`,` дн.`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:"`value` хранит координату/месяцы, `outputValue` отдаёт наружу дни.",min:1,max:24,marks:v,marksPosition:`index`,value:[90,360]}},O={render:l(`days`,` дн.`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:y,marksPosition:`index`,value:[null,720]}},k={render:x,args:{label:`Недоступно`,description:`Состояние без интеракций.`,value:40,disabled:!0,marks:h}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
2
+ render: renderSliderStory,
3
+ args: {
4
+ label: "Громкость",
5
+ description: "Компактный single-value слайдер со step=5.",
6
+ value: 35,
7
+ step: 5
8
+ }
9
+ }`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
10
+ render: renderSliderStory,
11
+ args: {
12
+ label: "Процент выполнения",
13
+ description: "Marks активны, кликабельны и показывают подписи через tooltip.",
14
+ value: 50,
15
+ marks: percentMarks
16
+ }
17
+ }`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
18
+ render: renderSliderStory,
19
+ args: {
20
+ label: "Срок",
21
+ min: 1,
22
+ max: 24,
23
+ value: 6,
24
+ marks: monthMarks,
25
+ marksPosition: "index",
26
+ description: "Неравномерные значения месяцев расположены с равным визуальным шагом."
27
+ }
28
+ }`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
29
+ render: createRangeSliderStoryRender("progress", "%"),
30
+ args: {
31
+ label: "Процент выполнения",
32
+ description: "Обычный range: \`value\` mark является и координатой шкалы, и значением фильтра.",
33
+ min: 0,
34
+ max: 100,
35
+ marks: percentMarks,
36
+ value: [25, 75]
37
+ }
38
+ }`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
39
+ render: createRangeSliderStoryRender("months", " мес."),
40
+ args: {
41
+ label: "Срок в месяцах",
42
+ description: "Открытые границы задаются только крайними \`outputValue:null\`; у обычных marks outputValue не указан и берётся \`value\`.",
43
+ min: 0,
44
+ max: 25,
45
+ marks: openMonthMarks,
46
+ marksPosition: "index",
47
+ value: [null, 12]
48
+ }
49
+ }`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
50
+ render: createRangeSliderStoryRender("days", " дн."),
51
+ args: {
52
+ label: "Срок: месяцы на шкале, дни в фильтре",
53
+ description: "\`value\` хранит координату/месяцы, \`outputValue\` отдаёт наружу дни.",
54
+ min: 1,
55
+ max: 24,
56
+ marks: monthToDayMarks,
57
+ marksPosition: "index",
58
+ value: [90, 360]
59
+ }
60
+ }`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
61
+ render: createRangeSliderStoryRender("days", " дн."),
62
+ args: {
63
+ label: "Срок: открытые границы и дни в фильтре",
64
+ description: "Крайние marks отдают null, обычные marks отдают дни через \`outputValue\`.",
65
+ min: 0,
66
+ max: 25,
67
+ marks: openMonthToDayMarks,
68
+ marksPosition: "index",
69
+ value: [null, 720]
70
+ }
71
+ }`,...O.parameters?.docs?.source}}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
72
+ render: renderSliderStory,
73
+ args: {
74
+ label: "Недоступно",
75
+ description: "Состояние без интеракций.",
76
+ value: 40,
77
+ disabled: true,
78
+ marks: percentMarks
79
+ }
80
+ }`,...k.parameters?.docs?.source}}},A=[`SingleStep`,`SingleWithMarks`,`MonthsIndexMarks`,`RangePlain`,`RangeOpenWithoutExplicitMiddleOutput`,`RangeMonthToDaysOutput`,`RangeOpenMonthToDaysOutput`,`Disabled`]})))()}export{E as a,C as c,O as i,c as l,w as n,T as o,D as r,S as s,k as t,j as u};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CYobheWD.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DQl3eTFV.js";import{a as p,c as m,d as h,i as g,l as _,n as v,o as y,r as b,s as x,t as S,u as C}from"./SliderInput.stories-BZxKunf6.js";function w(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(s,{of:C,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-LF4-T76K.js";import{a as p,c as m,d as h,i as g,l as _,n as v,o as y,r as b,s as x,t as S,u as C}from"./SliderInput.stories-DScPfD4E.js";function w(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(s,{of:C,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,E.jsx)(u,{children:`SliderInput`}),`
3
3
  `,(0,E.jsx)(o,{children:`Поля ввода для single и range с popover slider`}),`
4
4
  `,(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.code,{children:`SliderInput`}),` работает с одним числом, а `,(0,E.jsx)(t.code,{children:`SliderRangeInput`}),` — с диапазоном `,(0,E.jsx)(t.code,{children:`[number | null, number | null]`}),`.`]}),`
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-CYobheWD.js";import{a as r,i}from"./utils-DUM89eIj.js";import{o as a,s as o}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{n as s,t as c}from"./Popover-BrEAV6tC.js";import{n as l,t as u}from"./ui.module-CHEKb9Cb.js";import{a as d,c as f,l as p,o as m,r as h,u as g}from"./Input-g2XrzU2e.js";import{n as _,t as v}from"./PickerTriggerActions-BKQ28AXr.js";import{a as y,c as b,d as x,i as S,l as C,n as w,o as T,p as E,s as D,u as O}from"./Slider-D2-xtMN2.js";function k({open:e,disabled:t,setOpen:n}){return(0,B.jsx)(c.Trigger,{passive:!0,children:(0,B.jsx)(`div`,{children:(0,B.jsx)(v,{open:e,disabled:t,openAriaLabel:`Открыть слайдер`,closeAriaLabel:`Закрыть слайдер`,onToggleMouseDown:e=>e.preventDefault(),onToggleClick:()=>n(e=>!e)})})})}function A(e,t){let n=C(e,t);return{start:n[0]===null?`-∞`:String(n[0]),end:n[1]===null?`∞`:String(n[1])}}function j(e,t){let n=e.trim();return n===``||n===t?null:a(n)}function M(e,t,n){let r=t.filter(t=>D(t)===e);if(r.length)return e===null&&n===`end`?r[r.length-1]:r[0]}function N(e,t){return e?.readonlyLabel?.trim()?e.readonlyLabel.trim():typeof e?.label==`string`||typeof e?.label==`number`?String(e.label):t===null?``:String(t)}function P(e,t,n){return N(M(e,t,n),e)}function F(e,t,n){let[r,i]=e,a=r===null,o=i===null;return a&&o?n??``:a?`Меньше ${P(i,t,`end`)}`:o?`Больше ${P(r,t,`start`)}`:r===i?`Равно ${P(r,t,`start`)}`:`От ${P(r,t,`start`)} до ${P(i,t,`end`)}`}function I({value:e,onChange:t,min:n,max:r,step:i,marks:o,marksPosition:s=`value`,className:l,error:u,onClearError:f,label:p,description:m,placeholder:h,disabled:g,size:_}){let{min:v,max:b}=(0,z.useMemo)(()=>E(n,r),[n,r]),S=(0,z.useMemo)(()=>x(o,v,b),[o,v,b]),C=(0,z.useMemo)(()=>({min:v,max:b,step:i,marks:S,marksPosition:s}),[v,b,i,S,s]),T=O(e,C),[D,A]=(0,z.useState)(!1),[j,M]=(0,z.useState)(()=>({sourceValue:T,value:String(T)})),N=j.sourceValue===T?j.value:String(T),P=e=>{M({sourceValue:T,value:e})},F=(0,z.useCallback)(()=>{if(g){M({sourceValue:T,value:String(T)});return}let n=a(N);if(n===void 0){M({sourceValue:T,value:String(T)});return}let r=O(n,C);e!==r&&(t(r),f?.()),M({sourceValue:r,value:String(r)})},[g,N,T,t,f,C,e]);return(0,B.jsxs)(c,{open:D,onOpenChange:A,children:[(0,B.jsx)(d,{label:p,description:m,placeholder:h,disabled:g,size:_,className:l,error:u,value:N,onChange:P,onBlur:F,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),F())},endAdornmentWidth:`var(--control-height)`,endAdornment:k({open:D,disabled:g,setOpen:A})}),(0,B.jsx)(c.Content,{background:`primary`,children:(0,B.jsx)(`div`,{className:y.popoverContent,children:(0,B.jsx)(w,{mode:`single`,min:v,max:b,step:i,marks:S,marksPosition:s,marksDisplay:`full`,value:e,onChange:e=>{t(e),M({sourceValue:e,value:String(e)}),f?.()},disabled:g})})})]})}function L({value:e,onChange:t,min:n,max:i,step:a,marks:o,marksPosition:s=`value`,className:u,error:d,onClearError:f,label:p,description:_,readonlyValueText:v,placeholder:b,disabled:S,size:T}){let{min:D,max:O}=(0,z.useMemo)(()=>E(n,i),[n,i]),M=(0,z.useMemo)(()=>x(o,D,O),[o,D,O]),N=(0,z.useMemo)(()=>({min:D,max:O,step:a,marks:M,marksPosition:s}),[D,O,a,M,s]),P=(0,z.useMemo)(()=>C(e,N),[N,e]),I=(0,z.useMemo)(()=>A(P,N),[P,N]),[L,V]=(0,z.useState)(!1),[H,U]=(0,z.useState)(()=>({sourceValue:P,start:I.start,end:I.end})),[W,G]=(0,z.useState)(P),K=L||R(H.sourceValue,P),q=K?H.start:I.start,J=K?H.end:I.end,ee=e=>{U({sourceValue:P,start:e,end:J})},te=e=>{U({sourceValue:P,start:q,end:e})},{controlId:Y,labelId:X,descriptionId:ne,errorId:re,describedBy:ie}=g({hasLabel:p!=null,hasDescription:!!_,hasError:!!d}),Z=(0,z.useCallback)(()=>{U({sourceValue:P,start:I.start,end:I.end})},[I.end,I.start,P]),Q=(0,z.useCallback)(()=>{if(S){Z();return}let e=j(q,`-∞`),n=j(J,`∞`);if(e===void 0||n===void 0){Z();return}let r=C([e,n],N);R(P,r)||(t(r),f?.());let i=A(r,N);U({sourceValue:r,start:i.start,end:i.end}),G(r)},[S,J,q,P,t,f,Z,N]),ae=(0,z.useCallback)(e=>{let n=C(e,N);R(P,n)||(t(n),f?.());let r=A(n,N);U({sourceValue:n,start:r.start,end:r.end}),G(n)},[P,t,f,N]),$=e=>{!L&&e&&(G(P),U({sourceValue:P,start:I.start,end:I.end})),L&&!e&&!S&&ae(W),V(e)},oe=e=>{e.key===`Enter`&&(e.preventDefault(),Q())},se=e=>{let t=C(e,N);G(t);let n=A(t,N);U({sourceValue:P,start:n.start,end:n.end})},ce=v?F(L?W:P,M,b):void 0;return(0,B.jsxs)(c,{open:L,onOpenChange:$,children:[(0,B.jsx)(m,{label:p,description:_,disabled:S,className:u,size:T,error:d,controlId:Y,labelId:X,descriptionId:ne,errorId:re,children:(0,B.jsx)(h,{endAdornmentWidth:`var(--control-height)`,endAdornment:k({open:L,disabled:S,setOpen:e=>{$(typeof e==`function`?e(L):e)}}),children:({controlClassName:e})=>(0,B.jsx)(`div`,{id:Y,className:r(l.uiInputControlFake,y.rangeInputControl,e),"data-invalid":d?``:void 0,"data-disabled":S||void 0,role:`group`,"aria-invalid":!!d||void 0,"aria-label":typeof p==`string`?p:`Диапазон`,"aria-labelledby":typeof p==`string`?void 0:X,"aria-describedby":ie,children:v?(0,B.jsx)(`span`,{className:r(`flexEllipsis`,!ce&&l.uiPlaceholder),children:ce||b}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:y.rangeSegmentInput,value:q,disabled:S,"aria-label":`Начало диапазона`,onChange:e=>ee(e.target.value),onBlur:Q,onKeyDown:oe}),(0,B.jsx)(`span`,{className:y.rangeSeparator,"data-disabled":S||void 0,children:`-`}),(0,B.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:y.rangeSegmentInput,value:J,disabled:S,"aria-label":`Конец диапазона`,onChange:e=>te(e.target.value),onBlur:Q,onKeyDown:oe})]})})})}),(0,B.jsx)(c.Content,{background:`primary`,children:(0,B.jsx)(`div`,{className:y.popoverContent,children:(0,B.jsx)(w,{mode:`range`,min:D,max:O,step:a,marks:M,marksPosition:s,marksDisplay:`full`,value:W,onChange:se,disabled:S})})})]})}function R(e,t){return e[0]===t[0]&&e[1]===t[1]}var z,B;function V(){return(V=e((()=>{z=t(),o(),i(),f(),p(),_(),s(),u(),b(),S(),T(),B=n(),I.__docgenInfo={description:``,methods:[],displayName:`SliderInput`,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:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks single-слайдера. Single-компонент отдаёт наружу `mark.value`."}}},L.__docgenInfo={description:``,methods:[],displayName:`SliderRangeInput`,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:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks range-слайдера. `value` задаёт координату на шкале, `outputValue` задаёт публичное значение для потребителя."},readonlyValueText:{required:!1,tsType:{name:`boolean`},description:`Показывает вместо ручных сегментов готовый текст по выбранным marks.
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-CZ0KI0zu.js";import{a as r,i}from"./utils-DUM89eIj.js";import{o as a,s as o}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{n as s,t as c}from"./Popover-gg-G1aUp.js";import{n as l,t as u}from"./ui.module-DjxH5szp.js";import{a as d,c as f,l as p,o as m,r as h,u as g}from"./Input-Fk3IRww_.js";import{n as _,t as v}from"./PickerTriggerActions-Bt4rbg1T.js";import{a as y,c as b,d as x,i as S,l as C,n as w,o as T,p as E,s as D,u as O}from"./Slider-CKDNtVxH.js";function k({open:e,disabled:t,setOpen:n}){return(0,B.jsx)(c.Trigger,{passive:!0,children:(0,B.jsx)(`div`,{children:(0,B.jsx)(v,{open:e,disabled:t,openAriaLabel:`Открыть слайдер`,closeAriaLabel:`Закрыть слайдер`,onToggleMouseDown:e=>e.preventDefault(),onToggleClick:()=>n(e=>!e)})})})}function A(e,t){let n=C(e,t);return{start:n[0]===null?`-∞`:String(n[0]),end:n[1]===null?`∞`:String(n[1])}}function j(e,t){let n=e.trim();return n===``||n===t?null:a(n)}function M(e,t,n){let r=t.filter(t=>D(t)===e);if(r.length)return e===null&&n===`end`?r[r.length-1]:r[0]}function N(e,t){return e?.readonlyLabel?.trim()?e.readonlyLabel.trim():typeof e?.label==`string`||typeof e?.label==`number`?String(e.label):t===null?``:String(t)}function P(e,t,n){return N(M(e,t,n),e)}function F(e,t,n){let[r,i]=e,a=r===null,o=i===null;return a&&o?n??``:a?`Меньше ${P(i,t,`end`)}`:o?`Больше ${P(r,t,`start`)}`:r===i?`Равно ${P(r,t,`start`)}`:`От ${P(r,t,`start`)} до ${P(i,t,`end`)}`}function I({value:e,onChange:t,min:n,max:r,step:i,marks:o,marksPosition:s=`value`,className:l,error:u,onClearError:f,label:p,description:m,placeholder:h,disabled:g,size:_}){let{min:v,max:b}=(0,z.useMemo)(()=>E(n,r),[n,r]),S=(0,z.useMemo)(()=>x(o,v,b),[o,v,b]),C=(0,z.useMemo)(()=>({min:v,max:b,step:i,marks:S,marksPosition:s}),[v,b,i,S,s]),T=O(e,C),[D,A]=(0,z.useState)(!1),[j,M]=(0,z.useState)(()=>({sourceValue:T,value:String(T)})),N=j.sourceValue===T?j.value:String(T),P=e=>{M({sourceValue:T,value:e})},F=(0,z.useCallback)(()=>{if(g){M({sourceValue:T,value:String(T)});return}let n=a(N);if(n===void 0){M({sourceValue:T,value:String(T)});return}let r=O(n,C);e!==r&&(t(r),f?.()),M({sourceValue:r,value:String(r)})},[g,N,T,t,f,C,e]);return(0,B.jsxs)(c,{open:D,onOpenChange:A,children:[(0,B.jsx)(d,{label:p,description:m,placeholder:h,disabled:g,size:_,className:l,error:u,value:N,onChange:P,onBlur:F,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),F())},endAdornmentWidth:`var(--control-height)`,endAdornment:k({open:D,disabled:g,setOpen:A})}),(0,B.jsx)(c.Content,{background:`primary`,children:(0,B.jsx)(`div`,{className:y.popoverContent,children:(0,B.jsx)(w,{mode:`single`,min:v,max:b,step:i,marks:S,marksPosition:s,marksDisplay:`full`,value:e,onChange:e=>{t(e),M({sourceValue:e,value:String(e)}),f?.()},disabled:g})})})]})}function L({value:e,onChange:t,min:n,max:i,step:a,marks:o,marksPosition:s=`value`,className:u,error:d,onClearError:f,label:p,description:_,readonlyValueText:v,placeholder:b,disabled:S,size:T}){let{min:D,max:O}=(0,z.useMemo)(()=>E(n,i),[n,i]),M=(0,z.useMemo)(()=>x(o,D,O),[o,D,O]),N=(0,z.useMemo)(()=>({min:D,max:O,step:a,marks:M,marksPosition:s}),[D,O,a,M,s]),P=(0,z.useMemo)(()=>C(e,N),[N,e]),I=(0,z.useMemo)(()=>A(P,N),[P,N]),[L,V]=(0,z.useState)(!1),[H,U]=(0,z.useState)(()=>({sourceValue:P,start:I.start,end:I.end})),[W,G]=(0,z.useState)(P),K=L||R(H.sourceValue,P),q=K?H.start:I.start,J=K?H.end:I.end,ee=e=>{U({sourceValue:P,start:e,end:J})},te=e=>{U({sourceValue:P,start:q,end:e})},{controlId:Y,labelId:X,descriptionId:ne,errorId:re,describedBy:ie}=g({hasLabel:p!=null,hasDescription:!!_,hasError:!!d}),Z=(0,z.useCallback)(()=>{U({sourceValue:P,start:I.start,end:I.end})},[I.end,I.start,P]),Q=(0,z.useCallback)(()=>{if(S){Z();return}let e=j(q,`-∞`),n=j(J,`∞`);if(e===void 0||n===void 0){Z();return}let r=C([e,n],N);R(P,r)||(t(r),f?.());let i=A(r,N);U({sourceValue:r,start:i.start,end:i.end}),G(r)},[S,J,q,P,t,f,Z,N]),ae=(0,z.useCallback)(e=>{let n=C(e,N);R(P,n)||(t(n),f?.());let r=A(n,N);U({sourceValue:n,start:r.start,end:r.end}),G(n)},[P,t,f,N]),$=e=>{!L&&e&&(G(P),U({sourceValue:P,start:I.start,end:I.end})),L&&!e&&!S&&ae(W),V(e)},oe=e=>{e.key===`Enter`&&(e.preventDefault(),Q())},se=e=>{let t=C(e,N);G(t);let n=A(t,N);U({sourceValue:P,start:n.start,end:n.end})},ce=v?F(L?W:P,M,b):void 0;return(0,B.jsxs)(c,{open:L,onOpenChange:$,children:[(0,B.jsx)(m,{label:p,description:_,disabled:S,className:u,size:T,error:d,controlId:Y,labelId:X,descriptionId:ne,errorId:re,children:(0,B.jsx)(h,{endAdornmentWidth:`var(--control-height)`,endAdornment:k({open:L,disabled:S,setOpen:e=>{$(typeof e==`function`?e(L):e)}}),children:({controlClassName:e})=>(0,B.jsx)(`div`,{id:Y,className:r(l.uiInputControlFake,y.rangeInputControl,e),"data-invalid":d?``:void 0,"data-disabled":S||void 0,role:`group`,"aria-invalid":!!d||void 0,"aria-label":typeof p==`string`?p:`Диапазон`,"aria-labelledby":typeof p==`string`?void 0:X,"aria-describedby":ie,children:v?(0,B.jsx)(`span`,{className:r(`flexEllipsis`,!ce&&l.uiPlaceholder),children:ce||b}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:y.rangeSegmentInput,value:q,disabled:S,"aria-label":`Начало диапазона`,onChange:e=>ee(e.target.value),onBlur:Q,onKeyDown:oe}),(0,B.jsx)(`span`,{className:y.rangeSeparator,"data-disabled":S||void 0,children:`-`}),(0,B.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:y.rangeSegmentInput,value:J,disabled:S,"aria-label":`Конец диапазона`,onChange:e=>te(e.target.value),onBlur:Q,onKeyDown:oe})]})})})}),(0,B.jsx)(c.Content,{background:`primary`,children:(0,B.jsx)(`div`,{className:y.popoverContent,children:(0,B.jsx)(w,{mode:`range`,min:D,max:O,step:a,marks:M,marksPosition:s,marksDisplay:`full`,value:W,onChange:se,disabled:S})})})]})}function R(e,t){return e[0]===t[0]&&e[1]===t[1]}var z,B;function V(){return(V=e((()=>{z=t(),o(),i(),f(),p(),_(),s(),u(),b(),S(),T(),B=n(),I.__docgenInfo={description:``,methods:[],displayName:`SliderInput`,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:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks single-слайдера. Single-компонент отдаёт наружу `mark.value`."}}},L.__docgenInfo={description:``,methods:[],displayName:`SliderRangeInput`,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:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks range-слайдера. `value` задаёт координату на шкале, `outputValue` задаёт публичное значение для потребителя."},readonlyValueText:{required:!1,tsType:{name:`boolean`},description:`Показывает вместо ручных сегментов готовый текст по выбранным marks.
2
2
  Popover остаётся единственным способом изменить значение через слайдер, а потребитель получает изменение при закрытии popover.`}}}})))()}export{L as n,V as r,I as t};
@@ -0,0 +1,92 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-CZ0KI0zu.js";import{a as r,s as i}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{n as a,t as o}from"./createControlledStoryRender-DHsyXc1B.js";import{n as s,r as c,t as l}from"./SliderInput-LIlYbZ-q.js";var u=t({Basic:()=>x,DecimalManualInput:()=>C,Disabled:()=>k,MarksSnap:()=>S,RangeInputMonthToDaysOutput:()=>E,RangeInputOpenMonthToDaysOutput:()=>D,RangeInputOpenWithoutExplicitMiddleOutput:()=>T,RangeInputPlain:()=>w,RangeInputReadonlyText:()=>O,__namedExportsOrder:()=>A,default:()=>y});function d(e){return o((t,n)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{...t,onChange:e=>{t.onChange(e),n({value:e})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}}),(0,p.jsx)(f,{value:t.value,field:e})]}))}function f({value:e,field:t,children:n}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],filter:r(t,e)},null,2)}),n]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{i(),c(),a(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:20,label:`20`},{value:40,label:`40`},{value:60,label:`60`},{value:80,label:`80`},{value:100,label:`100`}],g=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],_=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],v=[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],y={title:`Shared/UI/SliderInput`,component:l,args:{label:`Порог`,value:12,onChange:m(),min:0,max:100,step:.5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над числовым вводом.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},placeholder:{description:`Текст пустого поля или readonly-диапазона.`,control:`text`},value:{description:`Текущее значение; в range-сценариях — пара бизнес-границ.`,control:!1},onChange:{description:`Вызывается после commit ручного ввода или закрытия popover.`,control:!1},min:{description:`Минимальная координата шкалы в popover.`,control:`number`},max:{description:`Максимальная координата шкалы в popover.`,control:`number`},step:{description:`Шаг ручного ввода и слайдера, если не заданы marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки popover-слайдера; range-marks могут возвращать outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует ручной ввод и открытие popover.`,control:`boolean`}}},b=o((e,t)=>(0,p.jsx)(l,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),x={render:b,args:{label:`Порог`,description:`Ручной ввод и popover slider работают с одним значением.`}},S={render:b,args:{label:`Готовый пресет`,value:40,marks:h}},C={render:b,args:{label:`Десятичное значение`,value:17.5,step:.5}},w={render:d(`progress`),args:{label:`Процент выполнения`,description:"RangeInput без outputValue: наружу отдаётся координата `value`.",min:0,max:100,marks:h,value:[20,80]}},T={render:d(`months`),args:{label:`Срок в месяцах`,description:"У крайних marks `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:g,marksPosition:`index`,value:[null,12]}},E={render:d(`days`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:`В поле и фильтре видны дни, а popover показывает месячные marks.`,min:1,max:24,marks:_,marksPosition:`index`,value:[90,360]}},D={render:d(`days`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:v,marksPosition:`index`,value:[null,720]}},O={render:d(`days`),args:{label:`Срок текстом`,description:`В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.`,min:0,max:25,marks:v,marksPosition:`index`,value:[90,180],readonlyValueText:!0,placeholder:`Любой срок`},argTypes:{readonlyValueText:{description:`Показывает собранный текст вместо ручных сегментов диапазона.`,control:`boolean`}}},k={render:b,args:{label:`Недоступно`,description:`Поле и popover отключены.`,value:20,disabled:!0,marks:h}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
2
+ render: renderSliderInputStory,
3
+ args: {
4
+ label: "Порог",
5
+ description: "Ручной ввод и popover slider работают с одним значением."
6
+ }
7
+ }`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
8
+ render: renderSliderInputStory,
9
+ args: {
10
+ label: "Готовый пресет",
11
+ value: 40,
12
+ marks: percentMarks
13
+ }
14
+ }`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
15
+ render: renderSliderInputStory,
16
+ args: {
17
+ label: "Десятичное значение",
18
+ value: 17.5,
19
+ step: 0.5
20
+ }
21
+ }`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
22
+ render: createRangeSliderInputStoryRender("progress"),
23
+ args: {
24
+ label: "Процент выполнения",
25
+ description: "RangeInput без outputValue: наружу отдаётся координата \`value\`.",
26
+ min: 0,
27
+ max: 100,
28
+ marks: percentMarks,
29
+ value: [20, 80]
30
+ }
31
+ }`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
32
+ render: createRangeSliderInputStoryRender("months"),
33
+ args: {
34
+ label: "Срок в месяцах",
35
+ description: "У крайних marks \`outputValue:null\`; у обычных marks outputValue не указан и берётся \`value\`.",
36
+ min: 0,
37
+ max: 25,
38
+ marks: openMonthMarks,
39
+ marksPosition: "index",
40
+ value: [null, 12]
41
+ }
42
+ }`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
43
+ render: createRangeSliderInputStoryRender("days"),
44
+ args: {
45
+ label: "Срок: месяцы на шкале, дни в фильтре",
46
+ description: "В поле и фильтре видны дни, а popover показывает месячные marks.",
47
+ min: 1,
48
+ max: 24,
49
+ marks: monthToDayMarks,
50
+ marksPosition: "index",
51
+ value: [90, 360]
52
+ }
53
+ }`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
54
+ render: createRangeSliderInputStoryRender("days"),
55
+ args: {
56
+ label: "Срок: открытые границы и дни в фильтре",
57
+ description: "Крайние marks отдают null, обычные marks отдают дни через \`outputValue\`.",
58
+ min: 0,
59
+ max: 25,
60
+ marks: openMonthToDayMarks,
61
+ marksPosition: "index",
62
+ value: [null, 720]
63
+ }
64
+ }`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
65
+ render: createRangeSliderInputStoryRender("days"),
66
+ args: {
67
+ label: "Срок текстом",
68
+ description: "В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.",
69
+ min: 0,
70
+ max: 25,
71
+ marks: openMonthToDayMarks,
72
+ marksPosition: "index",
73
+ value: [90, 180],
74
+ readonlyValueText: true,
75
+ placeholder: "Любой срок"
76
+ },
77
+ argTypes: {
78
+ readonlyValueText: {
79
+ description: "Показывает собранный текст вместо ручных сегментов диапазона.",
80
+ control: "boolean"
81
+ }
82
+ }
83
+ }`,...O.parameters?.docs?.source}}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
84
+ render: renderSliderInputStory,
85
+ args: {
86
+ label: "Недоступно",
87
+ description: "Поле и popover отключены.",
88
+ value: 20,
89
+ disabled: true,
90
+ marks: percentMarks
91
+ }
92
+ }`,...k.parameters?.docs?.source}}},A=[`Basic`,`MarksSnap`,`DecimalManualInput`,`RangeInputPlain`,`RangeInputOpenWithoutExplicitMiddleOutput`,`RangeInputMonthToDaysOutput`,`RangeInputOpenMonthToDaysOutput`,`RangeInputReadonlyText`,`Disabled`]})))()}export{E as a,w as c,j as d,S as i,O as l,C as n,D as o,k as r,T as s,x as t,u};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CYobheWD.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DQl3eTFV.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-i35oL30b.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-LF4-T76K.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-CNgF8pCO.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,C.jsx)(u,{children:`Sortable`}),`
3
3
  `,(0,C.jsxs)(o,{children:[`Headless-набор для сортируемых коллекций на базе `,(0,C.jsx)(t.code,{children:`dnd-kit`}),` с поддержкой list, horizontal и grid-layout`]}),`
4
4
  `,(0,C.jsxs)(t.p,{children:[(0,C.jsx)(t.code,{children:`Sortable`}),` не навязывает визуальный вид элементов и используется как композиционный слой поверх `,(0,C.jsx)(t.code,{children:`dnd-kit`}),`.