@ryuzaki13/react-foundation-ui 1.5.6 → 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 (363) 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 +1 -1
  52. package/dist/drop-zone/index.js +1 -1
  53. package/dist/expandable-action-panel/index.js +1 -1
  54. package/dist/image/index.js +4 -4
  55. package/dist/input/index.js +1 -1
  56. package/dist/input-date-time/index.js +2 -2
  57. package/dist/input-file/index.js +2 -2
  58. package/dist/input-files/index.js +1 -1
  59. package/dist/input-image/index.js +2 -2
  60. package/dist/input-search/index.js +1 -1
  61. package/dist/layout-picker/index.js +2 -2
  62. package/dist/listbox/index.js +1 -1
  63. package/dist/modal/index.js +1 -1
  64. package/dist/multi-select/index.js +1 -1
  65. package/dist/notifications/index.js +1 -1
  66. package/dist/picker/index.js +1 -1
  67. package/dist/preset-range-date-input/index.js +1 -1
  68. package/dist/preset-select/index.js +1 -1
  69. package/dist/radio-button/index.js +2 -2
  70. package/dist/radio-group/index.js +1 -1
  71. package/dist/select/index.js +1 -1
  72. package/dist/simple-table/index.js +1 -1
  73. package/dist/slider/Slider.d.ts.map +1 -1
  74. package/dist/slider/index.js +9 -8
  75. package/dist/slider/index.js.map +1 -1
  76. package/dist/state-select/index.js +1 -1
  77. package/dist/styles.css +1 -1
  78. package/dist/switch/index.js +1 -1
  79. package/dist/table/index.js +1 -1
  80. package/dist/table-sorting/index.js +1 -1
  81. package/dist/tag-input/index.js +2 -2
  82. package/dist/text-editor/index.js +1 -1
  83. package/dist/textarea/index.js +2 -2
  84. package/dist/toggle/index.js +1 -1
  85. package/dist/tree-select/index.js +6 -6
  86. package/dist/tree-table/index.js +1 -1
  87. package/dist/types.d.ts +6 -2
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/uiClasses.d.ts.map +1 -1
  90. package/package.json +1 -1
  91. package/src/styles/_controls.scss +4 -0
  92. package/src/styles/config/_index.scss +71 -46
  93. package/src/styles/mixins/_mixin.scss +6 -6
  94. package/storybook-static/assets/{Badge-BiiRjdOi.js → Badge-C57OpH6H.js} +1 -1
  95. package/storybook-static/assets/Badge.stories-CUtS3gdC.js +56 -0
  96. package/storybook-static/assets/BadgeList-Br7PCtJe.js +4 -0
  97. package/storybook-static/assets/Button-BUAFSG7a.js +14 -0
  98. package/storybook-static/assets/{Button-CjaNN6rV.js → Button-CXacCJwd.js} +11 -1
  99. package/storybook-static/assets/Button.stories-CG-Xqadt.js +93 -0
  100. package/storybook-static/assets/{CalendarView-BMJ6hyvh.js → CalendarView-DxkdSsAx.js} +1 -1
  101. package/storybook-static/assets/{CheckBox-BTR1-W6r.js → CheckBox-CIv6lt7Z.js} +2 -2
  102. package/storybook-static/assets/{CheckBox-PJCZFi85.js → CheckBox-DnxmVFE5.js} +1 -1
  103. package/storybook-static/assets/CheckBox.stories-foJ6NnTj.js +58 -0
  104. package/storybook-static/assets/{Color-6AOWCN3U-VUHIzkg_.js → Color-6AOWCN3U-DrqTmtJf.js} +1 -1
  105. package/storybook-static/assets/{ContextMenu-Bh4oHP6K.js → ContextMenu-BOM4Gk64.js} +1 -1
  106. package/storybook-static/assets/{ContextMenu-0zHy_xbK.js → ContextMenu-C8SQXRxm.js} +1 -1
  107. package/storybook-static/assets/ContextMenu.stories-CFwISC9P.js +37 -0
  108. package/storybook-static/assets/{DateInput-kNvOe_qw.js → DateInput-BWSZLH9k.js} +1 -1
  109. package/storybook-static/assets/{DateInput-CNO6uPbo.js → DateInput-ClKgqyQO.js} +1 -1
  110. package/storybook-static/assets/{DateInput.stories-DGrl1NRg.js → DateInput.stories-BIMqPAY-.js} +1 -1
  111. package/storybook-static/assets/{DateRangePresetSelect-DVe-KZEx.js → DateRangePresetSelect-DWIraW8Q.js} +1 -1
  112. package/storybook-static/assets/{DateRangePresetSelect-CfuLAxW0.js → DateRangePresetSelect-yzuX25-A.js} +2 -2
  113. package/storybook-static/assets/DateRangePresetSelect.stories-Bqxh85ie.js +19 -0
  114. package/storybook-static/assets/{Detail-DjP_T3Yg.js → Detail-BwbUH-2a.js} +1 -1
  115. package/storybook-static/assets/Detail.stories-BJZxxHBe.js +56 -0
  116. package/storybook-static/assets/{Dialog-BbfwcIzl.js → Dialog-B6ZkSwFG.js} +1 -1
  117. package/storybook-static/assets/{Dialog-PPguLwie.js → Dialog-CjAdwNLK.js} +1 -1
  118. package/storybook-static/assets/Dialog.stories-Cw9Inezq.js +22 -0
  119. package/storybook-static/assets/{Disclosure-DfjeNfkn.js → Disclosure-BgaRYF6o.js} +1 -1
  120. package/storybook-static/assets/Disclosure.stories-B3cOFkzP.js +23 -0
  121. package/storybook-static/assets/{DisclosureGroup-C4o0IITt.js → DisclosureGroup-DjDW1NYH.js} +1 -1
  122. package/storybook-static/assets/{DocsRenderer-JROSPFPF-BiMFt7_A.js → DocsRenderer-JROSPFPF-BWdUj6SG.js} +1 -1
  123. package/storybook-static/assets/{DropZone-C3oRa6sQ.js → DropZone-D7XJczCv.js} +1 -1
  124. package/storybook-static/assets/{DropZone-Cw3X-9Xt.js → DropZone-DnJJRVvs.js} +1 -1
  125. package/storybook-static/assets/DropZone.stories-DCILeRID.js +26 -0
  126. package/storybook-static/assets/{DropdownMenu-CPj2r3k-.js → DropdownMenu-eA7CqmEq.js} +1 -1
  127. package/storybook-static/assets/{ExpandableActionPanel-DAzBwv3l.js → ExpandableActionPanel-Bi8GdZk8.js} +1 -1
  128. package/storybook-static/assets/ExpandableActionPanel.stories-CnpIhE-p.js +9 -0
  129. package/storybook-static/assets/{Flex-Rsf5s2Qh.js → Flex-CTId58Yi.js} +1 -1
  130. package/storybook-static/assets/{Flex.stories-C4LjuUoy.js → Flex.stories-DzO6eshU.js} +12 -12
  131. package/storybook-static/assets/{FloatingPopover-QXZeXRkJ.js → FloatingPopover-Bj3n1Cbm.js} +1 -1
  132. package/storybook-static/assets/{FormattedTableCell-YhiJaAK4.js → FormattedTableCell-DgbwZ60P.js} +1 -1
  133. package/storybook-static/assets/{Grid-BnEITS4J.js → Grid-Dd82LOHp.js} +1 -1
  134. package/storybook-static/assets/{Grid.stories-CpCGadoX.js → Grid.stories-DijrLN9C.js} +15 -15
  135. package/storybook-static/assets/{ImageCropper.stories-CQZ6x_Ob.js → ImageCropper.stories-BeJRCTBT.js} +23 -7
  136. package/storybook-static/assets/{ImageRenderer-CQSICbwz.js → ImageRenderer-DJPFz9-n.js} +1 -1
  137. package/storybook-static/assets/ImageRenderer.stories--ai66HWP.js +34 -0
  138. package/storybook-static/assets/ImageView.stories-khEGxQEm.js +14 -0
  139. package/storybook-static/assets/{ImageViewer.stories-B2zHeVgq.js → ImageViewer.stories-DF6RRs2D.js} +30 -12
  140. package/storybook-static/assets/{ImageViewerRuntime-CQBT2XUj.js → ImageViewerRuntime-DBwCIibL.js} +1 -1
  141. package/storybook-static/assets/{Input-D7iiHnIH.js → Input-BqqylVpn.js} +1 -1
  142. package/storybook-static/assets/{Input-C2Lss7is.js → Input-Fk3IRww_.js} +1 -1
  143. package/storybook-static/assets/Input.stories-BQMPGwcm.js +52 -0
  144. package/storybook-static/assets/{InputDateTime-DM3BFpr1.js → InputDateTime-B3aoGdLh.js} +1 -1
  145. package/storybook-static/assets/{InputDateTime.stories-DYonovnC.js → InputDateTime.stories-BVD7wYFB.js} +23 -20
  146. package/storybook-static/assets/{InputFile-G-H8FqNn.js → InputFile-BPIyxf85.js} +1 -1
  147. package/storybook-static/assets/{InputFile-BSVH6QKl.js → InputFile-CeDA-DBu.js} +1 -1
  148. package/storybook-static/assets/InputFile.stories-CTyjqf2i.js +27 -0
  149. package/storybook-static/assets/{InputFiles-CA7eAjuN.js → InputFiles-Ay6AhGXY.js} +1 -1
  150. package/storybook-static/assets/{InputFiles-DnYodbhi.js → InputFiles-Bs_ANsbH.js} +1 -1
  151. package/storybook-static/assets/InputFiles.stories-DpulRmAF.js +26 -0
  152. package/storybook-static/assets/{InputFilesList-BhOSPaGs.js → InputFilesList-O66HnsfV.js} +1 -1
  153. package/storybook-static/assets/{InputImage-BPmp_DbZ.js → InputImage-8CkQNIx-.js} +1 -1
  154. package/storybook-static/assets/{InputImage-BwWAi8ze.js → InputImage-C61yYNvh.js} +1 -1
  155. package/storybook-static/assets/InputImage.stories-B9EdEI54.js +56 -0
  156. package/storybook-static/assets/InteractiveComponents-D3625WeG.js +87 -0
  157. package/storybook-static/assets/InteractiveComponents.stories-DlUOC0gE.js +472 -0
  158. package/storybook-static/assets/{LayoutPicker-DrQx5OwE.js → LayoutPicker-BzdqkISv.js} +1 -1
  159. package/storybook-static/assets/{LayoutPicker-Bz8Vo6L7.js → LayoutPicker-TghytR7l.js} +1 -1
  160. package/storybook-static/assets/{LayoutPicker.stories-CBqPwt3h.js → LayoutPicker.stories-BcQcVoGX.js} +1 -1
  161. package/storybook-static/assets/{Listbox-B7Z7L_t3.js → Listbox-DuNXYpU5.js} +1 -1
  162. package/storybook-static/assets/{Listbox-BbSsDx2u.js → Listbox-kuB9DZmS.js} +1 -1
  163. package/storybook-static/assets/Listbox.stories-RaF4O2dQ.js +68 -0
  164. package/storybook-static/assets/{Modal-Cob4DPKq.js → Modal-i-qVmfOZ.js} +1 -1
  165. package/storybook-static/assets/Modal.stories-jAQ3yHty.js +232 -0
  166. package/storybook-static/assets/{ModalManagerProvider-DPGYpfId.js → ModalManagerProvider-_TvqmYe3.js} +1 -1
  167. package/storybook-static/assets/{MultiSelect-BgMw4DIC.js → MultiSelect-BD6xtx7W.js} +1 -1
  168. package/storybook-static/assets/{MultiSelect-DKv6Qe08.js → MultiSelect-DiBUW3Jo.js} +1 -1
  169. package/storybook-static/assets/MultiSelect.stories-Cc4-fIjA.js +55 -0
  170. package/storybook-static/assets/{NoData-B33Cn4pA.js → NoData-BvxB_r9f.js} +1 -1
  171. package/storybook-static/assets/{NotificationsHost-DDcfMtWv.js → NotificationsHost-DDxqV6_Y.js} +1 -1
  172. package/storybook-static/assets/NotificationsHost.stories-tMVttzUz.js +29 -0
  173. package/storybook-static/assets/{ODataMultiSelect-CT4h5T5J.js → ODataMultiSelect-96O4f-qa.js} +1 -1
  174. package/storybook-static/assets/ODataMultiSelect.stories-DpRZoXwK.js +137 -0
  175. package/storybook-static/assets/{ODataSelect-_FeWsMNO.js → ODataSelect-MS3gU6J3.js} +1 -1
  176. package/storybook-static/assets/ODataSelect.stories-V6u4XJN4.js +207 -0
  177. package/storybook-static/assets/{ODataTreeMultiSelect-Lfa06t8R.js → ODataTreeMultiSelect-B_pN_Ec6.js} +1 -1
  178. package/storybook-static/assets/ODataTreeMultiSelect.stories-DsyoOuR8.js +78 -0
  179. package/storybook-static/assets/{ODataTreeSelect-CoVG8YGb.js → ODataTreeSelect-iQ8y3cDY.js} +1 -1
  180. package/storybook-static/assets/ODataTreeSelect.stories-DCzwGTkw.js +55 -0
  181. package/storybook-static/assets/{OneStepScroller-Ba810Z0K.js → OneStepScroller-DHETHT90.js} +1 -1
  182. package/storybook-static/assets/{PeriodSelect-p_hunoMx.js → PeriodSelect-C5gt4lj6.js} +1 -1
  183. package/storybook-static/assets/{PeriodSelect-U8W5a0AG.js → PeriodSelect-CC7faqoe.js} +1 -1
  184. package/storybook-static/assets/PeriodSelect.stories-1gMZgYMb.js +50 -0
  185. package/storybook-static/assets/{PickerSelectionToolbar-BQvUp2gy.js → PickerSelectionToolbar-DA9AqLfK.js} +1 -1
  186. package/storybook-static/assets/{PickerTriggerActions-Bn7w0HQj.js → PickerTriggerActions-Bt4rbg1T.js} +1 -1
  187. package/storybook-static/assets/{Popover-D5X_VDjs.js → Popover-DoiYIRMQ.js} +1 -1
  188. package/storybook-static/assets/{Popover-CAmdlvk7.js → Popover-gg-G1aUp.js} +1 -1
  189. package/storybook-static/assets/Popover.stories-Yt2zItKA.js +47 -0
  190. package/storybook-static/assets/{PresetRangeDateInput-D_uUOybG.js → PresetRangeDateInput-CB6Cyj_z.js} +1 -1
  191. package/storybook-static/assets/PresetRangeDateInput-OuBr9O7l.js +1 -0
  192. package/storybook-static/assets/PresetRangeDateInput.stories-DEv0NvxR.js +3 -0
  193. package/storybook-static/assets/{PresetSelect-ClINdcBe.js → PresetSelect-QCMUn7im.js} +1 -1
  194. package/storybook-static/assets/{RadioButton-sTaoMULx.js → RadioButton-BWyJs5Z6.js} +2 -2
  195. package/storybook-static/assets/{RadioButton-CTQ3NULx.js → RadioButton-D1O1e-bK.js} +1 -1
  196. package/storybook-static/assets/RadioButton.stories-kT4uLnRo.js +32 -0
  197. package/storybook-static/assets/{RadioGroup-Bi6nDRg3.js → RadioGroup-Bz9Pc7gG.js} +1 -1
  198. package/storybook-static/assets/{RadioGroup-ByD3Q99Y.js → RadioGroup-Cc8bDKSK.js} +1 -1
  199. package/storybook-static/assets/{RadioGroup-DzkFQ83G.css → RadioGroup-vkD0hI_b.css} +1 -1
  200. package/storybook-static/assets/RadioGroup.stories-XUcezf_a.js +17 -0
  201. package/storybook-static/assets/{Scrollable-BX1lUjOe.js → Scrollable-7AnJblZH.js} +1 -1
  202. package/storybook-static/assets/{Select-DZI40eOj.js → Select-2OS5b3gj.js} +1 -1
  203. package/storybook-static/assets/{Select-BIdQZ63S.js → Select-B0JlKRZh.js} +1 -1
  204. package/storybook-static/assets/Select.stories-6NgDnQLy.js +69 -0
  205. package/storybook-static/assets/{SelectOptionContent-BBkx-6Ex.js → SelectOptionContent-DrMuPE4L.js} +1 -1
  206. package/storybook-static/assets/{SerializableSelect-D8xPL7XQ.js → SerializableSelect-C29Dtj1j.js} +1 -1
  207. package/storybook-static/assets/SerializableSelect.stories-Dk_0LHfx.js +73 -0
  208. package/storybook-static/assets/{SingleDateTimeInput-DfsGAFoU.js → SingleDateTimeInput-Bu-VV-X4.js} +1 -1
  209. package/storybook-static/assets/{SingleDateTimeInput-CTvNbcZ6.js → SingleDateTimeInput-pNtbntt7.js} +1 -1
  210. package/storybook-static/assets/SingleDateTimeInput.stories-BY6gytNo.js +48 -0
  211. package/storybook-static/assets/{Slider-DLtF6vGD.js → Slider-CKDNtVxH.js} +1 -1
  212. package/storybook-static/assets/{Slider-DjX_Irjn.js → Slider-CzKsc6lR.js} +1 -1
  213. package/storybook-static/assets/Slider-bVVL6_Jz.css +1 -0
  214. package/storybook-static/assets/Slider.stories-C9CiqYKL.js +80 -0
  215. package/storybook-static/assets/{SliderInput-BqvH8eHy.js → SliderInput-Dw5e7zgd.js} +1 -1
  216. package/storybook-static/assets/{SliderInput-UCsxAR-B.js → SliderInput-LIlYbZ-q.js} +1 -1
  217. package/storybook-static/assets/SliderInput.stories-DScPfD4E.js +92 -0
  218. package/storybook-static/assets/{Sortable-CNtgLPiY.js → Sortable-BrbLX--A.js} +1 -1
  219. package/storybook-static/assets/Sortable.stories-CNgF8pCO.js +77 -0
  220. package/storybook-static/assets/{Splitter-PsRXvIfb.js → Splitter-B5t8ta7u.js} +1 -1
  221. package/storybook-static/assets/{Splitter.stories-CNpgsRiE.js → Splitter.stories-Cz_ZAwsO.js} +26 -9
  222. package/storybook-static/assets/{StateSelect-BxRXr-2U.js → StateSelect-BpZxLrbE.js} +1 -1
  223. package/storybook-static/assets/{StateSelect-_vJdEQd4.js → StateSelect-CkC0uV89.js} +1 -1
  224. package/storybook-static/assets/StateSelect.stories-7YPBHcZj.js +59 -0
  225. package/storybook-static/assets/StringToggle.stories-dy82Cq3e.js +5 -0
  226. package/storybook-static/assets/{Switch-B_3CFRDw.js → Switch-DmUkZLoV.js} +1 -1
  227. package/storybook-static/assets/{Switch-CZpcIIzj.js → Switch-L91cfss1.js} +1 -1
  228. package/storybook-static/assets/Switch.stories-DacAiGQz.js +15 -0
  229. package/storybook-static/assets/{Table-ozF5MS3q.js → Table-B13zUr91.js} +1 -1
  230. package/storybook-static/assets/Table.stories-BPgaag4D.js +207 -0
  231. package/storybook-static/assets/{Tabs-Dr4gaN0z.js → Tabs-XHS1tTCR.js} +1 -1
  232. package/storybook-static/assets/Tabs.stories-DCGe98nI.js +87 -0
  233. package/storybook-static/assets/{TabsBox-6G7F_Vo9.js → TabsBox-NeiMksCt.js} +1 -1
  234. package/storybook-static/assets/{TagInput-CIsnKs98.js → TagInput-DmTij_wJ.js} +1 -1
  235. package/storybook-static/assets/TagInput.stories-Crz2d9WK.js +18 -0
  236. package/storybook-static/assets/{Text-DEUhj_FL.js → Text-VK5-gznU.js} +1 -1
  237. package/storybook-static/assets/{Textarea-Cv8Iiqm7.js → Textarea-FgIOtg__.js} +1 -1
  238. package/storybook-static/assets/{Textarea-BoLolqIc.js → Textarea-dZHo8H-N.js} +1 -1
  239. package/storybook-static/assets/Textarea.stories-DlVs_0Da.js +17 -0
  240. package/storybook-static/assets/{TimePanel-DbWoLCxS.js → TimePanel-CmNDtcUu.js} +1 -1
  241. package/storybook-static/assets/TimePanel.stories-DzDCIjYh.js +14 -0
  242. package/storybook-static/assets/{Toggle-DN84PUdA.js → Toggle-CszEtVgG.js} +1 -1
  243. package/storybook-static/assets/{Toggle-BAhzEihH.js → Toggle-iIIRwhJ0.js} +1 -1
  244. package/storybook-static/assets/Toggle.stories-OHqcyxRB.js +25 -0
  245. package/storybook-static/assets/{TreeMultiSelect-C1iVfpMl.js → TreeMultiSelect-BcpQXmXz.js} +1 -1
  246. package/storybook-static/assets/{TreeMultiSelect-BTe_-dq5.js → TreeMultiSelect-D08x-Zz7.js} +1 -1
  247. package/storybook-static/assets/TreeMultiSelect.stories-CmZ3kEc3.js +60 -0
  248. package/storybook-static/assets/{TreePickerBase-DayQwVwR.js → TreePickerBase-PstNPiQo.js} +1 -1
  249. package/storybook-static/assets/{TreeSelect-D6L3D0h4.js → TreeSelect-CrpAtboA.js} +1 -1
  250. package/storybook-static/assets/{TreeSelect-CJV0O91H.js → TreeSelect-xXFRj_Bm.js} +1 -1
  251. package/storybook-static/assets/TreeSelect.stories-DJaUtn0O.js +40 -0
  252. package/storybook-static/assets/{TreeTable-fbVtFU3l.js → TreeTable-C7OZPq-9.js} +1 -1
  253. package/storybook-static/assets/TreeTable.stories-Dd0YYVZ2.js +168 -0
  254. package/storybook-static/assets/{async-D6nAWhc1.js → async-Bu5V6wLi.js} +1 -1
  255. package/storybook-static/assets/{blocks-DCcg3Usb.js → blocks-LF4-T76K.js} +3 -3
  256. package/storybook-static/assets/{browserAndReact-CcRiDbNd.js → browserAndReact-DpeuPHLP.js} +1 -1
  257. package/storybook-static/assets/{check-CmUKUPJO.js → check-CxEwVoKp.js} +1 -1
  258. package/storybook-static/assets/{chevron-down-BDWEK49G.js → chevron-down-DpN_oMWM.js} +1 -1
  259. package/storybook-static/assets/{chevron-left-CGk7Zpej.js → chevron-left-C9_RRcAe.js} +1 -1
  260. package/storybook-static/assets/{chevron-right-CT64vlCm.js → chevron-right-K8IWV8l8.js} +1 -1
  261. package/storybook-static/assets/{chunk-W22LQPXL-CxBe5sB2.js → chunk-W22LQPXL-iNmw4j69.js} +1 -1
  262. package/storybook-static/assets/{circle-alert-POx9wimX.js → circle-alert-B_axag0r.js} +1 -1
  263. package/storybook-static/assets/{circle-check-BlI17qP5.js → circle-check-DdUogvti.js} +1 -1
  264. package/storybook-static/assets/{components-D__s8Hie.js → components-BRUtb9vg.js} +3 -3
  265. package/storybook-static/assets/{contextMenu-DK_TntWE.js → contextMenu-OelXFAKZ.js} +1 -1
  266. package/storybook-static/assets/createControlledStoryRender-DHsyXc1B.js +1 -0
  267. package/storybook-static/assets/{defaultRenderers-DBXPZtpT.js → defaultRenderers-CJ0K8d9m.js} +1 -1
  268. package/storybook-static/assets/{download-RGyJzMcA.js → download-D12Nvnyu.js} +1 -1
  269. package/storybook-static/assets/{filesAndExcel-DcPYf9n5.js → filesAndExcel-BBtR-68u.js} +1 -1
  270. package/storybook-static/assets/{floating-ui.react-CMX7peH7.js → floating-ui.react-CGVF2LPS.js} +1 -1
  271. package/storybook-static/assets/{formatters-BwvzqJ-Y.js → formatters-c0BLP2hy.js} +1 -1
  272. package/storybook-static/assets/{formatters-runtime-DrmDzmeG.js → formatters-runtime-DAwNvKyD.js} +1 -1
  273. package/storybook-static/assets/{foundationLib-x4242gln.js → foundationLib-DfmfMVN5.js} +1 -1
  274. package/storybook-static/assets/{hooks-FBRSoUmb.js → hooks-B-9_3OzU.js} +1 -1
  275. package/storybook-static/assets/iframe-CTtK5YHC.js +1 -0
  276. package/storybook-static/assets/{iframe-DBSrNt2a.js → iframe-CZ0KI0zu.js} +4 -4
  277. package/storybook-static/assets/{iframe-wwpu8YXD.css → iframe-_EkhDToa.css} +1 -1
  278. package/storybook-static/assets/{info-Wi50bdLM.js → info-Cb4lUntE.js} +1 -1
  279. package/storybook-static/assets/{odata-BBTqO7nX.js → odata-CXz6Bety.js} +1 -1
  280. package/storybook-static/assets/{odataAndTables-DEn1lG-3.js → odataAndTables-Dog6Bul7.js} +1 -1
  281. package/storybook-static/assets/{odataFetchFn-BT59Jmrl.js → odataFetchFn-BwGEe7ia.js} +1 -1
  282. package/storybook-static/assets/odataStoryFixtures-C6PXnQRZ.js +25 -0
  283. package/storybook-static/assets/{persisted-CZnECRrd.js → persisted-5MRV37vp.js} +1 -1
  284. package/storybook-static/assets/{pureUtilities-BIPiVbpd.js → pureUtilities-Bn1exZyB.js} +1 -1
  285. package/storybook-static/assets/{react-vWCcOuxm.js → react-BqQSSAdw.js} +1 -1
  286. package/storybook-static/assets/{refresh-cw-CnbDJa0D.js → refresh-cw-CYH4ov0F.js} +1 -1
  287. package/storybook-static/assets/{runtimeAndState-BqhoW8HS.js → runtimeAndState-BJDYVcfW.js} +1 -1
  288. package/storybook-static/assets/{settings-2-CtlfzeoJ.js → settings-2-CHcDR5TK.js} +1 -1
  289. package/storybook-static/assets/{sortable-MoyiSprv.js → sortable-D2oVv65U.js} +1 -1
  290. package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-CLTW-on9.js → syntaxhighlighter-T5IQBZDB-BZS8iv6c.js} +1 -1
  291. package/storybook-static/assets/{trash-2-D4ETgmHQ.js → trash-2-K0OwBMlQ.js} +1 -1
  292. package/storybook-static/assets/{triangle-alert-BhoF9j4U.js → triangle-alert-ByLBT1gp.js} +1 -1
  293. package/storybook-static/assets/ui-nZtwyXyS.css +1 -0
  294. package/storybook-static/assets/ui.module-DjxH5szp.js +1 -0
  295. package/storybook-static/assets/uiClasses-CjI3jv6I.js +1 -0
  296. package/storybook-static/assets/{useODataSelectBase-oxkyJY_R.js → useODataSelectBase-DPQiQAXO.js} +1 -1
  297. package/storybook-static/assets/{useODataTreeData-B2phJvDl.js → useODataTreeData-BmBSwDNz.js} +1 -1
  298. package/storybook-static/assets/{usePickerQuery-BN54SBQ9.js → usePickerQuery-DIOf9uC7.js} +1 -1
  299. package/storybook-static/assets/{usePickerTriggerController-6XAF3prJ.js → usePickerTriggerController-gFigo0fq.js} +1 -1
  300. package/storybook-static/assets/{x-CdBCVC44.js → x-B3ccJTtF.js} +1 -1
  301. package/storybook-static/iframe.html +3 -3
  302. package/storybook-static/index.json +1 -1
  303. package/storybook-static/project.json +1 -1
  304. package/dist/chunks/radio-group-4j2HbemI.js.map +0 -1
  305. package/dist/chunks/ui.module-BfaIVBba.js.map +0 -1
  306. package/dist/chunks/uiClasses-4atXOh0J.js.map +0 -1
  307. package/storybook-static/assets/Badge.stories-lSXnbNqy.js +0 -54
  308. package/storybook-static/assets/Button-DMlznmSQ.js +0 -12
  309. package/storybook-static/assets/Button.stories-BYtMxH0y.js +0 -75
  310. package/storybook-static/assets/CheckBox.stories-COqnnc3-.js +0 -60
  311. package/storybook-static/assets/ContextMenu.stories-NMukUvNY.js +0 -90
  312. package/storybook-static/assets/DateRangePresetSelect.stories-28swhHV5.js +0 -11
  313. package/storybook-static/assets/Detail.stories-CUigXvmv.js +0 -44
  314. package/storybook-static/assets/Dialog.stories-CDKvce2w.js +0 -31
  315. package/storybook-static/assets/Disclosure.stories-Dz3sSy2W.js +0 -40
  316. package/storybook-static/assets/DropZone.stories-LfxThH0b.js +0 -36
  317. package/storybook-static/assets/ExpandableActionPanel.stories-CJwc_cQU.js +0 -19
  318. package/storybook-static/assets/ImageRenderer.stories-CGFEpwg9.js +0 -22
  319. package/storybook-static/assets/ImageView.stories-Cu4_LfLg.js +0 -9
  320. package/storybook-static/assets/Input.stories-BWwVCwT-.js +0 -38
  321. package/storybook-static/assets/InputFile.stories-CN-yFeRD.js +0 -36
  322. package/storybook-static/assets/InputFiles.stories--iCRqdJV.js +0 -33
  323. package/storybook-static/assets/InputImage.stories-_XP04DfA.js +0 -45
  324. package/storybook-static/assets/InteractiveComponents.stories-CLEBQnZj.js +0 -303
  325. package/storybook-static/assets/Listbox.stories-BeFIh3J1.js +0 -53
  326. package/storybook-static/assets/Modal.stories-DYsHSBH7.js +0 -180
  327. package/storybook-static/assets/MultiSelect.stories-BdRVZGqL.js +0 -29
  328. package/storybook-static/assets/NotificationsHost.stories-sQMqBW2S.js +0 -25
  329. package/storybook-static/assets/ODataMultiSelect.stories-D7bd1KpX.js +0 -73
  330. package/storybook-static/assets/ODataSelect.stories-D9x-rhIV.js +0 -73
  331. package/storybook-static/assets/ODataTreeMultiSelect.stories-BZwup1O6.js +0 -30
  332. package/storybook-static/assets/ODataTreeSelect.stories-CFEOk1B4.js +0 -24
  333. package/storybook-static/assets/PeriodSelect.stories-iXos1Qm2.js +0 -60
  334. package/storybook-static/assets/Popover.stories-4L2FVe7h.js +0 -69
  335. package/storybook-static/assets/PresetRangeDateInput-BSoQmjSq.js +0 -1
  336. package/storybook-static/assets/PresetRangeDateInput.stories-fPfgo6Ou.js +0 -15
  337. package/storybook-static/assets/RadioButton.stories-QM_hXT2F.js +0 -35
  338. package/storybook-static/assets/RadioGroup.stories-Msf4GGu2.js +0 -42
  339. package/storybook-static/assets/Select.stories-DYH2fWV8.js +0 -46
  340. package/storybook-static/assets/SerializableSelect.stories-BWHyUHbr.js +0 -46
  341. package/storybook-static/assets/SingleDateTimeInput.stories-CoRPRZ4N.js +0 -78
  342. package/storybook-static/assets/Slider-BWuie2gr.css +0 -1
  343. package/storybook-static/assets/Slider.stories-fWpiVW0P.js +0 -77
  344. package/storybook-static/assets/SliderInput.stories-hTeZ6jCT.js +0 -67
  345. package/storybook-static/assets/Sortable.stories-DaJFxCXl.js +0 -141
  346. package/storybook-static/assets/StateSelect.stories-Drn802U8.js +0 -44
  347. package/storybook-static/assets/StringToggle.stories-D7jGapnI.js +0 -6
  348. package/storybook-static/assets/Switch.stories-7stb2lKH.js +0 -26
  349. package/storybook-static/assets/Table.stories-BiQiy3QV.js +0 -122
  350. package/storybook-static/assets/Tabs.stories-Kz9Mnt73.js +0 -57
  351. package/storybook-static/assets/TagInput.stories-Cbk6A71f.js +0 -12
  352. package/storybook-static/assets/Textarea.stories-D8wfZGw3.js +0 -27
  353. package/storybook-static/assets/TimePanel.stories-BX3XAzvM.js +0 -25
  354. package/storybook-static/assets/Toggle.stories-DF-aBY0T.js +0 -30
  355. package/storybook-static/assets/TreeMultiSelect.stories-DobJG0cZ.js +0 -35
  356. package/storybook-static/assets/TreeSelect.stories-s3-wydcP.js +0 -18
  357. package/storybook-static/assets/TreeTable.stories-WSlQn2jk.js +0 -83
  358. package/storybook-static/assets/iframe-xDaji_wj.js +0 -1
  359. package/storybook-static/assets/odataStoryFixtures-CYqFNpE_.js +0 -25
  360. package/storybook-static/assets/ui-4LkYZ0Er.css +0 -1
  361. package/storybook-static/assets/ui.module-CHEKb9Cb.js +0 -1
  362. package/storybook-static/assets/uiClasses-Bme9Qqv6.js +0 -1
  363. /package/storybook-static/assets/{Badge-CD5894x5.css → BadgeList-CD5894x5.css} +0 -0
