@ryuzaki13/react-foundation-ui 3.5.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (594) hide show
  1. package/dist/badge/index.js +1 -1
  2. package/dist/barcode-scanner/index.js +2 -2
  3. package/dist/base-table/index.js +1 -1
  4. package/dist/button/Button.d.ts +4 -2
  5. package/dist/button/Button.d.ts.map +1 -1
  6. package/dist/button/index.js +1 -1
  7. package/dist/chunks/{CalendarView-CwbPJG2Y.js → CalendarView-BCXVjLFz.js} +23 -13
  8. package/dist/chunks/CalendarView-BCXVjLFz.js.map +1 -0
  9. package/dist/chunks/OptionContentContainer-CWHlfm5Z.js +14 -0
  10. package/dist/chunks/OptionContentContainer-CWHlfm5Z.js.map +1 -0
  11. package/dist/chunks/{TextEditorLexicalClient-BRp8jHId.js → TextEditorLexicalClient-DrSVnvOe.js} +4 -4
  12. package/dist/chunks/{TextEditorLexicalClient-BRp8jHId.js.map → TextEditorLexicalClient-DrSVnvOe.js.map} +1 -1
  13. package/dist/chunks/{base-table-BHmboNzl.js → base-table-BBp5WMDM.js} +5 -5
  14. package/dist/chunks/{base-table-BHmboNzl.js.map → base-table-BBp5WMDM.js.map} +1 -1
  15. package/dist/chunks/button-DudCl375.js +75 -0
  16. package/dist/chunks/button-DudCl375.js.map +1 -0
  17. package/dist/chunks/context-menu-CrSXJxQL.js +621 -0
  18. package/dist/chunks/context-menu-CrSXJxQL.js.map +1 -0
  19. package/dist/chunks/{date-input-Crijdmmq.js → date-input-CzCDou4s.js} +10 -7
  20. package/dist/chunks/{date-input-Crijdmmq.js.map → date-input-CzCDou4s.js.map} +1 -1
  21. package/dist/chunks/flex-D86M_h-0.js +222 -0
  22. package/dist/chunks/flex-D86M_h-0.js.map +1 -0
  23. package/dist/chunks/{floating-arrow-DKUKx2ZQ.js → floating-arrow-B_iSbzUZ.js} +19 -18
  24. package/dist/chunks/{floating-arrow-DKUKx2ZQ.js.map → floating-arrow-B_iSbzUZ.js.map} +1 -1
  25. package/dist/chunks/{grid-dI94AAbi.js → grid-CFuzBigM.js} +77 -68
  26. package/dist/chunks/grid-CFuzBigM.js.map +1 -0
  27. package/dist/chunks/{misc-CGQOXXCy.js → misc-Cm_LDrUD.js} +120 -97
  28. package/dist/chunks/misc-Cm_LDrUD.js.map +1 -0
  29. package/dist/chunks/{modal-febBsMyR.js → modal-Dz5TzkTB.js} +36 -27
  30. package/dist/chunks/modal-Dz5TzkTB.js.map +1 -0
  31. package/dist/chunks/{picker-BA6okKnz.js → picker-SJXnHwsj.js} +144 -121
  32. package/dist/chunks/picker-SJXnHwsj.js.map +1 -0
  33. package/dist/chunks/popover-BJH-yHvb.js +263 -0
  34. package/dist/chunks/popover-BJH-yHvb.js.map +1 -0
  35. package/dist/chunks/{select-DblNSc5H.js → select--oIrv7SC.js} +98 -104
  36. package/dist/chunks/select--oIrv7SC.js.map +1 -0
  37. package/dist/chunks/separator-CHpBud1e.js +18 -0
  38. package/dist/chunks/separator-CHpBud1e.js.map +1 -0
  39. package/dist/chunks/{sortable-CQmMHAF8.js → sortable-BujAJgFa.js} +5 -3
  40. package/dist/chunks/{sortable-CQmMHAF8.js.map → sortable-BujAJgFa.js.map} +1 -1
  41. package/dist/chunks/{table-BnvjPaE1.js → table-BDY9Zw--.js} +2 -2
  42. package/dist/chunks/{table-BnvjPaE1.js.map → table-BDY9Zw--.js.map} +1 -1
  43. package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -1
  44. package/dist/context-menu/components/ContextMenu.d.ts +16 -9
  45. package/dist/context-menu/components/ContextMenu.d.ts.map +1 -1
  46. package/dist/context-menu/components/ContextMenuTrigger.d.ts +6 -4
  47. package/dist/context-menu/components/ContextMenuTrigger.d.ts.map +1 -1
  48. package/dist/context-menu/components/DropdownMenu.d.ts +12 -7
  49. package/dist/context-menu/components/DropdownMenu.d.ts.map +1 -1
  50. package/dist/context-menu/components/DropdownMenuTrigger.d.ts +6 -4
  51. package/dist/context-menu/components/DropdownMenuTrigger.d.ts.map +1 -1
  52. package/dist/context-menu/components/MenuContent.d.ts +6 -4
  53. package/dist/context-menu/components/MenuContent.d.ts.map +1 -1
  54. package/dist/context-menu/components/MenuContext.d.ts +12 -7
  55. package/dist/context-menu/components/MenuContext.d.ts.map +1 -1
  56. package/dist/context-menu/components/MenuGroupLabel.d.ts +1 -1
  57. package/dist/context-menu/components/MenuGroupLabel.d.ts.map +1 -1
  58. package/dist/context-menu/components/MenuItem.d.ts.map +1 -1
  59. package/dist/context-menu/components/MenuRoot.d.ts +5 -5
  60. package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
  61. package/dist/context-menu/components/MenuSeparator.d.ts +1 -2
  62. package/dist/context-menu/components/MenuSeparator.d.ts.map +1 -1
  63. package/dist/context-menu/components/RadialMenuContent.d.ts +6 -4
  64. package/dist/context-menu/components/RadialMenuContent.d.ts.map +1 -1
  65. package/dist/context-menu/components/RadialMenuItem.d.ts +1 -1
  66. package/dist/context-menu/components/RadialMenuItem.d.ts.map +1 -1
  67. package/dist/context-menu/index.js +1 -1
  68. package/dist/date-input/index.js +2 -2
  69. package/dist/date-input/ui/CalendarDayView.d.ts +1 -1
  70. package/dist/date-input/ui/CalendarDayView.d.ts.map +1 -1
  71. package/dist/date-input/ui/CalendarMonthView.d.ts +1 -1
  72. package/dist/date-input/ui/CalendarMonthView.d.ts.map +1 -1
  73. package/dist/date-input/ui/CalendarView.d.ts.map +1 -1
  74. package/dist/date-input/ui/CalendarYearView.d.ts +1 -1
  75. package/dist/date-input/ui/CalendarYearView.d.ts.map +1 -1
  76. package/dist/date-input/ui/DateInput.d.ts.map +1 -1
  77. package/dist/date-time-input/index.js +10 -7
  78. package/dist/date-time-input/index.js.map +1 -1
  79. package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
  80. package/dist/detail/Detail.d.ts +6 -1
  81. package/dist/detail/Detail.d.ts.map +1 -1
  82. package/dist/detail/index.js +2 -2
  83. package/dist/detail/index.js.map +1 -1
  84. package/dist/disclosure/index.js +1 -1
  85. package/dist/errors/BadRequestPage.d.ts +1 -1
  86. package/dist/errors/BadRequestPage.d.ts.map +1 -1
  87. package/dist/errors/ErrorDisplay.d.ts +2 -2
  88. package/dist/errors/ErrorDisplay.d.ts.map +1 -1
  89. package/dist/errors/ErrorExplosion.d.ts +1 -2
  90. package/dist/errors/ErrorExplosion.d.ts.map +1 -1
  91. package/dist/errors/ForbiddenPage.d.ts +1 -1
  92. package/dist/errors/ForbiddenPage.d.ts.map +1 -1
  93. package/dist/errors/NotFoundPage.d.ts +1 -1
  94. package/dist/errors/NotFoundPage.d.ts.map +1 -1
  95. package/dist/errors/PageError.d.ts +1 -2
  96. package/dist/errors/PageError.d.ts.map +1 -1
  97. package/dist/errors/UnauthorizedPage.d.ts +1 -1
  98. package/dist/errors/UnauthorizedPage.d.ts.map +1 -1
  99. package/dist/errors/ViewNotChanged.d.ts +1 -2
  100. package/dist/errors/ViewNotChanged.d.ts.map +1 -1
  101. package/dist/errors/index.js +74 -44
  102. package/dist/errors/index.js.map +1 -1
  103. package/dist/expandable-action-panel/index.js +2 -2
  104. package/dist/flex/Flex.d.ts +6 -3
  105. package/dist/flex/Flex.d.ts.map +1 -1
  106. package/dist/flex/FlexCenter.d.ts +1 -1
  107. package/dist/flex/FlexCenter.d.ts.map +1 -1
  108. package/dist/flex/FlexContainer.d.ts +7 -1
  109. package/dist/flex/FlexContainer.d.ts.map +1 -1
  110. package/dist/flex/FlexItem.d.ts +7 -1
  111. package/dist/flex/FlexItem.d.ts.map +1 -1
  112. package/dist/flex/FlexSpacer.d.ts +7 -1
  113. package/dist/flex/FlexSpacer.d.ts.map +1 -1
  114. package/dist/flex/PredefinedFlex.d.ts +7 -1
  115. package/dist/flex/PredefinedFlex.d.ts.map +1 -1
  116. package/dist/flex/index.js +1 -1
  117. package/dist/floating-arrow/FloatingArrow.d.ts +4 -1
  118. package/dist/floating-arrow/FloatingArrow.d.ts.map +1 -1
  119. package/dist/floating-arrow/index.js +1 -1
  120. package/dist/grid/Grid.d.ts +4 -2
  121. package/dist/grid/Grid.d.ts.map +1 -1
  122. package/dist/grid/GridContainer.d.ts +7 -1
  123. package/dist/grid/GridContainer.d.ts.map +1 -1
  124. package/dist/grid/GridItem.d.ts +7 -1
  125. package/dist/grid/GridItem.d.ts.map +1 -1
  126. package/dist/grid/index.js +1 -1
  127. package/dist/image/index.js +3 -3
  128. package/dist/layout-picker/index.js +11 -13
  129. package/dist/layout-picker/index.js.map +1 -1
  130. package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
  131. package/dist/list/List.d.ts +9 -9
  132. package/dist/list/List.d.ts.map +1 -1
  133. package/dist/list/index.js +23 -16
  134. package/dist/list/index.js.map +1 -1
  135. package/dist/listbox/Listbox.d.ts.map +1 -1
  136. package/dist/listbox/index.js +10 -16
  137. package/dist/listbox/index.js.map +1 -1
  138. package/dist/misc/CopyTextWrapper.d.ts +1 -1
  139. package/dist/misc/CopyTextWrapper.d.ts.map +1 -1
  140. package/dist/misc/OneStepScroller.d.ts +1 -1
  141. package/dist/misc/OneStepScroller.d.ts.map +1 -1
  142. package/dist/misc/Scrollable.d.ts +9 -7
  143. package/dist/misc/Scrollable.d.ts.map +1 -1
  144. package/dist/misc/SkeletonLine.d.ts +1 -1
  145. package/dist/misc/SkeletonLine.d.ts.map +1 -1
  146. package/dist/misc/StateIcon.d.ts +6 -7
  147. package/dist/misc/StateIcon.d.ts.map +1 -1
  148. package/dist/misc/index.d.ts +1 -0
  149. package/dist/misc/index.d.ts.map +1 -1
  150. package/dist/misc/index.js +1 -1
  151. package/dist/modal/Modal.d.ts +14 -5
  152. package/dist/modal/Modal.d.ts.map +1 -1
  153. package/dist/modal/index.js +1 -1
  154. package/dist/multi-select/index.js +247 -232
  155. package/dist/multi-select/index.js.map +1 -1
  156. package/dist/multi-select/ui/MultiSelect.d.ts +7 -2
  157. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  158. package/dist/multi-select/ui/ODataMultiSelect.d.ts +1 -2
  159. package/dist/multi-select/ui/ODataMultiSelect.d.ts.map +1 -1
  160. package/dist/notifications/index.d.ts +1 -1
  161. package/dist/notifications/index.d.ts.map +1 -1
  162. package/dist/notifications/index.js +45 -31
  163. package/dist/notifications/index.js.map +1 -1
  164. package/dist/notifications/model/NotificationsProvider.d.ts +2 -18
  165. package/dist/notifications/model/NotificationsProvider.d.ts.map +1 -1
  166. package/dist/notifications/model/index.d.ts +4 -0
  167. package/dist/notifications/model/index.d.ts.map +1 -1
  168. package/dist/notifications/model/notificationsContext.d.ts +4 -0
  169. package/dist/notifications/model/notificationsContext.d.ts.map +1 -0
  170. package/dist/notifications/model/useNotificationById.d.ts +4 -0
  171. package/dist/notifications/model/useNotificationById.d.ts.map +1 -0
  172. package/dist/notifications/model/useNotificationHistory.d.ts +6 -0
  173. package/dist/notifications/model/useNotificationHistory.d.ts.map +1 -0
  174. package/dist/notifications/model/useNotifications.d.ts +3 -0
  175. package/dist/notifications/model/useNotifications.d.ts.map +1 -0
  176. package/dist/notifications/model/useNotificationsStore.d.ts +3 -0
  177. package/dist/notifications/model/useNotificationsStore.d.ts.map +1 -0
  178. package/dist/notifications/model/useNotify.d.ts +17 -0
  179. package/dist/notifications/model/useNotify.d.ts.map +1 -0
  180. package/dist/notifications/ui/NotificationsHost.d.ts +2 -1
  181. package/dist/notifications/ui/NotificationsHost.d.ts.map +1 -1
  182. package/dist/option/Option.d.ts +3 -3
  183. package/dist/option/OptionContentContainer.d.ts +7 -0
  184. package/dist/option/OptionContentContainer.d.ts.map +1 -0
  185. package/dist/option/index.js.map +1 -1
  186. package/dist/picker/PickerOptions.d.ts +3 -1
  187. package/dist/picker/PickerOptions.d.ts.map +1 -1
  188. package/dist/picker/PickerPopup.d.ts +1 -1
  189. package/dist/picker/PickerPopup.d.ts.map +1 -1
  190. package/dist/picker/PickerTriggerActions.d.ts +7 -2
  191. package/dist/picker/PickerTriggerActions.d.ts.map +1 -1
  192. package/dist/picker/PickerTriggerInput.d.ts +7 -2
  193. package/dist/picker/PickerTriggerInput.d.ts.map +1 -1
  194. package/dist/picker/index.js +1 -1
  195. package/dist/polymorphic/PolymorphicComponent.d.ts +1 -1
  196. package/dist/polymorphic/PolymorphicComponent.d.ts.map +1 -1
  197. package/dist/polymorphic/index.js +3 -1
  198. package/dist/polymorphic/index.js.map +1 -1
  199. package/dist/popover/FloatingPopover.d.ts +1 -1
  200. package/dist/popover/FloatingPopover.d.ts.map +1 -1
  201. package/dist/popover/FloatingTooltip.d.ts +2 -2
  202. package/dist/popover/FloatingTooltip.d.ts.map +1 -1
  203. package/dist/popover/components/Popover.d.ts +11 -10
  204. package/dist/popover/components/Popover.d.ts.map +1 -1
  205. package/dist/popover/components/PopoverContent.d.ts +6 -4
  206. package/dist/popover/components/PopoverContent.d.ts.map +1 -1
  207. package/dist/popover/components/PopoverContext.d.ts +2 -1
  208. package/dist/popover/components/PopoverContext.d.ts.map +1 -1
  209. package/dist/popover/components/PopoverTrigger.d.ts +1 -1
  210. package/dist/popover/components/PopoverTrigger.d.ts.map +1 -1
  211. package/dist/popover/index.js +1 -1
  212. package/dist/preset-range-date-input/index.js +2 -2
  213. package/dist/preset-select/index.js +1 -1
  214. package/dist/radio-button/RadioButton.d.ts +1 -1
  215. package/dist/radio-button/RadioButton.d.ts.map +1 -1
  216. package/dist/radio-button/index.js +5 -2
  217. package/dist/radio-button/index.js.map +1 -1
  218. package/dist/select/ODataSelect.d.ts +1 -2
  219. package/dist/select/ODataSelect.d.ts.map +1 -1
  220. package/dist/select/Select.d.ts.map +1 -1
  221. package/dist/select/index.js +1 -1
  222. package/dist/separator/Separator.d.ts +1 -1
  223. package/dist/separator/Separator.d.ts.map +1 -1
  224. package/dist/separator/index.js +1 -1
  225. package/dist/simple-table/index.js +1 -1
  226. package/dist/slider/Slider.d.ts.map +1 -1
  227. package/dist/slider/SliderInput.d.ts.map +1 -1
  228. package/dist/slider/SliderPopoverToggle.d.ts +11 -0
  229. package/dist/slider/SliderPopoverToggle.d.ts.map +1 -0
  230. package/dist/slider/index.js +299 -278
  231. package/dist/slider/index.js.map +1 -1
  232. package/dist/sortable/Sortable.d.ts.map +1 -1
  233. package/dist/sortable/SortableDragHandle.d.ts +1 -1
  234. package/dist/sortable/SortableDragHandle.d.ts.map +1 -1
  235. package/dist/sortable/index.js +1 -1
  236. package/dist/state-select/index.js +1 -1
  237. package/dist/styles.css +1 -1
  238. package/dist/table/index.js +1 -1
  239. package/dist/table-editor/index.js +1 -1
  240. package/dist/table-sorting/index.js +1 -1
  241. package/dist/tabs/index.js +27 -28
  242. package/dist/tabs/index.js.map +1 -1
  243. package/dist/tabs/ui/TabsBox.d.ts +1 -1
  244. package/dist/tabs/ui/TabsBox.d.ts.map +1 -1
  245. package/dist/tabs/ui/TabsLayout.d.ts +11 -7
  246. package/dist/tabs/ui/TabsLayout.d.ts.map +1 -1
  247. package/dist/tabs/ui/TabsPanel.d.ts +3 -3
  248. package/dist/tabs/ui/TabsPanel.d.ts.map +1 -1
  249. package/dist/tabs/ui/TabsTabList.d.ts +2 -2
  250. package/dist/tabs/ui/TabsTabList.d.ts.map +1 -1
  251. package/dist/text/HighlightText.d.ts +2 -2
  252. package/dist/text/HighlightText.d.ts.map +1 -1
  253. package/dist/text/index.js +7 -2
  254. package/dist/text/index.js.map +1 -1
  255. package/dist/text-editor/index.js +2 -2
  256. package/dist/toolbar/Toolbar.d.ts +8 -2
  257. package/dist/toolbar/Toolbar.d.ts.map +1 -1
  258. package/dist/toolbar/index.js +8 -4
  259. package/dist/toolbar/index.js.map +1 -1
  260. package/dist/tree-select/TreeNodeContent.d.ts +3 -1
  261. package/dist/tree-select/TreeNodeContent.d.ts.map +1 -1
  262. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  263. package/dist/tree-select/index.js +409 -332
  264. package/dist/tree-select/index.js.map +1 -1
  265. package/dist/tree-table/index.js +1 -1
  266. package/package.json +3 -3
  267. package/storybook-static/assets/{Badge-BKRvorSi.js → Badge-CV3f-YLa.js} +1 -1
  268. package/storybook-static/assets/{Badge.stories-19yFfupy.js → Badge.stories-BUPuimKi.js} +1 -1
  269. package/storybook-static/assets/{BadgeList-DMkfxply.js → BadgeList-CDDAItI6.js} +1 -1
  270. package/storybook-static/assets/{BarcodeScannerDialog.stories-DdnHxu5x.js → BarcodeScannerDialog.stories-teB8ep3A.js} +1 -1
  271. package/storybook-static/assets/{Button-Di-0Ionw.js → Button-BW8cBp03.js} +1 -1
  272. package/storybook-static/assets/{Button-CoOZeR_z.js → Button-CV4tslOZ.js} +2 -2
  273. package/storybook-static/assets/{Button.stories-Bd1To5BN.js → Button.stories-DKlzPZqU.js} +1 -1
  274. package/storybook-static/assets/CalendarView-CX2J7c6F.js +1 -0
  275. package/storybook-static/assets/{CheckBox-DfRTTXg1.js → CheckBox-BTr4z78V.js} +1 -1
  276. package/storybook-static/assets/{CheckBox-DSmGYEML.js → CheckBox-BWZ_P_3Q.js} +1 -1
  277. package/storybook-static/assets/{CheckBox.stories-DaldWgEI.js → CheckBox.stories-BUaJvDIu.js} +1 -1
  278. package/storybook-static/assets/{Color-6AOWCN3U-DIhia6KS.js → Color-6AOWCN3U-DmrUSa8T.js} +1 -1
  279. package/storybook-static/assets/{ContextMenu-BGMQHT9V.js → ContextMenu-DsJnOtZ9.js} +6 -2
  280. package/storybook-static/assets/ContextMenu-wBO-KcfV.js +33 -0
  281. package/storybook-static/assets/ContextMenu.stories-CNOrf21k.js +37 -0
  282. package/storybook-static/assets/{DateInput-DUl5Bb0j.js → DateInput-DbZNB8s8.js} +8 -1
  283. package/storybook-static/assets/{DateInput-MgdMtvtr.js → DateInput-xQJfyfF-.js} +1 -1
  284. package/storybook-static/assets/{DateInput.stories-B6Ol0Ak3.js → DateInput.stories-DAku4mZt.js} +1 -1
  285. package/storybook-static/assets/{DateRangePresetSelect-CPj0pSGc.js → DateRangePresetSelect-BPlpCA6c.js} +1 -1
  286. package/storybook-static/assets/{DateRangePresetSelect-C4MVqjXa.js → DateRangePresetSelect-DHoyZyQT.js} +1 -1
  287. package/storybook-static/assets/{DateRangePresetSelect.stories-tPaMURtH.js → DateRangePresetSelect.stories-DRvogj0c.js} +1 -1
  288. package/storybook-static/assets/{Detail-DnHTVRb5.js → Detail-mXagpId3.js} +1 -1
  289. package/storybook-static/assets/Detail.stories-D7Iwy0-s.js +56 -0
  290. package/storybook-static/assets/{Dialog-COpvqcXi.js → Dialog-CMqH_KAI.js} +1 -1
  291. package/storybook-static/assets/{Dialog-LMnrvBpx.js → Dialog-qRvPPGeh.js} +1 -1
  292. package/storybook-static/assets/{Dialog.stories-BE2I5ny2.js → Dialog.stories-J_OyVz3O.js} +1 -1
  293. package/storybook-static/assets/{Disclosure-BZ3jd5nu.js → Disclosure-TdbPZNSu.js} +1 -1
  294. package/storybook-static/assets/{Disclosure.stories-cMcF8a8I.js → Disclosure.stories-DRoDp_Fu.js} +1 -1
  295. package/storybook-static/assets/DisclosureGroup-CeBLtSCA.js +2 -0
  296. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CurHdzu8.js → DocsRenderer-JROSPFPF-BdyHYSwz.js} +1 -1
  297. package/storybook-static/assets/{DropZone-DGMAbY1z.js → DropZone-BzRKfOtd.js} +1 -1
  298. package/storybook-static/assets/{DropZone-VEmgdfs6.js → DropZone-CODtJSpF.js} +1 -1
  299. package/storybook-static/assets/{DropZone.stories-B8N17-bV.js → DropZone.stories-BzNj9PbZ.js} +1 -1
  300. package/storybook-static/assets/DropdownMenu-Db-sh5Gd.js +21 -0
  301. package/storybook-static/assets/{ExpandableActionPanel-C7CFQZLD.js → ExpandableActionPanel-fOfO1fQV.js} +1 -1
  302. package/storybook-static/assets/{ExpandableActionPanel.stories-CnBr0s9R.js → ExpandableActionPanel.stories-C6Si_Nqk.js} +1 -1
  303. package/storybook-static/assets/{Flex-RpqsC-gQ.js → Flex-B9KnOucm.js} +1 -1
  304. package/storybook-static/assets/Flex.stories-ApvEyW4R.js +300 -0
  305. package/storybook-static/assets/FlexContainer-B1y3dds2.js +1 -0
  306. package/storybook-static/assets/{FlexItem-pu3E11Sf.js → FlexItem-pEuFUX72.js} +2 -2
  307. package/storybook-static/assets/FloatingPopover-CjNAEFQy.js +1 -0
  308. package/storybook-static/assets/FormattedTableCell-DZM2eYz5.js +15 -0
  309. package/storybook-static/assets/{Grid-CzO0Ae1r.js → Grid-CI6OKKu8.js} +2 -2
  310. package/storybook-static/assets/{Grid-BRnqEtg1.js → Grid-NnstE-Tl.js} +1 -1
  311. package/storybook-static/assets/{Grid.stories-DXY7Cvfu.js → Grid.stories-tklnzZVg.js} +4 -4
  312. package/storybook-static/assets/{GridContainer-fKYgDsLl.js → GridContainer-wl6R6ToY.js} +2 -2
  313. package/storybook-static/assets/{ImageCropper.stories-ZnvbFN71.js → ImageCropper.stories-DFN1M8eV.js} +1 -1
  314. package/storybook-static/assets/{ImageRenderer-DUOhCfac.js → ImageRenderer-CsIh2Gps.js} +1 -1
  315. package/storybook-static/assets/{ImageRenderer.stories-Dj6NQm2k.js → ImageRenderer.stories-CFg_ibLF.js} +1 -1
  316. package/storybook-static/assets/{ImageView.stories-QTzOsByD.js → ImageView.stories-HHd7jrjM.js} +1 -1
  317. package/storybook-static/assets/{ImageViewer.stories-CpnUEgZW.js → ImageViewer.stories-DgWkr466.js} +2 -2
  318. package/storybook-static/assets/{ImageViewerRuntime-B1PicLUw.js → ImageViewerRuntime-6z6zV9jF.js} +1 -1
  319. package/storybook-static/assets/{Input-DnFc_Pwx.js → Input-B7_Qlowr.js} +1 -1
  320. package/storybook-static/assets/{Input-B8eGQXlp.js → Input-Bvw9Sw0g.js} +1 -1
  321. package/storybook-static/assets/{Input.stories-C6CbYvZP.js → Input.stories-Dc2sDy4p.js} +1 -1
  322. package/storybook-static/assets/{InputDateTime-DoMduRde.js → InputDateTime-DUkFFY2j.js} +1 -1
  323. package/storybook-static/assets/{InputDateTime.stories--LHpvJjY.js → InputDateTime.stories-WZXWHrjO.js} +1 -1
  324. package/storybook-static/assets/{InputFile-CunQ8F4s.js → InputFile-CR2m2VQy.js} +1 -1
  325. package/storybook-static/assets/{InputFile-DFv3WAWa.js → InputFile-DJE39TQT.js} +1 -1
  326. package/storybook-static/assets/{InputFile.stories-B0WZhic1.js → InputFile.stories-BxE2jR8X.js} +1 -1
  327. package/storybook-static/assets/{InputFiles-DyiPQ_tH.js → InputFiles-CMkLLJOH.js} +1 -1
  328. package/storybook-static/assets/{InputFiles-CKDPmjWY.js → InputFiles-CTD2obOb.js} +1 -1
  329. package/storybook-static/assets/{InputFiles.stories-BbP_bEnL.js → InputFiles.stories-CeLIDMcH.js} +1 -1
  330. package/storybook-static/assets/{InputFilesList-BAIGwV7V.js → InputFilesList-tUr9ob4W.js} +1 -1
  331. package/storybook-static/assets/{InputImage-2G1pRNbw.js → InputImage-C0cIhVXy.js} +1 -1
  332. package/storybook-static/assets/{InputImage-ZvEB_TIT.js → InputImage-CoAYtfEV.js} +1 -1
  333. package/storybook-static/assets/{InputImage.stories-BiShLRcw.js → InputImage.stories-DpXv7PID.js} +1 -1
  334. package/storybook-static/assets/{InteractiveComponents-CT99QfHX.js → InteractiveComponents-Dmyiy24S.js} +1 -1
  335. package/storybook-static/assets/{InteractiveComponents.stories-BPTICQZz.js → InteractiveComponents.stories-B77oJ-sY.js} +1 -1
  336. package/storybook-static/assets/{LayoutPicker-BDpc8LBa.js → LayoutPicker-CJcSQqwn.js} +2 -2
  337. package/storybook-static/assets/{LayoutPicker-Cg_AM-pj.js → LayoutPicker-MTeK4NeO.js} +2 -1
  338. package/storybook-static/assets/{LayoutPicker.stories-Ca9WZdPW.js → LayoutPicker.stories-CcY356LI.js} +1 -1
  339. package/storybook-static/assets/Listbox-BGYVb_Ct.js +1 -0
  340. package/storybook-static/assets/{Listbox-LbbFtte9.js → Listbox-Cv9AQzQU.js} +2 -1
  341. package/storybook-static/assets/{Listbox.stories-xDpbFNZk.js → Listbox.stories-C9_cOdMY.js} +1 -1
  342. package/storybook-static/assets/Modal-CHcZjpHv.js +1 -0
  343. package/storybook-static/assets/{Modal-CXd2j0up.js → Modal-CnMZc0y1.js} +1 -1
  344. package/storybook-static/assets/{Modal.stories-cNLvFjmT.js → Modal.stories-DxITHZDl.js} +1 -1
  345. package/storybook-static/assets/{ModalManagerProvider-ClXvSB9a.js → ModalManagerProvider-vGXTuniv.js} +1 -1
  346. package/storybook-static/assets/MultiSelect-DDC0Nrrq.js +2 -0
  347. package/storybook-static/assets/{MultiSelect-Na2VdNy3.js → MultiSelect-DqdwstLi.js} +4 -1
  348. package/storybook-static/assets/MultiSelect-SJBp1Ymv.css +1 -0
  349. package/storybook-static/assets/{MultiSelect.stories-4nFshdtz.js → MultiSelect.stories-BPsGXWR2.js} +1 -1
  350. package/storybook-static/assets/NoData-BlGdaWe6.js +1 -0
  351. package/storybook-static/assets/NotificationsHost-gXnNQDp7.js +75 -0
  352. package/storybook-static/assets/NotificationsHost.stories-BdkJz6WZ.js +30 -0
  353. package/storybook-static/assets/{ODataMultiSelect-Cc09uTB8.js → ODataMultiSelect-C_Qs3Nl4.js} +1 -1
  354. package/storybook-static/assets/{ODataMultiSelect.stories-CzGzREa9.js → ODataMultiSelect.stories-DfmeONnP.js} +2 -2
  355. package/storybook-static/assets/{ODataSelect-DqoRg5pz.js → ODataSelect-C5fwwi_V.js} +1 -1
  356. package/storybook-static/assets/{ODataSelect.stories-BCcxERn3.js → ODataSelect.stories-BCDjW9Of.js} +2 -2
  357. package/storybook-static/assets/{ODataTreeMultiSelect-qZEcSE5O.js → ODataTreeMultiSelect-bU2QW5pt.js} +1 -1
  358. package/storybook-static/assets/{ODataTreeMultiSelect.stories-Bfees7Qr.js → ODataTreeMultiSelect.stories-FRT1vULJ.js} +1 -1
  359. package/storybook-static/assets/{ODataTreeSelect-IOVS6uQc.js → ODataTreeSelect-DmNcnlbz.js} +1 -1
  360. package/storybook-static/assets/{ODataTreeSelect.stories-CO7DClzd.js → ODataTreeSelect.stories-B9Mq-Iq-.js} +1 -1
  361. package/storybook-static/assets/OneStepScroller-X_sOKCiI.js +5 -0
  362. package/storybook-static/assets/Option-CSut1BkS.js +10 -0
  363. package/storybook-static/assets/OptionButton-B7wOhE1V.js +1 -0
  364. package/storybook-static/assets/OptionContent-DyxUQFu3.js +1 -0
  365. package/storybook-static/assets/OptionContentContainer-DnzI9J61.js +2 -0
  366. package/storybook-static/assets/{PeriodSelect-D-jXJf5C.js → PeriodSelect-C1Rh75We.js} +1 -1
  367. package/storybook-static/assets/{PeriodSelect-BAVDztkI.js → PeriodSelect-SjGK6Esp.js} +1 -1
  368. package/storybook-static/assets/{PeriodSelect.stories-CscsENT9.js → PeriodSelect.stories-Bch3cN5l.js} +1 -1
  369. package/storybook-static/assets/{PickerField-CRtltoce.js → PickerField-B8_SoyYo.js} +1 -1
  370. package/storybook-static/assets/PickerTriggerActions-DP0ZKD9L.js +2 -0
  371. package/storybook-static/assets/PolymorphicComponent-NBvIz9JD.js +1 -0
  372. package/storybook-static/assets/Popover-DF-J3Kwx.js +55 -0
  373. package/storybook-static/assets/Popover-NBKcB7nc.js +46 -0
  374. package/storybook-static/assets/Popover.stories-BGcAWbjW.js +63 -0
  375. package/storybook-static/assets/{PresetRangeDateInput-VZnM8RNV.js → PresetRangeDateInput-BAbrOHdm.js} +1 -1
  376. package/storybook-static/assets/{PresetRangeDateInput-CVPMYlEV.js → PresetRangeDateInput-DajjeSUc.js} +1 -1
  377. package/storybook-static/assets/{PresetRangeDateInput.stories-DdBWlSV-.js → PresetRangeDateInput.stories-Bf7YKKIQ.js} +1 -1
  378. package/storybook-static/assets/{PresetSelect-C7YYBjlL.js → PresetSelect-CfmPZsZF.js} +1 -1
  379. package/storybook-static/assets/{README-CeNQeTK-.js → README--xvSptx6.js} +1 -1
  380. package/storybook-static/assets/{README-DWzfTSuq.js → README-02MdhoYj.js} +1 -1
  381. package/storybook-static/assets/{README-w9FMhq0X.js → README-23NGVX-l.js} +1 -1
  382. package/storybook-static/assets/{README-CTF9mVZL.js → README-3bVCOGDc.js} +1 -1
  383. package/storybook-static/assets/{README-DkBG5Azm.js → README-5JPwN5I3.js} +1 -1
  384. package/storybook-static/assets/{README-DC0vNdOD.js → README-B35CL6W4.js} +1 -1
  385. package/storybook-static/assets/{README-Wli4AXG5.js → README-B4-JBF7Z.js} +1 -1
  386. package/storybook-static/assets/{README-BZlnzGAh.js → README-B5cX2glk.js} +1 -1
  387. package/storybook-static/assets/{README-DoxVtmRh.js → README-BGZN87_w.js} +1 -1
  388. package/storybook-static/assets/{README-Bvo0Qxde.js → README-BNTTx0rf.js} +1 -1
  389. package/storybook-static/assets/{README-Dmu5lsNT.js → README-BRvVmpDS.js} +1 -1
  390. package/storybook-static/assets/{README-UcyyK9jn.js → README-BUhZmzyX.js} +1 -1
  391. package/storybook-static/assets/{README-C-IUw1gX.js → README-Bb5AJH8-.js} +1 -1
  392. package/storybook-static/assets/{README-jvtwVY_n.js → README-Bew3UK8F.js} +1 -1
  393. package/storybook-static/assets/{README-DOBIWrus.js → README-Bk_A3mYt.js} +1 -1
  394. package/storybook-static/assets/{README-C_lKreF9.js → README-BlTlxb7s.js} +1 -1
  395. package/storybook-static/assets/{README-DyWhmOFY.js → README-BqHDKN3N.js} +1 -1
  396. package/storybook-static/assets/{README-B0FbTpix.js → README-BwhJA_em.js} +1 -1
  397. package/storybook-static/assets/{README-DMwF_O1R.js → README-BzhO6nn7.js} +1 -1
  398. package/storybook-static/assets/{README-8L1vpZcz.js → README-C-fD13Eo.js} +1 -1
  399. package/storybook-static/assets/{README-BL8ZNGNi.js → README-C2dMbb8z.js} +1 -1
  400. package/storybook-static/assets/{README-jQcGKqqm.js → README-C79arOAr.js} +1 -1
  401. package/storybook-static/assets/{README-C7N5_6-c.js → README-C7gQVhLI.js} +1 -1
  402. package/storybook-static/assets/{README-DADnaXLy.js → README-CBYHjEjb.js} +1 -1
  403. package/storybook-static/assets/{README-oKLTQYfV.js → README-CCqwPYoe.js} +1 -1
  404. package/storybook-static/assets/{README-DIWsYBR7.js → README-CJKEEjnI.js} +1 -1
  405. package/storybook-static/assets/{README-DrTR5pSr.js → README-CKDAq2L0.js} +1 -1
  406. package/storybook-static/assets/{README-BdsFByUw.js → README-CXNyh6Hq.js} +1 -1
  407. package/storybook-static/assets/{README-DlfWWC7n.js → README-Ce9KyfEM.js} +1 -1
  408. package/storybook-static/assets/{README-BGBxEe4u.js → README-CijcMn5M.js} +1 -1
  409. package/storybook-static/assets/{README-B0Nb0jf2.js → README-Cj8rKrp5.js} +1 -1
  410. package/storybook-static/assets/{README-DgXAMdBY.js → README-CkYzrLaV.js} +1 -1
  411. package/storybook-static/assets/{README-Bk1oSDWQ.js → README-CvqMprlS.js} +1 -1
  412. package/storybook-static/assets/{README-BGmO6U9j.js → README-CxURTiLk.js} +1 -1
  413. package/storybook-static/assets/{README-6XPUoxFl.js → README-DBsUCpqI.js} +1 -1
  414. package/storybook-static/assets/{README-CvaizZr1.js → README-DD2eTjZe.js} +1 -1
  415. package/storybook-static/assets/{README-D2AT2-yD.js → README-DJ53d7sm.js} +6 -3
  416. package/storybook-static/assets/{README-HWuoKwKL.js → README-DLlWedYv.js} +1 -1
  417. package/storybook-static/assets/{README-2NTkucdH.js → README-DRxLVin-.js} +1 -1
  418. package/storybook-static/assets/{README-b3wA6wFr.js → README-DTE8nUeJ.js} +1 -1
  419. package/storybook-static/assets/{README-Dm7CwuVP.js → README-DUh3QGlI.js} +14 -8
  420. package/storybook-static/assets/{README-ZxRwqfIH.js → README-DfrkaWMN.js} +1 -1
  421. package/storybook-static/assets/{README-DOi6rx7n.js → README-DlJZHUr9.js} +1 -1
  422. package/storybook-static/assets/{README-g1VWHzAJ.js → README-Dm0fH6Ac.js} +1 -1
  423. package/storybook-static/assets/{README-GChrAHFQ.js → README-DvgeFwUN.js} +1 -1
  424. package/storybook-static/assets/{README-CqiNQGIJ.js → README-DzfnNMhi.js} +1 -1
  425. package/storybook-static/assets/{README-Dr8TxFTe.js → README-EjFzMh6K.js} +1 -1
  426. package/storybook-static/assets/{README-BD-WSEvQ.js → README-Yp7ckVfi.js} +1 -1
  427. package/storybook-static/assets/{README-Brn9Tjjc.js → README-ZzFd6eCk.js} +1 -1
  428. package/storybook-static/assets/{README-na5mQX4V.js → README-cBsDQvLg.js} +1 -1
  429. package/storybook-static/assets/{README-CB5BpIBF.js → README-hq5hkADm.js} +1 -1
  430. package/storybook-static/assets/{README-_KzyG4dS.js → README-kYUqgwYs.js} +1 -1
  431. package/storybook-static/assets/{README-CTwfFqJG.js → README-l9uKtPiZ.js} +1 -1
  432. package/storybook-static/assets/{RadioButton-Dgkz1EWU.js → RadioButton-BDpUjCQB.js} +1 -1
  433. package/storybook-static/assets/RadioButton-BWpGjwT9.js +1 -0
  434. package/storybook-static/assets/{RadioButton.stories-DO14jTfm.js → RadioButton.stories-DrOP5Alc.js} +1 -1
  435. package/storybook-static/assets/{RadioGroup-Db0AhiKo.js → RadioGroup-BljW3G4c.js} +1 -1
  436. package/storybook-static/assets/{RadioGroup-BSiqjVai.js → RadioGroup-wzlE1seI.js} +1 -1
  437. package/storybook-static/assets/{RadioGroup.stories-C0D6n83q.js → RadioGroup.stories-6h1qt8DI.js} +1 -1
  438. package/storybook-static/assets/Scrollable-C7dBSd5R.js +1 -0
  439. package/storybook-static/assets/Scrollable-Dhpelsb3.js +18 -0
  440. package/storybook-static/assets/Scrollable.stories-Cj1mRfdX.js +1 -0
  441. package/storybook-static/assets/Select-BI1R-0nK.js +12 -0
  442. package/storybook-static/assets/{Select-D8X-SkP2.js → Select-n3InYkr7.js} +3 -1
  443. package/storybook-static/assets/{Select.stories-8_zvonmc.js → Select.stories-pppfr6nn.js} +1 -1
  444. package/storybook-static/assets/Separator-Bx2BKztN.js +1 -0
  445. package/storybook-static/assets/Separator-GtZBq7gL.js +14 -0
  446. package/storybook-static/assets/Separator.stories-DxY_qbJt.js +14 -0
  447. package/storybook-static/assets/{SerializableSelect-ii6T140l.js → SerializableSelect-DogkO2Bz.js} +1 -1
  448. package/storybook-static/assets/{SerializableSelect.stories-Ba3ABMGt.js → SerializableSelect.stories-C3OU-Qlh.js} +1 -1
  449. package/storybook-static/assets/{ShimmerText-C6vkZwUV.js → ShimmerText-XI1rbKrT.js} +1 -1
  450. package/storybook-static/assets/{ShimmerText.stories-CVpSxXHJ.js → ShimmerText.stories-lvn1uLl_.js} +1 -1
  451. package/storybook-static/assets/{SingleDateTimeInput-DpETPR89.js → SingleDateTimeInput-DK8vuf-o.js} +1 -1
  452. package/storybook-static/assets/{SingleDateTimeInput-96-mrjq8.js → SingleDateTimeInput-HNBKELgZ.js} +8 -1
  453. package/storybook-static/assets/{SingleDateTimeInput.stories-JhviurJO.js → SingleDateTimeInput.stories-DrV6WMT9.js} +1 -1
  454. package/storybook-static/assets/{Slider-B27TdvRV.js → Slider-D4ec91gY.js} +8 -1
  455. package/storybook-static/assets/Slider-bg4iXFEy.js +1 -0
  456. package/storybook-static/assets/{Slider.stories-d1YeKe5r.js → Slider.stories-DhJUqLP3.js} +1 -1
  457. package/storybook-static/assets/{SliderInput-D2d23mEI.js → SliderInput-CScKm1eT.js} +8 -1
  458. package/storybook-static/assets/SliderInput-o9cFbZ18.js +3 -0
  459. package/storybook-static/assets/{SliderInput.stories-CwqT79oE.js → SliderInput.stories-CDNoleib.js} +1 -1
  460. package/storybook-static/assets/{Sortable-DiJuiI6V.js → Sortable-DHqDBQQd.js} +4 -2
  461. package/storybook-static/assets/Sortable.stories-CEhPetnR.js +44 -0
  462. package/storybook-static/assets/{Splitter-QwdfWNbm.js → Splitter-BU9vPggP.js} +1 -1
  463. package/storybook-static/assets/{Splitter.stories-C2iDPz8c.js → Splitter.stories-BxKoQqiy.js} +1 -1
  464. package/storybook-static/assets/{StateSelect-D1ZDM6bC.js → StateSelect-Cp-vkDd6.js} +1 -1
  465. package/storybook-static/assets/{StateSelect-Bw9H1Cus.js → StateSelect-ez77Inqm.js} +1 -1
  466. package/storybook-static/assets/{StateSelect.stories-DEFvQ15O.js → StateSelect.stories-CpZV5ol8.js} +1 -1
  467. package/storybook-static/assets/{StatusIndicator-D6Pbdz37.js → StatusIndicator-BM7o68m0.js} +1 -1
  468. package/storybook-static/assets/{StatusIndicator.stories-COgpy5cK.js → StatusIndicator.stories-DmP9Drw5.js} +1 -1
  469. package/storybook-static/assets/{StringToggle.stories-BFwMh0Yd.js → StringToggle.stories-TO-VXZOK.js} +1 -1
  470. package/storybook-static/assets/{Switch-DyDk152g.js → Switch-BnYvYOX5.js} +1 -1
  471. package/storybook-static/assets/{Switch-Bmj2AItH.js → Switch-CfDHmCm8.js} +1 -1
  472. package/storybook-static/assets/{Switch.stories-C10NxPL4.js → Switch.stories-CX92UhBc.js} +1 -1
  473. package/storybook-static/assets/{Table-YcEwF4aO.js → Table-DkrNiq_n.js} +1 -1
  474. package/storybook-static/assets/{Table.stories-DgxFS9Sa.js → Table.stories-DsGm0-i7.js} +1 -1
  475. package/storybook-static/assets/{TableEditor.stories-CSMoxO4O.js → TableEditor.stories-sxgtoDe3.js} +1 -1
  476. package/storybook-static/assets/{Tabs-DOsPN2X1.js → Tabs-wMDcBXIR.js} +2 -3
  477. package/storybook-static/assets/Tabs.stories-BVXrXbOp.js +57 -0
  478. package/storybook-static/assets/{TabsBox-Ovukgo9G.js → TabsBox-5NiiCrDc.js} +1 -1
  479. package/storybook-static/assets/{TabsBox-B3REnb6D.css → TabsBox-DuBKU62M.css} +1 -1
  480. package/storybook-static/assets/{TagInput-BQBOGr9G.js → TagInput-BATz4lHU.js} +1 -1
  481. package/storybook-static/assets/{TagInput.stories-DAAyJlgm.js → TagInput.stories-D9IJIG_P.js} +1 -1
  482. package/storybook-static/assets/{Text-fdwuak_J.js → Text-Bswu5PVP.js} +1 -1
  483. package/storybook-static/assets/{Textarea-A22Efyk-.js → Textarea-AqkGgrCZ.js} +1 -1
  484. package/storybook-static/assets/{Textarea-D80ZPpEy.js → Textarea-CrkCHaE2.js} +1 -1
  485. package/storybook-static/assets/{Textarea.stories-DfaOYMoN.js → Textarea.stories-dtpJFQAX.js} +1 -1
  486. package/storybook-static/assets/{TimePanel-Bd5T_SfL.js → TimePanel-DGcJeL-M.js} +1 -1
  487. package/storybook-static/assets/{TimePanel.stories-D6TIpKp4.js → TimePanel.stories-DxPuKGPZ.js} +1 -1
  488. package/storybook-static/assets/{Toggle-DUyCRH0o.js → Toggle-DLZn_nZe.js} +1 -1
  489. package/storybook-static/assets/{Toggle-BvHMq6f_.js → Toggle-Dd08B6s5.js} +1 -1
  490. package/storybook-static/assets/{Toggle.stories-ZPgC-EWw.js → Toggle.stories-4h-5zxJC.js} +1 -1
  491. package/storybook-static/assets/{TreeMultiSelect-DTmB9s8s.js → TreeMultiSelect-4XUsw-my.js} +2 -1
  492. package/storybook-static/assets/{TreeMultiSelect-DTMybWfP.js → TreeMultiSelect-CF9O5XGt.js} +1 -1
  493. package/storybook-static/assets/{TreeMultiSelect.stories-1_HB74Gf.js → TreeMultiSelect.stories-m5UlkTdr.js} +1 -1
  494. package/storybook-static/assets/TreePickerBase-8R1GFz9r.js +76 -0
  495. package/storybook-static/assets/TreePickerBase-ClWTQVKW.css +1 -0
  496. package/storybook-static/assets/{TreeSelect-CTN6cRRr.js → TreeSelect-BPc7kRdh.js} +1 -1
  497. package/storybook-static/assets/{TreeSelect-UsZGYhUO.js → TreeSelect-CZme7Tu-.js} +2 -1
  498. package/storybook-static/assets/{TreeSelect.stories-B01pZcR9.js → TreeSelect.stories-DRVi0xZP.js} +1 -1
  499. package/storybook-static/assets/{TreeTable-dr3jK3Ih.js → TreeTable-CTBSrT9l.js} +1 -1
  500. package/storybook-static/assets/{TreeTable.stories-B1DPasDc.js → TreeTable.stories-oILl7PkB.js} +1 -1
  501. package/storybook-static/assets/{blocks-Cw5Dm88b.js → blocks-TIr5_lNX.js} +3 -3
  502. package/storybook-static/assets/{check-028VTQ8f.js → check-Du8FuQ6e.js} +1 -1
  503. package/storybook-static/assets/{chevron-down-CjXVIhzi.js → chevron-down-rt2_lu7i.js} +1 -1
  504. package/storybook-static/assets/{chevron-left-CktI1oFP.js → chevron-left-SdIvDBzr.js} +1 -1
  505. package/storybook-static/assets/{chevron-right-CF10QSRI.js → chevron-right-BU-pTQL2.js} +1 -1
  506. package/storybook-static/assets/{chunk-W22LQPXL-C0ehDnCq.js → chunk-W22LQPXL-C5x9oI8u.js} +1 -1
  507. package/storybook-static/assets/{circle-alert-s0HpHvQO.js → circle-alert-C-51hrK9.js} +1 -1
  508. package/storybook-static/assets/{circle-check-C7Lv1fv9.js → circle-check-DZ3A5xhF.js} +1 -1
  509. package/storybook-static/assets/{components-ClxgOUq5.js → components-DLKEXX2n.js} +3 -3
  510. package/storybook-static/assets/contextMenu-Cwftox4w.js +2 -0
  511. package/storybook-static/assets/{dom-DBd_DWF8.js → dom-D9_dPJ4G.js} +1 -1
  512. package/storybook-static/assets/{download-B1U5w3LU.js → download-BIHyCgGp.js} +1 -1
  513. package/storybook-static/assets/{floating-ui.react-CyNWkXBV.js → floating-ui.react-bcuT6Qw6.js} +1 -1
  514. package/storybook-static/assets/{foundationApi-CY0sxk8w.js → foundationApi-C5uBuKS6.js} +1 -1
  515. package/storybook-static/assets/{foundationLib-BCpSUA25.js → foundationLib-DRvN1n2m.js} +1 -1
  516. package/storybook-static/assets/{hooks-DjR-EyBl.js → hooks-DovKTAOG.js} +1 -1
  517. package/storybook-static/assets/iframe-CxmZ1iUO.js +1 -0
  518. package/storybook-static/assets/{iframe-woVbsQH3.js → iframe-DfqtMMgG.js} +4 -4
  519. package/storybook-static/assets/{info-DKbXBIbQ.js → info-CgVG4e4u.js} +1 -1
  520. package/storybook-static/assets/{odata-CMCuN2Rx.js → odata-BGOCt2tD.js} +1 -1
  521. package/storybook-static/assets/{odataStoryFixtures-a4Q2PLas.js → odataStoryFixtures--hE0dv-U.js} +1 -1
  522. package/storybook-static/assets/{react-D3CyilRt.js → react-CZ1I4PcW.js} +1 -1
  523. package/storybook-static/assets/{refresh-cw-DXEJelAO.js → refresh-cw-CGuUzrYs.js} +1 -1
  524. package/storybook-static/assets/{settings-2-CKbiQBX8.js → settings-2-BnIPgWLg.js} +1 -1
  525. package/storybook-static/assets/sortable-CSXMP4VV.js +1 -0
  526. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-CLptde2b.js → syntaxhighlighter-QEQV7K2Y-BXIJBARj.js} +1 -1
  527. package/storybook-static/assets/{trash-2-CPWRIQlJ.js → trash-2-25yeOC8e.js} +1 -1
  528. package/storybook-static/assets/{triangle-alert-XjzWCHp5.js → triangle-alert-0L7_o0IU.js} +1 -1
  529. package/storybook-static/assets/{ui-FA-1R8mO.css → ui-Bpz_yxm8.css} +1 -1
  530. package/storybook-static/assets/{uiClasses-DNnVkKPr.js → uiClasses-Bar5W7-L.js} +1 -1
  531. package/storybook-static/assets/{useODataSelectBase-ZGFa3pdT.js → useODataSelectBase-D9KnZAJ2.js} +1 -1
  532. package/storybook-static/assets/{useODataTreeData-DAdLowou.js → useODataTreeData-BRlsCagQ.js} +1 -1
  533. package/storybook-static/assets/usePickerQuery-B05uUMJ9.js +1 -0
  534. package/storybook-static/assets/usePickerTriggerController-YWagu6f6.js +6 -0
  535. package/storybook-static/assets/{x-D2Q9PGsq.js → x-i4zUW10Y.js} +1 -1
  536. package/storybook-static/iframe.html +2 -2
  537. package/storybook-static/index.json +1 -1
  538. package/storybook-static/project.json +1 -1
  539. package/dist/chunks/CalendarView-CwbPJG2Y.js.map +0 -1
  540. package/dist/chunks/button-D7GAU2Wa.js +0 -72
  541. package/dist/chunks/button-D7GAU2Wa.js.map +0 -1
  542. package/dist/chunks/context-menu-BQePxRpu.js +0 -532
  543. package/dist/chunks/context-menu-BQePxRpu.js.map +0 -1
  544. package/dist/chunks/flex-DtXK7OM4.js +0 -207
  545. package/dist/chunks/flex-DtXK7OM4.js.map +0 -1
  546. package/dist/chunks/grid-dI94AAbi.js.map +0 -1
  547. package/dist/chunks/misc-CGQOXXCy.js.map +0 -1
  548. package/dist/chunks/modal-febBsMyR.js.map +0 -1
  549. package/dist/chunks/picker-BA6okKnz.js.map +0 -1
  550. package/dist/chunks/popover-yl5DVe06.js +0 -245
  551. package/dist/chunks/popover-yl5DVe06.js.map +0 -1
  552. package/dist/chunks/select-DblNSc5H.js.map +0 -1
  553. package/dist/chunks/separator-CIqnk2z9.js +0 -15
  554. package/dist/chunks/separator-CIqnk2z9.js.map +0 -1
  555. package/storybook-static/assets/CalendarView-Dz8cY1fo.js +0 -1
  556. package/storybook-static/assets/ContextMenu-XS7B8QUC.js +0 -1
  557. package/storybook-static/assets/ContextMenu.stories-Dp2t2BZa.js +0 -37
  558. package/storybook-static/assets/CustomOptionButton-DNd0GDWp.js +0 -1
  559. package/storybook-static/assets/Detail.stories-CXg_w4qM.js +0 -56
  560. package/storybook-static/assets/DisclosureGroup-JNnTj18G.js +0 -2
  561. package/storybook-static/assets/DropdownMenu-xjOtBneA.js +0 -1
  562. package/storybook-static/assets/Flex.stories-CCVNsX23.js +0 -300
  563. package/storybook-static/assets/FlexContainer-BWyPlTMB.js +0 -1
  564. package/storybook-static/assets/FloatingPopover-D6tO24aO.js +0 -1
  565. package/storybook-static/assets/FormattedTableCell-CDaDfaXy.js +0 -15
  566. package/storybook-static/assets/Listbox-3Npc4PI_.js +0 -1
  567. package/storybook-static/assets/Modal-Ddmc8-2-.js +0 -1
  568. package/storybook-static/assets/MultiSelect-BkLCM22R.js +0 -2
  569. package/storybook-static/assets/MultiSelect-DI_UD1B-.css +0 -1
  570. package/storybook-static/assets/NoData-bUonNuRR.js +0 -1
  571. package/storybook-static/assets/NotificationsHost-CrLL4WK9.js +0 -44
  572. package/storybook-static/assets/NotificationsHost.stories-Ci2q0W9-.js +0 -29
  573. package/storybook-static/assets/OneStepScroller-B_IRz2Rw.js +0 -5
  574. package/storybook-static/assets/Option-fRoOLqLF.js +0 -10
  575. package/storybook-static/assets/OptionButton--hnpJ-88.js +0 -1
  576. package/storybook-static/assets/PickerTriggerActions-BDGEQPvP.js +0 -1
  577. package/storybook-static/assets/Popover-BYO0DlBg.js +0 -45
  578. package/storybook-static/assets/Popover-Byy9_Twt.js +0 -2
  579. package/storybook-static/assets/Popover.stories-8RhemIQg.js +0 -47
  580. package/storybook-static/assets/RadioButton-DMn-soQD.js +0 -1
  581. package/storybook-static/assets/Scrollable-BI3OE8gc.js +0 -1
  582. package/storybook-static/assets/Select-1MNiFkxm.js +0 -12
  583. package/storybook-static/assets/Slider-DbiDvmoV.js +0 -1
  584. package/storybook-static/assets/SliderInput-CzYn9gor.js +0 -2
  585. package/storybook-static/assets/Sortable.stories-DFCzTok0.js +0 -44
  586. package/storybook-static/assets/Tabs.stories-BdZilcp2.js +0 -57
  587. package/storybook-static/assets/TreePickerBase-CmFF9pWE.css +0 -1
  588. package/storybook-static/assets/TreePickerBase-Cu2mneBS.js +0 -76
  589. package/storybook-static/assets/contextMenu-CWGju9qn.js +0 -2
  590. package/storybook-static/assets/iframe-Dyd6jnSv.js +0 -1
  591. package/storybook-static/assets/sortable-CXLU2ip-.js +0 -1
  592. package/storybook-static/assets/usePickerQuery-CaO8hXyH.js +0 -1
  593. package/storybook-static/assets/usePickerTriggerController-DWjrt_q_.js +0 -6
  594. /package/storybook-static/assets/{ui.module-CyEEibCu.js → ui.module-0uniSGT-.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./Switch-DyDk152g.js";import{i as a,n as o,r as s,t as ee}from"./DisclosureGroup-JNnTj18G.js";import{n as c,t as te}from"./ExpandableActionPanel-C7CFQZLD.js";import{n as ne,t as l}from"./RadioButton-DMn-soQD.js";import{n as u,t as re}from"./SingleDateTimeInput-DpETPR89.js";import{n as d,t as f}from"./CheckBox-DSmGYEML.js";import{n as p,t as ie}from"./DropZone-VEmgdfs6.js";import{n as m}from"./iframe-woVbsQH3.js";import{n as ae,t as h}from"./Text-fdwuak_J.js";import{n as g,t as _}from"./Popover-Byy9_Twt.js";import{i as oe,n as se,r as v,t as ce}from"./BadgeList-DMkfxply.js";import{n as y,t as b}from"./Button-CoOZeR_z.js";import{a as x,n as le,r as ue,t as de}from"./Modal-Ddmc8-2-.js";import{n as fe,t as pe}from"./GridContainer-fKYgDsLl.js";import{n as me,t as he}from"./ModalManagerProvider-ClXvSB9a.js";import{n as ge,t as S}from"./ContextMenu-XS7B8QUC.js";import{a as C,l as w,o as T,t as E}from"./Input-B8eGQXlp.js";import{n as D,t as O}from"./DropdownMenu-xjOtBneA.js";import{n as _e,r as ve}from"./DateInput-MgdMtvtr.js";import{n as ye,t as k}from"./RadioGroup-BSiqjVai.js";import{n as A,t as j}from"./Select-1MNiFkxm.js";import{n as M,t as be}from"./DateRangePresetSelect-CPj0pSGc.js";import{n as xe,t as Se}from"./Dialog-LMnrvBpx.js";import{n as Ce,t as we}from"./InputFiles-CKDPmjWY.js";import{n as Te,t as Ee}from"./InputFile-CunQ8F4s.js";import{n as De,t as Oe}from"./InputImage-2G1pRNbw.js";import{n as ke,t as Ae}from"./LayoutPicker-BDpc8LBa.js";import{n as je,t as Me}from"./Listbox-3Npc4PI_.js";import{n as Ne,t as Pe}from"./MultiSelect-BkLCM22R.js";import{n as Fe,t as Ie}from"./PeriodSelect-D-jXJf5C.js";import{n as Le,t as Re}from"./PresetRangeDateInput-CVPMYlEV.js";import{i as ze,r as Be,t as Ve}from"./Slider-DbiDvmoV.js";import{n as N,r as He,t as Ue}from"./SliderInput-CzYn9gor.js";import{n as We,t as Ge}from"./StateSelect-D1ZDM6bC.js";import{n as Ke,t as P}from"./TabsBox-Ovukgo9G.js";import{n as qe,t as Je}from"./TagInput-BQBOGr9G.js";import{n as F,t as Ye}from"./Textarea-D80ZPpEy.js";import{n as I,t as Xe}from"./Toggle-DUyCRH0o.js";import{n as Ze,t as L}from"./TreeMultiSelect-DTMybWfP.js";import{n as Qe,t as $e}from"./treeStoryFixtures-DXHh9GL3.js";function et({onChange:e,...t}){let[n,r]=(0,R.useState)(()=>t.defaultValue??t.value??``),[i,a]=(0,R.useState)(()=>t.defaultValue??t.value??``),o=t=>{let n=t.trim();n!==i&&(a(n),e(n))},s=()=>{r(``),a(``),e(``)},ee=e=>{e.key===`Enter`&&(e.preventDefault(),o(n))},c=()=>{o(n)},te=e=>{r(e)};return(0,z.jsx)(E,{...t,value:n,onChange:te,onKeyDown:ee,onBlur:c,onClear:s})}var R,z;function B(){return(B=t((()=>{R=e(n(),1),w(),z=m(),et.__docgenInfo={description:``,methods:[],displayName:`InputSearch`,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:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})))()}function V({title:e,children:t}){return(0,W.jsxs)(`section`,{style:G,children:[(0,W.jsx)(`div`,{style:K,children:e}),t]})}function tt({initialValue:e={},label:t=`TreeMultiSelect`,description:n,optionsLayout:r=`tree`,nodes:i=$e,defaultExpandedCodeKeys:a}){let[o,s]=(0,U.useState)(e);return(0,W.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,W.jsx)(L,{label:t,description:n,nodes:i,value:o,onChange:s,optionsLayout:r,defaultExpandedCodeKeys:a}),(0,W.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(o)]})]})}function H(){let[e,t]=(0,U.useState)(`Значение`),[n,r]=(0,U.useState)(42),[a,o]=(0,U.useState)(``),[c,ne]=(0,U.useState)(`Комментарий`),[u,d]=(0,U.useState)(!0),[p,m]=(0,U.useState)(!1),[ae,g]=(0,U.useState)(`first`),[oe,se]=(0,U.useState)(!0),[y,x]=(0,U.useState)(!1),[fe,me]=(0,U.useState)(3),[ge,w]=(0,U.useState)(),[E,D]=(0,U.useState)([0,0]),[ve,ye]=(0,U.useState)(60),[A,M]=(0,U.useState)(J[0]),[xe,Ce]=(0,U.useState)([Y[0]]),[Te,De]=(0,U.useState)([`UI`,`Стили`]),[ke,je]=(0,U.useState)(`week`),[Ne,Fe]=(0,U.useState)(`information`),[Le,ze]=(0,U.useState)(`two-columns`),[He,We]=(0,U.useState)(new Date(2026,2,10)),[Ke,qe]=(0,U.useState)(new Date(2026,2,10,10,30)),[F,I]=(0,U.useState)(`today`),[Ze,L]=(0,U.useState)([new Date(2026,2,1),new Date(2026,2,10)]),[Qe,$e]=(0,U.useState)(`month`),[R,z]=(0,U.useState)(),[B,H]=(0,U.useState)([]),[G,K]=(0,U.useState)(),[X,Z]=(0,U.useState)([]),[at,Q]=(0,U.useState)(!1),[ot,$]=(0,U.useState)(!1),[st,ct]=(0,U.useState)();return(0,W.jsxs)(`div`,{style:nt,children:[(0,W.jsxs)(V,{title:`Text`,children:[(0,W.jsx)(h,{color:`primary`,children:`Основной`}),(0,W.jsx)(h,{color:`secondary`,children:`Дополнительный`}),(0,W.jsx)(h,{color:`muted`,children:`Приглушенный`}),(0,W.jsx)(h,{color:`accent`,children:`Акцентированный`}),(0,W.jsx)(h,{color:`brand`,children:`Брендовый`}),(0,W.jsx)(h,{color:`info`,children:`Информация`}),(0,W.jsx)(h,{color:`success`,children:`Успешно`}),(0,W.jsx)(h,{color:`warning`,children:`Предупреждение`}),(0,W.jsx)(h,{color:`error`,children:`Ошибка`})]}),(0,W.jsx)(V,{title:`Badge`,children:(0,W.jsxs)(ce,{children:[(0,W.jsx)(v,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,W.jsx)(v,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,W.jsx)(v,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,W.jsx)(v,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,W.jsx)(v,{tone:`info`,appearance:`solid`,children:`Информация`})]})}),(0,W.jsx)(V,{title:`Button`,children:(0,W.jsxs)(pe,{gap:`sm`,templateColumns:`1fr 1fr`,children:[(0,W.jsx)(b,{variant:`transparent`,children:`Действие`}),(0,W.jsx)(b,{variant:`ghost`,children:`Действие`}),(0,W.jsx)(b,{variant:`neutralOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`infoOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`successOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`warningOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`errorOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`neutral`,children:`Действие`}),(0,W.jsx)(b,{variant:`info`,children:`Действие`}),(0,W.jsx)(b,{variant:`success`,children:`Действие`}),(0,W.jsx)(b,{variant:`warning`,children:`Действие`}),(0,W.jsx)(b,{variant:`error`,children:`Действие`})]})}),(0,W.jsxs)(V,{title:`InputText`,children:[(0,W.jsx)(T,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,disabled:!0,value:e,onChange:t}),(0,W.jsx)(T,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t}),(0,W.jsx)(T,{required:!0,label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t,onClear:()=>t(``)})]}),(0,W.jsxs)(V,{title:`InputNumber`,children:[(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r,disabled:!0}),(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r,required:!0}),(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r}),(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r,onClear:()=>r(void 0)})]}),(0,W.jsx)(V,{title:`InputSearch`,children:(0,W.jsx)(et,{label:`Поиск`,placeholder:`Найти`,value:a,onChange:o})}),(0,W.jsx)(V,{title:`Textarea`,children:(0,W.jsx)(Ye,{label:`Комментарий`,required:!0,placeholder:`Многострочный комментарий`,rows:6,value:c,onChange:ne})}),(0,W.jsxs)(V,{title:`CheckBox`,children:[(0,W.jsx)(f,{label:`Опция`,description:`Описание чекбокса`,disabled:!0,value:u,onChange:d}),(0,W.jsx)(f,{label:`Опция`,description:`Описание чекбокса`,value:u,onChange:d}),(0,W.jsx)(f,{label:`Опция`,description:`Описание чекбокса`,value:u,onChange:d,indeterminate:!0})]}),(0,W.jsxs)(V,{title:`RadioButton`,children:[(0,W.jsx)(l,{label:`Опция`,description:`Описание радиокнопки`,disabled:!0,value:p,onChange:m}),(0,W.jsx)(l,{label:`Опция`,description:`Описание радиокнопки`,name:`radio-1`,value:p,onChange:m}),(0,W.jsx)(l,{label:`Опция`,description:`Описание радиокнопки`,name:`radio-1`,value:p,onChange:m})]}),(0,W.jsxs)(V,{title:`RadioGroup`,children:[(0,W.jsxs)(k,{label:`Радио группа`,description:`Вертикальная группа`,value:ae,onChange:g,orientation:`vertical`,"aria-label":`Вариант`,children:[(0,W.jsx)(k.Option,{value:`first`,label:`Первый`}),(0,W.jsx)(k.Option,{value:`second`,label:`Второй`}),(0,W.jsx)(k.Option,{value:`third`,label:`Третий`,description:`Новая опциональная опция`})]}),(0,W.jsxs)(k,{label:`Радио группа`,description:`Горизонтальная группа`,value:ae,onChange:g,orientation:`horizontal`,"aria-label":`Вариант`,children:[(0,W.jsx)(k.Option,{value:`first`,label:`Первый`}),(0,W.jsx)(k.Option,{value:`second`,label:`Второй`}),(0,W.jsx)(k.Option,{value:`third`,label:`Третий`,description:`Новая опциональная опция`})]})]}),(0,W.jsx)(V,{title:`Switch`,children:(0,W.jsx)(i,{label:`Уведомления`,description:`Устаревный компонент`,value:oe,onChange:se})}),(0,W.jsxs)(V,{title:`Toggle`,children:[(0,W.jsx)(Xe,{label:`Режим`,description:`Переключатель состояния`,value:y,onChange:x,checkedText:`Вкл`,uncheckedText:`Выкл`}),(0,W.jsx)(Xe,{label:`Режим`,description:`Переключатель состояния`,labelPosition:`after`,value:y,onChange:x,checkedText:`Вкл`,uncheckedText:`Выкл`})]}),(0,W.jsxs)(V,{title:`Slider`,children:[(0,W.jsx)(Ve,{label:`Уровень`,description:`Простой слайдер`,value:fe,min:0,max:100,onChange:me}),(0,W.jsx)(Ve,{label:`Уровень`,description:`Простой слайдер`,disabled:!0,marks:[{value:1,label:`m1`},{value:2,label:`m2`},{value:3,label:`m3`},{value:4,label:`m4`},{value:5,label:`m5`},{value:6,label:`m6`}],marksPosition:`index`,value:fe,min:0,max:100,onChange:me}),(0,W.jsx)(Be,{label:`Уровень`,description:`Диапазон`,marks:[{value:0,label:`m1`},{value:1,label:`m2`},{value:2,label:`m3`},{value:3,label:`m4`}],marksPosition:`index`,value:ge,min:0,max:100,onChange:w})]}),(0,W.jsxs)(V,{title:`SliderInput`,children:[(0,W.jsx)(Ue,{label:`Порог`,value:ve,min:0,max:100,onChange:ye}),(0,W.jsx)(N,{label:`Порог`,value:E,onChange:D,min:0,max:100,marks:[{value:0,label:`0`},{value:20,label:`20`},{value:40,label:`40`},{value:60,label:`60`},{value:80,label:`80`},{value:100,label:`100`}]}),(0,W.jsx)(N,{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],value:E,onChange:D}),(0,W.jsx)(N,{label:`Срок текстом`,description:`В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.`,placeholder:`Любой срок`,readonlyValueText:!0,min:0,max:25,marks:[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],marksPosition:`index`,value:E,onChange:D})]}),(0,W.jsxs)(V,{title:`Select`,children:[(0,W.jsx)(j,{label:`Статус`,description:`searchable`,searchable:!0,options:J,value:A,onChange:M,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,W.jsx)(j,{label:`Статус`,description:`disabled`,disabled:!0,options:J,value:A,onChange:M,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,W.jsx)(j,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:J,value:A,onChange:M,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,W.jsx)(j,{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,options:it,value:st,onChange:ct,getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40em`})]}),(0,W.jsx)(V,{title:`MultiSelect`,children:(0,W.jsx)(Pe,{label:`Города`,items:Y,value:xe,query:``,codeKey:`code`,textKey:`label`,onChange:Ce,onQuery:()=>void 0,onOpen:()=>void 0,onClose:()=>void 0})}),(0,W.jsx)(V,{title:`TreeMultiSelect`,children:(0,W.jsx)(tt,{})}),(0,W.jsx)(V,{title:`TagInput`,children:(0,W.jsx)(Je,{label:`Теги`,placeholder:`Добавить`,value:Te,onChange:De})}),(0,W.jsx)(V,{title:`Listbox`,children:(0,W.jsx)(Me,{options:rt,value:ke,onChange:e=>je(e)})}),(0,W.jsx)(V,{title:`StateSelect`,children:(0,W.jsx)(Ge,{label:`Состояние`,value:Ne,onChange:Fe})}),(0,W.jsx)(V,{title:`LayoutPicker`,children:(0,W.jsx)(Ae,{label:`Раскладка`,value:Le,onChange:ze,showPlaceholder:!0})}),(0,W.jsx)(V,{title:`SingleDateInput`,children:(0,W.jsx)(_e,{label:`Дата`,value:He,onChange:We,selectionMode:`week`})}),(0,W.jsx)(V,{title:`SingleDateTimeInput`,children:(0,W.jsx)(re,{label:`Дата и время`,value:Ke,onChange:qe})}),(0,W.jsx)(V,{title:`DateRangePresetSelect`,children:(0,W.jsx)(be,{label:`Период`,value:F??void 0,onChange:e=>I(e??null),onRangeChange:e=>L(e?.range??null),referenceDate:new Date(2026,2,10,12)})}),(0,W.jsx)(V,{title:`PresetRangeDateInput`,children:(0,W.jsx)(Re,{value:Ze,onChange:L,presetId:F??null,onPresetIdChange:e=>I(e??null),referenceDate:new Date(2026,2,10,12),presetLabel:`Быстрый диапазон`})}),(0,W.jsx)(V,{title:`PeriodSelect`,children:(0,W.jsx)(Ie,{label:`Группировка`,value:Qe,onChange:$e})}),(0,W.jsx)(V,{title:`InputFile`,children:(0,W.jsx)(Ee,{label:`Файл`,placeholder:`Выберите файл`,value:R,onChange:z,onClear:()=>z(void 0),readMode:`data-url`})}),(0,W.jsx)(V,{title:`InputFiles`,children:(0,W.jsx)(we,{label:`Файлы`,placeholder:`Выберите файлы`,value:B,onChange:H,readMode:`data-url`})}),(0,W.jsx)(V,{title:`InputImage`,children:(0,W.jsx)(Oe,{label:`Изображение`,value:G,onChange:K,onClear:()=>K(void 0)})}),(0,W.jsx)(V,{title:`DropZone`,children:(0,W.jsx)(ie,{value:X,multiple:!0,readMode:`data-url`,onChange:e=>Z(e),children:(0,W.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,textAlign:`center`},children:X.length?`Файлов: ${X.length}`:`Перетащите файлы`})})}),(0,W.jsxs)(V,{title:`TabsBox`,children:[(0,W.jsx)(P,{defaultValue:`first`,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Ещё одна панель`},{id:`quat`,title:`Четвертая`,content:`Четвертая панель`},{id:`five`,title:`Пятая`,content:`Пятая панель`}]}),(0,W.jsx)(P,{defaultValue:`first`,clean:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Ещё одна панель`},{id:`quat`,title:`Четвертая`,content:`Четвертая панель`},{id:`five`,title:`Пятая`,content:`Пятая панель`}]})]}),(0,W.jsxs)(V,{title:`TabsBox`,children:[(0,W.jsx)(P,{defaultValue:`first`,orientation:`vertical`,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]}),(0,W.jsx)(P,{defaultValue:`first`,orientation:`vertical`,clean:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]})]}),(0,W.jsxs)(V,{title:`Disclosure`,children:[(0,W.jsxs)(ee,{children:[(0,W.jsx)(s,{label:`Раскрыть 1`,children:`Содержимое панели 1`}),(0,W.jsx)(s,{label:`Раскрыть 2`,children:`Содержимое панели 2`}),(0,W.jsx)(s,{label:`Раскрыть 3`,children:`Содержимое панели 3`}),(0,W.jsx)(s,{label:`Раскрыть 4`,children:`Содержимое панели 4`})]}),(0,W.jsx)(s,{label:`Раскрыть 1`,tone:`secondary`,children:`Содержимое панели 1`})]}),(0,W.jsx)(V,{title:`ExpandableActionPanel`,children:(0,W.jsx)(te,{children:(0,W.jsx)(b,{variant:`transparent`,children:`Действие`})})}),(0,W.jsx)(V,{title:`Popover`,children:(0,W.jsxs)(_,{children:[(0,W.jsx)(_.Trigger,{children:(0,W.jsx)(b,{style:q,children:`Открыть`})}),(0,W.jsx)(_.Content,{children:({setClose:e})=>(0,W.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`,padding:`1em`,maxWidth:`14em`},children:[(0,W.jsx)(`div`,{children:`Содержимое popover`}),(0,W.jsx)(b,{onClick:e,children:`Закрыть`})]})})]})}),(0,W.jsx)(V,{title:`DropdownMenu`,children:(0,W.jsxs)(O,{children:[(0,W.jsx)(O.Trigger,{children:(0,W.jsx)(b,{style:q,children:`Действия`})}),(0,W.jsxs)(O.Content,{children:[(0,W.jsx)(O.Item,{children:`Редактировать`}),(0,W.jsx)(O.Item,{children:`Удалить`})]})]})}),(0,W.jsx)(V,{title:`ContextMenu`,children:(0,W.jsxs)(S,{children:[(0,W.jsx)(S.Trigger,{children:(0,W.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,padding:`0.75em`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,textAlign:`center`},children:`Правая кнопка мыши`})}),(0,W.jsxs)(S.Content,{children:[(0,W.jsx)(S.Item,{children:`Переименовать`}),(0,W.jsx)(S.Item,{children:`Удалить`})]})]})}),(0,W.jsxs)(V,{title:`Dialog`,children:[(0,W.jsx)(b,{style:q,onClick:()=>Q(!0),children:`Открыть диалог`}),(0,W.jsx)(Se,{title:`Подтверждение`,description:`Подтвердите действие`,open:at,onClose:()=>Q(!1),children:(0,W.jsx)(b,{onClick:()=>Q(!1),children:`Закрыть`})})]}),(0,W.jsx)(V,{title:`Modal`,children:(0,W.jsxs)(he,{children:[(0,W.jsx)(b,{style:q,onClick:()=>$(!0),children:`Открыть модалку`}),(0,W.jsxs)(de,{title:`Параметры`,isOpen:ot,onClose:()=>$(!1),children:[(0,W.jsx)(le,{children:`Содержимое модального окна`}),(0,W.jsx)(ue,{children:(0,W.jsx)(b,{onClick:()=>$(!1),children:`Готово`})})]})]})})]})}var U,W,nt,G,K,q,J,Y,rt,it,X,Z,at;function Q(){return(Q=t((()=>{U=n(),oe(),se(),y(),d(),ge(),D(),ve(),M(),u(),xe(),a(),o(),p(),c(),fe(),w(),Te(),Ce(),De(),B(),ke(),je(),x(),me(),Ne(),Fe(),g(),Le(),ne(),ye(),A(),ze(),He(),We(),r(),Ke(),qe(),ae(),F(),I(),Ze(),Qe(),W=m(),nt={display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(var(--ui-width-xl), 1fr))`,alignItems:`start`,gap:`2em`,padding:`2em`,background:`var(--surface-2)`},G={display:`grid`,alignContent:`start`,gridTemplateColumns:`100%`,gap:`0.5em`,padding:`1em`,overflow:`hidden`,borderRadius:`var(--radius-md)`,background:`var(--surface-1)`,boxShadow:`var(--shadow-lg)`},K={fontWeight:700,color:`var(--content-0)`},q={width:`100%`},J=[{id:`draft`,label:`Черновик`},{id:`review`,label:`На согласовании`},{id:`published`,label:`Опубликован`}],Y=[{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`MOW`,label:`Москва`}],rt=[{value:`day`,label:`День`},{value:`week`,label:`Неделя`},{value:`month`,label:`Месяц`}],it=[{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:`Операционный блок`}],X={title:`Development/Interactive components`,component:H,parameters:{layout:`fullscreen`,docs:{description:{component:`Быстрая витрина интерактивных UI-компонентов для разработки и проверки общих стилей.`}}}},Z={},H.__docgenInfo={description:``,methods:[],displayName:`InteractiveComponents`},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`function InteractiveComponents() {
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./Switch-BnYvYOX5.js";import{i as a,n as o,r as s,t as ee}from"./DisclosureGroup-CeBLtSCA.js";import{n as c,t as te}from"./ExpandableActionPanel-fOfO1fQV.js";import{n as ne,t as l}from"./RadioButton-BWpGjwT9.js";import{n as u,t as re}from"./SingleDateTimeInput-DK8vuf-o.js";import{n as d,t as f}from"./CheckBox-BWZ_P_3Q.js";import{n as p,t as ie}from"./DropZone-CODtJSpF.js";import{n as m}from"./iframe-DfqtMMgG.js";import{n as ae,t as h}from"./Text-Bswu5PVP.js";import{n as g,t as _}from"./Popover-NBKcB7nc.js";import{i as oe,n as se,r as v,t as ce}from"./BadgeList-CDDAItI6.js";import{n as y,t as b}from"./Button-CV4tslOZ.js";import{a as x,n as le,r as ue,t as de}from"./Modal-CHcZjpHv.js";import{n as fe,t as pe}from"./GridContainer-wl6R6ToY.js";import{n as me,t as he}from"./ModalManagerProvider-vGXTuniv.js";import{n as ge,t as S}from"./ContextMenu-wBO-KcfV.js";import{a as C,l as w,o as T,t as E}from"./Input-Bvw9Sw0g.js";import{n as D,t as O}from"./DropdownMenu-Db-sh5Gd.js";import{n as _e,r as ve}from"./DateInput-xQJfyfF-.js";import{n as ye,t as k}from"./RadioGroup-wzlE1seI.js";import{n as A,t as j}from"./Select-BI1R-0nK.js";import{n as M,t as be}from"./DateRangePresetSelect-BPlpCA6c.js";import{n as xe,t as Se}from"./Dialog-qRvPPGeh.js";import{n as Ce,t as we}from"./InputFiles-CTD2obOb.js";import{n as Te,t as Ee}from"./InputFile-CR2m2VQy.js";import{n as De,t as Oe}from"./InputImage-C0cIhVXy.js";import{n as ke,t as Ae}from"./LayoutPicker-CJcSQqwn.js";import{n as je,t as Me}from"./Listbox-BGYVb_Ct.js";import{n as Ne,t as Pe}from"./MultiSelect-DDC0Nrrq.js";import{n as Fe,t as Ie}from"./PeriodSelect-C1Rh75We.js";import{n as Le,t as Re}from"./PresetRangeDateInput-DajjeSUc.js";import{i as ze,r as Be,t as Ve}from"./Slider-bg4iXFEy.js";import{n as N,r as He,t as Ue}from"./SliderInput-o9cFbZ18.js";import{n as We,t as Ge}from"./StateSelect-Cp-vkDd6.js";import{n as Ke,t as P}from"./TabsBox-5NiiCrDc.js";import{n as qe,t as Je}from"./TagInput-BATz4lHU.js";import{n as F,t as Ye}from"./Textarea-CrkCHaE2.js";import{n as I,t as Xe}from"./Toggle-DLZn_nZe.js";import{n as Ze,t as L}from"./TreeMultiSelect-CF9O5XGt.js";import{n as Qe,t as $e}from"./treeStoryFixtures-DXHh9GL3.js";function et({onChange:e,...t}){let[n,r]=(0,R.useState)(()=>t.defaultValue??t.value??``),[i,a]=(0,R.useState)(()=>t.defaultValue??t.value??``),o=t=>{let n=t.trim();n!==i&&(a(n),e(n))},s=()=>{r(``),a(``),e(``)},ee=e=>{e.key===`Enter`&&(e.preventDefault(),o(n))},c=()=>{o(n)},te=e=>{r(e)};return(0,z.jsx)(E,{...t,value:n,onChange:te,onKeyDown:ee,onBlur:c,onClear:s})}var R,z;function B(){return(B=t((()=>{R=e(n(),1),w(),z=m(),et.__docgenInfo={description:``,methods:[],displayName:`InputSearch`,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:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})))()}function V({title:e,children:t}){return(0,W.jsxs)(`section`,{style:G,children:[(0,W.jsx)(`div`,{style:K,children:e}),t]})}function tt({initialValue:e={},label:t=`TreeMultiSelect`,description:n,optionsLayout:r=`tree`,nodes:i=$e,defaultExpandedCodeKeys:a}){let[o,s]=(0,U.useState)(e);return(0,W.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,W.jsx)(L,{label:t,description:n,nodes:i,value:o,onChange:s,optionsLayout:r,defaultExpandedCodeKeys:a}),(0,W.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(o)]})]})}function H(){let[e,t]=(0,U.useState)(`Значение`),[n,r]=(0,U.useState)(42),[a,o]=(0,U.useState)(``),[c,ne]=(0,U.useState)(`Комментарий`),[u,d]=(0,U.useState)(!0),[p,m]=(0,U.useState)(!1),[ae,g]=(0,U.useState)(`first`),[oe,se]=(0,U.useState)(!0),[y,x]=(0,U.useState)(!1),[fe,me]=(0,U.useState)(3),[ge,w]=(0,U.useState)(),[E,D]=(0,U.useState)([0,0]),[ve,ye]=(0,U.useState)(60),[A,M]=(0,U.useState)(J[0]),[xe,Ce]=(0,U.useState)([Y[0]]),[Te,De]=(0,U.useState)([`UI`,`Стили`]),[ke,je]=(0,U.useState)(`week`),[Ne,Fe]=(0,U.useState)(`information`),[Le,ze]=(0,U.useState)(`two-columns`),[He,We]=(0,U.useState)(new Date(2026,2,10)),[Ke,qe]=(0,U.useState)(new Date(2026,2,10,10,30)),[F,I]=(0,U.useState)(`today`),[Ze,L]=(0,U.useState)([new Date(2026,2,1),new Date(2026,2,10)]),[Qe,$e]=(0,U.useState)(`month`),[R,z]=(0,U.useState)(),[B,H]=(0,U.useState)([]),[G,K]=(0,U.useState)(),[X,Z]=(0,U.useState)([]),[at,Q]=(0,U.useState)(!1),[ot,$]=(0,U.useState)(!1),[st,ct]=(0,U.useState)();return(0,W.jsxs)(`div`,{style:nt,children:[(0,W.jsxs)(V,{title:`Text`,children:[(0,W.jsx)(h,{color:`primary`,children:`Основной`}),(0,W.jsx)(h,{color:`secondary`,children:`Дополнительный`}),(0,W.jsx)(h,{color:`muted`,children:`Приглушенный`}),(0,W.jsx)(h,{color:`accent`,children:`Акцентированный`}),(0,W.jsx)(h,{color:`brand`,children:`Брендовый`}),(0,W.jsx)(h,{color:`info`,children:`Информация`}),(0,W.jsx)(h,{color:`success`,children:`Успешно`}),(0,W.jsx)(h,{color:`warning`,children:`Предупреждение`}),(0,W.jsx)(h,{color:`error`,children:`Ошибка`})]}),(0,W.jsx)(V,{title:`Badge`,children:(0,W.jsxs)(ce,{children:[(0,W.jsx)(v,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,W.jsx)(v,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,W.jsx)(v,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,W.jsx)(v,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,W.jsx)(v,{tone:`info`,appearance:`solid`,children:`Информация`})]})}),(0,W.jsx)(V,{title:`Button`,children:(0,W.jsxs)(pe,{gap:`sm`,templateColumns:`1fr 1fr`,children:[(0,W.jsx)(b,{variant:`transparent`,children:`Действие`}),(0,W.jsx)(b,{variant:`ghost`,children:`Действие`}),(0,W.jsx)(b,{variant:`neutralOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`infoOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`successOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`warningOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`errorOutline`,children:`Действие`}),(0,W.jsx)(b,{variant:`neutral`,children:`Действие`}),(0,W.jsx)(b,{variant:`info`,children:`Действие`}),(0,W.jsx)(b,{variant:`success`,children:`Действие`}),(0,W.jsx)(b,{variant:`warning`,children:`Действие`}),(0,W.jsx)(b,{variant:`error`,children:`Действие`})]})}),(0,W.jsxs)(V,{title:`InputText`,children:[(0,W.jsx)(T,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,disabled:!0,value:e,onChange:t}),(0,W.jsx)(T,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t}),(0,W.jsx)(T,{required:!0,label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t,onClear:()=>t(``)})]}),(0,W.jsxs)(V,{title:`InputNumber`,children:[(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r,disabled:!0}),(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r,required:!0}),(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r}),(0,W.jsx)(C,{label:`Количество`,description:`Поле ввода числа`,placeholder:`Введите число`,value:n,min:0,onChange:r,onClear:()=>r(void 0)})]}),(0,W.jsx)(V,{title:`InputSearch`,children:(0,W.jsx)(et,{label:`Поиск`,placeholder:`Найти`,value:a,onChange:o})}),(0,W.jsx)(V,{title:`Textarea`,children:(0,W.jsx)(Ye,{label:`Комментарий`,required:!0,placeholder:`Многострочный комментарий`,rows:6,value:c,onChange:ne})}),(0,W.jsxs)(V,{title:`CheckBox`,children:[(0,W.jsx)(f,{label:`Опция`,description:`Описание чекбокса`,disabled:!0,value:u,onChange:d}),(0,W.jsx)(f,{label:`Опция`,description:`Описание чекбокса`,value:u,onChange:d}),(0,W.jsx)(f,{label:`Опция`,description:`Описание чекбокса`,value:u,onChange:d,indeterminate:!0})]}),(0,W.jsxs)(V,{title:`RadioButton`,children:[(0,W.jsx)(l,{label:`Опция`,description:`Описание радиокнопки`,disabled:!0,value:p,onChange:m}),(0,W.jsx)(l,{label:`Опция`,description:`Описание радиокнопки`,name:`radio-1`,value:p,onChange:m}),(0,W.jsx)(l,{label:`Опция`,description:`Описание радиокнопки`,name:`radio-1`,value:p,onChange:m})]}),(0,W.jsxs)(V,{title:`RadioGroup`,children:[(0,W.jsxs)(k,{label:`Радио группа`,description:`Вертикальная группа`,value:ae,onChange:g,orientation:`vertical`,"aria-label":`Вариант`,children:[(0,W.jsx)(k.Option,{value:`first`,label:`Первый`}),(0,W.jsx)(k.Option,{value:`second`,label:`Второй`}),(0,W.jsx)(k.Option,{value:`third`,label:`Третий`,description:`Новая опциональная опция`})]}),(0,W.jsxs)(k,{label:`Радио группа`,description:`Горизонтальная группа`,value:ae,onChange:g,orientation:`horizontal`,"aria-label":`Вариант`,children:[(0,W.jsx)(k.Option,{value:`first`,label:`Первый`}),(0,W.jsx)(k.Option,{value:`second`,label:`Второй`}),(0,W.jsx)(k.Option,{value:`third`,label:`Третий`,description:`Новая опциональная опция`})]})]}),(0,W.jsx)(V,{title:`Switch`,children:(0,W.jsx)(i,{label:`Уведомления`,description:`Устаревный компонент`,value:oe,onChange:se})}),(0,W.jsxs)(V,{title:`Toggle`,children:[(0,W.jsx)(Xe,{label:`Режим`,description:`Переключатель состояния`,value:y,onChange:x,checkedText:`Вкл`,uncheckedText:`Выкл`}),(0,W.jsx)(Xe,{label:`Режим`,description:`Переключатель состояния`,labelPosition:`after`,value:y,onChange:x,checkedText:`Вкл`,uncheckedText:`Выкл`})]}),(0,W.jsxs)(V,{title:`Slider`,children:[(0,W.jsx)(Ve,{label:`Уровень`,description:`Простой слайдер`,value:fe,min:0,max:100,onChange:me}),(0,W.jsx)(Ve,{label:`Уровень`,description:`Простой слайдер`,disabled:!0,marks:[{value:1,label:`m1`},{value:2,label:`m2`},{value:3,label:`m3`},{value:4,label:`m4`},{value:5,label:`m5`},{value:6,label:`m6`}],marksPosition:`index`,value:fe,min:0,max:100,onChange:me}),(0,W.jsx)(Be,{label:`Уровень`,description:`Диапазон`,marks:[{value:0,label:`m1`},{value:1,label:`m2`},{value:2,label:`m3`},{value:3,label:`m4`}],marksPosition:`index`,value:ge,min:0,max:100,onChange:w})]}),(0,W.jsxs)(V,{title:`SliderInput`,children:[(0,W.jsx)(Ue,{label:`Порог`,value:ve,min:0,max:100,onChange:ye}),(0,W.jsx)(N,{label:`Порог`,value:E,onChange:D,min:0,max:100,marks:[{value:0,label:`0`},{value:20,label:`20`},{value:40,label:`40`},{value:60,label:`60`},{value:80,label:`80`},{value:100,label:`100`}]}),(0,W.jsx)(N,{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],value:E,onChange:D}),(0,W.jsx)(N,{label:`Срок текстом`,description:`В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.`,placeholder:`Любой срок`,readonlyValueText:!0,min:0,max:25,marks:[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],marksPosition:`index`,value:E,onChange:D})]}),(0,W.jsxs)(V,{title:`Select`,children:[(0,W.jsx)(j,{label:`Статус`,description:`searchable`,searchable:!0,options:J,value:A,onChange:M,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,W.jsx)(j,{label:`Статус`,description:`disabled`,disabled:!0,options:J,value:A,onChange:M,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,W.jsx)(j,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:J,value:A,onChange:M,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,W.jsx)(j,{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,options:it,value:st,onChange:ct,getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40em`})]}),(0,W.jsx)(V,{title:`MultiSelect`,children:(0,W.jsx)(Pe,{label:`Города`,items:Y,value:xe,query:``,codeKey:`code`,textKey:`label`,onChange:Ce,onQuery:()=>void 0,onOpen:()=>void 0,onClose:()=>void 0})}),(0,W.jsx)(V,{title:`TreeMultiSelect`,children:(0,W.jsx)(tt,{})}),(0,W.jsx)(V,{title:`TagInput`,children:(0,W.jsx)(Je,{label:`Теги`,placeholder:`Добавить`,value:Te,onChange:De})}),(0,W.jsx)(V,{title:`Listbox`,children:(0,W.jsx)(Me,{options:rt,value:ke,onChange:e=>je(e)})}),(0,W.jsx)(V,{title:`StateSelect`,children:(0,W.jsx)(Ge,{label:`Состояние`,value:Ne,onChange:Fe})}),(0,W.jsx)(V,{title:`LayoutPicker`,children:(0,W.jsx)(Ae,{label:`Раскладка`,value:Le,onChange:ze,showPlaceholder:!0})}),(0,W.jsx)(V,{title:`SingleDateInput`,children:(0,W.jsx)(_e,{label:`Дата`,value:He,onChange:We,selectionMode:`week`})}),(0,W.jsx)(V,{title:`SingleDateTimeInput`,children:(0,W.jsx)(re,{label:`Дата и время`,value:Ke,onChange:qe})}),(0,W.jsx)(V,{title:`DateRangePresetSelect`,children:(0,W.jsx)(be,{label:`Период`,value:F??void 0,onChange:e=>I(e??null),onRangeChange:e=>L(e?.range??null),referenceDate:new Date(2026,2,10,12)})}),(0,W.jsx)(V,{title:`PresetRangeDateInput`,children:(0,W.jsx)(Re,{value:Ze,onChange:L,presetId:F??null,onPresetIdChange:e=>I(e??null),referenceDate:new Date(2026,2,10,12),presetLabel:`Быстрый диапазон`})}),(0,W.jsx)(V,{title:`PeriodSelect`,children:(0,W.jsx)(Ie,{label:`Группировка`,value:Qe,onChange:$e})}),(0,W.jsx)(V,{title:`InputFile`,children:(0,W.jsx)(Ee,{label:`Файл`,placeholder:`Выберите файл`,value:R,onChange:z,onClear:()=>z(void 0),readMode:`data-url`})}),(0,W.jsx)(V,{title:`InputFiles`,children:(0,W.jsx)(we,{label:`Файлы`,placeholder:`Выберите файлы`,value:B,onChange:H,readMode:`data-url`})}),(0,W.jsx)(V,{title:`InputImage`,children:(0,W.jsx)(Oe,{label:`Изображение`,value:G,onChange:K,onClear:()=>K(void 0)})}),(0,W.jsx)(V,{title:`DropZone`,children:(0,W.jsx)(ie,{value:X,multiple:!0,readMode:`data-url`,onChange:e=>Z(e),children:(0,W.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,textAlign:`center`},children:X.length?`Файлов: ${X.length}`:`Перетащите файлы`})})}),(0,W.jsxs)(V,{title:`TabsBox`,children:[(0,W.jsx)(P,{defaultValue:`first`,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Ещё одна панель`},{id:`quat`,title:`Четвертая`,content:`Четвертая панель`},{id:`five`,title:`Пятая`,content:`Пятая панель`}]}),(0,W.jsx)(P,{defaultValue:`first`,clean:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Ещё одна панель`},{id:`quat`,title:`Четвертая`,content:`Четвертая панель`},{id:`five`,title:`Пятая`,content:`Пятая панель`}]})]}),(0,W.jsxs)(V,{title:`TabsBox`,children:[(0,W.jsx)(P,{defaultValue:`first`,orientation:`vertical`,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]}),(0,W.jsx)(P,{defaultValue:`first`,orientation:`vertical`,clean:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]})]}),(0,W.jsxs)(V,{title:`Disclosure`,children:[(0,W.jsxs)(ee,{children:[(0,W.jsx)(s,{label:`Раскрыть 1`,children:`Содержимое панели 1`}),(0,W.jsx)(s,{label:`Раскрыть 2`,children:`Содержимое панели 2`}),(0,W.jsx)(s,{label:`Раскрыть 3`,children:`Содержимое панели 3`}),(0,W.jsx)(s,{label:`Раскрыть 4`,children:`Содержимое панели 4`})]}),(0,W.jsx)(s,{label:`Раскрыть 1`,tone:`secondary`,children:`Содержимое панели 1`})]}),(0,W.jsx)(V,{title:`ExpandableActionPanel`,children:(0,W.jsx)(te,{children:(0,W.jsx)(b,{variant:`transparent`,children:`Действие`})})}),(0,W.jsx)(V,{title:`Popover`,children:(0,W.jsxs)(_,{children:[(0,W.jsx)(_.Trigger,{children:(0,W.jsx)(b,{style:q,children:`Открыть`})}),(0,W.jsx)(_.Content,{children:({setClose:e})=>(0,W.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`,padding:`1em`,maxWidth:`14em`},children:[(0,W.jsx)(`div`,{children:`Содержимое popover`}),(0,W.jsx)(b,{onClick:e,children:`Закрыть`})]})})]})}),(0,W.jsx)(V,{title:`DropdownMenu`,children:(0,W.jsxs)(O,{children:[(0,W.jsx)(O.Trigger,{children:(0,W.jsx)(b,{style:q,children:`Действия`})}),(0,W.jsxs)(O.Content,{children:[(0,W.jsx)(O.Item,{children:`Редактировать`}),(0,W.jsx)(O.Item,{children:`Удалить`})]})]})}),(0,W.jsx)(V,{title:`ContextMenu`,children:(0,W.jsxs)(S,{children:[(0,W.jsx)(S.Trigger,{children:(0,W.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,padding:`0.75em`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,textAlign:`center`},children:`Правая кнопка мыши`})}),(0,W.jsxs)(S.Content,{children:[(0,W.jsx)(S.Item,{children:`Переименовать`}),(0,W.jsx)(S.Item,{children:`Удалить`})]})]})}),(0,W.jsxs)(V,{title:`Dialog`,children:[(0,W.jsx)(b,{style:q,onClick:()=>Q(!0),children:`Открыть диалог`}),(0,W.jsx)(Se,{title:`Подтверждение`,description:`Подтвердите действие`,open:at,onClose:()=>Q(!1),children:(0,W.jsx)(b,{onClick:()=>Q(!1),children:`Закрыть`})})]}),(0,W.jsx)(V,{title:`Modal`,children:(0,W.jsxs)(he,{children:[(0,W.jsx)(b,{style:q,onClick:()=>$(!0),children:`Открыть модалку`}),(0,W.jsxs)(de,{title:`Параметры`,isOpen:ot,onClose:()=>$(!1),children:[(0,W.jsx)(le,{children:`Содержимое модального окна`}),(0,W.jsx)(ue,{children:(0,W.jsx)(b,{onClick:()=>$(!1),children:`Готово`})})]})]})})]})}var U,W,nt,G,K,q,J,Y,rt,it,X,Z,at;function Q(){return(Q=t((()=>{U=n(),oe(),se(),y(),d(),ge(),D(),ve(),M(),u(),xe(),a(),o(),p(),c(),fe(),w(),Te(),Ce(),De(),B(),ke(),je(),x(),me(),Ne(),Fe(),g(),Le(),ne(),ye(),A(),ze(),He(),We(),r(),Ke(),qe(),ae(),F(),I(),Ze(),Qe(),W=m(),nt={display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(var(--ui-width-xl), 1fr))`,alignItems:`start`,gap:`2em`,padding:`2em`,background:`var(--surface-2)`},G={display:`grid`,alignContent:`start`,gridTemplateColumns:`100%`,gap:`0.5em`,padding:`1em`,overflow:`hidden`,borderRadius:`var(--radius-md)`,background:`var(--surface-1)`,boxShadow:`var(--shadow-lg)`},K={fontWeight:700,color:`var(--content-0)`},q={width:`100%`},J=[{id:`draft`,label:`Черновик`},{id:`review`,label:`На согласовании`},{id:`published`,label:`Опубликован`}],Y=[{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`MOW`,label:`Москва`}],rt=[{value:`day`,label:`День`},{value:`week`,label:`Неделя`},{value:`month`,label:`Месяц`}],it=[{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:`Операционный блок`}],X={title:`Development/Interactive components`,component:H,parameters:{layout:`fullscreen`,docs:{description:{component:`Быстрая витрина интерактивных UI-компонентов для разработки и проверки общих стилей.`}}}},Z={},H.__docgenInfo={description:``,methods:[],displayName:`InteractiveComponents`},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`function InteractiveComponents() {
2
2
  const [text, setText] = useState("Значение");
3
3
  const [number, setNumber] = useState<number | undefined>(42);
4
4
  const [search, setSearch] = useState("");
@@ -1,11 +1,11 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-woVbsQH3.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{n as a,t as o}from"./Option-fRoOLqLF.js";import{n as s,t as c}from"./PickerField-CRtltoce.js";import{c as l,i as u,l as d,n as f,r as p,s as m,t as h,u as g}from"./usePickerTriggerController-DWjrt_q_.js";import{n as _,t as v}from"./CustomOptionButton-DNd0GDWp.js";function y(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function b(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var x;function S(){return(S=e((()=>{x=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})))()}var C,w,T,E,D,O,k,A,j,M,N,P;function F(){return(F=e((()=>{C=`SmdPit`,w=`giOtGs`,T=`_57Tr0T`,E=`Tkhulr`,D=`VQlniu`,O=`wb39Kf`,k=`VrHnjN`,A=`vNV6Q2`,j=`koxYU-`,M=`k8xLa2`,N=`_5pd3Bb`,P={triggerText:C,popup:w,popupLayout:T,popupBody:E,options:D,option:O,previewCell:k,optionPreviewWrap:A,preview:j,previewPlaceholder:M,previewCompact:N}})))()}function I({preset:e,compact:t=!1}){return(0,L.jsx)(`span`,{className:r(P.preview,t&&P.previewCompact),style:y(e),"aria-hidden":`true`,"data-ui":`layout-picker-preview`,children:e.cells.map(t=>(0,L.jsx)(`span`,{className:P.previewCell,style:b(t)},`${e.id}:${t.id}`))})}var L;function R(){return(R=e((()=>{i(),F(),L=n(),I.__docgenInfo={description:`Схематичное, скрытое от accessibility tree превью layout-пресета.`,methods:[],displayName:`LayoutPresetPreview`,props:{preset:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-DfqtMMgG.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{n as a,t as o}from"./PickerField-B8_SoyYo.js";import{c as s,i as c,l,n as u,r as d,s as f,t as p,u as m}from"./usePickerTriggerController-YWagu6f6.js";import{n as h,t as g}from"./Option-CSut1BkS.js";import{n as _,t as v}from"./OptionContentContainer-DnzI9J61.js";function y(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function b(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var x;function S(){return(S=e((()=>{x=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})))()}var C,w,T,E,D,O,k,A,j,M,N,P;function F(){return(F=e((()=>{C=`SmdPit`,w=`giOtGs`,T=`_57Tr0T`,E=`Tkhulr`,D=`VQlniu`,O=`wb39Kf`,k=`VrHnjN`,A=`vNV6Q2`,j=`koxYU-`,M=`k8xLa2`,N=`_5pd3Bb`,P={triggerText:C,popup:w,popupLayout:T,popupBody:E,options:D,option:O,previewCell:k,optionPreviewWrap:A,preview:j,previewPlaceholder:M,previewCompact:N}})))()}function I({preset:e,compact:t=!1}){return(0,L.jsx)(`span`,{className:r(P.preview,t&&P.previewCompact),style:y(e),"aria-hidden":`true`,"data-ui":`layout-picker-preview`,children:e.cells.map(t=>(0,L.jsx)(`span`,{className:P.previewCell,style:b(t)},`${e.id}:${t.id}`))})}var L;function R(){return(R=e((()=>{i(),F(),L=n(),I.__docgenInfo={description:`Схематичное, скрытое от accessibility tree превью layout-пресета.`,methods:[],displayName:`LayoutPresetPreview`,props:{preset:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
2
2
  id: string;
3
3
  label: string;
4
4
  description?: string;
5
5
  columns: number;
6
6
  rows: number;
7
7
  cells: readonly LayoutPickerPresetCell[];
8
- }`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`description`,value:{name:`string`,required:!1}},{key:`columns`,value:{name:`number`,required:!0}},{key:`rows`,value:{name:`number`,required:!0}},{key:`cells`,value:{name:`unknown`,required:!0}}]}},description:``},compact:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}}}})))()}function z({id:e,label:t,description:n,value:i,onChange:a,presets:s=x,disabled:l,getPresetDisabled:p,placeholder:h=H,showPlaceholder:g=!1,size:_,ariaLabel:y,className:b,triggerClassName:S,popupClassName:C,placement:w=`bottom-start`,renderTrigger:T}){let E=(0,B.useRef)(null),[D,O]=(0,B.useState)(!1),k=s.findIndex(e=>e.id===i),A=k>=0?s[k]:void 0,j=A?.label??h,{activeIndex:M,context:N,floatingStyles:F,getFloatingProps:L,setReference:R,setFloating:z,setOptionRef:U,close:W,openList:G,toggleOpen:K,selectOption:q,selectActiveOption:J,handleReferenceKeyDown:Y,handleFloatingKeyDown:X,getOptionId:Z,getActiveOptionId:Q}=u({options:s,selectedIndex:k,open:D,onOpenChange:O,getOptionDisabled:p,onSelect:e=>a(e.id),disabled:l,placement:w,triggerMode:`display`}),$=f({mode:`display`,open:D,currentQuery:``,hasDisplayValue:A!==void 0,inputRef:E,openList:G,close:W,toggleOpen:K}),ee=e=>{E.current=e};return(0,V.jsx)(c,{id:e,label:t,description:n,disabled:l,size:_,className:b,children:({controlId:e,labelId:n,describedBy:i})=>{let a=`${e}-listbox`,c={"aria-haspopup":`listbox`,"aria-expanded":D,"aria-controls":D?a:void 0,"aria-labelledby":n,"aria-describedby":i,"aria-activedescendant":D?Q(a):void 0,"aria-label":n?void 0:y??`Выбрать layout. Текущее значение: ${j}`},u=T?.({open:D,selectedPreset:A,triggerLabel:j,triggerProps:{ref:R,id:e,type:`button`,disabled:l,role:`combobox`,...c,"data-ui":`layout-picker-trigger`,className:S,onClick:()=>{l||K()},onKeyDown:e=>{Y(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:J,enableSpaceActivation:!0})}}});return(0,V.jsxs)(V.Fragment,{children:[u??(0,V.jsx)(m,{ref:ee,rootRef:R,id:e,type:`button`,disabled:l,open:D,optionCount:s.length,label:t,placeholder:h,readOnly:!0,autoComplete:`off`,role:`combobox`,value:j,selectedValue:A?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(I,{preset:A,compact:!0}),g?(0,V.jsx)(`span`,{className:P.triggerText,"data-ui":`layout-picker-selected-label`,children:A.label}):null]}):void 0,hasSelection:A!==void 0,showSelectedValue:A!==void 0,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`,...c,"aria-autocomplete":`none`,"data-ui":`layout-picker-trigger`,rootClassName:S,onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Y(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:J,enableSpaceActivation:!0})}}),(0,V.jsx)(d,{open:D,context:N,floatingStyles:F,listId:a,labelId:n,descriptionId:i,activeOptionId:Q(a),setFloating:z,getFloatingProps:L,onKeyDown:X,className:r(P.popup,C),layoutClassName:P.popupLayout,bodyClassName:P.popupBody,children:(0,V.jsx)(`div`,{className:P.options,children:s.map((e,t)=>{let n=t===k,r=t===M,i=p?.(e)??!1,s=Z(a,t);return(0,V.jsx)(o,{id:s,ref:e=>U(t,e),role:`option`,"aria-selected":n,"aria-disabled":i||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:P.option,active:r,selected:n,disabled:i,"data-ui":`layout-picker-option`,"data-selected":n||void 0,children:(0,V.jsx)(v,{tabIndex:-1,disabled:i,onMouseDown:e=>e.preventDefault(),onClick:()=>q(e),children:(0,V.jsx)(`span`,{className:P.optionPreviewWrap,children:(0,V.jsx)(I,{preset:e})})})},e.id)})})})]})}})}var B,V,H;function U(){return(U=e((()=>{B=t(),i(),_(),a(),s(),g(),l(),p(),h(),S(),F(),R(),V=n(),H=`Выберите раскладку`,z.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},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:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
8
+ }`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`description`,value:{name:`string`,required:!1}},{key:`columns`,value:{name:`number`,required:!0}},{key:`rows`,value:{name:`number`,required:!0}},{key:`cells`,value:{name:`unknown`,required:!0}}]}},description:``},compact:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}}}})))()}function z({id:e,label:t,description:n,value:i,onChange:a,presets:s=x,disabled:d,getPresetDisabled:p,placeholder:m=H,showPlaceholder:h=!1,size:_,ariaLabel:y,className:b,triggerClassName:S,popupClassName:C,placement:w=`bottom-start`,renderTrigger:T}){let E=(0,B.useRef)(null),[D,O]=(0,B.useState)(!1),k=s.findIndex(e=>e.id===i),A=k>=0?s[k]:void 0,j=A?.label??m,{activeIndex:M,context:N,floatingStyles:F,getFloatingProps:L,setReference:R,setFloating:z,setOptionRef:U,close:W,openList:G,toggleOpen:K,selectOption:q,selectActiveOption:J,handleReferenceKeyDown:Y,handleFloatingKeyDown:X,getOptionId:Z,getActiveOptionId:Q}=c({options:s,selectedIndex:k,open:D,onOpenChange:O,getOptionDisabled:p,onSelect:e=>a(e.id),disabled:d,placement:w,triggerMode:`display`}),$=u({mode:`display`,open:D,currentQuery:``,hasDisplayValue:A!==void 0,inputRef:E,openList:G,close:W,toggleOpen:K}),ee=e=>{E.current=e};return(0,V.jsx)(o,{id:e,label:t,description:n,disabled:d,size:_,className:b,children:({controlId:e,labelId:n,describedBy:i})=>{let a=`${e}-listbox`,o={"aria-haspopup":`listbox`,"aria-expanded":D,"aria-controls":D?a:void 0,"aria-labelledby":n,"aria-describedby":i,"aria-activedescendant":D?Q(a):void 0,"aria-label":n?void 0:y??`Выбрать layout. Текущее значение: ${j}`},c=T?.({open:D,selectedPreset:A,triggerLabel:j,triggerProps:{ref:R,id:e,type:`button`,disabled:d,role:`combobox`,...o,"data-ui":`layout-picker-trigger`,className:S,onClick:()=>{d||K()},onKeyDown:e=>{Y(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:J,enableSpaceActivation:!0})}}});return(0,V.jsxs)(V.Fragment,{children:[c??(0,V.jsx)(f,{ref:ee,rootRef:R,id:e,type:`button`,disabled:d,open:D,optionCount:s.length,label:t,placeholder:m,readOnly:!0,autoComplete:`off`,role:`combobox`,value:j,selectedValue:A?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(I,{preset:A,compact:!0}),h?(0,V.jsx)(`span`,{className:P.triggerText,"data-ui":`layout-picker-selected-label`,children:A.label}):null]}):void 0,hasSelection:A!==void 0,showSelectedValue:A!==void 0,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`,...o,"aria-autocomplete":`none`,"data-ui":`layout-picker-trigger`,rootClassName:S,onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Y(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:J,enableSpaceActivation:!0})}}),(0,V.jsx)(l,{open:D,context:N,floatingStyles:F,listId:a,labelId:n,descriptionId:i,activeOptionId:Q(a),setFloating:z,getFloatingProps:L,onKeyDown:X,className:r(P.popup,C),layoutClassName:P.popupLayout,bodyClassName:P.popupBody,children:(0,V.jsx)(`div`,{role:`presentation`,className:P.options,children:s.map((e,t)=>{let n=t===k,r=t===M,i=p?.(e)??!1,o=Z(a,t);return(0,V.jsx)(g,{id:o,ref:e=>U(t,e),role:`option`,"aria-selected":n,"aria-disabled":i||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:P.option,active:r,selected:n,disabled:i,"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>q(e),children:(0,V.jsx)(v,{children:(0,V.jsx)(`span`,{className:P.optionPreviewWrap,children:(0,V.jsx)(I,{preset:e})})})},e.id)})})})]})}})}var B,V,H;function U(){return(U=e((()=>{B=t(),i(),h(),_(),a(),m(),s(),d(),p(),S(),F(),R(),V=n(),H=`Выберите раскладку`,z.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},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:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
9
9
  {
10
10
  id: "1x1",
11
11
  label: "1x1",
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-woVbsQH3.js";import{i as n,r}from"./react-Bl2r1tuC.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-Cw5Dm88b.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x}from"./LayoutPicker.stories-Ca9WZdPW.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:b,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DfqtMMgG.js";import{i as n,r}from"./react-Bl2r1tuC.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-TIr5_lNX.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x}from"./LayoutPicker.stories-CcY356LI.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:b,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,w.jsx)(u,{children:`LayoutPicker`}),`
3
3
  `,(0,w.jsx)(o,{children:`Контролируемый выбор layout-пресета со схематичным превью`}),`
4
4
  `,(0,w.jsxs)(t.p,{children:[(0,w.jsx)(t.code,{children:`LayoutPicker`}),` нужен для выбора схемы размещения независимых областей: графиков, панелей, секций дашборда или другого UI, где сама раскладка хранится во внешней модели.
@@ -57,6 +57,7 @@ export function LayoutMenuButton() {
57
57
  `,(0,w.jsxs)(t.li,{children:[`Храните во внешней модели только `,(0,w.jsx)(t.code,{children:`preset.id`}),`, а полный пресет берите из стабильного списка `,(0,w.jsx)(t.code,{children:`presets`}),`.`]}),`
58
58
  `,(0,w.jsxs)(t.li,{children:[`Передавайте `,(0,w.jsx)(t.code,{children:`ariaLabel`}),`, когда рядом нет видимой подписи поля.`]}),`
59
59
  `,(0,w.jsxs)(t.li,{children:[`В `,(0,w.jsx)(t.code,{children:`renderTrigger`}),` обязательно передавайте `,(0,w.jsx)(t.code,{children:`triggerProps`}),` в интерактивный корневой элемент.`]}),`
60
+ `,(0,w.jsxs)(t.li,{children:[`Превью пресета является содержимым самой `,(0,w.jsx)(t.code,{children:`option`}),`, а его доступное имя берётся из `,(0,w.jsx)(t.code,{children:`label`}),` и `,(0,w.jsx)(t.code,{children:`description`}),`; не добавляйте внутрь превью кнопки или ссылки.`]}),`
60
61
  `,(0,w.jsxs)(t.li,{children:[`Используйте `,(0,w.jsx)(t.code,{children:`getPresetDisabled`}),`, если отдельные схемы временно недоступны из-за лимитов, прав или текущего режима.`]}),`
61
62
  `,(0,w.jsxs)(t.li,{children:[`Не помещайте бизнес-данные ячеек в `,(0,w.jsx)(t.code,{children:`shared/ui`}),`: назначение содержимого должно оставаться в вызывающем слое.`]}),`
62
63
  `]}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-woVbsQH3.js";import{n as i,t as a}from"./Button-CoOZeR_z.js";import{i as o,n as s,r as c,t as l}from"./LayoutPicker-BDpc8LBa.js";var u,d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{u=`buT8ds`,d=`vDpJVR`,f=`-GMI1h`,p=`Xgkzn9`,m=`X--lo-`,h=`W5rEjx`,g=`BgilL7`,_=`ALGrVl`,v=`IrqK1d`,y={canvas:u,toolbar:d,summary:f,summaryItem:p,summaryValue:m,muted:h,layoutPreview:g,layoutCell:_,layoutCellTitle:v}})))()}var x=t({Controlled:()=>M,CustomPresets:()=>P,CustomTrigger:()=>L,Disabled:()=>R,DisabledPresets:()=>F,InToolbar:()=>I,Placeholder:()=>N,__namedExportsOrder:()=>z,default:()=>j});function S(e,t){return t.find(t=>t.id===e)}function C({value:e,presets:t}){let n=S(e,t);return(0,D.jsxs)(`div`,{className:y.summary,"aria-live":`polite`,children:[(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`ID`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:e||`не выбрано`})]}),(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`Название`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:n?.label??`Layout не выбран`})]}),(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`Сетка`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:n?`${n.columns} x ${n.rows}`:`нет данных`})]}),(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`Ячеек`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:n?.cells.length??0})]})]})}function w({value:e,presets:t}){let n=S(e,t);if(!n)return null;let r=n.columns,i=n.rows,a=n.cells;return(0,D.jsx)(`div`,{className:y.layoutPreview,style:{gridTemplateColumns:`repeat(${r}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${i}, minmax(0, 1fr))`},children:a.map((e,t)=>(0,D.jsxs)(`div`,{className:y.layoutCell,style:{gridColumn:`${e.column} / span ${e.columnSpan}`,gridRow:`${e.row} / span ${e.rowSpan}`},children:[(0,D.jsxs)(`span`,{className:y.layoutCellTitle,children:[`Область `,t+1]}),(0,D.jsxs)(`span`,{className:y.muted,children:[`Колонка `,e.column,`, строка `,e.row,`; span `,e.columnSpan,` x `,e.rowSpan]})]},e.id))})}function T(){let[e,t]=(0,E.useState)(`1x2`);return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(`div`,{className:y.toolbar,children:(0,D.jsx)(l,{label:`Layout панели`,value:e,onChange:t,ariaLabel:`Выбрать layout панели`})}),(0,D.jsx)(C,{value:e,presets:c}),(0,D.jsx)(w,{value:e,presets:c})]})}var E,D,O,k,A,j,M,N,P,F,I,L,R,z;function B(){return(B=e((()=>{E=n(),i(),o(),s(),b(),D=r(),{useArgs:O}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:k}=__STORYBOOK_MODULE_TEST__,A=[{id:`dashboard-summary`,label:`Сводка + детали`,description:`Один широкий блок сверху и две области детализации снизу.`,columns:2,rows:2,cells:[{id:`summary`,column:1,columnSpan:2,row:1,rowSpan:1},{id:`left-detail`,column:1,columnSpan:1,row:2,rowSpan:1},{id:`right-detail`,column:2,columnSpan:1,row:2,rowSpan:1}]},{id:`dashboard-main-aside`,label:`Основной блок + сайдбар`,description:`Большая рабочая область слева и вертикальная колонка справа.`,columns:3,rows:2,cells:[{id:`main`,column:1,columnSpan:2,row:1,rowSpan:2},{id:`aside-top`,column:3,columnSpan:1,row:1,rowSpan:1},{id:`aside-bottom`,column:3,columnSpan:1,row:2,rowSpan:1}]},{id:`dashboard-quad`,label:`Четыре равных блока`,description:`Плотная сетка для сравнения нескольких независимых виджетов.`,columns:2,rows:2,cells:[{id:`top-left`,column:1,columnSpan:1,row:1,rowSpan:1},{id:`top-right`,column:2,columnSpan:1,row:1,rowSpan:1},{id:`bottom-left`,column:1,columnSpan:1,row:2,rowSpan:1},{id:`bottom-right`,column:2,columnSpan:1,row:2,rowSpan:1}]}],j={title:`UI/LayoutPicker`,component:l,args:{label:`Layout панели`,description:`Выберите схему размещения областей.`,value:c[0].id,onChange:k(),presets:c,disabled:!1,placeholder:`Выберите layout`,showPlaceholder:!1,ariaLabel:`Выбрать layout`,placement:`bottom-start`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Контролируемый выбор layout-пресета со схематичным превью. Компонент хранит только UI-состояние popup и возвращает наружу ID выбранного пресета.`}}},argTypes:{id:{description:"ID кнопки выбора. Если не передан, компонент создаёт стабильный `useId`.",control:`text`},label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:`ID текущего выбранного layout-пресета.`,control:`text`},onChange:{description:`Вызывается с ID выбранного layout-пресета.`,control:!1},presets:{description:"Список layout-пресетов. По умолчанию используется `DEFAULT_LAYOUT_PICKER_PRESETS`.",control:!1},disabled:{description:`Блокирует кнопку выбора и открытие popup.`,control:`boolean`},getPresetDisabled:{description:`Позволяет заблокировать отдельные пресеты внутри popup.`,control:!1},placeholder:{description:"Текст, который можно явно показать рядом с превью через `showPlaceholder`.",control:`text`},showPlaceholder:{description:"Показывает рядом с превью именно строку `placeholder`. По умолчанию trigger содержит только иконку.",control:`boolean`},ariaLabel:{description:`Доступное имя trigger-кнопки. Если не передано, строится из текущего значения.`,control:`text`},size:{description:"Размер поля из общего `UiBaseProps`.",control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`},triggerClassName:{description:`Дополнительный CSS-класс trigger-кнопки.`,control:`text`},popupClassName:{description:`Дополнительный CSS-класс popup.`,control:`text`},renderTrigger:{description:`Позволяет заменить стандартный input-like trigger на собственную button-композицию.`,control:!1},placement:{description:`Позиционирование popup относительно trigger.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`,`right-start`,`left-start`]}}},M={args:{value:`2x1`},name:`Контролируемый выбор`,render:function(e){let[,t]=O(),n=e.presets??c;return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,presets:n,onChange:n=>{e.onChange(n),t({value:n})}}),(0,D.jsx)(C,{value:e.value??``,presets:n})]})}},N={name:`Без выбранного значения`,render:e=>{let[t,n]=(0,E.useState)(``),r=e.presets??c;return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,value:t,presets:r,placeholder:`Layout ещё не выбран`,showPlaceholder:!0,onChange:t=>{n(t),e.onChange(t)}}),(0,D.jsx)(C,{value:t,presets:r})]})},args:{value:``}},P={name:`Кастомные пресеты`,render:e=>{let[t,n]=(0,E.useState)(A[0].id);return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,value:t,presets:A,ariaLabel:`Выбрать layout дашборда`,onChange:t=>{n(t),e.onChange(t)}}),(0,D.jsx)(C,{value:t,presets:A}),(0,D.jsx)(w,{value:t,presets:A})]})},args:{value:A[0].id,presets:A}},F={name:`Заблокированные пресеты`,render:e=>{let[t,n]=(0,E.useState)(`1x1`);return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,value:t,getPresetDisabled:e=>e.id===`1x2`||e.id===`2x2-l`,onChange:t=>{n(t),e.onChange(t)}}),(0,D.jsx)(`div`,{className:y.muted,children:`Пресеты с двумя колонками в этом сценарии недоступны.`}),(0,D.jsx)(C,{value:t,presets:c})]})}},I={name:`В панели настройки`,render:()=>(0,D.jsx)(T,{})},L={name:`Пользовательский trigger`,render:e=>{let[t,n]=(0,E.useState)(`1x2`);return(0,D.jsx)(l,{...e,value:t,onChange:t=>{n(t),e.onChange(t)},renderTrigger:({triggerLabel:e,triggerProps:t})=>(0,D.jsxs)(a,{...t,children:[`Раскладка: `,e]})})},args:{label:void 0,description:void 0,value:`1x2`}},R={name:`Заблокированный контрол`,args:{disabled:!0,value:`1x2`}},M.parameters={...M.parameters,docs:{...M.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DfqtMMgG.js";import{n as i,t as a}from"./Button-CV4tslOZ.js";import{i as o,n as s,r as c,t as l}from"./LayoutPicker-CJcSQqwn.js";var u,d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{u=`buT8ds`,d=`vDpJVR`,f=`-GMI1h`,p=`Xgkzn9`,m=`X--lo-`,h=`W5rEjx`,g=`BgilL7`,_=`ALGrVl`,v=`IrqK1d`,y={canvas:u,toolbar:d,summary:f,summaryItem:p,summaryValue:m,muted:h,layoutPreview:g,layoutCell:_,layoutCellTitle:v}})))()}var x=t({Controlled:()=>M,CustomPresets:()=>P,CustomTrigger:()=>L,Disabled:()=>R,DisabledPresets:()=>F,InToolbar:()=>I,Placeholder:()=>N,__namedExportsOrder:()=>z,default:()=>j});function S(e,t){return t.find(t=>t.id===e)}function C({value:e,presets:t}){let n=S(e,t);return(0,D.jsxs)(`div`,{className:y.summary,"aria-live":`polite`,children:[(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`ID`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:e||`не выбрано`})]}),(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`Название`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:n?.label??`Layout не выбран`})]}),(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`Сетка`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:n?`${n.columns} x ${n.rows}`:`нет данных`})]}),(0,D.jsxs)(`div`,{className:y.summaryItem,children:[(0,D.jsx)(`span`,{children:`Ячеек`}),(0,D.jsx)(`span`,{className:y.summaryValue,children:n?.cells.length??0})]})]})}function w({value:e,presets:t}){let n=S(e,t);if(!n)return null;let r=n.columns,i=n.rows,a=n.cells;return(0,D.jsx)(`div`,{className:y.layoutPreview,style:{gridTemplateColumns:`repeat(${r}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${i}, minmax(0, 1fr))`},children:a.map((e,t)=>(0,D.jsxs)(`div`,{className:y.layoutCell,style:{gridColumn:`${e.column} / span ${e.columnSpan}`,gridRow:`${e.row} / span ${e.rowSpan}`},children:[(0,D.jsxs)(`span`,{className:y.layoutCellTitle,children:[`Область `,t+1]}),(0,D.jsxs)(`span`,{className:y.muted,children:[`Колонка `,e.column,`, строка `,e.row,`; span `,e.columnSpan,` x `,e.rowSpan]})]},e.id))})}function T(){let[e,t]=(0,E.useState)(`1x2`);return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(`div`,{className:y.toolbar,children:(0,D.jsx)(l,{label:`Layout панели`,value:e,onChange:t,ariaLabel:`Выбрать layout панели`})}),(0,D.jsx)(C,{value:e,presets:c}),(0,D.jsx)(w,{value:e,presets:c})]})}var E,D,O,k,A,j,M,N,P,F,I,L,R,z;function B(){return(B=e((()=>{E=n(),i(),o(),s(),b(),D=r(),{useArgs:O}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:k}=__STORYBOOK_MODULE_TEST__,A=[{id:`dashboard-summary`,label:`Сводка + детали`,description:`Один широкий блок сверху и две области детализации снизу.`,columns:2,rows:2,cells:[{id:`summary`,column:1,columnSpan:2,row:1,rowSpan:1},{id:`left-detail`,column:1,columnSpan:1,row:2,rowSpan:1},{id:`right-detail`,column:2,columnSpan:1,row:2,rowSpan:1}]},{id:`dashboard-main-aside`,label:`Основной блок + сайдбар`,description:`Большая рабочая область слева и вертикальная колонка справа.`,columns:3,rows:2,cells:[{id:`main`,column:1,columnSpan:2,row:1,rowSpan:2},{id:`aside-top`,column:3,columnSpan:1,row:1,rowSpan:1},{id:`aside-bottom`,column:3,columnSpan:1,row:2,rowSpan:1}]},{id:`dashboard-quad`,label:`Четыре равных блока`,description:`Плотная сетка для сравнения нескольких независимых виджетов.`,columns:2,rows:2,cells:[{id:`top-left`,column:1,columnSpan:1,row:1,rowSpan:1},{id:`top-right`,column:2,columnSpan:1,row:1,rowSpan:1},{id:`bottom-left`,column:1,columnSpan:1,row:2,rowSpan:1},{id:`bottom-right`,column:2,columnSpan:1,row:2,rowSpan:1}]}],j={title:`UI/LayoutPicker`,component:l,args:{label:`Layout панели`,description:`Выберите схему размещения областей.`,value:c[0].id,onChange:k(),presets:c,disabled:!1,placeholder:`Выберите layout`,showPlaceholder:!1,ariaLabel:`Выбрать layout`,placement:`bottom-start`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Контролируемый выбор layout-пресета со схематичным превью. Компонент хранит только UI-состояние popup и возвращает наружу ID выбранного пресета.`}}},argTypes:{id:{description:"ID кнопки выбора. Если не передан, компонент создаёт стабильный `useId`.",control:`text`},label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:`ID текущего выбранного layout-пресета.`,control:`text`},onChange:{description:`Вызывается с ID выбранного layout-пресета.`,control:!1},presets:{description:"Список layout-пресетов. По умолчанию используется `DEFAULT_LAYOUT_PICKER_PRESETS`.",control:!1},disabled:{description:`Блокирует кнопку выбора и открытие popup.`,control:`boolean`},getPresetDisabled:{description:`Позволяет заблокировать отдельные пресеты внутри popup.`,control:!1},placeholder:{description:"Текст, который можно явно показать рядом с превью через `showPlaceholder`.",control:`text`},showPlaceholder:{description:"Показывает рядом с превью именно строку `placeholder`. По умолчанию trigger содержит только иконку.",control:`boolean`},ariaLabel:{description:`Доступное имя trigger-кнопки. Если не передано, строится из текущего значения.`,control:`text`},size:{description:"Размер поля из общего `UiBaseProps`.",control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`},triggerClassName:{description:`Дополнительный CSS-класс trigger-кнопки.`,control:`text`},popupClassName:{description:`Дополнительный CSS-класс popup.`,control:`text`},renderTrigger:{description:`Позволяет заменить стандартный input-like trigger на собственную button-композицию.`,control:!1},placement:{description:`Позиционирование popup относительно trigger.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`,`right-start`,`left-start`]}}},M={args:{value:`2x1`},name:`Контролируемый выбор`,render:function(e){let[,t]=O(),n=e.presets??c;return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,presets:n,onChange:n=>{e.onChange(n),t({value:n})}}),(0,D.jsx)(C,{value:e.value??``,presets:n})]})}},N={name:`Без выбранного значения`,render:e=>{let[t,n]=(0,E.useState)(``),r=e.presets??c;return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,value:t,presets:r,placeholder:`Layout ещё не выбран`,showPlaceholder:!0,onChange:t=>{n(t),e.onChange(t)}}),(0,D.jsx)(C,{value:t,presets:r})]})},args:{value:``}},P={name:`Кастомные пресеты`,render:e=>{let[t,n]=(0,E.useState)(A[0].id);return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,value:t,presets:A,ariaLabel:`Выбрать layout дашборда`,onChange:t=>{n(t),e.onChange(t)}}),(0,D.jsx)(C,{value:t,presets:A}),(0,D.jsx)(w,{value:t,presets:A})]})},args:{value:A[0].id,presets:A}},F={name:`Заблокированные пресеты`,render:e=>{let[t,n]=(0,E.useState)(`1x1`);return(0,D.jsxs)(`div`,{className:y.canvas,children:[(0,D.jsx)(l,{...e,value:t,getPresetDisabled:e=>e.id===`1x2`||e.id===`2x2-l`,onChange:t=>{n(t),e.onChange(t)}}),(0,D.jsx)(`div`,{className:y.muted,children:`Пресеты с двумя колонками в этом сценарии недоступны.`}),(0,D.jsx)(C,{value:t,presets:c})]})}},I={name:`В панели настройки`,render:()=>(0,D.jsx)(T,{})},L={name:`Пользовательский trigger`,render:e=>{let[t,n]=(0,E.useState)(`1x2`);return(0,D.jsx)(l,{...e,value:t,onChange:t=>{n(t),e.onChange(t)},renderTrigger:({triggerLabel:e,triggerProps:t})=>(0,D.jsxs)(a,{...t,children:[`Раскладка: `,e]})})},args:{label:void 0,description:void 0,value:`1x2`}},R={name:`Заблокированный контрол`,args:{disabled:!0,value:`1x2`}},M.parameters={...M.parameters,docs:{...M.parameters?.docs,source:{originalSource:`{
2
2
  args: {
3
3
  value: "2x1"
4
4
  },
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./check-Du8FuQ6e.js";import{n as i}from"./iframe-DfqtMMgG.js";import{i as a,n as o,r as s,s as c,t as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./OptionContent-DyxUQFu3.js";import{n as f,t as p}from"./PickerField-B8_SoyYo.js";import{i as m,n as h,r as g,t as _}from"./Option-CSut1BkS.js";import{n as v,t as y}from"./OptionContentContainer-DnzI9J61.js";function b(e,t,n){if(n){if(Array.isArray(t)&&t.length>0){let n=e.findIndex(e=>t.includes(e.value)&&!e.disabled);if(n>=0)return n}return s(e,w)}if(t!==void 0){let n=e.findIndex(e=>e.value===t&&!e.disabled);if(n>=0)return n}return s(e,w)}function x(e){let{value:t,defaultValue:n,multiple:i,label:a,description:u,disabled:f,size:m,focusOnMount:h,renderItem:v,getKey:x,options:T,onChange:E,id:D,...O}=e,k=t!==void 0,[A,j]=(0,S.useState)(n),M=(0,S.useRef)(null),[N,P]=(0,S.useState)(()=>b(T,t??n,i)),F=(0,S.useRef)(!1),I=(0,S.useMemo)(()=>(k?t:A)??(i?[]:null),[A,k,i,t]),L=N,R=e=>{if(!(f||e.disabled)){if(i){let t=Array.isArray(I)?I:[],n=t.includes(e.value)?t.filter(t=>t!==e.value):[...t,e.value];E?.(n,e),k||j(n);return}E?.(e.value,e),k||j(e.value)}},z=e=>{if(!f){if(e.key===`ArrowDown`)e.preventDefault(),F.current=!0,P(e=>l(T,e,1,w));else if(e.key===`ArrowUp`)e.preventDefault(),F.current=!0,P(e=>l(T,e,-1,w));else if(e.key===`Home`)e.preventDefault(),F.current=!0,P(s(T,w));else if(e.key===`End`)e.preventDefault(),F.current=!0,P(c(T,w));else if(o(e,()=>{let e=T[L];e&&R(e)}))return}};return(0,S.useEffect)(()=>{if(!F.current)return;F.current=!1;let e=M.current?.querySelectorAll(`[role="option"]`)[L];e&&e.scrollIntoView({block:`nearest`})},[L]),(0,S.useLayoutEffect)(()=>{h&&M.current?.focus()},[h]),(0,C.jsx)(p,{id:D,label:a,description:u,disabled:f,size:m,children:({controlId:e,labelId:t,describedBy:n})=>(0,C.jsx)(g,{rootRef:M,id:e,role:`listbox`,"aria-multiselectable":i||void 0,"aria-activedescendant":L>=0?`${e}-option-${L}`:void 0,onKeyDown:z,...O,"aria-labelledby":t??O[`aria-labelledby`],"aria-describedby":n??O[`aria-describedby`],"aria-disabled":f||void 0,tabIndex:f?-1:0,className:O.className,children:T.map((t,n)=>{let a=i?Array.isArray(I)&&I.includes(t.value):I===t.value,o=n===L,s=f||t.disabled||void 0;return(0,C.jsx)(_,{id:`${e}-option-${n}`,role:`option`,"aria-selected":a,"aria-disabled":s,disabled:s,active:o,selected:a,onMouseDown:e=>{e.preventDefault(),!s&&(P(n),R(t))},children:v?(0,C.jsx)(y,{children:v(t,a,o)}):(0,C.jsx)(y,{children:(0,C.jsx)(d,{icon:a?(0,C.jsx)(r,{}):(0,C.jsx)(`span`,{}),text:t.label??String(t.value)})})},x?x(t,n):n)})})})}var S,C,w;function T(){return(T=e((()=>{S=t(),a(),n(),h(),u(),v(),f(),m(),C=i(),w=e=>e.disabled===!0,x.__docgenInfo={description:``,methods:[],displayName:`Listbox`}})))()}export{T as n,x as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-woVbsQH3.js";import{i as n,r}from"./react-Bl2r1tuC.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-Cw5Dm88b.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Listbox.stories-xDpbFNZk.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:_,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DfqtMMgG.js";import{i as n,r}from"./react-Bl2r1tuC.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-TIr5_lNX.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Listbox.stories-C9_cOdMY.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:_,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`Listbox`}),`
3
3
  `,(0,S.jsx)(o,{children:`Список выбора для single- и multi-select сценариев, кастомного рендера элементов и блокированного состояния`}),`
4
4
  `,(0,S.jsx)(t.p,{children:`Listbox уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -35,6 +35,7 @@ export function Example() {
35
35
  `,(0,S.jsxs)(t.ul,{children:[`
36
36
  `,(0,S.jsx)(t.li,{children:`Начните с базового сценария ниже, а затем проверьте в stories те состояния, которые реально используются в вашем экране.`}),`
37
37
  `,(0,S.jsxs)(t.li,{children:[`Для ширины используйте общий prop `,(0,S.jsx)(t.code,{children:`size`}),`: `,(0,S.jsx)(t.code,{children:`xs`}),`, `,(0,S.jsx)(t.code,{children:`sm`}),`, `,(0,S.jsx)(t.code,{children:`md`}),`, `,(0,S.jsx)(t.code,{children:`lg`}),` или `,(0,S.jsx)(t.code,{children:`xl`}),`. Без `,(0,S.jsx)(t.code,{children:`size`}),` компонент занимает доступную ширину контейнера.`]}),`
38
+ `,(0,S.jsxs)(t.li,{children:[`Фокус остаётся на `,(0,S.jsx)(t.code,{children:`listbox`}),`: стрелки, `,(0,S.jsx)(t.code,{children:`Home`}),` и `,(0,S.jsx)(t.code,{children:`End`}),` перемещают активную опцию, а `,(0,S.jsx)(t.code,{children:`Enter`}),` или `,(0,S.jsx)(t.code,{children:`Space`}),` выбирают её. Содержимое `,(0,S.jsx)(t.code,{children:`renderItem`}),` должно быть неинтерактивным.`]}),`
38
39
  `]}),`
39
40
  `,(0,S.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
40
41
  `,(0,S.jsx)(t.h3,{id:`выбор-одного-значения`,children:`Выбор одного значения`}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-woVbsQH3.js";import{n as r,t as i}from"./Listbox-3Npc4PI_.js";var a=t({CustomRender:()=>p,Disabled:()=>m,MultiSelect:()=>f,SingleSelect:()=>d,Sizes:()=>h,__namedExportsOrder:()=>g,default:()=>u});function o(e){return e.multiple?(0,s.jsx)(i,{...e,multiple:!0}):(0,s.jsx)(i,{...e})}var s,c,l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{r(),s=n(),{useArgs:c}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:l}=__STORYBOOK_MODULE_TEST__,u={title:`UI/Listbox`,component:o,args:{options:[{value:`low`,label:`Низкий`},{value:`medium`,label:`Средний`},{value:`high`,label:`Высокий`},{value:`critical`,label:`Критический`,disabled:!0}],multiple:!1,label:`Приоритет`,description:`Выберите приоритет задачи.`,value:`medium`,onChange:l()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля, оформленный так же, как у Input.`},description:{description:`Описание под заголовком, связанное со списком через ARIA.`},options:{description:`Массив доступных опций списка.`,control:!1},multiple:{description:`Режим множественного выбора.`,control:`boolean`},value:{description:`Текущее выбранное значение (или массив значений).`,control:!1},defaultValue:{description:`Начальное значение для uncontrolled-режима.`,control:!1},disabled:{description:`Блокирует фокусировку, навигацию и изменение выбора.`,control:`boolean`},size:{description:`Ширина Listbox из общего контракта UiBaseProps.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},onChange:{description:`Вызывается при выборе опции.`,control:!1},focusOnMount:{description:`Автофокус списка при монтировании.`,control:`boolean`},renderItem:{description:`Кастомный рендер строки списка.`,control:!1},getKey:{description:`Функция генерации ключа для опции.`,control:!1}}},d={render:function(e){let[,t]=c(),n=typeof e.value==`string`?e.value:`medium`;return(0,s.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:280},children:[(0,s.jsx)(o,{...e,multiple:!1,value:n,onChange:(n,r)=>{typeof n==`string`&&(e.onChange?.(n,r),t({value:n}))}}),(0,s.jsxs)(`div`,{children:[`Выбрано: `,n]})]})}},f={render:function(e){let[,t]=c(),n=Array.isArray(e.value)?e.value:[`low`,`high`];return(0,s.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:320},children:[(0,s.jsx)(o,{...e,multiple:!0,value:n,onChange:(n,r)=>{Array.isArray(n)&&(e.onChange?.(n,r),t({value:n}))}}),(0,s.jsxs)(`div`,{children:[`Выбрано: `,n.join(`, `)||`пусто`]})]})},args:{multiple:!0}},p={render:function(e){let[,t]=c(),n=typeof e.value==`string`?e.value:`low`;return(0,s.jsx)(o,{...e,value:n,onChange:(n,r)=>{typeof n==`string`&&(e.onChange?.(n,r),t({value:n}))},renderItem:(e,t,n)=>(0,s.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,width:`100%`,opacity:e.disabled?.5:1},children:[(0,s.jsx)(`span`,{children:e.label}),(0,s.jsx)(`span`,{children:t?`Выбрано`:n?`Фокус`:``})]})})}},m={args:{disabled:!0,value:`medium`},render:e=>(0,s.jsx)(o,{...e})},h={args:{label:void 0,description:void 0},render:e=>(0,s.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`xs`,`sm`,`md`,`lg`,`xl`].map(t=>(0,s.jsx)(o,{...e,size:t,label:t},t))})},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-DfqtMMgG.js";import{n as r,t as i}from"./Listbox-BGYVb_Ct.js";var a=t({CustomRender:()=>p,Disabled:()=>m,MultiSelect:()=>f,SingleSelect:()=>d,Sizes:()=>h,__namedExportsOrder:()=>g,default:()=>u});function o(e){return e.multiple?(0,s.jsx)(i,{...e,multiple:!0}):(0,s.jsx)(i,{...e})}var s,c,l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{r(),s=n(),{useArgs:c}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:l}=__STORYBOOK_MODULE_TEST__,u={title:`UI/Listbox`,component:o,args:{options:[{value:`low`,label:`Низкий`},{value:`medium`,label:`Средний`},{value:`high`,label:`Высокий`},{value:`critical`,label:`Критический`,disabled:!0}],multiple:!1,label:`Приоритет`,description:`Выберите приоритет задачи.`,value:`medium`,onChange:l()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля, оформленный так же, как у Input.`},description:{description:`Описание под заголовком, связанное со списком через ARIA.`},options:{description:`Массив доступных опций списка.`,control:!1},multiple:{description:`Режим множественного выбора.`,control:`boolean`},value:{description:`Текущее выбранное значение (или массив значений).`,control:!1},defaultValue:{description:`Начальное значение для uncontrolled-режима.`,control:!1},disabled:{description:`Блокирует фокусировку, навигацию и изменение выбора.`,control:`boolean`},size:{description:`Ширина Listbox из общего контракта UiBaseProps.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},onChange:{description:`Вызывается при выборе опции.`,control:!1},focusOnMount:{description:`Автофокус списка при монтировании.`,control:`boolean`},renderItem:{description:`Кастомный рендер строки списка.`,control:!1},getKey:{description:`Функция генерации ключа для опции.`,control:!1}}},d={render:function(e){let[,t]=c(),n=typeof e.value==`string`?e.value:`medium`;return(0,s.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:280},children:[(0,s.jsx)(o,{...e,multiple:!1,value:n,onChange:(n,r)=>{typeof n==`string`&&(e.onChange?.(n,r),t({value:n}))}}),(0,s.jsxs)(`div`,{children:[`Выбрано: `,n]})]})}},f={render:function(e){let[,t]=c(),n=Array.isArray(e.value)?e.value:[`low`,`high`];return(0,s.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:320},children:[(0,s.jsx)(o,{...e,multiple:!0,value:n,onChange:(n,r)=>{Array.isArray(n)&&(e.onChange?.(n,r),t({value:n}))}}),(0,s.jsxs)(`div`,{children:[`Выбрано: `,n.join(`, `)||`пусто`]})]})},args:{multiple:!0}},p={render:function(e){let[,t]=c(),n=typeof e.value==`string`?e.value:`low`;return(0,s.jsx)(o,{...e,value:n,onChange:(n,r)=>{typeof n==`string`&&(e.onChange?.(n,r),t({value:n}))},renderItem:(e,t,n)=>(0,s.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,width:`100%`,opacity:e.disabled?.5:1},children:[(0,s.jsx)(`span`,{children:e.label}),(0,s.jsx)(`span`,{children:t?`Выбрано`:n?`Фокус`:``})]})})}},m={args:{disabled:!0,value:`medium`},render:e=>(0,s.jsx)(o,{...e})},h={args:{label:void 0,description:void 0},render:e=>(0,s.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`xs`,`sm`,`md`,`lg`,`xl`].map(t=>(0,s.jsx)(o,{...e,size:t,label:t},t))})},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
