@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,33 +1,33 @@
1
- import { n as e } from "./popover-yl5DVe06.js";
1
+ import { n as e } from "./popover-BJH-yHvb.js";
2
2
  import { Text as t } from "../text/index.js";
3
- import { n } from "./flex-DtXK7OM4.js";
4
- import { PolymorphicComponent as r } from "../polymorphic/index.js";
3
+ import { PolymorphicComponent as n } from "../polymorphic/index.js";
4
+ import { n as r } from "./flex-D86M_h-0.js";
5
5
  import { cn as i } from "@ryuzaki13/react-foundation-lib/utils";
6
6
  import { CheckCheckIcon as a, ChevronLeftIcon as o, ChevronRightIcon as s, CircleAlertIcon as c, CircleCheckIcon as l, CircleXIcon as u, CopyIcon as d, InfoIcon as f } from "lucide-react";
7
7
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
8
- import { Suspense as h, forwardRef as g, useCallback as _, useEffect as v, useRef as y, useState as b, useSyncExternalStore as x } from "react";
9
- import { useCopyElementTextWithFeedback as S } from "@ryuzaki13/react-foundation-lib/copy";
10
- import { useLazyComponent as C } from "@ryuzaki13/react-foundation-lib/hooks";
11
- var w = {
8
+ import { Suspense as h, useCallback as g, useEffect as _, useRef as v, useState as y, useSyncExternalStore as b } from "react";
9
+ import { useCopyElementTextWithFeedback as x } from "@ryuzaki13/react-foundation-lib/copy";
10
+ import { useLazyComponent as S } from "@ryuzaki13/react-foundation-lib/hooks";
11
+ var C = {
12
12
  logo: "l9LG-r",
13
13
  segment: "u4bkNy",
14
14
  pulseSteps: "S-r8hY"
15
15
  };
16
16
  //#endregion
17
17
  //#region src/misc/AnimatedLogo.tsx
18
- function T({ children: e, className: t, ...n }) {
18
+ function w({ children: e, className: t, ...n }) {
19
19
  return /* @__PURE__ */ p("div", {
20
20
  ...n,
21
- className: i(w.logo, t),
21
+ className: i(C.logo, t),
22
22
  children: e
23
23
  });
24
24
  }
25
25
  //#endregion
26
26
  //#region src/misc/AnimatedLogoSegment.tsx
27
- function E({ children: e, className: t, order: n, style: r, ...a }) {
27
+ function T({ children: e, className: t, order: n, style: r, ...a }) {
28
28
  return /* @__PURE__ */ p("g", {
29
29
  ...a,
30
- className: i(w.segment, t),
30
+ className: i(C.segment, t),
31
31
  style: {
32
32
  ...r,
33
33
  animationDelay: `${n * 200}ms`
@@ -37,8 +37,8 @@ function E({ children: e, className: t, order: n, style: r, ...a }) {
37
37
  }
38
38
  //#endregion
39
39
  //#region src/misc/CopyTextWrapper.tsx
40
- var D = ({ children: t, position: n = "top", showOnHover: r = !0, className: i }) => {
41
- let { containerRef: o, copyElementText: s, isCopied: c } = S();
40
+ function E({ children: t, position: n = "top", showOnHover: r = !0, className: i }) {
41
+ let { containerRef: o, copyElementText: s, isCopied: c } = x();
42
42
  return /* @__PURE__ */ m("span", {
43
43
  ref: o,
44
44
  className: i,
@@ -53,20 +53,21 @@ var D = ({ children: t, position: n = "top", showOnHover: r = !0, className: i }
53
53
  })
54
54
  })]
55
55
  });
56
- }, O = { wrapper: "_0wk7Sq" };
56
+ }
57
+ var D = { wrapper: "_0wk7Sq" };
57
58
  //#endregion
58
59
  //#region src/misc/IconWrapper.tsx
59
- function k({ className: e, children: t }) {
60
+ function O({ className: e, children: t }) {
60
61
  return /* @__PURE__ */ p("div", {
61
- className: i(O.wrapper, e),
62
+ className: i(D.wrapper, e),
62
63
  children: t
63
64
  });
64
65
  }
65
- var A = { componentLoader: "qgIKVo" };
66
+ var k = { componentLoader: "qgIKVo" };
66
67
  //#endregion
67
68
  //#region src/misc/Message.tsx
68
- function j({ className: e, children: r, color: a = "muted", role: o, minHeight: s, uppercase: c = !0 }) {
69
- return /* @__PURE__ */ p(n, {
69
+ function A({ className: e, children: n, color: a = "muted", role: o, minHeight: s, uppercase: c = !0 }) {
70
+ return /* @__PURE__ */ p(r, {
70
71
  className: i("paddingMd textCenter", e),
71
72
  minHeight: s,
72
73
  children: /* @__PURE__ */ p(t, {
@@ -75,23 +76,23 @@ function j({ className: e, children: r, color: a = "muted", role: o, minHeight:
75
76
  color: a,
76
77
  uppercase: c,
77
78
  role: o,
78
- children: r
79
+ children: n
79
80
  })
80
81
  });
81
82
  }
82
83
  //#endregion
83
84
  //#region src/misc/LoadingMessage.tsx
84
- function M({ className: e, logo: t, text: n }) {
85
- return /* @__PURE__ */ m(j, {
86
- className: i(A.componentLoader, t ? void 0 : "skeletonLine", e),
85
+ function j({ className: e, logo: t, text: n }) {
86
+ return /* @__PURE__ */ m(A, {
87
+ className: i(k.componentLoader, t ? void 0 : "skeletonLine", e),
87
88
  children: [t, n || "Загрузка..."]
88
89
  });
89
90
  }
90
91
  //#endregion
91
92
  //#region src/misc/LazyDynamicComponent.tsx
92
- var N = (e) => (e(), () => void 0), P = () => !0, F = () => !1;
93
- function I({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, cacheKey: i, props: a }) {
94
- let o = C(t, n, i), s = x(N, P, F), c = e ?? /* @__PURE__ */ p(M, { text: "Ожидание компонента..." });
93
+ var M = (e) => (e(), () => void 0), N = () => !0, P = () => !1;
94
+ function F({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, cacheKey: i, props: a }) {
95
+ let o = S(t, n, i), s = b(M, N, P), c = e ?? /* @__PURE__ */ p(j, { text: "Ожидание компонента..." });
95
96
  return r && !s ? c : /* @__PURE__ */ p(h, {
96
97
  fallback: c,
97
98
  children: /* @__PURE__ */ p(o, { ...a ?? {} })
@@ -99,20 +100,22 @@ function I({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, c
99
100
  }
100
101
  //#endregion
101
102
  //#region src/misc/SkeletonLine.tsx
102
- var L = ({ as: e, className: t, ...n }) => /* @__PURE__ */ p(r, {
103
- as: e || "div",
104
- className: i("skeletonLine colorTransparent radiusSm", t),
105
- ...n
106
- });
103
+ function I({ as: e, className: t, ...r }) {
104
+ return /* @__PURE__ */ p(n, {
105
+ as: e || "div",
106
+ className: i("skeletonLine colorTransparent radiusSm", t),
107
+ ...r
108
+ });
109
+ }
107
110
  //#endregion
108
111
  //#region src/misc/LazyValue.tsx
109
- function R({ value: e, isLoading: t }) {
110
- return t ? /* @__PURE__ */ p(L, { children: "Загрузка..." }) : e ?? "-";
112
+ function L({ value: e, isLoading: t }) {
113
+ return t ? /* @__PURE__ */ p(I, { children: "Загрузка..." }) : e ?? "-";
111
114
  }
112
115
  //#endregion
113
116
  //#region src/misc/NoData.tsx
114
- function z({ className: e, text: t, role: n, minHeight: r = "5em" }) {
115
- return /* @__PURE__ */ p(j, {
117
+ function R({ className: e, text: t, role: n, minHeight: r = "5em" }) {
118
+ return /* @__PURE__ */ p(A, {
116
119
  className: e,
117
120
  color: "muted",
118
121
  minHeight: r,
@@ -122,28 +125,28 @@ function z({ className: e, text: t, role: n, minHeight: r = "5em" }) {
122
125
  }
123
126
  //#endregion
124
127
  //#region src/misc/Notice.tsx
125
- function B({ className: e, isError: t, role: n, children: r }) {
126
- return /* @__PURE__ */ p(j, {
128
+ function z({ className: e, isError: t, role: n, children: r }) {
129
+ return /* @__PURE__ */ p(A, {
127
130
  className: e,
128
131
  color: t ? "error" : "secondary",
129
132
  role: n,
130
133
  children: r
131
134
  });
132
135
  }
133
- var V = {
136
+ var B = {
134
137
  oneStepScroller: "_7xUQBN",
135
138
  ossViewport: "AonLqg",
136
139
  ossScroller: "j-5yFn",
137
140
  ossButton: "pOIq63"
138
- }, H = 1;
139
- function U(e) {
141
+ }, V = 1;
142
+ function H(e) {
140
143
  return Math.max(0, e.scrollWidth - e.clientWidth);
141
144
  }
142
- var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smooth: a = !0 }) => {
143
- let c = y(null), l = y(null), [u, d] = b(!1), [f, h] = b(!1), g = _(() => {
145
+ function U({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smooth: a = !0 }) {
146
+ let c = v(null), l = v(null), [u, d] = y(!1), [f, h] = y(!1), b = g(() => {
144
147
  let e = c.current;
145
148
  return e ? n ? Array.from(e.querySelectorAll(n)) : Array.from(e.children).filter((e) => e instanceof HTMLElement) : [];
146
- }, [n]), x = _((e) => {
149
+ }, [n]), x = g((e) => {
147
150
  let t = c.current;
148
151
  if (!t) return null;
149
152
  if (n) {
@@ -153,22 +156,22 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
153
156
  let r = e;
154
157
  for (; r && r.parentElement && r.parentElement !== t;) r = r.parentElement;
155
158
  return r && r.parentElement === t ? r : null;
156
- }, [n]), S = _(() => {
159
+ }, [n]), S = g(() => {
157
160
  let e = c.current;
158
161
  if (!e) {
159
162
  d(!1), h(!1);
160
163
  return;
161
164
  }
162
- let t = Math.max(0, e.scrollWidth - e.clientWidth), n = Math.max(0, Math.min(e.scrollLeft, t)), r = n > H, i = n < t - H;
165
+ let t = Math.max(0, e.scrollWidth - e.clientWidth), n = Math.max(0, Math.min(e.scrollLeft, t)), r = n > V, i = n < t - V;
163
166
  d((e) => e === r ? e : r), h((e) => e === i ? e : i);
164
- }, []), C = _(() => {
167
+ }, []), C = g(() => {
165
168
  l.current === null && (l.current = requestAnimationFrame(() => {
166
169
  l.current = null, S();
167
170
  }));
168
- }, [S]), w = _((e) => {
171
+ }, [S]), w = g((e) => {
169
172
  let t = c.current;
170
173
  if (!t) return;
171
- let n = g()[0];
174
+ let n = b()[0];
172
175
  if (!n) return;
173
176
  let r = n.getBoundingClientRect().width;
174
177
  if (!r) return;
@@ -177,18 +180,18 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
177
180
  left: s,
178
181
  behavior: a ? "smooth" : "auto"
179
182
  });
180
- }, [g, a]), T = _((e) => {
183
+ }, [b, a]), T = g((e) => {
181
184
  let t = c.current;
182
185
  if (!t) return;
183
186
  let n = t.getBoundingClientRect(), i = e.getBoundingClientRect(), o = i.left - n.left + t.scrollLeft, s = o + i.width, l = t.scrollLeft, u = t.scrollLeft + t.clientWidth;
184
- if (o >= l + H && s <= u - H) return;
187
+ if (o >= l + V && s <= u - V) return;
185
188
  let d = t.scrollLeft;
186
- o < l ? d = Math.max(0, o - r) : s > u && (d = Math.min(U(t), s - t.clientWidth + r)), t.scrollTo({
189
+ o < l ? d = Math.max(0, o - r) : s > u && (d = Math.min(H(t), s - t.clientWidth + r)), t.scrollTo({
187
190
  left: Math.round(d),
188
191
  behavior: a ? "smooth" : "auto"
189
192
  });
190
193
  }, [r, a]);
191
- v(() => {
194
+ _(() => {
192
195
  let e = c.current;
193
196
  if (!e) return;
194
197
  let t = (e) => {
@@ -198,7 +201,7 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
198
201
  n && T(n);
199
202
  };
200
203
  return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
201
- }, [T, x]), v(() => {
204
+ }, [T, x]), _(() => {
202
205
  let e = c.current;
203
206
  if (!e) return;
204
207
  let t = () => C();
@@ -212,31 +215,31 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
212
215
  })), C(), () => {
213
216
  e.removeEventListener("scroll", t), n?.disconnect(), r?.disconnect(), l.current !== null && (cancelAnimationFrame(l.current), l.current = null);
214
217
  };
215
- }, [C]), v(() => {
218
+ }, [C]), _(() => {
216
219
  C();
217
220
  }, [e, C]);
218
221
  let E = () => w(-1), D = () => w(1), O = (e) => {
219
- e.key === "ArrowLeft" ? (e.preventDefault(), E()) : e.key === "ArrowRight" && (e.preventDefault(), D());
222
+ e.defaultPrevented || (e.key === "ArrowLeft" ? (e.preventDefault(), E()) : e.key === "ArrowRight" && (e.preventDefault(), D()));
220
223
  }, k = u || f;
221
224
  return /* @__PURE__ */ m("div", {
222
- className: i(V.oneStepScroller, t),
225
+ className: i(B.oneStepScroller, t),
223
226
  style: { position: "relative" },
224
227
  children: [
225
228
  k && /* @__PURE__ */ p("button", {
226
229
  type: "button",
227
230
  "aria-label": "Прокрутить шаг влево",
228
- className: V.ossButton,
231
+ className: B.ossButton,
229
232
  onClick: E,
230
233
  disabled: !u,
231
234
  children: /* @__PURE__ */ p(o, {})
232
235
  }),
233
236
  /* @__PURE__ */ p("div", {
234
- className: V.ossViewport,
237
+ className: B.ossViewport,
235
238
  onKeyDown: O,
236
239
  role: "group",
237
240
  "aria-label": "Элементы прокрутки",
238
241
  children: /* @__PURE__ */ p("div", {
239
- className: V.ossScroller,
242
+ className: B.ossScroller,
240
243
  ref: c,
241
244
  "aria-live": "polite",
242
245
  children: e
@@ -245,27 +248,29 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
245
248
  k && /* @__PURE__ */ p("button", {
246
249
  type: "button",
247
250
  "aria-label": "Прокрутить шаг вправо",
248
- className: V.ossButton,
251
+ className: B.ossButton,
249
252
  onClick: D,
250
253
  disabled: !f,
251
254
  children: /* @__PURE__ */ p(s, {})
252
255
  })
253
256
  ]
254
257
  });
255
- }, G = g(({ children: e, height: t, stable: n, overscroll: r, className: a }, o) => /* @__PURE__ */ p("div", {
256
- ref: o,
257
- className: i("scrollable", n && "stable", r && "overscroll", a),
258
- style: { height: t },
259
- children: e
260
- }));
261
- g(({ blockClassName: e, ...t }, n) => /* @__PURE__ */ p("div", {
262
- className: i(e, "overflowHidden w100 h100"),
263
- children: /* @__PURE__ */ p(G, {
264
- ref: n,
265
- ...t
266
- })
267
- }));
268
- var K = {
258
+ }
259
+ //#endregion
260
+ //#region src/misc/Scrollable.tsx
261
+ function W({ ref: e, children: t, height: n, stable: r, overscroll: a, className: o, style: s, ...c }) {
262
+ return /* @__PURE__ */ p("div", {
263
+ ...c,
264
+ ref: e,
265
+ className: i("scrollable", r && "stable", a && "overscroll", o),
266
+ style: {
267
+ ...s,
268
+ height: n ?? s?.height
269
+ },
270
+ children: t
271
+ });
272
+ }
273
+ var G = {
269
274
  stateWrapper: "UMTbLD",
270
275
  status: "cz57Fx",
271
276
  information: "oPzAxu",
@@ -273,37 +278,55 @@ var K = {
273
278
  warning: "_03z-1l",
274
279
  error: "_0RqsqJ",
275
280
  state: "mXkUoM"
276
- }, q = ({ state: e = "none", text: t, className: n }) => /* @__PURE__ */ m("div", {
277
- className: i("flexCenter gapSm", n),
278
- children: [(() => {
279
- switch (e) {
280
- case "error": return /* @__PURE__ */ p(Y, {});
281
- case "warning": return /* @__PURE__ */ p(X, {});
282
- case "success": return /* @__PURE__ */ p(Z, {});
283
- case "information": return /* @__PURE__ */ p(Q, {});
284
- default: return null;
285
- }
286
- })(), t]
287
- }), J = ({ state: e }) => {
281
+ };
282
+ //#endregion
283
+ //#region src/misc/StateIcon.tsx
284
+ function K({ state: e = "none", text: t, className: n }) {
285
+ return /* @__PURE__ */ m("div", {
286
+ className: i("flexCenter gapSm", n),
287
+ children: [(() => {
288
+ switch (e) {
289
+ case "error": return /* @__PURE__ */ p(J, {});
290
+ case "warning": return /* @__PURE__ */ p(Y, {});
291
+ case "success": return /* @__PURE__ */ p(X, {});
292
+ case "information": return /* @__PURE__ */ p(Z, {});
293
+ default: return null;
294
+ }
295
+ })(), t]
296
+ });
297
+ }
298
+ function q({ state: e }) {
288
299
  switch (e) {
289
- case "error": return /* @__PURE__ */ p(Y, {});
290
- case "warning": return /* @__PURE__ */ p(X, {});
291
- case "success": return /* @__PURE__ */ p(Z, {});
292
- case "information": return /* @__PURE__ */ p(Q, {});
300
+ case "error": return /* @__PURE__ */ p(J, {});
301
+ case "warning": return /* @__PURE__ */ p(Y, {});
302
+ case "success": return /* @__PURE__ */ p(X, {});
303
+ case "information": return /* @__PURE__ */ p(Z, {});
293
304
  default: return null;
294
305
  }
295
- }, Y = () => /* @__PURE__ */ p(u, { className: i(K.state, K.error) }), X = () => /* @__PURE__ */ p(c, { className: i(K.state, K.warning) }), Z = () => /* @__PURE__ */ p(l, { className: i(K.state, K.success) }), Q = () => /* @__PURE__ */ p(f, { className: i(K.state, K.information) });
306
+ }
307
+ function J() {
308
+ return /* @__PURE__ */ p(u, { className: i(G.state, G.error) });
309
+ }
310
+ function Y() {
311
+ return /* @__PURE__ */ p(c, { className: i(G.state, G.warning) });
312
+ }
313
+ function X() {
314
+ return /* @__PURE__ */ p(l, { className: i(G.state, G.success) });
315
+ }
316
+ function Z() {
317
+ return /* @__PURE__ */ p(f, { className: i(G.state, G.information) });
318
+ }
296
319
  //#endregion
297
320
  //#region src/misc/StateWrapper.tsx
298
- function $({ as: e, state: t, className: n, ...a }) {
299
- let o = t?.toLowerCase() ?? "none", s = K[o], c = o && o !== "none";
300
- return /* @__PURE__ */ p(r, {
321
+ function Q({ as: e, state: t, className: r, ...a }) {
322
+ let o = t?.toLowerCase() ?? "none", s = G[o], c = o && o !== "none";
323
+ return /* @__PURE__ */ p(n, {
301
324
  as: e || "div",
302
- className: i(K.stateWrapper, c && K.status, s, n),
325
+ className: i(G.stateWrapper, c && G.status, s, r),
303
326
  ...a
304
327
  });
305
328
  }
306
329
  //#endregion
307
- export { k as _, q as a, T as b, G as c, z as d, R as f, j as g, M as h, J as i, W as l, I as m, Y as n, Z as o, L as p, Q as r, X as s, $ as t, B as u, D as v, E as y };
330
+ export { O as _, K as a, w as b, W as c, R as d, L as f, A as g, j as h, q as i, U as l, F as m, J as n, X as o, I as p, Z as r, Y as s, Q as t, z as u, E as v, T as y };
308
331
 
309
- //# sourceMappingURL=misc-CGQOXXCy.js.map
332
+ //# sourceMappingURL=misc-Cm_LDrUD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-Cm_LDrUD.js","names":[],"sources":["../../src/misc/AnimatedLogo.module.scss","../../src/misc/AnimatedLogo.tsx","../../src/misc/AnimatedLogoSegment.tsx","../../src/misc/CopyTextWrapper.tsx","../../src/misc/IconWrapper.module.scss","../../src/misc/IconWrapper.tsx","../../src/misc/LoadingMessage.module.scss","../../src/misc/Message.tsx","../../src/misc/LoadingMessage.tsx","../../src/misc/LazyDynamicComponent.tsx","../../src/misc/SkeletonLine.tsx","../../src/misc/LazyValue.tsx","../../src/misc/NoData.tsx","../../src/misc/Notice.tsx","../../src/misc/OneStepScroller.module.scss","../../src/misc/OneStepScroller.tsx","../../src/misc/Scrollable.tsx","../../src/misc/State.module.scss","../../src/misc/StateIcon.tsx","../../src/misc/StateWrapper.tsx"],"sourcesContent":[".logo {\n\tsvg {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n\n.segment {\n\topacity: 0.2;\n\tanimation: pulseSteps 2s ease-in-out infinite;\n}\n\n@keyframes pulseSteps {\n\t0% {\n\t\topacity: 0.2;\n\t}\n\n\t35%,\n\t55% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0.2;\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.segment {\n\t\tanimation: none;\n\t\topacity: 1;\n\t}\n}\n","import { type ComponentPropsWithoutRef, type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./AnimatedLogo.module.scss\";\n\ntype AnimatedLogoProps = Omit<ComponentPropsWithoutRef<\"div\">, \"children\"> & {\n\tchildren: ReactNode;\n};\n\n/**\n * Контейнер анимированного логотипа без брендовой SVG-разметки.\n * Host-проект передаёт собственный `svg`, а его визуальные части оборачивает в `AnimatedLogoSegment`.\n */\nexport function AnimatedLogo({ children, className, ...htmlProps }: AnimatedLogoProps) {\n\treturn (\n\t\t<div {...htmlProps} className={cn(styles.logo, className)}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n","import { type ComponentPropsWithoutRef, type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./AnimatedLogo.module.scss\";\n\ntype AnimatedLogoSegmentProps = Omit<ComponentPropsWithoutRef<\"g\">, \"children\"> & {\n\tchildren: ReactNode;\n\torder: number;\n};\n\n/**\n * Анимирует одну смысловую часть host-логотипа и сдвигает её pulse относительно предыдущих частей.\n * `order` задаётся с нуля в визуальной последовательности сегментов и преобразуется в шаг задержки 200 мс.\n */\nexport function AnimatedLogoSegment({ children, className, order, style, ...svgGroupProps }: AnimatedLogoSegmentProps) {\n\treturn (\n\t\t<g {...svgGroupProps} className={cn(styles.segment, className)} style={{ ...style, animationDelay: `${order * 200}ms` }}>\n\t\t\t{children}\n\t\t</g>\n\t);\n}\n","import { Placement } from \"@floating-ui/react\";\nimport { useCopyElementTextWithFeedback } from \"@ryuzaki13/react-foundation-lib/copy\";\nimport { CheckCheckIcon, CopyIcon } from \"lucide-react\";\n\nimport { FloatingPopover } from \"../popover\";\n\ninterface CopyTextWrapperProps {\n\tchildren: React.ReactNode;\n\tposition?: Placement;\n\tshowOnHover?: boolean;\n\tclassName?: string;\n}\n\nexport function CopyTextWrapper({ children, position = \"top\", showOnHover = true, className }: CopyTextWrapperProps) {\n\tconst { containerRef, copyElementText, isCopied } = useCopyElementTextWithFeedback<HTMLSpanElement>();\n\n\treturn (\n\t\t<span ref={containerRef} className={className}>\n\t\t\t{children}\n\t\t\t<FloatingPopover openOnHover={showOnHover} placement={position} content={isCopied ? \"Скопировано!\" : \"Копировать текст\"}>\n\t\t\t\t<button onClick={copyElementText} aria-label={isCopied ? \"Скопировано!\" : \"Копировать текст\"}>\n\t\t\t\t\t{isCopied ? <CheckCheckIcon className=\"block statusSuccess\" /> : <CopyIcon className=\"block statusInfo\" />}\n\t\t\t\t</button>\n\t\t\t</FloatingPopover>\n\t\t</span>\n\t);\n}\n",".wrapper {\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tmargin: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n","import { ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./IconWrapper.module.scss\";\n\ninterface IconWrapperProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n}\n\nexport function IconWrapper({ className, children }: IconWrapperProps) {\n\treturn <div className={cn(styles.wrapper, className)}>{children}</div>;\n}\n",".componentLoader {\n\tmin-height: 10em;\n}\n","import { AriaRole, PropsWithChildren } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { FlexCenter } from \"../flex\";\nimport { Text, TextColor } from \"../text\";\n\ninterface MessageProps extends PropsWithChildren {\n\tclassName?: string;\n\tcolor?: TextColor;\n\tminHeight?: string | number;\n\tuppercase?: boolean;\n\trole?: AriaRole;\n}\n\nexport function Message({ className, children, color = \"muted\", role, minHeight, uppercase = true }: MessageProps) {\n\treturn (\n\t\t<FlexCenter className={cn(\"paddingMd textCenter\", className)} minHeight={minHeight}>\n\t\t\t<Text as=\"p\" weight=\"bold\" color={color} uppercase={uppercase} role={role}>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</FlexCenter>\n\t);\n}\n","import { type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./LoadingMessage.module.scss\";\nimport { Message } from \"./Message\";\n\ntype LoadingMessageProps = {\n\tclassName?: string;\n\t/** Готовый брендовый знак, которым host-проект при необходимости дополняет сообщение о загрузке. */\n\tlogo?: ReactNode;\n\ttext?: string;\n};\n\nexport function LoadingMessage({ className, logo, text }: LoadingMessageProps) {\n\treturn (\n\t\t<Message className={cn(styles.componentLoader, logo ? undefined : \"skeletonLine\", className)}>\n\t\t\t{logo}\n\n\t\t\t{text || \"Загрузка...\"}\n\t\t</Message>\n\t);\n}\n","import { Suspense, useSyncExternalStore, type ComponentType, type ReactNode } from \"react\";\n\nimport { useLazyComponent } from \"@ryuzaki13/react-foundation-lib/hooks\";\n\nimport { LoadingMessage } from \"./LoadingMessage\";\n\ntype LazyDynamicComponentProps<T extends object> = {\n\timportFunc: () => Promise<Record<string, ComponentType<T>> | null>;\n\tcomponentName: string;\n\tcacheKey?: string;\n\tclientOnly?: boolean;\n\tfallback?: ReactNode;\n\tprops?: T;\n};\n\nconst subscribeClientOnlyMount = (onStoreChange: () => void) => {\n\tonStoreChange();\n\n\treturn () => undefined;\n};\n\nconst getClientSnapshot = () => true;\nconst getServerSnapshot = () => false;\n\n/**\n * Компонент ленивой загрузки динамически импортируемого React-компонента. Позволяет отложить загрузку тяжелых частей интерфейса до момента использования.\n */\nexport function LazyDynamicComponent<T extends object>({\n\tfallback,\n\timportFunc,\n\tcomponentName,\n\tclientOnly = false,\n\tcacheKey,\n\tprops\n}: LazyDynamicComponentProps<T>) {\n\tconst Component = useLazyComponent(importFunc, componentName, cacheKey);\n\tconst isClient = useSyncExternalStore(subscribeClientOnlyMount, getClientSnapshot, getServerSnapshot);\n\n\tconst fallbackNode = fallback ?? <LoadingMessage text=\"Ожидание компонента...\" />;\n\n\t// Client-only режим нужен для браузерных модулей, которые нельзя даже пытаться импортировать во время SSR.\n\tif (clientOnly && !isClient) return fallbackNode;\n\n\treturn (\n\t\t<Suspense fallback={fallbackNode}>\n\t\t\t{/* eslint-disable-next-line react-hooks/static-components */}\n\t\t\t<Component {...(props ?? ({} as T))} />\n\t\t</Suspense>\n\t);\n}\n","import React from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { PolymorphicComponent, PolymorphicComponentBaseProps } from \"../polymorphic\";\n\ntype SkeletonLineOwnProps<E extends React.ElementType = React.ElementType> = PolymorphicComponentBaseProps<E> & {\n\tclassName?: string;\n};\n\ntype SkeletonLineProps<E extends React.ElementType> = SkeletonLineOwnProps<E> &\n\tOmit<React.ComponentPropsWithRef<E>, keyof SkeletonLineOwnProps>;\n\nexport function SkeletonLine<E extends React.ElementType>({ as, className, ...props }: SkeletonLineProps<E>) {\n\tconst Component = as || \"div\";\n\n\treturn (\n\t\t<PolymorphicComponent\n\t\t\tas={Component as React.ElementType}\n\t\t\tclassName={cn(\"skeletonLine colorTransparent radiusSm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","import React from \"react\";\n\nimport { SkeletonLine } from \"./SkeletonLine\";\n\ninterface LazyValueProps {\n\tvalue: React.ReactNode;\n\tisLoading?: boolean;\n}\n\nexport function LazyValue({ value, isLoading }: LazyValueProps) {\n\treturn isLoading ? <SkeletonLine>Загрузка...</SkeletonLine> : (value ?? \"-\");\n}\n","import { AriaRole } from \"react\";\n\nimport { Message } from \"./Message\";\n\ninterface NoDataProps {\n\tclassName?: string;\n\ttext?: string;\n\tminHeight?: string | number;\n\trole?: AriaRole;\n}\n\nexport function NoData({ className, text, role, minHeight = \"5em\" }: NoDataProps) {\n\treturn (\n\t\t<Message className={className} color=\"muted\" minHeight={minHeight} role={role}>\n\t\t\t{text || \"Нет данных\"}\n\t\t</Message>\n\t);\n}\n","import { AriaRole, PropsWithChildren } from \"react\";\n\nimport { Message } from \"./Message\";\n\ninterface NoticeProps extends PropsWithChildren {\n\tisError?: boolean;\n\tclassName?: string;\n\trole?: AriaRole;\n}\n\nexport function Notice({ className, isError, role, children }: NoticeProps) {\n\treturn (\n\t\t<Message className={className} color={isError ? \"error\" : \"secondary\"} role={role}>\n\t\t\t{children}\n\t\t</Message>\n\t);\n}\n",".oneStepScroller {\n\toverflow: hidden;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tmin-width: 0;\n}\n\n.ossViewport {\n\toverflow: hidden;\n\toutline: none;\n\tmin-width: 0;\n\tflex: 1 1 auto;\n}\n\n.ossScroller {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tgap: var(--space-sm);\n\talign-items: end;\n\toverflow-x: auto;\n\toverflow-y: hidden;\n\tscroll-behavior: smooth;\n\t-webkit-overflow-scrolling: touch;\n\tscrollbar-width: none; /* firefox */\n\n\t::-webkit-scrollbar {\n\t\theight: 0;\n\t}\n}\n\n.ossButton {\n\t// position: absolute;\n\ttop: 0;\n\tz-index: 10;\n\twidth: var(--control-height);\n\theight: 100%;\n\tflex: 0 0 var(--control-height);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\t// border: var(--border);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-2);\n\t// background-color: var(--surface-0);\n\t// opacity: 0.75;\n\n\ttransition-property: opacity, color;\n\ttransition-duration: var(--transition-fast);\n\n\t&:hover {\n\t\topacity: 1;\n\t\tcolor: var(--content-0);\n\t}\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n\n\t// &.prev {\n\t// \tleft: 0;\n\t// }\n\n\t// &.next {\n\t// \tright: 0;\n\t// }\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport styles from \"./OneStepScroller.module.scss\";\n\ninterface OneStepScrollerProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n\t/**\n\t * CSS-селектор элементов, которые считаются \"шагами\" скролла.\n\t * По умолчанию используются прямые потомки скроллера.\n\t */\n\titemSelector?: string;\n\t/**\n\t * Дополнительный внутренний отступ (px) при прокрутке к фокусируемому элементу.\n\t */\n\tscrollPadding?: number;\n\t/**\n\t * Плавная прокрутка для кнопок и авто-доводки до видимости.\n\t */\n\tsmooth?: boolean;\n}\n\nconst EDGE_EPSILON_PX = 1;\n\nfunction maxScrollLeft(scroller: HTMLElement) {\n\treturn Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n}\n\n/**\n * Горизонтальный скроллер \"по одному элементу\".\n *\n * Ожидает элементы фиксированной ширины (или близкой к фиксированной),\n * чтобы шаг скролла соответствовал ширине одного элемента.\n */\nexport function OneStepScroller({ children, className, itemSelector, scrollPadding = 6, smooth = true }: OneStepScrollerProps) {\n\tconst scrollerRef = useRef<HTMLDivElement | null>(null);\n\tconst rafIdRef = useRef<number | null>(null);\n\n\tconst [canScrollPrev, setCanScrollPrev] = useState(false);\n\tconst [canScrollNext, setCanScrollNext] = useState(false);\n\n\t/**\n\t * Получить список элементов-\"шагов\".\n\t *\n\t * Оптимизация: для дефолтного поведения используем `children` DOM-узла,\n\t * чтобы не выполнять `querySelectorAll` на каждый вызов.\n\t */\n\tconst getItems = useCallback((): HTMLElement[] => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return [];\n\n\t\tif (!itemSelector) {\n\t\t\treturn Array.from(scroller.children).filter((node): node is HTMLElement => node instanceof HTMLElement);\n\t\t}\n\n\t\treturn Array.from(scroller.querySelectorAll<HTMLElement>(itemSelector));\n\t}, [itemSelector]);\n\n\t/**\n\t * Найти \"элемент шага\" для произвольного target внутри скроллера.\n\t */\n\tconst findItemForTarget = useCallback(\n\t\t(target: HTMLElement): HTMLElement | null => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return null;\n\n\t\t\tif (itemSelector) {\n\t\t\t\tconst item = target.closest<HTMLElement>(itemSelector);\n\t\t\t\tif (item && scroller.contains(item)) return item;\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet node: HTMLElement | null = target;\n\t\t\twhile (node && node.parentElement && node.parentElement !== scroller) {\n\t\t\t\tnode = node.parentElement;\n\t\t\t}\n\n\t\t\tif (node && node.parentElement === scroller) return node;\n\t\t\treturn null;\n\t\t},\n\t\t[itemSelector]\n\t);\n\n\t/**\n\t * Обновить состояние кнопок \"назад/вперед\".\n\t * Состояние меняется только при реальном отличии, чтобы не триггерить\n\t * лишние перерисовки на каждом событии scroll.\n\t */\n\tconst updateScrollButtons = useCallback(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) {\n\t\t\tsetCanScrollPrev(false);\n\t\t\tsetCanScrollNext(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxScrollLeft = Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n\t\tconst current = Math.max(0, Math.min(scroller.scrollLeft, maxScrollLeft));\n\n\t\tconst nextCanScrollPrev = current > EDGE_EPSILON_PX;\n\t\tconst nextCanScrollNext = current < maxScrollLeft - EDGE_EPSILON_PX;\n\n\t\tsetCanScrollPrev((prev) => (prev === nextCanScrollPrev ? prev : nextCanScrollPrev));\n\t\tsetCanScrollNext((prev) => (prev === nextCanScrollNext ? prev : nextCanScrollNext));\n\t}, []);\n\n\t/**\n\t * Запланировать обновление кнопок в следующий animation frame.\n\t * Это снижает частоту вычислений при интенсивном scroll/resize.\n\t */\n\tconst scheduleUpdateScrollButtons = useCallback(() => {\n\t\tif (rafIdRef.current !== null) return;\n\n\t\trafIdRef.current = requestAnimationFrame(() => {\n\t\t\trafIdRef.current = null;\n\t\t\tupdateScrollButtons();\n\t\t});\n\t}, [updateScrollButtons]);\n\n\t/**\n\t * Прокрутка на N элементов (N может быть отрицательным).\n\t */\n\tconst scrollByItems = useCallback(\n\t\t(count: number) => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return;\n\n\t\t\tconst firstItem = getItems()[0];\n\t\t\tif (!firstItem) return;\n\n\t\t\tconst step = firstItem.getBoundingClientRect().width;\n\t\t\tif (!step) return;\n\n\t\t\tconst delta = Math.round(count * step);\n\t\t\tconst maxScrollLeft = Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n\t\t\tconst target = Math.max(0, Math.min(scroller.scrollLeft + delta, maxScrollLeft));\n\n\t\t\tscroller.scrollTo({\n\t\t\t\tleft: target,\n\t\t\t\tbehavior: smooth ? \"smooth\" : \"auto\"\n\t\t\t});\n\t\t},\n\t\t[getItems, smooth]\n\t);\n\n\t/**\n\t * Гарантировать полную видимость элемента в пределах viewport скроллера.\n\t */\n\tconst ensureFullyVisible = useCallback(\n\t\t(el: HTMLElement) => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return;\n\n\t\t\tconst scrollerRect = scroller.getBoundingClientRect();\n\t\t\tconst elementRect = el.getBoundingClientRect();\n\n\t\t\tconst elementLeft = elementRect.left - scrollerRect.left + scroller.scrollLeft;\n\t\t\tconst elementRight = elementLeft + elementRect.width;\n\n\t\t\tconst visibleLeft = scroller.scrollLeft;\n\t\t\tconst visibleRight = scroller.scrollLeft + scroller.clientWidth;\n\n\t\t\tif (elementLeft >= visibleLeft + EDGE_EPSILON_PX && elementRight <= visibleRight - EDGE_EPSILON_PX) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet targetScrollLeft = scroller.scrollLeft;\n\t\t\tif (elementLeft < visibleLeft) {\n\t\t\t\ttargetScrollLeft = Math.max(0, elementLeft - scrollPadding);\n\t\t\t} else if (elementRight > visibleRight) {\n\t\t\t\ttargetScrollLeft = Math.min(maxScrollLeft(scroller), elementRight - scroller.clientWidth + scrollPadding);\n\t\t\t}\n\n\t\t\tscroller.scrollTo({\n\t\t\t\tleft: Math.round(targetScrollLeft),\n\t\t\t\tbehavior: smooth ? \"smooth\" : \"auto\"\n\t\t\t});\n\t\t},\n\t\t[scrollPadding, smooth]\n\t);\n\n\tuseEffect(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return;\n\n\t\tconst handleFocusIn = (event: FocusEvent) => {\n\t\t\tconst target = event.target;\n\t\t\tif (!(target instanceof HTMLElement)) return;\n\n\t\t\tconst item = findItemForTarget(target);\n\t\t\tif (item) ensureFullyVisible(item);\n\t\t};\n\n\t\tscroller.addEventListener(\"focusin\", handleFocusIn);\n\t\treturn () => scroller.removeEventListener(\"focusin\", handleFocusIn);\n\t}, [ensureFullyVisible, findItemForTarget]);\n\n\t/**\n\t * Наблюдаем только за размером скроллера и изменением его DOM-структуры.\n\t * Это дешевле, чем подписка ResizeObserver на каждый элемент + IntersectionObserver.\n\t */\n\tuseEffect(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return;\n\n\t\tconst onScroll = () => scheduleUpdateScrollButtons();\n\t\tscroller.addEventListener(\"scroll\", onScroll, { passive: true });\n\n\t\tlet resizeObserver: ResizeObserver | null = null;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tresizeObserver = new ResizeObserver(scheduleUpdateScrollButtons);\n\t\t\tresizeObserver.observe(scroller);\n\t\t}\n\n\t\tlet mutationObserver: MutationObserver | null = null;\n\t\tif (typeof MutationObserver !== \"undefined\") {\n\t\t\tmutationObserver = new MutationObserver(scheduleUpdateScrollButtons);\n\t\t\tmutationObserver.observe(scroller, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: false\n\t\t\t});\n\t\t}\n\n\t\tscheduleUpdateScrollButtons();\n\n\t\treturn () => {\n\t\t\tscroller.removeEventListener(\"scroll\", onScroll);\n\t\t\tresizeObserver?.disconnect();\n\t\t\tmutationObserver?.disconnect();\n\n\t\t\tif (rafIdRef.current !== null) {\n\t\t\t\tcancelAnimationFrame(rafIdRef.current);\n\t\t\t\trafIdRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [scheduleUpdateScrollButtons]);\n\n\t/**\n\t * При изменении children просим пересчитать видимость кнопок.\n\t */\n\tuseEffect(() => {\n\t\tscheduleUpdateScrollButtons();\n\t}, [children, scheduleUpdateScrollButtons]);\n\n\tconst handlePrev = () => scrollByItems(-1);\n\tconst handleNext = () => scrollByItems(1);\n\n\t/**\n\t * Клавиатурная доступность: стрелки влево/вправо двигают на один шаг.\n\t */\n\tconst onWrapperKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === \"ArrowLeft\") {\n\t\t\te.preventDefault();\n\t\t\thandlePrev();\n\t\t} else if (e.key === \"ArrowRight\") {\n\t\t\te.preventDefault();\n\t\t\thandleNext();\n\t\t}\n\t};\n\n\tconst hasScroll = canScrollPrev || canScrollNext;\n\n\treturn (\n\t\t<div className={cn(styles.oneStepScroller, className)} style={{ position: \"relative\" }}>\n\t\t\t{hasScroll && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Прокрутить шаг влево\"\n\t\t\t\t\tclassName={styles.ossButton}\n\t\t\t\t\tonClick={handlePrev}\n\t\t\t\t\tdisabled={!canScrollPrev}>\n\t\t\t\t\t<ChevronLeftIcon />\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className={styles.ossViewport} onKeyDown={onWrapperKeyDown} role=\"group\" aria-label=\"Элементы прокрутки\">\n\t\t\t\t<div className={styles.ossScroller} ref={scrollerRef} aria-live=\"polite\">\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{hasScroll && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Прокрутить шаг вправо\"\n\t\t\t\t\tclassName={styles.ossButton}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\tdisabled={!canScrollNext}>\n\t\t\t\t\t<ChevronRightIcon />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { type ComponentPropsWithoutRef, type Ref } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nexport interface ScrollableProps extends ComponentPropsWithoutRef<\"div\"> {\n\theight?: string | number;\n\tstable?: boolean;\n\toverscroll?: boolean;\n}\n\nexport function Scrollable({\n\tref,\n\tchildren,\n\theight,\n\tstable,\n\toverscroll,\n\tclassName,\n\tstyle,\n\t...htmlProps\n}: ScrollableProps & { ref?: Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<div\n\t\t\t{...htmlProps}\n\t\t\tref={ref}\n\t\t\tclassName={cn(\"scrollable\", stable && \"stable\", overscroll && \"overscroll\", className)}\n\t\t\tstyle={{ ...style, height: height ?? style?.height }}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n\nexport interface ScrollableBlockProps extends ScrollableProps {\n\tblockClassName?: string;\n}\n\nexport function ScrollableBlock({ ref, blockClassName, ...props }: ScrollableBlockProps & { ref?: Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<div className={cn(blockClassName, \"overflowHidden w100 h100\")}>\n\t\t\t<Scrollable ref={ref} {...props} />\n\t\t</div>\n\t);\n}\n",".stateWrapper {\n\ttext-decoration: none;\n\tcolor: inherit;\n\tdisplay: block;\n\n\t// border: var(--border-width) solid var(--state-border-color, transparent);\n\tborder-left-style: solid;\n\tborder-left-color: var(--state-border-color, transparent);\n\tborder-left-width: 0.0625em; // 1px\n\tpadding-left: 0.25em; // 4px + 1px border\n\n\t&.status {\n\t\tborder-left-width: 0.3125em; // 5px\n\t\tpadding-left: 0;\n\n\t\t&.information {\n\t\t\tborder-left-color: var(--info-fill);\n\t\t}\n\n\t\t&.success {\n\t\t\tborder-left-color: var(--success-fill);\n\t\t}\n\n\t\t&.warning {\n\t\t\tborder-left-color: var(--warning-fill);\n\t\t}\n\n\t\t&.error {\n\t\t\tborder-left-color: var(--error-fill);\n\t\t}\n\t}\n}\n\n.state {\n\t&.information {\n\t\tcolor: var(--info-text);\n\n\t\tfill: var(--info-fill);\n\t\tstroke: var(--info-on-fill);\n\t}\n\n\t&.success {\n\t\tcolor: var(--success-text);\n\n\t\tfill: var(--success-fill);\n\t\tstroke: var(--success-on-fill);\n\t}\n\n\t&.warning {\n\t\tcolor: var(--warning-text);\n\n\t\tfill: var(--warning-fill);\n\t\tstroke: var(--warning-on-fill);\n\t\tstroke-width: 2px;\n\t}\n\n\t&.error {\n\t\tcolor: var(--error-text);\n\n\t\tfill: var(--error-fill);\n\t\tstroke: var(--error-on-fill);\n\t}\n}\n","import { State } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CircleAlertIcon, CircleCheckIcon, CircleXIcon, InfoIcon } from \"lucide-react\";\n\nimport styles from \"./State.module.scss\";\n\ninterface StateIconProps {\n\tstate: State;\n\ttext: string;\n\tclassName?: string;\n}\n\nexport function StateIcon({ state = \"none\", text, className }: StateIconProps) {\n\tconst renderIcon = () => {\n\t\tswitch (state) {\n\t\t\tcase \"error\":\n\t\t\t\treturn <ErrorIcon />;\n\t\t\tcase \"warning\":\n\t\t\t\treturn <WarningIcon />;\n\t\t\tcase \"success\":\n\t\t\t\treturn <SuccessIcon />;\n\t\t\tcase \"information\":\n\t\t\t\treturn <InformationIcon />;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={cn(\"flexCenter gapSm\", className)}>\n\t\t\t{renderIcon()}\n\t\t\t{text}\n\t\t</div>\n\t);\n}\n\ninterface RenderStateIconProps {\n\tstate?: State;\n}\n\nexport function RenderStateIcon({ state }: RenderStateIconProps) {\n\tswitch (state) {\n\t\tcase \"error\":\n\t\t\treturn <ErrorIcon />;\n\t\tcase \"warning\":\n\t\t\treturn <WarningIcon />;\n\t\tcase \"success\":\n\t\t\treturn <SuccessIcon />;\n\t\tcase \"information\":\n\t\t\treturn <InformationIcon />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function ErrorIcon() {\n\treturn <CircleXIcon className={cn(styles.state, styles.error)} />;\n}\nexport function WarningIcon() {\n\treturn <CircleAlertIcon className={cn(styles.state, styles.warning)} />;\n}\nexport function SuccessIcon() {\n\treturn <CircleCheckIcon className={cn(styles.state, styles.success)} />;\n}\nexport function InformationIcon() {\n\treturn <InfoIcon className={cn(styles.state, styles.information)} />;\n}\n","import React from \"react\";\n\nimport { State } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { PolymorphicComponent, PolymorphicComponentBaseProps } from \"../polymorphic\";\n\nimport styles from \"./State.module.scss\";\n\ntype StateWrapperOwnProps<E extends React.ElementType = React.ElementType> = PolymorphicComponentBaseProps<E> & {\n\tstate?: State;\n\tclassName?: string;\n};\n\ntype StateWrapperProps<E extends React.ElementType> = StateWrapperOwnProps<E> &\n\tOmit<React.ComponentPropsWithRef<E>, keyof StateWrapperOwnProps>;\n\nexport function StateWrapper<E extends React.ElementType>({ as, state, className, ...props }: StateWrapperProps<E>) {\n\tconst status = state?.toLowerCase() ?? \"none\";\n\tconst statusClass = styles[status as keyof typeof styles];\n\tconst isStatused = status && status !== \"none\";\n\n\tconst Component = as || \"div\";\n\n\treturn (\n\t\t<PolymorphicComponent\n\t\t\tas={Component as React.ElementType}\n\t\t\tclassName={cn(styles.stateWrapper, isStatused && styles.status, statusClass, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { o as e } from "./flex-DtXK7OM4.js";
2
- import { n as t } from "./button-D7GAU2Wa.js";
3
- import { r as n } from "./grid-dI94AAbi.js";
4
- import { c as r } from "./misc-CGQOXXCy.js";
1
+ import { o as e } from "./flex-D86M_h-0.js";
2
+ import { n as t } from "./button-DudCl375.js";
3
+ import { r as n } from "./grid-CFuzBigM.js";
4
+ import { c as r } from "./misc-Cm_LDrUD.js";
5
5
  import { cn as i } from "@ryuzaki13/react-foundation-lib/utils";
6
6
  import { X as a } from "lucide-react";
7
7
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
@@ -45,30 +45,39 @@ var C = {
45
45
  openModal: () => {},
46
46
  closeModal: () => {},
47
47
  isTopModal: () => !1
48
- }), O = () => d(D), k = ({ children: e, className: t }) => /* @__PURE__ */ o("div", {
49
- className: i("surface2 paddingMd borderBottom", t),
50
- children: e
51
- });
52
- k.displayName = "Modal.Toolbar";
53
- var A = ({ children: e, className: t, scrollable: n }) => /* @__PURE__ */ o("div", {
54
- className: i("paddingMd h100 overflowHidden", t),
55
- children: n ? /* @__PURE__ */ o(r, {
56
- className: "h100",
48
+ }), O = () => d(D);
49
+ //#endregion
50
+ //#region src/modal/Modal.tsx
51
+ function k({ children: e, className: t }) {
52
+ return /* @__PURE__ */ o("div", {
53
+ className: i("surface2 paddingMd borderBottom", t),
57
54
  children: e
58
- }) : e
59
- });
55
+ });
56
+ }
57
+ k.displayName = "Modal.Toolbar";
58
+ function A({ children: e, className: t, scrollable: n }) {
59
+ return /* @__PURE__ */ o("div", {
60
+ className: i("paddingMd h100 overflowHidden", t),
61
+ children: n ? /* @__PURE__ */ o(r, {
62
+ className: "h100",
63
+ children: e
64
+ }) : e
65
+ });
66
+ }
60
67
  A.displayName = "Modal.Content";
61
- var j = ({ children: t, className: n }) => /* @__PURE__ */ o("div", {
62
- className: i("surface2 borderTop paddingMd", n),
63
- children: /* @__PURE__ */ o(e, {
64
- gap: "sm",
65
- align: "center",
66
- justify: "end",
67
- children: t
68
- })
69
- });
68
+ function j({ children: t, className: n }) {
69
+ return /* @__PURE__ */ o("div", {
70
+ className: i("surface2 borderTop paddingMd", n),
71
+ children: /* @__PURE__ */ o(e, {
72
+ gap: "sm",
73
+ align: "center",
74
+ justify: "end",
75
+ children: t
76
+ })
77
+ });
78
+ }
70
79
  j.displayName = "Modal.Footer";
71
- var M = ({ isOpen: e, title: r, size: l = "sm", height: u, onClose: d, children: h }) => {
80
+ function M({ isOpen: e, title: r, size: l = "sm", height: u, onClose: d, children: h }) {
72
81
  let D = p(), M = p(), { modals: N, openModal: P, closeModal: F, isTopModal: I } = O(), L = S(), R = m(null), z = m(0), B = { "--modal-height": u }, V = e && (N.length === 0 || I(D));
73
82
  f(() => {
74
83
  e && (R.current = document.activeElement instanceof HTMLElement ? document.activeElement : null);
@@ -154,7 +163,7 @@ var M = ({ isOpen: e, title: r, size: l = "sm", height: u, onClose: d, children:
154
163
  })]
155
164
  }) : null
156
165
  }), W);
157
- };
166
+ }
158
167
  //#endregion
159
168
  //#region src/modal/ModalManagerProvider.tsx
160
169
  function N({ children: e, compensateScrollbar: t = !1 }) {
@@ -192,4 +201,4 @@ function N({ children: e, compensateScrollbar: t = !1 }) {
192
201
  //#endregion
193
202
  export { k as a, j as i, M as n, D as o, A as r, O as s, N as t };
194
203
 
195
- //# sourceMappingURL=modal-febBsMyR.js.map
204
+ //# sourceMappingURL=modal-Dz5TzkTB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-Dz5TzkTB.js","names":[],"sources":["../../src/modal/Modal.module.scss","../../src/modal/modalMotion.ts","../../src/modal/useModalManager.ts","../../src/modal/Modal.tsx","../../src/modal/ModalManagerProvider.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.modal {\n\t--modal-border-radius: 0;\n\n\tdisplay: grid;\n\tgrid-auto-rows: auto 1fr;\n\tgrid-area: 1 / 1;\n\tz-index: var(--z-modal);\n\n\tborder: var(--border);\n\tborder-radius: var(--modal-border-radius);\n\tbackground-color: var(--surface-1);\n\tbox-shadow: var(--shadow-lg);\n\n\t&:not(:last-child) {\n\t\tpointer-events: none;\n\t\tfilter: grayscale(0.5) opacity(0.75);\n\t\t// opacity: 0.5;\n\t}\n\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: none;\n\tmax-height: none;\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbackground-color: var(--surface-2);\n\tborder-top-left-radius: var(--modal-border-radius);\n\tborder-top-right-radius: var(--modal-border-radius);\n}\n\n.headerText {\n\tmargin: 0;\n\tpadding-inline: var(--space-md);\n\tfont-size: var(--font-size-md);\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.headerButton {\n\tmargin-block: var(--space-xs);\n\tmargin-inline: var(--space-sm);\n\tflex: 0;\n}\n\n.body {\n\toverflow: hidden;\n\tborder-bottom-left-radius: var(--modal-border-radius);\n\tborder-bottom-right-radius: var(--modal-border-radius);\n}\n\n@include mobile-above {\n\t.modal {\n\t\theight: var(--modal-height, fit-content);\n\t\tmax-height: calc(100dvh - var(--space-lg));\n\t\t--modal-border-radius: var(--radius-md);\n\n\t\t&.sm {\n\t\t\tmax-width: min(30em, 93dvw);\n\t\t}\n\n\t\t&.md {\n\t\t\tmax-width: min(50em, 93dvw);\n\t\t}\n\n\t\t&.lg {\n\t\t\tmax-width: min(70em, 93dvw);\n\t\t}\n\n\t\t&.xl {\n\t\t\tmax-width: min(80em, 93dvw);\n\t\t}\n\n\t\t&.xxl {\n\t\t\twidth: 95dvw;\n\t\t\theight: 92dvh;\n\t\t\tmax-width: none;\n\t\t\tmax-height: none;\n\t\t}\n\n\t\t&.inside {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tmax-width: none;\n\t\t\tmax-height: none;\n\n\t\t\t--modal-border-radius: 0;\n\t\t}\n\t}\n}\n","import { type Transition, type Variants } from \"motion/react\";\n\n/**\n * Варианты задают единый спокойный переход для появления и удаления modal-панели.\n * Конфигурация приватна для primitive: потребители управляют только состоянием `isOpen`.\n */\nexport const modalMotionVariants = {\n\thidden: {\n\t\topacity: 0,\n\t\tscale: 0.96,\n\t\ty: 12\n\t},\n\tvisible: {\n\t\topacity: 1,\n\t\tscale: 1,\n\t\ty: 0\n\t}\n} satisfies Variants;\n\n/** Переход сохраняет отзывчивое открытие и дает exit-анимации завершиться до удаления portal content. */\nexport const modalMotionTransition = {\n\tduration: 0.18,\n\tease: [0.22, 1, 0.36, 1]\n} satisfies Transition;\n\n/** При системном reduced-motion остается только мгновенная смена видимости без пространственного движения. */\nexport const reducedModalMotionTransition = {\n\tduration: 0\n} satisfies Transition;\n","import { createContext, useContext } from \"react\";\n\nexport const ModalManagerContext = createContext<{\n\tmodals: string[];\n\topenModal: (id: string) => void;\n\tcloseModal: (id: string) => void;\n\tisTopModal: (id: string) => boolean;\n}>({\n\tmodals: [],\n\topenModal: () => {},\n\tcloseModal: () => {},\n\tisTopModal: () => false\n});\n\nexport const useModalManager = () => useContext(ModalManagerContext);\n","import React, { Children, useEffect, useId, useRef } from \"react\";\n\nimport { getOrCreatePortalRoot, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { X } from \"lucide-react\";\nimport { AnimatePresence, motion, useReducedMotion } from \"motion/react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Button } from \"../button\";\nimport { FlexContainer } from \"../flex\";\nimport { GridContainer } from \"../grid\";\nimport { Scrollable } from \"../misc\";\n\nimport styles from \"./Modal.module.scss\";\nimport { modalMotionTransition, modalMotionVariants, reducedModalMotionTransition } from \"./modalMotion\";\nimport { ModalSize } from \"./types\";\nimport { useModalManager } from \"./useModalManager\";\n\n// Подкомпоненты\nexport interface ModalCompositionProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function ModalToolbar({ children, className }: ModalCompositionProps) {\n\treturn <div className={cn(\"surface2 paddingMd borderBottom\", className)}>{children}</div>;\n}\nModalToolbar.displayName = \"Modal.Toolbar\";\n\nexport function ModalContent({ children, className, scrollable }: ModalCompositionProps & { scrollable?: boolean }) {\n\treturn (\n\t\t<div className={cn(\"paddingMd h100 overflowHidden\", className)}>\n\t\t\t{scrollable ? <Scrollable className=\"h100\">{children}</Scrollable> : children}\n\t\t</div>\n\t);\n}\nModalContent.displayName = \"Modal.Content\";\n\nexport function ModalFooter({ children, className }: ModalCompositionProps) {\n\treturn (\n\t\t<div className={cn(\"surface2 borderTop paddingMd\", className)}>\n\t\t\t<FlexContainer gap=\"sm\" align=\"center\" justify=\"end\">\n\t\t\t\t{children}\n\t\t\t</FlexContainer>\n\t\t</div>\n\t);\n}\nModalFooter.displayName = \"Modal.Footer\";\n\ntype ToolbarElement = React.ReactElement<ModalCompositionProps, typeof ModalToolbar>;\ntype ContentElement = React.ReactElement<ModalCompositionProps, typeof ModalContent>;\ntype FooterElement = React.ReactElement<ModalCompositionProps, typeof ModalFooter>;\n\ntype ModalChildren =\n\t[ToolbarElement, ContentElement, FooterElement] | [ToolbarElement, ContentElement] | [ContentElement, FooterElement] | ContentElement;\n\ntype ModalStyle = React.CSSProperties & {\n\t\"--modal-height\"?: string;\n};\n\nexport interface ModalProps {\n\t/** Открыто ли модальное окно */\n\tisOpen?: boolean;\n\t/** Заголовок */\n\ttitle?: string;\n\t/** Размер модального окна */\n\tsize?: keyof typeof ModalSize;\n\t/** Явная высота модального окна выше мобильного breakpoint */\n\theight?: string;\n\t/** Обработчик закрытия */\n\tonClose: () => void;\n\tchildren: ModalChildren;\n}\n\nexport function Modal({ isOpen, title, size = \"sm\", height, onClose, children }: ModalProps) {\n\tconst modalId = useId();\n\tconst titleId = useId();\n\n\tconst { modals, openModal, closeModal, isTopModal } = useModalManager();\n\tconst shouldReduceMotion = useReducedMotion();\n\tconst restoreFocusTargetRef = useRef<HTMLElement | null>(null);\n\tconst restoreFocusAnimationFrameRef = useRef(0);\n\tconst modalStyle: ModalStyle = { \"--modal-height\": height };\n\n\t/**\n\t * Если provider менеджера не подключен, считаем одиночную модалку активной,\n\t * иначе логика Escape/focus trap никогда не включится.\n\t */\n\tconst isActive = isOpen && (modals.length === 0 || isTopModal(modalId));\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\trestoreFocusTargetRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n\t\t}\n\t}, [isOpen]);\n\n\tconst modalRef = useOverlayFocus<HTMLDivElement>({ active: isOpen || false, trapFocus: true, restoreFocus: false });\n\n\tuseEscapeDismiss({\n\t\tactive: isActive || false,\n\t\tonDismiss: onClose,\n\t\tcontainerRef: modalRef\n\t});\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\topenModal(modalId);\n\t\t}\n\t}, [isOpen, modalId, openModal]);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame(restoreFocusAnimationFrameRef.current);\n\t\t\tcloseModal(modalId);\n\t\t};\n\t}, [closeModal, modalId]);\n\n\tfunction handleExitComplete() {\n\t\tcloseModal(modalId);\n\t\tconst restoreFocusTarget = restoreFocusTargetRef.current;\n\n\t\t/**\n\t\t * Менеджер снимает inert в passive effect после обновления стека.\n\t\t * Следующий animation frame гарантирует, что trigger снова доступен для фокуса.\n\t\t */\n\t\trestoreFocusAnimationFrameRef.current = window.requestAnimationFrame(() => {\n\t\t\tif (restoreFocusTarget?.isConnected) {\n\t\t\t\trestoreFocusTarget.focus();\n\t\t\t}\n\t\t\trestoreFocusTargetRef.current = null;\n\t\t});\n\t}\n\n\tconst modalRoot = getOrCreatePortalRoot(\"modal-root\");\n\n\tif (!modalRoot) {\n\t\treturn null;\n\t}\n\n\tlet toolbar: React.ReactNode = null;\n\tlet content: React.ReactNode = null;\n\tlet footer: React.ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarElement | ContentElement | FooterElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ModalToolbar.displayName:\n\t\t\t\tif (toolbar) throw new Error(\"Modal: duplicate <Toolbar> found\");\n\t\t\t\ttoolbar = child; //.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalFooter.displayName:\n\t\t\t\tif (footer) throw new Error(\"Modal: duplicate <Footer> found\");\n\t\t\t\tfooter = child; //props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalContent.displayName:\n\t\t\t\tif (content) throw new Error(\"Modal: duplicate <Content> found\");\n\t\t\t\tcontent = child; //.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t<AnimatePresence onExitComplete={handleExitComplete}>\n\t\t\t{isOpen ? (\n\t\t\t\t<motion.div\n\t\t\t\t\tref={modalRef}\n\t\t\t\t\tclassName={cn(styles.modal, styles[size])}\n\t\t\t\t\tstyle={modalStyle}\n\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\taria-labelledby={titleId}\n\t\t\t\t\taria-describedby={`${titleId}-content`}\n\t\t\t\t\tinitial=\"hidden\"\n\t\t\t\t\tanimate=\"visible\"\n\t\t\t\t\texit=\"hidden\"\n\t\t\t\t\tvariants={modalMotionVariants}\n\t\t\t\t\ttransition={shouldReduceMotion ? reducedModalMotionTransition : modalMotionTransition}>\n\t\t\t\t\t<div className={cn(styles.header, toolbar ? \"\" : \"borderBottom\")}>\n\t\t\t\t\t\t<h3 className={styles.headerText} id={titleId}>\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={<X />}\n\t\t\t\t\t\t\tclassName={styles.headerButton}\n\t\t\t\t\t\t\tvariant={\"ghost\"}\n\t\t\t\t\t\t\taria-label={\"Закрыть модальное окно\"}\n\t\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<GridContainer\n\t\t\t\t\t\tid={`${titleId}-content`}\n\t\t\t\t\t\ttemplateRows={`${toolbar ? \"auto\" : \"\"} 1fr ${footer ? \"auto\" : \"\"}`.trim()}\n\t\t\t\t\t\t// gap=\"md\"\n\t\t\t\t\t\tclassName={styles.body}>\n\t\t\t\t\t\t{toolbar}\n\t\t\t\t\t\t{content}\n\t\t\t\t\t\t{footer}\n\t\t\t\t\t</GridContainer>\n\t\t\t\t</motion.div>\n\t\t\t) : null}\n\t\t</AnimatePresence>,\n\t\tmodalRoot\n\t);\n}\n","// ModalManagerContext.tsx\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { ModalManagerContext } from \"./useModalManager\";\n\nexport interface ModalManagerProviderProps {\n\tchildren: React.ReactNode;\n\t/** Компенсирует исчезновение скроллбара правым padding у body. */\n\tcompensateScrollbar?: boolean;\n}\n\n/**\n * Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.\n */\nexport function ModalManagerProvider({ children, compensateScrollbar = false }: ModalManagerProviderProps) {\n\tconst [modals, setModals] = useState<string[]>([]);\n\tconst prevModalsLength = useRef(0);\n\tconst scrollbarWidth = useRef(0);\n\tconst bodyPaddingRight = useRef(\"\");\n\tconst isScrollbarCompensated = useRef(false);\n\n\tconst openModal = useCallback((id: string) => {\n\t\tsetModals((prev) => [...prev, id]);\n\t}, []);\n\n\tconst closeModal = useCallback((id: string) => {\n\t\tsetModals((prev) => prev.filter((mid) => mid !== id));\n\t}, []);\n\n\tconst isTopModal = useCallback(\n\t\t(id: string) => {\n\t\t\treturn modals[modals.length - 1] === id;\n\t\t},\n\t\t[modals]\n\t);\n\n\tuseEffect(() => {\n\t\tconst wasEmpty = prevModalsLength.current === 0;\n\n\t\tif (wasEmpty && modals.length > 0) {\n\t\t\t// первая модалка открыта — ставим стили\n\t\t\tconst scrollY = window.scrollY;\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tscrollbarWidth.current = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n\t\t\tbodyPaddingRight.current = document.body.style.paddingRight;\n\n\t\t\tdocument.body.style.position = \"fixed\";\n\t\t\tdocument.body.style.top = `-${scrollY}px`;\n\t\t\tdocument.body.style.width = \"100%\";\n\n\t\t\tif (compensateScrollbar) {\n\t\t\t\tdocument.body.style.paddingRight = `${scrollbarWidth.current}px`;\n\t\t\t\tisScrollbarCompensated.current = true;\n\t\t\t}\n\n\t\t\tappRoot?.setAttribute(\"inert\", \"true\");\n\n\t\t\tprevModalsLength.current = modals.length;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length > 0 && compensateScrollbar !== isScrollbarCompensated.current) {\n\t\t\tdocument.body.style.paddingRight = compensateScrollbar ? `${scrollbarWidth.current}px` : bodyPaddingRight.current;\n\t\t\tisScrollbarCompensated.current = compensateScrollbar;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length === 0) {\n\t\t\t// последняя модалка закрыта — снимаем стили\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tconst scrollY = parseInt(document.body.style.top || \"0\") * -1;\n\n\t\t\tdocument.body.style.position = \"\";\n\t\t\tdocument.body.style.top = \"\";\n\t\t\tdocument.body.style.width = \"\";\n\n\t\t\tif (isScrollbarCompensated.current) {\n\t\t\t\tdocument.body.style.paddingRight = bodyPaddingRight.current;\n\t\t\t\tisScrollbarCompensated.current = false;\n\t\t\t}\n\n\t\t\tappRoot?.removeAttribute(\"inert\");\n\n\t\t\twindow.scrollTo({ top: scrollY, left: 0, behavior: \"instant\" });\n\t\t}\n\n\t\tprevModalsLength.current = modals.length;\n\t}, [compensateScrollbar, modals.length]);\n\n\treturn <ModalManagerContext.Provider value={{ modals, openModal, closeModal, isTopModal }}>{children}</ModalManagerContext.Provider>;\n}\n"],"mappings":"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"}