@@ -0,0 +1,50 @@
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"./Text-VK5-gznU.js";import{a,b as o,y as s}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as c,t as l}from"./createControlledStoryRender-DHsyXc1B.js";import{r as u,t as d}from"./DateInput-ClKgqyQO.js";import{n as f,t as p}from"./GridContainer-qDguE1HS.js";import{i as m,n as h,r as g,t as _}from"./PeriodSelect-CC7faqoe.js";var v=t({AllAllowedOptionsDisabled:()=>A,AlternativeLabels:()=>k,AutoSwitchByRange:()=>D,Controlled:()=>E,Disabled:()=>j,MonthAndYear:()=>O,__namedExportsOrder:()=>M,default:()=>w});function y(e){return e!==void 0&&o(e)?e:null}var b,x,S,C,w,T,E,D,O,k,A,j,M;function N(){return(N=e((()=>{s(),u(),c(),f(),r(),m(),h(),b=n(),{fn:x}=__STORYBOOK_MODULE_TEST__,S=[new Date(2026,2,1,0,0,0),new Date(2026,2,14,23,59,59)],C=[new Date(2026,0,1,0,0,0),new Date(2026,4,20,23,59,59)],w={title:`Shared/UI/PeriodSelect`,component:_,args:{label:`Период детализации`,description:`Выберите уровень группировки дат.`,placeholder:`Выберите период`,value:`day`,onChange:x(),presetIds:g,dateRange:S,maxDayRangeDays:31,maxWeekRangeWeeks:26,disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Select периода детализации дат. Компонент работает с id периода и может блокировать слишком детальные варианты по переданному диапазону дат.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда период не выбран.`,control:`text`},value:{description:`Текущий id периода.`,control:`select`,options:g},onChange:{description:`Вызывается с id выбранного периода.`,control:!1},options:{description:"Кастомный список периодов по контракту `PeriodSelectOption`; имеет приоритет над `presetIds`, `labels` и порогами диапазона.",control:!1},labels:{description:`Частичные подписи встроенных периодов поверх канонического каталога.`,control:`object`},presetIds:{description:"Разрешенные встроенные периоды. Порядок отображения остается `day → week → month → year`.",control:`check`,options:g},dateRange:{description:`Диапазон дат, по которому вычисляются заблокированные периоды.`,control:!1},maxDayRangeDays:{description:"Максимальное количество дней, при котором доступен период `day`.",control:{type:`number`,min:1,step:1}},maxWeekRangeWeeks:{description:"Максимальное количество недель, при котором доступен период `week`.",control:{type:`number`,min:1,step:1}},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},T=l((e,t)=>{let n=y(e.dateRange),r=a(e.dateRange??null);return(0,b.jsxs)(p,{gap:`md`,children:[(0,b.jsx)(_,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,b.jsx)(d,{label:`Связанный диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:n,onChange:e=>t({dateRange:e??void 0})}),(0,b.jsxs)(i,{as:`p`,color:`secondary`,"aria-live":`polite`,children:[`Выбрано: `,(0,b.jsx)(i,{as:`code`,children:e.value??`не выбрано`}),`. Дней в диапазоне:`,` `,(0,b.jsx)(i,{as:`code`,children:r??`не задано`}),`.`]})]})}),E={name:`Контролируемый выбор`,render:T},D={name:`Автопереключение по диапазону`,args:{value:`day`,dateRange:C,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:T},O={name:`Только месяцы и годы`,args:{value:`month`,presetIds:[`month`,`year`]},render:T},k={name:`Альтернативные подписи`,args:{value:`month`,labels:{day:`за день`,week:`за неделю`,month:`за месяц`,year:`за год`}},render:T},A={name:`Все разрешенные варианты недоступны`,args:{value:`day`,presetIds:[`day`,`week`],dateRange:C,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:T},j={name:`Заблокированный контрол`,args:{disabled:!0,value:`week`}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
2
+ name: "Контролируемый выбор",
3
+ render: renderPeriodSelectStory
4
+ }`,...E.parameters?.docs?.source},description:{story:"Контролируемый сценарий синхронизирует `value` и `dateRange` через Storybook args.",...E.parameters?.docs?.description}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
5
+ name: "Автопереключение по диапазону",
6
+ args: {
7
+ value: "day",
8
+ dateRange: longDateRange,
9
+ maxDayRangeDays: 31,
10
+ maxWeekRangeWeeks: 8
11
+ },
12
+ render: renderPeriodSelectStory
13
+ }`,...D.parameters?.docs?.source},description:{story:"Длинный диапазон блокирует `day` и `week`, поэтому контрол переключает значение на ближайший доступный период.",...D.parameters?.docs?.description}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
14
+ name: "Только месяцы и годы",
15
+ args: {
16
+ value: "month",
17
+ presetIds: ["month", "year"]
18
+ },
19
+ render: renderPeriodSelectStory
20
+ }`,...O.parameters?.docs?.source},description:{story:`Allow-list ограничивает встроенный каталог двумя крупными уровнями детализации.`,...O.parameters?.docs?.description}}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
21
+ name: "Альтернативные подписи",
22
+ args: {
23
+ value: "month",
24
+ labels: {
25
+ day: "за день",
26
+ week: "за неделю",
27
+ month: "за месяц",
28
+ year: "за год"
29
+ }
30
+ },
31
+ render: renderPeriodSelectStory
32
+ }`,...k.parameters?.docs?.source},description:{story:`Частичный labels override меняет формулировки встроенных вариантов,
33
+ сохраняя их id, порядок и ограничения доступности.`,...k.parameters?.docs?.description}}},A.parameters={...A.parameters,docs:{...A.parameters?.docs,source:{originalSource:`{
34
+ name: "Все разрешенные варианты недоступны",
35
+ args: {
36
+ value: "day",
37
+ presetIds: ["day", "week"],
38
+ dateRange: longDateRange,
39
+ maxDayRangeDays: 31,
40
+ maxWeekRangeWeeks: 8
41
+ },
42
+ render: renderPeriodSelectStory
43
+ }`,...A.parameters?.docs?.source},description:{story:`При длинном диапазоне все разрешенные варианты временно недоступны; внешний
44
+ controlled-id сохраняется, и после сокращения диапазона отображение восстанавливается.`,...A.parameters?.docs?.description}}},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
45
+ name: "Заблокированный контрол",
46
+ args: {
47
+ disabled: true,
48
+ value: "week"
49
+ }
50
+ }`,...j.parameters?.docs?.source}}},M=[`Controlled`,`AutoSwitchByRange`,`MonthAndYear`,`AlternativeLabels`,`AllAllowedOptionsDisabled`,`Disabled`]})))()}export{j as a,N as c,E as i,k as n,O as o,D as r,v as s,A as t};
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.js";import{n,t as r}from"./Grid-BCzygAqy.js";import{d as i,f as a}from"./usePickerTriggerController-6XAF3prJ.js";function o({onSelectAll:e,onDeselectAll:t,selectAllButtonRef:n}){return(0,s.jsxs)(r.Container,{gap:`xs`,templateColumns:`1fr 1fr`,children:[(0,s.jsx)(`button`,{ref:n,type:`button`,className:i.selectionActionButton,onClick:e,"data-ui":`picker-select-all`,"data-action":`select-all`,children:`Выбрать все`}),(0,s.jsx)(`button`,{type:`button`,className:i.selectionActionButton,onClick:t,"data-ui":`picker-deselect-all`,"data-action":`deselect-all`,children:`Снять выбор`})]})}var s;function c(){return(c=e((()=>{n(),a(),s=t(),o.__docgenInfo={description:`Общая панель массовых действий для picker-компонентов с множественным выбором.
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{n,t as r}from"./Grid-BCzygAqy.js";import{d as i,f as a}from"./usePickerTriggerController-gFigo0fq.js";function o({onSelectAll:e,onDeselectAll:t,selectAllButtonRef:n}){return(0,s.jsxs)(r.Container,{gap:`xs`,templateColumns:`1fr 1fr`,children:[(0,s.jsx)(`button`,{ref:n,type:`button`,className:i.selectionActionButton,onClick:e,"data-ui":`picker-select-all`,"data-action":`select-all`,children:`Выбрать все`}),(0,s.jsx)(`button`,{type:`button`,className:i.selectionActionButton,onClick:t,"data-ui":`picker-deselect-all`,"data-action":`deselect-all`,children:`Снять выбор`})]})}var s;function c(){return(c=e((()=>{n(),a(),s=t(),o.__docgenInfo={description:`Общая панель массовых действий для picker-компонентов с множественным выбором.
2
2
  Компонент не знает формат значения и делегирует изменение владельцу selection-модели.`,methods:[],displayName:`PickerSelectionToolbar`,props:{onSelectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onDeselectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},selectAllButtonRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLButtonElement`}],raw:`Ref<HTMLButtonElement>`},description:``}}}})))()}export{c as n,o as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./chevron-down-BDWEK49G.js";import{n as r}from"./iframe-DBSrNt2a.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-CHEKb9Cb.js";function c({open:e,disabled:t,children:r,onToggleMouseDown:a,onToggleClick:s,openAriaLabel:c=`Открыть список`,closeAriaLabel:u=`Закрыть список`}){return(0,l.jsxs)(`div`,{className:o.uiToggleButtonContainer,"data-disabled":t||void 0,children:[r,(0,l.jsx)(`div`,{className:o.uiButtonSeparator}),(0,l.jsx)(`button`,{type:`button`,"aria-label":e?u:c,className:o.uiToggleButton,onMouseDown:a,onClick:s,children:(0,l.jsx)(n,{className:i(o.uiToggleIcon,e&&o.uiToggleIconOpen)})})]})}var l;function u(){return(u=e((()=>{a(),t(),s(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`PickerTriggerActions`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},children:{required:!1,tsType:{name:`ReactNode`},description:``},onToggleMouseDown:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: MouseEvent<HTMLButtonElement>) => void`,signature:{arguments:[{type:{name:`MouseEvent`,elements:[{name:`HTMLButtonElement`}],raw:`MouseEvent<HTMLButtonElement>`},name:`event`}],return:{name:`void`}}},description:``},onToggleClick:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},openAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Открыть список"`,computed:!1}},closeAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Закрыть список"`,computed:!1}}}}})))()}export{u as n,c as t};
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./chevron-down-DpN_oMWM.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"./ui.module-DjxH5szp.js";function c({open:e,disabled:t,children:r,onToggleMouseDown:a,onToggleClick:s,openAriaLabel:c=`Открыть список`,closeAriaLabel:u=`Закрыть список`}){return(0,l.jsxs)(`div`,{className:o.uiToggleButtonContainer,"data-disabled":t||void 0,children:[r,(0,l.jsx)(`div`,{className:o.uiButtonSeparator}),(0,l.jsx)(`button`,{type:`button`,"aria-label":e?u:c,className:o.uiToggleButton,onMouseDown:a,onClick:s,children:(0,l.jsx)(n,{className:i(o.uiToggleIcon,e&&o.uiToggleIconOpen)})})]})}var l;function u(){return(u=e((()=>{a(),t(),s(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`PickerTriggerActions`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},children:{required:!1,tsType:{name:`ReactNode`},description:``},onToggleMouseDown:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: MouseEvent<HTMLButtonElement>) => void`,signature:{arguments:[{type:{name:`MouseEvent`,elements:[{name:`HTMLButtonElement`}],raw:`MouseEvent<HTMLButtonElement>`},name:`event`}],return:{name:`void`}}},description:``},onToggleClick:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},openAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Открыть список"`,computed:!1}},closeAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Закрыть список"`,computed:!1}}}}})))()}export{u as n,c as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Popover.stories-4L2FVe7h.js";function y(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,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 _,t as v}from"./Popover.stories-Yt2zItKA.js";function y(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`Popover`}),`
3
3
  `,(0,x.jsx)(o,{children:`Всплывающий контейнер, привязанный к trigger-элементу и поддерживающий управляемое открытие`}),`