2
2
  render: function Render(args) {
3
3
  const [, updateArgs] = useArgs<ComponentProps<typeof StringListbox>>();
4
4
  const value = typeof args.value === "string" ? args.value : "medium";
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./x-i4zUW10Y.js";import{n as a}from"./iframe-DfqtMMgG.js";import{t as o}from"./react-dom-BzEl8usk.js";import{a as s,i as c}from"./utils-tg3ibbzi.js";import{a as ee,n as te,r as l,t as ne}from"./dom-D9_dPJ4G.js";import{n as u,t as d}from"./FlexContainer-B1y3dds2.js";import{n as f,t as re}from"./Button-CV4tslOZ.js";import{a as p,c as m,l as h,n as ie,o as g,r as _,s as v,t as y}from"./react-CZ1I4PcW.js";import{n as b,t as x}from"./GridContainer-wl6R6ToY.js";import{n as S,t as C}from"./Scrollable-C7dBSd5R.js";function ae(){!v.current&&p();let[e]=(0,w.useState)(h.current);return e}var w;function T(){return(T=t((()=>{m(),g(),w=n()})))()}var E,D,O,k,A,j,M,N,P,F,I,L;function R(){return(R=t((()=>{E=`vGPUKV`,D=`WhUkxm`,O=`JDlse5`,k=`FaDKSt`,A=`NDgdMi`,j=`O7gb7P`,M=`RVq8v3`,N=`PCSUAL`,P=`XDCHzq`,F=`t1kl8L`,I=`o3PEEB`,L={modal:E,header:D,headerText:O,headerButton:k,body:A,sm:j,md:M,lg:N,xl:P,xxl:F,inside:I}})))()}var z,B,V;function H(){return(H=t((()=>{z={hidden:{opacity:0,scale:.96,y:12},visible:{opacity:1,scale:1,y:0}},B={duration:.18,ease:[.22,1,.36,1]},V={duration:0}})))()}var U,W,G;function K(){return(K=t((()=>{U=n(),W=(0,U.createContext)({modals:[],openModal:()=>{},closeModal:()=>{},isTopModal:()=>!1}),G=()=>(0,U.useContext)(W)})))()}function q({children:e,className:t}){return(0,Q.jsx)(`div`,{className:s(`surface2 paddingMd borderBottom`,t),children:e})}function J({children:e,className:t,scrollable:n}){return(0,Q.jsx)(`div`,{className:s(`paddingMd h100 overflowHidden`,t),children:n?(0,Q.jsx)(C,{className:`h100`,children:e}):e})}function Y({children:e,className:t}){return(0,Q.jsx)(`div`,{className:s(`surface2 borderTop paddingMd`,t),children:(0,Q.jsx)(d,{gap:`sm`,align:`center`,justify:`end`,children:e})})}function oe({isOpen:e,title:t,size:n=`sm`,height:r,onClose:a,children:o}){let c=(0,X.useId)(),l=(0,X.useId)(),{modals:u,openModal:d,closeModal:f,isTopModal:p}=G(),m=ae(),h=(0,X.useRef)(null),g=(0,X.useRef)(0),v={"--modal-height":r},y=e&&(u.length===0||p(c));(0,X.useEffect)(()=>{e&&(h.current=document.activeElement instanceof HTMLElement?document.activeElement:null)},[e]);let b=ee({active:e||!1,trapFocus:!0,restoreFocus:!1});te({active:y||!1,onDismiss:a,containerRef:b}),(0,X.useEffect)(()=>{e&&d(c)},[e,c,d]),(0,X.useEffect)(()=>()=>{window.cancelAnimationFrame(g.current),f(c)},[f,c]);function S(){f(c);let e=h.current;g.current=window.requestAnimationFrame(()=>{e?.isConnected&&e.focus(),h.current=null})}let C=ne(`modal-root`);if(!C)return null;let w=null,T=null,E=null,D=X.Children.toArray(o);for(let e of D)switch(e.type.displayName){case q.displayName:if(w)throw Error(`Modal: duplicate <Toolbar> found`);w=e;break;case Y.displayName:if(E)throw Error(`Modal: duplicate <Footer> found`);E=e;break;case J.displayName:if(T)throw Error(`Modal: duplicate <Content> found`);T=e}return(0,Z.createPortal)((0,Q.jsx)(_,{onExitComplete:S,children:e?(0,Q.jsxs)(ie.div,{ref:b,className:s(L.modal,L[n]),style:v,role:`dialog`,"aria-modal":`true`,"aria-labelledby":l,"aria-describedby":`${l}-content`,initial:`hidden`,animate:`visible`,exit:`hidden`,variants:z,transition:m?V:B,children:[(0,Q.jsxs)(`div`,{className:s(L.header,w?``:`borderBottom`),children:[(0,Q.jsx)(`h3`,{className:L.headerText,id:l,children:t}),(0,Q.jsx)(re,{icon:(0,Q.jsx)(i,{}),className:L.headerButton,variant:`ghost`,"aria-label":`Закрыть модальное окно`,onClick:a})]}),(0,Q.jsxs)(x,{id:`${l}-content`,templateRows:`${w?`auto`:``} 1fr ${E?`auto`:``}`.trim(),className:L.body,children:[w,T,E]})]}):null}),C)}var X,Z,Q;function $(){return($=t((()=>{X=e(n(),1),l(),c(),r(),y(),Z=o(),f(),u(),b(),S(),R(),H(),K(),Q=a(),q.displayName=`Modal.Toolbar`,J.displayName=`Modal.Content`,Y.displayName=`Modal.Footer`,q.__docgenInfo={description:``,methods:[],displayName:`Modal.Toolbar`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}},J.__docgenInfo={description:``,methods:[],displayName:`Modal.Content`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``},scrollable:{required:!1,tsType:{name:`boolean`},description:``}}},Y.__docgenInfo={description:``,methods:[],displayName:`Modal.Footer`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{$ as a,T as c,q as i,J as n,W as o,Y as r,K as s,oe as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-woVbsQH3.js";import{i as n,r}from"./react-Bl2r1tuC.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-Cw5Dm88b.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Modal.stories-cNLvFjmT.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:h,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DfqtMMgG.js";import{i as n,r}from"./react-Bl2r1tuC.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-TIr5_lNX.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Modal.stories-DxITHZDl.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:h,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`Modal`}),`
3
3
  `,(0,S.jsx)(o,{children:`Составная модалка с контентом, toolbar и footer для пользовательских диалоговых сценариев`}),`
4
4
  `,(0,S.jsx)(t.p,{children:`Modal уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-woVbsQH3.js";import{n as i,t as a}from"./Button-CoOZeR_z.js";import{a as o,i as s,n as c,r as l,t as u}from"./Modal-Ddmc8-2-.js";import{n as d,t as f}from"./ModalManagerProvider-ClXvSB9a.js";import{l as p,t as m}from"./Input-B8eGQXlp.js";var h=t({Controlled:()=>w,ScrollableContent:()=>E,Sizes:()=>D,StackedModals:()=>O,WithToolbarAndFooter:()=>T,__namedExportsOrder:()=>k,default:()=>C});function g({children:e}){return(0,b.jsx)(`div`,{style:{minHeight:`60dvh`,padding:24,display:`flex`,alignItems:`center`,justifyContent:`center`},children:e})}function _(){let[e,t]=(0,y.useState)(`Алексей`),[n,r]=(0,y.useState)(`Департамент автоматизации бизнеса`);return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,b.jsx)(m,{label:`Имя`,value:e,onChange:t,placeholder:`Введите имя`}),(0,b.jsx)(m,{label:`Подразделение`,value:n,onChange:r,placeholder:`Введите подразделение`}),(0,b.jsxs)(`div`,{style:{padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[`Текущие значения: `,e||`не указано`,`, `,n||`не указано`]})]})}function v(){let[e,t]=x();return{args:e,updateArgs:t,close:()=>{e.onClose(),t({isOpen:!1})}}}var y,b,x,S,C,w,T,E,D,O,k;function A(){return(A=e((()=>{y=n(),i(),p(),o(),d(),b=r(),{useArgs:x}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:S}=__STORYBOOK_MODULE_TEST__,C={title:`UI/Modal`,component:u,parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:"Композиционная модалка с `Toolbar`, `Content` и `Footer`, поддержкой focus trap, возврата фокуса, закрытия по `Escape` и менеджером стека через `ModalManagerProvider`."}}},decorators:[e=>(0,b.jsx)(f,{children:(0,b.jsx)(g,{children:e()})})],args:{isOpen:!1,title:`Редактирование профиля`,size:`md`,height:void 0,onClose:S(),children:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c,{children:(0,b.jsx)(_,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(a,{variant:`transparent`,children:`Отмена`}),(0,b.jsx)(a,{children:`Сохранить`})]})]})},argTypes:{isOpen:{description:`Управляет видимостью модального окна.`,control:`boolean`},title:{description:`Заголовок модального окна.`,control:`text`},size:{description:`Предустановленный размер модального окна.`,control:`inline-radio`,options:[`sm`,`md`,`lg`,`xl`,`xxl`,`inside`]},height:{description:`Явная высота модалки выше мобильного breakpoint. На мобильном модалка всегда занимает весь экран.`,control:`text`},onClose:{description:"Вызывается при закрытии по кнопке, `Escape` или пользовательскому действию.",control:!1},children:{description:"Композиция из `ModalToolbar`, `ModalContent`, `ModalFooter`.",control:!1}}},w={name:`Управляемая модалка`,render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>n({isOpen:!0}),children:`Открыть модалку`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(c,{children:(0,b.jsx)(_,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(a,{variant:`transparent`,onClick:t,children:`Отмена`}),(0,b.jsx)(a,{onClick:t,children:`Сохранить`})]})]})]})}},T={name:`Полная композиция`,args:{title:`Редактирование профиля`,height:`min(34rem, 70dvh)`},render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>n({isOpen:!0}),children:`Открыть сценарий редактирования`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(s,{children:(0,b.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`div`,{style:{fontWeight:600},children:`Черновик обновлён автоматически`}),(0,b.jsx)(`div`,{style:{opacity:.72},children:`Последнее сохранение: 2 минуты назад`})]}),(0,b.jsx)(a,{variant:`transparent`,children:`Сбросить`})]})}),(0,b.jsx)(c,{children:(0,b.jsx)(_,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(a,{variant:`transparent`,onClick:t,children:`Отмена`}),(0,b.jsx)(a,{variant:`success`,onClick:t,children:`Применить`})]})]})]})}},E={name:`Длинный контент`,args:{size:`lg`,title:`Журнал изменений`},render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>n({isOpen:!0}),children:`Открыть длинный контент`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(c,{scrollable:!0,children:(0,b.jsx)(`div`,{style:{display:`grid`,gap:12},children:Array.from({length:18},(e,t)=>(0,b.jsxs)(`div`,{style:{padding:12,borderRadius:8,border:`1px solid var(--border-1)`,background:`var(--surface-1)`},children:[(0,b.jsxs)(`div`,{style:{fontWeight:600},children:[`Событие #`,t+1]}),(0,b.jsx)(`div`,{style:{opacity:.72},children:`Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.`})]},t))})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{onClick:t,children:`Закрыть`})})]})]})}},D={name:`Размеры`,args:{size:`sm`,title:`Размер SM`},render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:12,justifyContent:`center`},children:[`sm`,`md`,`lg`,`xl`,`xxl`,`inside`].map(e=>(0,b.jsx)(a,{variant:`transparent`,onClick:()=>n({isOpen:!0,size:e,title:`Размер ${e.toUpperCase()}`}),children:e.toUpperCase()},e))}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(c,{children:(0,b.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,b.jsx)(`div`,{children:`Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.`}),(0,b.jsx)(`div`,{style:{opacity:.72},children:"Проверьте отступы, читабельность и поведение при `Escape`."})]})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{onClick:t,children:`Понятно`})})]})]})}},O={name:`Стек модалок`,args:{size:`lg`,title:`Первая модалка`},render:function(){let{args:e,updateArgs:t}=v(),[n,r]=(0,y.useState)(!1),i=()=>{r(!1),e.onClose(),t({isOpen:!1})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>t({isOpen:!0}),children:`Открыть первую модалку`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:i,children:[(0,b.jsx)(c,{children:(0,b.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,b.jsx)(`div`,{children:"Откройте вторую модалку и проверьте, что `Escape` закрывает только верхний слой."}),(0,b.jsx)(a,{variant:`transparent`,onClick:()=>r(!0),children:`Открыть вторую модалку`})]})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{variant:`transparent`,onClick:i,children:`Закрыть первую`})})]}),(0,b.jsxs)(u,{isOpen:n,onClose:()=>r(!1),size:`sm`,title:`Вторая модалка`,children:[(0,b.jsx)(c,{children:(0,b.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,b.jsx)(`div`,{children:`Эта модалка должна считаться верхней в стеке.`}),(0,b.jsx)(m,{label:`Короткое поле`,value:`Фокус внутри`,onChange:()=>{}})]})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{onClick:()=>r(!1),children:`Закрыть вторую`})})]})]})}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DfqtMMgG.js";import{n as i,t as a}from"./Button-CV4tslOZ.js";import{a as o,i as s,n as c,r as l,t as u}from"./Modal-CHcZjpHv.js";import{n as d,t as f}from"./ModalManagerProvider-vGXTuniv.js";import{l as p,t as m}from"./Input-Bvw9Sw0g.js";var h=t({Controlled:()=>w,ScrollableContent:()=>E,Sizes:()=>D,StackedModals:()=>O,WithToolbarAndFooter:()=>T,__namedExportsOrder:()=>k,default:()=>C});function g({children:e}){return(0,b.jsx)(`div`,{style:{minHeight:`60dvh`,padding:24,display:`flex`,alignItems:`center`,justifyContent:`center`},children:e})}function _(){let[e,t]=(0,y.useState)(`Алексей`),[n,r]=(0,y.useState)(`Департамент автоматизации бизнеса`);return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,b.jsx)(m,{label:`Имя`,value:e,onChange:t,placeholder:`Введите имя`}),(0,b.jsx)(m,{label:`Подразделение`,value:n,onChange:r,placeholder:`Введите подразделение`}),(0,b.jsxs)(`div`,{style:{padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[`Текущие значения: `,e||`не указано`,`, `,n||`не указано`]})]})}function v(){let[e,t]=x();return{args:e,updateArgs:t,close:()=>{e.onClose(),t({isOpen:!1})}}}var y,b,x,S,C,w,T,E,D,O,k;function A(){return(A=e((()=>{y=n(),i(),p(),o(),d(),b=r(),{useArgs:x}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:S}=__STORYBOOK_MODULE_TEST__,C={title:`UI/Modal`,component:u,parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:"Композиционная модалка с `Toolbar`, `Content` и `Footer`, поддержкой focus trap, возврата фокуса, закрытия по `Escape` и менеджером стека через `ModalManagerProvider`."}}},decorators:[e=>(0,b.jsx)(f,{children:(0,b.jsx)(g,{children:e()})})],args:{isOpen:!1,title:`Редактирование профиля`,size:`md`,height:void 0,onClose:S(),children:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c,{children:(0,b.jsx)(_,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(a,{variant:`transparent`,children:`Отмена`}),(0,b.jsx)(a,{children:`Сохранить`})]})]})},argTypes:{isOpen:{description:`Управляет видимостью модального окна.`,control:`boolean`},title:{description:`Заголовок модального окна.`,control:`text`},size:{description:`Предустановленный размер модального окна.`,control:`inline-radio`,options:[`sm`,`md`,`lg`,`xl`,`xxl`,`inside`]},height:{description:`Явная высота модалки выше мобильного breakpoint. На мобильном модалка всегда занимает весь экран.`,control:`text`},onClose:{description:"Вызывается при закрытии по кнопке, `Escape` или пользовательскому действию.",control:!1},children:{description:"Композиция из `ModalToolbar`, `ModalContent`, `ModalFooter`.",control:!1}}},w={name:`Управляемая модалка`,render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>n({isOpen:!0}),children:`Открыть модалку`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(c,{children:(0,b.jsx)(_,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(a,{variant:`transparent`,onClick:t,children:`Отмена`}),(0,b.jsx)(a,{onClick:t,children:`Сохранить`})]})]})]})}},T={name:`Полная композиция`,args:{title:`Редактирование профиля`,height:`min(34rem, 70dvh)`},render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>n({isOpen:!0}),children:`Открыть сценарий редактирования`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(s,{children:(0,b.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`div`,{style:{fontWeight:600},children:`Черновик обновлён автоматически`}),(0,b.jsx)(`div`,{style:{opacity:.72},children:`Последнее сохранение: 2 минуты назад`})]}),(0,b.jsx)(a,{variant:`transparent`,children:`Сбросить`})]})}),(0,b.jsx)(c,{children:(0,b.jsx)(_,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(a,{variant:`transparent`,onClick:t,children:`Отмена`}),(0,b.jsx)(a,{variant:`success`,onClick:t,children:`Применить`})]})]})]})}},E={name:`Длинный контент`,args:{size:`lg`,title:`Журнал изменений`},render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>n({isOpen:!0}),children:`Открыть длинный контент`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(c,{scrollable:!0,children:(0,b.jsx)(`div`,{style:{display:`grid`,gap:12},children:Array.from({length:18},(e,t)=>(0,b.jsxs)(`div`,{style:{padding:12,borderRadius:8,border:`1px solid var(--border-1)`,background:`var(--surface-1)`},children:[(0,b.jsxs)(`div`,{style:{fontWeight:600},children:[`Событие #`,t+1]}),(0,b.jsx)(`div`,{style:{opacity:.72},children:`Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.`})]},t))})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{onClick:t,children:`Закрыть`})})]})]})}},D={name:`Размеры`,args:{size:`sm`,title:`Размер SM`},render:function(){let{args:e,close:t,updateArgs:n}=v();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:12,justifyContent:`center`},children:[`sm`,`md`,`lg`,`xl`,`xxl`,`inside`].map(e=>(0,b.jsx)(a,{variant:`transparent`,onClick:()=>n({isOpen:!0,size:e,title:`Размер ${e.toUpperCase()}`}),children:e.toUpperCase()},e))}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:t,children:[(0,b.jsx)(c,{children:(0,b.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,b.jsx)(`div`,{children:`Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.`}),(0,b.jsx)(`div`,{style:{opacity:.72},children:"Проверьте отступы, читабельность и поведение при `Escape`."})]})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{onClick:t,children:`Понятно`})})]})]})}},O={name:`Стек модалок`,args:{size:`lg`,title:`Первая модалка`},render:function(){let{args:e,updateArgs:t}=v(),[n,r]=(0,y.useState)(!1),i=()=>{r(!1),e.onClose(),t({isOpen:!1})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{onClick:()=>t({isOpen:!0}),children:`Открыть первую модалку`}),(0,b.jsxs)(u,{...e,isOpen:e.isOpen,onClose:i,children:[(0,b.jsx)(c,{children:(0,b.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,b.jsx)(`div`,{children:"Откройте вторую модалку и проверьте, что `Escape` закрывает только верхний слой."}),(0,b.jsx)(a,{variant:`transparent`,onClick:()=>r(!0),children:`Открыть вторую модалку`})]})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{variant:`transparent`,onClick:i,children:`Закрыть первую`})})]}),(0,b.jsxs)(u,{isOpen:n,onClose:()=>r(!1),size:`sm`,title:`Вторая модалка`,children:[(0,b.jsx)(c,{children:(0,b.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,b.jsx)(`div`,{children:`Эта модалка должна считаться верхней в стеке.`}),(0,b.jsx)(m,{label:`Короткое поле`,value:`Фокус внутри`,onChange:()=>{}})]})}),(0,b.jsx)(l,{children:(0,b.jsx)(a,{onClick:()=>r(!1),children:`Закрыть вторую`})})]})]})}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
