@rio-cloud/rio-uikit 2.1.0 → 2.2.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 (445) hide show
  1. package/CircularProgress.d.ts +2 -0
  2. package/CircularProgress.js +5 -0
  3. package/CircularProgress.js.map +1 -0
  4. package/RadioCardGroup.d.ts +2 -0
  5. package/RadioCardGroup.js +7 -0
  6. package/RadioCardGroup.js.map +1 -0
  7. package/SearchHighlightText.d.ts +2 -0
  8. package/SearchHighlightText.js +5 -0
  9. package/SearchHighlightText.js.map +1 -0
  10. package/TextTruncateMiddle.d.ts +2 -0
  11. package/TextTruncateMiddle.js +5 -0
  12. package/TextTruncateMiddle.js.map +1 -0
  13. package/Tracker.d.ts +2 -0
  14. package/Tracker.js +5 -0
  15. package/Tracker.js.map +1 -0
  16. package/classNames.d.ts +2 -0
  17. package/classNames.js +5 -0
  18. package/classNames.js.map +1 -0
  19. package/components/accentBar/AccentBar.js +1 -1
  20. package/components/accentBar/AccentBar.js.map +1 -1
  21. package/components/actionBarItem/ActionBarItem.js +7 -7
  22. package/components/actionBarItem/ActionBarItem.js.map +1 -1
  23. package/components/actionBarItem/ActionBarItemIcon.js +1 -1
  24. package/components/actionBarItem/ActionBarItemIcon.js.map +1 -1
  25. package/components/actionBarItem/ActionBarItemList.js +1 -1
  26. package/components/actionBarItem/ActionBarItemList.js.map +1 -1
  27. package/components/actionBarItem/ActionBarItemListItem.js +1 -1
  28. package/components/actionBarItem/ActionBarItemListItem.js.map +1 -1
  29. package/components/actionBarItem/ActionBarItemListSeparator.js +1 -1
  30. package/components/actionBarItem/ActionBarItemListSeparator.js.map +1 -1
  31. package/components/actionBarItem/ActionBarItemPopoverContent.js +3 -3
  32. package/components/actionBarItem/ActionBarItemPopoverContent.js.map +1 -1
  33. package/components/actionBarItem/ActionBarOverlay.js +1 -1
  34. package/components/actionBarItem/ActionBarOverlay.js.map +1 -1
  35. package/components/activity/Activity.js +1 -1
  36. package/components/activity/Activity.js.map +1 -1
  37. package/components/animatedTextReveal/AnimatedTextReveal.js +1 -1
  38. package/components/animatedTextReveal/AnimatedTextReveal.js.map +1 -1
  39. package/components/applicationHeader/AppMenu.js +2 -2
  40. package/components/applicationHeader/AppMenu.js.map +1 -1
  41. package/components/applicationHeader/AppMenuDropdown.js +13 -11
  42. package/components/applicationHeader/AppMenuDropdown.js.map +1 -1
  43. package/components/applicationHeader/ApplicationHeader.js +1 -1
  44. package/components/applicationHeader/ApplicationHeader.js.map +1 -1
  45. package/components/applicationHeader/MobileHeaderModal.js +8 -8
  46. package/components/applicationHeader/MobileHeaderModal.js.map +1 -1
  47. package/components/applicationHeader/MobileSubmoduleNavigation.js +1 -1
  48. package/components/applicationHeader/MobileSubmoduleNavigation.js.map +1 -1
  49. package/components/applicationHeader/NavItems.js +4 -4
  50. package/components/applicationHeader/NavItems.js.map +1 -1
  51. package/components/applicationLayout/ApplicationLayout.js +10 -10
  52. package/components/applicationLayout/ApplicationLayout.js.map +1 -1
  53. package/components/applicationLayout/ApplicationLayoutBody.js +2 -2
  54. package/components/applicationLayout/ApplicationLayoutBody.js.map +1 -1
  55. package/components/applicationLayout/ApplicationLayoutBodyBanner.js +1 -1
  56. package/components/applicationLayout/ApplicationLayoutBodyBanner.js.map +1 -1
  57. package/components/applicationLayout/ApplicationLayoutBodyBottomBar.js +1 -1
  58. package/components/applicationLayout/ApplicationLayoutBodyBottomBar.js.map +1 -1
  59. package/components/applicationLayout/ApplicationLayoutBodyNavigation.js +1 -1
  60. package/components/applicationLayout/ApplicationLayoutBodyNavigation.js.map +1 -1
  61. package/components/applicationLayout/ApplicationLayoutHeader.js +1 -1
  62. package/components/applicationLayout/ApplicationLayoutHeader.js.map +1 -1
  63. package/components/applicationLayout/ApplicationLayoutSidebar.js +1 -1
  64. package/components/applicationLayout/ApplicationLayoutSidebar.js.map +1 -1
  65. package/components/applicationLayout/SubNavigation.js +1 -1
  66. package/components/applicationLayout/SubNavigation.js.map +1 -1
  67. package/components/assetTree/AssetTree.js +1 -1
  68. package/components/assetTree/AssetTree.js.map +1 -1
  69. package/components/assetTree/Tree.js +1 -1
  70. package/components/assetTree/Tree.js.map +1 -1
  71. package/components/assetTree/TreeIcon.js +3 -3
  72. package/components/assetTree/TreeIcon.js.map +1 -1
  73. package/components/assetTree/TreeLeaf.js +4 -4
  74. package/components/assetTree/TreeLeaf.js.map +1 -1
  75. package/components/assetTree/TreeNode.js +1 -1
  76. package/components/assetTree/TreeNode.js.map +1 -1
  77. package/components/assetTree/TreeNodeContainer.js +1 -1
  78. package/components/assetTree/TreeNodeContainer.js.map +1 -1
  79. package/components/assetTree/TreeOption.js +3 -3
  80. package/components/assetTree/TreeOption.js.map +1 -1
  81. package/components/assetTree/TreeOptions.js +4 -4
  82. package/components/assetTree/TreeOptions.js.map +1 -1
  83. package/components/assetTree/TreeRoot.js +3 -3
  84. package/components/assetTree/TreeRoot.js.map +1 -1
  85. package/components/assetTree/TreeSearch.js +3 -3
  86. package/components/assetTree/TreeSearch.js.map +1 -1
  87. package/components/assetTree/TreeSidebar.js +1 -1
  88. package/components/assetTree/TreeSidebar.js.map +1 -1
  89. package/components/assetTree/TreeSidebarCategories.js +4 -4
  90. package/components/assetTree/TreeSidebarCategories.js.map +1 -1
  91. package/components/assetTree/TreeSummary.js +1 -1
  92. package/components/assetTree/TreeSummary.js.map +1 -1
  93. package/components/assetTree/TypeCounter.js +1 -1
  94. package/components/assetTree/TypeCounter.js.map +1 -1
  95. package/components/autosuggest/AutoSuggest.js +1 -1
  96. package/components/autosuggest/AutoSuggest.js.map +1 -1
  97. package/components/avatar/Avatar.js +1 -1
  98. package/components/avatar/Avatar.js.map +1 -1
  99. package/components/banner/Banner.js +1 -1
  100. package/components/banner/Banner.js.map +1 -1
  101. package/components/banner/BannerContent.js +1 -1
  102. package/components/banner/BannerContent.js.map +1 -1
  103. package/components/barList/BarList.js +1 -1
  104. package/components/barList/BarList.js.map +1 -1
  105. package/components/bottomSheet/BottomSheet.js +1 -1
  106. package/components/bottomSheet/BottomSheet.js.map +1 -1
  107. package/components/button/Button.d.ts +53 -7
  108. package/components/button/Button.js +87 -64
  109. package/components/button/Button.js.map +1 -1
  110. package/components/button/ButtonToolbar.js +1 -1
  111. package/components/button/ButtonToolbar.js.map +1 -1
  112. package/components/button/ToggleButton.d.ts +4 -1
  113. package/components/button/ToggleButton.js.map +1 -1
  114. package/components/calendarStripe/CalendarStripe.js +16 -16
  115. package/components/calendarStripe/CalendarStripe.js.map +1 -1
  116. package/components/card/Card.js +1 -1
  117. package/components/card/Card.js.map +1 -1
  118. package/components/charts/RadialBarChart.js +106 -103
  119. package/components/charts/RadialBarChart.js.map +1 -1
  120. package/components/checkbox/Checkbox.js +6 -6
  121. package/components/checkbox/Checkbox.js.map +1 -1
  122. package/components/circularProgress/CircularProgress.d.ts +139 -0
  123. package/components/circularProgress/CircularProgress.js +197 -0
  124. package/components/circularProgress/CircularProgress.js.map +1 -0
  125. package/components/clearableInput/ClearableInput.js +9 -9
  126. package/components/clearableInput/ClearableInput.js.map +1 -1
  127. package/components/dataTabs/DataTabHeader.js +1 -1
  128. package/components/dataTabs/DataTabHeader.js.map +1 -1
  129. package/components/dataTabs/DataTabs.js +4 -4
  130. package/components/dataTabs/DataTabs.js.map +1 -1
  131. package/components/datepicker/DatePicker.js +6 -6
  132. package/components/datepicker/DatePicker.js.map +1 -1
  133. package/components/datepicker/DateRangePicker.js +1 -1
  134. package/components/datepicker/DateRangePicker.js.map +1 -1
  135. package/components/datepicker/DayPicker.js +1 -1
  136. package/components/datepicker/DayPicker.js.map +1 -1
  137. package/components/dialog/Dialog.js +55 -55
  138. package/components/dialog/Dialog.js.map +1 -1
  139. package/components/dialog/DialogBody.js +1 -1
  140. package/components/dialog/DialogBody.js.map +1 -1
  141. package/components/dialog/DialogFooter.js +1 -1
  142. package/components/dialog/DialogFooter.js.map +1 -1
  143. package/components/dialog/DialogHeader.js +1 -1
  144. package/components/dialog/DialogHeader.js.map +1 -1
  145. package/components/dialog/MediaDialog.js +1 -1
  146. package/components/dialog/MediaDialog.js.map +1 -1
  147. package/components/dialog/SplitDialog.js +1 -1
  148. package/components/dialog/SplitDialog.js.map +1 -1
  149. package/components/divider/Divider.js +1 -1
  150. package/components/divider/Divider.js.map +1 -1
  151. package/components/dropdown/ButtonDropdown.js +1 -1
  152. package/components/dropdown/ButtonDropdown.js.map +1 -1
  153. package/components/dropdown/DropdownSubmenu.js +3 -3
  154. package/components/dropdown/DropdownSubmenu.js.map +1 -1
  155. package/components/dropdown/DropdownToggleButton.d.ts +1 -1
  156. package/components/dropdown/DropdownToggleButton.js +4 -3
  157. package/components/dropdown/DropdownToggleButton.js.map +1 -1
  158. package/components/dropdown/SplitCaretButton.js +6 -6
  159. package/components/dropdown/SplitCaretButton.js.map +1 -1
  160. package/components/editableContent/EditableContent.js +1 -1
  161. package/components/editableContent/EditableContent.js.map +1 -1
  162. package/components/ellipsis/TextTruncateMiddle.d.ts +23 -0
  163. package/components/ellipsis/TextTruncateMiddle.js +21 -0
  164. package/components/ellipsis/TextTruncateMiddle.js.map +1 -0
  165. package/components/expander/ExpanderList.js +5 -5
  166. package/components/expander/ExpanderList.js.map +1 -1
  167. package/components/expander/ExpanderPanel.js +1 -1
  168. package/components/expander/ExpanderPanel.js.map +1 -1
  169. package/components/feedback/FeedbackRating.js +1 -1
  170. package/components/feedback/FeedbackRating.js.map +1 -1
  171. package/components/feedback/FeedbackReactions.js +1 -1
  172. package/components/feedback/FeedbackReactions.js.map +1 -1
  173. package/components/formLabel/FormLabel.js +6 -9
  174. package/components/formLabel/FormLabel.js.map +1 -1
  175. package/components/formLabel/LabeledElement.js +1 -1
  176. package/components/formLabel/LabeledElement.js.map +1 -1
  177. package/components/listMenu/ListMenu.js +2 -5
  178. package/components/listMenu/ListMenu.js.map +1 -1
  179. package/components/listMenu/ListMenuGroup.js +2 -2
  180. package/components/listMenu/ListMenuGroup.js.map +1 -1
  181. package/components/loadMore/LoadMoreButton.js +1 -1
  182. package/components/loadMore/LoadMoreButton.js.map +1 -1
  183. package/components/loadMore/LoadMoreProgress.js +1 -1
  184. package/components/loadMore/LoadMoreProgress.js.map +1 -1
  185. package/components/map/components/features/MapSettings.js +4 -4
  186. package/components/map/components/features/MapSettings.js.map +1 -1
  187. package/components/map/components/features/settings/MapSettingsItem.js +1 -1
  188. package/components/map/components/features/settings/MapSettingsItem.js.map +1 -1
  189. package/components/map/components/features/settings/MapSettingsPanel.js +6 -20
  190. package/components/map/components/features/settings/MapSettingsPanel.js.map +1 -1
  191. package/components/map/components/features/settings/MapSettingsTile.js +87 -61
  192. package/components/map/components/features/settings/MapSettingsTile.js.map +1 -1
  193. package/components/map/components/features/settings/ZoomButtons.js +1 -1
  194. package/components/map/components/features/settings/ZoomButtons.js.map +1 -1
  195. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.d.ts +38 -1
  196. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +128 -92
  197. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js.map +1 -1
  198. package/components/map/utils/eventHandling.js +9 -9
  199. package/components/map/utils/eventHandling.js.map +1 -1
  200. package/components/map/utils/mapUtils.d.ts +6 -6
  201. package/components/map/utils/mapUtils.js +14 -19
  202. package/components/map/utils/mapUtils.js.map +1 -1
  203. package/components/mapMarker/ClusterMapMarker.js +1 -1
  204. package/components/mapMarker/ClusterMapMarker.js.map +1 -1
  205. package/components/mapMarker/SingleMapMarker.js +1 -1
  206. package/components/mapMarker/SingleMapMarker.js.map +1 -1
  207. package/components/menuItems/MenuItem.js +1 -1
  208. package/components/menuItems/MenuItem.js.map +1 -1
  209. package/components/menuItems/MenuItemList.js +1 -1
  210. package/components/menuItems/MenuItemList.js.map +1 -1
  211. package/components/navigation/AppNavigationBar.js +4 -4
  212. package/components/navigation/AppNavigationBar.js.map +1 -1
  213. package/components/noData/NoData.js +1 -1
  214. package/components/noData/NoData.js.map +1 -1
  215. package/components/numberControl/NumberControl.js +4 -4
  216. package/components/numberControl/NumberControl.js.map +1 -1
  217. package/components/numberInput/NumberInput.js +1 -1
  218. package/components/numberInput/NumberInput.js.map +1 -1
  219. package/components/onboarding/OnboardingTip.js +4 -4
  220. package/components/onboarding/OnboardingTip.js.map +1 -1
  221. package/components/page/Page.js +1 -1
  222. package/components/page/Page.js.map +1 -1
  223. package/components/pager/Pager.js +1 -1
  224. package/components/pager/Pager.js.map +1 -1
  225. package/components/radiobutton/RadioButton.d.ts +1 -1
  226. package/components/radiobutton/RadioButton.js +5 -5
  227. package/components/radiobutton/RadioButton.js.map +1 -1
  228. package/components/radiobutton/RadioCardGroup.d.ts +86 -0
  229. package/components/radiobutton/RadioCardGroup.js +110 -0
  230. package/components/radiobutton/RadioCardGroup.js.map +1 -0
  231. package/components/resizer/Resizer.js +1 -1
  232. package/components/resizer/Resizer.js.map +1 -1
  233. package/components/responsiveColumnStripe/ResponsiveColumnStripe.js +1 -1
  234. package/components/responsiveColumnStripe/ResponsiveColumnStripe.js.map +1 -1
  235. package/components/rioglyph/Rioglyph.js +1 -1
  236. package/components/rioglyph/Rioglyph.js.map +1 -1
  237. package/components/rioglyph/RioglyphIconType.d.ts +1 -1
  238. package/components/rules/RuleConnector.js +1 -1
  239. package/components/rules/RuleConnector.js.map +1 -1
  240. package/components/rules/RuleContainer.js +27 -27
  241. package/components/rules/RuleContainer.js.map +1 -1
  242. package/components/saveableInput/SaveableDateInput.js +1 -1
  243. package/components/saveableInput/SaveableDateInput.js.map +1 -1
  244. package/components/saveableInput/SaveableInput.js +49 -49
  245. package/components/saveableInput/SaveableInput.js.map +1 -1
  246. package/components/searchHighlight/SearchHighlightText.d.ts +28 -0
  247. package/components/searchHighlight/SearchHighlightText.js +15 -0
  248. package/components/searchHighlight/SearchHighlightText.js.map +1 -0
  249. package/components/selects/BaseSelectDropdown.js +1 -1
  250. package/components/selects/BaseSelectDropdown.js.map +1 -1
  251. package/components/selects/ClearButton.js +4 -4
  252. package/components/selects/ClearButton.js.map +1 -1
  253. package/components/selects/Multiselect.js +6 -6
  254. package/components/selects/Multiselect.js.map +1 -1
  255. package/components/selects/MultiselectToggleFilter.js +4 -4
  256. package/components/selects/MultiselectToggleFilter.js.map +1 -1
  257. package/components/selects/MultiselectToggleSelection.js +1 -1
  258. package/components/selects/MultiselectToggleSelection.js.map +1 -1
  259. package/components/selects/Select.js +6 -6
  260. package/components/selects/Select.js.map +1 -1
  261. package/components/selects/SelectFilter.js +1 -1
  262. package/components/selects/SelectFilter.js.map +1 -1
  263. package/components/selects/WithFeedbackAndAddon.js +1 -1
  264. package/components/selects/WithFeedbackAndAddon.js.map +1 -1
  265. package/components/sidebars/Sidebar.js +54 -54
  266. package/components/sidebars/Sidebar.js.map +1 -1
  267. package/components/sidebars/SidebarBackdrop.js +4 -4
  268. package/components/sidebars/SidebarBackdrop.js.map +1 -1
  269. package/components/sidebars/SidebarFooter.js +1 -1
  270. package/components/sidebars/SidebarFooter.js.map +1 -1
  271. package/components/sidebars/SidebarFullscreenToggle.js +4 -4
  272. package/components/sidebars/SidebarFullscreenToggle.js.map +1 -1
  273. package/components/slider/RangeSlider.js +1 -1
  274. package/components/slider/RangeSlider.js.map +1 -1
  275. package/components/slider/Slider.js +1 -1
  276. package/components/slider/Slider.js.map +1 -1
  277. package/components/smoothScrollbars/SmoothScrollbars.js +1 -1
  278. package/components/smoothScrollbars/SmoothScrollbars.js.map +1 -1
  279. package/components/spinner/Spinner.js +5 -4
  280. package/components/spinner/Spinner.js.map +1 -1
  281. package/components/states/CustomState.d.ts +69 -1
  282. package/components/states/CustomState.js +1 -1
  283. package/components/states/CustomState.js.map +1 -1
  284. package/components/states/EmptyState.d.ts +1 -1
  285. package/components/states/EmptyState.js.map +1 -1
  286. package/components/states/ErrorState.d.ts +1 -1
  287. package/components/states/ErrorState.js.map +1 -1
  288. package/components/states/ForbiddenState.d.ts +1 -1
  289. package/components/states/ForbiddenState.js.map +1 -1
  290. package/components/states/MaintenanceState.d.ts +1 -1
  291. package/components/states/MaintenanceState.js.map +1 -1
  292. package/components/states/NotBookedState.d.ts +1 -1
  293. package/components/states/NotBookedState.js.map +1 -1
  294. package/components/states/NotFoundState.d.ts +1 -1
  295. package/components/states/NotFoundState.js.map +1 -1
  296. package/components/states/StateButton.js +1 -1
  297. package/components/states/StateButton.js.map +1 -1
  298. package/components/statsWidget/StatsWidget.js +1 -1
  299. package/components/statsWidget/StatsWidget.js.map +1 -1
  300. package/components/statsWidget/StatsWidgetBody.js +1 -1
  301. package/components/statsWidget/StatsWidgetBody.js.map +1 -1
  302. package/components/statsWidget/StatsWidgetFooter.js +1 -1
  303. package/components/statsWidget/StatsWidgetFooter.js.map +1 -1
  304. package/components/statsWidget/StatsWidgetHeader.js +1 -1
  305. package/components/statsWidget/StatsWidgetHeader.js.map +1 -1
  306. package/components/statsWidget/StatsWidgetNumber.js +2 -2
  307. package/components/statsWidget/StatsWidgetNumber.js.map +1 -1
  308. package/components/statsWidget/StatsWidgetSpacer.js +1 -1
  309. package/components/statsWidget/StatsWidgetSpacer.js.map +1 -1
  310. package/components/statsWidget/StatsWidgets.js +1 -1
  311. package/components/statsWidget/StatsWidgets.js.map +1 -1
  312. package/components/statusBar/StatusBar.d.ts +126 -2
  313. package/components/statusBar/StatusBar.js +24 -17
  314. package/components/statusBar/StatusBar.js.map +1 -1
  315. package/components/statusBar/StatusBarIcon.d.ts +1 -1
  316. package/components/statusBar/StatusBarIcon.js +4 -4
  317. package/components/statusBar/StatusBarIcon.js.map +1 -1
  318. package/components/statusBar/StatusBarLabel.d.ts +1 -1
  319. package/components/statusBar/StatusBarLabel.js +5 -7
  320. package/components/statusBar/StatusBarLabel.js.map +1 -1
  321. package/components/statusBar/StatusBarProgressBar.d.ts +1 -1
  322. package/components/statusBar/StatusBarProgressBar.js +1 -1
  323. package/components/statusBar/StatusBarProgressBar.js.map +1 -1
  324. package/components/steppedProgressBar/SteppedProgressBar.js +1 -1
  325. package/components/steppedProgressBar/SteppedProgressBar.js.map +1 -1
  326. package/components/switch/Switch.d.ts +16 -1
  327. package/components/switch/Switch.js +77 -35
  328. package/components/switch/Switch.js.map +1 -1
  329. package/components/table/TableCardsSorting.js +4 -4
  330. package/components/table/TableCardsSorting.js.map +1 -1
  331. package/components/table/TableHead.js +1 -1
  332. package/components/table/TableHead.js.map +1 -1
  333. package/components/table/TableSearch.js +1 -1
  334. package/components/table/TableSearch.js.map +1 -1
  335. package/components/table/TableSettingsColumnButtons.d.ts +1 -1
  336. package/components/table/TableSettingsColumnButtons.js +1 -1
  337. package/components/table/TableSettingsColumnButtons.js.map +1 -1
  338. package/components/table/TableSettingsColumnDetails.d.ts +1 -1
  339. package/components/table/TableSettingsColumnDetails.js +1 -1
  340. package/components/table/TableSettingsColumnDetails.js.map +1 -1
  341. package/components/table/TableSettingsDialog.d.ts +51 -1
  342. package/components/table/TableSettingsDialog.js +164 -148
  343. package/components/table/TableSettingsDialog.js.map +1 -1
  344. package/components/table/TableSettingsDialogFooter.js +1 -1
  345. package/components/table/TableSettingsDialogFooter.js.map +1 -1
  346. package/components/table/TableSettingsListContainer.d.ts +1 -1
  347. package/components/table/TableSettingsListContainer.js.map +1 -1
  348. package/components/table/TableSettingsListItem.d.ts +1 -1
  349. package/components/table/TableSettingsListItem.js +8 -8
  350. package/components/table/TableSettingsListItem.js.map +1 -1
  351. package/components/table/TableToolbar.js +1 -1
  352. package/components/table/TableToolbar.js.map +1 -1
  353. package/components/table/TableViewToggles.js +1 -1
  354. package/components/table/TableViewToggles.js.map +1 -1
  355. package/components/tag/Tag.js +1 -1
  356. package/components/tag/Tag.js.map +1 -1
  357. package/components/tag/TagList.js +1 -1
  358. package/components/tag/TagList.js.map +1 -1
  359. package/components/tagManager/CustomSuggestionItem.js +1 -1
  360. package/components/tagManager/CustomSuggestionItem.js.map +1 -1
  361. package/components/tagManager/TagManager.d.ts +14 -2
  362. package/components/tagManager/TagManager.js +6 -6
  363. package/components/tagManager/TagManager.js.map +1 -1
  364. package/components/tagManager/TagManagerItemList.d.ts +1 -1
  365. package/components/tagManager/TagManagerItemList.js +1 -1
  366. package/components/tagManager/TagManagerItemList.js.map +1 -1
  367. package/components/teaser/Teaser.js +1 -1
  368. package/components/teaser/Teaser.js.map +1 -1
  369. package/components/teaser/TeaserContainer.js +1 -1
  370. package/components/teaser/TeaserContainer.js.map +1 -1
  371. package/components/timepicker/TimePicker.d.ts +20 -0
  372. package/components/timepicker/TimePicker.js +153 -99
  373. package/components/timepicker/TimePicker.js.map +1 -1
  374. package/components/tooltip/Tooltip.js +1 -1
  375. package/components/tooltip/Tooltip.js.map +1 -1
  376. package/components/tracker/Tracker.d.ts +85 -0
  377. package/components/tracker/Tracker.js +54 -0
  378. package/components/tracker/Tracker.js.map +1 -0
  379. package/components/tracker/TrackerBlock.d.ts +11 -0
  380. package/components/tracker/TrackerBlock.js +34 -0
  381. package/components/tracker/TrackerBlock.js.map +1 -0
  382. package/components/video/ResponsiveVideo.js +1 -1
  383. package/components/video/ResponsiveVideo.js.map +1 -1
  384. package/hooks/useCookies.d.ts +79 -0
  385. package/hooks/useCookies.js +33 -0
  386. package/hooks/useCookies.js.map +1 -0
  387. package/hooks/useInterval.js +5 -5
  388. package/hooks/useInterval.js.map +1 -1
  389. package/hooks/useIsFocusWithin.js +3 -3
  390. package/hooks/useIsFocusWithin.js.map +1 -1
  391. package/hooks/useLatest.d.ts +16 -0
  392. package/hooks/useLatest.js +11 -0
  393. package/hooks/useLatest.js.map +1 -0
  394. package/hooks/usePostMessage.d.ts +2 -1
  395. package/hooks/usePostMessage.js.map +1 -1
  396. package/hooks/useRioCookieConsent.d.ts +49 -0
  397. package/hooks/useRioCookieConsent.js +44 -0
  398. package/hooks/useRioCookieConsent.js.map +1 -0
  399. package/hooks/useSearch.d.ts +1 -1
  400. package/hooks/useSearch.js +28 -17
  401. package/hooks/useSearch.js.map +1 -1
  402. package/hooks/useSearchHighlight.d.ts +60 -0
  403. package/hooks/useSearchHighlight.js +54 -0
  404. package/hooks/useSearchHighlight.js.map +1 -0
  405. package/hooks/useTimeout.js +11 -11
  406. package/hooks/useTimeout.js.map +1 -1
  407. package/hooks/useUrlState.d.ts +62 -0
  408. package/hooks/useUrlState.js +137 -0
  409. package/hooks/useUrlState.js.map +1 -0
  410. package/mergeClassNameOverrides.d.ts +1 -0
  411. package/mergeClassNameOverrides.js +5 -0
  412. package/mergeClassNameOverrides.js.map +1 -0
  413. package/package.json +17 -18
  414. package/routeUtils.js +11 -5
  415. package/routeUtils.js.map +1 -1
  416. package/themes/Volkswagen/components/applicationHeader/VolkswagenApplicationHeader.js +1 -1
  417. package/themes/Volkswagen/components/applicationHeader/VolkswagenApplicationHeader.js.map +1 -1
  418. package/useCookies.d.ts +2 -0
  419. package/useCookies.js +5 -0
  420. package/useCookies.js.map +1 -0
  421. package/useRioCookieConsent.d.ts +2 -0
  422. package/useRioCookieConsent.js +5 -0
  423. package/useRioCookieConsent.js.map +1 -0
  424. package/useSearchHighlight.d.ts +2 -0
  425. package/useSearchHighlight.js +6 -0
  426. package/useSearchHighlight.js.map +1 -0
  427. package/useUrlState.d.ts +2 -0
  428. package/useUrlState.js +5 -0
  429. package/useUrlState.js.map +1 -0
  430. package/utils/classNames.d.ts +3 -0
  431. package/utils/classNames.js +5 -0
  432. package/utils/classNames.js.map +1 -0
  433. package/utils/mergeClassNameOverrides.d.ts +1 -0
  434. package/utils/mergeClassNameOverrides.js +55 -0
  435. package/utils/mergeClassNameOverrides.js.map +1 -0
  436. package/utils/routeUtils.d.ts +122 -13
  437. package/utils/routeUtils.js +89 -31
  438. package/utils/routeUtils.js.map +1 -1
  439. package/version.d.ts +1 -1
  440. package/version.js +1 -1
  441. package/version.js.map +1 -1
  442. package/components/states/BaseStateProps.d.ts +0 -70
  443. package/components/statusBar/StatusBarProps.d.ts +0 -127
  444. package/components/table/TableSettingsDialog.types.d.ts +0 -39
  445. package/components/tagManager/TagManagerTag.d.ts +0 -14
