@ryuzaki13/react-foundation-ui 3.4.3 → 3.6.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 (659) hide show
  1. package/dist/badge/index.js +65 -2
  2. package/dist/badge/index.js.map +1 -0
  3. package/dist/barcode-scanner/index.js +18 -18
  4. package/dist/base-table/index.js +2 -2
  5. package/dist/button/Button.d.ts +4 -2
  6. package/dist/button/Button.d.ts.map +1 -1
  7. package/dist/button/index.js +1 -1
  8. package/dist/check-box/index.js +1 -1
  9. package/dist/chunks/{CalendarView-Dm55k0bN.js → CalendarView-BCXVjLFz.js} +102 -92
  10. package/dist/chunks/CalendarView-BCXVjLFz.js.map +1 -0
  11. package/dist/chunks/{ImageViewerRuntime-HGBWp9NM.js → ImageViewerRuntime-DZpgxzF1.js} +25 -25
  12. package/dist/chunks/{ImageViewerRuntime-HGBWp9NM.js.map → ImageViewerRuntime-DZpgxzF1.js.map} +1 -1
  13. package/dist/chunks/OptionContentContainer-CWHlfm5Z.js +14 -0
  14. package/dist/chunks/OptionContentContainer-CWHlfm5Z.js.map +1 -0
  15. package/dist/chunks/{TextEditorLexicalClient-C8nSoz85.js → TextEditorLexicalClient-DrSVnvOe.js} +355 -355
  16. package/dist/chunks/{TextEditorLexicalClient-C8nSoz85.js.map → TextEditorLexicalClient-DrSVnvOe.js.map} +1 -1
  17. package/dist/chunks/{base-table-BWvKfI2W.js → base-table-BBp5WMDM.js} +138 -138
  18. package/dist/chunks/{base-table-BWvKfI2W.js.map → base-table-BBp5WMDM.js.map} +1 -1
  19. package/dist/chunks/button-DudCl375.js +75 -0
  20. package/dist/chunks/button-DudCl375.js.map +1 -0
  21. package/dist/chunks/{check-box-CZyhzmR0.js → check-box-D_Y6iIWv.js} +19 -19
  22. package/dist/chunks/{check-box-CZyhzmR0.js.map → check-box-D_Y6iIWv.js.map} +1 -1
  23. package/dist/chunks/context-menu-CrSXJxQL.js +621 -0
  24. package/dist/chunks/context-menu-CrSXJxQL.js.map +1 -0
  25. package/dist/chunks/{date-input-D7aBsPJc.js → date-input-CzCDou4s.js} +72 -69
  26. package/dist/chunks/{date-input-D7aBsPJc.js.map → date-input-CzCDou4s.js.map} +1 -1
  27. package/dist/chunks/{date-range-preset-select-BLnY47cv.js → date-range-preset-select-CyzGMvVp.js} +6 -6
  28. package/dist/chunks/{date-range-preset-select-BLnY47cv.js.map → date-range-preset-select-CyzGMvVp.js.map} +1 -1
  29. package/dist/chunks/{dialog-1Z1zCNCe.js → dialog-BcQGVNbu.js} +13 -13
  30. package/dist/chunks/{dialog-1Z1zCNCe.js.map → dialog-BcQGVNbu.js.map} +1 -1
  31. package/dist/chunks/flex-D86M_h-0.js +222 -0
  32. package/dist/chunks/flex-D86M_h-0.js.map +1 -0
  33. package/dist/chunks/{floating-arrow-DPKwJfww.js → floating-arrow-B_iSbzUZ.js} +20 -19
  34. package/dist/chunks/{floating-arrow-DPKwJfww.js.map → floating-arrow-B_iSbzUZ.js.map} +1 -1
  35. package/dist/chunks/{grid-dI94AAbi.js → grid-CFuzBigM.js} +77 -68
  36. package/dist/chunks/grid-CFuzBigM.js.map +1 -0
  37. package/dist/chunks/{input-DSPKgiCK.js → input-CuRK9Vbz.js} +78 -78
  38. package/dist/chunks/{input-DSPKgiCK.js.map → input-CuRK9Vbz.js.map} +1 -1
  39. package/dist/chunks/{input-files-tIS17-zX.js → input-files-B8j6Pb_M.js} +31 -31
  40. package/dist/chunks/{input-files-tIS17-zX.js.map → input-files-B8j6Pb_M.js.map} +1 -1
  41. package/dist/chunks/misc-Cm_LDrUD.js +332 -0
  42. package/dist/chunks/misc-Cm_LDrUD.js.map +1 -0
  43. package/dist/chunks/{modal-dplfAaER.js → modal-Dz5TzkTB.js} +79 -70
  44. package/dist/chunks/modal-Dz5TzkTB.js.map +1 -0
  45. package/dist/chunks/picker-SJXnHwsj.js +462 -0
  46. package/dist/chunks/picker-SJXnHwsj.js.map +1 -0
  47. package/dist/chunks/popover-BJH-yHvb.js +263 -0
  48. package/dist/chunks/popover-BJH-yHvb.js.map +1 -0
  49. package/dist/chunks/radio-group-CW-K1n9c.js +125 -0
  50. package/dist/chunks/{radio-group-sSnlYjAX.js.map → radio-group-CW-K1n9c.js.map} +1 -1
  51. package/dist/chunks/select--oIrv7SC.js +357 -0
  52. package/dist/chunks/select--oIrv7SC.js.map +1 -0
  53. package/dist/chunks/separator-CHpBud1e.js +18 -0
  54. package/dist/chunks/separator-CHpBud1e.js.map +1 -0
  55. package/dist/chunks/{sortable-BKIwlqhI.js → sortable-BujAJgFa.js} +42 -40
  56. package/dist/chunks/{sortable-BKIwlqhI.js.map → sortable-BujAJgFa.js.map} +1 -1
  57. package/dist/chunks/{table-DxoSOvQK.js → table-BDY9Zw--.js} +18 -18
  58. package/dist/chunks/{table-DxoSOvQK.js.map → table-BDY9Zw--.js.map} +1 -1
  59. package/dist/chunks/{table-column-interactions-DzEvVuXe.js → table-column-interactions-Do8LFtiv.js} +20 -20
  60. package/dist/chunks/{table-column-interactions-DzEvVuXe.js.map → table-column-interactions-Do8LFtiv.js.map} +1 -1
  61. package/dist/chunks/{types-D9Wj9wrg.js → types-CxXyru6U.js} +21 -21
  62. package/dist/chunks/{types-D9Wj9wrg.js.map → types-CxXyru6U.js.map} +1 -1
  63. package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -1
  64. package/dist/chunks/{useODataSelectBase-DR4PrY1j.js → useODataSelectBase-DwR4Lfv-.js} +5 -5
  65. package/dist/chunks/{useODataSelectBase-DR4PrY1j.js.map → useODataSelectBase-DwR4Lfv-.js.map} +1 -1
  66. package/dist/chunks/{wheel-picker-FS58cRsQ.js → wheel-picker-DUHGy7wE.js} +23 -23
  67. package/dist/chunks/{wheel-picker-FS58cRsQ.js.map → wheel-picker-DUHGy7wE.js.map} +1 -1
  68. package/dist/context-menu/components/ContextMenu.d.ts +16 -9
  69. package/dist/context-menu/components/ContextMenu.d.ts.map +1 -1
  70. package/dist/context-menu/components/ContextMenuTrigger.d.ts +6 -4
  71. package/dist/context-menu/components/ContextMenuTrigger.d.ts.map +1 -1
  72. package/dist/context-menu/components/DropdownMenu.d.ts +12 -7
  73. package/dist/context-menu/components/DropdownMenu.d.ts.map +1 -1
  74. package/dist/context-menu/components/DropdownMenuTrigger.d.ts +6 -4
  75. package/dist/context-menu/components/DropdownMenuTrigger.d.ts.map +1 -1
  76. package/dist/context-menu/components/MenuContent.d.ts +6 -4
  77. package/dist/context-menu/components/MenuContent.d.ts.map +1 -1
  78. package/dist/context-menu/components/MenuContext.d.ts +12 -7
  79. package/dist/context-menu/components/MenuContext.d.ts.map +1 -1
  80. package/dist/context-menu/components/MenuGroupLabel.d.ts +1 -1
  81. package/dist/context-menu/components/MenuGroupLabel.d.ts.map +1 -1
  82. package/dist/context-menu/components/MenuItem.d.ts.map +1 -1
  83. package/dist/context-menu/components/MenuRoot.d.ts +5 -5
  84. package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
  85. package/dist/context-menu/components/MenuSeparator.d.ts +1 -2
  86. package/dist/context-menu/components/MenuSeparator.d.ts.map +1 -1
  87. package/dist/context-menu/components/RadialMenuContent.d.ts +6 -4
  88. package/dist/context-menu/components/RadialMenuContent.d.ts.map +1 -1
  89. package/dist/context-menu/components/RadialMenuItem.d.ts +1 -1
  90. package/dist/context-menu/components/RadialMenuItem.d.ts.map +1 -1
  91. package/dist/context-menu/index.js +1 -1
  92. package/dist/date-input/index.js +2 -2
  93. package/dist/date-input/ui/CalendarDayView.d.ts +1 -1
  94. package/dist/date-input/ui/CalendarDayView.d.ts.map +1 -1
  95. package/dist/date-input/ui/CalendarMonthView.d.ts +1 -1
  96. package/dist/date-input/ui/CalendarMonthView.d.ts.map +1 -1
  97. package/dist/date-input/ui/CalendarView.d.ts.map +1 -1
  98. package/dist/date-input/ui/CalendarYearView.d.ts +1 -1
  99. package/dist/date-input/ui/CalendarYearView.d.ts.map +1 -1
  100. package/dist/date-input/ui/DateInput.d.ts.map +1 -1
  101. package/dist/date-range-preset-select/index.js +1 -1
  102. package/dist/date-time-input/index.js +128 -125
  103. package/dist/date-time-input/index.js.map +1 -1
  104. package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
  105. package/dist/detail/Detail.d.ts +6 -1
  106. package/dist/detail/Detail.d.ts.map +1 -1
  107. package/dist/detail/index.js +23 -23
  108. package/dist/detail/index.js.map +1 -1
  109. package/dist/dialog/index.js +1 -1
  110. package/dist/disclosure/index.js +9 -9
  111. package/dist/drop-zone/index.js +21 -21
  112. package/dist/errors/BadRequestPage.d.ts +1 -1
  113. package/dist/errors/BadRequestPage.d.ts.map +1 -1
  114. package/dist/errors/ErrorDisplay.d.ts +2 -2
  115. package/dist/errors/ErrorDisplay.d.ts.map +1 -1
  116. package/dist/errors/ErrorExplosion.d.ts +1 -2
  117. package/dist/errors/ErrorExplosion.d.ts.map +1 -1
  118. package/dist/errors/ForbiddenPage.d.ts +1 -1
  119. package/dist/errors/ForbiddenPage.d.ts.map +1 -1
  120. package/dist/errors/NotFoundPage.d.ts +1 -1
  121. package/dist/errors/NotFoundPage.d.ts.map +1 -1
  122. package/dist/errors/PageError.d.ts +1 -2
  123. package/dist/errors/PageError.d.ts.map +1 -1
  124. package/dist/errors/UnauthorizedPage.d.ts +1 -1
  125. package/dist/errors/UnauthorizedPage.d.ts.map +1 -1
  126. package/dist/errors/ViewNotChanged.d.ts +1 -2
  127. package/dist/errors/ViewNotChanged.d.ts.map +1 -1
  128. package/dist/errors/index.js +110 -80
  129. package/dist/errors/index.js.map +1 -1
  130. package/dist/expandable-action-panel/index.js +24 -24
  131. package/dist/flex/Flex.d.ts +6 -3
  132. package/dist/flex/Flex.d.ts.map +1 -1
  133. package/dist/flex/FlexCenter.d.ts +1 -1
  134. package/dist/flex/FlexCenter.d.ts.map +1 -1
  135. package/dist/flex/FlexContainer.d.ts +7 -1
  136. package/dist/flex/FlexContainer.d.ts.map +1 -1
  137. package/dist/flex/FlexItem.d.ts +7 -1
  138. package/dist/flex/FlexItem.d.ts.map +1 -1
  139. package/dist/flex/FlexSpacer.d.ts +7 -1
  140. package/dist/flex/FlexSpacer.d.ts.map +1 -1
  141. package/dist/flex/PredefinedFlex.d.ts +7 -1
  142. package/dist/flex/PredefinedFlex.d.ts.map +1 -1
  143. package/dist/flex/index.js +1 -1
  144. package/dist/flex/useFlexClasses.d.ts +1 -1
  145. package/dist/floating-arrow/FloatingArrow.d.ts +4 -1
  146. package/dist/floating-arrow/FloatingArrow.d.ts.map +1 -1
  147. package/dist/floating-arrow/index.js +1 -1
  148. package/dist/fullscreen-portal/index.js +8 -8
  149. package/dist/grid/Grid.d.ts +4 -2
  150. package/dist/grid/Grid.d.ts.map +1 -1
  151. package/dist/grid/GridContainer.d.ts +7 -1
  152. package/dist/grid/GridContainer.d.ts.map +1 -1
  153. package/dist/grid/GridItem.d.ts +7 -1
  154. package/dist/grid/GridItem.d.ts.map +1 -1
  155. package/dist/grid/index.js +1 -1
  156. package/dist/image/index.js +120 -120
  157. package/dist/input/index.js +1 -1
  158. package/dist/input-date-time/index.js +55 -55
  159. package/dist/input-file/index.js +16 -16
  160. package/dist/input-files/index.js +1 -1
  161. package/dist/input-image/index.js +17 -17
  162. package/dist/input-search/index.js +30 -2
  163. package/dist/input-search/index.js.map +1 -0
  164. package/dist/layout-picker/index.js +95 -97
  165. package/dist/layout-picker/index.js.map +1 -1
  166. package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
  167. package/dist/list/List.d.ts +9 -9
  168. package/dist/list/List.d.ts.map +1 -1
  169. package/dist/list/index.js +51 -44
  170. package/dist/list/index.js.map +1 -1
  171. package/dist/listbox/Listbox.d.ts.map +1 -1
  172. package/dist/listbox/index.js +33 -39
  173. package/dist/listbox/index.js.map +1 -1
  174. package/dist/misc/CopyTextWrapper.d.ts +1 -1
  175. package/dist/misc/CopyTextWrapper.d.ts.map +1 -1
  176. package/dist/misc/OneStepScroller.d.ts +1 -1
  177. package/dist/misc/OneStepScroller.d.ts.map +1 -1
  178. package/dist/misc/Scrollable.d.ts +9 -7
  179. package/dist/misc/Scrollable.d.ts.map +1 -1
  180. package/dist/misc/SkeletonLine.d.ts +1 -1
  181. package/dist/misc/SkeletonLine.d.ts.map +1 -1
  182. package/dist/misc/StateIcon.d.ts +6 -7
  183. package/dist/misc/StateIcon.d.ts.map +1 -1
  184. package/dist/misc/index.d.ts +1 -0
  185. package/dist/misc/index.d.ts.map +1 -1
  186. package/dist/misc/index.js +1 -1
  187. package/dist/modal/Modal.d.ts +14 -5
  188. package/dist/modal/Modal.d.ts.map +1 -1
  189. package/dist/modal/index.js +1 -1
  190. package/dist/multi-select/index.js +481 -2
  191. package/dist/multi-select/index.js.map +1 -0
  192. package/dist/multi-select/ui/MultiSelect.d.ts +7 -2
  193. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  194. package/dist/multi-select/ui/ODataMultiSelect.d.ts +1 -2
  195. package/dist/multi-select/ui/ODataMultiSelect.d.ts.map +1 -1
  196. package/dist/notifications/index.js +46 -48
  197. package/dist/notifications/index.js.map +1 -1
  198. package/dist/option/Option.d.ts +3 -3
  199. package/dist/option/OptionContentContainer.d.ts +7 -0
  200. package/dist/option/OptionContentContainer.d.ts.map +1 -0
  201. package/dist/option/index.js +30 -30
  202. package/dist/option/index.js.map +1 -1
  203. package/dist/period-select/index.js +7 -7
  204. package/dist/picker/PickerOptions.d.ts +3 -1
  205. package/dist/picker/PickerOptions.d.ts.map +1 -1
  206. package/dist/picker/PickerPopup.d.ts +1 -1
  207. package/dist/picker/PickerPopup.d.ts.map +1 -1
  208. package/dist/picker/PickerTriggerActions.d.ts +7 -2
  209. package/dist/picker/PickerTriggerActions.d.ts.map +1 -1
  210. package/dist/picker/PickerTriggerInput.d.ts +7 -2
  211. package/dist/picker/PickerTriggerInput.d.ts.map +1 -1
  212. package/dist/picker/index.js +1 -1
  213. package/dist/polymorphic/PolymorphicComponent.d.ts +1 -1
  214. package/dist/polymorphic/PolymorphicComponent.d.ts.map +1 -1
  215. package/dist/polymorphic/index.js +3 -1
  216. package/dist/polymorphic/index.js.map +1 -1
  217. package/dist/popover/FloatingPopover.d.ts +1 -1
  218. package/dist/popover/FloatingPopover.d.ts.map +1 -1
  219. package/dist/popover/FloatingTooltip.d.ts +2 -2
  220. package/dist/popover/FloatingTooltip.d.ts.map +1 -1
  221. package/dist/popover/components/Popover.d.ts +11 -10
  222. package/dist/popover/components/Popover.d.ts.map +1 -1
  223. package/dist/popover/components/PopoverContent.d.ts +6 -4
  224. package/dist/popover/components/PopoverContent.d.ts.map +1 -1
  225. package/dist/popover/components/PopoverContext.d.ts +2 -1
  226. package/dist/popover/components/PopoverContext.d.ts.map +1 -1
  227. package/dist/popover/components/PopoverTrigger.d.ts +1 -1
  228. package/dist/popover/components/PopoverTrigger.d.ts.map +1 -1
  229. package/dist/popover/index.js +1 -1
  230. package/dist/preset-range-date-input/index.js +10 -10
  231. package/dist/preset-select/index.js +1 -1
  232. package/dist/radio-button/RadioButton.d.ts +1 -1
  233. package/dist/radio-button/RadioButton.d.ts.map +1 -1
  234. package/dist/radio-button/index.js +14 -11
  235. package/dist/radio-button/index.js.map +1 -1
  236. package/dist/radio-group/index.js +1 -1
  237. package/dist/select/ODataSelect.d.ts +1 -2
  238. package/dist/select/ODataSelect.d.ts.map +1 -1
  239. package/dist/select/Select.d.ts.map +1 -1
  240. package/dist/select/index.js +1 -1
  241. package/dist/separator/Separator.d.ts +1 -1
  242. package/dist/separator/Separator.d.ts.map +1 -1
  243. package/dist/separator/index.js +1 -1
  244. package/dist/simple-table/index.js +5 -5
  245. package/dist/slider/Slider.d.ts.map +1 -1
  246. package/dist/slider/SliderInput.d.ts.map +1 -1
  247. package/dist/slider/SliderPopoverToggle.d.ts +11 -0
  248. package/dist/slider/SliderPopoverToggle.d.ts.map +1 -0
  249. package/dist/slider/index.js +298 -277
  250. package/dist/slider/index.js.map +1 -1
  251. package/dist/sortable/Sortable.d.ts.map +1 -1
  252. package/dist/sortable/SortableDragHandle.d.ts +1 -1
  253. package/dist/sortable/SortableDragHandle.d.ts.map +1 -1
  254. package/dist/sortable/index.js +1 -1
  255. package/dist/splitter/index.js +55 -55
  256. package/dist/state-select/index.js +17 -17
  257. package/dist/styles.css +1 -1
  258. package/dist/switch/index.js +18 -18
  259. package/dist/table/index.js +1 -1
  260. package/dist/table-column-interactions/index.js +1 -1
  261. package/dist/table-editor/index.js +99 -99
  262. package/dist/table-sorting/index.js +13 -13
  263. package/dist/tabs/index.js +103 -104
  264. package/dist/tabs/index.js.map +1 -1
  265. package/dist/tabs/ui/TabsBox.d.ts +1 -1
  266. package/dist/tabs/ui/TabsBox.d.ts.map +1 -1
  267. package/dist/tabs/ui/TabsLayout.d.ts +11 -7
  268. package/dist/tabs/ui/TabsLayout.d.ts.map +1 -1
  269. package/dist/tabs/ui/TabsPanel.d.ts +3 -3
  270. package/dist/tabs/ui/TabsPanel.d.ts.map +1 -1
  271. package/dist/tabs/ui/TabsTabList.d.ts +2 -2
  272. package/dist/tabs/ui/TabsTabList.d.ts.map +1 -1
  273. package/dist/tag-input/index.js +58 -58
  274. package/dist/tag-input/index.js.map +1 -1
  275. package/dist/text/HighlightText.d.ts +2 -2
  276. package/dist/text/HighlightText.d.ts.map +1 -1
  277. package/dist/text/index.js +23 -18
  278. package/dist/text/index.js.map +1 -1
  279. package/dist/text-editor/index.js +3 -3
  280. package/dist/textarea/index.js +1 -1
  281. package/dist/three-scene/index.js +7 -7
  282. package/dist/toggle/index.js +20 -20
  283. package/dist/toolbar/Toolbar.d.ts +8 -2
  284. package/dist/toolbar/Toolbar.d.ts.map +1 -1
  285. package/dist/toolbar/index.js +21 -17
  286. package/dist/toolbar/index.js.map +1 -1
  287. package/dist/tree/index.js +24 -24
  288. package/dist/tree-select/TreeNodeContent.d.ts +3 -1
  289. package/dist/tree-select/TreeNodeContent.d.ts.map +1 -1
  290. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  291. package/dist/tree-select/index.js +469 -392
  292. package/dist/tree-select/index.js.map +1 -1
  293. package/dist/tree-table/index.js +33 -33
  294. package/dist/tree-table/index.js.map +1 -1
  295. package/dist/wheel-picker/index.js +1 -1
  296. package/package.json +1 -5
  297. package/storybook-static/assets/{Badge-BKRvorSi.js → Badge-r7lsdHne.js} +1 -1
  298. package/storybook-static/assets/{Badge.stories-19yFfupy.js → Badge.stories-P4qdQ7cm.js} +1 -1
  299. package/storybook-static/assets/{BadgeList-DMkfxply.js → BadgeList-8NyPAV2Q.js} +1 -1
  300. package/storybook-static/assets/{BarcodeScannerDialog.stories-DdnHxu5x.js → BarcodeScannerDialog.stories--TadwGdZ.js} +1 -1
  301. package/storybook-static/assets/{Button-Di-0Ionw.js → Button-BP0DDcNq.js} +1 -1
  302. package/storybook-static/assets/{Button-CoOZeR_z.js → Button-X3OT5zE7.js} +2 -2
  303. package/storybook-static/assets/{Button.stories-Bd1To5BN.js → Button.stories-CFiUr_xE.js} +1 -1
  304. package/storybook-static/assets/CalendarView-nWuZBE9T.js +1 -0
  305. package/storybook-static/assets/{CheckBox-DSmGYEML.js → CheckBox-BId2Zf_m.js} +1 -1
  306. package/storybook-static/assets/{CheckBox-DfRTTXg1.js → CheckBox-Bde9tud-.js} +1 -1
  307. package/storybook-static/assets/{CheckBox.stories-DaldWgEI.js → CheckBox.stories-BVU9Rkai.js} +1 -1
  308. package/storybook-static/assets/{Color-6AOWCN3U-DIhia6KS.js → Color-6AOWCN3U-BeUy9gum.js} +1 -1
  309. package/storybook-static/assets/{ContextMenu-BGMQHT9V.js → ContextMenu-BS2UVgbu.js} +6 -2
  310. package/storybook-static/assets/ContextMenu-Byksyz_8.js +33 -0
  311. package/storybook-static/assets/ContextMenu.stories-DmJPp2YR.js +37 -0
  312. package/storybook-static/assets/{DateInput-DUl5Bb0j.js → DateInput-CQe_1Dk-.js} +8 -1
  313. package/storybook-static/assets/{DateInput-MgdMtvtr.js → DateInput-CgETMk9B.js} +1 -1
  314. package/storybook-static/assets/{DateInput.stories-B6Ol0Ak3.js → DateInput.stories-BOst6EKv.js} +1 -1
  315. package/storybook-static/assets/{DateRangePresetSelect-CPj0pSGc.js → DateRangePresetSelect-CxrNYBTe.js} +1 -1
  316. package/storybook-static/assets/{DateRangePresetSelect-C4MVqjXa.js → DateRangePresetSelect-DHJ31vIB.js} +1 -1
  317. package/storybook-static/assets/{DateRangePresetSelect.stories-tPaMURtH.js → DateRangePresetSelect.stories-CiyN1joN.js} +1 -1
  318. package/storybook-static/assets/{Detail-DnHTVRb5.js → Detail-V_NYrUJR.js} +1 -1
  319. package/storybook-static/assets/Detail.stories-B4tf6inN.js +56 -0
  320. package/storybook-static/assets/{Dialog-COpvqcXi.js → Dialog-B6miFej7.js} +1 -1
  321. package/storybook-static/assets/{Dialog-LMnrvBpx.js → Dialog-DNTx5Unm.js} +1 -1
  322. package/storybook-static/assets/{Dialog.stories-BE2I5ny2.js → Dialog.stories-BS1dDTLW.js} +1 -1
  323. package/storybook-static/assets/{Disclosure-BZ3jd5nu.js → Disclosure-4sf5BIn1.js} +1 -1
  324. package/storybook-static/assets/{Disclosure.stories-cMcF8a8I.js → Disclosure.stories-DhUQNdEC.js} +1 -1
  325. package/storybook-static/assets/DisclosureGroup-Codiur77.js +2 -0
  326. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CurHdzu8.js → DocsRenderer-JROSPFPF-yT2aWNaF.js} +1 -1
  327. package/storybook-static/assets/{DropZone-VEmgdfs6.js → DropZone-D4rl2WEV.js} +1 -1
  328. package/storybook-static/assets/{DropZone-DGMAbY1z.js → DropZone-Du0BQAyO.js} +1 -1
  329. package/storybook-static/assets/{DropZone.stories-B8N17-bV.js → DropZone.stories-B8iPjYH_.js} +1 -1
  330. package/storybook-static/assets/DropdownMenu-BcdS3oNz.js +21 -0
  331. package/storybook-static/assets/{ExpandableActionPanel-C7CFQZLD.js → ExpandableActionPanel-6u6YJanI.js} +1 -1
  332. package/storybook-static/assets/{ExpandableActionPanel.stories-CnBr0s9R.js → ExpandableActionPanel.stories-D-CZHUv0.js} +1 -1
  333. package/storybook-static/assets/{Flex-RpqsC-gQ.js → Flex-DWi0hQ-f.js} +1 -1
  334. package/storybook-static/assets/Flex.stories-CKKi33JK.js +300 -0
  335. package/storybook-static/assets/FlexContainer-BMK_YH72.js +1 -0
  336. package/storybook-static/assets/{FlexItem-pu3E11Sf.js → FlexItem-DpSHNBxJ.js} +2 -2
  337. package/storybook-static/assets/FloatingPopover-D9nTd47B.js +1 -0
  338. package/storybook-static/assets/FormattedTableCell-DyBhk9rG.js +15 -0
  339. package/storybook-static/assets/{Grid-CzO0Ae1r.js → Grid-BZgzDCLK.js} +2 -2
  340. package/storybook-static/assets/{Grid-BRnqEtg1.js → Grid-DbvUGBEN.js} +1 -1
  341. package/storybook-static/assets/{Grid.stories-DXY7Cvfu.js → Grid.stories-BeEAzTxD.js} +4 -4
  342. package/storybook-static/assets/{GridContainer-fKYgDsLl.js → GridContainer-B82Onj6x.js} +2 -2
  343. package/storybook-static/assets/{ImageCropper.stories-ZnvbFN71.js → ImageCropper.stories-SDIt19aO.js} +1 -1
  344. package/storybook-static/assets/{ImageRenderer-DUOhCfac.js → ImageRenderer-Bzg27pq7.js} +1 -1
  345. package/storybook-static/assets/{ImageRenderer.stories-Dj6NQm2k.js → ImageRenderer.stories-C-IE84zV.js} +1 -1
  346. package/storybook-static/assets/{ImageView.stories-QTzOsByD.js → ImageView.stories-DIcx2Krs.js} +1 -1
  347. package/storybook-static/assets/{ImageViewer.stories-CpnUEgZW.js → ImageViewer.stories-CQTy0uPX.js} +2 -2
  348. package/storybook-static/assets/{ImageViewerRuntime-B1PicLUw.js → ImageViewerRuntime-CA5BYQsX.js} +1 -1
  349. package/storybook-static/assets/{Input-B8eGQXlp.js → Input-D8uMye_9.js} +1 -1
  350. package/storybook-static/assets/{Input-DnFc_Pwx.js → Input-DmsN6uC_.js} +1 -1
  351. package/storybook-static/assets/{Input.stories-C6CbYvZP.js → Input.stories-D8QWPnMD.js} +1 -1
  352. package/storybook-static/assets/{InputDateTime-DoMduRde.js → InputDateTime-Cczll-bH.js} +1 -1
  353. package/storybook-static/assets/{InputDateTime.stories--LHpvJjY.js → InputDateTime.stories-DeZ6XHwa.js} +1 -1
  354. package/storybook-static/assets/{InputFile-CunQ8F4s.js → InputFile-BbPjLN4E.js} +1 -1
  355. package/storybook-static/assets/{InputFile-DFv3WAWa.js → InputFile-C0_L0zTd.js} +1 -1
  356. package/storybook-static/assets/{InputFile.stories-B0WZhic1.js → InputFile.stories-Di_6BkX1.js} +1 -1
  357. package/storybook-static/assets/{InputFiles-DyiPQ_tH.js → InputFiles-B3uOwqKF.js} +1 -1
  358. package/storybook-static/assets/{InputFiles-CKDPmjWY.js → InputFiles-CF60S_qG.js} +1 -1
  359. package/storybook-static/assets/{InputFiles.stories-BbP_bEnL.js → InputFiles.stories-BkTiEPX6.js} +1 -1
  360. package/storybook-static/assets/{InputFilesList-BAIGwV7V.js → InputFilesList-C9cudcHe.js} +1 -1
  361. package/storybook-static/assets/{InputImage-2G1pRNbw.js → InputImage-Aq_ZXmtw.js} +1 -1
  362. package/storybook-static/assets/{InputImage-ZvEB_TIT.js → InputImage-Dx0DIf4l.js} +1 -1
  363. package/storybook-static/assets/{InputImage.stories-BiShLRcw.js → InputImage.stories-D7LfEcn4.js} +1 -1
  364. package/storybook-static/assets/{InteractiveComponents-CT99QfHX.js → InteractiveComponents-DP5FyU4S.js} +1 -1
  365. package/storybook-static/assets/{InteractiveComponents.stories-BPTICQZz.js → InteractiveComponents.stories-CE5L5PAB.js} +1 -1
  366. package/storybook-static/assets/{LayoutPicker-BDpc8LBa.js → LayoutPicker-BehxFQsU.js} +2 -2
  367. package/storybook-static/assets/{LayoutPicker-Cg_AM-pj.js → LayoutPicker-CW1W-CAf.js} +2 -1
  368. package/storybook-static/assets/{LayoutPicker.stories-Ca9WZdPW.js → LayoutPicker.stories-DtvfpOUS.js} +1 -1
  369. package/storybook-static/assets/Listbox-Bn_6WyQc.js +1 -0
  370. package/storybook-static/assets/{Listbox-LbbFtte9.js → Listbox-VcD28kxl.js} +2 -1
  371. package/storybook-static/assets/{Listbox.stories-xDpbFNZk.js → Listbox.stories-CL6fJlUm.js} +1 -1
  372. package/storybook-static/assets/{Modal-CXd2j0up.js → Modal-D0D5WZ_O.js} +1 -1
  373. package/storybook-static/assets/Modal-DrSX0i3a.js +1 -0
  374. package/storybook-static/assets/{Modal.stories-cNLvFjmT.js → Modal.stories-Ch3P8_kY.js} +1 -1
  375. package/storybook-static/assets/{ModalManagerProvider-ClXvSB9a.js → ModalManagerProvider-B0Lf7xX0.js} +1 -1
  376. package/storybook-static/assets/MultiSelect-Bw3qf8eW.js +2 -0
  377. package/storybook-static/assets/{MultiSelect-Na2VdNy3.js → MultiSelect-Cmxa5Vho.js} +4 -1
  378. package/storybook-static/assets/MultiSelect-SJBp1Ymv.css +1 -0
  379. package/storybook-static/assets/{MultiSelect.stories-4nFshdtz.js → MultiSelect.stories-DKHPBUWD.js} +1 -1
  380. package/storybook-static/assets/NoData-seFnJNiE.js +1 -0
  381. package/storybook-static/assets/{NotificationsHost-CrLL4WK9.js → NotificationsHost-d770FjSM.js} +11 -8
  382. package/storybook-static/assets/{NotificationsHost.stories-Ci2q0W9-.js → NotificationsHost.stories-BYmVl44l.js} +1 -1
  383. package/storybook-static/assets/{ODataMultiSelect-Cc09uTB8.js → ODataMultiSelect-BN0pcCmQ.js} +1 -1
  384. package/storybook-static/assets/{ODataMultiSelect.stories-CzGzREa9.js → ODataMultiSelect.stories-D5zrkaFW.js} +2 -2
  385. package/storybook-static/assets/{ODataSelect-DqoRg5pz.js → ODataSelect-C5DXRRVH.js} +1 -1
  386. package/storybook-static/assets/{ODataSelect.stories-BCcxERn3.js → ODataSelect.stories-ClYp08JR.js} +2 -2
  387. package/storybook-static/assets/{ODataTreeMultiSelect-qZEcSE5O.js → ODataTreeMultiSelect-CsvSq1G1.js} +1 -1
  388. package/storybook-static/assets/{ODataTreeMultiSelect.stories-Bfees7Qr.js → ODataTreeMultiSelect.stories-DFXLQjms.js} +1 -1
  389. package/storybook-static/assets/{ODataTreeSelect-IOVS6uQc.js → ODataTreeSelect-CdN-NwV7.js} +1 -1
  390. package/storybook-static/assets/{ODataTreeSelect.stories-CO7DClzd.js → ODataTreeSelect.stories-CDffbvxi.js} +1 -1
  391. package/storybook-static/assets/OneStepScroller-qXHo2r0J.js +5 -0
  392. package/storybook-static/assets/Option-tEWfKgN_.js +10 -0
  393. package/storybook-static/assets/OptionButton-DOj_dfd1.js +1 -0
  394. package/storybook-static/assets/OptionContent-6iwuLpQP.js +1 -0
  395. package/storybook-static/assets/OptionContentContainer-DbdHO42m.js +2 -0
  396. package/storybook-static/assets/{PeriodSelect-D-jXJf5C.js → PeriodSelect-Bo_B6jdw.js} +1 -1
  397. package/storybook-static/assets/{PeriodSelect-BAVDztkI.js → PeriodSelect-DffBuv6v.js} +1 -1
  398. package/storybook-static/assets/{PeriodSelect.stories-CscsENT9.js → PeriodSelect.stories-Boq-fBL8.js} +1 -1
  399. package/storybook-static/assets/{PickerField-CRtltoce.js → PickerField-fMVQUcBX.js} +1 -1
  400. package/storybook-static/assets/PickerTriggerActions-zS0JUD-3.js +2 -0
  401. package/storybook-static/assets/PolymorphicComponent-NBvIz9JD.js +1 -0
  402. package/storybook-static/assets/Popover-5c_n39x0.js +55 -0
  403. package/storybook-static/assets/Popover-u02JbpuP.js +46 -0
  404. package/storybook-static/assets/Popover.stories-BUVgJJQI.js +63 -0
  405. package/storybook-static/assets/{PresetRangeDateInput-VZnM8RNV.js → PresetRangeDateInput-EiaEd6Qp.js} +1 -1
  406. package/storybook-static/assets/{PresetRangeDateInput-CVPMYlEV.js → PresetRangeDateInput-TyV-u0Db.js} +1 -1
  407. package/storybook-static/assets/{PresetRangeDateInput.stories-DdBWlSV-.js → PresetRangeDateInput.stories-jJq5Gkdb.js} +1 -1
  408. package/storybook-static/assets/{PresetSelect-C7YYBjlL.js → PresetSelect-Cnl_fXjS.js} +1 -1
  409. package/storybook-static/assets/{README-6XPUoxFl.js → README-10_nKrEg.js} +1 -1
  410. package/storybook-static/assets/{README-DIWsYBR7.js → README-6n5fAnyG.js} +1 -1
  411. package/storybook-static/assets/{README-oKLTQYfV.js → README-7mbN7jNm.js} +1 -1
  412. package/storybook-static/assets/{README-D2AT2-yD.js → README-8qj7XGDa.js} +1 -1
  413. package/storybook-static/assets/{README-DADnaXLy.js → README-8vaqVs2t.js} +1 -1
  414. package/storybook-static/assets/{README-ZxRwqfIH.js → README-AbbeH5rC.js} +1 -1
  415. package/storybook-static/assets/{README-Bk1oSDWQ.js → README-B-K2UPpo.js} +1 -1
  416. package/storybook-static/assets/{README-DoxVtmRh.js → README-B-z6znlC.js} +1 -1
  417. package/storybook-static/assets/{README-BL8ZNGNi.js → README-B6uVB1ib.js} +1 -1
  418. package/storybook-static/assets/{README-B0FbTpix.js → README-B7f6XRLa.js} +1 -1
  419. package/storybook-static/assets/{README-BGBxEe4u.js → README-BGEviJbA.js} +1 -1
  420. package/storybook-static/assets/{README-C-IUw1gX.js → README-BPWr_0XE.js} +1 -1
  421. package/storybook-static/assets/{README-_KzyG4dS.js → README-BWiCGCpy.js} +1 -1
  422. package/storybook-static/assets/{README-DrTR5pSr.js → README-BfF9g6q6.js} +1 -1
  423. package/storybook-static/assets/{README-2NTkucdH.js → README-BgbmWbpJ.js} +1 -1
  424. package/storybook-static/assets/{README-DC0vNdOD.js → README-Bn7SBLqL.js} +1 -1
  425. package/storybook-static/assets/{README-w9FMhq0X.js → README-BoXMNqUS.js} +1 -1
  426. package/storybook-static/assets/{README-DyWhmOFY.js → README-BoZbB8t8.js} +1 -1
  427. package/storybook-static/assets/{README-b3wA6wFr.js → README-BsHrwATK.js} +1 -1
  428. package/storybook-static/assets/{README-CB5BpIBF.js → README-By7MmJad.js} +1 -1
  429. package/storybook-static/assets/{README-DWzfTSuq.js → README-BylyIJ4z.js} +1 -1
  430. package/storybook-static/assets/{README-CeNQeTK-.js → README-ByxHEXaq.js} +1 -1
  431. package/storybook-static/assets/{README-UcyyK9jn.js → README-CO0Anr1W.js} +1 -1
  432. package/storybook-static/assets/{README-BdsFByUw.js → README-CXhBUq08.js} +1 -1
  433. package/storybook-static/assets/{README-Bvo0Qxde.js → README-CXlUZ-Tw.js} +1 -1
  434. package/storybook-static/assets/{README-CTF9mVZL.js → README-CZBT22Qx.js} +1 -1
  435. package/storybook-static/assets/{README-B0Nb0jf2.js → README-CZaKBu1r.js} +1 -1
  436. package/storybook-static/assets/{README-C_lKreF9.js → README-Cc5RUdsX.js} +1 -1
  437. package/storybook-static/assets/{README-BZlnzGAh.js → README-CmCyESsg.js} +1 -1
  438. package/storybook-static/assets/{README-jvtwVY_n.js → README-CoofcGyA.js} +1 -1
  439. package/storybook-static/assets/{README-Wli4AXG5.js → README-CqCDXjY-.js} +1 -1
  440. package/storybook-static/assets/{README-DOi6rx7n.js → README-CqMgUXym.js} +1 -1
  441. package/storybook-static/assets/{README-na5mQX4V.js → README-DB3HzmYa.js} +1 -1
  442. package/storybook-static/assets/{README-DMwF_O1R.js → README-DBqb3xHL.js} +1 -1
  443. package/storybook-static/assets/{README-CvaizZr1.js → README-DKMzvCHg.js} +1 -1
  444. package/storybook-static/assets/{README-CqiNQGIJ.js → README-DLGk_zi3.js} +1 -1
  445. package/storybook-static/assets/{README-Dm7CwuVP.js → README-DT4BWDzj.js} +1 -1
  446. package/storybook-static/assets/{README-Brn9Tjjc.js → README-DXzLMFnF.js} +1 -1
  447. package/storybook-static/assets/{README-8L1vpZcz.js → README-DZKQ2NbJ.js} +1 -1
  448. package/storybook-static/assets/{README-C7N5_6-c.js → README-DnIK-CvZ.js} +1 -1
  449. package/storybook-static/assets/{README-GChrAHFQ.js → README-DsEaeYrz.js} +1 -1
  450. package/storybook-static/assets/{README-DkBG5Azm.js → README-DsqwQGJx.js} +1 -1
  451. package/storybook-static/assets/{README-Dr8TxFTe.js → README-DyhDd6j2.js} +1 -1
  452. package/storybook-static/assets/{README-HWuoKwKL.js → README-E09CwLzJ.js} +1 -1
  453. package/storybook-static/assets/{README-DlfWWC7n.js → README-W30_dPSQ.js} +1 -1
  454. package/storybook-static/assets/{README-DOBIWrus.js → README-WtLMdn_H.js} +1 -1
  455. package/storybook-static/assets/{README-g1VWHzAJ.js → README-_UuZJvdY.js} +1 -1
  456. package/storybook-static/assets/{README-BD-WSEvQ.js → README-bJALHbSR.js} +1 -1
  457. package/storybook-static/assets/{README-Dmu5lsNT.js → README-e3Zi9n04.js} +1 -1
  458. package/storybook-static/assets/{README-DgXAMdBY.js → README-g4l3WFXZ.js} +1 -1
  459. package/storybook-static/assets/{README-jQcGKqqm.js → README-jb10Ekr5.js} +1 -1
  460. package/storybook-static/assets/{README-CTwfFqJG.js → README-q6R_bF6h.js} +1 -1
  461. package/storybook-static/assets/{README-BGmO6U9j.js → README-tDgobAYS.js} +1 -1
  462. package/storybook-static/assets/{RadioButton-Dgkz1EWU.js → RadioButton-DGjO61a9.js} +1 -1
  463. package/storybook-static/assets/RadioButton-j3O4woG8.js +1 -0
  464. package/storybook-static/assets/{RadioButton.stories-DO14jTfm.js → RadioButton.stories-COGMYQcq.js} +1 -1
  465. package/storybook-static/assets/{RadioGroup-Db0AhiKo.js → RadioGroup-Cuj2D_RZ.js} +1 -1
  466. package/storybook-static/assets/{RadioGroup-BSiqjVai.js → RadioGroup-D9samx7D.js} +1 -1
  467. package/storybook-static/assets/{RadioGroup.stories-C0D6n83q.js → RadioGroup.stories-KSDvpgqY.js} +1 -1
  468. package/storybook-static/assets/Scrollable-DsOw--4y.js +1 -0
  469. package/storybook-static/assets/Scrollable-tPrIOchd.js +18 -0
  470. package/storybook-static/assets/Scrollable.stories-B7d_6eGB.js +1 -0
  471. package/storybook-static/assets/Select-D0CHiGkz.js +12 -0
  472. package/storybook-static/assets/{Select-D8X-SkP2.js → Select-h0tWQbii.js} +3 -1
  473. package/storybook-static/assets/{Select.stories-8_zvonmc.js → Select.stories-GmGbpUoi.js} +1 -1
  474. package/storybook-static/assets/Separator-C8aQcNns.js +1 -0
  475. package/storybook-static/assets/Separator-Dh8kzf-5.js +14 -0
  476. package/storybook-static/assets/Separator.stories-nQ9bDdo1.js +14 -0
  477. package/storybook-static/assets/{SerializableSelect-ii6T140l.js → SerializableSelect-BJAxQ8an.js} +1 -1
  478. package/storybook-static/assets/{SerializableSelect.stories-Ba3ABMGt.js → SerializableSelect.stories-CzVCg1_7.js} +1 -1
  479. package/storybook-static/assets/{ShimmerText-C6vkZwUV.js → ShimmerText-DnEOvvJA.js} +1 -1
  480. package/storybook-static/assets/{ShimmerText.stories-CVpSxXHJ.js → ShimmerText.stories-D2XRPcMC.js} +1 -1
  481. package/storybook-static/assets/{SingleDateTimeInput-96-mrjq8.js → SingleDateTimeInput-Bwn8kqI3.js} +8 -1
  482. package/storybook-static/assets/{SingleDateTimeInput-DpETPR89.js → SingleDateTimeInput-DwY38Bzb.js} +1 -1
  483. package/storybook-static/assets/{SingleDateTimeInput.stories-JhviurJO.js → SingleDateTimeInput.stories-DKq1_AqA.js} +1 -1
  484. package/storybook-static/assets/{Slider-B27TdvRV.js → Slider-CT0jMXMY.js} +8 -1
  485. package/storybook-static/assets/Slider-KiXLZUpw.js +1 -0
  486. package/storybook-static/assets/{Slider.stories-d1YeKe5r.js → Slider.stories-Cmcm8HlR.js} +1 -1
  487. package/storybook-static/assets/SliderInput-Dd_yvyMG.js +3 -0
  488. package/storybook-static/assets/{SliderInput-D2d23mEI.js → SliderInput-Unp3YEcU.js} +8 -1
  489. package/storybook-static/assets/{SliderInput.stories-CwqT79oE.js → SliderInput.stories-C0MwvTOV.js} +1 -1
  490. package/storybook-static/assets/{Sortable-DiJuiI6V.js → Sortable-CnCowZw-.js} +4 -2
  491. package/storybook-static/assets/Sortable.stories-DCrIurAg.js +44 -0
  492. package/storybook-static/assets/{Splitter-QwdfWNbm.js → Splitter-BErks2lB.js} +1 -1
  493. package/storybook-static/assets/{Splitter.stories-C2iDPz8c.js → Splitter.stories-DyRlCVUo.js} +1 -1
  494. package/storybook-static/assets/{StateSelect-D1ZDM6bC.js → StateSelect-DXfsbduM.js} +1 -1
  495. package/storybook-static/assets/{StateSelect-Bw9H1Cus.js → StateSelect-DuVzqi0t.js} +1 -1
  496. package/storybook-static/assets/{StateSelect.stories-DEFvQ15O.js → StateSelect.stories-CnIXqGFB.js} +1 -1
  497. package/storybook-static/assets/{StatusIndicator-D6Pbdz37.js → StatusIndicator-Bz3JF899.js} +1 -1
  498. package/storybook-static/assets/{StatusIndicator.stories-COgpy5cK.js → StatusIndicator.stories-B5RMchH3.js} +1 -1
  499. package/storybook-static/assets/{StringToggle.stories-BFwMh0Yd.js → StringToggle.stories-CcR8KHGF.js} +1 -1
  500. package/storybook-static/assets/{Switch-Bmj2AItH.js → Switch-Bo-dd4nL.js} +1 -1
  501. package/storybook-static/assets/{Switch-DyDk152g.js → Switch-a7GMbDn9.js} +1 -1
  502. package/storybook-static/assets/{Switch.stories-C10NxPL4.js → Switch.stories-B9c9CAmZ.js} +1 -1
  503. package/storybook-static/assets/{Table-YcEwF4aO.js → Table-BgmEmcbL.js} +1 -1
  504. package/storybook-static/assets/{Table.stories-DgxFS9Sa.js → Table.stories-BByDPmdZ.js} +1 -1
  505. package/storybook-static/assets/{TableEditor.stories-CSMoxO4O.js → TableEditor.stories-DJi7VPcY.js} +1 -1
  506. package/storybook-static/assets/{Tabs-DOsPN2X1.js → Tabs-CV1ykDlt.js} +2 -3
  507. package/storybook-static/assets/Tabs.stories-DOyJdrcR.js +57 -0
  508. package/storybook-static/assets/{TabsBox-B3REnb6D.css → TabsBox-DuBKU62M.css} +1 -1
  509. package/storybook-static/assets/{TabsBox-Ovukgo9G.js → TabsBox-n38x7_yO.js} +1 -1
  510. package/storybook-static/assets/{TagInput-BQBOGr9G.js → TagInput-j4mVWIf0.js} +1 -1
  511. package/storybook-static/assets/{TagInput.stories-DAAyJlgm.js → TagInput.stories-DSU97IRU.js} +1 -1
  512. package/storybook-static/assets/{Text-fdwuak_J.js → Text-COGTV38X.js} +1 -1
  513. package/storybook-static/assets/{Textarea-A22Efyk-.js → Textarea-BcgmS9aD.js} +1 -1
  514. package/storybook-static/assets/{Textarea-D80ZPpEy.js → Textarea-Byqjr2Ve.js} +1 -1
  515. package/storybook-static/assets/{Textarea.stories-DfaOYMoN.js → Textarea.stories-D1gXsWxK.js} +1 -1
  516. package/storybook-static/assets/{TimePanel-Bd5T_SfL.js → TimePanel-DzFFLXJP.js} +1 -1
  517. package/storybook-static/assets/{TimePanel.stories-D6TIpKp4.js → TimePanel.stories-287q5ipF.js} +1 -1
  518. package/storybook-static/assets/{Toggle-BvHMq6f_.js → Toggle-CCkzi_xC.js} +1 -1
  519. package/storybook-static/assets/{Toggle-DUyCRH0o.js → Toggle-KtpVC-vX.js} +1 -1
  520. package/storybook-static/assets/{Toggle.stories-ZPgC-EWw.js → Toggle.stories-BLKa6Zst.js} +1 -1
  521. package/storybook-static/assets/{TreeMultiSelect-DTMybWfP.js → TreeMultiSelect-CbnCiXFa.js} +1 -1
  522. package/storybook-static/assets/{TreeMultiSelect-DTmB9s8s.js → TreeMultiSelect-sYAglJIC.js} +2 -1
  523. package/storybook-static/assets/{TreeMultiSelect.stories-1_HB74Gf.js → TreeMultiSelect.stories-DGw_tJQ5.js} +1 -1
  524. package/storybook-static/assets/TreePickerBase-ClWTQVKW.css +1 -0
  525. package/storybook-static/assets/TreePickerBase-wz0-Y-eg.js +76 -0
  526. package/storybook-static/assets/{TreeSelect-CTN6cRRr.js → TreeSelect-BCOJNrl1.js} +1 -1
  527. package/storybook-static/assets/{TreeSelect-UsZGYhUO.js → TreeSelect-BJ6C_2pM.js} +2 -1
  528. package/storybook-static/assets/{TreeSelect.stories-B01pZcR9.js → TreeSelect.stories-DKdmUNAI.js} +1 -1
  529. package/storybook-static/assets/{TreeTable-dr3jK3Ih.js → TreeTable-DIRsmeC8.js} +1 -1
  530. package/storybook-static/assets/{TreeTable.stories-B1DPasDc.js → TreeTable.stories-BfqeLJU6.js} +1 -1
  531. package/storybook-static/assets/{blocks-Cw5Dm88b.js → blocks-r6nP1Mk3.js} +3 -3
  532. package/storybook-static/assets/{check-028VTQ8f.js → check-CX66-EtS.js} +1 -1
  533. package/storybook-static/assets/{chevron-down-CjXVIhzi.js → chevron-down-BpTVPmXw.js} +1 -1
  534. package/storybook-static/assets/{chevron-left-CktI1oFP.js → chevron-left-BDyvowID.js} +1 -1
  535. package/storybook-static/assets/{chevron-right-CF10QSRI.js → chevron-right-PitONC71.js} +1 -1
  536. package/storybook-static/assets/{chunk-W22LQPXL-C0ehDnCq.js → chunk-W22LQPXL-Bd54JRSO.js} +1 -1
  537. package/storybook-static/assets/{circle-alert-s0HpHvQO.js → circle-alert-BxfK632o.js} +1 -1
  538. package/storybook-static/assets/{circle-check-C7Lv1fv9.js → circle-check-CQ0mrCVh.js} +1 -1
  539. package/storybook-static/assets/{components-ClxgOUq5.js → components-CJIwocXl.js} +3 -3
  540. package/storybook-static/assets/contextMenu-BodN1HdA.js +2 -0
  541. package/storybook-static/assets/{download-B1U5w3LU.js → download-C_lZf2f4.js} +1 -1
  542. package/storybook-static/assets/{floating-ui.react-CyNWkXBV.js → floating-ui.react-BzwQR5CG.js} +1 -1
  543. package/storybook-static/assets/{foundationApi-CY0sxk8w.js → foundationApi-BgE0geET.js} +1 -1
  544. package/storybook-static/assets/{foundationLib-BCpSUA25.js → foundationLib-6nKeXUFS.js} +1 -1
  545. package/storybook-static/assets/{hooks-DjR-EyBl.js → hooks-DDySZJGR.js} +1 -1
  546. package/storybook-static/assets/{iframe-woVbsQH3.js → iframe-B9PXVErw.js} +4 -4
  547. package/storybook-static/assets/iframe-f5g4GUQw.js +1 -0
  548. package/storybook-static/assets/{info-DKbXBIbQ.js → info-rdW9neC9.js} +1 -1
  549. package/storybook-static/assets/{odata-CMCuN2Rx.js → odata-D6cOAxLt.js} +1 -1
  550. package/storybook-static/assets/{odataStoryFixtures-a4Q2PLas.js → odataStoryFixtures-CGQ31IO_.js} +1 -1
  551. package/storybook-static/assets/{react-D3CyilRt.js → react-BMktiE65.js} +1 -1
  552. package/storybook-static/assets/{refresh-cw-DXEJelAO.js → refresh-cw-CfKvrc1N.js} +1 -1
  553. package/storybook-static/assets/{settings-2-CKbiQBX8.js → settings-2-Drz-L5J9.js} +1 -1
  554. package/storybook-static/assets/sortable-BMuu2DRC.js +1 -0
  555. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-CLptde2b.js → syntaxhighlighter-QEQV7K2Y-eBmofw1l.js} +1 -1
  556. package/storybook-static/assets/{trash-2-CPWRIQlJ.js → trash-2-DEbF1hh6.js} +1 -1
  557. package/storybook-static/assets/{triangle-alert-XjzWCHp5.js → triangle-alert--nwD_1ZX.js} +1 -1
  558. package/storybook-static/assets/{ui-FA-1R8mO.css → ui-Bpz_yxm8.css} +1 -1
  559. package/storybook-static/assets/{uiClasses-DNnVkKPr.js → uiClasses-Bar5W7-L.js} +1 -1
  560. package/storybook-static/assets/{useODataSelectBase-ZGFa3pdT.js → useODataSelectBase-DSOGiMIw.js} +1 -1
  561. package/storybook-static/assets/{useODataTreeData-DAdLowou.js → useODataTreeData-Cn_XaKz_.js} +1 -1
  562. package/storybook-static/assets/usePickerQuery-B5ZZQg8g.js +1 -0
  563. package/storybook-static/assets/usePickerTriggerController-Cqy5IfOJ.js +6 -0
  564. package/storybook-static/assets/{x-D2Q9PGsq.js → x-DSHJbBBz.js} +1 -1
  565. package/storybook-static/iframe.html +2 -2
  566. package/storybook-static/index.json +1 -1
  567. package/storybook-static/project.json +1 -1
  568. package/dist/advanced-search/index.d.ts +0 -3
  569. package/dist/advanced-search/index.d.ts.map +0 -1
  570. package/dist/advanced-search/index.js +0 -399
  571. package/dist/advanced-search/index.js.map +0 -1
  572. package/dist/advanced-search/lib/index.d.ts +0 -2
  573. package/dist/advanced-search/lib/index.d.ts.map +0 -1
  574. package/dist/advanced-search/lib/searchParts.d.ts +0 -3
  575. package/dist/advanced-search/lib/searchParts.d.ts.map +0 -1
  576. package/dist/advanced-search/model/index.d.ts +0 -5
  577. package/dist/advanced-search/model/index.d.ts.map +0 -1
  578. package/dist/advanced-search/model/types.d.ts +0 -55
  579. package/dist/advanced-search/model/types.d.ts.map +0 -1
  580. package/dist/advanced-search/model/useAdvancedSearch.d.ts +0 -11
  581. package/dist/advanced-search/model/useAdvancedSearch.d.ts.map +0 -1
  582. package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts +0 -6
  583. package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts.map +0 -1
  584. package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts +0 -13
  585. package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts.map +0 -1
  586. package/dist/advanced-search/ui/AdvancedSearchModal.d.ts +0 -23
  587. package/dist/advanced-search/ui/AdvancedSearchModal.d.ts.map +0 -1
  588. package/dist/advanced-search/ui/AdvancedSearchModalSession.d.ts +0 -16
  589. package/dist/advanced-search/ui/AdvancedSearchModalSession.d.ts.map +0 -1
  590. package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts +0 -9
  591. package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts.map +0 -1
  592. package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts +0 -9
  593. package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts.map +0 -1
  594. package/dist/advanced-search/ui/index.d.ts +0 -2
  595. package/dist/advanced-search/ui/index.d.ts.map +0 -1
  596. package/dist/chunks/CalendarView-Dm55k0bN.js.map +0 -1
  597. package/dist/chunks/badge-6mXO9BWP.js +0 -65
  598. package/dist/chunks/badge-6mXO9BWP.js.map +0 -1
  599. package/dist/chunks/button-DF21yxVp.js +0 -72
  600. package/dist/chunks/button-DF21yxVp.js.map +0 -1
  601. package/dist/chunks/context-menu-DgvXGCuI.js +0 -532
  602. package/dist/chunks/context-menu-DgvXGCuI.js.map +0 -1
  603. package/dist/chunks/flex-C7njxZ74.js +0 -207
  604. package/dist/chunks/flex-C7njxZ74.js.map +0 -1
  605. package/dist/chunks/grid-dI94AAbi.js.map +0 -1
  606. package/dist/chunks/input-search-Cat4c7SM.js +0 -30
  607. package/dist/chunks/input-search-Cat4c7SM.js.map +0 -1
  608. package/dist/chunks/misc-DeGboAt-.js +0 -309
  609. package/dist/chunks/misc-DeGboAt-.js.map +0 -1
  610. package/dist/chunks/modal-dplfAaER.js.map +0 -1
  611. package/dist/chunks/multi-select-BZ9N6Dal.js +0 -466
  612. package/dist/chunks/multi-select-BZ9N6Dal.js.map +0 -1
  613. package/dist/chunks/picker-lvm82d0A.js +0 -439
  614. package/dist/chunks/picker-lvm82d0A.js.map +0 -1
  615. package/dist/chunks/popover-Bne-Ljbs.js +0 -245
  616. package/dist/chunks/popover-Bne-Ljbs.js.map +0 -1
  617. package/dist/chunks/radio-group-sSnlYjAX.js +0 -125
  618. package/dist/chunks/select-aTGupQan.js +0 -363
  619. package/dist/chunks/select-aTGupQan.js.map +0 -1
  620. package/dist/chunks/separator-B72Aq-6a.js +0 -15
  621. package/dist/chunks/separator-B72Aq-6a.js.map +0 -1
  622. package/storybook-static/assets/CalendarView-Dz8cY1fo.js +0 -1
  623. package/storybook-static/assets/ContextMenu-XS7B8QUC.js +0 -1
  624. package/storybook-static/assets/ContextMenu.stories-Dp2t2BZa.js +0 -37
  625. package/storybook-static/assets/CustomOptionButton-DNd0GDWp.js +0 -1
  626. package/storybook-static/assets/Detail.stories-CXg_w4qM.js +0 -56
  627. package/storybook-static/assets/DisclosureGroup-JNnTj18G.js +0 -2
  628. package/storybook-static/assets/DropdownMenu-xjOtBneA.js +0 -1
  629. package/storybook-static/assets/Flex.stories-CCVNsX23.js +0 -300
  630. package/storybook-static/assets/FlexContainer-BWyPlTMB.js +0 -1
  631. package/storybook-static/assets/FloatingPopover-D6tO24aO.js +0 -1
  632. package/storybook-static/assets/FormattedTableCell-CDaDfaXy.js +0 -15
  633. package/storybook-static/assets/Listbox-3Npc4PI_.js +0 -1
  634. package/storybook-static/assets/Modal-Ddmc8-2-.js +0 -1
  635. package/storybook-static/assets/MultiSelect-BkLCM22R.js +0 -2
  636. package/storybook-static/assets/MultiSelect-DI_UD1B-.css +0 -1
  637. package/storybook-static/assets/NoData-bUonNuRR.js +0 -1
  638. package/storybook-static/assets/OneStepScroller-B_IRz2Rw.js +0 -5
  639. package/storybook-static/assets/Option-fRoOLqLF.js +0 -10
  640. package/storybook-static/assets/OptionButton--hnpJ-88.js +0 -1
  641. package/storybook-static/assets/PickerTriggerActions-BDGEQPvP.js +0 -1
  642. package/storybook-static/assets/Popover-BYO0DlBg.js +0 -45
  643. package/storybook-static/assets/Popover-Byy9_Twt.js +0 -2
  644. package/storybook-static/assets/Popover.stories-8RhemIQg.js +0 -47
  645. package/storybook-static/assets/RadioButton-DMn-soQD.js +0 -1
  646. package/storybook-static/assets/Scrollable-BI3OE8gc.js +0 -1
  647. package/storybook-static/assets/Select-1MNiFkxm.js +0 -12
  648. package/storybook-static/assets/Slider-DbiDvmoV.js +0 -1
  649. package/storybook-static/assets/SliderInput-CzYn9gor.js +0 -2
  650. package/storybook-static/assets/Sortable.stories-DFCzTok0.js +0 -44
  651. package/storybook-static/assets/Tabs.stories-BdZilcp2.js +0 -57
  652. package/storybook-static/assets/TreePickerBase-CmFF9pWE.css +0 -1
  653. package/storybook-static/assets/TreePickerBase-Cu2mneBS.js +0 -76
  654. package/storybook-static/assets/contextMenu-CWGju9qn.js +0 -2
  655. package/storybook-static/assets/iframe-Dyd6jnSv.js +0 -1
  656. package/storybook-static/assets/sortable-CXLU2ip-.js +0 -1
  657. package/storybook-static/assets/usePickerQuery-CaO8hXyH.js +0 -1
  658. package/storybook-static/assets/usePickerTriggerController-DWjrt_q_.js +0 -6
  659. /package/storybook-static/assets/{ui.module-CyEEibCu.js → ui.module-0uniSGT-.js} +0 -0