4
4
  `,(0,x.jsx)(t.p,{children:`Popover уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,2 +1,2 @@
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-DBSrNt2a.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{a as o,d as s,g as c,l,m as u,n as d,p as f,r as p}from"./floating-ui.react-CMX7peH7.js";import{a as m,i as h,n as g,r as _}from"./dom-B3G_GtJw.js";import{i as v,r as y}from"./FloatingPopover-QXZeXRkJ.js";import{n as b}from"./error-BZrNlEUO.js";var x,S,C,w;function T(){return(T=e((()=>{x=`JK2Y7t`,S=`_5QtpCJ`,C=`hZuysP`,w={popover:x,primary:S,secondary:C}})))()}function E(){let e=(0,D.useContext)(O);if(!e)throw b({hookName:`usePopoverContext`,providerName:`Popover`});return e}var D,O;function k(){return(k=e((()=>{D=n(),O=(0,D.createContext)(null)})))()}var A,j,M;function N(){return(N=e((()=>{A=t(n(),1),p(),_(),a(),v(),T(),k(),j=r(),M=({children:e,onClose:t,closeOnOutside:n=!0,closeOnEscape:r=!0,disableOutsideClick:a=!1,background:o=`secondary`})=>{let{open:s,setOpen:c,refs:l,floatingStyles:u,middlewareData:f,placement:p,arrowRef:_}=E(),v=(0,A.useRef)(null),b=(0,A.useCallback)(e=>{v.current=e,l.setFloating(e)},[l]),x=m({active:s,initialFocus:`container`,restoreFocus:!0,containerRef:v}),S=(0,A.useCallback)(()=>{s&&(c(!1),t?.())},[c,t,s]);g({active:s,enabled:r,onDismiss:S,containerRef:x});let C=(0,A.useCallback)(()=>{!s||a||n&&S()},[s,a,n,S]);return h([l.floating,l.reference],C),s?(0,j.jsx)(d,{children:(0,j.jsxs)(`div`,{ref:b,style:u,className:i(w.popover,w[o]),role:`dialog`,"aria-modal":`true`,tabIndex:-1,children:[typeof e==`function`?e({setClose:S}):e,(0,j.jsx)(y,{ref:_,placement:p,middlewareData:f})]})}):null},M.__docgenInfo={description:`Содержимое Popover, отображаемое в портале.`,methods:[],displayName:`PopoverContent`,props:{children:{required:!0,tsType:{name:`union`,raw:`React.ReactNode | ((ctx: { setClose: () => void }) => React.ReactNode)`,elements:[{name:`ReactReactNode`,raw:`React.ReactNode`},{name:`unknown`}]},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},closeOnOutside:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},closeOnEscape:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},disableOutsideClick:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},background:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`}]},description:``,defaultValue:{value:`"secondary"`,computed:!1}}}}})))()}var P,F;function I(){return(I=e((()=>{P=n(),k(),F=({passive:e,children:t})=>{let{open:n,setOpen:r,refs:i}=E(),a=(0,P.useCallback)(n=>{t.props.onClick&&t.props.onClick(n),!n.defaultPrevented&&(n.preventDefault(),n.stopPropagation(),!e&&r(e=>!e))},[t,r,e]);return(0,P.cloneElement)(t,{ref:i.setReference,"aria-expanded":n,onClick:a})},F.__docgenInfo={description:``,methods:[],displayName:`PopoverTrigger`,props:{passive:{required:!1,tsType:{name:`literal`,value:`true`},description:``},children:{required:!0,tsType:{name:`ReactReactElement`,raw:`React.ReactElement<React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }>`,elements:[{name:`intersection`,raw:`React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }`,elements:[{name:`ReactHTMLAttributes`,raw:`React.HTMLAttributes<Element>`,elements:[{name:`Element`}]},{name:`signature`,type:`object`,raw:`{ ref?: React.Ref<Element> }`,signature:{properties:[{key:`ref`,value:{name:`ReactRef`,raw:`React.Ref<Element>`,elements:[{name:`Element`}],required:!1}}]}}]}]},description:``}}}})))()}var L,R,z,B;function V(){return(V=e((()=>{L=t(n(),1),p(),N(),k(),I(),R=r(),z=({children:e,open:t,defaultOpen:n,onOpenChange:r,placement:i=`bottom`})=>{let[a,d]=(0,L.useState)(n??!1),p=t!==void 0,m=p?t:a,h=(0,L.useCallback)(e=>{let t=typeof e==`function`?e(m):e;p||d(t),r?.(t)},[p,r,m]),g=(0,L.useRef)(null),{refs:_,floatingStyles:v,middlewareData:y,placement:b}=o({open:m,onOpenChange:h,placement:i,middleware:[f(8),s(),u({padding:16}),l({element:g.current})],whileElementsMounted:c});return(0,R.jsx)(O.Provider,{value:{open:m,setOpen:h,refs:_,floatingStyles:v,placement:b,middlewareData:y,arrowRef:g},children:e})},B=Object.assign(z,{Trigger:F,Content:M}),z.__docgenInfo={description:`Контролируемый Popover.
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{a as o,d as s,g as c,l,m as u,n as d,p as f,r as p}from"./floating-ui.react-CGVF2LPS.js";import{a as m,i as h,n as g,r as _}from"./dom-B3G_GtJw.js";import{i as v,r as y}from"./FloatingPopover-Bj3n1Cbm.js";import{n as b}from"./error-BZrNlEUO.js";var x,S,C,w;function T(){return(T=e((()=>{x=`JK2Y7t`,S=`_5QtpCJ`,C=`hZuysP`,w={popover:x,primary:S,secondary:C}})))()}function E(){let e=(0,D.useContext)(O);if(!e)throw b({hookName:`usePopoverContext`,providerName:`Popover`});return e}var D,O;function k(){return(k=e((()=>{D=n(),O=(0,D.createContext)(null)})))()}var A,j,M;function N(){return(N=e((()=>{A=t(n(),1),p(),_(),a(),v(),T(),k(),j=r(),M=({children:e,onClose:t,closeOnOutside:n=!0,closeOnEscape:r=!0,disableOutsideClick:a=!1,background:o=`secondary`})=>{let{open:s,setOpen:c,refs:l,floatingStyles:u,middlewareData:f,placement:p,arrowRef:_}=E(),v=(0,A.useRef)(null),b=(0,A.useCallback)(e=>{v.current=e,l.setFloating(e)},[l]),x=m({active:s,initialFocus:`container`,restoreFocus:!0,containerRef:v}),S=(0,A.useCallback)(()=>{s&&(c(!1),t?.())},[c,t,s]);g({active:s,enabled:r,onDismiss:S,containerRef:x});let C=(0,A.useCallback)(()=>{!s||a||n&&S()},[s,a,n,S]);return h([l.floating,l.reference],C),s?(0,j.jsx)(d,{children:(0,j.jsxs)(`div`,{ref:b,style:u,className:i(w.popover,w[o]),role:`dialog`,"aria-modal":`true`,tabIndex:-1,children:[typeof e==`function`?e({setClose:S}):e,(0,j.jsx)(y,{ref:_,placement:p,middlewareData:f})]})}):null},M.__docgenInfo={description:`Содержимое Popover, отображаемое в портале.`,methods:[],displayName:`PopoverContent`,props:{children:{required:!0,tsType:{name:`union`,raw:`React.ReactNode | ((ctx: { setClose: () => void }) => React.ReactNode)`,elements:[{name:`ReactReactNode`,raw:`React.ReactNode`},{name:`unknown`}]},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},closeOnOutside:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},closeOnEscape:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},disableOutsideClick:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},background:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`}]},description:``,defaultValue:{value:`"secondary"`,computed:!1}}}}})))()}var P,F;function I(){return(I=e((()=>{P=n(),k(),F=({passive:e,children:t})=>{let{open:n,setOpen:r,refs:i}=E(),a=(0,P.useCallback)(n=>{t.props.onClick&&t.props.onClick(n),!n.defaultPrevented&&(n.preventDefault(),n.stopPropagation(),!e&&r(e=>!e))},[t,r,e]);return(0,P.cloneElement)(t,{ref:i.setReference,"aria-expanded":n,onClick:a})},F.__docgenInfo={description:``,methods:[],displayName:`PopoverTrigger`,props:{passive:{required:!1,tsType:{name:`literal`,value:`true`},description:``},children:{required:!0,tsType:{name:`ReactReactElement`,raw:`React.ReactElement<React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }>`,elements:[{name:`intersection`,raw:`React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }`,elements:[{name:`ReactHTMLAttributes`,raw:`React.HTMLAttributes<Element>`,elements:[{name:`Element`}]},{name:`signature`,type:`object`,raw:`{ ref?: React.Ref<Element> }`,signature:{properties:[{key:`ref`,value:{name:`ReactRef`,raw:`React.Ref<Element>`,elements:[{name:`Element`}],required:!1}}]}}]}]},description:``}}}})))()}var L,R,z,B;function V(){return(V=e((()=>{L=t(n(),1),p(),N(),k(),I(),R=r(),z=({children:e,open:t,defaultOpen:n,onOpenChange:r,placement:i=`bottom`})=>{let[a,d]=(0,L.useState)(n??!1),p=t!==void 0,m=p?t:a,h=(0,L.useCallback)(e=>{let t=typeof e==`function`?e(m):e;p||d(t),r?.(t)},[p,r,m]),g=(0,L.useRef)(null),{refs:_,floatingStyles:v,middlewareData:y,placement:b}=o({open:m,onOpenChange:h,placement:i,middleware:[f(8),s(),u({padding:16}),l({element:g.current})],whileElementsMounted:c});return(0,R.jsx)(O.Provider,{value:{open:m,setOpen:h,refs:_,floatingStyles:v,placement:b,middlewareData:y,arrowRef:g},children:e})},B=Object.assign(z,{Trigger:F,Content:M}),z.__docgenInfo={description:`Контролируемый Popover.
2
2
  Используется в связке с Popover.Trigger и Popover.Content.`,methods:[],displayName:`PopoverRoot`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"bottom"`,computed:!1}},open:{required:!1,tsType:{name:`boolean`},description:``},defaultOpen:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``}}}})))()}export{V as n,B as t};