@@ -0,0 +1,2 @@
1
+ export { default } from './components/circularProgress/CircularProgress';
2
+ export * from './components/circularProgress/CircularProgress';
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./components/circularProgress/CircularProgress.js";
2
+ export {
3
+ o as default
4
+ };
5
+ //# sourceMappingURL=CircularProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircularProgress.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ export { default } from './components/radiobutton/RadioCardGroup';
2
+ export * from './components/radiobutton/RadioCardGroup';
@@ -0,0 +1,7 @@
1
+ import { RadioCardIndicator as o, RadioCardItem as r, default as t } from "./components/radiobutton/RadioCardGroup.js";
2
+ export {
3
+ o as RadioCardIndicator,
4
+ r as RadioCardItem,
5
+ t as default
6
+ };
7
+ //# sourceMappingURL=RadioCardGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioCardGroup.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ export { default } from './components/searchHighlight/SearchHighlightText';
2
+ export * from './components/searchHighlight/SearchHighlightText';
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./components/searchHighlight/SearchHighlightText.js";
2
+ export {
3
+ o as default
4
+ };
5
+ //# sourceMappingURL=SearchHighlightText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchHighlightText.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ export { default } from './components/ellipsis/TextTruncateMiddle';
2
+ export * from './components/ellipsis/TextTruncateMiddle';
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./components/ellipsis/TextTruncateMiddle.js";
2
+ export {
3
+ o as default
4
+ };
5
+ //# sourceMappingURL=TextTruncateMiddle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextTruncateMiddle.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/Tracker.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './components/tracker/Tracker';
2
+ export * from './components/tracker/Tracker';
package/Tracker.js ADDED
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./components/tracker/Tracker.js";
2
+ export {
3
+ o as default
4
+ };
5
+ //# sourceMappingURL=Tracker.js.map
package/Tracker.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ export { default } from './utils/classNames';
2
+ export type { ClassNamePart } from './utils/classNames';
package/classNames.js ADDED
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./utils/classNames.js";
2
+ export {
3
+ o as default
4
+ };
5
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as m, jsx as c } from "react/jsx-runtime";
2
- import r from "classnames";
2
+ import r from "../../utils/classNames.js";
3
3
  const N = (t) => {
4
4
  const { color: l = "bg-secondary", circle: s = !1, className: n, children: e } = t, a = r("AccentBar", s && "AccentBarCircle", l, n), i = r("display-flex", s ? "align-items-center" : "align-items-stretch");
5
5
  return e ? /* @__PURE__ */ m("div", { className: i, children: [
@@ -1 +1 @@
1
- {"version":3,"file":"AccentBar.js","sources":["../../../src/components/accentBar/AccentBar.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport type { PropsWithChildren } from 'react';\n\ntype AccentBarProps = {\n /**\n * Defines the color by setting it to a UIKIT bg-<name> class name.\n *\n * @default 'bg-secondary'\n */\n color?: string;\n\n /**\n * Defines if the element is rendered as a stretching bar or just a centered circle.\n *\n * @default false\n */\n circle?: boolean;\n\n /**\n * Additional class names passed to the actual element.\n */\n className?: string;\n};\n\nconst AccentBar = (props: PropsWithChildren<AccentBarProps>) => {\n const { color = 'bg-secondary', circle = false, className, children } = props;\n\n const accentBarClassName = classNames('AccentBar', circle && 'AccentBarCircle', color, className);\n\n const wrapperClassName = classNames('display-flex', circle ? 'align-items-center' : 'align-items-stretch');\n\n if (children) {\n return (\n <div className={wrapperClassName}>\n <div className={accentBarClassName} />\n {children}\n </div>\n );\n }\n\n return <div className={accentBarClassName} />;\n};\n\nexport default AccentBar;\n"],"names":["AccentBar","props","color","circle","className","children","accentBarClassName","classNames","wrapperClassName","jsxs","jsx"],"mappings":";;AAwBA,MAAMA,IAAY,CAACC,MAA6C;AAC5D,QAAM,EAAE,OAAAC,IAAQ,gBAAgB,QAAAC,IAAS,IAAO,WAAAC,GAAW,UAAAC,MAAaJ,GAElEK,IAAqBC,EAAW,aAAaJ,KAAU,mBAAmBD,GAAOE,CAAS,GAE1FI,IAAmBD,EAAW,gBAAgBJ,IAAS,uBAAuB,qBAAqB;AAEzG,SAAIE,IAEI,gBAAAI,EAAC,OAAA,EAAI,WAAWD,GACZ,UAAA;AAAA,IAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWJ,EAAA,CAAoB;AAAA,IACnCD;AAAA,EAAA,GACL,IAID,gBAAAK,EAAC,OAAA,EAAI,WAAWJ,EAAA,CAAoB;AAC/C;"}
1
+ {"version":3,"file":"AccentBar.js","sources":["../../../src/components/accentBar/AccentBar.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport classNames from '../../utils/classNames';\n\ntype AccentBarProps = {\n /**\n * Defines the color by setting it to a UIKIT bg-<name> class name.\n *\n * @default 'bg-secondary'\n */\n color?: string;\n\n /**\n * Defines if the element is rendered as a stretching bar or just a centered circle.\n *\n * @default false\n */\n circle?: boolean;\n\n /**\n * Additional class names passed to the actual element.\n */\n className?: string;\n};\n\nconst AccentBar = (props: PropsWithChildren<AccentBarProps>) => {\n const { color = 'bg-secondary', circle = false, className, children } = props;\n\n const accentBarClassName = classNames('AccentBar', circle && 'AccentBarCircle', color, className);\n\n const wrapperClassName = classNames('display-flex', circle ? 'align-items-center' : 'align-items-stretch');\n\n if (children) {\n return (\n <div className={wrapperClassName}>\n <div className={accentBarClassName} />\n {children}\n </div>\n );\n }\n\n return <div className={accentBarClassName} />;\n};\n\nexport default AccentBar;\n"],"names":["AccentBar","props","color","circle","className","children","accentBarClassName","classNames","wrapperClassName","jsxs","jsx"],"mappings":";;AAyBA,MAAMA,IAAY,CAACC,MAA6C;AAC5D,QAAM,EAAE,OAAAC,IAAQ,gBAAgB,QAAAC,IAAS,IAAO,WAAAC,GAAW,UAAAC,MAAaJ,GAElEK,IAAqBC,EAAW,aAAaJ,KAAU,mBAAmBD,GAAOE,CAAS,GAE1FI,IAAmBD,EAAW,gBAAgBJ,IAAS,uBAAuB,qBAAqB;AAEzG,SAAIE,IAEI,gBAAAI,EAAC,OAAA,EAAI,WAAWD,GACZ,UAAA;AAAA,IAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWJ,EAAA,CAAoB;AAAA,IACnCD;AAAA,EAAA,GACL,IAID,gBAAAK,EAAC,OAAA,EAAI,WAAWJ,EAAA,CAAoB;AAC/C;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as i, jsxs as E } from "react/jsx-runtime";
2
2
  import L, { memo as M, useState as B, useRef as H, useLayoutEffect as V, useCallback as x, useEffect as F } from "react";
3
- import U from "classnames";
4
- import { negate as j } from "es-toolkit/function";
5
- import { delay as X, head as Y } from "es-toolkit/compat";
3
+ import { negate as U } from "es-toolkit/function";
4
+ import { delay as j, head as X } from "es-toolkit/compat";
5
+ import Y from "../../utils/classNames.js";
6
6
  import q from "./ActionBarOverlay.js";
7
7
  import R from "./ActionBarItemPopoverContent.js";
8
8
  import _ from "./ActionBarItemIcon.js";
@@ -11,10 +11,10 @@ import G from "./ActionBarItemListItem.js";
11
11
  import J from "./ActionBarItemListSeparator.js";
12
12
  import g from "../overlay/OverlayTrigger.js";
13
13
  import K from "../dialog/Dialog.js";
14
- const y = "mousedown", Q = "show", Z = "position-offscreen", $ = 250, oo = 200, eo = 580, to = () => (Math.random() + 1).toString(36).toUpperCase().substring(2), T = (o, e) => o.classList.contains(e), so = j(T), no = (o, e) => !e.contains(o), ro = () => {
14
+ const y = "mousedown", Q = "show", Z = "position-offscreen", $ = 250, oo = 200, eo = 580, to = () => (Math.random() + 1).toString(36).toUpperCase().substring(2), T = (o, e) => o.classList.contains(e), so = U(T), no = (o, e) => !e.contains(o), ro = () => {
15
15
  const [o, e] = B(!1);
16
16
  return F(() => {
17
- const a = Y(document.getElementsByClassName("ApplicationHeader")), f = a ? a.offsetWidth < eo : !1;
17
+ const a = X(document.getElementsByClassName("ApplicationHeader")), f = a ? a.offsetWidth < eo : !1;
18
18
  e(f);
19
19
  }, []), o;
20
20
  }, O = (o) => o.type && o.type.displayName === R.displayName, P = (o) => o.type && o.type.displayName === _.displayName, io = (o) => {
@@ -39,13 +39,13 @@ const y = "mousedown", Q = "show", Z = "position-offscreen", $ = 250, oo = 200,
39
39
  s(!1);
40
40
  return;
41
41
  }
42
- w && X(() => s(!1), oo);
42
+ w && j(() => s(!1), oo);
43
43
  };
44
44
  return document.addEventListener(y, r), () => {
45
45
  document.removeEventListener(y, r);
46
46
  };
47
47
  }, [n, e, t]);
48
- const p = U("ActionBarItem", a), b = ro(), I = x(() => s(!t), [s, t]), d = L.Children.toArray(u), l = d.find(O), C = d.find(P);
48
+ const p = Y("ActionBarItem", a), b = ro(), I = x(() => s(!t), [s, t]), d = L.Children.toArray(u), l = d.find(O), C = d.find(P);
49
49
  if (!l)
50
50
  return /* @__PURE__ */ i("div", { className: p, children: u });
51
51
  const { useOffscreen: S = !1, title: N } = l.props, v = d.filter((r) => !O(r)).filter((r) => !P(r));
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarItem.js","sources":["../../../src/components/actionBarItem/ActionBarItem.tsx"],"sourcesContent":["import React, {\n memo,\n useCallback,\n useEffect,\n useLayoutEffect,\n useState,\n useRef,\n type PropsWithChildren,\n type HTMLAttributes,\n type MemoExoticComponent,\n type FC,\n} from 'react';\nimport classNames from 'classnames';\nimport { negate } from 'es-toolkit/function';\nimport { delay, head } from 'es-toolkit/compat';\n\nimport ActionBarOverlay from './ActionBarOverlay';\nimport ActionBarItemPopoverContent from './ActionBarItemPopoverContent';\nimport ActionBarItemIcon from './ActionBarItemIcon';\nimport ActionBarItemList from './ActionBarItemList';\nimport ActionBarItemListItem from './ActionBarItemListItem';\nimport ActionBarItemListSeparator from './ActionBarItemListSeparator';\nimport OverlayTrigger from '../overlay/OverlayTrigger';\nimport Dialog from '../dialog/Dialog';\n\nconst EVENT = 'mousedown';\nconst CLASSNAME_SHOW = 'show';\nconst CLASSNAME_OFFSCREEN = 'position-offscreen';\n\nconst DEFAULT_POPOVER_WIDTH = 250;\nconst POPOVER_CLOSE_DELAY_IN_MS = 200;\nconst SMALL_RESOLUTION_THRESHOLD_IN_PX = 580;\n\nconst getRandomString = () => (Math.random() + 1).toString(36).toUpperCase().substring(2);\n\nconst hasClass = (element: HTMLElement, className: string) => element.classList.contains(className);\nconst hasNotClass = negate(hasClass);\n\nconst isNotChildNodeOf = (childNode: HTMLElement, parentNode: HTMLElement) => !parentNode.contains(childNode);\n\nconst checkIfSmallResolution = () => {\n const [isSmallResolution, setIsSmallResolution] = useState(false);\n\n // We only execute this once. Before it was re-rendered on every change.\n // Users probably don't switch between display sizes that often therefore it probably makes sense to\n // avoid the re-rendering or applying an event listener.\n useEffect(() => {\n const header = head(document.getElementsByClassName('ApplicationHeader')) as HTMLElement | undefined;\n const isSmall = header ? header.offsetWidth < SMALL_RESOLUTION_THRESHOLD_IN_PX : false;\n setIsSmallResolution(isSmall);\n }, []);\n\n return isSmallResolution;\n};\n\nconst isActionBarItemPopover = (child: React.ReactElement) =>\n child.type && (child.type as React.ComponentType<unknown>).displayName === ActionBarItemPopoverContent.displayName;\n\nconst isActionBarItemIcon = (child: React.ReactElement) =>\n child.type && (child.type as React.ComponentType<unknown>).displayName === ActionBarItemIcon.displayName;\n\nexport type ActionBarItemPopoverWidth = 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500;\n\nexport type ActionBarItemProps = {\n /**\n * The id is used to identify the item in the DOM.\n *\n * If not provided, a random id is used instead.\n */\n id?: string;\n\n /**\n * The title property for the sub-component ActionBarItem.Popover.\n *\n * This can be a String or another component as well as a React-Intl component.\n */\n title?: string | React.ReactNode;\n\n /**\n * Additional class names that are added to the respective component.\n *\n * It can be defined for the parent and all sub-components.\n */\n className?: string;\n\n /**\n * Defines if the popover should close when any child element is being clicked.\n *\n * @default true\n */\n hidePopoverOnClick?: boolean;\n\n /**\n * Possible values are `100`, `150`, `200`, `250`, `300`, `350`, `400`, `450` or `500`.\n *\n * @default 250\n */\n popoverWidth?: ActionBarItemPopoverWidth;\n\n /**\n * Additional class names that are added to dialog fallback modal-body element.\n */\n mobileDialogBodyClassName?: string;\n};\n\nexport type ActionBarItemComponents = {\n Icon: typeof ActionBarItemIcon;\n Popover: typeof ActionBarItemPopoverContent;\n List: typeof ActionBarItemList;\n ListItem: typeof ActionBarItemListItem;\n ListSeparator: typeof ActionBarItemListSeparator;\n};\n\ntype ActionBarItemPropsWithChildren = PropsWithChildren<ActionBarItemProps>;\n\nconst ActionBarItemBase = (props: ActionBarItemPropsWithChildren) => {\n const {\n id = getRandomString(),\n className,\n mobileDialogBodyClassName = '',\n children,\n popoverWidth = DEFAULT_POPOVER_WIDTH,\n hidePopoverOnClick = true,\n ...remainingProps\n } = props;\n\n const [isShown, setIsShown] = useState(false);\n\n const clickOutsideRef = useRef(null);\n\n useLayoutEffect(() => {\n const listener = (event: MouseEvent) => {\n if (!clickOutsideRef || !clickOutsideRef.current || !isShown) {\n return;\n }\n\n // Since the popover component is based on React Portal and might be offscreen, we need to use\n // old-school approach and query the DOM for the item ID.\n const popoverEl = document.getElementById(id);\n\n if (!popoverEl) {\n return;\n }\n\n // Abort when the ActionBarItemIcon itself has been clicked as there is a toggle function\n // applied to the icon that takes care of opening and closing\n const hasIconClickedToClose = (event.target as HTMLElement).offsetParent === clickOutsideRef.current;\n if (hasIconClickedToClose) {\n return;\n }\n\n // Handle click outside the popover to close it\n const isClickOutsidePopover = isNotChildNodeOf(event.target as HTMLElement, popoverEl);\n const isPopoverVisible = hasClass(popoverEl, CLASSNAME_SHOW) && hasNotClass(popoverEl, CLASSNAME_OFFSCREEN);\n\n if (isPopoverVisible && isClickOutsidePopover) {\n setIsShown(false);\n return;\n }\n\n // Handle click inside the popover.\n // Delay the closing of the popover to execute possible actions from within the popover\n // like clicks on links or buttons\n if (hidePopoverOnClick) {\n delay(() => setIsShown(false), POPOVER_CLOSE_DELAY_IN_MS);\n }\n };\n\n document.addEventListener(EVENT, listener);\n return () => {\n document.removeEventListener(EVENT, listener);\n };\n }, [clickOutsideRef, id, isShown]);\n\n const classes = classNames('ActionBarItem', className);\n\n const isSmallScreen = checkIfSmallResolution();\n\n const onToggle = useCallback(() => setIsShown(!isShown), [setIsShown, isShown]);\n\n // The children depend on each other, that's why it's easier to convert them once to an array\n // and then pick the correct elements. In most cases there are only 2 or 3 elements in the children\n // array so the looping shouldn't be too worrisome.\n const childrenAsList = React.Children.toArray(children) as React.ReactElement[];\n const itemPopover = childrenAsList.find(isActionBarItemPopover);\n const itemIcon = childrenAsList.find(isActionBarItemIcon);\n\n if (!itemPopover) {\n return <div className={classes}>{children}</div>;\n }\n\n const { useOffscreen = false, title } = itemPopover.props;\n\n // Filter out the popover and icon component from the list of children as they are handled separately\n const childrenWithoutPopover = childrenAsList.filter(child => !isActionBarItemPopover(child));\n const childrenWithoutPopoverAndIcon = childrenWithoutPopover.filter(child => !isActionBarItemIcon(child));\n\n if (isSmallScreen) {\n return (\n <div {...(remainingProps as HTMLAttributes<HTMLDivElement>)} className={classes} ref={clickOutsideRef}>\n {React.cloneElement(itemIcon as React.ReactElement, { onClick: onToggle })}\n <div onClick={() => setIsShown(false)}>\n <Dialog\n show={isShown}\n onClose={() => setIsShown(false)}\n body={itemPopover}\n bodyClassName={mobileDialogBodyClassName}\n title={title}\n />\n </div>\n {childrenWithoutPopoverAndIcon}\n </div>\n );\n }\n\n const overlay = (\n <ActionBarOverlay\n id={id}\n key='child'\n title={title}\n width={popoverWidth}\n preRender={useOffscreen}\n show={isShown}\n >\n {itemPopover}\n </ActionBarOverlay>\n );\n\n return (\n <div {...(remainingProps as HTMLAttributes<HTMLDivElement>)} className={classes} ref={clickOutsideRef}>\n <OverlayTrigger\n onToggle={onToggle}\n show={isShown || useOffscreen}\n placement={OverlayTrigger.BOTTOM_END}\n overlay={overlay}\n rootClose={false}\n trigger='click'\n popperConfig={{\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 5],\n },\n },\n {\n name: 'arrow',\n options: {},\n },\n ],\n }}\n >\n {itemIcon}\n </OverlayTrigger>\n {childrenWithoutPopoverAndIcon}\n </div>\n );\n};\n\nconst ActionBarItem = memo(ActionBarItemBase) as ActionBarItemComponents &\n MemoExoticComponent<FC<ActionBarItemPropsWithChildren>>;\n\n// Define static variables on the component type\nActionBarItem.Icon = ActionBarItemIcon;\nActionBarItem.Popover = ActionBarItemPopoverContent;\nActionBarItem.List = ActionBarItemList;\nActionBarItem.ListItem = ActionBarItemListItem;\nActionBarItem.ListSeparator = ActionBarItemListSeparator;\n\nexport default ActionBarItem;\n"],"names":["EVENT","CLASSNAME_SHOW","CLASSNAME_OFFSCREEN","DEFAULT_POPOVER_WIDTH","POPOVER_CLOSE_DELAY_IN_MS","SMALL_RESOLUTION_THRESHOLD_IN_PX","getRandomString","hasClass","element","className","hasNotClass","negate","isNotChildNodeOf","childNode","parentNode","checkIfSmallResolution","isSmallResolution","setIsSmallResolution","useState","useEffect","header","head","isSmall","isActionBarItemPopover","child","ActionBarItemPopoverContent","isActionBarItemIcon","ActionBarItemIcon","ActionBarItemBase","props","id","mobileDialogBodyClassName","children","popoverWidth","hidePopoverOnClick","remainingProps","isShown","setIsShown","clickOutsideRef","useRef","useLayoutEffect","listener","event","popoverEl","isClickOutsidePopover","delay","classes","classNames","isSmallScreen","onToggle","useCallback","childrenAsList","React","itemPopover","itemIcon","jsx","useOffscreen","title","childrenWithoutPopoverAndIcon","Dialog","overlay","ActionBarOverlay","OverlayTrigger","ActionBarItem","memo","ActionBarItemList","ActionBarItemListItem","ActionBarItemListSeparator"],"mappings":"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"}
1
+ {"version":3,"file":"ActionBarItem.js","sources":["../../../src/components/actionBarItem/ActionBarItem.tsx"],"sourcesContent":["import React, {\n memo,\n useCallback,\n useEffect,\n useLayoutEffect,\n useState,\n useRef,\n type PropsWithChildren,\n type HTMLAttributes,\n type MemoExoticComponent,\n type FC,\n} from 'react';\nimport { negate } from 'es-toolkit/function';\nimport { delay, head } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport ActionBarOverlay from './ActionBarOverlay';\nimport ActionBarItemPopoverContent from './ActionBarItemPopoverContent';\nimport ActionBarItemIcon from './ActionBarItemIcon';\nimport ActionBarItemList from './ActionBarItemList';\nimport ActionBarItemListItem from './ActionBarItemListItem';\nimport ActionBarItemListSeparator from './ActionBarItemListSeparator';\nimport OverlayTrigger from '../overlay/OverlayTrigger';\nimport Dialog from '../dialog/Dialog';\n\nconst EVENT = 'mousedown';\nconst CLASSNAME_SHOW = 'show';\nconst CLASSNAME_OFFSCREEN = 'position-offscreen';\n\nconst DEFAULT_POPOVER_WIDTH = 250;\nconst POPOVER_CLOSE_DELAY_IN_MS = 200;\nconst SMALL_RESOLUTION_THRESHOLD_IN_PX = 580;\n\nconst getRandomString = () => (Math.random() + 1).toString(36).toUpperCase().substring(2);\n\nconst hasClass = (element: HTMLElement, className: string) => element.classList.contains(className);\nconst hasNotClass = negate(hasClass);\n\nconst isNotChildNodeOf = (childNode: HTMLElement, parentNode: HTMLElement) => !parentNode.contains(childNode);\n\nconst checkIfSmallResolution = () => {\n const [isSmallResolution, setIsSmallResolution] = useState(false);\n\n // We only execute this once. Before it was re-rendered on every change.\n // Users probably don't switch between display sizes that often therefore it probably makes sense to\n // avoid the re-rendering or applying an event listener.\n useEffect(() => {\n const header = head(document.getElementsByClassName('ApplicationHeader')) as HTMLElement | undefined;\n const isSmall = header ? header.offsetWidth < SMALL_RESOLUTION_THRESHOLD_IN_PX : false;\n setIsSmallResolution(isSmall);\n }, []);\n\n return isSmallResolution;\n};\n\nconst isActionBarItemPopover = (child: React.ReactElement) =>\n child.type && (child.type as React.ComponentType<unknown>).displayName === ActionBarItemPopoverContent.displayName;\n\nconst isActionBarItemIcon = (child: React.ReactElement) =>\n child.type && (child.type as React.ComponentType<unknown>).displayName === ActionBarItemIcon.displayName;\n\nexport type ActionBarItemPopoverWidth = 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500;\n\nexport type ActionBarItemProps = {\n /**\n * The id is used to identify the item in the DOM.\n *\n * If not provided, a random id is used instead.\n */\n id?: string;\n\n /**\n * The title property for the sub-component ActionBarItem.Popover.\n *\n * This can be a String or another component as well as a React-Intl component.\n */\n title?: string | React.ReactNode;\n\n /**\n * Additional class names that are added to the respective component.\n *\n * It can be defined for the parent and all sub-components.\n */\n className?: string;\n\n /**\n * Defines if the popover should close when any child element is being clicked.\n *\n * @default true\n */\n hidePopoverOnClick?: boolean;\n\n /**\n * Possible values are `100`, `150`, `200`, `250`, `300`, `350`, `400`, `450` or `500`.\n *\n * @default 250\n */\n popoverWidth?: ActionBarItemPopoverWidth;\n\n /**\n * Additional class names that are added to dialog fallback modal-body element.\n */\n mobileDialogBodyClassName?: string;\n};\n\nexport type ActionBarItemComponents = {\n Icon: typeof ActionBarItemIcon;\n Popover: typeof ActionBarItemPopoverContent;\n List: typeof ActionBarItemList;\n ListItem: typeof ActionBarItemListItem;\n ListSeparator: typeof ActionBarItemListSeparator;\n};\n\ntype ActionBarItemPropsWithChildren = PropsWithChildren<ActionBarItemProps>;\n\nconst ActionBarItemBase = (props: ActionBarItemPropsWithChildren) => {\n const {\n id = getRandomString(),\n className,\n mobileDialogBodyClassName = '',\n children,\n popoverWidth = DEFAULT_POPOVER_WIDTH,\n hidePopoverOnClick = true,\n ...remainingProps\n } = props;\n\n const [isShown, setIsShown] = useState(false);\n\n const clickOutsideRef = useRef(null);\n\n useLayoutEffect(() => {\n const listener = (event: MouseEvent) => {\n if (!clickOutsideRef || !clickOutsideRef.current || !isShown) {\n return;\n }\n\n // Since the popover component is based on React Portal and might be offscreen, we need to use\n // old-school approach and query the DOM for the item ID.\n const popoverEl = document.getElementById(id);\n\n if (!popoverEl) {\n return;\n }\n\n // Abort when the ActionBarItemIcon itself has been clicked as there is a toggle function\n // applied to the icon that takes care of opening and closing\n const hasIconClickedToClose = (event.target as HTMLElement).offsetParent === clickOutsideRef.current;\n if (hasIconClickedToClose) {\n return;\n }\n\n // Handle click outside the popover to close it\n const isClickOutsidePopover = isNotChildNodeOf(event.target as HTMLElement, popoverEl);\n const isPopoverVisible = hasClass(popoverEl, CLASSNAME_SHOW) && hasNotClass(popoverEl, CLASSNAME_OFFSCREEN);\n\n if (isPopoverVisible && isClickOutsidePopover) {\n setIsShown(false);\n return;\n }\n\n // Handle click inside the popover.\n // Delay the closing of the popover to execute possible actions from within the popover\n // like clicks on links or buttons\n if (hidePopoverOnClick) {\n delay(() => setIsShown(false), POPOVER_CLOSE_DELAY_IN_MS);\n }\n };\n\n document.addEventListener(EVENT, listener);\n return () => {\n document.removeEventListener(EVENT, listener);\n };\n }, [clickOutsideRef, id, isShown]);\n\n const classes = classNames('ActionBarItem', className);\n\n const isSmallScreen = checkIfSmallResolution();\n\n const onToggle = useCallback(() => setIsShown(!isShown), [setIsShown, isShown]);\n\n // The children depend on each other, that's why it's easier to convert them once to an array\n // and then pick the correct elements. In most cases there are only 2 or 3 elements in the children\n // array so the looping shouldn't be too worrisome.\n const childrenAsList = React.Children.toArray(children) as React.ReactElement[];\n const itemPopover = childrenAsList.find(isActionBarItemPopover);\n const itemIcon = childrenAsList.find(isActionBarItemIcon);\n\n if (!itemPopover) {\n return <div className={classes}>{children}</div>;\n }\n\n const { useOffscreen = false, title } = itemPopover.props;\n\n // Filter out the popover and icon component from the list of children as they are handled separately\n const childrenWithoutPopover = childrenAsList.filter(child => !isActionBarItemPopover(child));\n const childrenWithoutPopoverAndIcon = childrenWithoutPopover.filter(child => !isActionBarItemIcon(child));\n\n if (isSmallScreen) {\n return (\n <div {...(remainingProps as HTMLAttributes<HTMLDivElement>)} className={classes} ref={clickOutsideRef}>\n {React.cloneElement(itemIcon as React.ReactElement, { onClick: onToggle })}\n <div onClick={() => setIsShown(false)}>\n <Dialog\n show={isShown}\n onClose={() => setIsShown(false)}\n body={itemPopover}\n bodyClassName={mobileDialogBodyClassName}\n title={title}\n />\n </div>\n {childrenWithoutPopoverAndIcon}\n </div>\n );\n }\n\n const overlay = (\n <ActionBarOverlay\n id={id}\n key='child'\n title={title}\n width={popoverWidth}\n preRender={useOffscreen}\n show={isShown}\n >\n {itemPopover}\n </ActionBarOverlay>\n );\n\n return (\n <div {...(remainingProps as HTMLAttributes<HTMLDivElement>)} className={classes} ref={clickOutsideRef}>\n <OverlayTrigger\n onToggle={onToggle}\n show={isShown || useOffscreen}\n placement={OverlayTrigger.BOTTOM_END}\n overlay={overlay}\n rootClose={false}\n trigger='click'\n popperConfig={{\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 5],\n },\n },\n {\n name: 'arrow',\n options: {},\n },\n ],\n }}\n >\n {itemIcon}\n </OverlayTrigger>\n {childrenWithoutPopoverAndIcon}\n </div>\n );\n};\n\nconst ActionBarItem = memo(ActionBarItemBase) as ActionBarItemComponents &\n MemoExoticComponent<FC<ActionBarItemPropsWithChildren>>;\n\n// Define static variables on the component type\nActionBarItem.Icon = ActionBarItemIcon;\nActionBarItem.Popover = ActionBarItemPopoverContent;\nActionBarItem.List = ActionBarItemList;\nActionBarItem.ListItem = ActionBarItemListItem;\nActionBarItem.ListSeparator = ActionBarItemListSeparator;\n\nexport default ActionBarItem;\n"],"names":["EVENT","CLASSNAME_SHOW","CLASSNAME_OFFSCREEN","DEFAULT_POPOVER_WIDTH","POPOVER_CLOSE_DELAY_IN_MS","SMALL_RESOLUTION_THRESHOLD_IN_PX","getRandomString","hasClass","element","className","hasNotClass","negate","isNotChildNodeOf","childNode","parentNode","checkIfSmallResolution","isSmallResolution","setIsSmallResolution","useState","useEffect","header","head","isSmall","isActionBarItemPopover","child","ActionBarItemPopoverContent","isActionBarItemIcon","ActionBarItemIcon","ActionBarItemBase","props","id","mobileDialogBodyClassName","children","popoverWidth","hidePopoverOnClick","remainingProps","isShown","setIsShown","clickOutsideRef","useRef","useLayoutEffect","listener","event","popoverEl","isClickOutsidePopover","delay","classes","classNames","isSmallScreen","onToggle","useCallback","childrenAsList","React","itemPopover","itemIcon","jsx","useOffscreen","title","childrenWithoutPopoverAndIcon","Dialog","overlay","ActionBarOverlay","OverlayTrigger","ActionBarItem","memo","ActionBarItemList","ActionBarItemListItem","ActionBarItemListSeparator"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { forwardRef as m } from "react";
3
- import n from "classnames";
3
+ import n from "../../utils/classNames.js";
4
4
  const i = m((o, r) => {
5
5
  const { className: s, children: a, ...t } = o, c = n("ActionBarItemIcon", s);
6
6
  return /* @__PURE__ */ e("div", { ...t, className: c, ref: r, children: a });
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarItemIcon.js","sources":["../../../src/components/actionBarItem/ActionBarItemIcon.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type PropsWithChildren } from 'react';\nimport classNames from 'classnames';\n\ntype ActionBarItemIconProps = HTMLAttributes<HTMLDivElement> & {\n className?: string;\n};\n\nconst ActionBarItemIcon = forwardRef<HTMLDivElement, PropsWithChildren<ActionBarItemIconProps>>((props, ref) => {\n const { className, children, ...remainingProps } = props;\n\n const classes = classNames('ActionBarItemIcon', className);\n return (\n <div {...remainingProps} className={classes} ref={ref}>\n {children}\n </div>\n );\n});\n\n// The displayName is used in ActionBarItem for checking the component \"isActionBarItemIcon\"\nActionBarItemIcon.displayName = 'ActionBarItemIcon';\n\nexport default ActionBarItemIcon;\n"],"names":["ActionBarItemIcon","forwardRef","props","ref","className","children","remainingProps","classes","classNames"],"mappings":";;;AAOA,MAAMA,IAAoBC,EAAsE,CAACC,GAAOC,MAAQ;AAC5G,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,MAAmBJ,GAE7CK,IAAUC,EAAW,qBAAqBJ,CAAS;AACzD,2BACK,OAAA,EAAK,GAAGE,GAAgB,WAAWC,GAAS,KAAAJ,GACxC,UAAAE,GACL;AAER,CAAC;AAGDL,EAAkB,cAAc;"}
1
+ {"version":3,"file":"ActionBarItemIcon.js","sources":["../../../src/components/actionBarItem/ActionBarItemIcon.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type PropsWithChildren } from 'react';\n\nimport classNames from '../../utils/classNames';\n\ntype ActionBarItemIconProps = HTMLAttributes<HTMLDivElement> & {\n className?: string;\n};\n\nconst ActionBarItemIcon = forwardRef<HTMLDivElement, PropsWithChildren<ActionBarItemIconProps>>((props, ref) => {\n const { className, children, ...remainingProps } = props;\n\n const classes = classNames('ActionBarItemIcon', className);\n return (\n <div {...remainingProps} className={classes} ref={ref}>\n {children}\n </div>\n );\n});\n\n// The displayName is used in ActionBarItem for checking the component \"isActionBarItemIcon\"\nActionBarItemIcon.displayName = 'ActionBarItemIcon';\n\nexport default ActionBarItemIcon;\n"],"names":["ActionBarItemIcon","forwardRef","props","ref","className","children","remainingProps","classes","classNames"],"mappings":";;;AAQA,MAAMA,IAAoBC,EAAsE,CAACC,GAAOC,MAAQ;AAC5G,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,MAAmBJ,GAE7CK,IAAUC,EAAW,qBAAqBJ,CAAS;AACzD,2BACK,OAAA,EAAK,GAAGE,GAAgB,WAAWC,GAAS,KAAAJ,GACxC,UAAAE,GACL;AAER,CAAC;AAGDL,EAAkB,cAAc;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import e from "classnames";
2
+ import e from "../../utils/classNames.js";
3
3
  const i = ({ className: s, children: t, ...a }) => {
4
4
  const o = e("ActionBarItemList", s);
5
5
  return /* @__PURE__ */ r("ul", { ...a, className: o, children: t });
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarItemList.js","sources":["../../../src/components/actionBarItem/ActionBarItemList.tsx"],"sourcesContent":["import type { HTMLAttributes, PropsWithChildren } from 'react';\nimport classNames from 'classnames';\n\nexport type ActionBarItemListProps = HTMLAttributes<HTMLUListElement> & {\n /**\n * Additional class names that are added to the wrapping list item component.\n */\n className?: string;\n};\n\nconst ActionBarItemList = ({ className, children, ...remainingProps }: PropsWithChildren<ActionBarItemListProps>) => {\n const classes = classNames('ActionBarItemList', className);\n\n return (\n <ul {...remainingProps} className={classes}>\n {children}\n </ul>\n );\n};\n\nexport default ActionBarItemList;\n"],"names":["ActionBarItemList","className","children","remainingProps","classes","classNames"],"mappings":";;AAUA,MAAMA,IAAoB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,QAAgE;AACjH,QAAMC,IAAUC,EAAW,qBAAqBJ,CAAS;AAEzD,2BACK,MAAA,EAAI,GAAGE,GAAgB,WAAWC,GAC9B,UAAAF,GACL;AAER;"}
1
+ {"version":3,"file":"ActionBarItemList.js","sources":["../../../src/components/actionBarItem/ActionBarItemList.tsx"],"sourcesContent":["import type { HTMLAttributes, PropsWithChildren } from 'react';\n\nimport classNames from '../../utils/classNames';\n\nexport type ActionBarItemListProps = HTMLAttributes<HTMLUListElement> & {\n /**\n * Additional class names that are added to the wrapping list item component.\n */\n className?: string;\n};\n\nconst ActionBarItemList = ({ className, children, ...remainingProps }: PropsWithChildren<ActionBarItemListProps>) => {\n const classes = classNames('ActionBarItemList', className);\n\n return (\n <ul {...remainingProps} className={classes}>\n {children}\n </ul>\n );\n};\n\nexport default ActionBarItemList;\n"],"names":["ActionBarItemList","className","children","remainingProps","classes","classNames"],"mappings":";;AAWA,MAAMA,IAAoB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,QAAgE;AACjH,QAAMC,IAAUC,EAAW,qBAAqBJ,CAAS;AAEzD,2BACK,MAAA,EAAI,GAAGE,GAAgB,WAAWC,GAC9B,UAAAF,GACL;AAER;"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as p, jsx as n } from "react/jsx-runtime";
2
- import e from "classnames";
2
+ import e from "../../utils/classNames.js";
3
3
  const L = (c) => {
4
4
  const { hasLink: t, icon: i, onClick: s, className: o, children: a, ...m } = c, r = e("ActionBarItemListItem", t && "has-link", o), l = e("ActionBarItemListItemIcon", "rioglyph", i), I = e("ActionBarItemListItemButton");
5
5
  return /* @__PURE__ */ p("li", { ...m, className: r, onClick: s, children: [
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarItemListItem.js","sources":["../../../src/components/actionBarItem/ActionBarItemListItem.tsx"],"sourcesContent":["import type { HTMLAttributes, PropsWithChildren } from 'react';\nimport classNames from 'classnames';\n\nexport type ActionBarItemListItemProps = Omit<HTMLAttributes<HTMLLIElement>, 'onClick'> & {\n /**\n * Set it to true when you want to use the item as link item.\n *\n * In this case, please use the `Link` component from `react-router-dom` instead of an anchor tag to prevent side\n * effects when automatically closing the popover.\n */\n hasLink?: boolean;\n\n /**\n * The name of the icon to be used for the item.\n */\n icon?: string;\n\n /**\n * Callback function to be triggered when the internal button of a list item is clicked.\n *\n * Note: When no callback function is provided, the children are rendered as is without wrapping them in a button.\n */\n onClick?: VoidFunction;\n\n /**\n * Additional class names that are added to the wrapping list item component.\n */\n className?: string;\n};\n\nconst ActionBarItemListItem = (props: PropsWithChildren<ActionBarItemListItemProps>) => {\n const { hasLink, icon, onClick, className, children, ...remainingProps } = props;\n\n const classes = classNames('ActionBarItemListItem', hasLink && 'has-link', className);\n const iconClasses = classNames('ActionBarItemListItemIcon', 'rioglyph', icon);\n const btnClasses = classNames('ActionBarItemListItemButton');\n\n return (\n <li {...remainingProps} className={classes} onClick={onClick}>\n {icon && <span className={iconClasses} />}\n {hasLink && !onClick && <span>{children}</span>}\n {onClick && <div className={btnClasses}>{children}</div>}\n {!hasLink && !onClick && children}\n </li>\n );\n};\n\nexport default ActionBarItemListItem;\n"],"names":["ActionBarItemListItem","props","hasLink","icon","onClick","className","children","remainingProps","classes","classNames","iconClasses","btnClasses","jsx"],"mappings":";;AA8BA,MAAMA,IAAwB,CAACC,MAAyD;AACpF,QAAM,EAAE,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,WAAAC,GAAW,UAAAC,GAAU,GAAGC,MAAmBN,GAErEO,IAAUC,EAAW,yBAAyBP,KAAW,YAAYG,CAAS,GAC9EK,IAAcD,EAAW,6BAA6B,YAAYN,CAAI,GACtEQ,IAAaF,EAAW,6BAA6B;AAE3D,2BACK,MAAA,EAAI,GAAGF,GAAgB,WAAWC,GAAS,SAAAJ,GACvC,UAAA;AAAA,IAAAD,KAAQ,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAa;AAAA,IACtCR,KAAW,CAACE,KAAW,gBAAAQ,EAAC,UAAM,UAAAN,EAAA,CAAS;AAAA,IACvCF,KAAW,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,GAAa,UAAAL,GAAS;AAAA,IACjD,CAACJ,KAAW,CAACE,KAAWE;AAAA,EAAA,GAC7B;AAER;"}
1
+ {"version":3,"file":"ActionBarItemListItem.js","sources":["../../../src/components/actionBarItem/ActionBarItemListItem.tsx"],"sourcesContent":["import type { HTMLAttributes, PropsWithChildren } from 'react';\nimport classNames from '../../utils/classNames';\n\nexport type ActionBarItemListItemProps = Omit<HTMLAttributes<HTMLLIElement>, 'onClick'> & {\n /**\n * Set it to true when you want to use the item as link item.\n *\n * In this case, please use the `Link` component from `react-router-dom` instead of an anchor tag to prevent side\n * effects when automatically closing the popover.\n */\n hasLink?: boolean;\n\n /**\n * The name of the icon to be used for the item.\n */\n icon?: string;\n\n /**\n * Callback function to be triggered when the internal button of a list item is clicked.\n *\n * Note: When no callback function is provided, the children are rendered as is without wrapping them in a button.\n */\n onClick?: VoidFunction;\n\n /**\n * Additional class names that are added to the wrapping list item component.\n */\n className?: string;\n};\n\nconst ActionBarItemListItem = (props: PropsWithChildren<ActionBarItemListItemProps>) => {\n const { hasLink, icon, onClick, className, children, ...remainingProps } = props;\n\n const classes = classNames('ActionBarItemListItem', hasLink && 'has-link', className);\n const iconClasses = classNames('ActionBarItemListItemIcon', 'rioglyph', icon);\n const btnClasses = classNames('ActionBarItemListItemButton');\n\n return (\n <li {...remainingProps} className={classes} onClick={onClick}>\n {icon && <span className={iconClasses} />}\n {hasLink && !onClick && <span>{children}</span>}\n {onClick && <div className={btnClasses}>{children}</div>}\n {!hasLink && !onClick && children}\n </li>\n );\n};\n\nexport default ActionBarItemListItem;\n"],"names":["ActionBarItemListItem","props","hasLink","icon","onClick","className","children","remainingProps","classes","classNames","iconClasses","btnClasses","jsx"],"mappings":";;AA8BA,MAAMA,IAAwB,CAACC,MAAyD;AACpF,QAAM,EAAE,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,WAAAC,GAAW,UAAAC,GAAU,GAAGC,MAAmBN,GAErEO,IAAUC,EAAW,yBAAyBP,KAAW,YAAYG,CAAS,GAC9EK,IAAcD,EAAW,6BAA6B,YAAYN,CAAI,GACtEQ,IAAaF,EAAW,6BAA6B;AAE3D,2BACK,MAAA,EAAI,GAAGF,GAAgB,WAAWC,GAAS,SAAAJ,GACvC,UAAA;AAAA,IAAAD,KAAQ,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAa;AAAA,IACtCR,KAAW,CAACE,KAAW,gBAAAQ,EAAC,UAAM,UAAAN,EAAA,CAAS;AAAA,IACvCF,KAAW,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,GAAa,UAAAL,GAAS;AAAA,IACjD,CAACJ,KAAW,CAACE,KAAWE;AAAA,EAAA,GAC7B;AAER;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import o from "classnames";
2
+ import o from "../../utils/classNames.js";
3
3
  const c = ({ className: t, ...r }) => {
4
4
  const s = o("ActionBarItemListSeparator", t);
5
5
  return /* @__PURE__ */ a("hr", { ...r, className: s });
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarItemListSeparator.js","sources":["../../../src/components/actionBarItem/ActionBarItemListSeparator.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport classNames from 'classnames';\n\nexport type ActionBarItemListSeparatorProps = HTMLAttributes<HTMLHRElement> & {\n /**\n * Additional class names that are added to the wrapping list item component.\n */\n className?: string;\n};\n\nconst ActionBarItemListSeparator = ({ className, ...remainingProps }: ActionBarItemListSeparatorProps) => {\n const classes = classNames('ActionBarItemListSeparator', className);\n return <hr {...remainingProps} className={classes} />;\n};\n\nexport default ActionBarItemListSeparator;\n"],"names":["ActionBarItemListSeparator","className","remainingProps","classes","classNames","jsx"],"mappings":";;AAUA,MAAMA,IAA6B,CAAC,EAAE,WAAAC,GAAW,GAAGC,QAAsD;AACtG,QAAMC,IAAUC,EAAW,8BAA8BH,CAAS;AAClE,SAAO,gBAAAI,EAAC,MAAA,EAAI,GAAGH,GAAgB,WAAWC,GAAS;AACvD;"}
1
+ {"version":3,"file":"ActionBarItemListSeparator.js","sources":["../../../src/components/actionBarItem/ActionBarItemListSeparator.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport classNames from '../../utils/classNames';\n\nexport type ActionBarItemListSeparatorProps = HTMLAttributes<HTMLHRElement> & {\n /**\n * Additional class names that are added to the wrapping list item component.\n */\n className?: string;\n};\n\nconst ActionBarItemListSeparator = ({ className, ...remainingProps }: ActionBarItemListSeparatorProps) => {\n const classes = classNames('ActionBarItemListSeparator', className);\n return <hr {...remainingProps} className={classes} />;\n};\n\nexport default ActionBarItemListSeparator;\n"],"names":["ActionBarItemListSeparator","className","remainingProps","classes","classNames","jsx"],"mappings":";;AAWA,MAAMA,IAA6B,CAAC,EAAE,WAAAC,GAAW,GAAGC,QAAsD;AACtG,QAAMC,IAAUC,EAAW,8BAA8BH,CAAS;AAClE,SAAO,gBAAAI,EAAC,MAAA,EAAI,GAAGH,GAAgB,WAAWC,GAAS;AACvD;"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import m from "classnames";
3
- import { omit as a } from "es-toolkit/compat";
2
+ import { omit as m } from "es-toolkit/compat";
3
+ import a from "../../utils/classNames.js";
4
4
  const i = ({
5
5
  className: t,
6
6
  children: o,
7
7
  ...e
8
8
  }) => {
9
- const r = m("ActionBarItemPopoverContent", t), s = a(e, ["title", "useOffscreen"]);
9
+ const r = a("ActionBarItemPopoverContent", t), s = m(e, ["title", "useOffscreen"]);
10
10
  return /* @__PURE__ */ n("div", { ...s, className: r, children: o });
11
11
  };
12
12
  i.displayName = "ActionBarItemPopoverContent";
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarItemPopoverContent.js","sources":["../../../src/components/actionBarItem/ActionBarItemPopoverContent.tsx"],"sourcesContent":["import type { HTMLAttributes, PropsWithChildren, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { omit } from 'es-toolkit/compat';\n\nexport type ActionBarItemPopoverProps = Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'useOffscreen'> & {\n /**\n * The popover title.\n */\n title?: string | ReactNode;\n\n /**\n * Define whether the popover content shall be rendered behind the scene.\n *\n * This allows to preload content or to avoid unmounting the content component.\n */\n useOffscreen?: boolean;\n\n /**\n * Additional class names that are added to the popover content.\n */\n className?: string;\n};\n\nconst ActionBarItemPopoverContent = ({\n className,\n children,\n ...remainingProps\n}: PropsWithChildren<ActionBarItemPopoverProps>) => {\n const classes = classNames('ActionBarItemPopoverContent', className);\n const filterProps = omit(remainingProps, ['title', 'useOffscreen']) as HTMLAttributes<HTMLDivElement>;\n\n return (\n <div {...filterProps} className={classes}>\n {children}\n </div>\n );\n};\n\n// The displayName is used in ActionBarItem for checking the component \"isActionBarItemPopover\"\nActionBarItemPopoverContent.displayName = 'ActionBarItemPopoverContent';\n\nexport default ActionBarItemPopoverContent;\n"],"names":["ActionBarItemPopoverContent","className","children","remainingProps","classes","classNames","filterProps","omit"],"mappings":";;;AAuBA,MAAMA,IAA8B,CAAC;AAAA,EACjC,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACP,MAAoD;AAChD,QAAMC,IAAUC,EAAW,+BAA+BJ,CAAS,GAC7DK,IAAcC,EAAKJ,GAAgB,CAAC,SAAS,cAAc,CAAC;AAElE,2BACK,OAAA,EAAK,GAAGG,GAAa,WAAWF,GAC5B,UAAAF,GACL;AAER;AAGAF,EAA4B,cAAc;"}
1
+ {"version":3,"file":"ActionBarItemPopoverContent.js","sources":["../../../src/components/actionBarItem/ActionBarItemPopoverContent.tsx"],"sourcesContent":["import type { HTMLAttributes, PropsWithChildren, ReactNode } from 'react';\nimport { omit } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\n\nexport type ActionBarItemPopoverProps = Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'useOffscreen'> & {\n /**\n * The popover title.\n */\n title?: string | ReactNode;\n\n /**\n * Define whether the popover content shall be rendered behind the scene.\n *\n * This allows to preload content or to avoid unmounting the content component.\n */\n useOffscreen?: boolean;\n\n /**\n * Additional class names that are added to the popover content.\n */\n className?: string;\n};\n\nconst ActionBarItemPopoverContent = ({\n className,\n children,\n ...remainingProps\n}: PropsWithChildren<ActionBarItemPopoverProps>) => {\n const classes = classNames('ActionBarItemPopoverContent', className);\n const filterProps = omit(remainingProps, ['title', 'useOffscreen']) as HTMLAttributes<HTMLDivElement>;\n\n return (\n <div {...filterProps} className={classes}>\n {children}\n </div>\n );\n};\n\n// The displayName is used in ActionBarItem for checking the component \"isActionBarItemPopover\"\nActionBarItemPopoverContent.displayName = 'ActionBarItemPopoverContent';\n\nexport default ActionBarItemPopoverContent;\n"],"names":["ActionBarItemPopoverContent","className","children","remainingProps","classes","classNames","filterProps","omit"],"mappings":";;;AAwBA,MAAMA,IAA8B,CAAC;AAAA,EACjC,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACP,MAAoD;AAChD,QAAMC,IAAUC,EAAW,+BAA+BJ,CAAS,GAC7DK,IAAcC,EAAKJ,GAAgB,CAAC,SAAS,cAAc,CAAC;AAElE,2BACK,OAAA,EAAK,GAAGG,GAAa,WAAWF,GAC5B,UAAAF,GACL;AAER;AAGAF,EAA4B,cAAc;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as E, jsx as r } from "react/jsx-runtime";
2
2
  import { forwardRef as h } from "react";
3
- import e from "classnames";
4
3
  import { noop as j } from "es-toolkit/compat";
4
+ import e from "../../utils/classNames.js";
5
5
  import s, { PLACEMENT_MAP as u } from "../popover/Popover.js";
6
6
  const x = u.BOTTOM, y = 250, I = h((n, a) => {
7
7
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBarOverlay.js","sources":["../../../src/components/actionBarItem/ActionBarOverlay.tsx"],"sourcesContent":["import React, { forwardRef, type PropsWithChildren, type ForwardedRef } from 'react';\nimport classNames from 'classnames';\nimport { noop } from 'es-toolkit/compat';\n\nimport Popover, { PLACEMENT_MAP } from '../popover/Popover';\nimport type { ObjectValues } from '../../utils/ObjectValues';\n\nconst DEFAULT_PLACEMENT = PLACEMENT_MAP.BOTTOM;\nconst DEFAULT_WIDTH = 250;\n\nexport type ActionBarOverlayWidth = 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500;\n\nexport type ActionBarOverlayProps = {\n id: string;\n title?: string | React.ReactNode;\n preRender?: boolean;\n show?: boolean;\n width?: ActionBarOverlayWidth;\n onClick?: () => void;\n style?: object;\n placement?: ObjectValues<typeof PLACEMENT_MAP>;\n className?: string;\n};\n\ntype Ref = ForwardedRef<HTMLDivElement>;\ntype Props = PropsWithChildren<ActionBarOverlayProps>;\n\nconst ActionBarOverlay = forwardRef((props: Props, ref: Ref) => {\n const {\n children,\n show,\n preRender,\n id,\n title,\n onClick = noop,\n width = DEFAULT_WIDTH,\n style = {},\n className,\n placement = DEFAULT_PLACEMENT,\n ...remainingProps\n } = props;\n\n const adjustedStyles = { ...style, width };\n const adjustedClassName = preRender && !show ? classNames(className, 'position-offscreen') : className;\n\n const popoverTitleClasses = classNames('ActionBarItemPopover text-color-dark', className);\n const popoverContentClasses = classNames('ActionBarItemPopover', className);\n\n return (\n <Popover\n ref={ref}\n id={id}\n onClick={onClick}\n placement={placement}\n {...remainingProps}\n style={adjustedStyles}\n className={adjustedClassName}\n >\n {title && <Popover.Title className={popoverTitleClasses}>{title}</Popover.Title>}\n <Popover.Content className={popoverContentClasses}>{children}</Popover.Content>\n </Popover>\n );\n});\n\nexport default ActionBarOverlay;\n"],"names":["DEFAULT_PLACEMENT","PLACEMENT_MAP","DEFAULT_WIDTH","ActionBarOverlay","forwardRef","props","ref","children","show","preRender","id","title","onClick","noop","width","style","className","placement","remainingProps","adjustedStyles","adjustedClassName","classNames","popoverTitleClasses","popoverContentClasses","jsxs","Popover"],"mappings":";;;;;AAOA,MAAMA,IAAoBC,EAAc,QAClCC,IAAgB,KAmBhBC,IAAmBC,EAAW,CAACC,GAAcC,MAAa;AAC5D,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC,IAAUC;AAAA,IACV,OAAAC,IAAQZ;AAAA,IACR,OAAAa,IAAQ,CAAA;AAAA,IACR,WAAAC;AAAA,IACA,WAAAC,IAAYjB;AAAA,IACZ,GAAGkB;AAAA,EAAA,IACHb,GAEEc,IAAiB,EAAE,GAAGJ,GAAO,OAAAD,EAAA,GAC7BM,IAAoBX,KAAa,CAACD,IAAOa,EAAWL,GAAW,oBAAoB,IAAIA,GAEvFM,IAAsBD,EAAW,wCAAwCL,CAAS,GAClFO,IAAwBF,EAAW,wBAAwBL,CAAS;AAE1E,SACI,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAnB;AAAA,MACA,IAAAI;AAAA,MACA,SAAAE;AAAA,MACA,WAAAK;AAAA,MACC,GAAGC;AAAA,MACJ,OAAOC;AAAA,MACP,WAAWC;AAAA,MAEV,UAAA;AAAA,QAAAT,uBAAUc,EAAQ,OAAR,EAAc,WAAWH,GAAsB,UAAAX,GAAM;AAAA,0BAC/Dc,EAAQ,SAAR,EAAgB,WAAWF,GAAwB,UAAAhB,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzE,CAAC;"}
1
+ {"version":3,"file":"ActionBarOverlay.js","sources":["../../../src/components/actionBarItem/ActionBarOverlay.tsx"],"sourcesContent":["import React, { forwardRef, type PropsWithChildren, type ForwardedRef } from 'react';\nimport { noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport Popover, { PLACEMENT_MAP } from '../popover/Popover';\nimport type { ObjectValues } from '../../utils/ObjectValues';\n\nconst DEFAULT_PLACEMENT = PLACEMENT_MAP.BOTTOM;\nconst DEFAULT_WIDTH = 250;\n\nexport type ActionBarOverlayWidth = 100 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500;\n\nexport type ActionBarOverlayProps = {\n id: string;\n title?: string | React.ReactNode;\n preRender?: boolean;\n show?: boolean;\n width?: ActionBarOverlayWidth;\n onClick?: () => void;\n style?: object;\n placement?: ObjectValues<typeof PLACEMENT_MAP>;\n className?: string;\n};\n\ntype Ref = ForwardedRef<HTMLDivElement>;\ntype Props = PropsWithChildren<ActionBarOverlayProps>;\n\nconst ActionBarOverlay = forwardRef((props: Props, ref: Ref) => {\n const {\n children,\n show,\n preRender,\n id,\n title,\n onClick = noop,\n width = DEFAULT_WIDTH,\n style = {},\n className,\n placement = DEFAULT_PLACEMENT,\n ...remainingProps\n } = props;\n\n const adjustedStyles = { ...style, width };\n const adjustedClassName = preRender && !show ? classNames(className, 'position-offscreen') : className;\n\n const popoverTitleClasses = classNames('ActionBarItemPopover text-color-dark', className);\n const popoverContentClasses = classNames('ActionBarItemPopover', className);\n\n return (\n <Popover\n ref={ref}\n id={id}\n onClick={onClick}\n placement={placement}\n {...remainingProps}\n style={adjustedStyles}\n className={adjustedClassName}\n >\n {title && <Popover.Title className={popoverTitleClasses}>{title}</Popover.Title>}\n <Popover.Content className={popoverContentClasses}>{children}</Popover.Content>\n </Popover>\n );\n});\n\nexport default ActionBarOverlay;\n"],"names":["DEFAULT_PLACEMENT","PLACEMENT_MAP","DEFAULT_WIDTH","ActionBarOverlay","forwardRef","props","ref","children","show","preRender","id","title","onClick","noop","width","style","className","placement","remainingProps","adjustedStyles","adjustedClassName","classNames","popoverTitleClasses","popoverContentClasses","jsxs","Popover"],"mappings":";;;;;AAOA,MAAMA,IAAoBC,EAAc,QAClCC,IAAgB,KAmBhBC,IAAmBC,EAAW,CAACC,GAAcC,MAAa;AAC5D,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC,IAAUC;AAAA,IACV,OAAAC,IAAQZ;AAAA,IACR,OAAAa,IAAQ,CAAA;AAAA,IACR,WAAAC;AAAA,IACA,WAAAC,IAAYjB;AAAA,IACZ,GAAGkB;AAAA,EAAA,IACHb,GAEEc,IAAiB,EAAE,GAAGJ,GAAO,OAAAD,EAAA,GAC7BM,IAAoBX,KAAa,CAACD,IAAOa,EAAWL,GAAW,oBAAoB,IAAIA,GAEvFM,IAAsBD,EAAW,wCAAwCL,CAAS,GAClFO,IAAwBF,EAAW,wBAAwBL,CAAS;AAE1E,SACI,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAnB;AAAA,MACA,IAAAI;AAAA,MACA,SAAAE;AAAA,MACA,WAAAK;AAAA,MACC,GAAGC;AAAA,MACJ,OAAOC;AAAA,MACP,WAAWC;AAAA,MAEV,UAAA;AAAA,QAAAT,uBAAUc,EAAQ,OAAR,EAAc,WAAWH,GAAsB,UAAAX,GAAM;AAAA,0BAC/Dc,EAAQ,SAAR,EAAgB,WAAWF,GAAwB,UAAAhB,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzE,CAAC;"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as I, jsx as t } from "react/jsx-runtime";
2
2
  import { forwardRef as y } from "react";
3
- import N from "classnames";
3
+ import N from "../../utils/classNames.js";
4
4
  const s = {
5
5
  AVAILABLE: "available",
6
6
  DRIVING: "driving",
@@ -1 +1 @@
1
- {"version":3,"file":"Activity.js","sources":["../../../src/components/activity/Activity.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport type { ObjectValues } from '../../utils/ObjectValues';\nimport type { RefComponent } from '../../utils/RefComponent';\n\nconst STATUS_MAP = {\n AVAILABLE: 'available',\n DRIVING: 'driving',\n RESTING: 'resting',\n WORKING: 'working',\n} as const;\n\nexport type ActivityStatus = ObjectValues<typeof STATUS_MAP>;\n\nconst icons: Record<ActivityStatus, string> = {\n [STATUS_MAP.AVAILABLE]: 'rioglyph-status-available',\n [STATUS_MAP.WORKING]: 'rioglyph-status-working',\n [STATUS_MAP.DRIVING]: 'rioglyph-status-driving',\n [STATUS_MAP.RESTING]: 'rioglyph-status-resting',\n};\n\nconst SIZE_MAP = { SIZE_SM: 'sm', SIZE_LG: 'lg', SIZE_XL: 'xl' } as const;\n\nexport type ActivitySize = ObjectValues<typeof SIZE_MAP>;\n\nexport type ActivityProps = {\n /**\n * Defines the type of activity.\n *\n * Possible values are `Activity.AVAILABLE`, `Activity.DRIVING`, `Activity.RESTING` or `Activity.WORKING`.\n */\n activity: ActivityStatus;\n\n /**\n * Define how large the component should be rendered.\n *\n * Possible values are `Activity.SIZE_SM`, `Activity.SIZE_LG` or `Activity.SIZE_XL`.\n */\n bsSize?: ActivitySize;\n\n /**\n * The actual duration value to be shown.\n */\n duration?: string | ReactNode;\n\n /**\n * Indicates whether the activity is outdated.\n *\n * @default false\n */\n isOutdated?: boolean;\n\n /**\n * Callback function for when the component is clicked.\n */\n onClick?: VoidFunction;\n\n /**\n * Additional classes for the wrapper element.\n */\n className?: string;\n};\n\ntype ActivityType = RefComponent<ActivityProps> & typeof STATUS_MAP & typeof SIZE_MAP;\n\nconst Activity = forwardRef((props: ActivityProps, ref: ForwardedRef<HTMLDivElement>) => {\n const {\n activity,\n duration,\n isOutdated = false,\n bsSize,\n onClick = () => {},\n className = '',\n ...remainingProps\n } = props;\n\n if (!activity) {\n return null;\n }\n\n const wrapperClassNames = classNames(\n 'activity',\n `activity-${activity}`,\n isOutdated && 'opacity-50',\n bsSize && `activity-${bsSize}`,\n className && className\n );\n\n return (\n <div ref={ref} {...remainingProps} className={wrapperClassNames} onClick={onClick}>\n <span className='activity-icon'>\n <span className={`rioglyph ${icons[activity]}`} />\n </span>\n {duration && <span className='activity-text'>{duration}</span>}\n </div>\n );\n}) as ActivityType;\n\n// statics\nObject.assign(Activity, STATUS_MAP);\nObject.assign(Activity, SIZE_MAP);\n\nexport default Activity;\n"],"names":["STATUS_MAP","icons","SIZE_MAP","Activity","forwardRef","props","ref","activity","duration","isOutdated","bsSize","onClick","className","remainingProps","wrapperClassNames","classNames","jsx"],"mappings":";;;AAMA,MAAMA,IAAa;AAAA,EACf,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACb,GAIMC,IAAwC;AAAA,EAC1C,CAACD,EAAW,SAAS,GAAG;AAAA,EACxB,CAACA,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,OAAO,GAAG;AAC1B,GAEME,IAAW,EAAE,SAAS,MAAM,SAAS,MAAM,SAAS,KAAA,GA4CpDC,IAAWC,EAAW,CAACC,GAAsBC,MAAsC;AACrF,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,QAAAC;AAAA,IACA,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,WAAAC,IAAY;AAAA,IACZ,GAAGC;AAAA,EAAA,IACHR;AAEJ,MAAI,CAACE;AACD,WAAO;AAGX,QAAMO,IAAoBC;AAAA,IACtB;AAAA,IACA,YAAYR,CAAQ;AAAA,IACpBE,KAAc;AAAA,IACdC,KAAU,YAAYA,CAAM;AAAA,IAC5BE,KAAaA;AAAA,EAAA;AAGjB,2BACK,OAAA,EAAI,KAAAN,GAAW,GAAGO,GAAgB,WAAWC,GAAmB,SAAAH,GAC7D,UAAA;AAAA,IAAA,gBAAAK,EAAC,QAAA,EAAK,WAAU,iBACZ,UAAA,gBAAAA,EAAC,QAAA,EAAK,WAAW,YAAYf,EAAMM,CAAQ,CAAC,GAAA,CAAI,GACpD;AAAA,IACCC,KAAY,gBAAAQ,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAR,EAAA,CAAS;AAAA,EAAA,GAC3D;AAER,CAAC;AAGD,OAAO,OAAOL,GAAUH,CAAU;AAClC,OAAO,OAAOG,GAAUD,CAAQ;"}
1
+ {"version":3,"file":"Activity.js","sources":["../../../src/components/activity/Activity.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef, type ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport type { ObjectValues } from '../../utils/ObjectValues';\nimport type { RefComponent } from '../../utils/RefComponent';\n\nconst STATUS_MAP = {\n AVAILABLE: 'available',\n DRIVING: 'driving',\n RESTING: 'resting',\n WORKING: 'working',\n} as const;\n\nexport type ActivityStatus = ObjectValues<typeof STATUS_MAP>;\n\nconst icons: Record<ActivityStatus, string> = {\n [STATUS_MAP.AVAILABLE]: 'rioglyph-status-available',\n [STATUS_MAP.WORKING]: 'rioglyph-status-working',\n [STATUS_MAP.DRIVING]: 'rioglyph-status-driving',\n [STATUS_MAP.RESTING]: 'rioglyph-status-resting',\n};\n\nconst SIZE_MAP = { SIZE_SM: 'sm', SIZE_LG: 'lg', SIZE_XL: 'xl' } as const;\n\nexport type ActivitySize = ObjectValues<typeof SIZE_MAP>;\n\nexport type ActivityProps = {\n /**\n * Defines the type of activity.\n *\n * Possible values are `Activity.AVAILABLE`, `Activity.DRIVING`, `Activity.RESTING` or `Activity.WORKING`.\n */\n activity: ActivityStatus;\n\n /**\n * Define how large the component should be rendered.\n *\n * Possible values are `Activity.SIZE_SM`, `Activity.SIZE_LG` or `Activity.SIZE_XL`.\n */\n bsSize?: ActivitySize;\n\n /**\n * The actual duration value to be shown.\n */\n duration?: string | ReactNode;\n\n /**\n * Indicates whether the activity is outdated.\n *\n * @default false\n */\n isOutdated?: boolean;\n\n /**\n * Callback function for when the component is clicked.\n */\n onClick?: VoidFunction;\n\n /**\n * Additional classes for the wrapper element.\n */\n className?: string;\n};\n\ntype ActivityType = RefComponent<ActivityProps> & typeof STATUS_MAP & typeof SIZE_MAP;\n\nconst Activity = forwardRef((props: ActivityProps, ref: ForwardedRef<HTMLDivElement>) => {\n const {\n activity,\n duration,\n isOutdated = false,\n bsSize,\n onClick = () => {},\n className = '',\n ...remainingProps\n } = props;\n\n if (!activity) {\n return null;\n }\n\n const wrapperClassNames = classNames(\n 'activity',\n `activity-${activity}`,\n isOutdated && 'opacity-50',\n bsSize && `activity-${bsSize}`,\n className && className\n );\n\n return (\n <div ref={ref} {...remainingProps} className={wrapperClassNames} onClick={onClick}>\n <span className='activity-icon'>\n <span className={`rioglyph ${icons[activity]}`} />\n </span>\n {duration && <span className='activity-text'>{duration}</span>}\n </div>\n );\n}) as ActivityType;\n\n// statics\nObject.assign(Activity, STATUS_MAP);\nObject.assign(Activity, SIZE_MAP);\n\nexport default Activity;\n"],"names":["STATUS_MAP","icons","SIZE_MAP","Activity","forwardRef","props","ref","activity","duration","isOutdated","bsSize","onClick","className","remainingProps","wrapperClassNames","classNames","jsx"],"mappings":";;;AAMA,MAAMA,IAAa;AAAA,EACf,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACb,GAIMC,IAAwC;AAAA,EAC1C,CAACD,EAAW,SAAS,GAAG;AAAA,EACxB,CAACA,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,OAAO,GAAG;AAAA,EACtB,CAACA,EAAW,OAAO,GAAG;AAC1B,GAEME,IAAW,EAAE,SAAS,MAAM,SAAS,MAAM,SAAS,KAAA,GA4CpDC,IAAWC,EAAW,CAACC,GAAsBC,MAAsC;AACrF,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,QAAAC;AAAA,IACA,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,WAAAC,IAAY;AAAA,IACZ,GAAGC;AAAA,EAAA,IACHR;AAEJ,MAAI,CAACE;AACD,WAAO;AAGX,QAAMO,IAAoBC;AAAA,IACtB;AAAA,IACA,YAAYR,CAAQ;AAAA,IACpBE,KAAc;AAAA,IACdC,KAAU,YAAYA,CAAM;AAAA,IAC5BE,KAAaA;AAAA,EAAA;AAGjB,2BACK,OAAA,EAAI,KAAAN,GAAW,GAAGO,GAAgB,WAAWC,GAAmB,SAAAH,GAC7D,UAAA;AAAA,IAAA,gBAAAK,EAAC,QAAA,EAAK,WAAU,iBACZ,UAAA,gBAAAA,EAAC,QAAA,EAAK,WAAW,YAAYf,EAAMM,CAAQ,CAAC,GAAA,CAAI,GACpD;AAAA,IACCC,KAAY,gBAAAQ,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAR,EAAA,CAAS;AAAA,EAAA,GAC3D;AAER,CAAC;AAGD,OAAO,OAAOL,GAAUH,CAAU;AAClC,OAAO,OAAOG,GAAUD,CAAQ;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
2
  import { useRef as $, useState as F, useMemo as C } from "react";
3
- import u from "classnames";
4
3
  import { useInView as O, useReducedMotion as H, AnimatePresence as b, motion as k } from "motion/react";
5
4
  import P from "../../hooks/useInterval.js";
5
+ import u from "../../utils/classNames.js";
6
6
  const Y = 0.4, j = 0, G = 10, K = "easeOut", q = 3, z = 5, B = 0, J = 8, A = (e) => {
7
7
  switch (e) {
8
8
  case "black":
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatedTextReveal.js","sources":["../../../src/components/animatedTextReveal/AnimatedTextReveal.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { AnimatePresence, motion, useInView, useReducedMotion, type UseInViewOptions } from 'motion/react';\nimport useInterval from '../../hooks/useInterval';\n\nconst DEFAULT_REVEAL_DURATION = 0.4;\nconst DEFAULT_REVEAL_DELAY = 0;\nconst DEFAULT_REVEAL_DISTANCE = 10;\nconst DEFAULT_REVEAL_EASING = 'easeOut';\nconst DEFAULT_REVEAL_INTERVAL = 3;\n\nconst DEFAULT_SHIMMER_DURATION = 5;\nconst DEFAULT_SHIMMER_DELAY = 0;\nconst DEFAULT_SHIMMER_SPREAD = 8;\n\nexport type AnimatedTextRevealProps = {\n /**\n * Text content to display.\n *\n * Accepts a string or an array of phrases that are revealed and cycled through automatically.\n */\n text: string | string[];\n\n /**\n * Reveal animation duration in seconds.\n *\n * @default 0.4\n */\n duration?: number;\n\n /**\n * Reveal animation delay before starting, in seconds.\n *\n * @default 0\n */\n delay?: number;\n\n /**\n * Interval time between phrase transitions when multiple texts are provided, in seconds.\n *\n * @default 3\n */\n interval?: number;\n\n /**\n * Vertical offset in pixels from which the text reveals upward.\n *\n * @default 10\n */\n distance?: number;\n\n /**\n * Easing function applied to the reveal motion.\n *\n * @default 'easeOut'\n */\n ease?: 'linear' | 'easeIn' | 'easeOut' | 'easeInOut';\n\n /**\n * Whether the animation should only start once the component enters the viewport when scrolling.\n *\n * @default true\n */\n startOnView?: boolean;\n\n /**\n * If true, the reveal animation runs only once per mount when the component enters the viewport.\n *\n * @default false\n */\n once?: boolean;\n\n /**\n * Optional root margin passed to the intersection observer for in-view detection (e.g., \"0px 0px -10% 0px\").\n * @see motion/react for details\n */\n inViewMargin?: UseInViewOptions['margin'];\n\n /**\n * Enables or disables the shimmer highlight effect across the text.\n *\n * @default true\n */\n shimmer?: boolean;\n\n /**\n * Duration of one shimmer loop in seconds.\n *\n * @default 5\n */\n shimmerDuration?: number;\n\n /**\n * Delay before the shimmer effect starts, in seconds.\n *\n * @default 0\n */\n shimmerDelay?: number;\n\n /**\n * Multiplier controlling the width of the shimmer highlight band.\n *\n * @default 8\n */\n shimmerSpread?: number;\n\n /**\n * If true, the shimmer animation loops infinitely.\n *\n * @default true\n */\n shimmerRepeat?: boolean;\n\n /**\n * The color of the shimmer highlight band.\n *\n * @default 'lighter'\n */\n shimmerColor?: 'black' | 'darkest' | 'darker' | 'dark' | 'gray' | 'light' | 'lighter' | 'lightest' | 'white';\n\n /**\n * Base color of the text.\n *\n * @default 'darkest'\n */\n textColor?:\n | 'black'\n | 'darkest'\n | 'darker'\n | 'dark'\n | 'gray'\n | 'light'\n | 'lighter'\n | 'lightest'\n | 'white'\n | 'primary'\n | 'secondary'\n | 'info'\n | 'warning'\n | 'danger'\n | 'success';\n\n /**\n * Additional classNames set on the inner element.\n */\n innerClassName?: string;\n\n /**\n * Additional classNames set on the wrapper element.\n */\n className?: string;\n};\n\ntype CSSVars = React.CSSProperties & {\n '--atr-duration'?: string;\n '--atr-delay'?: string;\n '--atr-iterations'?: string;\n '--atr-spread'?: string;\n '--atr-text-color'?: string;\n '--atr-shimmer-color'?: string;\n};\n\nconst getColor = (color: string) => {\n switch (color) {\n case 'black':\n case 'white':\n return `var(--color-${color})`;\n case 'primary':\n case 'secondary':\n case 'info':\n case 'warning':\n case 'danger':\n case 'success':\n return `var(--brand-${color})`;\n case 'gray':\n return 'var(--gray)';\n default:\n return `var(--gray-${color})`;\n }\n};\n\nexport const AnimatedTextReveal = (props: AnimatedTextRevealProps) => {\n const {\n text,\n duration = DEFAULT_REVEAL_DURATION,\n delay = DEFAULT_REVEAL_DELAY,\n interval = DEFAULT_REVEAL_INTERVAL,\n distance = DEFAULT_REVEAL_DISTANCE,\n ease = DEFAULT_REVEAL_EASING,\n startOnView = true,\n once = false,\n inViewMargin,\n\n shimmer = true,\n shimmerDuration = DEFAULT_SHIMMER_DURATION,\n shimmerDelay = DEFAULT_SHIMMER_DELAY,\n shimmerSpread = DEFAULT_SHIMMER_SPREAD,\n shimmerRepeat = true,\n shimmerColor = 'lighter',\n textColor = 'darkest',\n\n innerClassName = '',\n className = '',\n } = props;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isInView = useInView(wrapperRef, { once, margin: inViewMargin });\n const prefersReduced = useReducedMotion();\n\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const phrases = Array.isArray(text) ? text : [text];\n const currentText = phrases[currentIndex] ?? '';\n\n const renderKey = Array.isArray(text) ? `${currentIndex}-${currentText}` : `text-${currentText}`;\n\n useInterval(() => {\n setCurrentIndex(prev => (prev + 1) % phrases.length);\n }, interval * 1000);\n\n // thickness of the moving highlight (derived from current text length)\n const dynamicSpread = useMemo(() => currentText.length * shimmerSpread, [currentText, shimmerSpread]);\n\n // decide when to animate (css takes care of the motion itself)\n const shouldAnimate = !startOnView || isInView;\n\n const style: CSSVars = {\n '--atr-duration': `${shimmerDuration}s`,\n '--atr-delay': `${shimmerDelay}s`,\n '--atr-iterations': shimmerRepeat ? 'infinite' : '1',\n '--atr-spread': `${dynamicSpread}px`,\n '--atr-text-color': getColor(textColor),\n '--atr-shimmer-color': getColor(shimmerColor),\n };\n\n return (\n <div ref={wrapperRef} className={classNames('position-relative', className)} style={style} aria-live='polite'>\n <AnimatePresence mode='wait' initial={false}>\n <motion.div\n key={renderKey} // triggers reveal on text change\n className={classNames(\n 'animated-text-reveal',\n 'position-relative',\n shimmer && shouldAnimate && 'is-animated',\n innerClassName\n )}\n style={style}\n initial={{\n opacity: prefersReduced ? 1 : 0,\n y: prefersReduced ? 0 : distance,\n }}\n animate={\n shouldAnimate\n ? { opacity: 1, y: 0 }\n : { opacity: prefersReduced ? 1 : 0, y: prefersReduced ? 0 : distance }\n }\n exit={{ opacity: 0, y: -10 }}\n transition={{\n duration,\n delay,\n ease,\n }}\n >\n {currentText}\n </motion.div>\n </AnimatePresence>\n </div>\n );\n};\n\nexport default AnimatedTextReveal;\n"],"names":["DEFAULT_REVEAL_DURATION","DEFAULT_REVEAL_DELAY","DEFAULT_REVEAL_DISTANCE","DEFAULT_REVEAL_EASING","DEFAULT_REVEAL_INTERVAL","DEFAULT_SHIMMER_DURATION","DEFAULT_SHIMMER_DELAY","DEFAULT_SHIMMER_SPREAD","getColor","color","AnimatedTextReveal","props","text","duration","delay","interval","distance","ease","startOnView","once","inViewMargin","shimmer","shimmerDuration","shimmerDelay","shimmerSpread","shimmerRepeat","shimmerColor","textColor","innerClassName","className","wrapperRef","useRef","isInView","useInView","prefersReduced","useReducedMotion","currentIndex","setCurrentIndex","useState","phrases","currentText","renderKey","useInterval","prev","dynamicSpread","useMemo","shouldAnimate","style","classNames","jsx","AnimatePresence","motion"],"mappings":";;;;;AAKA,MAAMA,IAA0B,KAC1BC,IAAuB,GACvBC,IAA0B,IAC1BC,IAAwB,WACxBC,IAA0B,GAE1BC,IAA2B,GAC3BC,IAAwB,GACxBC,IAAyB,GAqJzBC,IAAW,CAACC,MAAkB;AAChC,UAAQA,GAAA;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AACD,aAAO,eAAeA,CAAK;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,eAAeA,CAAK;AAAA,IAC/B,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO,cAAcA,CAAK;AAAA,EAAA;AAEtC,GAEaC,KAAqB,CAACC,MAAmC;AAClE,QAAM;AAAA,IACF,MAAAC;AAAA,IACA,UAAAC,IAAWb;AAAA,IACX,OAAAc,IAAQb;AAAA,IACR,UAAAc,IAAWX;AAAA,IACX,UAAAY,IAAWd;AAAA,IACX,MAAAe,IAAOd;AAAA,IACP,aAAAe,IAAc;AAAA,IACd,MAAAC,IAAO;AAAA,IACP,cAAAC;AAAA,IAEA,SAAAC,IAAU;AAAA,IACV,iBAAAC,IAAkBjB;AAAA,IAClB,cAAAkB,IAAejB;AAAA,IACf,eAAAkB,IAAgBjB;AAAA,IAChB,eAAAkB,IAAgB;AAAA,IAChB,cAAAC,IAAe;AAAA,IACf,WAAAC,IAAY;AAAA,IAEZ,gBAAAC,IAAiB;AAAA,IACjB,WAAAC,IAAY;AAAA,EAAA,IACZlB,GAEEmB,IAAaC,EAAuB,IAAI,GACxCC,IAAWC,EAAUH,GAAY,EAAE,MAAAX,GAAM,QAAQC,GAAc,GAC/Dc,IAAiBC,EAAA,GAEjB,CAACC,GAAcC,CAAe,IAAIC,EAAS,CAAC,GAE5CC,IAAU,MAAM,QAAQ3B,CAAI,IAAIA,IAAO,CAACA,CAAI,GAC5C4B,IAAcD,EAAQH,CAAY,KAAK,IAEvCK,IAAY,MAAM,QAAQ7B,CAAI,IAAI,GAAGwB,CAAY,IAAII,CAAW,KAAK,QAAQA,CAAW;AAE9F,EAAAE,EAAY,MAAM;AACd,IAAAL,EAAgB,CAAAM,OAASA,IAAO,KAAKJ,EAAQ,MAAM;AAAA,EACvD,GAAGxB,IAAW,GAAI;AAGlB,QAAM6B,IAAgBC,EAAQ,MAAML,EAAY,SAAShB,GAAe,CAACgB,GAAahB,CAAa,CAAC,GAG9FsB,IAAgB,CAAC5B,KAAec,GAEhCe,IAAiB;AAAA,IACnB,kBAAkB,GAAGzB,CAAe;AAAA,IACpC,eAAe,GAAGC,CAAY;AAAA,IAC9B,oBAAoBE,IAAgB,aAAa;AAAA,IACjD,gBAAgB,GAAGmB,CAAa;AAAA,IAChC,oBAAoBpC,EAASmB,CAAS;AAAA,IACtC,uBAAuBnB,EAASkB,CAAY;AAAA,EAAA;AAGhD,2BACK,OAAA,EAAI,KAAKI,GAAY,WAAWkB,EAAW,qBAAqBnB,CAAS,GAAG,OAAAkB,GAAc,aAAU,UACjG,UAAA,gBAAAE,EAACC,KAAgB,MAAK,QAAO,SAAS,IAClC,UAAA,gBAAAD;AAAA,IAACE,EAAO;AAAA,IAAP;AAAA,MAEG,WAAWH;AAAA,QACP;AAAA,QACA;AAAA,QACA3B,KAAWyB,KAAiB;AAAA,QAC5BlB;AAAA,MAAA;AAAA,MAEJ,OAAAmB;AAAA,MACA,SAAS;AAAA,QACL,SAASb,IAAiB,IAAI;AAAA,QAC9B,GAAGA,IAAiB,IAAIlB;AAAA,MAAA;AAAA,MAE5B,SACI8B,IACM,EAAE,SAAS,GAAG,GAAG,MACjB,EAAE,SAASZ,IAAiB,IAAI,GAAG,GAAGA,IAAiB,IAAIlB,EAAA;AAAA,MAErE,MAAM,EAAE,SAAS,GAAG,GAAG,IAAA;AAAA,MACvB,YAAY;AAAA,QACR,UAAAH;AAAA,QACA,OAAAC;AAAA,QACA,MAAAG;AAAA,MAAA;AAAA,MAGH,UAAAuB;AAAA,IAAA;AAAA,IAxBIC;AAAA,EAAA,GA0Bb,EAAA,CACJ;AAER;"}
1
+ {"version":3,"file":"AnimatedTextReveal.js","sources":["../../../src/components/animatedTextReveal/AnimatedTextReveal.tsx"],"sourcesContent":["import type React from 'react';\nimport { useMemo, useRef, useState } from 'react';\nimport { AnimatePresence, motion, useInView, useReducedMotion, type UseInViewOptions } from 'motion/react';\n\nimport useInterval from '../../hooks/useInterval';\nimport classNames from '../../utils/classNames';\n\nconst DEFAULT_REVEAL_DURATION = 0.4;\nconst DEFAULT_REVEAL_DELAY = 0;\nconst DEFAULT_REVEAL_DISTANCE = 10;\nconst DEFAULT_REVEAL_EASING = 'easeOut';\nconst DEFAULT_REVEAL_INTERVAL = 3;\n\nconst DEFAULT_SHIMMER_DURATION = 5;\nconst DEFAULT_SHIMMER_DELAY = 0;\nconst DEFAULT_SHIMMER_SPREAD = 8;\n\nexport type AnimatedTextRevealProps = {\n /**\n * Text content to display.\n *\n * Accepts a string or an array of phrases that are revealed and cycled through automatically.\n */\n text: string | string[];\n\n /**\n * Reveal animation duration in seconds.\n *\n * @default 0.4\n */\n duration?: number;\n\n /**\n * Reveal animation delay before starting, in seconds.\n *\n * @default 0\n */\n delay?: number;\n\n /**\n * Interval time between phrase transitions when multiple texts are provided, in seconds.\n *\n * @default 3\n */\n interval?: number;\n\n /**\n * Vertical offset in pixels from which the text reveals upward.\n *\n * @default 10\n */\n distance?: number;\n\n /**\n * Easing function applied to the reveal motion.\n *\n * @default 'easeOut'\n */\n ease?: 'linear' | 'easeIn' | 'easeOut' | 'easeInOut';\n\n /**\n * Whether the animation should only start once the component enters the viewport when scrolling.\n *\n * @default true\n */\n startOnView?: boolean;\n\n /**\n * If true, the reveal animation runs only once per mount when the component enters the viewport.\n *\n * @default false\n */\n once?: boolean;\n\n /**\n * Optional root margin passed to the intersection observer for in-view detection (e.g., \"0px 0px -10% 0px\").\n * @see motion/react for details\n */\n inViewMargin?: UseInViewOptions['margin'];\n\n /**\n * Enables or disables the shimmer highlight effect across the text.\n *\n * @default true\n */\n shimmer?: boolean;\n\n /**\n * Duration of one shimmer loop in seconds.\n *\n * @default 5\n */\n shimmerDuration?: number;\n\n /**\n * Delay before the shimmer effect starts, in seconds.\n *\n * @default 0\n */\n shimmerDelay?: number;\n\n /**\n * Multiplier controlling the width of the shimmer highlight band.\n *\n * @default 8\n */\n shimmerSpread?: number;\n\n /**\n * If true, the shimmer animation loops infinitely.\n *\n * @default true\n */\n shimmerRepeat?: boolean;\n\n /**\n * The color of the shimmer highlight band.\n *\n * @default 'lighter'\n */\n shimmerColor?: 'black' | 'darkest' | 'darker' | 'dark' | 'gray' | 'light' | 'lighter' | 'lightest' | 'white';\n\n /**\n * Base color of the text.\n *\n * @default 'darkest'\n */\n textColor?:\n | 'black'\n | 'darkest'\n | 'darker'\n | 'dark'\n | 'gray'\n | 'light'\n | 'lighter'\n | 'lightest'\n | 'white'\n | 'primary'\n | 'secondary'\n | 'info'\n | 'warning'\n | 'danger'\n | 'success';\n\n /**\n * Additional classNames set on the inner element.\n */\n innerClassName?: string;\n\n /**\n * Additional classNames set on the wrapper element.\n */\n className?: string;\n};\n\ntype CSSVars = React.CSSProperties & {\n '--atr-duration'?: string;\n '--atr-delay'?: string;\n '--atr-iterations'?: string;\n '--atr-spread'?: string;\n '--atr-text-color'?: string;\n '--atr-shimmer-color'?: string;\n};\n\nconst getColor = (color: string) => {\n switch (color) {\n case 'black':\n case 'white':\n return `var(--color-${color})`;\n case 'primary':\n case 'secondary':\n case 'info':\n case 'warning':\n case 'danger':\n case 'success':\n return `var(--brand-${color})`;\n case 'gray':\n return 'var(--gray)';\n default:\n return `var(--gray-${color})`;\n }\n};\n\nexport const AnimatedTextReveal = (props: AnimatedTextRevealProps) => {\n const {\n text,\n duration = DEFAULT_REVEAL_DURATION,\n delay = DEFAULT_REVEAL_DELAY,\n interval = DEFAULT_REVEAL_INTERVAL,\n distance = DEFAULT_REVEAL_DISTANCE,\n ease = DEFAULT_REVEAL_EASING,\n startOnView = true,\n once = false,\n inViewMargin,\n\n shimmer = true,\n shimmerDuration = DEFAULT_SHIMMER_DURATION,\n shimmerDelay = DEFAULT_SHIMMER_DELAY,\n shimmerSpread = DEFAULT_SHIMMER_SPREAD,\n shimmerRepeat = true,\n shimmerColor = 'lighter',\n textColor = 'darkest',\n\n innerClassName = '',\n className = '',\n } = props;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isInView = useInView(wrapperRef, { once, margin: inViewMargin });\n const prefersReduced = useReducedMotion();\n\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const phrases = Array.isArray(text) ? text : [text];\n const currentText = phrases[currentIndex] ?? '';\n\n const renderKey = Array.isArray(text) ? `${currentIndex}-${currentText}` : `text-${currentText}`;\n\n useInterval(() => {\n setCurrentIndex(prev => (prev + 1) % phrases.length);\n }, interval * 1000);\n\n // thickness of the moving highlight (derived from current text length)\n const dynamicSpread = useMemo(() => currentText.length * shimmerSpread, [currentText, shimmerSpread]);\n\n // decide when to animate (css takes care of the motion itself)\n const shouldAnimate = !startOnView || isInView;\n\n const style: CSSVars = {\n '--atr-duration': `${shimmerDuration}s`,\n '--atr-delay': `${shimmerDelay}s`,\n '--atr-iterations': shimmerRepeat ? 'infinite' : '1',\n '--atr-spread': `${dynamicSpread}px`,\n '--atr-text-color': getColor(textColor),\n '--atr-shimmer-color': getColor(shimmerColor),\n };\n\n return (\n <div ref={wrapperRef} className={classNames('position-relative', className)} style={style} aria-live='polite'>\n <AnimatePresence mode='wait' initial={false}>\n <motion.div\n key={renderKey} // triggers reveal on text change\n className={classNames(\n 'animated-text-reveal',\n 'position-relative',\n shimmer && shouldAnimate && 'is-animated',\n innerClassName\n )}\n style={style}\n initial={{\n opacity: prefersReduced ? 1 : 0,\n y: prefersReduced ? 0 : distance,\n }}\n animate={\n shouldAnimate\n ? { opacity: 1, y: 0 }\n : { opacity: prefersReduced ? 1 : 0, y: prefersReduced ? 0 : distance }\n }\n exit={{ opacity: 0, y: -10 }}\n transition={{\n duration,\n delay,\n ease,\n }}\n >\n {currentText}\n </motion.div>\n </AnimatePresence>\n </div>\n );\n};\n\nexport default AnimatedTextReveal;\n"],"names":["DEFAULT_REVEAL_DURATION","DEFAULT_REVEAL_DELAY","DEFAULT_REVEAL_DISTANCE","DEFAULT_REVEAL_EASING","DEFAULT_REVEAL_INTERVAL","DEFAULT_SHIMMER_DURATION","DEFAULT_SHIMMER_DELAY","DEFAULT_SHIMMER_SPREAD","getColor","color","AnimatedTextReveal","props","text","duration","delay","interval","distance","ease","startOnView","once","inViewMargin","shimmer","shimmerDuration","shimmerDelay","shimmerSpread","shimmerRepeat","shimmerColor","textColor","innerClassName","className","wrapperRef","useRef","isInView","useInView","prefersReduced","useReducedMotion","currentIndex","setCurrentIndex","useState","phrases","currentText","renderKey","useInterval","prev","dynamicSpread","useMemo","shouldAnimate","style","classNames","jsx","AnimatePresence","motion"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import i from "classnames";
2
+ import i from "../../utils/classNames.js";
3
3
  import { AppMenuDropdown as u } from "./AppMenuDropdown.js";
4
4
  import c from "./AppMenuContent.js";
5
5
  const f = (s) => {
@@ -13,7 +13,7 @@ const f = (s) => {
13
13
  } = s, a = !!(o?.length || e), m = i(
14
14
  "ModuleNavigation AppMenu",
15
15
  "user-select-none",
16
- { hasModules: a },
16
+ a && "hasModules",
17
17
  !e && "pointer-events-none",
18
18
  p && p
19
19
  );
@@ -1 +1 @@
1
- {"version":3,"file":"AppMenu.js","sources":["../../../src/components/applicationHeader/AppMenu.tsx"],"sourcesContent":["import type React from 'react';\nimport classNames from 'classnames';\n\nimport AppMenuDropdown from './AppMenuDropdown';\nimport AppMenuContent from './AppMenuContent';\nimport type { ModulePropType } from './ApplicationHeader';\n\n// Support a list of items for services without the app navigator like internal MDM services\nexport type AppMenuProps = {\n label?: string | React.ReactNode;\n appMenuItems?: ModulePropType[];\n appNavigator?: React.ReactNode;\n appNavigatorClassName?: string;\n onToggleAppMenu?: (isShown: boolean) => void;\n};\n\nconst AppMenu = (props: AppMenuProps) => {\n const {\n label = 'Unknown',\n appMenuItems = [],\n appNavigatorClassName,\n appNavigator,\n onToggleAppMenu,\n ...remainingProps\n } = props;\n\n const hasItems = !!(appMenuItems?.length || appNavigator);\n\n const wrapperClassNames = classNames(\n 'ModuleNavigation AppMenu',\n 'user-select-none',\n { hasModules: hasItems },\n !appNavigator && 'pointer-events-none',\n appNavigatorClassName && appNavigatorClassName\n );\n\n return (\n <ul {...remainingProps} className={wrapperClassNames}>\n <AppMenuDropdown title={label} caret={hasItems} onToggleAppMenu={onToggleAppMenu}>\n {appNavigator && <AppMenuContent appMenuItems={appMenuItems} appNavigator={appNavigator} />}\n </AppMenuDropdown>\n </ul>\n );\n};\n\nexport default AppMenu;\n"],"names":["AppMenu","props","label","appMenuItems","appNavigatorClassName","appNavigator","onToggleAppMenu","remainingProps","hasItems","wrapperClassNames","classNames","AppMenuDropdown","jsx","AppMenuContent"],"mappings":";;;;AAgBA,MAAMA,IAAU,CAACC,MAAwB;AACrC,QAAM;AAAA,IACF,OAAAC,IAAQ;AAAA,IACR,cAAAC,IAAe,CAAA;AAAA,IACf,uBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHN,GAEEO,IAAW,CAAC,EAAEL,GAAc,UAAUE,IAEtCI,IAAoBC;AAAA,IACtB;AAAA,IACA;AAAA,IACA,EAAE,YAAYF,EAAA;AAAA,IACd,CAACH,KAAgB;AAAA,IACjBD,KAAyBA;AAAA,EAAA;AAG7B,2BACK,MAAA,EAAI,GAAGG,GAAgB,WAAWE,GAC/B,4BAACE,GAAA,EAAgB,OAAOT,GAAO,OAAOM,GAAU,iBAAAF,GAC3C,UAAAD,KAAgB,gBAAAO,EAACC,KAAe,cAAAV,GAA4B,cAAAE,GAA4B,GAC7F,EAAA,CACJ;AAER;"}
1
+ {"version":3,"file":"AppMenu.js","sources":["../../../src/components/applicationHeader/AppMenu.tsx"],"sourcesContent":["import type React from 'react';\n\nimport classNames from '../../utils/classNames';\nimport AppMenuDropdown from './AppMenuDropdown';\nimport AppMenuContent from './AppMenuContent';\nimport type { ModulePropType } from './ApplicationHeader';\n\n// Support a list of items for services without the app navigator like internal MDM services\nexport type AppMenuProps = {\n label?: string | React.ReactNode;\n appMenuItems?: ModulePropType[];\n appNavigator?: React.ReactNode;\n appNavigatorClassName?: string;\n onToggleAppMenu?: (isShown: boolean) => void;\n};\n\nconst AppMenu = (props: AppMenuProps) => {\n const {\n label = 'Unknown',\n appMenuItems = [],\n appNavigatorClassName,\n appNavigator,\n onToggleAppMenu,\n ...remainingProps\n } = props;\n\n const hasItems = !!(appMenuItems?.length || appNavigator);\n\n const wrapperClassNames = classNames(\n 'ModuleNavigation AppMenu',\n 'user-select-none',\n hasItems && 'hasModules',\n !appNavigator && 'pointer-events-none',\n appNavigatorClassName && appNavigatorClassName\n );\n\n return (\n <ul {...remainingProps} className={wrapperClassNames}>\n <AppMenuDropdown title={label} caret={hasItems} onToggleAppMenu={onToggleAppMenu}>\n {appNavigator && <AppMenuContent appMenuItems={appMenuItems} appNavigator={appNavigator} />}\n </AppMenuDropdown>\n </ul>\n );\n};\n\nexport default AppMenu;\n"],"names":["AppMenu","props","label","appMenuItems","appNavigatorClassName","appNavigator","onToggleAppMenu","remainingProps","hasItems","wrapperClassNames","classNames","AppMenuDropdown","jsx","AppMenuContent"],"mappings":";;;;AAgBA,MAAMA,IAAU,CAACC,MAAwB;AACrC,QAAM;AAAA,IACF,OAAAC,IAAQ;AAAA,IACR,cAAAC,IAAe,CAAA;AAAA,IACf,uBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHN,GAEEO,IAAW,CAAC,EAAEL,GAAc,UAAUE,IAEtCI,IAAoBC;AAAA,IACtB;AAAA,IACA;AAAA,IACAF,KAAY;AAAA,IACZ,CAACH,KAAgB;AAAA,IACjBD,KAAyBA;AAAA,EAAA;AAG7B,2BACK,MAAA,EAAI,GAAGG,GAAgB,WAAWE,GAC/B,4BAACE,GAAA,EAAgB,OAAOT,GAAO,OAAOM,GAAU,iBAAAF,GAC3C,UAAAD,KAAgB,gBAAAO,EAACC,KAAe,cAAAV,GAA4B,cAAAE,GAA4B,GAC7F,EAAA,CACJ;AAER;"}
@@ -1,27 +1,29 @@
1
1
  import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
2
  import { forwardRef as f, useState as g } from "react";
3
- import i from "classnames";
4
- import { noop as h, isEmpty as d } from "es-toolkit/compat";
3
+ import { noop as h, isEmpty as i } from "es-toolkit/compat";
4
+ import d from "../../utils/classNames.js";
5
5
  import N from "../../hooks/useClickOutside.js";
6
6
  const C = (n) => {
7
- const { title: o, caret: e } = n, r = i("ModuleNavigation-dropdown", "dropdown-toggle justify-content-between", {
8
- inactive: !e
9
- });
7
+ const { title: o, caret: e } = n, r = d(
8
+ "ModuleNavigation-dropdown",
9
+ "dropdown-toggle justify-content-between",
10
+ !e && "inactive"
11
+ );
10
12
  return /* @__PURE__ */ a("a", { className: r, role: "button", id: "basic-nav-dropdown", children: [
11
13
  /* @__PURE__ */ t("span", { children: o }),
12
14
  e && /* @__PURE__ */ t("span", { className: "caret" })
13
15
  ] });
14
16
  }, D = (n) => {
15
17
  const { children: o } = n;
16
- return d(o) ? null : /* @__PURE__ */ t("ul", { role: "menu", className: "dropdown-menu ModuleNavigation-dropdown-menu", children: o });
18
+ return i(o) ? null : /* @__PURE__ */ t("ul", { role: "menu", className: "dropdown-menu ModuleNavigation-dropdown-menu", children: o });
17
19
  }, M = f((n, o) => {
18
20
  const { open: e, children: r, onDropdownClick: s } = n;
19
- return /* @__PURE__ */ t("li", { ref: o, className: i("dropdown", { open: e }), onClick: s, children: r });
21
+ return /* @__PURE__ */ t("li", { ref: o, className: d("dropdown", e && "open"), onClick: s, children: r });
20
22
  }), x = (n) => {
21
- const { title: o, caret: e = !1, onToggleAppMenu: r = h, children: s } = n, [l, c] = g(!1), u = N(() => c(!1)), m = () => {
22
- const p = !l;
23
- c(p), r(p);
24
- }, w = !d(s) && l;
23
+ const { title: o, caret: e = !1, onToggleAppMenu: r = h, children: s } = n, [l, p] = g(!1), u = N(() => p(!1)), m = () => {
24
+ const c = !l;
25
+ p(c), r(c);
26
+ }, w = !i(s) && l;
25
27
  return /* @__PURE__ */ a(M, { open: w, onDropdownClick: m, ref: u, children: [
26
28
  /* @__PURE__ */ t(C, { title: o, caret: e }),
27
29
  /* @__PURE__ */ t(D, { children: s })
@@ -1 +1 @@
1
- {"version":3,"file":"AppMenuDropdown.js","sources":["../../../src/components/applicationHeader/AppMenuDropdown.tsx"],"sourcesContent":["import React, { useState, forwardRef, type ForwardedRef, type PropsWithChildren } from 'react';\nimport classNames from 'classnames';\nimport { isEmpty, noop } from 'es-toolkit/compat';\n\nimport useClickOutside from '../../hooks/useClickOutside';\n\ntype ToggleButtonProps = {\n title: string | React.ReactNode;\n caret: boolean;\n};\n\nconst ToggleButton = (props: ToggleButtonProps) => {\n const { title, caret } = props;\n const toggleClassName = classNames('ModuleNavigation-dropdown', 'dropdown-toggle justify-content-between', {\n inactive: !caret,\n });\n\n return (\n <a className={toggleClassName} role='button' id='basic-nav-dropdown'>\n <span>{title}</span>\n {caret && <span className='caret' />}\n </a>\n );\n};\n\nconst DropdownMenu = (props: PropsWithChildren) => {\n const { children } = props;\n\n if (isEmpty(children)) {\n return null;\n }\n\n return (\n <ul role='menu' className='dropdown-menu ModuleNavigation-dropdown-menu'>\n {children}\n </ul>\n );\n};\n\ntype AppMenuDropdownOpenerProps = {\n open: boolean;\n onDropdownClick: () => void;\n};\n\ntype Ref = ForwardedRef<HTMLLIElement>;\ntype Props = PropsWithChildren<AppMenuDropdownOpenerProps>;\n\nconst AppMenuDropdownOpener = forwardRef((props: Props, ref: Ref) => {\n const { open, children, onDropdownClick } = props;\n return (\n <li ref={ref} className={classNames('dropdown', { open })} onClick={onDropdownClick}>\n {children}\n </li>\n );\n});\n\nexport type AppMenuDropdownProps = {\n title: string | React.ReactNode;\n caret?: boolean;\n onToggleAppMenu?: (isOpen: boolean) => void;\n};\n\nexport const AppMenuDropdown = (props: PropsWithChildren<AppMenuDropdownProps>) => {\n const { title, caret = false, onToggleAppMenu = noop, children } = props;\n\n const [isOpen, setIsOpen] = useState(false);\n\n const wrapperRef = useClickOutside(() => setIsOpen(false));\n\n const handleDropdownClick = () => {\n const newState = !isOpen;\n setIsOpen(newState);\n onToggleAppMenu(newState);\n };\n\n const openWithChildren = !isEmpty(children) && isOpen;\n\n return (\n <AppMenuDropdownOpener open={openWithChildren} onDropdownClick={handleDropdownClick} ref={wrapperRef}>\n <ToggleButton title={title} caret={caret} />\n <DropdownMenu>{children}</DropdownMenu>\n </AppMenuDropdownOpener>\n );\n};\n\nexport default AppMenuDropdown;\n"],"names":["ToggleButton","props","title","caret","toggleClassName","classNames","jsx","DropdownMenu","children","isEmpty","AppMenuDropdownOpener","forwardRef","ref","open","onDropdownClick","AppMenuDropdown","onToggleAppMenu","noop","isOpen","setIsOpen","useState","wrapperRef","useClickOutside","handleDropdownClick","newState","openWithChildren"],"mappings":";;;;;AAWA,MAAMA,IAAe,CAACC,MAA6B;AAC/C,QAAM,EAAE,OAAAC,GAAO,OAAAC,EAAA,IAAUF,GACnBG,IAAkBC,EAAW,6BAA6B,2CAA2C;AAAA,IACvG,UAAU,CAACF;AAAA,EAAA,CACd;AAED,2BACK,KAAA,EAAE,WAAWC,GAAiB,MAAK,UAAS,IAAG,sBAC5C,UAAA;AAAA,IAAA,gBAAAE,EAAC,UAAM,UAAAJ,EAAA,CAAM;AAAA,IACZC,KAAS,gBAAAG,EAAC,QAAA,EAAK,WAAU,QAAA,CAAQ;AAAA,EAAA,GACtC;AAER,GAEMC,IAAe,CAACN,MAA6B;AAC/C,QAAM,EAAE,UAAAO,MAAaP;AAErB,SAAIQ,EAAQD,CAAQ,IACT,yBAIN,MAAA,EAAG,MAAK,QAAO,WAAU,gDACrB,UAAAA,GACL;AAER,GAUME,IAAwBC,EAAW,CAACV,GAAcW,MAAa;AACjE,QAAM,EAAE,MAAAC,GAAM,UAAAL,GAAU,iBAAAM,EAAA,IAAoBb;AAC5C,SACI,gBAAAK,EAAC,MAAA,EAAG,KAAAM,GAAU,WAAWP,EAAW,YAAY,EAAE,MAAAQ,EAAA,CAAM,GAAG,SAASC,GAC/D,UAAAN,EAAA,CACL;AAER,CAAC,GAQYO,IAAkB,CAACd,MAAmD;AAC/E,QAAM,EAAE,OAAAC,GAAO,OAAAC,IAAQ,IAAO,iBAAAa,IAAkBC,GAAM,UAAAT,MAAaP,GAE7D,CAACiB,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAaC,EAAgB,MAAMH,EAAU,EAAK,CAAC,GAEnDI,IAAsB,MAAM;AAC9B,UAAMC,IAAW,CAACN;AAClB,IAAAC,EAAUK,CAAQ,GAClBR,EAAgBQ,CAAQ;AAAA,EAC5B,GAEMC,IAAmB,CAAChB,EAAQD,CAAQ,KAAKU;AAE/C,2BACKR,GAAA,EAAsB,MAAMe,GAAkB,iBAAiBF,GAAqB,KAAKF,GACtF,UAAA;AAAA,IAAA,gBAAAf,EAACN,GAAA,EAAa,OAAAE,GAAc,OAAAC,EAAA,CAAc;AAAA,IAC1C,gBAAAG,EAACC,KAAc,UAAAC,EAAA,CAAS;AAAA,EAAA,GAC5B;AAER;"}
1
+ {"version":3,"file":"AppMenuDropdown.js","sources":["../../../src/components/applicationHeader/AppMenuDropdown.tsx"],"sourcesContent":["import React, { useState, forwardRef, type ForwardedRef, type PropsWithChildren } from 'react';\nimport { isEmpty, noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport useClickOutside from '../../hooks/useClickOutside';\n\ntype ToggleButtonProps = {\n title: string | React.ReactNode;\n caret: boolean;\n};\n\nconst ToggleButton = (props: ToggleButtonProps) => {\n const { title, caret } = props;\n const toggleClassName = classNames(\n 'ModuleNavigation-dropdown',\n 'dropdown-toggle justify-content-between',\n !caret && 'inactive'\n );\n\n return (\n <a className={toggleClassName} role='button' id='basic-nav-dropdown'>\n <span>{title}</span>\n {caret && <span className='caret' />}\n </a>\n );\n};\n\nconst DropdownMenu = (props: PropsWithChildren) => {\n const { children } = props;\n\n if (isEmpty(children)) {\n return null;\n }\n\n return (\n <ul role='menu' className='dropdown-menu ModuleNavigation-dropdown-menu'>\n {children}\n </ul>\n );\n};\n\ntype AppMenuDropdownOpenerProps = {\n open: boolean;\n onDropdownClick: () => void;\n};\n\ntype Ref = ForwardedRef<HTMLLIElement>;\ntype Props = PropsWithChildren<AppMenuDropdownOpenerProps>;\n\nconst AppMenuDropdownOpener = forwardRef((props: Props, ref: Ref) => {\n const { open, children, onDropdownClick } = props;\n return (\n <li ref={ref} className={classNames('dropdown', open && 'open')} onClick={onDropdownClick}>\n {children}\n </li>\n );\n});\n\nexport type AppMenuDropdownProps = {\n title: string | React.ReactNode;\n caret?: boolean;\n onToggleAppMenu?: (isOpen: boolean) => void;\n};\n\nexport const AppMenuDropdown = (props: PropsWithChildren<AppMenuDropdownProps>) => {\n const { title, caret = false, onToggleAppMenu = noop, children } = props;\n\n const [isOpen, setIsOpen] = useState(false);\n\n const wrapperRef = useClickOutside(() => setIsOpen(false));\n\n const handleDropdownClick = () => {\n const newState = !isOpen;\n setIsOpen(newState);\n onToggleAppMenu(newState);\n };\n\n const openWithChildren = !isEmpty(children) && isOpen;\n\n return (\n <AppMenuDropdownOpener open={openWithChildren} onDropdownClick={handleDropdownClick} ref={wrapperRef}>\n <ToggleButton title={title} caret={caret} />\n <DropdownMenu>{children}</DropdownMenu>\n </AppMenuDropdownOpener>\n );\n};\n\nexport default AppMenuDropdown;\n"],"names":["ToggleButton","props","title","caret","toggleClassName","classNames","jsx","DropdownMenu","children","isEmpty","AppMenuDropdownOpener","forwardRef","ref","open","onDropdownClick","AppMenuDropdown","onToggleAppMenu","noop","isOpen","setIsOpen","useState","wrapperRef","useClickOutside","handleDropdownClick","newState","openWithChildren"],"mappings":";;;;;AAWA,MAAMA,IAAe,CAACC,MAA6B;AAC/C,QAAM,EAAE,OAAAC,GAAO,OAAAC,EAAA,IAAUF,GACnBG,IAAkBC;AAAA,IACpB;AAAA,IACA;AAAA,IACA,CAACF,KAAS;AAAA,EAAA;AAGd,2BACK,KAAA,EAAE,WAAWC,GAAiB,MAAK,UAAS,IAAG,sBAC5C,UAAA;AAAA,IAAA,gBAAAE,EAAC,UAAM,UAAAJ,EAAA,CAAM;AAAA,IACZC,KAAS,gBAAAG,EAAC,QAAA,EAAK,WAAU,QAAA,CAAQ;AAAA,EAAA,GACtC;AAER,GAEMC,IAAe,CAACN,MAA6B;AAC/C,QAAM,EAAE,UAAAO,MAAaP;AAErB,SAAIQ,EAAQD,CAAQ,IACT,yBAIN,MAAA,EAAG,MAAK,QAAO,WAAU,gDACrB,UAAAA,GACL;AAER,GAUME,IAAwBC,EAAW,CAACV,GAAcW,MAAa;AACjE,QAAM,EAAE,MAAAC,GAAM,UAAAL,GAAU,iBAAAM,EAAA,IAAoBb;AAC5C,SACI,gBAAAK,EAAC,MAAA,EAAG,KAAAM,GAAU,WAAWP,EAAW,YAAYQ,KAAQ,MAAM,GAAG,SAASC,GACrE,UAAAN,EAAA,CACL;AAER,CAAC,GAQYO,IAAkB,CAACd,MAAmD;AAC/E,QAAM,EAAE,OAAAC,GAAO,OAAAC,IAAQ,IAAO,iBAAAa,IAAkBC,GAAM,UAAAT,MAAaP,GAE7D,CAACiB,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAaC,EAAgB,MAAMH,EAAU,EAAK,CAAC,GAEnDI,IAAsB,MAAM;AAC9B,UAAMC,IAAW,CAACN;AAClB,IAAAC,EAAUK,CAAQ,GAClBR,EAAgBQ,CAAQ;AAAA,EAC5B,GAEMC,IAAmB,CAAChB,EAAQD,CAAQ,KAAKU;AAE/C,2BACKR,GAAA,EAAsB,MAAMe,GAAkB,iBAAiBF,GAAqB,KAAKF,GACtF,UAAA;AAAA,IAAA,gBAAAf,EAACN,GAAA,EAAa,OAAAE,GAAc,OAAAC,EAAA,CAAc;AAAA,IAC1C,gBAAAG,EAACC,KAAc,UAAAC,EAAA,CAAS;AAAA,EAAA,GAC5B;AAER;"}