@@ -0,0 +1,263 @@
1
+ import { t as e } from "./floating-arrow-B_iSbzUZ.js";
2
+ import { cn as t } from "@ryuzaki13/react-foundation-lib/utils";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ import { cloneElement as a, createContext as o, useCallback as s, useContext as c, useEffect as l, useId as u, useLayoutEffect as d, useRef as f, useState as p } from "react";
5
+ import { FloatingPortal as m, arrow as h, autoUpdate as g, flip as _, offset as v, shift as y, size as b, useDismiss as x, useFloating as S, useFocus as C, useHover as w, useInteractions as T, useRole as E } from "@floating-ui/react";
6
+ import { useClickOutside as D, useEscapeDismiss as O, useOverlayFocus as k } from "@ryuzaki13/react-foundation-lib/dom";
7
+ import { createMissingContextError as A } from "@ryuzaki13/react-foundation-lib/error";
8
+ import { createPortal as j } from "react-dom";
9
+ //#region src/popover/lib/applyPopoverAvailableSize.ts
10
+ function M({ availableWidth: e, availableHeight: t, floating: n }) {
11
+ n.style.setProperty("--popover-available-width", `${Math.max(0, e)}px`), n.style.setProperty("--popover-available-height", `${Math.max(0, t)}px`);
12
+ }
13
+ var N = {
14
+ popover: "JK2Y7t",
15
+ primary: "_5QtpCJ",
16
+ secondary: "hZuysP"
17
+ }, P = o(null);
18
+ function F() {
19
+ let e = c(P);
20
+ if (!e) throw A({
21
+ hookName: "usePopoverContext",
22
+ providerName: "Popover"
23
+ });
24
+ return e;
25
+ }
26
+ //#endregion
27
+ //#region src/popover/components/PopoverContent.tsx
28
+ function I({ children: n, onClose: a, closeOnOutside: o = !0, closeOnEscape: c = !0, disableOutsideClick: l = !1, background: u = "secondary", role: d, "aria-label": p, "aria-labelledby": h, "aria-describedby": g }) {
29
+ let { open: _, setOpen: v, refs: y, floatingStyles: b, middlewareData: x, placement: S, arrowRef: C, contentId: w } = F(), T = f(null), E = s((e) => {
30
+ T.current = e, y.setFloating(e);
31
+ }, [y]), A = k({
32
+ active: _,
33
+ initialFocus: "container",
34
+ restoreFocus: !0,
35
+ containerRef: T
36
+ }), j = s(() => {
37
+ _ && (v(!1), a?.());
38
+ }, [
39
+ v,
40
+ a,
41
+ _
42
+ ]);
43
+ O({
44
+ active: _,
45
+ enabled: c,
46
+ onDismiss: j,
47
+ containerRef: A
48
+ });
49
+ let M = s(() => {
50
+ !_ || l || o && j();
51
+ }, [
52
+ _,
53
+ l,
54
+ o,
55
+ j
56
+ ]);
57
+ return D([y.floating, y.reference], M), _ ? /* @__PURE__ */ r(m, { children: /* @__PURE__ */ i("div", {
58
+ id: w,
59
+ ref: E,
60
+ style: b,
61
+ className: t(N.popover, N[u]),
62
+ role: d,
63
+ "aria-label": p,
64
+ "aria-labelledby": h,
65
+ "aria-describedby": g,
66
+ tabIndex: -1,
67
+ children: [typeof n == "function" ? n({ setClose: j }) : n, /* @__PURE__ */ r(e, {
68
+ ref: C,
69
+ placement: S,
70
+ middlewareData: x
71
+ })]
72
+ }) }) : null;
73
+ }
74
+ //#endregion
75
+ //#region src/popover/components/PopoverTrigger.tsx
76
+ function L({ passive: e, children: t }) {
77
+ let { open: n, setOpen: r, refs: i, contentId: o } = F(), c = [t.props["aria-controls"], o].filter(Boolean).join(" "), l = s((n) => {
78
+ t.props.onClick && t.props.onClick(n), !n.defaultPrevented && (n.preventDefault(), n.stopPropagation(), !e && r((e) => !e));
79
+ }, [
80
+ t,
81
+ r,
82
+ e
83
+ ]);
84
+ return a(t, {
85
+ ref: i.setReference,
86
+ "aria-expanded": n,
87
+ "aria-controls": c,
88
+ onClick: l
89
+ });
90
+ }
91
+ //#endregion
92
+ //#region src/popover/components/Popover.tsx
93
+ var R = 16;
94
+ function z({ children: e, open: t, defaultOpen: n, onOpenChange: i, placement: a = "bottom" }) {
95
+ let [o, c] = p(n ?? !1), l = u(), d = t !== void 0, m = d ? t : o, x = s((e) => {
96
+ let t = typeof e == "function" ? e(m) : e;
97
+ d || c(t), i?.(t);
98
+ }, [
99
+ d,
100
+ i,
101
+ m
102
+ ]), C = f(null), { refs: w, floatingStyles: T, middlewareData: E, placement: D } = S({
103
+ open: m,
104
+ onOpenChange: x,
105
+ placement: a,
106
+ middleware: [
107
+ v(8),
108
+ _({ padding: R }),
109
+ y({ padding: R }),
110
+ b({
111
+ padding: R,
112
+ apply({ availableWidth: e, availableHeight: t, elements: n }) {
113
+ M({
114
+ availableWidth: e,
115
+ availableHeight: t,
116
+ floating: n.floating
117
+ });
118
+ }
119
+ }),
120
+ h({ element: C.current })
121
+ ],
122
+ whileElementsMounted: g
123
+ });
124
+ return /* @__PURE__ */ r(P.Provider, {
125
+ value: {
126
+ open: m,
127
+ setOpen: x,
128
+ refs: w,
129
+ floatingStyles: T,
130
+ placement: D,
131
+ middlewareData: E,
132
+ arrowRef: C,
133
+ contentId: l
134
+ },
135
+ children: e
136
+ });
137
+ }
138
+ z.Trigger = L, z.Content = I;
139
+ var B = {
140
+ tooltipPanel: "sZ0x6w",
141
+ tooltip: "_538Ejd",
142
+ negative: "fqciCO",
143
+ information: "sHkUiQ",
144
+ error: "bpGNoX",
145
+ warning: "tYnRg-",
146
+ success: "_8lflEh"
147
+ };
148
+ //#endregion
149
+ //#region src/popover/FloatingPopover.tsx
150
+ function V({ content: a, children: o, openOnHover: s = !0, placement: c = "bottom", openDelay: l = 200, closeDelay: u = 100, maxWidth: m, state: b, tooltip: D, positionUpdateKey: O }) {
151
+ let [k, A] = p(!1), M = f(null), { refs: N, floatingStyles: P, middlewareData: F, context: I, placement: L, update: R } = S({
152
+ open: k,
153
+ onOpenChange: A,
154
+ placement: c,
155
+ middleware: [
156
+ v(8),
157
+ _({
158
+ fallbackAxisSideDirection: "end",
159
+ fallbackPlacements: [
160
+ "top",
161
+ "right",
162
+ "bottom"
163
+ ]
164
+ }),
165
+ y({ padding: 8 }),
166
+ h({
167
+ element: M,
168
+ padding: 8
169
+ })
170
+ ],
171
+ whileElementsMounted: g
172
+ });
173
+ d(() => {
174
+ k && R();
175
+ }, [
176
+ k,
177
+ O,
178
+ R
179
+ ]);
180
+ let z = w(I, {
181
+ enabled: s,
182
+ move: !1,
183
+ delay: {
184
+ open: l,
185
+ close: u
186
+ }
187
+ }), V = C(I, { enabled: s }), H = x(I), U = E(I, { role: "tooltip" }), { getReferenceProps: W, getFloatingProps: G } = T([
188
+ z,
189
+ V,
190
+ H,
191
+ U
192
+ ]);
193
+ return /* @__PURE__ */ i(n, { children: [/* @__PURE__ */ r("span", {
194
+ ref: N.setReference,
195
+ ...W(),
196
+ style: { lineHeight: 1 },
197
+ children: o
198
+ }), k && j(/* @__PURE__ */ i("div", {
199
+ ref: N.setFloating,
200
+ style: {
201
+ ...P,
202
+ zIndex: "var(--z-tooltip)",
203
+ maxWidth: m ? `${m}em` : void 0
204
+ },
205
+ ...G(),
206
+ role: "tooltip",
207
+ className: t(B.tooltipPanel, D && B.tooltip, b && B[b]),
208
+ children: [a, /* @__PURE__ */ r(e, {
209
+ ref: M,
210
+ placement: L,
211
+ middlewareData: F
212
+ })]
213
+ }), document.body)] });
214
+ }
215
+ //#endregion
216
+ //#region src/popover/FloatingTooltip.tsx
217
+ function H({ x: t, y: n, children: a }) {
218
+ let o = f(null), { refs: s, floatingStyles: c, middlewareData: u, placement: d } = S({
219
+ strategy: "absolute",
220
+ placement: "top",
221
+ middleware: [
222
+ v(6),
223
+ _(),
224
+ y({ padding: 16 }),
225
+ h({ element: o })
226
+ ]
227
+ });
228
+ return l(() => {
229
+ s.setReference && s.setReference({ getBoundingClientRect: () => ({
230
+ x: t,
231
+ y: n,
232
+ width: 0,
233
+ height: 0,
234
+ top: n,
235
+ left: t,
236
+ bottom: n,
237
+ right: t,
238
+ toJSON: () => {}
239
+ }) });
240
+ }, [
241
+ t,
242
+ n,
243
+ s
244
+ ]), /* @__PURE__ */ i("div", {
245
+ ref: s.setFloating,
246
+ style: {
247
+ ...c,
248
+ position: "absolute",
249
+ pointerEvents: "none"
250
+ },
251
+ role: "tooltip",
252
+ className: B.tooltip,
253
+ children: [a, /* @__PURE__ */ r(e, {
254
+ ref: o,
255
+ placement: d,
256
+ middlewareData: u
257
+ })]
258
+ });
259
+ }
260
+ //#endregion
261
+ export { I as a, L as i, V as n, F as o, z as r, H as t };
262
+
263
+ //# sourceMappingURL=popover-BJH-yHvb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-BJH-yHvb.js","names":[],"sources":["../../src/popover/lib/applyPopoverAvailableSize.ts","../../src/popover/components/Popover.module.scss","../../src/popover/components/PopoverContext.tsx","../../src/popover/components/PopoverContent.tsx","../../src/popover/components/PopoverTrigger.tsx","../../src/popover/components/Popover.tsx","../../src/popover/Popover.module.scss","../../src/popover/FloatingPopover.tsx","../../src/popover/FloatingTooltip.tsx"],"sourcesContent":["type ApplyPopoverAvailableSizeOptions = {\n\treadonly availableWidth: number;\n\treadonly availableHeight: number;\n\treadonly floating: HTMLElement;\n};\n\n/**\n * Передаёт вычисленную Floating UI доступную область самому popover через CSS-переменные.\n * Потребитель может совместить эти границы со своим размером и режимом прокрутки,\n * не дублируя `size()` middleware и правила clipping context.\n */\nexport function applyPopoverAvailableSize({ availableWidth, availableHeight, floating }: ApplyPopoverAvailableSizeOptions) {\n\tfloating.style.setProperty(\"--popover-available-width\", `${Math.max(0, availableWidth)}px`);\n\tfloating.style.setProperty(\"--popover-available-height\", `${Math.max(0, availableHeight)}px`);\n}\n",".popover {\n\tpadding: var(--space-sm);\n\t// background-image: radial-gradient(var(--surface-0) 50%, var(--surface-1) 100%);\n\n\tborder: var(--border-width) solid var(--border-1);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-0);\n\n\tfilter: drop-shadow(var(--shadow-md));\n\n\tz-index: var(--z-popover);\n\n\t&.primary {\n\t\tbackground-color: var(--surface-0);\n\t}\n\n\t&.secondary {\n\t\tbackground-color: var(--surface-1);\n\t}\n}\n","import React, { createContext, useContext } from \"react\";\n\nimport { useFloating, type Placement } from \"@floating-ui/react\";\nimport { createMissingContextError } from \"@ryuzaki13/react-foundation-lib/error\";\n\ninterface PopoverContextValue {\n\topen: boolean;\n\tsetOpen: React.Dispatch<React.SetStateAction<boolean>>;\n\trefs: ReturnType<typeof useFloating>[\"refs\"];\n\tfloatingStyles: React.CSSProperties;\n\tplacement: Placement;\n\tmiddlewareData: ReturnType<typeof useFloating>[\"middlewareData\"];\n\tarrowRef: React.RefObject<HTMLDivElement | null>;\n\tcontentId: string;\n}\n\nexport const PopoverContext = createContext<PopoverContextValue | null>(null);\n\nexport function usePopoverContext() {\n\tconst context = useContext(PopoverContext);\n\tif (!context) {\n\t\tthrow createMissingContextError({\n\t\t\thookName: \"usePopoverContext\",\n\t\t\tproviderName: \"Popover\"\n\t\t});\n\t}\n\treturn context;\n}\n","import React, { useCallback, useRef } from \"react\";\n\nimport { FloatingPortal } from \"@floating-ui/react\";\nimport { useClickOutside, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { TooltipArrow } from \"../../floating-arrow\";\n\nimport styles from \"./Popover.module.scss\";\nimport { usePopoverContext } from \"./PopoverContext\";\n\nexport type PopoverContentProps = Readonly<{\n\tchildren: React.ReactNode | ((ctx: { setClose: () => void }) => React.ReactNode);\n\tonClose?: () => void;\n\tcloseOnOutside?: boolean;\n\tcloseOnEscape?: boolean;\n\tdisableOutsideClick?: boolean;\n\tbackground?: \"primary\" | \"secondary\";\n}> &\n\tPick<React.HTMLAttributes<HTMLDivElement>, \"role\" | \"aria-label\" | \"aria-labelledby\" | \"aria-describedby\">;\n\n/**\n * Содержимое немодального Popover, отображаемое в портале.\n * Компонент не навязывает ARIA-role: consumer задаёт семантику содержимого\n * явно и добавляет доступное имя для ролей, которым оно требуется.\n */\nexport function PopoverContent({\n\tchildren,\n\tonClose,\n\tcloseOnOutside = true,\n\tcloseOnEscape = true,\n\tdisableOutsideClick = false,\n\tbackground = \"secondary\",\n\trole,\n\t\"aria-label\": ariaLabel,\n\t\"aria-labelledby\": ariaLabelledBy,\n\t\"aria-describedby\": ariaDescribedBy\n}: PopoverContentProps) {\n\tconst { open, setOpen, refs, floatingStyles, middlewareData, placement, arrowRef, contentId } = usePopoverContext();\n\tconst floatingElementRef = useRef<HTMLDivElement | null>(null);\n\tconst setFloating = useCallback(\n\t\t(node: HTMLDivElement | null) => {\n\t\t\tfloatingElementRef.current = node;\n\t\t\trefs.setFloating(node);\n\t\t},\n\t\t[refs]\n\t);\n\n\tconst floatingRef = useOverlayFocus<HTMLDivElement>({\n\t\tactive: open,\n\t\tinitialFocus: \"container\",\n\t\trestoreFocus: true,\n\t\tcontainerRef: floatingElementRef\n\t});\n\n\tconst setClose = useCallback(() => {\n\t\tif (!open) return;\n\t\tsetOpen(false);\n\t\tonClose?.();\n\t}, [setOpen, onClose, open]);\n\n\tuseEscapeDismiss({\n\t\tactive: open,\n\t\tenabled: closeOnEscape,\n\t\tonDismiss: setClose,\n\t\tcontainerRef: floatingRef as React.RefObject<HTMLElement | null>\n\t});\n\n\tconst outsideClose = useCallback(() => {\n\t\tif (!open || disableOutsideClick) return;\n\t\tif (closeOnOutside) setClose();\n\t}, [open, disableOutsideClick, closeOnOutside, setClose]);\n\n\tuseClickOutside([refs.floating as React.RefObject<HTMLElement>, refs.reference as React.RefObject<HTMLElement>], outsideClose);\n\n\tif (!open) return null;\n\n\treturn (\n\t\t<FloatingPortal>\n\t\t\t<div\n\t\t\t\tid={contentId}\n\t\t\t\tref={setFloating}\n\t\t\t\tstyle={floatingStyles}\n\t\t\t\tclassName={cn(styles.popover, styles[background])}\n\t\t\t\trole={role}\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\ttabIndex={-1}>\n\t\t\t\t{typeof children === \"function\" ? children({ setClose }) : children}\n\t\t\t\t<TooltipArrow ref={arrowRef} placement={placement} middlewareData={middlewareData} />\n\t\t\t</div>\n\t\t</FloatingPortal>\n\t);\n}\n","import React, { cloneElement, useCallback } from \"react\";\n\nimport { usePopoverContext } from \"./PopoverContext\";\n\nexport interface PopoverTriggerProps {\n\tpassive?: true;\n\tchildren: React.ReactElement<React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }>;\n}\n\nexport function PopoverTrigger({ passive, children }: PopoverTriggerProps) {\n\tconst { open, setOpen, refs, contentId } = usePopoverContext();\n\tconst ariaControls = [children.props[\"aria-controls\"], contentId].filter(Boolean).join(\" \");\n\n\tconst handleClick = useCallback(\n\t\t(e: React.MouseEvent) => {\n\t\t\tif (children.props.onClick) {\n\t\t\t\tchildren.props.onClick(e);\n\t\t\t}\n\t\t\tif (e.defaultPrevented) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tif (passive) return;\n\n\t\t\tsetOpen((v) => !v);\n\t\t},\n\t\t[children, setOpen, passive]\n\t);\n\n\treturn cloneElement(children as React.JSX.Element, {\n\t\tref: refs.setReference,\n\t\t\"aria-expanded\": open,\n\t\t\"aria-controls\": ariaControls,\n\t\tonClick: handleClick\n\t});\n}\n","import React, { useCallback, useId, useRef, useState } from \"react\";\n\nimport { arrow, autoUpdate, flip, offset, shift, size as floatingSize, useFloating, type Placement } from \"@floating-ui/react\";\n\nimport { applyPopoverAvailableSize } from \"../lib/applyPopoverAvailableSize\";\n\nimport { PopoverContent } from \"./PopoverContent\";\nimport { PopoverContext } from \"./PopoverContext\";\nimport { PopoverTrigger } from \"./PopoverTrigger\";\n\nconst POPOVER_VIEWPORT_PADDING = 16;\n\nexport interface PopoverProps {\n\tchildren: React.ReactNode;\n\tplacement?: Placement;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Якорный немодальный Popover.\n * Используется в связке с Popover.Trigger и Popover.Content; для блокирующих\n * сценариев с недоступным фоном следует использовать Dialog или Modal.\n */\nexport function Popover({ children, open: controlledOpen, defaultOpen, onOpenChange, placement = \"bottom\" }: PopoverProps) {\n\tconst [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen ?? false);\n\tconst contentId = useId();\n\n\tconst isControlled = controlledOpen !== undefined;\n\tconst open = isControlled ? controlledOpen : uncontrolledOpen;\n\tconst setOpen = useCallback<React.Dispatch<React.SetStateAction<boolean>>>(\n\t\t(value) => {\n\t\t\tconst next = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (!isControlled) setUncontrolledOpen(next);\n\t\t\tonOpenChange?.(next);\n\t\t},\n\t\t[isControlled, onOpenChange, open]\n\t);\n\n\tconst arrowRef = useRef<HTMLDivElement | null>(null);\n\n\tconst {\n\t\trefs,\n\t\tfloatingStyles,\n\t\tmiddlewareData,\n\t\tplacement: actualPlacement\n\t} = useFloating({\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tplacement,\n\t\tmiddleware: [\n\t\t\toffset(8),\n\t\t\tflip({ padding: POPOVER_VIEWPORT_PADDING }),\n\t\t\tshift({ padding: POPOVER_VIEWPORT_PADDING }),\n\t\t\tfloatingSize({\n\t\t\t\tpadding: POPOVER_VIEWPORT_PADDING,\n\t\t\t\tapply({ availableWidth, availableHeight, elements }) {\n\t\t\t\t\tapplyPopoverAvailableSize({ availableWidth, availableHeight, floating: elements.floating });\n\t\t\t\t}\n\t\t\t}),\n\t\t\t// eslint-disable-next-line react-hooks/refs\n\t\t\tarrow({ element: arrowRef.current })\n\t\t],\n\t\twhileElementsMounted: autoUpdate\n\t});\n\n\treturn (\n\t\t<PopoverContext.Provider\n\t\t\tvalue={{ open, setOpen, refs, floatingStyles, placement: actualPlacement, middlewareData, arrowRef, contentId }}>\n\t\t\t{children}\n\t\t</PopoverContext.Provider>\n\t);\n}\n\n/**\n * Композиционное API:\n * <Popover>\n * <Popover.Trigger />\n * <Popover.Content />\n * </Popover>\n */\nPopover.Trigger = PopoverTrigger;\nPopover.Content = PopoverContent;\n",".tooltipPanel {\n\tpadding: var(--space-sm);\n\t// background-image: radial-gradient(var(--surface-0) 50%, var(--surface-1) 100%);\n\tbackground-color: var(--surface-1);\n\tborder: var(--border-width) solid var(--border-2);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-0);\n\n\tfilter: drop-shadow(var(--shadow-sm));\n\n\t&.negative {\n\t\t--border-1: var(--content-0);\n\n\t\tbackground-color: var(--content-0);\n\t\tborder-color: var(--border-1);\n\t\tcolor: var(--surface-1);\n\t}\n\n\t&.information {\n\t\t--border-1: var(--info-text);\n\n\t\tbackground-color: var(--info-text);\n\t\tborder-color: var(--info-text);\n\t\tcolor: var(--info-on-fill);\n\t}\n\n\t&.error {\n\t\t--border-1: var(--error-text);\n\n\t\tbackground-color: var(--error-text);\n\t\tborder-color: var(--error-text);\n\t\tcolor: var(--error-on-fill);\n\t}\n\n\t&.warning {\n\t\t--border-1: var(--warning-text);\n\n\t\tbackground-color: var(--warning-text);\n\t\tborder-color: var(--warning-text);\n\t\tcolor: var(--warning-on-fill);\n\t}\n\n\t&.success {\n\t\t--border-1: var(--success-text);\n\n\t\tbackground-color: var(--success-text);\n\t\tborder-color: var(--success-text);\n\t\tcolor: var(--success-on-fill);\n\t}\n}\n\n.tooltip {\n\tz-index: var(--z-tooltip);\n\tpointer-events: none;\n\n\ttext-align: initial;\n\tfont-size: var(--font-size-sm);\n\tfont-style: normal;\n\tfont-weight: 500;\n\tfont-variation-settings: \"wght\" 500;\n\tline-height: var(--line-height);\n\n\t@extend .tooltipPanel;\n}\n","/* eslint-disable react-hooks/refs */\nimport React, { useLayoutEffect, useRef, useState } from \"react\";\n\nimport {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\toffset,\n\tPlacement,\n\tshift,\n\tuseDismiss,\n\tuseFocus,\n\tuseFloating,\n\tuseHover,\n\tuseInteractions,\n\tuseRole\n} from \"@floating-ui/react\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { createPortal } from \"react-dom\";\n\nimport { FloatingArrow } from \"../floating-arrow/FloatingArrow\";\n\nimport styles from \"./Popover.module.scss\";\n\ninterface FloatingPopoverProps {\n\tcontent: React.ReactNode;\n\tchildren: React.ReactNode;\n\topenOnHover?: boolean;\n\tplacement?: Placement;\n\topenDelay?: number;\n\tcloseDelay?: number;\n\tmaxWidth?: number;\n\tstate?: \"information\" | \"error\" | \"warning\" | \"success\" | \"negative\";\n\ttooltip?: true;\n\t/**\n\t * Изменяется вместе с CSS-координатой trigger, когда её изменение не отслеживается `autoUpdate`.\n\t * После commit React выполняется повторный расчёт позиции открытой floating-панели.\n\t */\n\tpositionUpdateKey?: unknown;\n}\n\nexport function FloatingPopover({\n\tcontent,\n\tchildren,\n\topenOnHover = true,\n\tplacement = \"bottom\",\n\topenDelay = 200,\n\tcloseDelay = 100,\n\tmaxWidth,\n\tstate,\n\ttooltip,\n\tpositionUpdateKey\n}: FloatingPopoverProps) {\n\tconst [open, setOpen] = useState(false);\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\trefs,\n\t\tfloatingStyles,\n\t\tmiddlewareData,\n\t\tcontext,\n\t\tplacement: computedPlacement,\n\t\tupdate\n\t} = useFloating({\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tplacement,\n\t\tmiddleware: [\n\t\t\toffset(8),\n\t\t\tflip({ fallbackAxisSideDirection: \"end\", fallbackPlacements: [\"top\", \"right\", \"bottom\"] }),\n\t\t\tshift({ padding: 8 }),\n\t\t\tarrow({ element: arrowRef, padding: 8 })\n\t\t],\n\t\twhileElementsMounted: autoUpdate\n\t});\n\n\tuseLayoutEffect(() => {\n\t\tif (open) {\n\t\t\tvoid update();\n\t\t}\n\t}, [open, positionUpdateKey, update]);\n\n\tconst hover = useHover(context, {\n\t\tenabled: openOnHover,\n\t\tmove: false,\n\t\tdelay: {\n\t\t\topen: openDelay,\n\t\t\tclose: closeDelay\n\t\t}\n\t});\n\t// Hover-подсказка обязана иметь ту же пассивную точку входа с клавиатуры.\n\t// Связываем focus с тем же флагом, чтобы `openOnHover={false}` не менял\n\t// управляемые сценарии, которые не запрашивали автоматическое открытие.\n\tconst focus = useFocus(context, { enabled: openOnHover });\n\tconst dismiss = useDismiss(context);\n\tconst role = useRole(context, { role: \"tooltip\" });\n\n\tconst { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]);\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={refs.setReference} {...getReferenceProps()} style={{ lineHeight: 1 }}>\n\t\t\t\t{children}\n\t\t\t</span>\n\n\t\t\t{open &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{ ...floatingStyles, zIndex: \"var(--z-tooltip)\", maxWidth: maxWidth ? `${maxWidth}em` : undefined }}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t\trole=\"tooltip\"\n\t\t\t\t\t\tclassName={cn(styles.tooltipPanel, tooltip && styles.tooltip, state && styles[state])}>\n\t\t\t\t\t\t{content}\n\n\t\t\t\t\t\t<FloatingArrow ref={arrowRef} placement={computedPlacement} middlewareData={middlewareData} />\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body\n\t\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, { useEffect, useRef } from \"react\";\n\nimport { arrow, flip, offset, shift, useFloating } from \"@floating-ui/react\";\n\nimport { FloatingArrow } from \"../floating-arrow/FloatingArrow\";\n\nimport styles from \"./Popover.module.scss\";\n\nexport function FloatingTooltip({ x, y, children }: { x: number; y: number; children: React.ReactNode }) {\n\tconst arrowRef = useRef<HTMLDivElement | null>(null);\n\n\tconst {\n\t\trefs,\n\t\tfloatingStyles,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tstrategy: \"absolute\",\n\t\tplacement: \"top\",\n\t\t// eslint-disable-next-line react-hooks/refs\n\t\tmiddleware: [offset(6), flip(), shift({ padding: 16 }), arrow({ element: arrowRef })]\n\t});\n\n\tuseEffect(() => {\n\t\tif (refs.setReference) {\n\t\t\trefs.setReference({\n\t\t\t\tgetBoundingClientRect: () =>\n\t\t\t\t\t({\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\ttop: y,\n\t\t\t\t\t\tleft: x,\n\t\t\t\t\t\tbottom: y,\n\t\t\t\t\t\tright: x,\n\t\t\t\t\t\ttoJSON: () => {}\n\t\t\t\t\t}) as DOMRect\n\t\t\t});\n\t\t}\n\t}, [x, y, refs]);\n\n\treturn (\n\t\t<div\n\t\t\tref={refs.setFloating}\n\t\t\tstyle={{ ...floatingStyles, position: \"absolute\", pointerEvents: \"none\" }}\n\t\t\trole=\"tooltip\"\n\t\t\tclassName={styles.tooltip}>\n\t\t\t{children}\n\n\t\t\t<FloatingArrow ref={arrowRef} placement={computedPlacement} middlewareData={middlewareData} />\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;;AAWA,SAAgB,EAA0B,EAAE,mBAAgB,oBAAiB,eAA8C;CAE1H,AADA,EAAS,MAAM,YAAY,6BAA6B,GAAG,KAAK,IAAI,GAAG,CAAc,EAAE,GAAG,GAC1F,EAAS,MAAM,YAAY,8BAA8B,GAAG,KAAK,IAAI,GAAG,CAAe,EAAE,GAAG;AAC7F;;;;;GEEa,IAAiB,EAA0C,IAAI;AAE5E,SAAgB,IAAoB;CACnC,IAAM,IAAU,EAAW,CAAc;CACzC,IAAI,CAAC,GACJ,MAAM,EAA0B;EAC/B,UAAU;EACV,cAAc;CACf,CAAC;CAEF,OAAO;AACR;;;ACDA,SAAgB,EAAe,EAC9B,aACA,YACA,oBAAiB,IACjB,mBAAgB,IAChB,yBAAsB,IACtB,gBAAa,aACb,SACA,cAAc,GACd,mBAAmB,GACnB,oBAAoB,KACG;CACvB,IAAM,EAAE,SAAM,YAAS,SAAM,mBAAgB,mBAAgB,cAAW,aAAU,iBAAc,EAAkB,GAC5G,IAAqB,EAA8B,IAAI,GACvD,IAAc,GAClB,MAAgC;EAEhC,AADA,EAAmB,UAAU,GAC7B,EAAK,YAAY,CAAI;CACtB,GACA,CAAC,CAAI,CACN,GAEM,IAAc,EAAgC;EACnD,QAAQ;EACR,cAAc;EACd,cAAc;EACd,cAAc;CACf,CAAC,GAEK,IAAW,QAAkB;EAC7B,MACL,EAAQ,EAAK,GACb,IAAU;CACX,GAAG;EAAC;EAAS;EAAS;CAAI,CAAC;CAE3B,EAAiB;EAChB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,cAAc;CACf,CAAC;CAED,IAAM,IAAe,QAAkB;EAClC,CAAC,KAAQ,KACT,KAAgB,EAAS;CAC9B,GAAG;EAAC;EAAM;EAAqB;EAAgB;CAAQ,CAAC;CAMxD,OAJA,EAAgB,CAAC,EAAK,UAA0C,EAAK,SAAyC,GAAG,CAAY,GAExH,IAGJ,kBAAC,GAAD,EAAA,UACC,kBAAC,OAAD;EACC,IAAI;EACJ,KAAK;EACL,OAAO;EACP,WAAW,EAAG,EAAO,SAAS,EAAO,EAAW;EAC1C;EACN,cAAY;EACZ,mBAAiB;EACjB,oBAAkB;EAClB,UAAU;EATX,UAAA,CAUE,OAAO,KAAa,aAAa,EAAS,EAAE,YAAS,CAAC,IAAI,GAC3D,kBAAC,GAAD;GAAc,KAAK;GAAqB;GAA2B;EAAiB,CAAA,CAChF;CACU,CAAA,EAAA,CAAA,IAjBC;AAmBnB;;;ACrFA,SAAgB,EAAe,EAAE,YAAS,eAAiC;CAC1E,IAAM,EAAE,SAAM,YAAS,SAAM,iBAAc,EAAkB,GACvD,IAAe,CAAC,EAAS,MAAM,kBAAkB,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,GAEpF,IAAc,GAClB,MAAwB;EACxB,AAAI,EAAS,MAAM,WAClB,EAAS,MAAM,QAAQ,CAAC,GAErB,GAAE,qBAGN,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAEd,MAEJ,GAAS,MAAM,CAAC,CAAC;CAClB,GACA;EAAC;EAAU;EAAS;CAAO,CAC5B;CAEA,OAAO,EAAa,GAA+B;EAClD,KAAK,EAAK;EACV,iBAAiB;EACjB,iBAAiB;EACjB,SAAS;CACV,CAAC;AACF;;;AC3BA,IAAM,IAA2B;AAejC,SAAgB,EAAQ,EAAE,aAAU,MAAM,GAAgB,gBAAa,iBAAc,eAAY,YAA0B;CAC1H,IAAM,CAAC,GAAkB,KAAuB,EAAS,KAAe,EAAK,GACvE,IAAY,EAAM,GAElB,IAAe,MAAmB,KAAA,GAClC,IAAO,IAAe,IAAiB,GACvC,IAAU,GACd,MAAU;EACV,IAAM,IAAO,OAAO,KAAU,aAAa,EAAM,CAAI,IAAI;EAEzD,AADK,KAAc,EAAoB,CAAI,GAC3C,IAAe,CAAI;CACpB,GACA;EAAC;EAAc;EAAc;CAAI,CAClC,GAEM,IAAW,EAA8B,IAAI,GAE7C,EACL,SACA,mBACA,mBACA,WAAW,MACR,EAAY;EACf;EACA,cAAc;EACd;EACA,YAAY;GACX,EAAO,CAAC;GACR,EAAK,EAAE,SAAS,EAAyB,CAAC;GAC1C,EAAM,EAAE,SAAS,EAAyB,CAAC;GAC3C,EAAa;IACZ,SAAS;IACT,MAAM,EAAE,mBAAgB,oBAAiB,eAAY;KACpD,EAA0B;MAAE;MAAgB;MAAiB,UAAU,EAAS;KAAS,CAAC;IAC3F;GACD,CAAC;GAED,EAAM,EAAE,SAAS,EAAS,QAAQ,CAAC;EACpC;EACA,sBAAsB;CACvB,CAAC;CAED,OACC,kBAAC,EAAe,UAAhB;EACC,OAAO;GAAE;GAAM;GAAS;GAAM;GAAgB,WAAW;GAAiB;GAAgB;GAAU;EAAU;EAC7G;CACuB,CAAA;AAE3B;AASA,EAAQ,UAAU,GAClB,EAAQ,UAAU;;;;;;;;;;;;AE1ClB,SAAgB,EAAgB,EAC/B,YACA,aACA,iBAAc,IACd,eAAY,UACZ,eAAY,KACZ,gBAAa,KACb,aACA,UACA,YACA,wBACwB;CACxB,IAAM,CAAC,GAAM,KAAW,EAAS,EAAK,GAChC,IAAW,EAAuB,IAAI,GAEtC,EACL,SACA,mBACA,mBACA,YACA,WAAW,GACX,cACG,EAAY;EACf;EACA,cAAc;EACd;EACA,YAAY;GACX,EAAO,CAAC;GACR,EAAK;IAAE,2BAA2B;IAAO,oBAAoB;KAAC;KAAO;KAAS;IAAQ;GAAE,CAAC;GACzF,EAAM,EAAE,SAAS,EAAE,CAAC;GACpB,EAAM;IAAE,SAAS;IAAU,SAAS;GAAE,CAAC;EACxC;EACA,sBAAsB;CACvB,CAAC;CAED,QAAsB;EACrB,AAAI,KACH,EAAY;CAEd,GAAG;EAAC;EAAM;EAAmB;CAAM,CAAC;CAEpC,IAAM,IAAQ,EAAS,GAAS;EAC/B,SAAS;EACT,MAAM;EACN,OAAO;GACN,MAAM;GACN,OAAO;EACR;CACD,CAAC,GAIK,IAAQ,EAAS,GAAS,EAAE,SAAS,EAAY,CAAC,GAClD,IAAU,EAAW,CAAO,GAC5B,IAAO,EAAQ,GAAS,EAAE,MAAM,UAAU,CAAC,GAE3C,EAAE,sBAAmB,wBAAqB,EAAgB;EAAC;EAAO;EAAO;EAAS;CAAI,CAAC;CAE7F,OACC,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,QAAD;EAAM,KAAK,EAAK;EAAc,GAAI,EAAkB;EAAG,OAAO,EAAE,YAAY,EAAE;EAC5E;CACI,CAAA,GAEL,KACA,EACC,kBAAC,OAAD;EACC,KAAK,EAAK;EACV,OAAO;GAAE,GAAG;GAAgB,QAAQ;GAAoB,UAAU,IAAW,GAAG,EAAS,MAAM,KAAA;EAAU;EACzG,GAAI,EAAiB;EACrB,MAAK;EACL,WAAW,EAAG,EAAO,cAAc,KAAW,EAAO,SAAS,KAAS,EAAO,EAAM;EALrF,UAAA,CAME,GAED,kBAAC,GAAD;GAAe,KAAK;GAAU,WAAW;GAAmC;EAAiB,CAAA,CACzF;CACL,CAAA,GAAA,SAAS,IACV,CACA,EAAA,CAAA;AAEJ;;;ACjHA,SAAgB,EAAgB,EAAE,MAAG,MAAG,eAAiE;CACxG,IAAM,IAAW,EAA8B,IAAI,GAE7C,EACL,SACA,mBACA,mBACA,WAAW,MACR,EAAY;EACf,UAAU;EACV,WAAW;EAEX,YAAY;GAAC,EAAO,CAAC;GAAG,EAAK;GAAG,EAAM,EAAE,SAAS,GAAG,CAAC;GAAG,EAAM,EAAE,SAAS,EAAS,CAAC;EAAC;CACrF,CAAC;CAqBD,OAnBA,QAAgB;EACf,AAAI,EAAK,gBACR,EAAK,aAAa,EACjB,8BACE;GACA;GACA;GACA,OAAO;GACP,QAAQ;GACR,KAAK;GACL,MAAM;GACN,QAAQ;GACR,OAAO;GACP,cAAc,CAAC;EAChB,GACF,CAAC;CAEH,GAAG;EAAC;EAAG;EAAG;CAAI,CAAC,GAGd,kBAAC,OAAD;EACC,KAAK,EAAK;EACV,OAAO;GAAE,GAAG;GAAgB,UAAU;GAAY,eAAe;EAAO;EACxE,MAAK;EACL,WAAW,EAAO;EAJnB,UAAA,CAKE,GAED,kBAAC,GAAD;GAAe,KAAK;GAAU,WAAW;GAAmC;EAAiB,CAAA,CACzF;;AAEP"}
@@ -0,0 +1,125 @@
1
+ import { t as e } from "./ui.module-oRwY3Zli.js";
2
+ import { cn as t, getRovingFocusTargetIndex as n, handleKeyboardActivation as r } from "@ryuzaki13/react-foundation-lib/utils";
3
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ import { createContext as o, useCallback as s, useContext as c, useId as l, useLayoutEffect as u, useMemo as d, useState as f } from "react";
5
+ var p = {
6
+ radioGroup: "nINbA6",
7
+ noWrap: "GL-UWx",
8
+ horizontal: "_6PeF-i",
9
+ vertical: "_5wP4aR",
10
+ radioItem: "S3MnZI",
11
+ checked: "KHJ0ja",
12
+ radioItemContent: "oGmcQH"
13
+ }, m = o(null);
14
+ function h({ value: n, onChange: r, label: o, description: c, disabled: u, className: h, noWrap: g, orientation: _ = "horizontal", "aria-label": v, children: y }) {
15
+ let b = l(), x = o ? `${b}-label` : void 0, S = c ? `${b}-description` : void 0, [C, w] = f([]), T = s((e) => r?.(e), [r]), E = s((e) => (w((t) => t.includes(e) ? t : [...t, e]), () => {
16
+ w((t) => t.filter((t) => t !== e));
17
+ }), []), D = d(() => ({
18
+ value: n,
19
+ onChange: T,
20
+ disabled: u,
21
+ orientation: _,
22
+ groupId: b,
23
+ labelId: x,
24
+ descriptionId: S,
25
+ firstOptionId: C[0],
26
+ registerOption: E
27
+ }), [
28
+ S,
29
+ u,
30
+ b,
31
+ T,
32
+ x,
33
+ _,
34
+ E,
35
+ C,
36
+ n
37
+ ]);
38
+ return /* @__PURE__ */ a("div", {
39
+ className: t(e.uiElement, u && e.disabled, h),
40
+ children: [
41
+ o && /* @__PURE__ */ i("div", {
42
+ id: x,
43
+ className: e.uiLabel,
44
+ children: o
45
+ }),
46
+ c && /* @__PURE__ */ i("div", {
47
+ id: S,
48
+ className: e.uiDescription,
49
+ children: c
50
+ }),
51
+ /* @__PURE__ */ i(m.Provider, {
52
+ value: D,
53
+ children: /* @__PURE__ */ i("div", {
54
+ role: "radiogroup",
55
+ "aria-labelledby": x,
56
+ "aria-label": x ? void 0 : v,
57
+ "aria-describedby": S,
58
+ "aria-disabled": u || void 0,
59
+ "data-disabled": u || void 0,
60
+ className: t(e.uiInputControl, p.radioGroup, g && p.noWrap, p[_]),
61
+ children: y
62
+ })
63
+ })
64
+ ]
65
+ });
66
+ }
67
+ function g({ value: e, label: o, description: s, className: d }) {
68
+ let f = c(m), h = l(), g = f?.registerOption;
69
+ if (u(() => {
70
+ if (g) return g(h);
71
+ }, [g, h]), !f) return /* @__PURE__ */ a("div", {
72
+ className: t(p.radioItem, d),
73
+ children: [/* @__PURE__ */ i("p", {
74
+ className: "textNoWrap",
75
+ children: o
76
+ }), s && /* @__PURE__ */ i("div", {
77
+ className: "fontSizeSm content2",
78
+ children: s
79
+ })]
80
+ });
81
+ let _ = Object.is(f.value, e), v = f.disabled === !0, y = f.value === void 0 && f.firstOptionId === h, b = () => {
82
+ v || _ || f.onChange?.(e);
83
+ };
84
+ return /* @__PURE__ */ i("button", {
85
+ id: `${f.groupId}-option-${h}`,
86
+ type: "button",
87
+ role: "radio",
88
+ "aria-checked": _,
89
+ disabled: v,
90
+ tabIndex: _ || y ? 0 : -1,
91
+ className: t(p.radioItem, _ && p.checked, d),
92
+ "data-ui": "radio-option",
93
+ "data-action": "select-radio-option",
94
+ onClick: b,
95
+ onKeyDown: (e) => {
96
+ if (v || r(e, b)) return;
97
+ let t = e.currentTarget, i = t.closest("[role=\"radiogroup\"]"), a = Array.from(i?.querySelectorAll("[role=\"radio\"]:not([disabled])") ?? []);
98
+ if (!a.length) return;
99
+ let o = a.indexOf(t);
100
+ if (o === -1) return;
101
+ let s = n({
102
+ currentIndex: o,
103
+ itemCount: a.length,
104
+ key: e.key,
105
+ orientation: f.orientation
106
+ });
107
+ s !== null && (e.preventDefault(), a[s]?.focus(), a[s]?.click());
108
+ },
109
+ children: /* @__PURE__ */ a("span", {
110
+ className: p.radioItemContent,
111
+ children: [/* @__PURE__ */ i("span", {
112
+ className: "textNoWrap",
113
+ children: o
114
+ }), s && /* @__PURE__ */ i("span", {
115
+ className: "fontSizeSm",
116
+ children: s
117
+ })]
118
+ })
119
+ });
120
+ }
121
+ h.Option = g;
122
+ //#endregion
123
+ export { h as n, g as t };
124
+
125
+ //# sourceMappingURL=radio-group-CW-K1n9c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-sSnlYjAX.js","names":[],"sources":["../../src/radio-group/RadioGroup.module.scss","../../src/radio-group/RadioGroup.tsx"],"sourcesContent":[".radioGroup {\n\tdisplay: flex;\n\talign-content: flex-start;\n\tflex-wrap: wrap;\n\t// min-height: var(--control-height);\n\theight: auto;\n\n\t&.noWrap {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.horizontal {\n\t\tflex-direction: row;\n\t}\n\n\t&.vertical {\n\t\tflex-direction: column;\n\t\talign-content: stretch;\n\t}\n}\n\n.radioItem {\n\tflex: 1 0 0%;\n\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-sm);\n\n\tcolor: var(--content-2);\n\t// border: var(--border-width) solid transparent;\n\tborder-radius: var(--radius-xs);\n\tpadding: 0 var(--space-md);\n\tmargin: var(--border-width);\n\t// baseInputControl = --control-height, + borderTop/Bottom + transparentLineTop/Bottom\n\tmin-height: calc(var(--control-height) - calc(var(--border-width) * 4));\n\n\tcursor: pointer;\n\n\t&:hover {\n\t\tcolor: var(--content-1);\n\t\tbackground-color: var(--surface-2);\n\t\t// border-color: var(--border-1);\n\t}\n\n\t&.checked {\n\t\tcolor: var(--brand-on-fill);\n\t\tbackground-color: var(--brand-fill);\n\t\t// border-color: var(--border-0);\n\t}\n\n\t&:disabled {\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.radioItemContent {\n\tflex: 1 0 0%;\n\n\tdisplay: grid;\n\talign-content: center;\n\tgap: var(--space-sm);\n}\n\n// .radioItemIcon {\n// \tflex: 0 0 0%;\n\n// \tsvg {\n// \t\twidth: 1em;\n// \t\theight: 1em;\n// \t}\n// }\n","import React, { createContext, KeyboardEvent, ReactNode, useCallback, useContext, useId, useLayoutEffect, useMemo, useState } from \"react\";\n\nimport { cn, getRovingFocusTargetIndex, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./RadioGroup.module.scss\";\n\ninterface RadioGroupContextValue {\n\tvalue?: unknown;\n\tonChange?: (value: unknown) => void;\n\tdisabled?: boolean;\n\torientation: \"vertical\" | \"horizontal\";\n\tgroupId: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\tfirstOptionId?: string;\n\tregisterOption: (optionId: string) => () => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\ninterface RadioGroupProps<T> {\n\tvalue?: T;\n\tonChange?: (value: T) => void;\n\tlabel?: string;\n\tdescription?: string;\n\tdisabled?: boolean;\n\tclassName?: string;\n\tnoWrap?: true;\n\torientation?: \"vertical\" | \"horizontal\";\n\t\"aria-label\"?: string;\n\tchildren: React.ReactNode;\n}\n\n/**\n * Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.\n */\nexport function RadioGroup<T>({\n\tvalue,\n\tonChange,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tnoWrap,\n\torientation = \"horizontal\",\n\t\"aria-label\": ariaLabel,\n\tchildren\n}: RadioGroupProps<T>) {\n\tconst groupId = useId();\n\tconst labelId = label ? `${groupId}-label` : undefined;\n\tconst descriptionId = description ? `${groupId}-description` : undefined;\n\tconst [registeredOptionIds, setRegisteredOptionIds] = useState<string[]>([]);\n\tconst handleChange = useCallback((nextValue: unknown) => onChange?.(nextValue as T), [onChange]);\n\n\t/**\n\t * Хранит порядок опций внутри группы, чтобы при отсутствии выбранного значения\n\t * оставлять ровно один tab stop на первой доступной радиокнопке.\n\t */\n\tconst registerOption = useCallback((optionId: string) => {\n\t\tsetRegisteredOptionIds((currentIds) => (currentIds.includes(optionId) ? currentIds : [...currentIds, optionId]));\n\n\t\treturn () => {\n\t\t\tsetRegisteredOptionIds((currentIds) => currentIds.filter((currentId) => currentId !== optionId));\n\t\t};\n\t}, []);\n\n\tconst contextValue = useMemo(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tonChange: handleChange,\n\t\t\tdisabled,\n\t\t\torientation,\n\t\t\tgroupId,\n\t\t\tlabelId,\n\t\t\tdescriptionId,\n\t\t\tfirstOptionId: registeredOptionIds[0],\n\t\t\tregisterOption\n\t\t}),\n\t\t[descriptionId, disabled, groupId, handleChange, labelId, orientation, registerOption, registeredOptionIds, value]\n\t);\n\n\treturn (\n\t\t<div className={cn(uiStyles.uiElement, disabled && uiStyles.disabled, className)}>\n\t\t\t{label && (\n\t\t\t\t<div id={labelId} className={uiStyles.uiLabel}>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{description && (\n\t\t\t\t<div id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<RadioGroupContext.Provider value={contextValue}>\n\t\t\t\t<div\n\t\t\t\t\trole=\"radiogroup\"\n\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\taria-label={labelId ? undefined : ariaLabel}\n\t\t\t\t\taria-describedby={descriptionId}\n\t\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.radioGroup, noWrap && styles.noWrap, styles[orientation])}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</RadioGroupContext.Provider>\n\t\t</div>\n\t);\n}\n\ninterface OptionProps<T> {\n\tvalue: T;\n\tlabel: ReactNode;\n\tdescription?: ReactNode;\n\tclassName?: string;\n}\n\n/**\n * Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.\n */\nexport function Option<T>({ value, label, description, className }: OptionProps<T>) {\n\tconst context = useContext(RadioGroupContext);\n\tconst optionId = useId();\n\tconst registerOption = context?.registerOption;\n\n\tuseLayoutEffect(() => {\n\t\tif (!registerOption) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn registerOption(optionId);\n\t}, [registerOption, optionId]);\n\n\tif (!context) {\n\t\treturn (\n\t\t\t<div className={cn(styles.radioItem, className)}>\n\t\t\t\t<p className=\"textNoWrap\">{label}</p>\n\t\t\t\t{description && <div className=\"fontSizeSm content2\">{description}</div>}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isChecked = Object.is(context.value, value);\n\tconst isDisabled = context.disabled === true;\n\tconst isFallbackTabStop = context.value === undefined && context.firstOptionId === optionId;\n\n\tconst handleChange = () => {\n\t\tif (isDisabled || isChecked) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontext.onChange?.(value);\n\t};\n\n\t// TODO: логика переиспользуемая, надо вынести в хук\n\tconst handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n\t\tif (isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (handleKeyboardActivation(event, handleChange)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = event.currentTarget;\n\t\tconst groupElement = currentTarget.closest<HTMLElement>('[role=\"radiogroup\"]');\n\t\tconst radioItems = Array.from(groupElement?.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]:not([disabled])') ?? []);\n\n\t\tif (!radioItems.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentIndex = radioItems.indexOf(currentTarget);\n\t\tif (currentIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextIndex = getRovingFocusTargetIndex({\n\t\t\tcurrentIndex,\n\t\t\titemCount: radioItems.length,\n\t\t\tkey: event.key,\n\t\t\torientation: context.orientation\n\t\t});\n\n\t\tif (nextIndex === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tradioItems[nextIndex]?.focus();\n\t\tradioItems[nextIndex]?.click();\n\t};\n\n\treturn (\n\t\t<button\n\t\t\tid={`${context.groupId}-option-${optionId}`}\n\t\t\ttype=\"button\"\n\t\t\trole=\"radio\"\n\t\t\taria-checked={isChecked}\n\t\t\tdisabled={isDisabled}\n\t\t\ttabIndex={isChecked || isFallbackTabStop ? 0 : -1}\n\t\t\tclassName={cn(styles.radioItem, isChecked && styles.checked, className)}\n\t\t\tdata-ui=\"radio-option\"\n\t\t\tdata-action=\"select-radio-option\"\n\t\t\tonClick={handleChange}\n\t\t\tonKeyDown={handleKeyDown}>\n\t\t\t<span className={styles.radioItemContent}>\n\t\t\t\t<span className=\"textNoWrap\">{label}</span>\n\t\t\t\t{description && <span className=\"fontSizeSm\">{description}</span>}\n\t\t\t</span>\n\t\t\t{/* <span className={styles.radioItemIcon}>\n\t\t\t\t<CheckCircleIcon style={{ display: \"block\", visibility: isChecked ? \"visible\" : \"hidden\" }} />\n\t\t\t</span> */}\n\t\t</button>\n\t);\n}\n\nRadioGroup.Option = Option;\n"],"mappings":"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"}
1
+ {"version":3,"file":"radio-group-CW-K1n9c.js","names":[],"sources":["../../src/radio-group/RadioGroup.module.scss","../../src/radio-group/RadioGroup.tsx"],"sourcesContent":[".radioGroup {\n\tdisplay: flex;\n\talign-content: flex-start;\n\tflex-wrap: wrap;\n\t// min-height: var(--control-height);\n\theight: auto;\n\n\t&.noWrap {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.horizontal {\n\t\tflex-direction: row;\n\t}\n\n\t&.vertical {\n\t\tflex-direction: column;\n\t\talign-content: stretch;\n\t}\n}\n\n.radioItem {\n\tflex: 1 0 0%;\n\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-sm);\n\n\tcolor: var(--content-2);\n\t// border: var(--border-width) solid transparent;\n\tborder-radius: var(--radius-xs);\n\tpadding: 0 var(--space-md);\n\tmargin: var(--border-width);\n\t// baseInputControl = --control-height, + borderTop/Bottom + transparentLineTop/Bottom\n\tmin-height: calc(var(--control-height) - calc(var(--border-width) * 4));\n\n\tcursor: pointer;\n\n\t&:hover {\n\t\tcolor: var(--content-1);\n\t\tbackground-color: var(--surface-2);\n\t\t// border-color: var(--border-1);\n\t}\n\n\t&.checked {\n\t\tcolor: var(--brand-on-fill);\n\t\tbackground-color: var(--brand-fill);\n\t\t// border-color: var(--border-0);\n\t}\n\n\t&:disabled {\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.radioItemContent {\n\tflex: 1 0 0%;\n\n\tdisplay: grid;\n\talign-content: center;\n\tgap: var(--space-sm);\n}\n\n// .radioItemIcon {\n// \tflex: 0 0 0%;\n\n// \tsvg {\n// \t\twidth: 1em;\n// \t\theight: 1em;\n// \t}\n// }\n","import React, { createContext, KeyboardEvent, ReactNode, useCallback, useContext, useId, useLayoutEffect, useMemo, useState } from \"react\";\n\nimport { cn, getRovingFocusTargetIndex, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./RadioGroup.module.scss\";\n\ninterface RadioGroupContextValue {\n\tvalue?: unknown;\n\tonChange?: (value: unknown) => void;\n\tdisabled?: boolean;\n\torientation: \"vertical\" | \"horizontal\";\n\tgroupId: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\tfirstOptionId?: string;\n\tregisterOption: (optionId: string) => () => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\ninterface RadioGroupProps<T> {\n\tvalue?: T;\n\tonChange?: (value: T) => void;\n\tlabel?: string;\n\tdescription?: string;\n\tdisabled?: boolean;\n\tclassName?: string;\n\tnoWrap?: true;\n\torientation?: \"vertical\" | \"horizontal\";\n\t\"aria-label\"?: string;\n\tchildren: React.ReactNode;\n}\n\n/**\n * Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.\n */\nexport function RadioGroup<T>({\n\tvalue,\n\tonChange,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tnoWrap,\n\torientation = \"horizontal\",\n\t\"aria-label\": ariaLabel,\n\tchildren\n}: RadioGroupProps<T>) {\n\tconst groupId = useId();\n\tconst labelId = label ? `${groupId}-label` : undefined;\n\tconst descriptionId = description ? `${groupId}-description` : undefined;\n\tconst [registeredOptionIds, setRegisteredOptionIds] = useState<string[]>([]);\n\tconst handleChange = useCallback((nextValue: unknown) => onChange?.(nextValue as T), [onChange]);\n\n\t/**\n\t * Хранит порядок опций внутри группы, чтобы при отсутствии выбранного значения\n\t * оставлять ровно один tab stop на первой доступной радиокнопке.\n\t */\n\tconst registerOption = useCallback((optionId: string) => {\n\t\tsetRegisteredOptionIds((currentIds) => (currentIds.includes(optionId) ? currentIds : [...currentIds, optionId]));\n\n\t\treturn () => {\n\t\t\tsetRegisteredOptionIds((currentIds) => currentIds.filter((currentId) => currentId !== optionId));\n\t\t};\n\t}, []);\n\n\tconst contextValue = useMemo(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tonChange: handleChange,\n\t\t\tdisabled,\n\t\t\torientation,\n\t\t\tgroupId,\n\t\t\tlabelId,\n\t\t\tdescriptionId,\n\t\t\tfirstOptionId: registeredOptionIds[0],\n\t\t\tregisterOption\n\t\t}),\n\t\t[descriptionId, disabled, groupId, handleChange, labelId, orientation, registerOption, registeredOptionIds, value]\n\t);\n\n\treturn (\n\t\t<div className={cn(uiStyles.uiElement, disabled && uiStyles.disabled, className)}>\n\t\t\t{label && (\n\t\t\t\t<div id={labelId} className={uiStyles.uiLabel}>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{description && (\n\t\t\t\t<div id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<RadioGroupContext.Provider value={contextValue}>\n\t\t\t\t<div\n\t\t\t\t\trole=\"radiogroup\"\n\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\taria-label={labelId ? undefined : ariaLabel}\n\t\t\t\t\taria-describedby={descriptionId}\n\t\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.radioGroup, noWrap && styles.noWrap, styles[orientation])}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</RadioGroupContext.Provider>\n\t\t</div>\n\t);\n}\n\ninterface OptionProps<T> {\n\tvalue: T;\n\tlabel: ReactNode;\n\tdescription?: ReactNode;\n\tclassName?: string;\n}\n\n/**\n * Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.\n */\nexport function Option<T>({ value, label, description, className }: OptionProps<T>) {\n\tconst context = useContext(RadioGroupContext);\n\tconst optionId = useId();\n\tconst registerOption = context?.registerOption;\n\n\tuseLayoutEffect(() => {\n\t\tif (!registerOption) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn registerOption(optionId);\n\t}, [registerOption, optionId]);\n\n\tif (!context) {\n\t\treturn (\n\t\t\t<div className={cn(styles.radioItem, className)}>\n\t\t\t\t<p className=\"textNoWrap\">{label}</p>\n\t\t\t\t{description && <div className=\"fontSizeSm content2\">{description}</div>}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isChecked = Object.is(context.value, value);\n\tconst isDisabled = context.disabled === true;\n\tconst isFallbackTabStop = context.value === undefined && context.firstOptionId === optionId;\n\n\tconst handleChange = () => {\n\t\tif (isDisabled || isChecked) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontext.onChange?.(value);\n\t};\n\n\t// TODO: логика переиспользуемая, надо вынести в хук\n\tconst handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n\t\tif (isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (handleKeyboardActivation(event, handleChange)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = event.currentTarget;\n\t\tconst groupElement = currentTarget.closest<HTMLElement>('[role=\"radiogroup\"]');\n\t\tconst radioItems = Array.from(groupElement?.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]:not([disabled])') ?? []);\n\n\t\tif (!radioItems.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentIndex = radioItems.indexOf(currentTarget);\n\t\tif (currentIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextIndex = getRovingFocusTargetIndex({\n\t\t\tcurrentIndex,\n\t\t\titemCount: radioItems.length,\n\t\t\tkey: event.key,\n\t\t\torientation: context.orientation\n\t\t});\n\n\t\tif (nextIndex === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tradioItems[nextIndex]?.focus();\n\t\tradioItems[nextIndex]?.click();\n\t};\n\n\treturn (\n\t\t<button\n\t\t\tid={`${context.groupId}-option-${optionId}`}\n\t\t\ttype=\"button\"\n\t\t\trole=\"radio\"\n\t\t\taria-checked={isChecked}\n\t\t\tdisabled={isDisabled}\n\t\t\ttabIndex={isChecked || isFallbackTabStop ? 0 : -1}\n\t\t\tclassName={cn(styles.radioItem, isChecked && styles.checked, className)}\n\t\t\tdata-ui=\"radio-option\"\n\t\t\tdata-action=\"select-radio-option\"\n\t\t\tonClick={handleChange}\n\t\t\tonKeyDown={handleKeyDown}>\n\t\t\t<span className={styles.radioItemContent}>\n\t\t\t\t<span className=\"textNoWrap\">{label}</span>\n\t\t\t\t{description && <span className=\"fontSizeSm\">{description}</span>}\n\t\t\t</span>\n\t\t\t{/* <span className={styles.radioItemIcon}>\n\t\t\t\t<CheckCircleIcon style={{ display: \"block\", visibility: isChecked ? \"visible\" : \"hidden\" }} />\n\t\t\t</span> */}\n\t\t</button>\n\t);\n}\n\nRadioGroup.Option = Option;\n"],"mappings":"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"}