@@ -0,0 +1,47 @@
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"./Popover-gg-G1aUp.js";import{n as o,t as s}from"./Button-BUAFSG7a.js";import{n as c,t as l}from"./createControlledStoryRender-DHsyXc1B.js";import{c as u,t as d}from"./Input-Fk3IRww_.js";var f=t({AnchorPlacement:()=>w,Controlled:()=>C,Default:()=>S,WithInteractiveContent:()=>T,__namedExportsOrder:()=>E,default:()=>x});function p({args:e,updateArgs:t,trigger:n,children:r}){return(0,_.jsxs)(a,{placement:e.placement,open:e.open,defaultOpen:e.defaultOpen,onOpenChange:n=>{e.onOpenChange?.(n),t({open:n})},children:[(0,_.jsx)(a.Trigger,{passive:e.passive,children:n(e.open===!0)}),(0,_.jsx)(a.Content,{onClose:()=>e.onClose?.(),closeOnOutside:e.closeOnOutside,closeOnEscape:e.closeOnEscape,disableOutsideClick:e.disableOutsideClick,background:e.background,children:r})]})}function m(e,t){return l((n,r)=>(0,_.jsx)(p,{args:n,updateArgs:r,trigger:e,children:t}))}function h({args:e,updateArgs:t}){let[n,r]=(0,g.useState)(``);return(0,_.jsx)(p,{args:e,updateArgs:t,trigger:()=>(0,_.jsx)(`button`,{type:`button`,children:`Форма`}),children:e=>(0,_.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),e.setClose()},style:{display:`flex`,flexDirection:`column`,gap:8,padding:12,width:180},children:[(0,_.jsx)(d,{label:`Имя`,placeholder:`Введите имя`,value:n,onChange:r}),(0,_.jsx)(s,{children:`Отправить`})]})})}var g,_,v,y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{g=n(),o(),c(),u(),i(),_=r(),{useArgs:v}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:y}=__STORYBOOK_MODULE_TEST__,b=[`top`,`top-start`,`top-end`,`right`,`right-start`,`right-end`,`bottom`,`bottom-start`,`bottom-end`,`left`,`left-start`,`left-end`],x={title:`Shared/UI/Popover`,component:a,args:{children:null,placement:`bottom`,open:!1,defaultOpen:!1,onOpenChange:y(),onClose:y(),closeOnOutside:!0,closeOnEscape:!0,disableOutsideClick:!1,background:`secondary`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{children:{description:"Композиция из `Popover.Trigger` и `Popover.Content`.",control:!1},placement:{description:`Предпочтительное положение панели относительно trigger.`,control:`select`,options:b},open:{description:`Контролируемая видимость popover.`,control:`boolean`},defaultOpen:{description:`Начальная видимость в uncontrolled-режиме.`,control:`boolean`},onOpenChange:{description:`Вызывается при открытии и закрытии popover.`,control:!1},passive:{description:`Оставляет trigger пассивным: он получает reference, но не переключает popover по клику.`,control:`boolean`},onClose:{description:"Вызывается после закрытия Content через Escape, клик снаружи или `setClose`.",control:!1},closeOnOutside:{description:`Закрывает Content по клику снаружи.`,control:`boolean`},closeOnEscape:{description:`Закрывает Content по клавише Escape.`,control:`boolean`},disableOutsideClick:{description:`Игнорирует клики снаружи Content.`,control:`boolean`},background:{description:`Тема фона Content.`,control:`inline-radio`,options:[`primary`,`secondary`]}}},S={render:m(()=>(0,_.jsx)(`button`,{type:`button`,children:`Открыть`}),e=>(0,_.jsxs)(`div`,{style:{padding:12,maxWidth:160},children:[(0,_.jsx)(`p`,{children:`Пример простого поповера`}),(0,_.jsx)(`button`,{type:`button`,onClick:e.setClose,children:`Закрыть`})]}))},C={render:m(e=>(0,_.jsx)(`button`,{type:`button`,children:e?`Закрыть`:`Открыть`}),(0,_.jsx)(`div`,{style:{padding:12},children:`Контролируемый режим`}))},w={render:function(){let[e,t]=v(),n=(n,r)=>{e.onOpenChange?.(n),t(n?{open:!0,placement:r}:{open:!1})};return(0,_.jsx)(`div`,{style:{display:`flex`,gap:32,flexWrap:`wrap`,justifyContent:`center`},children:b.map(t=>(0,_.jsxs)(a,{placement:t,open:e.open===!0&&e.placement===t,defaultOpen:e.defaultOpen,onOpenChange:e=>n(e,t),children:[(0,_.jsx)(a.Trigger,{passive:e.passive,children:(0,_.jsx)(`button`,{type:`button`,children:t})}),(0,_.jsx)(a.Content,{onClose:()=>e.onClose?.(),closeOnOutside:e.closeOnOutside,closeOnEscape:e.closeOnEscape,disableOutsideClick:e.disableOutsideClick,background:e.background,children:(0,_.jsx)(`div`,{style:{padding:8},children:t})})]},t))})}},T={render:l((e,t)=>(0,_.jsx)(h,{args:e,updateArgs:t}))},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
2
+ render: createPopoverStoryRender(() => <button type="button">Открыть</button>, ctx => <div style={{
3
+ padding: 12,
4
+ maxWidth: 160
5
+ }}>
6
+ <p>Пример простого поповера</p>
7
+ <button type="button" onClick={ctx.setClose}>
8
+ Закрыть
9
+ </button>
10
+ </div>)
11
+ }`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
12
+ render: createPopoverStoryRender(open => <button type="button">{open ? "Закрыть" : "Открыть"}</button>, <div style={{
13
+ padding: 12
14
+ }}>Контролируемый режим</div>)
15
+ }`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
16
+ render: function Render() {
17
+ const [args, updateArgs] = useArgs<PopoverStoryArgs>();
18
+ const onOpenChange = (open: boolean, placement: Placement) => {
19
+ args.onOpenChange?.(open);
20
+ updateArgs(open ? {
21
+ open: true,
22
+ placement
23
+ } : {
24
+ open: false
25
+ });
26
+ };
27
+ return <div style={{
28
+ display: "flex",
29
+ gap: 32,
30
+ flexWrap: "wrap",
31
+ justifyContent: "center"
32
+ }}>
33
+ {placements.map(placement => <Popover key={placement} placement={placement} open={args.open === true && args.placement === placement} defaultOpen={args.defaultOpen} onOpenChange={open => onOpenChange(open, placement)}>
34
+ <Popover.Trigger passive={args.passive}>
35
+ <button type="button">{placement}</button>
36
+ </Popover.Trigger>
37
+ <Popover.Content onClose={() => args.onClose?.()} closeOnOutside={args.closeOnOutside} closeOnEscape={args.closeOnEscape} disableOutsideClick={args.disableOutsideClick} background={args.background}>
38
+ <div style={{
39
+ padding: 8
40
+ }}>{placement}</div>
41
+ </Popover.Content>
42
+ </Popover>)}
43
+ </div>;
44
+ }
45
+ }`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
46
+ render: createControlledStoryRender<PopoverStoryArgs>((args, updateArgs) => <InteractivePopoverStoryCanvas args={args} updateArgs={updateArgs} />)
47
+ }`,...T.parameters?.docs?.source}}},E=[`Default`,`Controlled`,`AnchorPlacement`,`WithInteractiveContent`]})))()}export{T as a,f as i,C as n,D as o,S as r,w as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.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-DCcg3Usb.js";import{n as p,r as m,t as h}from"./PresetRangeDateInput.stories-fPfgo6Ou.js";function g(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(s,{of:p,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{n as p,r as m,t as h}from"./PresetRangeDateInput.stories-DEv0NvxR.js";function g(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,v.jsx)(u,{children:`PresetRangeDateInput`}),`
3
3
  `,(0,v.jsx)(o,{children:`Составной контрол диапазона дат с синхронизацией ручного ввода и готовых пресетов`}),`
4
4
  `,(0,v.jsx)(t.p,{children:`PresetRangeDateInput уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-CZ0KI0zu.js";import{n as r,t as i}from"./FlexContainer-LmZIdhq2.js";import{r as a,t as o}from"./DateInput-ClKgqyQO.js";import{a as s,c,l,n as u,o as d,r as f,s as p,t as m}from"./DateRangePresetSelect-yzuX25-A.js";function h(e){return e??`__empty__`}function g({value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:a,presetIds:s,presetOptions:u,presetLabel:g,presetDescription:y,presetPlaceholder:b=`Выберите пресет диапазона`,presetDisabled:x,...S}){let[C]=(0,_.useState)(()=>new Date),w=a??C,T=(0,_.useMemo)(()=>u??c(d(s,f)),[s,u]),E=e??null,D=(0,_.useMemo)(()=>p(E,w,T),[E,T,w]),O=n??D??void 0,k=(0,_.useRef)(``),A=(0,_.useCallback)(e=>{if(!r)return;let t=h(e);t!==k.current&&(k.current=t,r(e))},[r]),j=e=>{let n=l(e,w,T);if(!n){A(null);return}A(n.id),t(n.range)},M=e=>{t(e),A(p(e,w,T))};return(0,v.jsxs)(i,{gap:`sm`,align:`end`,children:[(0,v.jsx)(m,{size:S.size,label:g,description:y,placeholder:b,disabled:x??S.disabled,value:O,onChange:j,options:T,referenceDate:w}),(0,v.jsx)(o,{...S,value:E,onChange:M})]})}var _,v;function y(){return(y=e((()=>{_=t(),a(),u(),s(),r(),v=n(),g.__docgenInfo={description:`Составной компонент выбора диапазона дат через пресет или ручной ввод.`,methods:[],displayName:`PresetRangeDateInput`,props:{presetId:{required:!1,tsType:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},description:``},onPresetIdChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(presetId: DateRangePresetOption["id"] | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},name:`presetId`}],return:{name:`void`}}},description:``},referenceDate:{required:!1,tsType:{name:`Date`},description:``},presetIds:{required:!1,tsType:{name:`unknown`},description:``},presetOptions:{required:!1,tsType:{name:`unknown`},description:``},presetLabel:{required:!1,tsType:{name:`ReactNode`},description:``},presetDescription:{required:!1,tsType:{name:`string`},description:``},presetPlaceholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите пресет диапазона"`,computed:!1}},presetDisabled:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}export{y as n,g as t};
@@ -0,0 +1,3 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{a as n,i as r,r as i}from"./CalendarView-DxkdSsAx.js";import{n as a}from"./iframe-CZ0KI0zu.js";import{n as o,t as s}from"./Text-VK5-gznU.js";import{n as c,t as l}from"./FlexContainer-LmZIdhq2.js";import{n as u,t as d}from"./createControlledStoryRender-DHsyXc1B.js";import{a as f,r as p}from"./DateRangePresetSelect-yzuX25-A.js";import{n as m,t as h}from"./PresetRangeDateInput-OuBr9O7l.js";var g=t({Default:()=>x,__namedExportsOrder:()=>S,default:()=>y}),_,v,y,b,x,S;function C(){return(C=e((()=>{n(),f(),u(),c(),o(),m(),_=a(),{fn:v}=__STORYBOOK_MODULE_TEST__,y={title:`Shared/UI/PresetRangeDateInput`,component:h,args:{label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,10,0,0,0),new Date(2026,2,10,23,59,59)],onChange:v(),presetId:`today`,onPresetIdChange:v(),referenceDate:new Date(2026,2,10,12,0,0),presetLabel:`Быстрый диапазон`,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{presetId:{description:"Контролируемый ID выбранного быстрого пресета. `null` снимает внешний выбор.",control:`select`,options:[...p,null]},onPresetIdChange:{description:`Вызывается, когда выбор пресета меняется из-за preset или ручного диапазона.`,control:!1},referenceDate:{description:`Опорная дата для вычисления встроенных быстрых диапазонов.`,control:`date`},presetIds:{description:"Разрешённые встроенные ID пресетов, если не передан `presetOptions`.",control:`check`,options:p},presetOptions:{description:`Кастомный каталог быстрых диапазонов с функциями вычисления.`,control:!1},presetLabel:{description:`Заголовок поля быстрого выбора.`,control:`text`},presetDescription:{description:`Описание под полем быстрого выбора.`,control:`text`},presetPlaceholder:{description:`Текст до выбора быстрого диапазона.`,control:`text`},presetDisabled:{description:`Блокирует только выбор быстрого пресета.`,control:`boolean`},label:{description:`Заголовок ручного поля диапазона.`,control:`text`},description:{description:`Описание ручного поля диапазона.`,control:`text`},placeholder:{description:`Текст до выбора ручного диапазона.`,control:`text`},value:{description:`Текущий ручной диапазон дат.`,control:!1},onChange:{description:`Вызывается при изменении ручного диапазона или выборе пресета.`,control:!1},error:{description:`Текст внешней ошибки ручного поля.`,control:`text`},onClearError:{description:`Сбрасывает внешнюю ошибку после ввода или выбора.`,control:!1},minDate:{description:`Минимально доступная дата ручного диапазона.`,control:`date`},maxDate:{description:`Максимально доступная дата ручного диапазона.`,control:`date`},datePreset:{description:`Пресет форматирования выбранного ручного диапазона.`,control:`text`},datePickerLevel:{description:`Минимальный уровень навигации календаря ручного поля.`,control:`select`,options:[`day`,`month`,`year`]},selectionMode:{description:`Размер периода, который выбирает ручное поле.`,control:`select`,options:i},weekEndDay:{description:`Последний включённый день недели в режиме week.`,control:`select`,options:r},allowSelectionModeChange:{description:`Показывает runtime-переключатель размера периода.`,control:`boolean`},selectionModeOptions:{description:`Ограничивает доступные режимы в runtime-переключателе.`,control:`check`,options:i},onSelectionModeChange:{description:`Вызывается при runtime-смене размера периода.`,control:!1},disabled:{description:"Блокирует ручное поле и, если `presetDisabled` не задан, быстрый выбор.",control:`boolean`},size:{description:`Размер обоих полей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},b=d((e,t)=>(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(l,{gap:`sm`,align:`end`,children:(0,_.jsx)(h,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onPresetIdChange:n=>{e.onPresetIdChange?.(n),t({presetId:n})},onSelectionModeChange:n=>{e.onSelectionModeChange?.(n),t({selectionMode:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})}),(0,_.jsxs)(s,{as:`p`,className:`marginBlockSm`,children:[`Активный presetId: `,(0,_.jsx)(s,{as:`code`,children:e.presetId??`null`})]})]})),x={render:b},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
2
+ render: renderPresetRangeDateInputStory
3
+ }`,...x.parameters?.docs?.source},description:{story:`Демонстрирует совместную работу пресета и ручного диапазона.`,...x.parameters?.docs?.description}}},S=[`Default`]})))()}export{g as n,C as r,x as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.js";import{n,t as r}from"./Select-DZI40eOj.js";function i(e,t,n=[]){if(!Array.isArray(e))return[...n];let r=[];for(let n of e)!t(n)||r.includes(n)||r.push(n);return r}function a(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[],i=new Set;for(let t of e){if(i.has(t))continue;let e=n.get(t);e&&(r.push(e),i.add(t))}return r}function o(e,t){return e?t.find(t=>t.id===e)??null:null}function s(){return(s=e((()=>{})))()}function c({options:e,value:t,onChange:n,getOptionDisabled:i,getOptionCode:a,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m,...h}){let g=o(t,e)??void 0;return(0,l.jsx)(r,{...h,options:e,value:g,onChange:e=>n(e?.id),getOptionKey:e=>e.id,getOptionLabel:e=>e.label,getOptionCode:a,getOptionDisabled:i,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m})}var l;function u(){return(u=e((()=>{n(),l=t(),c.__docgenInfo={description:"Базовый Select для пресетов с контрактом `id/label`.",methods:[],displayName:`PresetSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!0,tsType:{name:`unknown`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},renderOption:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{n,t as r}from"./Select-2OS5b3gj.js";function i(e,t,n=[]){if(!Array.isArray(e))return[...n];let r=[];for(let n of e)!t(n)||r.includes(n)||r.push(n);return r}function a(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[],i=new Set;for(let t of e){if(i.has(t))continue;let e=n.get(t);e&&(r.push(e),i.add(t))}return r}function o(e,t){return e?t.find(t=>t.id===e)??null:null}function s(){return(s=e((()=>{})))()}function c({options:e,value:t,onChange:n,getOptionDisabled:i,getOptionCode:a,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m,...h}){let g=o(t,e)??void 0;return(0,l.jsx)(r,{...h,options:e,value:g,onChange:e=>n(e?.id),getOptionKey:e=>e.id,getOptionLabel:e=>e.label,getOptionCode:a,getOptionDisabled:i,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m})}var l;function u(){return(u=e((()=>{n(),l=t(),c.__docgenInfo={description:"Базовый Select для пресетов с контрактом `id/label`.",methods:[],displayName:`PresetSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!0,tsType:{name:`unknown`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},renderOption:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
2
2
  active: boolean;
3
3
  selected: boolean;
4
4
  disabled: boolean;
@@ -1,2 +1,2 @@
1
- import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a}from"./iframe-DBSrNt2a.js";import{a as o,i as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-CHEKb9Cb.js";import{n as u,r as d}from"./uiClasses-Bme9Qqv6.js";import{n as f,t as p}from"./CheckBox.module-CM_GPl_E.js";var m,h;function g(){return(g=e((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=e((()=>{_=`gu8UMB`,v={radioInput:_}})))()}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),s(),g(),f(),l(),d(),y(),x=i(),S=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:d,tone:f=`neutral`,...m})=>{let g=(0,b.useId)(),_=d??g,y=t?`${_}-description`:void 0,S=e??n,C=l??!1;return(0,x.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,x.jsxs)(`div`,{className:p.row,children:[(0,x.jsxs)(`div`,{className:o(p.wrapper,u(f)),children:[(0,x.jsx)(`input`,{...m,id:_,type:`checkbox`,role:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-checked":C,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:()=>s?.(!C)}),(0,x.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,x.jsx)(h,{fill:`currentColor`})})]}),S&&(0,x.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:S})]}),t&&(0,x.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})},S.__docgenInfo={description:`Компонент радиокнопки для выбора одного варианта.
2
- Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,S as t};
1
+ import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a}from"./iframe-CZ0KI0zu.js";import{a as o,i as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-DjxH5szp.js";import{n as u,r as d}from"./uiClasses-CjI3jv6I.js";import{n as f,t as p}from"./CheckBox.module-CM_GPl_E.js";var m,h;function g(){return(g=e((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=e((()=>{_=`gu8UMB`,v={radioInput:_}})))()}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),s(),g(),f(),l(),d(),y(),x=i(),S=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:d,tone:f=`neutral`,...m})=>{let g=(0,b.useId)(),_=d??g,y=t?`${_}-description`:void 0,S=e??n,C=l??!1;return(0,x.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,x.jsxs)(`div`,{className:p.row,children:[(0,x.jsxs)(`div`,{className:o(p.wrapper,u(f)),children:[(0,x.jsx)(`input`,{...m,id:_,type:`checkbox`,role:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-checked":C,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:()=>s?.(!C)}),(0,x.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,x.jsx)(h,{fill:`currentColor`})})]}),S&&(0,x.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:S})]}),t&&(0,x.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})},S.__docgenInfo={description:`Компонент радиокнопки для выбора одного варианта.
2
+ Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,S as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioButton.stories-QM_hXT2F.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,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,r as g,t as _}from"./RadioButton.stories-kT4uLnRo.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`RadioButton`}),`
3
3
  `,(0,b.jsx)(o,{children:`Одиночная radio-кнопка для ручной сборки наборов выбора и специальных компоновок`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`RadioButton уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -0,0 +1,32 @@
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,t as i}from"./RadioButton-BWyJs5Z6.js";import{n as a}from"./iframe-CZ0KI0zu.js";import{n as o,t as s}from"./createControlledStoryRender-DHsyXc1B.js";var c=t({Controlled:()=>p,Disabled:()=>h,Group:()=>m,__namedExportsOrder:()=>g,default:()=>f}),l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{l=n(),o(),r(),u=a(),d=s((e,t)=>(0,u.jsx)(i,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),f={title:`Shared/UI/RadioButton`,component:i,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`brand`,`error`,`warning`,`success`,`info`]}}},p={render:d,args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,tone:`neutral`}},m={render:()=>{let[e,t]=(0,l.useState)(`email`);return(0,u.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,u.jsx)(i,{label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,u.jsx)(i,{label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},h={render:d,args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
2
+ render: renderRadioButtonStory,
3
+ args: {
4
+ label: "Выбрать опцию",
5
+ description: "Одиночная радиокнопка в controlled-режиме.",
6
+ value: false,
7
+ tone: "neutral"
8
+ }
9
+ }`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
10
+ render: () => {
11
+ const [selected, setSelected] = useState<"email" | "sms">("email");
12
+ return <div role="radiogroup" aria-label="Канал уведомлений" style={{
13
+ display: "grid",
14
+ gap: 12
15
+ }}>
16
+ <RadioButton label="Email" value={selected === "email"} onChange={checked => checked && setSelected("email")} tone="info" />
17
+ <RadioButton label="SMS" value={selected === "sms"} onChange={checked => checked && setSelected("sms")} tone="info" />
18
+ </div>;
19
+ },
20
+ args: {
21
+ value: undefined
22
+ }
23
+ }`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
24
+ render: renderRadioButtonStory,
25
+ args: {
26
+ label: "Недоступная опция",
27
+ description: "Заблокировано политикой конфигурации.",
28
+ value: true,
29
+ disabled: true,
30
+ tone: "neutral"
31
+ }
32
+ }`,...h.parameters?.docs?.source}}},g=[`Controlled`,`Group`,`Disabled`]})))()}export{_ as a,c as i,h as n,m as r,p 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-DBSrNt2a.js";import{a as i,i as a,n as o,o as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-CHEKb9Cb.js";var u,d,f,p,m,h,g;function _(){return(_=e((()=>{u=`nINbA6`,d=`GL-UWx`,f=`_6PeF-i`,p=`_5wP4aR`,m=`S3MnZI`,h=`KHJ0ja`,g={radioGroup:u,noWrap:d,horizontal:f,vertical:p,radioItem:m,checked:h}})))()}function v({value:e,onChange:t,label:n,description:r,disabled:a,className:o,noWrap:s,orientation:l=`horizontal`,"aria-label":u,children:d}){let f=(0,b.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,_]=(0,b.useState)([]),v=(0,b.useCallback)(e=>t?.(e),[t]),y=(0,b.useCallback)(e=>(_(t=>t.includes(e)?t:[...t,e]),()=>{_(t=>t.filter(t=>t!==e))}),[]),C=(0,b.useMemo)(()=>({value:e,onChange:v,disabled:a,orientation:l,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:y}),[m,a,f,v,p,l,y,h,e]);return(0,x.jsxs)(`div`,{className:i(c.uiElement,a&&c.disabled,o),children:[n&&(0,x.jsx)(`div`,{id:p,className:c.uiLabel,children:n}),r&&(0,x.jsx)(`div`,{id:m,className:c.uiDescription,children:r}),(0,x.jsx)(S.Provider,{value:C,children:(0,x.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:u,"aria-describedby":m,"aria-disabled":a||void 0,"data-disabled":a||void 0,className:i(c.uiInputControl,g.radioGroup,s&&g.noWrap,g[l]),children:d})})]})}function y({value:e,label:t,description:n,className:r}){let a=(0,b.useContext)(S),c=(0,b.useId)(),l=a?.registerOption;if((0,b.useLayoutEffect)(()=>{if(l)return l(c)},[l,c]),!a)return(0,x.jsxs)(`div`,{className:i(g.radioItem,r),children:[(0,x.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(a.value,e),d=a.disabled===!0,f=a.value===void 0&&a.firstOptionId===c,p=()=>{d||u||a.onChange?.(e)};return(0,x.jsxs)(`button`,{id:`${a.groupId}-option-${c}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:i(g.radioItem,u&&g.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:p,onKeyDown:e=>{if(d||o(e,p))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let i=r.indexOf(t);if(i===-1)return;let c=s({currentIndex:i,itemCount:r.length,key:e.key,orientation:a.orientation});c!==null&&(e.preventDefault(),r[c]?.focus(),r[c]?.click())},children:[(0,x.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`span`,{className:`fontSizeSm`,children:n})]})}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),a(),l(),_(),x=r(),S=(0,b.createContext)(null),v.Option=y,v.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},y.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{C as n,v as t};
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,n as o,o as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-DjxH5szp.js";var u,d,f,p,m,h,g;function _(){return(_=e((()=>{u=`nINbA6`,d=`GL-UWx`,f=`_6PeF-i`,p=`_5wP4aR`,m=`S3MnZI`,h=`KHJ0ja`,g={radioGroup:u,noWrap:d,horizontal:f,vertical:p,radioItem:m,checked:h}})))()}function v({value:e,onChange:t,label:n,description:r,disabled:a,className:o,noWrap:s,orientation:l=`horizontal`,"aria-label":u,children:d}){let f=(0,b.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,_]=(0,b.useState)([]),v=(0,b.useCallback)(e=>t?.(e),[t]),y=(0,b.useCallback)(e=>(_(t=>t.includes(e)?t:[...t,e]),()=>{_(t=>t.filter(t=>t!==e))}),[]),C=(0,b.useMemo)(()=>({value:e,onChange:v,disabled:a,orientation:l,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:y}),[m,a,f,v,p,l,y,h,e]);return(0,x.jsxs)(`div`,{className:i(c.uiElement,a&&c.disabled,o),children:[n&&(0,x.jsx)(`div`,{id:p,className:c.uiLabel,children:n}),r&&(0,x.jsx)(`div`,{id:m,className:c.uiDescription,children:r}),(0,x.jsx)(S.Provider,{value:C,children:(0,x.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:u,"aria-describedby":m,"aria-disabled":a||void 0,"data-disabled":a||void 0,className:i(c.uiInputControl,g.radioGroup,s&&g.noWrap,g[l]),children:d})})]})}function y({value:e,label:t,description:n,className:r}){let a=(0,b.useContext)(S),c=(0,b.useId)(),l=a?.registerOption;if((0,b.useLayoutEffect)(()=>{if(l)return l(c)},[l,c]),!a)return(0,x.jsxs)(`div`,{className:i(g.radioItem,r),children:[(0,x.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(a.value,e),d=a.disabled===!0,f=a.value===void 0&&a.firstOptionId===c,p=()=>{d||u||a.onChange?.(e)};return(0,x.jsxs)(`button`,{id:`${a.groupId}-option-${c}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:i(g.radioItem,u&&g.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:p,onKeyDown:e=>{if(d||o(e,p))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let i=r.indexOf(t);if(i===-1)return;let c=s({currentIndex:i,itemCount:r.length,key:e.key,orientation:a.orientation});c!==null&&(e.preventDefault(),r[c]?.focus(),r[c]?.click())},children:[(0,x.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`span`,{className:`fontSizeSm`,children:n})]})}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),a(),l(),_(),x=r(),S=(0,b.createContext)(null),v.Option=y,v.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},y.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{C as n,v as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioGroup.stories-Msf4GGu2.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.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,i as m,n as h,r as g,t as _}from"./RadioGroup.stories-XUcezf_a.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`RadioGroup`}),`
3
3
  `,(0,b.jsx)(o,{children:`Группа взаимоисключающих опций с поддержкой горизонтальной и вертикальной раскладки`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`RadioGroup уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1 +1 @@
1
- .nINbA6{flex-wrap:wrap;align-content:flex-start;height:auto;display:flex}.nINbA6.GL-UWx{flex-wrap:nowrap}.nINbA6._6PeF-i{flex-direction:row}.nINbA6._5wP4aR{flex-direction:column;align-content:stretch}.S3MnZI{align-content:center;gap:var(--space-sm);color:var(--content-2);border-radius:var(--radius-xs);padding:0 var(--space-md);margin:var(--border-width);min-height:calc(var(--control-height) - var(--border-width) * 4);cursor:pointer;flex:1 0 0;display:grid}.S3MnZI:hover{color:var(--content-accent)}.S3MnZI.KHJ0ja{color:var(--status-info-on-fill);background-color:var(--status-info-fill)}.S3MnZI:disabled{opacity:var(--disabled-opacity)}
1
+ .nINbA6{flex-wrap:wrap;align-content:flex-start;height:auto;display:flex}.nINbA6.GL-UWx{flex-wrap:nowrap}.nINbA6._6PeF-i{flex-direction:row}.nINbA6._5wP4aR{flex-direction:column;align-content:stretch}.S3MnZI{align-content:center;gap:var(--space-sm);color:var(--content-2);border-radius:var(--radius-xs);padding:0 var(--space-md);margin:var(--border-width);min-height:calc(var(--control-height) - var(--border-width) * 4);cursor:pointer;flex:1 0;display:grid}.S3MnZI:hover{color:var(--content-accent)}.S3MnZI.KHJ0ja{color:var(--status-info-on-fill);background-color:var(--status-info-fill)}.S3MnZI:disabled{opacity:var(--disabled-opacity)}
@@ -0,0 +1,17 @@
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{n as a,t as o}from"./RadioGroup-Bz9Pc7gG.js";var s=t({Controlled:()=>g,Disabled:()=>v,Vertical:()=>_,__namedExportsOrder:()=>y,default:()=>h});function c(e){return(0,d.jsx)(o,{...e})}function l({args:e,updateArgs:t,options:n,showValue:r=!1}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},children:n.map(e=>(0,d.jsx)(o.Option,{value:e.value,label:e.label,description:e.description},e.value))}),r&&(0,d.jsxs)(`div`,{children:[`Выбрано: `,e.value??`не выбрано`]})]})}function u(e,t=!1){return i((n,r)=>(0,d.jsx)(l,{args:n,updateArgs:r,options:e,showValue:t}))}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),a(),d=n(),f=[{value:`email`,label:`Email`,description:`Письма на корпоративную почту`},{value:`sms`,label:`SMS`,description:`Сообщения на телефон`},{value:`push`,label:`Push`,description:`Уведомления в приложении`}],p=[{value:`draft`,label:`Черновик`},{value:`review`,label:`На согласовании`},{value:`approved`,label:`Утвержден`}],m=[{value:`yes`,label:`Да`},{value:`no`,label:`Нет`}],h={title:`Shared/UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},g={render:u(f,!0),args:{}},_={render:u(p),args:{orientation:`vertical`,label:`Статус документа`,value:`draft`}},v={render:u(m),args:{disabled:!0,value:`yes`}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
2
+ render: createRadioGroupStoryRender(notificationOptions, true),
3
+ args: {}
4
+ }`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
5
+ render: createRadioGroupStoryRender(documentStatusOptions),
6
+ args: {
7
+ orientation: "vertical",
8
+ label: "Статус документа",
9
+ value: "draft"
10
+ }
11
+ }`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
12
+ render: createRadioGroupStoryRender(confirmationOptions),
13
+ args: {
14
+ disabled: true,
15
+ value: "yes"
16
+ }
17
+ }`,...v.parameters?.docs?.source}}},y=[`Controlled`,`Vertical`,`Disabled`]})))()}export{b as a,_ as i,v as n,s as r,g as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-DBSrNt2a.js";import{a as r,i}from"./utils-DUM89eIj.js";var a,o,s,c;function l(){return(l=e((()=>{a=t(),i(),o=n(),s=(0,a.forwardRef)(({children:e,height:t,stable:n,overscroll:i,className:a},s)=>(0,o.jsx)(`div`,{ref:s,className:r(`scrollable`,n&&`stable`,i&&`overscroll`,a),style:{height:t},children:e})),c=(0,a.forwardRef)(({blockClassName:e,...t},n)=>(0,o.jsx)(`div`,{className:r(e,`overflowHidden w100 h100`),children:(0,o.jsx)(s,{ref:n,...t})})),s.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`PropsWithChildren`]},c.__docgenInfo={description:``,methods:[],displayName:`ScrollableBlock`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},blockClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`PropsWithChildren`]}})))()}export{l as n,s as t};
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";var a,o,s,c;function l(){return(l=e((()=>{a=t(),i(),o=n(),s=(0,a.forwardRef)(({children:e,height:t,stable:n,overscroll:i,className:a},s)=>(0,o.jsx)(`div`,{ref:s,className:r(`scrollable`,n&&`stable`,i&&`overscroll`,a),style:{height:t},children:e})),c=(0,a.forwardRef)(({blockClassName:e,...t},n)=>(0,o.jsx)(`div`,{className:r(e,`overflowHidden w100 h100`),children:(0,o.jsx)(s,{ref:n,...t})})),s.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`PropsWithChildren`]},c.__docgenInfo={description:``,methods:[],displayName:`ScrollableBlock`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},blockClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`PropsWithChildren`]}})))()}export{l as n,s as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-CmUKUPJO.js";import{n as i,t as a}from"./x-CdBCVC44.js";import{n as o}from"./iframe-DBSrNt2a.js";import{a as s,i as c}from"./utils-DUM89eIj.js";import{n as l,t as u}from"./ui.module-CHEKb9Cb.js";import{c as d,g as f,h as ee,i as te,l as ne,n as re,r as p,s as ie,t as m,u as h}from"./usePickerTriggerController-6XAF3prJ.js";import{i as g,n as ae,r as oe,t as _}from"./usePickerQuery-BN54SBQ9.js";import{n as v,t as se}from"./PickerTriggerActions-Bn7w0HQj.js";import{n as y,t as b}from"./usePickerDefaultFilter-Be420WNF.js";function x(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(x).filter(e=>!!e);return t.length?t.join(` `):void 0}}function ce({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[x(t(e)),x(n?.(e)),x(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function S(){return(S=e((()=>{})))()}function le(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}var C,w,T;function E(){return(E=e((()=>{C=`aEEqH1`,w=`_4HQKa7`,T={inputWithOverlay:C,valueOverlay:w}})))()}function D(e){let{label:t,description:n,disabled:i,placeholder:o,size:c,options:u,value:d,onChange:f,getOptionKey:p,getOptionLabel:m,getOptionCode:h,getOptionDisabled:g,getOptionAriaLabel:_,getOptionGroup:v,getOptionClassName:b,renderOption:S,renderValue:C,className:w,buttonClassName:E,optionsClassName:D,optionsMaxWidth:A,optionsContentClassName:ue,searchable:j=!1,defaultFilter:M=!0,query:de,defaultQuery:fe,onQuery:pe,renderPopupHeader:me,emptyState:he,loadingState:ge,errorState:_e,placement:ve=`bottom-start`,clearable:N=!1}=e,P=f,F=(0,O.useRef)(null),[I,ye]=(0,O.useState)(!1),L=j?`search-single`:`display`,R=d===void 0?void 0:p(d),z=R===void 0?void 0:u.find(e=>p(e)===R)??d,{query:B,setQuery:V,resetQueryOnClose:be}=ae({query:de,defaultQuery:fe,onQuery:pe,triggerMode:L}),xe=e=>{I&&!e&&be&&V(``),ye(e)},Se=(0,O.useCallback)(e=>ce({option:e,getOptionLabel:m,getOptionCode:h,getOptionGroup:v}),[h,v,m]),H=y({options:u,query:B,enabled:j&&M,getSearchText:Se}),U=(0,O.useMemo)(()=>v?le(H,v):void 0,[v,H]),W=R===void 0?-1:H.findIndex(e=>p(e)===R),{activeIndex:Ce,context:we,floatingStyles:Te,getFloatingProps:Ee,setReference:De,setFloating:Oe,setOptionRef:ke,close:G,openList:Ae,toggleOpen:je,selectOption:Me,selectActiveOption:Ne,handleReferenceKeyDown:Pe,handleFloatingKeyDown:Fe,getOptionId:Ie,getActiveOptionId:K}=te({options:H,selectedIndex:W,open:I,onOpenChange:xe,getOptionDisabled:g,onSelect:P,disabled:i,placement:ve,triggerMode:L}),q=H.length>0,J=z===void 0?void 0:m(z),Y=z===void 0?void 0:C?C(z):J,Le=x(J),Re=z===void 0?void 0:x(h?.(z)),ze=x(Y)??Le??Re??(R===void 0?``:String(R)),X=j&&(I||B.length>0),Be=X?B:z===void 0?``:ze,Z=z!==void 0&&Y!==void 0&&x(Y)===void 0&&!X,Q=re({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Ae,close:G,toggleOpen:je}),Ve=e=>{F.current=e},He=()=>{N&&P(void 0),V(``),G()},$=(e,t,n)=>{let i=p(t),a=R!==void 0&&i===R,o=n===Ce,c=g?.(t)??!1,u={active:o,selected:a,disabled:c};return(0,k.jsx)(`div`,{id:Ie(e,n),ref:e=>ke(n,e),role:`option`,"aria-selected":a,"aria-disabled":c||void 0,"aria-label":_?.(t),className:s(l.uiPopupOption,c&&l.disabled,o&&l.uiPopupOptionActive,a&&l.selected,b?.(t,u)),onClick:()=>Me(t),children:S?S(t,u):(0,k.jsxs)(k.Fragment,{children:[a?(0,k.jsx)(r,{className:l.uiPopupOptionIcon}):(0,k.jsx)(`span`,{className:l.uiPopupOptionIcon}),(0,k.jsx)(`div`,{className:l.uiOptionText,children:m(t)}),h&&(0,k.jsx)(`div`,{className:l.uiOptionCode,children:h(t)})]})},i)};return(0,k.jsx)(ee,{label:t,description:n,disabled:i,size:c,className:w,children:({controlId:e,labelId:n,describedBy:r})=>{let c=`${e}-listbox`;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(ie,{ref:Ve,rootRef:De,id:e,type:`text`,disabled:i,readOnly:!j,autoComplete:`off`,role:`combobox`,value:Be,placeholder:z===void 0||X?`${o??t??``} <${u.length}>`:void 0,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?c:void 0,"aria-autocomplete":j?`list`:`none`,"aria-activedescendant":I?K(c):void 0,inputClassName:s(Z&&T.inputWithOverlay,E,`textOverflow`),overlay:Z?(0,k.jsx)(`div`,{className:T.valueOverlay,children:Y}):void 0,endAdornment:(0,k.jsx)(se,{open:I,disabled:i,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,children:N&&z!==void 0&&!i?(0,k.jsx)(`button`,{type:`button`,className:l.uiClearButton,"data-ui":`select-clear-button`,"data-action":`clear-select`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),He()},"aria-label":`Очистить выбор`,children:(0,k.jsx)(a,{})}):null}),onChange:e=>{j&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Pe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Ne,enableSpaceActivation:!j})}}),(0,k.jsx)(ne,{open:I,context:we,floatingStyles:Te,listId:c,labelId:n,descriptionId:r,activeOptionId:q?K(c):void 0,setFloating:Oe,getFloatingProps:Ee,onKeyDown:Fe,className:s(l.uiPopupOptions,D),maxWidth:A,header:me,children:(0,k.jsx)(`div`,{className:s(ue,`h100 scrollable`),children:q?U?U.map((e,t)=>{let n=e.group?`${c}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(c,e,t));return e.group?(0,k.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,k.jsx)(`div`,{id:n,className:l.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,k.jsx)(O.Fragment,{children:r},`options-${t}`)}):H.map((e,t)=>$(c,e,t)):(0,k.jsx)(oe,{emptyState:he,loadingState:ge,errorState:_e})})})]})}})}var O,k;function A(){return(A=e((()=>{O=t(),c(),n(),i(),f(),h(),g(),v(),d(),b(),p(),_(),m(),u(),S(),E(),k=o(),D.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-CxEwVoKp.js";import{n as i,t as a}from"./x-B3ccJTtF.js";import{n as o}from"./iframe-CZ0KI0zu.js";import{a as s,i as c}from"./utils-DUM89eIj.js";import{n as l,t as u}from"./ui.module-DjxH5szp.js";import{c as d,g as f,h as ee,i as te,l as ne,n as re,r as p,s as ie,t as m,u as h}from"./usePickerTriggerController-gFigo0fq.js";import{i as g,n as ae,r as oe,t as _}from"./usePickerQuery-DIOf9uC7.js";import{n as v,t as se}from"./PickerTriggerActions-Bt4rbg1T.js";import{n as y,t as b}from"./usePickerDefaultFilter-Be420WNF.js";function x(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(x).filter(e=>!!e);return t.length?t.join(` `):void 0}}function ce({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[x(t(e)),x(n?.(e)),x(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function S(){return(S=e((()=>{})))()}function le(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}var C,w,T;function E(){return(E=e((()=>{C=`aEEqH1`,w=`_4HQKa7`,T={inputWithOverlay:C,valueOverlay:w}})))()}function D(e){let{label:t,description:n,disabled:i,placeholder:o,size:c,options:u,value:d,onChange:f,getOptionKey:p,getOptionLabel:m,getOptionCode:h,getOptionDisabled:g,getOptionAriaLabel:_,getOptionGroup:v,getOptionClassName:b,renderOption:S,renderValue:C,className:w,buttonClassName:E,optionsClassName:D,optionsMaxWidth:A,optionsContentClassName:ue,searchable:j=!1,defaultFilter:M=!0,query:de,defaultQuery:fe,onQuery:pe,renderPopupHeader:me,emptyState:he,loadingState:ge,errorState:_e,placement:ve=`bottom-start`,clearable:N=!1}=e,P=f,F=(0,O.useRef)(null),[I,ye]=(0,O.useState)(!1),L=j?`search-single`:`display`,R=d===void 0?void 0:p(d),z=R===void 0?void 0:u.find(e=>p(e)===R)??d,{query:B,setQuery:V,resetQueryOnClose:be}=ae({query:de,defaultQuery:fe,onQuery:pe,triggerMode:L}),xe=e=>{I&&!e&&be&&V(``),ye(e)},Se=(0,O.useCallback)(e=>ce({option:e,getOptionLabel:m,getOptionCode:h,getOptionGroup:v}),[h,v,m]),H=y({options:u,query:B,enabled:j&&M,getSearchText:Se}),U=(0,O.useMemo)(()=>v?le(H,v):void 0,[v,H]),W=R===void 0?-1:H.findIndex(e=>p(e)===R),{activeIndex:Ce,context:we,floatingStyles:Te,getFloatingProps:Ee,setReference:De,setFloating:Oe,setOptionRef:ke,close:G,openList:Ae,toggleOpen:je,selectOption:Me,selectActiveOption:Ne,handleReferenceKeyDown:Pe,handleFloatingKeyDown:Fe,getOptionId:Ie,getActiveOptionId:K}=te({options:H,selectedIndex:W,open:I,onOpenChange:xe,getOptionDisabled:g,onSelect:P,disabled:i,placement:ve,triggerMode:L}),q=H.length>0,J=z===void 0?void 0:m(z),Y=z===void 0?void 0:C?C(z):J,Le=x(J),Re=z===void 0?void 0:x(h?.(z)),ze=x(Y)??Le??Re??(R===void 0?``:String(R)),X=j&&(I||B.length>0),Be=X?B:z===void 0?``:ze,Z=z!==void 0&&Y!==void 0&&x(Y)===void 0&&!X,Q=re({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Ae,close:G,toggleOpen:je}),Ve=e=>{F.current=e},He=()=>{N&&P(void 0),V(``),G()},$=(e,t,n)=>{let i=p(t),a=R!==void 0&&i===R,o=n===Ce,c=g?.(t)??!1,u={active:o,selected:a,disabled:c};return(0,k.jsx)(`div`,{id:Ie(e,n),ref:e=>ke(n,e),role:`option`,"aria-selected":a,"aria-disabled":c||void 0,"aria-label":_?.(t),className:s(l.uiPopupOption,c&&l.disabled,o&&l.uiPopupOptionActive,a&&l.selected,b?.(t,u)),onClick:()=>Me(t),children:S?S(t,u):(0,k.jsxs)(k.Fragment,{children:[a?(0,k.jsx)(r,{className:l.uiPopupOptionIcon}):(0,k.jsx)(`span`,{className:l.uiPopupOptionIcon}),(0,k.jsx)(`div`,{className:l.uiOptionText,children:m(t)}),h&&(0,k.jsx)(`div`,{className:l.uiOptionCode,children:h(t)})]})},i)};return(0,k.jsx)(ee,{label:t,description:n,disabled:i,size:c,className:w,children:({controlId:e,labelId:n,describedBy:r})=>{let c=`${e}-listbox`;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(ie,{ref:Ve,rootRef:De,id:e,type:`text`,disabled:i,readOnly:!j,autoComplete:`off`,role:`combobox`,value:Be,placeholder:z===void 0||X?`${o??t??``} <${u.length}>`:void 0,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?c:void 0,"aria-autocomplete":j?`list`:`none`,"aria-activedescendant":I?K(c):void 0,inputClassName:s(Z&&T.inputWithOverlay,E,`textOverflow`),overlay:Z?(0,k.jsx)(`div`,{className:T.valueOverlay,children:Y}):void 0,endAdornment:(0,k.jsx)(se,{open:I,disabled:i,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,children:N&&z!==void 0&&!i?(0,k.jsx)(`button`,{type:`button`,className:l.uiClearButton,"data-ui":`select-clear-button`,"data-action":`clear-select`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),He()},"aria-label":`Очистить выбор`,children:(0,k.jsx)(a,{})}):null}),onChange:e=>{j&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Pe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Ne,enableSpaceActivation:!j})}}),(0,k.jsx)(ne,{open:I,context:we,floatingStyles:Te,listId:c,labelId:n,descriptionId:r,activeOptionId:q?K(c):void 0,setFloating:Oe,getFloatingProps:Ee,onKeyDown:Fe,className:s(l.uiPopupOptions,D),maxWidth:A,header:me,children:(0,k.jsx)(`div`,{className:s(ue,`h100 scrollable`),children:q?U?U.map((e,t)=>{let n=e.group?`${c}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(c,e,t));return e.group?(0,k.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,k.jsx)(`div`,{id:n,className:l.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,k.jsx)(O.Fragment,{children:r},`options-${t}`)}):H.map((e,t)=>$(c,e,t)):(0,k.jsx)(oe,{emptyState:he,loadingState:ge,errorState:_e})})})]})}})}var O,k;function A(){return(A=e((()=>{O=t(),c(),n(),i(),f(),h(),g(),v(),d(),b(),p(),_(),m(),u(),S(),E(),k=o(),D.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
2
2
  readonly key: SelectOptionKey;
3
3
  readonly label: ReactNode;
4
4
  }`,signature:{properties:[{key:`key`,value:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}],required:!0}},{key:`label`,value:{name:`ReactNode`,required:!0}}]}},{name:`undefined`}]}}},description:``},getOptionClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => string | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.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-DCcg3Usb.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"./Select.stories-DYH2fWV8.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"./Select.stories-6NgDnQLy.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:`Select`}),`
3
3
  `,(0,C.jsx)(o,{children:`Getter-based select для примитивов и сложных объектных option`}),`
4
4
  `,(0,C.jsx)(t.p,{children:`Select уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -0,0 +1,69 @@
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";var o=t({ControlledObjects:()=>m,CustomOptionLayout:()=>v,Disabled:()=>y,GroupedOptions:()=>_,Placeholder:()=>g,PrimitiveOptions:()=>h,__namedExportsOrder:()=>b,default:()=>p}),s,c,l,u,d,f,p,m,h,g,_,v,y,b;function x(){return(x=e((()=>{s=n(),i(),c=r(),{useArgs:l}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:u}=__STORYBOOK_MODULE_TEST__,d=[{id:1,name:`Отдел продаж`,code:`SLS`,manager:`Елена Миронова`,direction:`Коммерческий блок`},{id:2,name:`Закупки`,code:`PRC`,manager:`Антон Мелихов`,direction:`Коммерческий блок`},{id:3,name:`Логистика`,code:`LGS`,manager:`Мария Климова`,direction:`Операционный блок`,disabled:!0},{id:4,name:`Поддержка клиентов`,code:`SUP`,manager:`Ирина Белова`,direction:`Операционный блок`}],f=[`Новый`,`В работе`,`Завершён`,`Архив`],p={title:`Shared/UI/Select`,component:a,args:{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,value:void 0,options:d,onChange:u(),getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Низкоуровневый getter-based select. Подходит для произвольных структур данных, примитивов и сложного кастомного рендера. Компонент возвращает наружу саму выбранную option. Для сериализуемых конфигов и сценариев с optionKey/optionLabel используйте SerializableSelect.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение ещё не выбрано.`,control:`text`},value:{description:`Текущая выбранная option целиком.`,control:!1},options:{description:`Массив опций любого поддерживаемого формата.`,control:!1},onChange:{description:`Вызывается с выбранной option.`,control:!1},getOptionKey:{description:`Функция получения уникального ключа option.`,control:!1},getOptionLabel:{description:`Функция получения основного текста option.`,control:!1},getOptionCode:{description:`Опциональный рендер дополнительного кода справа.`,control:!1},getOptionDisabled:{description:`Опциональная функция блокировки отдельных option.`,control:!1},getOptionAriaLabel:{description:`Опциональная функция для aria-label option.`,control:!1},getOptionGroup:{description:`Опциональная функция, которая объединяет соседние option под доступным заголовком группы.`,control:!1},getOptionClassName:{description:`Опциональная функция CSS-класса option по её состоянию.`,control:!1},renderOption:{description:`Полностью кастомный рендер option в списке.`,control:!1},renderValue:{description:`Кастомный рендер выбранного значения в кнопке.`,control:!1},optionsMaxWidth:{description:`Максимальная ширина выпадающего списка в любом допустимом CSS-формате.`,control:`text`},buttonClassName:{description:`Класс trigger-кнопки Select без изменения корневого контейнера.`,control:`text`},optionsClassName:{description:`Класс popup со списком option.`,control:`text`},optionsContentClassName:{description:`Класс области содержимого popup, например для особой плотности списка.`,control:`text`},searchable:{description:`Включает поиск по option в trigger-поле.`,control:`boolean`},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},defaultFilter:{description:`Включает встроенную фильтрацию option.`,control:`boolean`},renderPopupHeader:{description:`Дополнительное содержимое над списком option.`,control:!1},emptyState:{description:`Содержимое при пустом списке option.`,control:!1},loadingState:{description:`Содержимое при загрузке option.`,control:!1},errorState:{description:`Содержимое при ошибке загрузки option.`,control:!1},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},placement:{description:`Позиционирование выпадающего списка.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранной option.`,control:`boolean`}}},m={name:`Объекты`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[1],onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:d[1]}},h={name:`Примитивы`,render:()=>{let[e,t]=(0,s.useState)(f[1]);return(0,c.jsx)(a,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:f,value:e,onChange:t,getOptionKey:e=>e,getOptionLabel:e=>e,size:`md`})}},g={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},_={name:`Группированные опции`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})},getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40rem`})}},v={name:`Кастомный рендер`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[0],onChange:n=>{e.onChange(n),t({value:n})},renderValue:e=>`${e.code} · ${e.name}`,renderOption:(e,t)=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`flexEllipsis`,children:[(0,c.jsx)(`div`,{children:e.name}),(0,c.jsx)(`div`,{className:`fontSizeSm content2`,children:e.manager})]}),(0,c.jsx)(`div`,{style:{opacity:t.selected?1:.5},children:e.code})]})})}},y={args:{disabled:!0,value:d[0]}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
2
+ name: "Объекты",
3
+ render: function Render(args) {
4
+ const [, updateArgs] = useArgs<SelectProps<DepartmentOption>>();
5
+ return <Select {...args} value={args.value ?? departmentOptions[1]} onChange={value => {
6
+ args.onChange(value);
7
+ updateArgs({
8
+ value
9
+ });
10
+ }} />;
11
+ },
12
+ args: {
13
+ value: departmentOptions[1]
14
+ }
15
+ }`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
16
+ name: "Примитивы",
17
+ render: () => {
18
+ const [value, setValue] = useState<(typeof primitiveOptions)[number] | undefined>(primitiveOptions[1]);
19
+ return <Select label="Статус" description="Пример использования низкоуровневого Select со строковыми значениями." placeholder="Выберите статус" options={primitiveOptions} value={value} onChange={setValue} getOptionKey={option => option} getOptionLabel={option => option} size="md" />;
20
+ }
21
+ }`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
22
+ render: function Render(args) {
23
+ const [, updateArgs] = useArgs<SelectProps<DepartmentOption>>();
24
+ return <Select {...args} onChange={value => {
25
+ args.onChange(value);
26
+ updateArgs({
27
+ value
28
+ });
29
+ }} />;
30
+ }
31
+ }`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
32
+ name: "Группированные опции",
33
+ render: function Render(args) {
34
+ const [, updateArgs] = useArgs<SelectProps<DepartmentOption>>();
35
+ return <Select {...args} onChange={value => {
36
+ args.onChange(value);
37
+ updateArgs({
38
+ value
39
+ });
40
+ }} getOptionGroup={option => ({
41
+ key: option.direction,
42
+ label: option.direction
43
+ })} optionsMaxWidth="40rem" />;
44
+ }
45
+ }`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
46
+ name: "Кастомный рендер",
47
+ render: function Render(args) {
48
+ const [, updateArgs] = useArgs<SelectProps<DepartmentOption>>();
49
+ return <Select {...args} value={args.value ?? departmentOptions[0]} onChange={value => {
50
+ args.onChange(value);
51
+ updateArgs({
52
+ value
53
+ });
54
+ }} renderValue={option => \`\${option.code} · \${option.name}\`} renderOption={(option, state) => <>
55
+ <div className="flexEllipsis">
56
+ <div>{option.name}</div>
57
+ <div className="fontSizeSm content2">{option.manager}</div>
58
+ </div>
59
+ <div style={{
60
+ opacity: state.selected ? 1 : 0.5
61
+ }}>{option.code}</div>
62
+ </>} />;
63
+ }
64
+ }`,...v.parameters?.docs?.source}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
65
+ args: {
66
+ disabled: true,
67
+ value: departmentOptions[0]
68
+ }
69
+ }`,...y.parameters?.docs?.source}}},b=[`ControlledObjects`,`PrimitiveOptions`,`Placeholder`,`GroupedOptions`,`CustomOptionLayout`,`Disabled`]})))()}export{g as a,x as c,_ as i,v as n,h as o,y as r,o as s,m as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./ui.module-CHEKb9Cb.js";var o,s;function c(){return(c=e((()=>{o=t(),s=({text:e,highlight:t})=>t?e.split(RegExp(`(${t})`,`gi`)).map((e,n)=>e.toLowerCase()===t.toLowerCase()?(0,o.jsx)(`mark`,{children:e},n):e):e})))()}function l({label:e,code:t,highlight:r,labelClassName:a,codeClassName:o}){return(0,u.jsxs)(`div`,{className:i.uiOptionBase,children:[(0,u.jsx)(`div`,{className:n(i.uiOptionText,`flexEllipsis`,a),children:(0,u.jsx)(s,{text:e,highlight:r})}),t&&(0,u.jsx)(`div`,{className:n(i.uiOptionCode,o),children:(0,u.jsx)(s,{text:t,highlight:r})})]})}var u;function d(){return(d=e((()=>{r(),c(),a(),u=t(),l.__docgenInfo={description:`Универсальный рендерер опции. Используется и в single-select, и в multi-select.`,methods:[],displayName:`SelectOptionContent`,props:{label:{required:!0,tsType:{name:`string`},description:``},code:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},labelClassName:{required:!1,tsType:{name:`string`},description:`Приватный визуальный modifier label для специализированного владельца option.`},codeClassName:{required:!1,tsType:{name:`string`},description:`Отдельный modifier code, потому что code задаёт собственный variable-font weight.`}}}})))()}export{d as n,l as t};
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CZ0KI0zu.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./ui.module-DjxH5szp.js";var o,s;function c(){return(c=e((()=>{o=t(),s=({text:e,highlight:t})=>t?e.split(RegExp(`(${t})`,`gi`)).map((e,n)=>e.toLowerCase()===t.toLowerCase()?(0,o.jsx)(`mark`,{children:e},n):e):e})))()}function l({label:e,code:t,highlight:r,labelClassName:a,codeClassName:o}){return(0,u.jsxs)(`div`,{className:i.uiOptionBase,children:[(0,u.jsx)(`div`,{className:n(i.uiOptionText,`flexEllipsis`,a),children:(0,u.jsx)(s,{text:e,highlight:r})}),t&&(0,u.jsx)(`div`,{className:n(i.uiOptionCode,o),children:(0,u.jsx)(s,{text:t,highlight:r})})]})}var u;function d(){return(d=e((()=>{r(),c(),a(),u=t(),l.__docgenInfo={description:`Универсальный рендерер опции. Используется и в single-select, и в multi-select.`,methods:[],displayName:`SelectOptionContent`,props:{label:{required:!0,tsType:{name:`string`},description:``},code:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},labelClassName:{required:!1,tsType:{name:`string`},description:`Приватный визуальный modifier label для специализированного владельца option.`},codeClassName:{required:!1,tsType:{name:`string`},description:`Отдельный modifier code, потому что code задаёт собственный variable-font weight.`}}}})))()}export{d as n,l as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./SerializableSelect.stories-BWHyUHbr.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:p,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"./SerializableSelect.stories-Dk_0LHfx.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:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`SerializableSelect`}),`
3
3
  `,(0,S.jsx)(o,{children:`Select для сериализуемых значений и конфигурационных сценариев с key/label описанием option`}),`
4
4
  `,(0,S.jsx)(t.p,{children:`SerializableSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.