@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,6 +1,6 @@
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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Infrastructure/Notifications`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Infrastructure/Notifications`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`notifications`,children:`Notifications`}),`
3
- `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/notifications`}),` хранит очередь коротких уведомлений и предоставляет два способа управления ею:`]}),`
3
+ `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/notifications`}),` хранит активный toast-стек и полную историю уведомлений, а также предоставляет два способа управления ими:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
5
5
  `,(0,c.jsx)(t.li,{children:`Zustand-store — для React-интерфейса, который отображает уведомления;`}),`
6
6
  `,(0,c.jsxs)(t.li,{children:[`объект `,(0,c.jsx)(t.code,{children:`notify`}),` — для императивных вызовов из обработчиков, сервисов и `,(0,c.jsx)(t.code,{children:`try/catch`}),`.`]}),`
@@ -65,6 +65,7 @@ export function NotificationsViewport() {
65
65
  );
66
66
  }
67
67
  `})}),`
68
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`items`}),` содержит только активные toast-уведомления и ограничен шестью элементами. Для отдельного центра уведомлений, страницы или содержимого диалога подписывайтесь на `,(0,c.jsx)(t.code,{children:`state.history`}),`: эта коллекция не сокращается при TTL, ручном закрытии и переполнении toast-стека.`]}),`
68
69
  `,(0,c.jsx)(t.h3,{id:`3-показывайте-уведомления`,children:`3. Показывайте уведомления`}),`
69
70
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`notify.success("Данные сохранены");
70
71
  notify.info("Началась синхронизация", { title: "Синхронизация" });
@@ -101,16 +102,19 @@ type Notification = {
101
102
  `,(0,c.jsx)(t.p,{children:`Создаёт независимый store со структурой:`}),`
102
103
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type NotificationsStore = {
103
104
  items: Notification[];
105
+ history: Notification[];
104
106
  actions: {
105
107
  push(input): NotificationId;
106
108
  update(id, patch): boolean;
107
109
  upsert(inputWithId): NotificationId;
108
110
  dismiss(id): void;
109
111
  clear(): void;
112
+ clearHistory(): void;
110
113
  };
111
114
  };
112
115
  `})}),`
113
- `,(0,c.jsxs)(t.p,{children:[`Очередь ограничена шестью элементами. Новое уведомление помещается в начало. При добавлении с уже существующим `,(0,c.jsx)(t.code,{children:`id`}),` старый элемент удаляется, а новый получает новое `,(0,c.jsx)(t.code,{children:`createdAt`}),`.`]}),`
116
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`items`}),` — стек видимых toast-уведомлений, ограниченный шестью элементами. `,(0,c.jsx)(t.code,{children:`history`}),` — полная история за время жизни store. Новое уведомление помещается в начало обеих коллекций. При добавлении с уже существующим `,(0,c.jsx)(t.code,{children:`id`}),` старый элемент заменяется, а новый получает новое `,(0,c.jsx)(t.code,{children:`createdAt`}),`.`]}),`
117
+ `,(0,c.jsxs)(t.p,{children:[`История живёт в памяти и не является журналом аудита: она сбрасывается при пересоздании store или явном `,(0,c.jsx)(t.code,{children:`clearHistory()`}),`. Поскольку `,(0,c.jsx)(t.code,{children:`actions`}),` уведомлений содержат функции, модуль намеренно не сохраняет историю в `,(0,c.jsx)(t.code,{children:`localStorage`}),` и не сериализует её.`]}),`
114
118
  `,(0,c.jsx)(t.h3,{id:`pushinput`,children:(0,c.jsx)(t.code,{children:`push(input)`})}),`
115
119
  `,(0,c.jsxs)(t.p,{children:[`Добавляет уведомление и возвращает его `,(0,c.jsx)(t.code,{children:`id`}),`.`]}),`