2
2
  name: "Управляемая модалка",
3
3
  render: function Render() {
4
4
  const {
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-woVbsQH3.js";import{o as i,s as a}from"./Modal-Ddmc8-2-.js";function o({children:e,compensateScrollbar:t=!1}){let[n,r]=(0,s.useState)([]),a=(0,s.useRef)(0),o=(0,s.useRef)(0),l=(0,s.useRef)(``),u=(0,s.useRef)(!1),d=(0,s.useCallback)(e=>{r(t=>[...t,e])},[]),f=(0,s.useCallback)(e=>{r(t=>t.filter(t=>t!==e))},[]),p=(0,s.useCallback)(e=>n[n.length-1]===e,[n]);return(0,s.useEffect)(()=>{let e=a.current===0;if(e&&n.length>0){let e=window.scrollY,r=document.querySelector(`#app-root`);o.current=Math.max(0,window.innerWidth-document.documentElement.clientWidth),l.current=document.body.style.paddingRight,document.body.style.position=`fixed`,document.body.style.top=`-${e}px`,document.body.style.width=`100%`,t&&(document.body.style.paddingRight=`${o.current}px`,u.current=!0),r?.setAttribute(`inert`,`true`),a.current=n.length;return}if(!e&&n.length>0&&t!==u.current&&(document.body.style.paddingRight=t?`${o.current}px`:l.current,u.current=t),!e&&n.length===0){let e=document.querySelector(`#app-root`),t=parseInt(document.body.style.top||`0`)*-1;document.body.style.position=``,document.body.style.top=``,document.body.style.width=``,u.current&&=(document.body.style.paddingRight=l.current,!1),e?.removeAttribute(`inert`),window.scrollTo({top:t,left:0,behavior:`instant`})}a.current=n.length},[t,n.length]),(0,c.jsx)(i.Provider,{value:{modals:n,openModal:d,closeModal:f,isTopModal:p},children:e})}var s,c;function l(){return(l=t((()=>{s=e(n(),1),a(),c=r(),o.__docgenInfo={description:`Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.`,methods:[],displayName:`ModalManagerProvider`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},compensateScrollbar:{required:!1,tsType:{name:`boolean`},description:`Компенсирует исчезновение скроллбара правым padding у body.`,defaultValue:{value:`false`,computed:!1}}}}})))()}export{l as n,o as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DfqtMMgG.js";import{o as i,s as a}from"./Modal-CHcZjpHv.js";function o({children:e,compensateScrollbar:t=!1}){let[n,r]=(0,s.useState)([]),a=(0,s.useRef)(0),o=(0,s.useRef)(0),l=(0,s.useRef)(``),u=(0,s.useRef)(!1),d=(0,s.useCallback)(e=>{r(t=>[...t,e])},[]),f=(0,s.useCallback)(e=>{r(t=>t.filter(t=>t!==e))},[]),p=(0,s.useCallback)(e=>n[n.length-1]===e,[n]);return(0,s.useEffect)(()=>{let e=a.current===0;if(e&&n.length>0){let e=window.scrollY,r=document.querySelector(`#app-root`);o.current=Math.max(0,window.innerWidth-document.documentElement.clientWidth),l.current=document.body.style.paddingRight,document.body.style.position=`fixed`,document.body.style.top=`-${e}px`,document.body.style.width=`100%`,t&&(document.body.style.paddingRight=`${o.current}px`,u.current=!0),r?.setAttribute(`inert`,`true`),a.current=n.length;return}if(!e&&n.length>0&&t!==u.current&&(document.body.style.paddingRight=t?`${o.current}px`:l.current,u.current=t),!e&&n.length===0){let e=document.querySelector(`#app-root`),t=parseInt(document.body.style.top||`0`)*-1;document.body.style.position=``,document.body.style.top=``,document.body.style.width=``,u.current&&=(document.body.style.paddingRight=l.current,!1),e?.removeAttribute(`inert`),window.scrollTo({top:t,left:0,behavior:`instant`})}a.current=n.length},[t,n.length]),(0,c.jsx)(i.Provider,{value:{modals:n,openModal:d,closeModal:f,isTopModal:p},children:e})}var s,c;function l(){return(l=t((()=>{s=e(n(),1),a(),c=r(),o.__docgenInfo={description:`Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.`,methods:[],displayName:`ModalManagerProvider`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},compensateScrollbar:{required:!1,tsType:{name:`boolean`},description:`Компенсирует исчезновение скроллбара правым padding у body.`,defaultValue:{value:`false`,computed:!1}}}}})))()}export{l as n,o as t};
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./CheckBox-BWZ_P_3Q.js";import{n as a}from"./iframe-DfqtMMgG.js";import{n as o,t as s}from"./Text-Bswu5PVP.js";import{n as c,t as l}from"./ui.module-0uniSGT-.js";import{n as u,t as ee}from"./PickerField-B8_SoyYo.js";import{c as d,i as te,l as f,n as p,r as m,s as h,t as g,u as _}from"./usePickerTriggerController-YWagu6f6.js";import{n as v,t as ne}from"./Separator-Bx2BKztN.js";import{n as y,t as re}from"./Option-CSut1BkS.js";import{i as b,n as ie,r as x,t as S}from"./usePickerQuery-B05uUMJ9.js";import{n as ae,t as C}from"./usePickerDefaultFilter-ien2ZY7g.js";import{a as oe,i as w,n as se,o as T,s as ce,t as le}from"./defaultRenderers-UxEpV_2H.js";import{n as ue,t as E}from"./OptionButton-B7wOhE1V.js";var D,O,k,A;function j(){return(j=t((()=>{D=`_9oSdQi`,O=`d9SDKQ`,k=`xCo7w9`,A={multiSelect:D,optionCheckBox:O,optionActionCell:k}})))()}function M({text:e,isError:t}){return(0,N.jsxs)(`div`,{className:c.uiPopupOption,children:[(0,N.jsx)(`span`,{className:c.uiPopupOptionIcon}),(0,N.jsx)(s,{color:t?`error`:`primary`,children:e})]})}var N;function P(){return(P=t((()=>{o(),l(),N=a(),M.__docgenInfo={description:"Скелетон строки опции для `MultiSelect`. Используется во время загрузки или при отображении ошибок получения списка.",methods:[],displayName:`MultiSelectOptionSkeleton`,props:{text:{required:!0,tsType:{name:`string`},description:``},isError:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}function de({isNoData:e,error:t,children:n}){return e?(0,R.jsx)(x,{emptyState:(0,R.jsx)(M,{text:`Нет данных`})}):t?(0,R.jsx)(x,{errorState:(0,R.jsx)(M,{isError:!0,text:`Ошибка загрузки`})}):(0,R.jsx)(R.Fragment,{children:n})}function F(e,t){return e[t]}function fe(e,t,n){return Array.from(new Set([e[n],e[t],...Object.values(e)]))}function pe(e,t,n){if(e.length!==t.length)return!1;let r=new Set(t.map(e=>F(e,n)));return e.every(e=>r.has(F(e,n)))}function me({entries:e,listId:t,activeIndex:n,selectedKeys:r,codeKey:a,query:o,highlightQuery:s,getOptionDisabled:c,getOptionId:l,setOptionRef:u,toggleOption:ee,selectOnlyOption:d,renderItem:te}){return e.map(({item:e,index:f})=>{let p=f===n,m=F(e,a),h=r.has(m),g=c?.(e)??!1,_=te(e,{selected:h,active:p,disabled:g,query:o,highlightQuery:s});return(0,R.jsxs)(re,{id:l(t,f),ref:e=>u(f,e),role:`row`,"aria-selected":h,"aria-disabled":g||void 0,selected:h,active:p,disabled:g,children:[(0,R.jsx)(`div`,{role:`gridcell`,className:A.optionCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,R.jsx)(i,{value:h,disabled:g,"aria-label":`${h?`Убрать`:`Добавить`} «${_.text}» ${h?`из выбора`:`в выбор`}`,onChange:()=>ee(e)})}),(0,R.jsx)(`div`,{role:`gridcell`,className:A.optionActionCell,children:(0,R.jsx)(E,{tabIndex:-1,disabled:g,"aria-label":`Выбрать только «${_.text}»`,text:_.text,code:_.code,searchText:s,onMouseDown:e=>e.preventDefault(),onClick:()=>d(e)})})]},`${m}-${f}`)})}function I({ref:e,codeKey:t,textKey:n,hideCode:r,items:i,value:a,onChange:o,label:s,description:c,placeholder:l,size:u,query:d,defaultQuery:m,highlightQuery:g,onQuery:_,defaultFilter:v=!0,onOpen:y,onClose:re,getOptionDisabled:b,disabled:x,error:S,isLoading:C,renderToken:w,renderToolbar:T,renderItem:ue}){let E=(0,L.useRef)(null),[D,O]=(0,L.useState)(!1),k=`search-multi`,j=a??z,M=(0,L.useMemo)(()=>new Set(j.map(e=>F(e,t))),[t,j]),N=(0,L.useMemo)(()=>i.filter(e=>!M.has(F(e,t))),[t,M,i]),P=(0,L.useMemo)(()=>oe([...j,...i],t,n),[t,j,i,n]),{query:I,setQuery:B,resetQueryOnClose:he}=ie({query:d,defaultQuery:m,onQuery:_,triggerMode:k}),ge=e=>{D&&!e&&he&&B(``),O(e)},V=ae({options:j,query:I,enabled:v,getSearchText:e=>fe(e,t,P)}),H=ae({options:N,query:I,enabled:v,getSearchText:e=>fe(e,t,P)}),U=(0,L.useMemo)(()=>[...V,...H],[H,V]),_e=V.length>0?0:-1,{draftValue:W,setDraftValue:G,prepareOpen:ve}=ce({value:j,open:D,onCommit:o,onOpen:y,onClose:re,isEqual:(e,n)=>pe(e,n,t)}),K=(0,L.useMemo)(()=>new Set(W.map(e=>F(e,t))),[t,W]),q=(0,L.useMemo)(()=>({selectedItems:W,committedSelectedItems:j,selectedKeys:K,open:D}),[j,W,D,K]),J=(0,L.useCallback)(e=>b?.(e,q)??!1,[b,q]),{activeIndex:Y,context:ye,floatingStyles:be,getFloatingProps:xe,setReference:Se,setFloating:Ce,setOptionRef:we,close:Te,openList:Ee,toggleOpen:De,handleReferenceKeyDown:Oe,handleFloatingKeyDown:ke,getOptionId:Ae,getActiveOptionId:je}=te({options:U,selectedIndex:_e,open:D,onOpenChange:ge,onSelect:void 0,disabled:x,getOptionDisabled:J,closeOnSelect:!1,allowOpenWithoutOptions:!0,triggerMode:k}),Me=g??I,X=e=>{let n=F(e,t);G(r=>r.some(e=>F(e,t)===n)?r.filter(e=>F(e,t)!==n):J(e)?r:[...r,e])},Ne=t=>{if(E.current=t,typeof e==`function`){e(t);return}e&&(e.current=t)},Pe=()=>{G([]),D||o([])},Fe=()=>{G(e=>{let n=[...e],r=new Set(e.map(e=>F(e,t)));for(let e of U){let i=F(e,t);!r.has(i)&&!J(e)&&(r.add(i),n.push(e))}return n})},Ie=()=>{G([])},Z=e=>{J(e)||(G([e]),Te())},Le=D?W:j,Re=Le.length>0,ze={selectedItems:Le,committedSelectedItems:j,availableItems:H,query:I,open:D,clearSelection:Pe,selectAll:Fe,deselectAll:Ie},Be=w===void 0?se({codeKey:t,textKey:P}):w,Ve=ue??le({codeKey:t,textKey:P,hideCode:r}),He=typeof Be==`function`?Be(ze):null,Ue=typeof T==`function`?T(ze):T,Q=V.map((e,t)=>({item:e,index:t})),We=H.map((e,t)=>({item:e,index:t+Q.length})),Ge=!C&&!S&&U.length===0,$=p({mode:k,open:D,currentQuery:I,hasDisplayValue:!1,inputRef:E,setQuery:B,openList:Ee,close:Te,toggleOpen:De,onBeforeOpen:()=>{D||ve()}});return(0,R.jsx)(ee,{label:s,description:c,disabled:x,size:u,className:A.multiSelect,children:({controlId:e,labelId:n,describedBy:r})=>{let a=`${e}-grid`;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(h,{ref:Ne,rootRef:Se,id:e,type:`text`,role:`combobox`,autoComplete:`off`,isLoading:C,disabled:x,open:D,optionCount:i.length,label:s,placeholder:l,placeholderFallback:`Выберите значения`,value:I,selectedValue:He,hasSelection:Re,showSelectedValue:Re&&I.length===0,clearable:!0,onClear:Pe,clearAriaLabel:`Очистить все`,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`grid`,"aria-expanded":D,"aria-controls":D?a:void 0,"aria-autocomplete":`list`,"aria-activedescendant":D?je(a):void 0,rootClassName:`flex alignItemsCenter`,onChange:e=>{$.handleTriggerInputChange(e.target.value)},onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(Oe(e),!e.defaultPrevented){if(D&&e.ctrlKey&&e.key===` `){e.preventDefault();let t=U[Y];t&&X(t);return}$.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=U[Y];e&&Z(e)},enableClosedArrowDownOpen:!0,suppressClosedArrowUp:!0})}}}),(0,R.jsx)(f,{open:D,context:ye,floatingStyles:be,listId:a,labelId:n,descriptionId:r,activeOptionId:D?je(a):void 0,ariaMultiselectable:!0,popupRole:`grid`,setFloating:Ce,getFloatingProps:xe,onKeyDown:ke,initialFocus:-1,returnFocus:!1,tabIndex:-1,toolbar:Ue,selectionActions:T===void 0?{onSelectAll:Fe,onDeselectAll:Ie}:void 0,children:(0,R.jsx)(de,{isNoData:Ge,error:S,children:(0,R.jsxs)(`div`,{role:`presentation`,className:`scrollable overscroll h100`,children:[(0,R.jsx)(me,{entries:Q,listId:a,activeIndex:Y,selectedKeys:K,codeKey:t,query:I,highlightQuery:Me,getOptionDisabled:J,getOptionId:Ae,setOptionRef:we,toggleOption:X,selectOnlyOption:Z,renderItem:Ve}),Q.length>0&&N.length>0&&(0,R.jsx)(ne,{"aria-hidden":`true`,className:`marginBlockSm`}),(0,R.jsx)(me,{entries:We,listId:a,activeIndex:Y,selectedKeys:K,codeKey:t,query:I,highlightQuery:Me,getOptionDisabled:J,getOptionId:Ae,setOptionRef:we,toggleOption:X,selectOnlyOption:Z,renderItem:Ve})]})})})]})}})}var L,R,z;function B(){return(B=t((()=>{L=e(n(),1),r(),y(),ue(),u(),_(),b(),d(),C(),m(),S(),T(),g(),v(),w(),j(),P(),R=a(),z=[],I.displayName=`MultiSelect`,I.__docgenInfo={description:`Поле множественного выбора с внутренним черновиком значений и подтверждением выбора при закрытии списка.
2
+ Подходит как для самостоятельного использования, так и как базовый слой для OData-оберток.`,methods:[],displayName:`MultiSelect`,props:{renderToken:{required:!1,tsType:{name:`union`,raw:`((context: TContext) => React.ReactNode) | null | false`,elements:[{name:`unknown`},{name:`null`},{name:`literal`,value:`false`}]},description:``},renderToolbar:{required:!1,tsType:{name:`union`,raw:`((context: TContext) => React.ReactNode) | null | false`,elements:[{name:`unknown`},{name:`null`},{name:`literal`,value:`false`}]},description:``},renderItem:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: CollectionItem, state: MultiSelectItemState) => MultiSelectOptionContent`,signature:{arguments:[{type:{name:`CollectionItem`},name:`item`},{type:{name:`MultiSelectItemState`},name:`state`}],return:{name:`MultiSelectOptionContent`}}},description:``},label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},codeKey:{required:!0,tsType:{name:`string`},description:``},textKey:{required:!1,tsType:{name:`string`},description:``},hideCode:{required:!1,tsType:{name:`boolean`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},highlightQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},defaultFilter:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},items:{required:!0,tsType:{name:`Array`,elements:[{name:`TOption`}],raw:`TOption[]`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: TOption, context: MultiSelectOptionDisableContext) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`item`},{type:{name:`MultiSelectOptionDisableContext`},name:`context`}],return:{name:`boolean`}}},description:``},onOpen:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: TOption[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TOption`}],raw:`TOption[]`},name:`value`}],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},ref:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLInputElement`}],raw:`Ref<HTMLInputElement>`},description:``}}}})))()}export{B as n,I as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-woVbsQH3.js";import{i as n,r}from"./react-Bl2r1tuC.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-Cw5Dm88b.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./MultiSelect.stories-4nFshdtz.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:p,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DfqtMMgG.js";import{i as n,r}from"./react-Bl2r1tuC.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-TIr5_lNX.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./MultiSelect.stories-BPsGXWR2.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:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`MultiSelect`}),`
3
3
  `,(0,x.jsx)(o,{children:`Мультиселект для локальных коллекций с токенами, поиском и состояниями загрузки`}),`
4
4
  `,(0,x.jsx)(t.p,{children:`MultiSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -36,6 +36,9 @@ export function Example() {
36
36
  `,(0,x.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
37
37
  `,(0,x.jsxs)(t.ul,{children:[`
38
38
  `,(0,x.jsx)(t.li,{children:`Для асинхронных сценариев предусмотрите не только успешный путь, но и загрузку, пустой результат и ошибку.`}),`
39
+ `,(0,x.jsxs)(t.li,{children:[`Popup использует `,(0,x.jsx)(t.code,{children:`grid`}),`, потому что строка содержит два самостоятельных действия: checkbox меняет черновой множественный выбор, а кнопка с названием выбирает только текущую строку и сразу применяет значение.`]}),`
40
+ `,(0,x.jsxs)(t.li,{children:[`При фокусе в поле стрелки перемещают активную строку, `,(0,x.jsx)(t.code,{children:`Ctrl+Space`}),` переключает её checkbox без закрытия, а `,(0,x.jsx)(t.code,{children:`Enter`}),` выполняет немедленный выбор только активной строки.`]}),`
41
+ `,(0,x.jsxs)(t.li,{children:[`Массовые действия находятся вне `,(0,x.jsx)(t.code,{children:`grid`}),`, поэтому остаются самостоятельными кнопками и не нарушают структуру составного виджета.`]}),`
39
42
  `]}),`
40
43
  `,(0,x.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
41
44
  `,(0,x.jsx)(t.h3,{id:`базовый-сценарий-без-дополнительной-логики`,children:`Базовый сценарий без дополнительной логики`}),`
@@ -0,0 +1 @@
1
+ ._9oSdQi{padding:0}.d9SDKQ{--check-box-control-size:auto;padding-left:var(--space-sm);flex-shrink:0;align-items:center;display:inline-flex}.xCo7w9{flex:1 1 0;align-self:stretch;min-width:0;display:flex}
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-woVbsQH3.js";import{n as i,t as a}from"./MultiSelect-BkLCM22R.js";var o=t({Basic:()=>p,Empty:()=>g,ErrorState:()=>h,Loading:()=>m,__namedExportsOrder:()=>_,default:()=>f}),s,c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{s=n(),i(),c=r(),{useArgs:l}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:u}=__STORYBOOK_MODULE_TEST__,d=[{code:`MOW`,label:`Москва`},{code:`SPB`,label:`Санкт-Петербург`},{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`NSK`,label:`Новосибирск`}],f={title:`UI/MultiSelect`,component:a,args:{label:`Города`,description:`Выберите несколько значений.`,placeholder:`Начните вводить`,value:[],onChange:u(),codeKey:`code`,textKey:`label`,items:d,query:``,onQuery:u(),onOpen:()=>{},onClose:u(),size:`md`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},placeholder:{description:`Текст пустого поля.`,control:`text`},value:{description:`Контролируемый набор выбранных option.`,control:!1},onChange:{description:`Вызывается после подтверждения набора option.`,control:!1},codeKey:{description:`Имя поля option с уникальным ключом.`,control:`text`},textKey:{description:`Имя поля option с отображаемым текстом.`,control:`text`},hideCode:{description:`Скрывает код option в токенах и списке.`,control:`boolean`},items:{description:`Набор доступных option.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},highlightQuery:{description:`Текст, который подсвечивается в option.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},defaultFilter:{description:`Включает встроенную фильтрацию option.`,control:`boolean`},getOptionDisabled:{description:`Блокирует отдельные option с учетом текущего выбора.`,control:!1},onOpen:{description:`Вызывается при открытии списка.`,control:!1},onClose:{description:`Вызывается при закрытии списка после commit.`,control:!1},error:{description:`Текст ошибки загрузки option.`,control:`text`},isLoading:{description:`Показывает состояние загрузки option.`,control:`boolean`},renderToken:{description:`Кастомный рендер выбранных токенов.`,control:!1},renderToolbar:{description:`Кастомный рендер toolbar popup.`,control:!1},renderItem:{description:`Возвращает text, code и searchText для общей композиции OptionButton.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},p={render:function(e){let[,t]=l(),n=e.value??[d[1]],r=e.query??``,i=(0,s.useMemo)(()=>{let e=r.trim().toLowerCase();return e?d.filter(t=>t.label.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)):d},[r]);return(0,c.jsx)(a,{...e,value:n,items:i,query:r,onQuery:n=>{e.onQuery?.(n),t({query:n})},onChange:n=>{e.onChange(n),t({value:n})}})}},m={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??[],items:[],isLoading:!0,onChange:n=>{e.onChange(n),t({value:n})}})}},h={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??[],items:[],error:`Ошибка загрузки`,onChange:n=>{e.onChange(n),t({value:n})}})}},g={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??[],items:[],onChange:n=>{e.onChange(n),t({value:n})}})}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DfqtMMgG.js";import{n as i,t as a}from"./MultiSelect-DDC0Nrrq.js";var o=t({Basic:()=>p,Empty:()=>g,ErrorState:()=>h,Loading:()=>m,__namedExportsOrder:()=>_,default:()=>f}),s,c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{s=n(),i(),c=r(),{useArgs:l}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:u}=__STORYBOOK_MODULE_TEST__,d=[{code:`MOW`,label:`Москва`},{code:`SPB`,label:`Санкт-Петербург`},{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`NSK`,label:`Новосибирск`}],f={title:`UI/MultiSelect`,component:a,args:{label:`Города`,description:`Выберите несколько значений.`,placeholder:`Начните вводить`,value:[],onChange:u(),codeKey:`code`,textKey:`label`,items:d,query:``,onQuery:u(),onOpen:()=>{},onClose:u(),size:`md`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},placeholder:{description:`Текст пустого поля.`,control:`text`},value:{description:`Контролируемый набор выбранных option.`,control:!1},onChange:{description:`Вызывается после подтверждения набора option.`,control:!1},codeKey:{description:`Имя поля option с уникальным ключом.`,control:`text`},textKey:{description:`Имя поля option с отображаемым текстом.`,control:`text`},hideCode:{description:`Скрывает код option в токенах и списке.`,control:`boolean`},items:{description:`Набор доступных option.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},highlightQuery:{description:`Текст, который подсвечивается в option.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},defaultFilter:{description:`Включает встроенную фильтрацию option.`,control:`boolean`},getOptionDisabled:{description:`Блокирует отдельные option с учетом текущего выбора.`,control:!1},onOpen:{description:`Вызывается при открытии списка.`,control:!1},onClose:{description:`Вызывается при закрытии списка после commit.`,control:!1},error:{description:`Текст ошибки загрузки option.`,control:`text`},isLoading:{description:`Показывает состояние загрузки option.`,control:`boolean`},renderToken:{description:`Кастомный рендер выбранных токенов.`,control:!1},renderToolbar:{description:`Кастомный рендер toolbar popup.`,control:!1},renderItem:{description:`Возвращает text, code и searchText для общей композиции OptionButton.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},p={render:function(e){let[,t]=l(),n=e.value??[d[1]],r=e.query??``,i=(0,s.useMemo)(()=>{let e=r.trim().toLowerCase();return e?d.filter(t=>t.label.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)):d},[r]);return(0,c.jsx)(a,{...e,value:n,items:i,query:r,onQuery:n=>{e.onQuery?.(n),t({query:n})},onChange:n=>{e.onChange(n),t({value:n})}})}},m={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??[],items:[],isLoading:!0,onChange:n=>{e.onChange(n),t({value:n})}})}},h={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??[],items:[],error:`Ошибка загрузки`,onChange:n=>{e.onChange(n),t({value:n})}})}},g={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??[],items:[],onChange:n=>{e.onChange(n),t({value:n})}})}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
2
2
  render: function Render(args) {
3
3
  const [, updateArgs] = useArgs<React.ComponentProps<typeof MultiSelect>>();
4
4
  const value = args.value ?? [catalog[1]!];
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DfqtMMgG.js";import{a as n,i as r}from"./utils-tg3ibbzi.js";import{n as i,t as a}from"./Text-Bswu5PVP.js";function o({className:e,minHeight:t,children:r,style:i,...a}){let o=t===void 0?i:{...i,minHeight:t};return(0,s.jsx)(`div`,{...a,className:n(`flexCenter h100`,e),style:o,children:r})}var s;function c(){return(c=e((()=>{r(),s=t(),o.__docgenInfo={description:``,methods:[],displayName:`FlexCenter`,props:{children:{required:!1,tsType:{name:`ReactNode`},description:``},minHeight:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``}},composes:[`Omit`]}})))()}var l,u;function d(){return(d=e((()=>{l=`qgIKVo`,u={componentLoader:l}})))()}function f({className:e,children:t,color:r=`muted`,role:i,minHeight:s,uppercase:c=!0}){return(0,p.jsx)(o,{className:n(`paddingMd textCenter`,e),minHeight:s,children:(0,p.jsx)(a,{as:`p`,weight:`bold`,color:r,uppercase:c,role:i,children:t})})}var p;function m(){return(m=e((()=>{r(),c(),i(),p=t(),f.__docgenInfo={description:``,methods:[],displayName:`Message`,props:{className:{required:!1,tsType:{name:`string`},description:``},color:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary" | "muted" | "error" | "warning" | "success" | "info" | "brand" | "accent"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`},{name:`literal`,value:`"muted"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"accent"`}]},description:``,defaultValue:{value:`"muted"`,computed:!1}},minHeight:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},uppercase:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},role:{required:!1,tsType:{name:`AriaRole`},description:``}},composes:[`PropsWithChildren`]}})))()}function h({className:e,logo:t,text:r}){return(0,g.jsxs)(f,{className:n(u.componentLoader,t?void 0:`skeletonLine`,e),children:[t,r||`Загрузка...`]})}var g;function _(){return(_=e((()=>{r(),d(),m(),g=t(),h.__docgenInfo={description:``,methods:[],displayName:`LoadingMessage`,props:{className:{required:!1,tsType:{name:`string`},description:``},logo:{required:!1,tsType:{name:`ReactNode`},description:`Готовый брендовый знак, которым host-проект при необходимости дополняет сообщение о загрузке.`},text:{required:!1,tsType:{name:`string`},description:``}}}})))()}function v({className:e,text:t,role:n,minHeight:r=`5em`}){return(0,y.jsx)(f,{className:e,color:`muted`,minHeight:r,role:n,children:t||`Нет данных`})}var y;function b(){return(b=e((()=>{m(),y=t(),v.__docgenInfo={description:``,methods:[],displayName:`NoData`,props:{className:{required:!1,tsType:{name:`string`},description:``},text:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``,defaultValue:{value:`"5em"`,computed:!1}},role:{required:!1,tsType:{name:`AriaRole`},description:``}}}})))()}export{_ as i,b as n,h as r,v as t};
@@ -0,0 +1,75 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,n,r,t as i}from"./NotificationsHost.stories-BdkJz6WZ.js";import{n as a}from"./iframe-DfqtMMgG.js";import{i as o,r as s}from"./react-Bl2r1tuC.js";import{a as c,d as l,f as u,l as d,m as f,n as p,p as m,r as h,u as g}from"./blocks-TIr5_lNX.js";function _(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...o(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(d,{of:n,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,y.jsx)(m,{children:`NotificationsHost`}),`
3
+ `,(0,y.jsx)(u,{children:`Активный toast-стек и headless-доступ к полной истории уведомлений`}),`
4
+ `,(0,y.jsx)(t.p,{children:`NotificationsHost уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
+ Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента.`}),`
6
+ `,(0,y.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,y.jsx)(g,{}),`
8
+ `,(0,y.jsx)(c,{of:r}),`
9
+ `,(0,y.jsx)(t.pre,{children:(0,y.jsx)(t.code,{className:`language-tsx`,children:`import { notify } from "@ryuzaki13/react-foundation-lib/notifications";
10
+ import { Button } from "@ryuzaki13/react-foundation-ui/button";
11
+ import { NotificationsHost, NotificationsProvider } from "@ryuzaki13/react-foundation-ui/notifications";
12
+
13
+ export function Example() {
14
+ return (
15
+ <NotificationsProvider>
16
+ <Button
17
+ onClick={() =>
18
+ notify.success("Операция завершена", {
19
+ title: "Готово"
20
+ })
21
+ }>
22
+ Показать уведомление
23
+ </Button>
24
+ <NotificationsHost />
25
+ </NotificationsProvider>
26
+ );
27
+ }
28
+ `})}),`
29
+ `,(0,y.jsx)(t.h2,{id:`отдельный-центр-уведомлений`,children:`Отдельный центр уведомлений`}),`
30
+ `,(0,y.jsxs)(t.p,{children:[(0,y.jsx)(t.code,{children:`NotificationsHost`}),` отвечает только за краткоживущий toast-стек. Все созданные уведомления остаются в store и доступны через `,(0,y.jsx)(t.code,{children:`useNotificationHistory()`}),`, даже если toast был закрыт вручную, истёк по TTL или вытеснен лимитом из шести элементов.`]}),`
31
+ `,(0,y.jsxs)(t.p,{children:[`Hook возвращает только данные и не навязывает UI. Host-проект сам решает, где и как показать историю: на отдельной странице, внутри `,(0,y.jsx)(t.code,{children:`Dialog`}),`, `,(0,y.jsx)(t.code,{children:`Modal`}),` или другого собственного контейнера.`]}),`
32
+ `,(0,y.jsx)(t.pre,{children:(0,y.jsx)(t.code,{className:`language-tsx`,children:`import { Button } from "@ryuzaki13/react-foundation-ui/button";
33
+ import { useNotificationHistory, useNotify } from "@ryuzaki13/react-foundation-ui/notifications";
34
+
35
+ export function NotificationsHistoryContent() {
36
+ const history = useNotificationHistory();
37
+ const { clearHistory } = useNotify();
38
+
39
+ return (
40
+ <section aria-labelledby="notifications-history-title">
41
+ <h2 id="notifications-history-title">Все уведомления</h2>
42
+ <Button onClick={clearHistory}>Очистить историю</Button>
43
+
44
+ <ul>
45
+ {history.map((notification) => (
46
+ <li key={notification.id}>
47
+ <strong>{notification.title}</strong>
48
+ <div>{notification.message}</div>
49
+ </li>
50
+ ))}
51
+ </ul>
52
+ </section>
53
+ );
54
+ }
55
+ `})}),`
56
+ `,(0,y.jsxs)(t.p,{children:[(0,y.jsx)(t.code,{children:`useNotifications()`}),` возвращает только активные toast-уведомления. `,(0,y.jsx)(t.code,{children:`clear()`}),` скрывает toast-стек, сохраняя историю; `,(0,y.jsx)(t.code,{children:`clearHistory()`}),` очищает историю, не закрывая активные toast.`]}),`
57
+ `,(0,y.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
58
+ `,(0,y.jsxs)(t.ul,{children:[`
59
+ `,(0,y.jsx)(t.li,{children:`Хост объявляется именованной областью «Область уведомлений», чтобы пользователь assistive technologies мог найти текущие сообщения.`}),`
60
+ `,(0,y.jsxs)(t.li,{children:[`Обычные уведомления используют `,(0,y.jsx)(t.code,{children:`role="status"`}),` с вежливым объявлением, ошибки — `,(0,y.jsx)(t.code,{children:`role="alert"`}),` с приоритетным объявлением. Общий контейнер не является вторым live-region, поэтому сообщение не дублируется.`]}),`
61
+ `,(0,y.jsx)(t.li,{children:`Кнопка закрытия включает заголовок уведомления в доступное имя. Кнопки действий остаются обычными кнопками и доступны с клавиатуры.`}),`
62
+ `,(0,y.jsxs)(t.li,{children:[`Для уведомлений с действиями или длинным текстом задавайте `,(0,y.jsx)(t.code,{children:`ttlMs: 0`}),` либо достаточно большой интервал: автоматически исчезающее сообщение может оказаться недоступным пользователю.`]}),`
63
+ `,(0,y.jsx)(t.li,{children:`Не используйте уведомление как единственный способ показать ошибку поля или состояние длительной операции: основное состояние должно оставаться в интерфейсе владельца сценария.`}),`
64
+ `]}),`
65
+ `,(0,y.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
66
+ `,(0,y.jsx)(t.h3,{id:`общий-showcase-для-обзорной-проверки-компонента`,children:`Общий showcase для обзорной проверки компонента`}),`
67
+ `,(0,y.jsx)(t.p,{children:`Общий showcase для обзорной проверки компонента.`}),`
68
+ `,(0,y.jsx)(h,{of:r}),`
69
+ `,(0,y.jsx)(t.h3,{id:`интерактивная-песочница-для-ручной-проверки-поведения`,children:`Интерактивная песочница для ручной проверки поведения`}),`
70
+ `,(0,y.jsx)(t.p,{children:`Интерактивная песочница для ручной проверки поведения.`}),`
71
+ `,(0,y.jsx)(h,{of:i}),`
72
+ `,(0,y.jsx)(t.h2,{id:`api`,children:`API`}),`
73
+ `,(0,y.jsx)(p,{of:n}),`
74
+ `,(0,y.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
75
+ `,(0,y.jsx)(l,{includePrimary:!1})]})}function v(e={}){let{wrapper:t}={...o(),...e.components};return t?(0,y.jsx)(t,{...e,children:(0,y.jsx)(_,{...e})}):_(e)}var y;function b(){return(b=e((()=>{y=a(),s(),f(),t()})))()}b();export{v as default};