116
120
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const id = notificationsStore.getState().actions.push({
@@ -142,8 +146,9 @@ type Notification = {
142
146
  });
143
147
  `})}),`
144
148
  `,(0,c.jsxs)(t.p,{children:[`Важная деталь: при обновлении существующего элемента `,(0,c.jsx)(t.code,{children:`upsert`}),` меняет `,(0,c.jsx)(t.code,{children:`type`}),`, `,(0,c.jsx)(t.code,{children:`title`}),`, `,(0,c.jsx)(t.code,{children:`message`}),`, `,(0,c.jsx)(t.code,{children:`ttlMs`}),` и `,(0,c.jsx)(t.code,{children:`dismissible`}),`, но не заменяет `,(0,c.jsx)(t.code,{children:`actions`}),`. Для явной смены действий используйте `,(0,c.jsx)(t.code,{children:`update(id, { actions })`}),`.`]}),`
145
- `,(0,c.jsxs)(t.h3,{id:`dismissid-и-clear`,children:[(0,c.jsx)(t.code,{children:`dismiss(id)`}),` и `,(0,c.jsx)(t.code,{children:`clear()`})]}),`
146
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`dismiss(id)`}),` удаляет один элемент и очищает его таймер. `,(0,c.jsx)(t.code,{children:`clear()`}),` удаляет всю очередь и все таймеры.`]}),`
149
+ `,(0,c.jsxs)(t.h3,{id:`dismissid-clear-и-clearhistory`,children:[(0,c.jsx)(t.code,{children:`dismiss(id)`}),`, `,(0,c.jsx)(t.code,{children:`clear()`}),` и `,(0,c.jsx)(t.code,{children:`clearHistory()`})]}),`
150
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`dismiss(id)`}),` скрывает один toast и очищает его таймер. `,(0,c.jsx)(t.code,{children:`clear()`}),` скрывает весь toast-стек и очищает все таймеры. Обе операции сохраняют записи в `,(0,c.jsx)(t.code,{children:`history`}),`.`]}),`
151
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`clearHistory()`}),` явно очищает историю, не закрывая активные toast-уведомления. Чтобы полностью сбросить обе коллекции, последовательно вызовите `,(0,c.jsx)(t.code,{children:`clear()`}),` и `,(0,c.jsx)(t.code,{children:`clearHistory()`}),`.`]}),`
147
152
  `,(0,c.jsxs)(t.h2,{id:`императивный-api-notify`,children:[`Императивный API `,(0,c.jsx)(t.code,{children:`notify`})]}),`
148
153
  `,(0,c.jsx)(t.h3,{id:`привязка-и-жизненный-цикл`,children:`Привязка и жизненный цикл`}),`
149
154
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const unbind = bindNotifications(notificationsStore);
@@ -159,6 +164,7 @@ notify.upsert(inputWithId);
159
164
  notify.update(id, patch);
160
165
  notify.dismiss(id);
161
166
  notify.clear();
167
+ notify.clearHistory();
162
168
 
163
169
  notify.success(message, options);
164
170
  notify.info(message, options);
@@ -189,7 +195,7 @@ notify.error(message, options);
189
195
  `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`update(message)`}),` — меняет текст, не перезапуская таймер;`]}),`
190
196
  `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`success(message, ttlMs = 2500)`}),` — делает уведомление успешным и закрываемым;`]}),`
191
197
  `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`error(message, ttlMs = 5000)`}),` — делает уведомление ошибкой и закрываемым;`]}),`
192
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`dismiss()`}),` — удаляет уведомление.`]}),`
198
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`dismiss()`}),` — скрывает toast, сохраняя уведомление в истории.`]}),`
193
199
  `]}),`
194
200
  `,(0,c.jsxs)(t.p,{children:[`При переданном стабильном `,(0,c.jsx)(t.code,{children:`id`}),` повторный `,(0,c.jsx)(t.code,{children:`progress`}),` продолжит существующий элемент. Это удобно для операции, которая может стартовать из нескольких мест.`]}),`
195
201
  `,(0,c.jsx)(t.h2,{id:`browser-и-ssr`,children:`Browser и SSR`}),`
@@ -221,6 +227,6 @@ notify.success("Готово");
221
227
  `,(0,c.jsxs)(t.h3,{id:`ожидание-что-dismissible-false-блокирует-удаление`,children:[`Ожидание, что `,(0,c.jsx)(t.code,{children:`dismissible: false`}),` блокирует удаление`]}),`
222
228
  `,(0,c.jsxs)(t.p,{children:[`Это только поле модели для UI. `,(0,c.jsx)(t.code,{children:`notify.dismiss(id)`}),` всё равно удалит элемент.`]}),`
223
229
  `,(0,c.jsx)(t.h3,{id:`использование-уведомления-вместо-состояния-операции`,children:`Использование уведомления вместо состояния операции`}),`
224
- `,(0,c.jsx)(t.p,{children:`Очередь ограничена шестью элементами и живёт в памяти страницы. Не используйте её как журнал аудита, источник истины о фоновой задаче или долговременное хранилище ошибок.`}),`
230
+ `,(0,c.jsx)(t.p,{children:`История живёт в памяти страницы. Не используйте её как журнал аудита, источник истины о фоновой задаче или долговременное хранилище ошибок.`}),`
225
231
  `,(0,c.jsx)(t.h2,{id:`краткая-карта-api`,children:`Краткая карта API`}),`
226
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Экспорт`}),(0,c.jsx)(t.th,{children:`Назначение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createNotificationsStore()`})}),(0,c.jsx)(t.td,{children:`Создать независимый Zustand-store уведомлений`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`bindNotifications(store)`})}),(0,c.jsxs)(t.td,{children:[`Привязать store к глобальному фасаду `,(0,c.jsx)(t.code,{children:`notify`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`notify`})}),(0,c.jsx)(t.td,{children:`Императивно добавлять, обновлять и закрывать уведомления`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`Notification`})}),(0,c.jsx)(t.td,{children:`Полная модель сохранённого элемента`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationPushInput`})}),(0,c.jsx)(t.td,{children:`Параметры добавления элемента`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationUpdatePatch`})}),(0,c.jsx)(t.td,{children:`Допустимые поля частичного обновления`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationsStoreApi`})}),(0,c.jsx)(t.td,{children:`Тип vanilla Zustand-store`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationAction`})}),(0,c.jsx)(t.td,{children:`Кнопка-действие уведомления`})]})]})]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
232
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Экспорт`}),(0,c.jsx)(t.th,{children:`Назначение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createNotificationsStore()`})}),(0,c.jsx)(t.td,{children:`Создать независимый Zustand-store toast-стека и истории`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`bindNotifications(store)`})}),(0,c.jsxs)(t.td,{children:[`Привязать store к глобальному фасаду `,(0,c.jsx)(t.code,{children:`notify`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`notify`})}),(0,c.jsx)(t.td,{children:`Императивно добавлять, обновлять и закрывать уведомления`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`Notification`})}),(0,c.jsx)(t.td,{children:`Полная модель сохранённого элемента`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationPushInput`})}),(0,c.jsx)(t.td,{children:`Параметры добавления элемента`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationUpdatePatch`})}),(0,c.jsx)(t.td,{children:`Допустимые поля частичного обновления`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationsState`})}),(0,c.jsxs)(t.td,{children:[`Состояние с активными `,(0,c.jsx)(t.code,{children:`items`}),` и полной `,(0,c.jsx)(t.code,{children:`history`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationsActions`})}),(0,c.jsx)(t.td,{children:`Действия toast-стека и явная очистка истории`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationsStoreApi`})}),(0,c.jsx)(t.td,{children:`Тип vanilla Zustand-store`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`NotificationAction`})}),(0,c.jsx)(t.td,{children:`Кнопка-действие уведомления`})]})]})]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Row-Based`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Row-Based`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`row-based-форматтеры`,children:`Row-based форматтеры`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`rowBased`}),` — небольшой runtime-слой для формул, которые вычисляют отображаемое значение одной ячейки на основании других полей той же строки.`]}),`
4
4
  `,(0,c.jsxs)(t.p,{children:[`Он используется шагом `,(0,c.jsx)(t.code,{children:`rowBasedOverride`}),` в `,(0,c.jsx)(t.a,{href:`../pipeline/README.mdx`,children:`formatter pipeline`}),`. Сам модуль не содержит бизнес-формул: host-приложение создаёт их, собирает в реестр и один раз передаёт реестр библиотеке.`]}),`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Crypto`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Crypto`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`идентификаторы-и-строковые-hash`,children:`Идентификаторы и строковые hash`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`crypto`}),` предоставляет небольшие функции для двух разных задач:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Errors/Error Report Delivery`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Errors/Error Report Delivery`}),`
2
2
  `,(0,c.jsxs)(t.h1,{id:`durable-delivery-через-ryuzaki13react-foundation-apierror-report`,children:[`Durable delivery через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/error-report`})]}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль доставляет versioned payload из IndexedDB queue `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/error-report`}),`. Он владеет lease processing, timeout, retry/terminal policy и browser lifecycle, но не знает endpoint, auth и DB contract приложения.`]}),`
4
4
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`foundation-lib/error-report foundation-api/error-report app adapter/backend
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Bounded Copy Stack`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Bounded Copy Stack`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`ограниченный-стек-копий`,children:`Ограниченный стек копий`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль хранит небольшой список последних скопированных сущностей. Новый элемент помещается в начало, повтор по `,(0,c.jsx)(t.code,{children:`fingerprint`}),` обновляет существующую запись, а старые записи удаляются при превышении лимита.`]}),`
4
4
  `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Excel`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Excel`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`excel`,children:`Excel`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/excel`}),` формирует и скачивает `,(0,c.jsx)(t.code,{children:`.xlsx`}),`-файлы в браузере. Он поддерживает:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Interaction/Context Menu State`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Interaction/Context Menu State`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`состояние-и-anchors-контекстного-меню`,children:`Состояние и anchors контекстного меню`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль описывает открытое/закрытое состояние контекстного меню, источник открытия и два вида anchor: DOM element или экранная точка. Также он создаёт virtual anchor для Floating UI.`}),`
4
4
  `,(0,c.jsx)(t.p,{children:`Модуль не содержит React hook и не рисует меню.`}),`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Strings`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Strings`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`строковые-форматтеры`,children:`Строковые форматтеры`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль содержит небольшие предсказуемые функции для подготовки пользовательского текста: обрезки пробелов, безопасного преобразования в строку, удаления ведущих нулей, сокращения длинного текста и выбора русской формы слова.`}),`
4
4
  `,(0,c.jsx)(t.p,{children:`Все функции экспортируются через один публичный entrypoint:`}),`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Array`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Array`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`работа-с-массивами`,children:`Работа с массивами`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`array`}),` содержит небольшие типизированные функции для типовых операций с массивами:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Boolean`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Boolean`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`boolean-и-abap-boolean`,children:`Boolean и ABAP boolean`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Подмодуль `,(0,c.jsx)(t.code,{children:`boolean`}),` преобразует значения между JavaScript `,(0,c.jsx)(t.code,{children:`boolean`}),` и двухсимвольным ABAP-контрактом:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Media`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Media`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`адаптивность-и-media-queries`,children:`Адаптивность и media queries`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`media`}),` содержит общий низкоуровневый контракт адаптивности для React-приложений:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Binary`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Binary`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`работа-с-бинарными-данными`,children:`Работа с бинарными данными`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`binary`}),` преобразует строковое бинарное содержимое в браузерный `,(0,c.jsx)(t.code,{children:`Blob`}),`, определяет предполагаемый MIME-тип документа и предоставляет React hook для типового сценария «base64 → `,(0,c.jsx)(t.code,{children:`{ blob, mime }`}),`».`]}),`
4
4
  `,(0,c.jsx)(t.p,{children:`Основной сценарий:`}),`
@@ -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{l as i,m as a}from"./blocks-Cw5Dm88b.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Hooks`}),`
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{l as i,m as a}from"./blocks-TIr5_lNX.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Hooks`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`react-и-browser-hooks`,children:`React и browser hooks`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/hooks`}),` содержит общие React hooks для задач, которые повторяются в разных приложениях:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -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,r as g,t as _}from"./RadioButton.stories-DO14jTfm.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-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,r as g,t as _}from"./RadioButton.stories-DrOP5Alc.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`RadioButton`}),`
3
3
  `,(0,b.jsx)(o,{children:`Одиночная radio-кнопка для ручной сборки наборов выбора и специальных компоновок`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`RadioButton уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a}from"./iframe-DfqtMMgG.js";import{a as o,i as s}from"./utils-tg3ibbzi.js";import{n as c,t as l}from"./ui.module-0uniSGT-.js";import{i as u,r as d}from"./uiClasses-Bar5W7-L.js";import{n as f,t as p}from"./CheckBox.module-BOAVN-Ny.js";var m,h;function g(){return(g=t((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=t((()=>{_=`gu8UMB`,v={radioInput:_}})))()}function b({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:u,tone:f=`neutral`,...m}){let g=(0,x.useId)(),_=u??g,y=t?`${_}-description`:void 0,b=e??n,C=l??!1;return(0,S.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,S.jsxs)(`div`,{className:p.row,children:[(0,S.jsxs)(`div`,{className:o(p.wrapper,d(f)),children:[(0,S.jsx)(`input`,{...m,id:_,type:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:e=>s?.(e.currentTarget.checked)}),(0,S.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,S.jsx)(h,{fill:`currentColor`})})]}),b&&(0,S.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:b})]}),t&&(0,S.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})}var x,S;function C(){return(C=t((()=>{x=e(n(),1),s(),g(),f(),l(),u(),y(),S=i(),b.__docgenInfo={description:'Компонент радиокнопки для выбора одного варианта.\nНативный `input[type="radio"]` обеспечивает взаимоисключение элементов с\nобщим `name`, а controlled API продолжает публиковать булево состояние.\nПоддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.',methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,b as t};
@@ -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,t as i}from"./RadioButton-DMn-soQD.js";import{n as a}from"./iframe-woVbsQH3.js";import{n as o,t as s}from"./createControlledStoryRender-BouhvX-R.js";var c=t({Controlled:()=>p,Disabled:()=>h,Group:()=>m,__namedExportsOrder:()=>g,default:()=>f}),l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{l=n(),o(),r(),u=a(),d=s((e,t)=>(0,u.jsx)(i,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),f={title:`UI/RadioButton`,component:i,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`accent`,`brand`,`error`,`warning`,`success`,`info`]}}},p={render:d,args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,tone:`neutral`}},m={render:()=>{let[e,t]=(0,l.useState)(`email`);return(0,u.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,u.jsx)(i,{name:`notification-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,u.jsx)(i,{name:`notification-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},h={render:d,args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
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,t as i}from"./RadioButton-BWpGjwT9.js";import{n as a}from"./iframe-DfqtMMgG.js";import{n as o,t as s}from"./createControlledStoryRender-BouhvX-R.js";var c=t({Controlled:()=>p,Disabled:()=>h,Group:()=>m,__namedExportsOrder:()=>g,default:()=>f}),l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{l=n(),o(),r(),u=a(),d=s((e,t)=>(0,u.jsx)(i,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),f={title:`UI/RadioButton`,component:i,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`accent`,`brand`,`error`,`warning`,`success`,`info`]}}},p={render:d,args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,tone:`neutral`}},m={render:()=>{let[e,t]=(0,l.useState)(`email`);return(0,u.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,u.jsx)(i,{name:`notification-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,u.jsx)(i,{name:`notification-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},h={render:d,args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
2
2
  render: renderRadioButtonStory,
3
3
  args: {
4
4
  label: "Выбрать опцию",
@@ -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,r as g,t as _}from"./RadioGroup.stories-C0D6n83q.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-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,r as g,t as _}from"./RadioGroup.stories-6h1qt8DI.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`RadioGroup`}),`
3
3
  `,(0,b.jsx)(o,{children:`Группа взаимоисключающих опций с поддержкой горизонтальной и вертикальной раскладки`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`RadioGroup уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1 +1 @@
1
- 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{a as i,i as a,n as o,o as s}from"./utils-tg3ibbzi.js";import{n as c,t as l}from"./ui.module-CyEEibCu.js";var u,d,f,p,m,h,g,_;function v(){return(v=t((()=>{u=`nINbA6`,d=`GL-UWx`,f=`_6PeF-i`,p=`_5wP4aR`,m=`S3MnZI`,h=`KHJ0ja`,g=`oGmcQH`,_={radioGroup:u,noWrap:d,horizontal:f,vertical:p,radioItem:m,checked:h,radioItemContent:g}})))()}function y({value:e,onChange:t,label:n,description:r,disabled:a,className:o,noWrap:s,orientation:l=`horizontal`,"aria-label":u,children:d}){let f=(0,x.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,g]=(0,x.useState)([]),v=(0,x.useCallback)(e=>t?.(e),[t]),y=(0,x.useCallback)(e=>(g(t=>t.includes(e)?t:[...t,e]),()=>{g(t=>t.filter(t=>t!==e))}),[]),b=(0,x.useMemo)(()=>({value:e,onChange:v,disabled:a,orientation:l,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:y}),[m,a,f,v,p,l,y,h,e]);return(0,S.jsxs)(`div`,{className:i(c.uiElement,a&&c.disabled,o),children:[n&&(0,S.jsx)(`div`,{id:p,className:c.uiLabel,children:n}),r&&(0,S.jsx)(`div`,{id:m,className:c.uiDescription,children:r}),(0,S.jsx)(C.Provider,{value:b,children:(0,S.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:u,"aria-describedby":m,"aria-disabled":a||void 0,"data-disabled":a||void 0,className:i(c.uiInputControl,_.radioGroup,s&&_.noWrap,_[l]),children:d})})]})}function b({value:e,label:t,description:n,className:r}){let a=(0,x.useContext)(C),c=(0,x.useId)(),l=a?.registerOption;if((0,x.useLayoutEffect)(()=>{if(l)return l(c)},[l,c]),!a)return(0,S.jsxs)(`div`,{className:i(_.radioItem,r),children:[(0,S.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,S.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(a.value,e),d=a.disabled===!0,f=a.value===void 0&&a.firstOptionId===c,p=()=>{d||u||a.onChange?.(e)};return(0,S.jsx)(`button`,{id:`${a.groupId}-option-${c}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:i(_.radioItem,u&&_.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:p,onKeyDown:e=>{if(d||o(e,p))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let i=r.indexOf(t);if(i===-1)return;let c=s({currentIndex:i,itemCount:r.length,key:e.key,orientation:a.orientation});c!==null&&(e.preventDefault(),r[c]?.focus(),r[c]?.click())},children:(0,S.jsxs)(`span`,{className:_.radioItemContent,children:[(0,S.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,S.jsx)(`span`,{className:`fontSizeSm`,children:n})]})})}var x,S,C;function w(){return(w=t((()=>{x=e(n(),1),a(),l(),v(),S=r(),C=(0,x.createContext)(null),y.Option=b,y.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},b.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{w as n,y 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{a as i,i as a,n as o,o as s}from"./utils-tg3ibbzi.js";import{n as c,t as l}from"./ui.module-0uniSGT-.js";var u,d,f,p,m,h,g,_;function v(){return(v=t((()=>{u=`nINbA6`,d=`GL-UWx`,f=`_6PeF-i`,p=`_5wP4aR`,m=`S3MnZI`,h=`KHJ0ja`,g=`oGmcQH`,_={radioGroup:u,noWrap:d,horizontal:f,vertical:p,radioItem:m,checked:h,radioItemContent:g}})))()}function y({value:e,onChange:t,label:n,description:r,disabled:a,className:o,noWrap:s,orientation:l=`horizontal`,"aria-label":u,children:d}){let f=(0,x.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,g]=(0,x.useState)([]),v=(0,x.useCallback)(e=>t?.(e),[t]),y=(0,x.useCallback)(e=>(g(t=>t.includes(e)?t:[...t,e]),()=>{g(t=>t.filter(t=>t!==e))}),[]),b=(0,x.useMemo)(()=>({value:e,onChange:v,disabled:a,orientation:l,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:y}),[m,a,f,v,p,l,y,h,e]);return(0,S.jsxs)(`div`,{className:i(c.uiElement,a&&c.disabled,o),children:[n&&(0,S.jsx)(`div`,{id:p,className:c.uiLabel,children:n}),r&&(0,S.jsx)(`div`,{id:m,className:c.uiDescription,children:r}),(0,S.jsx)(C.Provider,{value:b,children:(0,S.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:u,"aria-describedby":m,"aria-disabled":a||void 0,"data-disabled":a||void 0,className:i(c.uiInputControl,_.radioGroup,s&&_.noWrap,_[l]),children:d})})]})}function b({value:e,label:t,description:n,className:r}){let a=(0,x.useContext)(C),c=(0,x.useId)(),l=a?.registerOption;if((0,x.useLayoutEffect)(()=>{if(l)return l(c)},[l,c]),!a)return(0,S.jsxs)(`div`,{className:i(_.radioItem,r),children:[(0,S.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,S.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(a.value,e),d=a.disabled===!0,f=a.value===void 0&&a.firstOptionId===c,p=()=>{d||u||a.onChange?.(e)};return(0,S.jsx)(`button`,{id:`${a.groupId}-option-${c}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:i(_.radioItem,u&&_.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:p,onKeyDown:e=>{if(d||o(e,p))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let i=r.indexOf(t);if(i===-1)return;let c=s({currentIndex:i,itemCount:r.length,key:e.key,orientation:a.orientation});c!==null&&(e.preventDefault(),r[c]?.focus(),r[c]?.click())},children:(0,S.jsxs)(`span`,{className:_.radioItemContent,children:[(0,S.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,S.jsx)(`span`,{className:`fontSizeSm`,children:n})]})})}var x,S,C;function w(){return(w=t((()=>{x=e(n(),1),a(),l(),v(),S=r(),C=(0,x.createContext)(null),y.Option=b,y.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},b.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{w as n,y as t};
@@ -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"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./RadioGroup-BSiqjVai.js";var s=t({Controlled:()=>g,Disabled:()=>v,Vertical:()=>_,__namedExportsOrder:()=>y,default:()=>h});function c(e){return(0,d.jsx)(o,{...e})}function l({args:e,updateArgs:t,options:n,showValue:r=!1}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},children:n.map(e=>(0,d.jsx)(o.Option,{value:e.value,label:e.label,description:e.description},e.value))}),r&&(0,d.jsxs)(`div`,{children:[`Выбрано: `,e.value??`не выбрано`]})]})}function u(e,t=!1){return i((n,r)=>(0,d.jsx)(l,{args:n,updateArgs:r,options:e,showValue:t}))}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),a(),d=n(),f=[{value:`email`,label:`Email`,description:`Письма на корпоративную почту`},{value:`sms`,label:`SMS`,description:`Сообщения на телефон`},{value:`push`,label:`Push`,description:`Уведомления в приложении`}],p=[{value:`draft`,label:`Черновик`},{value:`review`,label:`На согласовании`},{value:`approved`,label:`Утвержден`}],m=[{value:`yes`,label:`Да`},{value:`no`,label:`Нет`}],h={title:`UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},g={render:u(f,!0),args:{}},_={render:u(p),args:{orientation:`vertical`,label:`Статус документа`,value:`draft`}},v={render:u(m),args:{disabled:!0,value:`yes`}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
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"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./RadioGroup-wzlE1seI.js";var s=t({Controlled:()=>g,Disabled:()=>v,Vertical:()=>_,__namedExportsOrder:()=>y,default:()=>h});function c(e){return(0,d.jsx)(o,{...e})}function l({args:e,updateArgs:t,options:n,showValue:r=!1}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},children:n.map(e=>(0,d.jsx)(o.Option,{value:e.value,label:e.label,description:e.description},e.value))}),r&&(0,d.jsxs)(`div`,{children:[`Выбрано: `,e.value??`не выбрано`]})]})}function u(e,t=!1){return i((n,r)=>(0,d.jsx)(l,{args:n,updateArgs:r,options:e,showValue:t}))}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),a(),d=n(),f=[{value:`email`,label:`Email`,description:`Письма на корпоративную почту`},{value:`sms`,label:`SMS`,description:`Сообщения на телефон`},{value:`push`,label:`Push`,description:`Уведомления в приложении`}],p=[{value:`draft`,label:`Черновик`},{value:`review`,label:`На согласовании`},{value:`approved`,label:`Утвержден`}],m=[{value:`yes`,label:`Да`},{value:`no`,label:`Нет`}],h={title:`UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},g={render:u(f,!0),args:{}},_={render:u(p),args:{orientation:`vertical`,label:`Статус документа`,value:`draft`}},v={render:u(m),args:{disabled:!0,value:`yes`}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
2
2
  render: createRadioGroupStoryRender(notificationOptions, true),
3
3
  args: {}
4
4
  }`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
@@ -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";function i({ref:e,children:t,height:r,stable:i,overscroll:o,className:s,style:c,...l}){return(0,a.jsx)(`div`,{...l,ref:e,className:n(`scrollable`,i&&`stable`,o&&`overscroll`,s),style:{...c,height:r??c?.height},children:t})}var a;function o(){return(o=e((()=>{r(),a=t(),i.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},ref:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLDivElement`}],raw:`Ref<HTMLDivElement>`},description:``}},composes:[`ComponentPropsWithoutRef`]}})))()}export{o as n,i as t};
@@ -0,0 +1,18 @@
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,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-TIr5_lNX.js";import{n as f,r as p,t as m}from"./Scrollable.stories-Cj1mRfdX.js";function h(e){let t={code:`code`,p:`p`,pre:`pre`,...n(),...e.components};return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(o,{of:f}),`
2
+ `,(0,_.jsx)(l,{children:`Scrollable`}),`
3
+ `,(0,_.jsx)(a,{children:`Нейтральный контейнер прокрутки с управляемой семантикой`}),`
4
+ `,(0,_.jsxs)(t.p,{children:[(0,_.jsx)(t.code,{children:`Scrollable`}),` не добавляет роль и не меняет порядок фокуса автоматически: большинство внутренних областей прокрутки не являются самостоятельными регионами интерфейса.
5
+ Компонент пропускает стандартные HTML- и ARIA-атрибуты, поэтому значимую область можно явно назвать и сделать доступной с клавиатуры.`]}),`
6
+ `,(0,_.jsx)(d,{}),`
7
+ `,(0,_.jsx)(i,{of:m}),`
8
+ `,(0,_.jsx)(t.pre,{children:(0,_.jsx)(t.code,{className:`language-tsx`,children:`import { Scrollable } from "@ryuzaki13/react-foundation-ui/misc";
9
+
10
+ <Scrollable height={240} role="region" aria-label="Журнал событий" tabIndex={0}>
11
+ {events.map((event) => (
12
+ <div key={event.id}>{event.title}</div>
13
+ ))}
14
+ </Scrollable>;
15
+ `})}),`
16
+ `,(0,_.jsxs)(t.p,{children:[`Используйте `,(0,_.jsx)(t.code,{children:`role="region"`}),`, доступное имя и `,(0,_.jsx)(t.code,{children:`tabIndex={0}`}),` только для самостоятельной области, которую пользователю действительно нужно находить и прокручивать отдельно. Для внутренней прокрутки списка, таблицы или модального окна оставляйте нейтральную семантику по умолчанию.`]}),`
17
+ `,(0,_.jsx)(u,{of:m}),`
18
+ `,(0,_.jsx)(c,{of:f})]})}function g(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,_.jsx)(t,{...e,children:(0,_.jsx)(h,{...e})}):h(e)}var _;function v(){return(v=e((()=>{_=t(),r(),s(),p()})))()}v();export{g as default};
@@ -0,0 +1 @@
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"./Scrollable-C7dBSd5R.js";var a=t({AccessibleRegion:()=>l,__namedExportsOrder:()=>u,default:()=>c}),o,s,c,l,u;function d(){return(d=e((()=>{r(),o=n(),s=Array.from({length:12},(e,t)=>`Событие ${t+1}`),c={title:`UI/Scrollable`,component:i,args:{height:160,stable:!0,overscroll:!0,role:`region`,"aria-label":`Журнал событий`,tabIndex:0},argTypes:{height:{description:`Высота области прокрутки.`,control:`text`},stable:{description:`Резервирует место для полосы прокрутки.`,control:`boolean`},overscroll:{description:`Удерживает прокрутку внутри компонента на границах.`,control:`boolean`},role:{description:`ARIA-роль значимой области прокрутки; по умолчанию не задаётся.`,control:`text`},"aria-label":{description:`Доступное имя области, если она объявлена отдельным region.`,control:`text`},tabIndex:{description:`Добавляет область в порядок фокуса для управления прокруткой с клавиатуры.`,control:`number`}},render:function(e){return(0,o.jsx)(i,{...e,className:`border radiusSm paddingSm`,children:(0,o.jsx)(`ol`,{children:s.map(e=>(0,o.jsx)(`li`,{children:e},e))})})}},l={},l.parameters={...l.parameters,docs:{...l.parameters?.docs,source:{originalSource:`{}`,...l.parameters?.docs?.source}}},u=[`AccessibleRegion`]})))()}export{a as n,d as r,l as t};
@@ -0,0 +1,12 @@
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{a,i as o}from"./utils-tg3ibbzi.js";import{n as s,t as ee}from"./OptionContent-DyxUQFu3.js";import{n as c,t as l}from"./ui.module-0uniSGT-.js";import{n as u,t as te}from"./PickerField-B8_SoyYo.js";import{c as d,d as f,f as p,i as ne,l as re,n as ie,r as m,s as h,t as g,u as _}from"./usePickerTriggerController-YWagu6f6.js";import{n as v,t as ae}from"./Option-CSut1BkS.js";import{i as y,n as oe,r as se,t as b}from"./usePickerQuery-B05uUMJ9.js";import{n as x,t as S}from"./usePickerDefaultFilter-ien2ZY7g.js";import{n as C,t as w}from"./OptionContentContainer-DnzI9J61.js";function ce({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[f(t(e)),f(n?.(e)),f(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function T(){return(T=e((()=>{p()})))()}function le(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}function E(e){let{label:t,description:n,disabled:i,placeholder:o,size:s,options:l,value:u,onChange:d,getOptionKey:p,getOptionLabel:m,getOptionCode:g,getOptionSearchText:_,getOptionDisabled:v,getOptionAriaLabel:y,getOptionGroup:b,getOptionClassName:S,renderOption:C,renderValue:T,className:E,buttonClassName:k,optionsClassName:ue,optionsMaxWidth:de,optionsContentClassName:fe,searchable:A=!1,defaultFilter:pe=!0,query:me,defaultQuery:he,onQuery:ge,renderPopupHeader:_e,emptyState:ve,isLoading:j,errorState:M,placement:N=`bottom-start`,clearable:P=!1}=e,F=d,I=(0,D.useRef)(null),[L,ye]=(0,D.useState)(!1),R=A?`search-single`:`display`,z=u===void 0?void 0:p(u),B=z===void 0?void 0:l.find(e=>p(e)===z)??u,{query:V,setQuery:H,resetQueryOnClose:be}=oe({query:me,defaultQuery:he,onQuery:ge,triggerMode:R}),xe=e=>{L&&!e&&be&&H(``),ye(e)},Se=(0,D.useCallback)(e=>_?.(e)??ce({option:e,getOptionLabel:m,getOptionCode:g,getOptionGroup:b}),[_,g,b,m]),U=x({options:l,query:V,enabled:A&&pe,getSearchText:Se}),W=(0,D.useMemo)(()=>b?le(U,b):void 0,[b,U]),Ce=z===void 0?-1:U.findIndex(e=>p(e)===z),{activeIndex:we,context:Te,floatingStyles:Ee,getFloatingProps:De,setReference:Oe,setFloating:ke,setOptionRef:Ae,close:G,openList:je,toggleOpen:Me,selectOption:Ne,selectActiveOption:Pe,handleReferenceKeyDown:Fe,handleFloatingKeyDown:Ie,getOptionId:Le,getActiveOptionId:K}=ne({options:U,selectedIndex:Ce,open:L,onOpenChange:xe,getOptionDisabled:v,onSelect:F,disabled:i,placement:N,triggerMode:R}),q=U.length>0,J=B===void 0?void 0:m(B),Y=B===void 0?void 0:T?T(B):J,Re=f(J),ze=B===void 0?void 0:f(g?.(B)),X=f(Y)??Re??ze??(z===void 0?``:String(z)),Z=A&&(L||V.length>0)?V:B===void 0?``:X,Q=ie({mode:R,open:L,currentQuery:V,hasDisplayValue:B!==void 0,inputRef:I,setQuery:H,openList:je,close:G,toggleOpen:Me}),Be=e=>{I.current=e},Ve=()=>{P&&F(void 0),H(``),G()},$=(e,t,n)=>{let i=p(t),a=z!==void 0&&i===z,o=n===we,s=v?.(t)??!1,c={active:o,selected:a,disabled:s};return(0,O.jsx)(ae,{id:Le(e,n),ref:e=>Ae(n,e),role:`option`,"aria-selected":a,"aria-disabled":s||void 0,"aria-label":y?.(t),active:o,selected:a,disabled:s,className:S?.(t,c),onMouseDown:e=>e.preventDefault(),onClick:()=>Ne(t),children:C?(0,O.jsx)(w,{children:C(t,c)}):(0,O.jsx)(w,{children:(0,O.jsx)(ee,{icon:a?(0,O.jsx)(r,{}):(0,O.jsx)(`span`,{}),text:m(t),code:g?.(t)})})},i)};return(0,O.jsx)(te,{label:t,description:n,disabled:i,size:s,className:E,children:({controlId:e,labelId:n,describedBy:r})=>{let s=`${e}-listbox`;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(h,{ref:Be,rootRef:Oe,id:e,type:`text`,disabled:i,readOnly:!A,autoComplete:`off`,role:`combobox`,isLoading:j,open:L,optionCount:l.length,label:t,placeholder:o,value:Z,selectedValue:Y??X,hasSelection:B!==void 0,showSelectedValue:!1,clearable:!!P,onClear:Ve,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":L,"aria-controls":L?s:void 0,"aria-autocomplete":A?`list`:`none`,"aria-activedescendant":L?K(s):void 0,inputClassName:a(k,`textOverflow`),onChange:e=>{A&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Fe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Pe,enableSpaceActivation:!A})}}),(0,O.jsx)(re,{open:L,context:Te,floatingStyles:Ee,listId:s,labelId:n,descriptionId:r,activeOptionId:q?K(s):void 0,setFloating:ke,getFloatingProps:De,onKeyDown:Ie,className:ue,maxWidth:de,toolbar:_e,children:(0,O.jsx)(`div`,{role:`presentation`,className:a(fe,`h100 scrollable overscroll`),children:q?W?W.map((e,t)=>{let n=e.group?`${s}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(s,e,t));return e.group?(0,O.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,O.jsx)(`div`,{id:n,className:c.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,O.jsx)(D.Fragment,{children:r},`options-${t}`)}):U.map((e,t)=>$(s,e,t)):(0,O.jsx)(se,{emptyState:ve,errorState:M})})})]})}})}var D,O;function k(){return(k=e((()=>{D=t(),o(),n(),v(),s(),C(),p(),u(),_(),y(),d(),S(),m(),b(),g(),l(),T(),O=i(),E.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionSearchText:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string | readonly string[]`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | readonly string[]`,elements:[{name:`string`},{name:`unknown`}]}}},description:`Явный поисковый текст для опции с произвольным ReactNode-render.`},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
2
+ readonly key: SelectOptionKey;
3
+ readonly label: ReactNode;
4
+ }`,signature:{properties:[{key:`key`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`ReactNode`,required:!0}}]}},{name:`undefined`}]}}},description:``},getOptionClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => string | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
5
+ active: boolean;
6
+ selected: boolean;
7
+ disabled: boolean;
8
+ }`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},renderOption:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
9
+ active: boolean;
10
+ selected: boolean;
11
+ disabled: boolean;
12
+ }`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`ReactNode`}}},description:``},renderValue:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},className:{required:!1,tsType:{name:`string`},description:``},buttonClassName:{required:!1,tsType:{name:`string`},description:``},optionsClassName:{required:!1,tsType:{name:`string`},description:``},optionsMaxWidth:{required:!1,tsType:{name:`CSSProperties["maxWidth"]`,raw:`CSSProperties["maxWidth"]`},description:``},optionsContentClassName:{required:!1,tsType:{name:`string`},description:``},searchable:{required:!1,tsType:{name:`boolean`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{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:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},renderPopupHeader:{required:!1,tsType:{name:`ReactNode`},description:``},emptyState:{required:!1,tsType:{name:`ReactNode`},description:``},errorState:{required:!1,tsType:{name:`ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``},clearable:{required:!1,tsType:{name:`TClearable`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`unknown`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}export{k as n,E 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,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Select.stories-8_zvonmc.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-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,n as g,o as _,r as v,s as y,t as b}from"./Select.stories-pppfr6nn.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,C.jsx)(u,{children:`Select`}),`
3
3
  `,(0,C.jsx)(o,{children:`Getter-based select для примитивов и сложных объектных option`}),`
4
4
  `,(0,C.jsx)(t.p,{children:`Select уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -34,6 +34,8 @@ export function Example() {
34
34
  `,(0,C.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
35
35
  `,(0,C.jsxs)(t.ul,{children:[`
36
36
  `,(0,C.jsx)(t.li,{children:`Заблокированное состояние лучше проверять отдельно, чтобы убедиться, что визуально и поведенчески оно остается понятным.`}),`
37
+ `,(0,C.jsxs)(t.li,{children:[`Popup следует ARIA-модели `,(0,C.jsx)(t.code,{children:`combobox/listbox`}),`: каждая строка является единственной `,(0,C.jsx)(t.code,{children:`option`}),`, поэтому `,(0,C.jsx)(t.code,{children:`renderOption`}),` должен возвращать только неинтерактивное содержимое.`]}),`
38
+ `,(0,C.jsxs)(t.li,{children:[`Стрелки меняют активную опцию, `,(0,C.jsx)(t.code,{children:`Enter`}),` выбирает её, а `,(0,C.jsx)(t.code,{children:`Escape`}),` закрывает popup и возвращает управление trigger.`]}),`
37
39
  `]}),`
38
40
  `,(0,C.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
39
41
  `,(0,C.jsx)(t.h3,{id:`работа-с-объектами-как-со-значениями-option`,children:`Работа с объектами как со значениями option`}),`
@@ -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"./Select-1MNiFkxm.js";var o=t({ControlledObjects:()=>m,CustomOptionLayout:()=>v,Disabled:()=>y,GroupedOptions:()=>_,Placeholder:()=>g,PrimitiveOptions:()=>h,__namedExportsOrder:()=>b,default:()=>p}),s,c,l,u,d,f,p,m,h,g,_,v,y,b;function x(){return(x=e((()=>{s=n(),i(),c=r(),{useArgs:l}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:u}=__STORYBOOK_MODULE_TEST__,d=[{id:1,name:`Отдел продаж`,code:`SLS`,manager:`Елена Миронова`,direction:`Коммерческий блок`},{id:2,name:`Закупки`,code:`PRC`,manager:`Антон Мелихов`,direction:`Коммерческий блок`},{id:3,name:`Логистика`,code:`LGS`,manager:`Мария Климова`,direction:`Операционный блок`,disabled:!0},{id:4,name:`Поддержка клиентов`,code:`SUP`,manager:`Ирина Белова`,direction:`Операционный блок`}],f=[`Новый`,`В работе`,`Завершён`,`Архив`],p={title:`UI/Select`,component:a,args:{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,value:void 0,options:d,onChange:u(),getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Низкоуровневый getter-based select. Подходит для произвольных структур данных, примитивов и сложного кастомного рендера. Компонент возвращает наружу саму выбранную option. Для сериализуемых конфигов и сценариев с optionKey/optionLabel используйте SerializableSelect.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение ещё не выбрано.`,control:`text`},value:{description:`Текущая выбранная option целиком.`,control:!1},options:{description:`Массив опций любого поддерживаемого формата.`,control:!1},onChange:{description:`Вызывается с выбранной option.`,control:!1},getOptionKey:{description:`Функция получения уникального ключа option.`,control:!1},getOptionLabel:{description:`Функция получения основного текста option.`,control:!1},getOptionCode:{description:`Опциональный рендер дополнительного кода справа.`,control:!1},getOptionDisabled:{description:`Опциональная функция блокировки отдельных option.`,control:!1},getOptionAriaLabel:{description:`Опциональная функция для aria-label option.`,control:!1},getOptionGroup:{description:`Опциональная функция, которая объединяет соседние option под доступным заголовком группы.`,control:!1},getOptionClassName:{description:`Опциональная функция CSS-класса option по её состоянию.`,control:!1},renderOption:{description:`Полностью кастомный рендер option в списке.`,control:!1},renderValue:{description:`Кастомный рендер выбранного значения в кнопке.`,control:!1},optionsMaxWidth:{description:`Максимальная ширина выпадающего списка в любом допустимом CSS-формате.`,control:`text`},buttonClassName:{description:`Класс trigger-кнопки Select без изменения корневого контейнера.`,control:`text`},optionsClassName:{description:`Класс popup со списком option.`,control:`text`},optionsContentClassName:{description:`Класс области содержимого popup, например для особой плотности списка.`,control:`text`},searchable:{description:`Включает поиск по option в trigger-поле.`,control:`boolean`},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},defaultFilter:{description:`Включает встроенную фильтрацию option.`,control:`boolean`},renderPopupHeader:{description:`Дополнительное содержимое над списком option.`,control:!1},emptyState:{description:`Содержимое при пустом списке option.`,control:!1},loadingState:{description:`Содержимое при загрузке option.`,control:!1},errorState:{description:`Содержимое при ошибке загрузки option.`,control:!1},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},placement:{description:`Позиционирование выпадающего списка.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранной option.`,control:`boolean`}}},m={name:`Объекты`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[1],onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:d[1]}},h={name:`Примитивы`,render:()=>{let[e,t]=(0,s.useState)(f[1]);return(0,c.jsx)(a,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:f,value:e,onChange:t,getOptionKey:e=>e,getOptionLabel:e=>e,size:`md`})}},g={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},_={name:`Группированные опции`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})},getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40rem`})}},v={name:`Кастомный рендер`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[0],onChange:n=>{e.onChange(n),t({value:n})},renderValue:e=>`${e.code} · ${e.name}`,renderOption:(e,t)=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`flexEllipsis`,children:[(0,c.jsx)(`div`,{children:e.name}),(0,c.jsx)(`div`,{className:`fontSizeSm content2`,children:e.manager})]}),(0,c.jsx)(`div`,{style:{opacity:t.selected?1:.5},children:e.code})]})})}},y={args:{disabled:!0,value:d[0]}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
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"./Select-BI1R-0nK.js";var o=t({ControlledObjects:()=>m,CustomOptionLayout:()=>v,Disabled:()=>y,GroupedOptions:()=>_,Placeholder:()=>g,PrimitiveOptions:()=>h,__namedExportsOrder:()=>b,default:()=>p}),s,c,l,u,d,f,p,m,h,g,_,v,y,b;function x(){return(x=e((()=>{s=n(),i(),c=r(),{useArgs:l}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:u}=__STORYBOOK_MODULE_TEST__,d=[{id:1,name:`Отдел продаж`,code:`SLS`,manager:`Елена Миронова`,direction:`Коммерческий блок`},{id:2,name:`Закупки`,code:`PRC`,manager:`Антон Мелихов`,direction:`Коммерческий блок`},{id:3,name:`Логистика`,code:`LGS`,manager:`Мария Климова`,direction:`Операционный блок`,disabled:!0},{id:4,name:`Поддержка клиентов`,code:`SUP`,manager:`Ирина Белова`,direction:`Операционный блок`}],f=[`Новый`,`В работе`,`Завершён`,`Архив`],p={title:`UI/Select`,component:a,args:{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,value:void 0,options:d,onChange:u(),getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Низкоуровневый getter-based select. Подходит для произвольных структур данных, примитивов и сложного кастомного рендера. Компонент возвращает наружу саму выбранную option. Для сериализуемых конфигов и сценариев с optionKey/optionLabel используйте SerializableSelect.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение ещё не выбрано.`,control:`text`},value:{description:`Текущая выбранная option целиком.`,control:!1},options:{description:`Массив опций любого поддерживаемого формата.`,control:!1},onChange:{description:`Вызывается с выбранной option.`,control:!1},getOptionKey:{description:`Функция получения уникального ключа option.`,control:!1},getOptionLabel:{description:`Функция получения основного текста option.`,control:!1},getOptionCode:{description:`Опциональный рендер дополнительного кода справа.`,control:!1},getOptionDisabled:{description:`Опциональная функция блокировки отдельных option.`,control:!1},getOptionAriaLabel:{description:`Опциональная функция для aria-label option.`,control:!1},getOptionGroup:{description:`Опциональная функция, которая объединяет соседние option под доступным заголовком группы.`,control:!1},getOptionClassName:{description:`Опциональная функция CSS-класса option по её состоянию.`,control:!1},renderOption:{description:`Полностью кастомный рендер option в списке.`,control:!1},renderValue:{description:`Кастомный рендер выбранного значения в кнопке.`,control:!1},optionsMaxWidth:{description:`Максимальная ширина выпадающего списка в любом допустимом CSS-формате.`,control:`text`},buttonClassName:{description:`Класс trigger-кнопки Select без изменения корневого контейнера.`,control:`text`},optionsClassName:{description:`Класс popup со списком option.`,control:`text`},optionsContentClassName:{description:`Класс области содержимого popup, например для особой плотности списка.`,control:`text`},searchable:{description:`Включает поиск по option в trigger-поле.`,control:`boolean`},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},defaultFilter:{description:`Включает встроенную фильтрацию option.`,control:`boolean`},renderPopupHeader:{description:`Дополнительное содержимое над списком option.`,control:!1},emptyState:{description:`Содержимое при пустом списке option.`,control:!1},loadingState:{description:`Содержимое при загрузке option.`,control:!1},errorState:{description:`Содержимое при ошибке загрузки option.`,control:!1},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},placement:{description:`Позиционирование выпадающего списка.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранной option.`,control:`boolean`}}},m={name:`Объекты`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[1],onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:d[1]}},h={name:`Примитивы`,render:()=>{let[e,t]=(0,s.useState)(f[1]);return(0,c.jsx)(a,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:f,value:e,onChange:t,getOptionKey:e=>e,getOptionLabel:e=>e,size:`md`})}},g={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},_={name:`Группированные опции`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})},getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40rem`})}},v={name:`Кастомный рендер`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[0],onChange:n=>{e.onChange(n),t({value:n})},renderValue:e=>`${e.code} · ${e.name}`,renderOption:(e,t)=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`flexEllipsis`,children:[(0,c.jsx)(`div`,{children:e.name}),(0,c.jsx)(`div`,{className:`fontSizeSm content2`,children:e.manager})]}),(0,c.jsx)(`div`,{style:{opacity:t.selected?1:.5},children:e.code})]})})}},y={args:{disabled:!0,value:d[0]}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
2
2
  name: "Объекты",
3
3
  render: function Render(args) {
4
4
  const [, updateArgs] = useArgs<SelectProps<DepartmentOption>>();
@@ -0,0 +1 @@
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"./PolymorphicComponent-NBvIz9JD.js";function s({as:e,orientation:t=`horizontal`,className:n,role:i=`separator`,"aria-orientation":a,...s}){return(0,c.jsx)(o,{as:e,role:i,"aria-orientation":i===`separator`?a??t:void 0,className:r(n,t===`horizontal`?`separator`:`separatorVertical`),...s})}var c;function l(){return(l=e((()=>{t(),i(),a(),c=n(),s.__docgenInfo={description:``,methods:[],displayName:`Separator`,props:{as:{required:!1,tsType:{name:`E`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"horizontal" | "vertical"`,elements:[{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"vertical"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},role:{defaultValue:{value:`"separator"`,computed:!1},required:!1}}}})))()}export{l as n,s as t};
@@ -0,0 +1,14 @@
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{i as p,n as m,r as h,t as g}from"./Separator.stories-DxY_qbJt.js";function _(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,y.jsx)(u,{children:`Separator`}),`
3
+ `,(0,y.jsx)(o,{children:`Горизонтальное или вертикальное семантическое разделение соседних частей интерфейса`}),`
4
+ `,(0,y.jsxs)(t.p,{children:[(0,y.jsx)(t.code,{children:`Separator`}),` по умолчанию использует `,(0,y.jsx)(t.code,{children:`role="separator"`}),`. Значение `,(0,y.jsx)(t.code,{children:`aria-orientation`}),` автоматически соответствует визуальному `,(0,y.jsx)(t.code,{children:`orientation`}),`, поэтому направление одинаково воспринимается и визуально, и assistive technologies.`]}),`
5
+ `,(0,y.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
6
+ `,(0,y.jsx)(f,{}),`
7
+ `,(0,y.jsx)(i,{of:g}),`
8
+ `,(0,y.jsx)(t.h2,{id:`вертикальная-ориентация`,children:`Вертикальная ориентация`}),`
9
+ `,(0,y.jsx)(d,{of:h}),`
10
+ `,(0,y.jsxs)(t.p,{children:[`Если разделитель нужен только как декоративная линия, передайте `,(0,y.jsx)(t.code,{children:`role="presentation"`}),`. В этом случае компонент не добавляет `,(0,y.jsx)(t.code,{children:`aria-orientation`}),`, поскольку декоративный элемент исключён из accessibility tree.`]}),`
11
+ `,(0,y.jsx)(t.h2,{id:`api`,children:`API`}),`
12
+ `,(0,y.jsx)(l,{of:m}),`
13
+ `,(0,y.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
14
+ `,(0,y.jsx)(a,{includePrimary:!1})]})}function v(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,y.jsx)(t,{...e,children:(0,y.jsx)(_,{...e})}):_(e)}var y;function b(){return(b=e((()=>{y=t(),r(),c(),p()})))()}b();export{v as default};
@@ -0,0 +1,14 @@
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"./Separator-Bx2BKztN.js";var a=t({Horizontal:()=>c,Vertical:()=>l,__namedExportsOrder:()=>u,default:()=>s}),o,s,c,l,u;function d(){return(d=e((()=>{r(),o=n(),s={title:`UI/Separator`,component:i,args:{orientation:`horizontal`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{orientation:{description:`Визуальное и семантическое направление разделителя.`,control:`inline-radio`,options:[`horizontal`,`vertical`]}}},c={},l={args:{orientation:`vertical`},render:e=>(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`stretch`,height:48},children:[(0,o.jsx)(`span`,{children:`Слева`}),(0,o.jsx)(i,{...e}),(0,o.jsx)(`span`,{children:`Справа`})]})},c.parameters={...c.parameters,docs:{...c.parameters?.docs,source:{originalSource:`{}`,...c.parameters?.docs?.source}}},l.parameters={...l.parameters,docs:{...l.parameters?.docs,source:{originalSource:`{
2
+ args: {
3
+ orientation: "vertical"
4
+ },
5
+ render: args => <div style={{
6
+ display: "flex",
7
+ alignItems: "stretch",
8
+ height: 48
9
+ }}>
10
+ <span>Слева</span>
11
+ <Separator {...args} />
12
+ <span>Справа</span>
13
+ </div>
14
+ }`,...l.parameters?.docs?.source}}},u=[`Horizontal`,`Vertical`]})))()}export{d as i,a as n,l as r,c 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"./SerializableSelect.stories-Ba3ABMGt.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-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"./SerializableSelect.stories-C3OU-Qlh.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`SerializableSelect`}),`
3
3
  `,(0,S.jsx)(o,{children:`Select для сериализуемых значений и конфигурационных сценариев с key/label описанием option`}),`
4
4
  `,(0,S.jsx)(t.p,{children:`SerializableSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -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"./Select-1MNiFkxm.js";function o(e,t){return String(e[t])}function s(e,t,n){let r=e[t];if(typeof r==`string`||typeof r==`number`)return String(r);let i=o(e,n);return String(i)}function c({label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:u,onChange:d,optionKey:f,optionLabel:p,renderCode:m,className:h,clearable:g}){let _=u===void 0?void 0:c.find(e=>o(e,f)===u);return(0,l.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:_,onChange:e=>d(e?o(e,f):void 0),getOptionKey:e=>o(e,f),getOptionLabel:e=>s(e,p,f),getOptionCode:m?e=>o(e,f):void 0,className:h,clearable:g})}var l;function u(){return(u=e((()=>{i(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`SerializableSelect`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void`,signature:{arguments:[{type:{name:`union`,raw:`SerializableOptionValue<TOption, TOptionKey> | undefined`,elements:[{name:`Extract`,elements:[{name:`TOption[TOptionKey]`,raw:`TOption[TOptionKey]`},{name:`string`}],raw:`Extract<
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"./Select-BI1R-0nK.js";function o(e,t){return String(e[t])}function s(e,t,n){let r=e[t];if(typeof r==`string`||typeof r==`number`)return String(r);let i=o(e,n);return String(i)}function c({label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:u,onChange:d,optionKey:f,optionLabel:p,renderCode:m,className:h,clearable:g}){let _=u===void 0?void 0:c.find(e=>o(e,f)===u);return(0,l.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:_,onChange:e=>d(e?o(e,f):void 0),getOptionKey:e=>o(e,f),getOptionLabel:e=>s(e,p,f),getOptionCode:m?e=>o(e,f):void 0,className:h,clearable:g})}var l;function u(){return(u=e((()=>{i(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`SerializableSelect`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void`,signature:{arguments:[{type:{name:`union`,raw:`SerializableOptionValue<TOption, TOptionKey> | undefined`,elements:[{name:`Extract`,elements:[{name:`TOption[TOptionKey]`,raw:`TOption[TOptionKey]`},{name:`string`}],raw:`Extract<
2
2
  TOption[TOptionKey],
3
3
  SelectOptionKey
4
4
  >`},{name:`undefined`}]},name:`value`}],return:{name:`void`}}},description:``},optionKey:{required:!0,tsType:{name:`TOptionKey`},description:``},optionLabel:{required:!0,tsType:{name:`TOptionLabel`},description:``},renderCode:{required:!1,tsType:{name:`literal`,value:`true`},description:``},className:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}var d=t({AsyncReloadLike:()=>S,Controlled:()=>y,Disabled:()=>C,Placeholder:()=>b,WithCode:()=>x,__namedExportsOrder:()=>w,default:()=>v}),f,p,m,h,g,_,v,y,b,x,S,C,w;function T(){return(T=e((()=>{f=n(),u(),p=r(),{useArgs:m,useState:h}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:g}=__STORYBOOK_MODULE_TEST__,_=[{id:10,name:`Продажи`,code:`SLS`,branch:`Екатеринбург`},{id:20,name:`Закупки`,code:`PRC`,branch:`Челябинск`},{id:30,name:`Логистика`,code:`LGS`,branch:`Новосибирск`},{id:40,name:`Сервис`,code:`SRV`,branch:`Москва`}],v={title:`UI/SerializableSelect`,component:c,args:{label:`Подразделение`,description:`Сериализуемая обёртка над Select для object-options и field-based конфигурации.`,placeholder:`Выберите подразделение`,options:_,optionKey:`id`,optionLabel:`name`,value:void 0,onChange:g(),size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Высокоуровневая обёртка над low-level Select. Принимает массив объектов, получает key и label по именам полей, а наружу возвращает только значение ключа. Нужна для сериализуемых конфигов, в том числе в src/shared/ui/controls/*.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда ключ ещё не выбран.`,control:`text`},options:{description:`Массив объектных option.`,control:!1},optionKey:{description:`Поле объекта, значение которого используется как ключ и отдаётся наружу через onChange.`,control:!1},optionLabel:{description:`Поле объекта, значение которого отображается как основной текст option.`,control:!1},renderCode:{description:`Если включено, справа от текста будет показан ключ optionKey.`,control:`boolean`},value:{description:`Текущий выбранный ключ option, а не вся option целиком.`,control:!1},onChange:{description:`Вызывается с новым значением optionKey.`,control:!1},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранного ключа.`,control:`boolean`}}},y={name:`Выбор по ключу`,render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,value:e.value??20,onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:20}},b={render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},x={name:`С кодом`,render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,value:e.value??10,renderCode:!0,onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:10,renderCode:!0}},S={name:`Смена набора опций`,render:function(e){let[,t]=m(),[n,r]=h(!1),i=(0,f.useMemo)(()=>n?_.filter(e=>e.id!==20):_,[n]);return(0,p.jsxs)(`div`,{style:{display:`grid`,gap:`12px`,maxWidth:`320px`},children:[(0,p.jsx)(`button`,{type:`button`,onClick:()=>r(e=>!e),children:n?`Показать полный список`:`Скрыть одну опцию`}),(0,p.jsx)(c,{...e,options:i,value:e.value??30,onChange:n=>{e.onChange(n),t({value:n})}})]})},args:{value:30}},C={args:{disabled:!0,value:10}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
@@ -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{i as p,n as m,r as h,t as g}from"./ShimmerText.stories-CVpSxXHJ.js";function _(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(s,{of:h,parameters:{atomicCanvas:!0,layout:`padded`,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{i as p,n as m,r as h,t as g}from"./ShimmerText.stories-lvn1uLl_.js";function _(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(s,{of:h,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
2
2
  `,(0,y.jsx)(u,{children:`ShimmerText`}),`
3
3
  `,(0,y.jsx)(o,{children:`Обычный текст с проходящим световым бликом`}),`
4
4
  `,(0,y.jsx)(t.p,{children:`ShimmerText визуально обозначает короткий выполняющийся процесс, не заменяя текст скелетоном или отдельным индикатором. Компонент наследует цвет окружения и сохраняет обычное текстовое содержимое в DOM и accessibility tree.`}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-woVbsQH3.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o;function s(){return(s=e((()=>{a=`YNql8u`,o={text:a,"shimmer-text-sweep":`cdP56E`}})))()}function c({children:e,className:t,...n}){return(0,l.jsx)(`span`,{...n,className:r(o.text,t),children:e})}var l;function u(){return(u=e((()=>{i(),s(),l=n(),c.__docgenInfo={description:`Показывает обычный доступный текст с проходящим по символам световым бликом.
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-DfqtMMgG.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o;function s(){return(s=e((()=>{a=`YNql8u`,o={text:a,"shimmer-text-sweep":`cdP56E`}})))()}function c({children:e,className:t,...n}){return(0,l.jsx)(`span`,{...n,className:r(o.text,t),children:e})}var l;function u(){return(u=e((()=>{i(),s(),l=n(),c.__docgenInfo={description:`Показывает обычный доступный текст с проходящим по символам световым бликом.
2
2
  Подходит для коротких сообщений о выполняющемся процессе и наследует цвет
3
3
  окружающего текста без собственной семантики загрузки.`,methods:[],displayName:`ShimmerText`}})))()}var d=t({Basic:()=>m,InContext:()=>h,__namedExportsOrder:()=>g,default:()=>p}),f,p,m,h,g;function _(){return(_=e((()=>{u(),f=n(),p={title:`UI/ShimmerText`,component:c,args:{children:`Подготавливаем рабочую область`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Короткий текст, по которому проходит световой блик.`,control:`text`}}},m={},h={render:()=>(0,f.jsx)(`p`,{style:{color:`var(--content1)`,margin:0},role:`status`,children:(0,f.jsx)(c,{children:`Загружаем актуальные данные`})})},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{}`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
4
4
  render: () => <p style={{