@react-fabric/core 1.0.0-beta.8 → 1.0.1

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 (592) hide show
  1. package/{src/components/actionLabel/ActionLabel.module.css → css/components/_actionLabel.css} +4 -4
  2. package/{src/overlays/alert/Alert.module.css → css/components/_alert.css} +3 -3
  3. package/css/components/_animations.css +52 -0
  4. package/css/components/_avatar.css +89 -0
  5. package/css/components/_button.css +218 -0
  6. package/css/components/_buttonGroup.css +62 -0
  7. package/css/components/_callout.css +32 -0
  8. package/css/components/_card.css +167 -0
  9. package/css/components/_chip.css +125 -0
  10. package/css/components/_collapsable.css +32 -0
  11. package/{src/overlays/message/Message.module.css → css/components/_divider.css} +11 -10
  12. package/{src/components/dropdown/Dropdown.module.css → css/components/_dropdown.css} +3 -2
  13. package/{src/overlays/flyout/Flyout.module.css → css/components/_flyout.css} +15 -9
  14. package/css/components/_media.css +102 -0
  15. package/{src/components/menu/Menu.module.css → css/components/_menu.css} +21 -20
  16. package/{src/components/meter/Meter.module.css → css/components/_meter.css} +15 -20
  17. package/{src/overlays/modal/Modal.module.css → css/components/_modal.css} +9 -9
  18. package/{src/components/panel/Panel.module.css → css/components/_panel.css} +19 -19
  19. package/{src/components/progress/Progress.module.css → css/components/_progress.css} +7 -10
  20. package/css/components/_sonner.css +431 -0
  21. package/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +125 -85
  22. package/css/components/_titlebar.css +48 -0
  23. package/css/components/index.css +47 -0
  24. package/css/core/_aside.css +176 -0
  25. package/css/core/_content.css +31 -0
  26. package/css/core/_errorboundary.css +55 -0
  27. package/css/core/_responsive.css +45 -0
  28. package/css/core/_typography.css +69 -0
  29. package/css/core/_viewport.css +33 -0
  30. package/{src/hooks/useClientService.tsx → css/core/index.css} +7 -7
  31. package/css/reset/_gradients.css +36 -33
  32. package/css/reset/_reset.css +206 -300
  33. package/css/reset/_text.css +31 -61
  34. package/css/reset/_theme.css +467 -81
  35. package/css/reset/index.css +23 -21
  36. package/css/styles.css +30 -23
  37. package/css/theme/_colors.css +445 -0
  38. package/css/theme/_utilities.css +528 -0
  39. package/css/theme/_variants.css +128 -0
  40. package/css/theme/index.css +55 -0
  41. package/dist/cjs/components/actionLabel/ActionLabel.js +25 -12
  42. package/dist/cjs/{overlays → components}/alert/Alert.js +76 -53
  43. package/dist/cjs/components/animations/Indicator.js +72 -0
  44. package/dist/cjs/components/animations/Loader.js +77 -0
  45. package/dist/cjs/components/animations/LoadingBars.js +37 -0
  46. package/dist/cjs/components/animations/LoadingLine.js +59 -0
  47. package/dist/cjs/components/animations/LoadingSpinner.js +37 -0
  48. package/dist/cjs/components/animations/Skeleton.js +88 -0
  49. package/dist/cjs/components/avatar/Avatar.js +41 -20
  50. package/dist/cjs/components/avatar/AvatarGroup.js +37 -16
  51. package/dist/cjs/components/badge/Badge.js +90 -68
  52. package/dist/cjs/components/button/Button.js +198 -136
  53. package/dist/cjs/components/button/ButtonGroup.js +86 -21
  54. package/dist/cjs/components/button/ConfirmButton.js +55 -41
  55. package/dist/cjs/components/button/ToggleButtonGroup.js +84 -32
  56. package/dist/cjs/components/callout/Callout.js +56 -25
  57. package/dist/cjs/components/card/Card.js +90 -42
  58. package/dist/cjs/components/card/CardCover.js +38 -27
  59. package/dist/cjs/components/card/FlipContent.js +47 -0
  60. package/dist/cjs/components/chip/Chip.js +80 -37
  61. package/dist/cjs/components/collapsable/Collapsable.js +62 -31
  62. package/dist/cjs/components/divider/Divider.js +58 -24
  63. package/dist/cjs/components/dropdown/Dropdown.js +92 -45
  64. package/dist/cjs/components/dropdown/DropdownTool.js +6 -7
  65. package/dist/cjs/components/effect/GlassEffect.js +259 -0
  66. package/dist/cjs/components/effect/MatteEffect.js +127 -0
  67. package/dist/cjs/components/effect/StyleEffect.js +43 -0
  68. package/dist/cjs/components/empty/EmptyContent.js +37 -49
  69. package/dist/cjs/components/flyout/Flyout.js +170 -0
  70. package/dist/cjs/components/hotkey/HotKey.js +42 -0
  71. package/dist/cjs/components/icon/Icon.js +81 -80
  72. package/dist/cjs/components/media/Media.js +154 -77
  73. package/dist/cjs/components/menu/ContextMenu.js +45 -20
  74. package/dist/cjs/components/menu/Menu.js +98 -38
  75. package/dist/cjs/components/menu/MenuItem.js +102 -74
  76. package/dist/cjs/components/meter/Meter.js +35 -12
  77. package/dist/cjs/components/modal/Modal.js +152 -0
  78. package/dist/cjs/components/navigator/Navigator.js +81 -36
  79. package/dist/cjs/components/panel/Panel.js +115 -60
  80. package/dist/cjs/components/panel/PanelGroup.js +42 -16
  81. package/dist/cjs/components/panel/PanelStack.js +47 -16
  82. package/dist/cjs/components/pillbox/Pillbox.js +118 -0
  83. package/dist/cjs/components/progress/ProgressBar.js +30 -14
  84. package/dist/cjs/components/progress/ProgressCircle.js +27 -11
  85. package/dist/cjs/components/tabpanel/Tab.js +53 -37
  86. package/dist/cjs/components/tabpanel/TabPanel.js +74 -28
  87. package/dist/cjs/components/titlebar/Titlebar.js +52 -0
  88. package/dist/cjs/components/tooltip/Tooltip.js +180 -0
  89. package/dist/cjs/context/Global.js +159 -80
  90. package/dist/cjs/context/ModalManager.js +60 -0
  91. package/dist/cjs/context/context.js +43 -0
  92. package/dist/cjs/core/areaToggle/AreaToggle.js +41 -0
  93. package/dist/cjs/core/aside/Aside.js +178 -83
  94. package/dist/cjs/core/boundary/ErrorBoundary.js +37 -34
  95. package/dist/cjs/core/boundary/ErrorIcon.js +32 -19
  96. package/dist/cjs/core/content/Content.js +26 -37
  97. package/dist/cjs/core/headfoot/HeadFoot.js +133 -35
  98. package/dist/cjs/core/layout/Layout.js +28 -0
  99. package/dist/cjs/core/responsive/Responsive.js +62 -26
  100. package/dist/cjs/core/theme/ThemeProvider.js +35 -41
  101. package/dist/cjs/core/viewport/Viewport.js +26 -22
  102. package/dist/cjs/hooks/useClientService.js +39 -18
  103. package/dist/cjs/hooks/useContextMenu.js +103 -0
  104. package/dist/cjs/hooks/useControlledValue.js +13 -7
  105. package/dist/cjs/hooks/useDebounce.js +37 -21
  106. package/dist/cjs/hooks/useEffectDebugger.js +79 -60
  107. package/dist/cjs/hooks/useIsDark.js +34 -26
  108. package/dist/cjs/hooks/useIsRtl.js +13 -3
  109. package/dist/cjs/hooks/useNavigator.js +12 -9
  110. package/dist/cjs/hooks/useNotificationService.js +199 -0
  111. package/dist/cjs/hooks/useOverlayService.js +82 -41
  112. package/dist/cjs/hooks/usePropState.js +41 -0
  113. package/dist/cjs/hooks/usePropToggle.js +32 -26
  114. package/dist/cjs/hooks/useResize.js +47 -38
  115. package/dist/cjs/hooks/useResizeObserver.js +26 -7
  116. package/dist/cjs/hooks/useStorage.js +29 -16
  117. package/dist/cjs/i18n/index.js +25 -23
  118. package/dist/cjs/index.js +142 -94
  119. package/dist/cjs/typography/Abbr.js +43 -20
  120. package/dist/cjs/typography/Anchor.js +39 -0
  121. package/dist/cjs/typography/Copy.js +28 -28
  122. package/dist/cjs/typography/Kbd.js +43 -0
  123. package/dist/cjs/typography/Mark.js +34 -17
  124. package/dist/cjs/typography/Text.js +36 -54
  125. package/dist/cjs/typography/Title.js +17 -40
  126. package/dist/cjs/utils/calculateDimensions.js +38 -23
  127. package/dist/cjs/utils/cloneElement.js +64 -0
  128. package/dist/cjs/{core/section/Section.js → utils/getBadgeProps.js} +25 -21
  129. package/dist/cjs/utils/getColor.js +42 -36
  130. package/dist/cjs/utils/getIconProps.js +63 -0
  131. package/dist/cjs/utils/getTooltipProps.js +66 -0
  132. package/dist/cjs/utils/nodeCheck.js +4 -4
  133. package/dist/esm/components/actionLabel/ActionLabel.js +25 -12
  134. package/dist/esm/{overlays → components}/alert/Alert.js +73 -50
  135. package/dist/esm/components/animations/Indicator.js +72 -0
  136. package/dist/esm/components/animations/Loader.js +77 -0
  137. package/dist/esm/components/animations/LoadingBars.js +37 -0
  138. package/dist/esm/components/animations/LoadingLine.js +59 -0
  139. package/dist/esm/components/animations/LoadingSpinner.js +37 -0
  140. package/dist/esm/components/animations/Skeleton.js +88 -0
  141. package/dist/esm/components/avatar/Avatar.js +42 -21
  142. package/dist/esm/components/avatar/AvatarGroup.js +37 -16
  143. package/dist/esm/components/badge/Badge.js +93 -70
  144. package/dist/esm/components/button/Button.js +199 -137
  145. package/dist/esm/components/button/ButtonGroup.js +87 -22
  146. package/dist/esm/components/button/ConfirmButton.js +58 -44
  147. package/dist/esm/components/button/ToggleButtonGroup.js +86 -34
  148. package/dist/esm/components/callout/Callout.js +56 -25
  149. package/dist/esm/components/card/Card.js +92 -44
  150. package/dist/esm/components/card/CardCover.js +38 -27
  151. package/dist/esm/components/card/FlipContent.js +47 -0
  152. package/dist/esm/components/chip/Chip.js +81 -38
  153. package/dist/esm/components/collapsable/Collapsable.js +63 -32
  154. package/dist/esm/components/divider/Divider.js +59 -25
  155. package/dist/esm/components/dropdown/Dropdown.js +95 -48
  156. package/dist/esm/components/dropdown/DropdownTool.js +6 -7
  157. package/dist/esm/components/effect/GlassEffect.js +259 -0
  158. package/dist/esm/components/effect/MatteEffect.js +127 -0
  159. package/dist/esm/components/effect/StyleEffect.js +43 -0
  160. package/dist/esm/components/empty/EmptyContent.js +38 -50
  161. package/dist/esm/components/flyout/Flyout.js +170 -0
  162. package/dist/esm/components/hotkey/HotKey.js +42 -0
  163. package/dist/esm/components/icon/Icon.js +83 -82
  164. package/dist/esm/components/media/Media.js +156 -79
  165. package/dist/esm/components/menu/ContextMenu.js +46 -21
  166. package/dist/esm/components/menu/Menu.js +101 -41
  167. package/dist/esm/components/menu/MenuItem.js +98 -70
  168. package/dist/esm/components/meter/Meter.js +36 -13
  169. package/dist/esm/components/modal/Modal.js +152 -0
  170. package/dist/esm/components/navigator/Navigator.js +81 -36
  171. package/dist/esm/components/panel/Panel.js +117 -62
  172. package/dist/esm/components/panel/PanelGroup.js +43 -17
  173. package/dist/esm/components/panel/PanelStack.js +48 -17
  174. package/dist/esm/components/pillbox/Pillbox.js +118 -0
  175. package/dist/esm/components/progress/ProgressBar.js +31 -15
  176. package/dist/esm/components/progress/ProgressCircle.js +28 -12
  177. package/dist/esm/components/tabpanel/Tab.js +54 -38
  178. package/dist/esm/components/tabpanel/TabPanel.js +75 -29
  179. package/dist/esm/components/titlebar/Titlebar.js +52 -0
  180. package/dist/esm/components/tooltip/Tooltip.js +180 -0
  181. package/dist/esm/context/Global.js +161 -78
  182. package/dist/esm/context/ModalManager.js +60 -0
  183. package/dist/esm/context/context.js +40 -0
  184. package/dist/esm/core/areaToggle/AreaToggle.js +41 -0
  185. package/dist/esm/core/aside/Aside.js +179 -84
  186. package/dist/esm/core/boundary/ErrorBoundary.js +38 -35
  187. package/dist/esm/core/boundary/ErrorIcon.js +32 -19
  188. package/dist/esm/core/content/Content.js +26 -37
  189. package/dist/esm/core/headfoot/HeadFoot.js +134 -36
  190. package/dist/esm/core/layout/Layout.js +28 -0
  191. package/dist/esm/core/responsive/Responsive.js +62 -26
  192. package/dist/esm/core/theme/ThemeProvider.js +36 -42
  193. package/dist/esm/core/viewport/Viewport.js +26 -22
  194. package/dist/esm/hooks/useClientService.js +39 -18
  195. package/dist/esm/hooks/useContextMenu.js +103 -0
  196. package/dist/esm/hooks/useControlledValue.js +14 -8
  197. package/dist/esm/hooks/useDebounce.js +37 -21
  198. package/dist/esm/hooks/useEffectDebugger.js +81 -62
  199. package/dist/esm/hooks/useIsDark.js +34 -26
  200. package/dist/esm/hooks/useIsRtl.js +13 -3
  201. package/dist/esm/hooks/useNavigator.js +13 -10
  202. package/dist/esm/hooks/useNotificationService.js +199 -0
  203. package/dist/esm/hooks/useOverlayService.js +83 -42
  204. package/dist/esm/hooks/usePropState.js +40 -0
  205. package/dist/esm/hooks/usePropToggle.js +33 -27
  206. package/dist/esm/hooks/useResize.js +48 -39
  207. package/dist/esm/hooks/useResizeObserver.js +27 -8
  208. package/dist/esm/hooks/useStorage.js +30 -17
  209. package/dist/esm/i18n/index.js +23 -21
  210. package/dist/esm/index.js +87 -44
  211. package/dist/esm/typography/Abbr.js +45 -22
  212. package/dist/esm/typography/Anchor.js +39 -0
  213. package/dist/esm/typography/Copy.js +28 -28
  214. package/dist/esm/typography/Kbd.js +43 -0
  215. package/dist/esm/typography/Mark.js +35 -18
  216. package/dist/esm/typography/Text.js +39 -57
  217. package/dist/esm/typography/Title.js +17 -40
  218. package/dist/esm/utils/calculateDimensions.js +38 -23
  219. package/dist/esm/utils/cloneElement.js +64 -0
  220. package/dist/esm/{core/section/Section.js → utils/getBadgeProps.js} +25 -21
  221. package/dist/esm/utils/getColor.js +43 -34
  222. package/dist/esm/utils/getIconProps.js +63 -0
  223. package/dist/esm/utils/getTooltipProps.js +66 -0
  224. package/dist/esm/utils/nodeCheck.js +4 -4
  225. package/dist/types/components/actionLabel/ActionLabel.d.ts +20 -7
  226. package/dist/types/components/alert/Alert.d.ts +74 -0
  227. package/dist/types/components/animations/Indicator.d.ts +57 -0
  228. package/dist/types/components/animations/Loader.d.ts +65 -0
  229. package/dist/types/components/animations/LoadingBars.d.ts +61 -0
  230. package/dist/types/components/animations/LoadingLine.d.ts +43 -0
  231. package/dist/types/components/animations/LoadingSpinner.d.ts +61 -0
  232. package/dist/types/components/animations/Skeleton.d.ts +61 -0
  233. package/dist/types/components/avatar/Avatar.d.ts +70 -19
  234. package/dist/types/components/avatar/AvatarGroup.d.ts +51 -14
  235. package/dist/types/components/badge/Badge.d.ts +64 -14
  236. package/dist/types/components/button/Button.d.ts +72 -55
  237. package/dist/types/components/button/ButtonGroup.d.ts +86 -24
  238. package/dist/types/components/button/ConfirmButton.d.ts +21 -7
  239. package/dist/types/components/button/ToggleButtonGroup.d.ts +88 -44
  240. package/dist/types/components/callout/Callout.d.ts +58 -7
  241. package/dist/types/components/card/Card.d.ts +66 -25
  242. package/dist/types/components/card/CardCover.d.ts +52 -7
  243. package/dist/types/components/card/FlipContent.d.ts +50 -0
  244. package/dist/types/components/chip/Chip.d.ts +72 -20
  245. package/dist/types/components/collapsable/Collapsable.d.ts +55 -15
  246. package/dist/types/components/divider/Divider.d.ts +25 -8
  247. package/dist/types/components/dropdown/Dropdown.d.ts +42 -9
  248. package/dist/types/components/dropdown/DropdownTool.d.ts +22 -4
  249. package/dist/types/components/effect/GlassEffect.d.ts +5 -0
  250. package/dist/types/components/effect/MatteEffect.d.ts +40 -0
  251. package/dist/types/components/effect/StyleEffect.d.ts +27 -0
  252. package/dist/types/components/empty/EmptyContent.d.ts +53 -9
  253. package/dist/types/components/flyout/Flyout.d.ts +60 -0
  254. package/dist/types/components/hotkey/HotKey.d.ts +41 -0
  255. package/dist/types/components/icon/Icon.d.ts +74 -24
  256. package/dist/types/components/media/Media.d.ts +72 -4
  257. package/dist/types/components/menu/ContextMenu.d.ts +22 -5
  258. package/dist/types/components/menu/Menu.d.ts +26 -2
  259. package/dist/types/components/menu/MenuItem.d.ts +19 -4
  260. package/dist/types/components/menu/types.d.ts +23 -14
  261. package/dist/types/components/meter/Meter.d.ts +23 -3
  262. package/dist/types/components/modal/Modal.d.ts +52 -0
  263. package/dist/types/components/navigator/Navigator.d.ts +30 -4
  264. package/dist/types/components/panel/Panel.d.ts +43 -23
  265. package/dist/types/components/panel/PanelGroup.d.ts +22 -3
  266. package/dist/types/components/panel/PanelStack.d.ts +28 -2
  267. package/dist/types/components/pillbox/Pillbox.d.ts +95 -0
  268. package/dist/types/components/progress/ProgressBar.d.ts +19 -4
  269. package/dist/types/components/progress/ProgressCircle.d.ts +18 -4
  270. package/dist/types/components/tabpanel/Tab.d.ts +42 -10
  271. package/dist/types/components/tabpanel/TabPanel.d.ts +47 -7
  272. package/dist/types/components/titlebar/Titlebar.d.ts +54 -0
  273. package/dist/types/components/tooltip/Tooltip.d.ts +76 -0
  274. package/dist/types/context/Global.d.ts +39 -69
  275. package/dist/types/context/ModalManager.d.ts +30 -0
  276. package/dist/types/context/context.d.ts +107 -0
  277. package/dist/types/core/areaToggle/AreaToggle.d.ts +33 -0
  278. package/dist/types/core/aside/Aside.d.ts +75 -20
  279. package/dist/types/core/boundary/ErrorBoundary.d.ts +43 -4
  280. package/dist/types/core/boundary/ErrorIcon.d.ts +38 -1
  281. package/dist/types/core/content/Content.d.ts +38 -6
  282. package/dist/types/core/headfoot/HeadFoot.d.ts +48 -14
  283. package/dist/types/core/layout/Layout.d.ts +38 -0
  284. package/dist/types/core/responsive/Responsive.d.ts +45 -15
  285. package/dist/types/core/theme/ThemeProvider.d.ts +35 -11
  286. package/dist/types/core/viewport/Viewport.d.ts +27 -3
  287. package/dist/types/hooks/useClientService.d.ts +43 -1
  288. package/dist/types/hooks/useContextMenu.d.ts +10 -0
  289. package/dist/types/hooks/useControlledValue.d.ts +28 -4
  290. package/dist/types/hooks/useDebounce.d.ts +38 -2
  291. package/dist/types/hooks/useEffectDebugger.d.ts +73 -4
  292. package/dist/types/hooks/useIsDark.d.ts +6 -0
  293. package/dist/types/hooks/useIsRtl.d.ts +35 -1
  294. package/dist/types/hooks/useNavigator.d.ts +37 -2
  295. package/dist/types/hooks/useNotificationService.d.ts +60 -0
  296. package/dist/types/hooks/useOverlayService.d.ts +28 -8
  297. package/dist/types/hooks/usePropState.d.ts +26 -0
  298. package/dist/types/hooks/usePropToggle.d.ts +41 -7
  299. package/dist/types/hooks/useResize.d.ts +46 -4
  300. package/dist/types/hooks/useResizeObserver.d.ts +45 -3
  301. package/dist/types/hooks/useStorage.d.ts +32 -2
  302. package/dist/types/i18n/index.d.ts +27 -3
  303. package/dist/types/index.d.ts +106 -18
  304. package/dist/types/types/colors.d.ts +29 -0
  305. package/dist/types/types/index.d.ts +216 -76
  306. package/dist/types/typography/Abbr.d.ts +51 -6
  307. package/dist/types/typography/Anchor.d.ts +41 -0
  308. package/dist/types/typography/Copy.d.ts +36 -2
  309. package/dist/types/typography/Kbd.d.ts +40 -0
  310. package/dist/types/typography/Mark.d.ts +44 -7
  311. package/dist/types/typography/Text.d.ts +40 -24
  312. package/dist/types/typography/Title.d.ts +37 -26
  313. package/dist/types/typography/types.d.ts +32 -0
  314. package/dist/types/utils/calculateDimensions.d.ts +50 -6
  315. package/dist/types/utils/cloneElement.d.ts +41 -0
  316. package/dist/types/utils/getBadgeProps.d.ts +16 -0
  317. package/dist/types/utils/getColor.d.ts +43 -4
  318. package/dist/types/utils/getIconProps.d.ts +45 -0
  319. package/dist/types/utils/getTooltipProps.d.ts +47 -0
  320. package/dist/types/utils/index.d.ts +28 -0
  321. package/dist/types/utils/nodeCheck.d.ts +1 -2
  322. package/package.json +29 -21
  323. package/src/components/actionLabel/ActionLabel.tsx +28 -39
  324. package/src/components/alert/Alert.tsx +261 -0
  325. package/src/components/animations/Indicator.tsx +76 -0
  326. package/src/components/animations/Loader.tsx +89 -0
  327. package/src/components/animations/LoadingBars.tsx +70 -0
  328. package/src/components/animations/LoadingLine.tsx +51 -0
  329. package/src/components/animations/LoadingSpinner.tsx +70 -0
  330. package/src/components/animations/Skeleton.tsx +100 -0
  331. package/src/components/avatar/Avatar.tsx +89 -70
  332. package/src/components/avatar/AvatarGroup.tsx +65 -74
  333. package/src/components/badge/Badge.tsx +141 -108
  334. package/src/components/button/Button.tsx +223 -238
  335. package/src/components/button/ButtonGroup.tsx +117 -77
  336. package/src/components/button/ConfirmButton.tsx +60 -90
  337. package/src/components/button/ToggleButtonGroup.tsx +134 -120
  338. package/src/components/callout/Callout.tsx +81 -59
  339. package/src/components/card/Card.tsx +131 -113
  340. package/src/components/card/CardCover.tsx +61 -61
  341. package/src/components/card/FlipContent.tsx +78 -0
  342. package/src/components/chip/Chip.tsx +139 -99
  343. package/src/components/collapsable/Collapsable.tsx +79 -77
  344. package/src/components/divider/Divider.tsx +74 -53
  345. package/src/components/dropdown/Dropdown.tsx +109 -106
  346. package/src/components/dropdown/DropdownTool.tsx +29 -12
  347. package/src/components/effect/GlassEffect.tsx +221 -0
  348. package/src/components/effect/MatteEffect.tsx +99 -0
  349. package/src/components/effect/StyleEffect.tsx +36 -0
  350. package/src/components/empty/EmptyContent.tsx +60 -99
  351. package/src/components/flyout/Flyout.tsx +257 -0
  352. package/src/components/hotkey/HotKey.tsx +57 -0
  353. package/src/components/icon/Icon.tsx +131 -130
  354. package/src/components/media/Media.tsx +184 -154
  355. package/src/components/menu/ContextMenu.tsx +56 -39
  356. package/src/components/menu/Menu.tsx +121 -84
  357. package/src/components/menu/MenuItem.tsx +87 -69
  358. package/src/components/menu/types.ts +23 -28
  359. package/src/components/meter/Meter.tsx +34 -17
  360. package/src/components/modal/Modal.tsx +226 -0
  361. package/src/components/navigator/Navigator.tsx +93 -38
  362. package/src/components/panel/Panel.tsx +123 -131
  363. package/src/components/panel/PanelGroup.tsx +49 -43
  364. package/src/components/panel/PanelStack.tsx +63 -62
  365. package/src/components/pillbox/Pillbox.tsx +208 -0
  366. package/src/components/progress/ProgressBar.tsx +33 -33
  367. package/src/components/progress/ProgressCircle.tsx +29 -37
  368. package/src/components/tabpanel/Tab.tsx +84 -73
  369. package/src/components/tabpanel/TabPanel.tsx +102 -51
  370. package/src/components/titlebar/Titlebar.tsx +115 -0
  371. package/src/components/tooltip/Tooltip.tsx +255 -0
  372. package/src/context/Global.tsx +148 -148
  373. package/src/context/ModalManager.tsx +68 -0
  374. package/src/context/context.ts +111 -0
  375. package/src/core/areaToggle/AreaToggle.tsx +45 -0
  376. package/src/core/aside/Aside.tsx +200 -155
  377. package/src/core/boundary/ErrorBoundary.tsx +50 -68
  378. package/src/core/boundary/ErrorIcon.tsx +34 -32
  379. package/src/core/content/Content.tsx +41 -50
  380. package/src/core/headfoot/HeadFoot.tsx +162 -81
  381. package/src/core/layout/Layout.tsx +54 -0
  382. package/src/core/responsive/Responsive.tsx +91 -98
  383. package/src/core/theme/ThemeProvider.tsx +45 -56
  384. package/src/core/viewport/Viewport.tsx +25 -27
  385. package/src/hooks/useClientService.ts +47 -0
  386. package/src/hooks/useContextMenu.tsx +131 -0
  387. package/src/hooks/useControlledValue.ts +47 -0
  388. package/src/hooks/useDebounce.ts +41 -24
  389. package/src/hooks/useEffectDebugger.ts +105 -94
  390. package/src/hooks/useIsDark.ts +10 -24
  391. package/src/hooks/useIsRtl.ts +32 -20
  392. package/src/hooks/useNavigator.tsx +41 -26
  393. package/src/hooks/useNotificationService.tsx +239 -0
  394. package/src/hooks/useOverlayService.tsx +67 -20
  395. package/src/hooks/usePropState.ts +52 -0
  396. package/src/hooks/usePropToggle.ts +54 -47
  397. package/src/hooks/useResize.ts +69 -45
  398. package/src/hooks/useResizeObserver.ts +59 -34
  399. package/src/hooks/useStorage.ts +40 -48
  400. package/src/i18n/index.ts +24 -25
  401. package/src/index.ts +115 -44
  402. package/src/types/colors.ts +49 -0
  403. package/src/types/global.d.ts +40 -17
  404. package/src/types/index.ts +243 -155
  405. package/src/typography/Abbr.tsx +62 -59
  406. package/src/typography/Anchor.tsx +63 -0
  407. package/src/typography/Copy.tsx +39 -29
  408. package/src/typography/Kbd.tsx +50 -0
  409. package/src/typography/Mark.tsx +56 -51
  410. package/src/typography/Text.tsx +57 -128
  411. package/src/typography/Title.tsx +36 -108
  412. package/src/typography/types.ts +27 -17
  413. package/src/utils/calculateDimensions.ts +50 -40
  414. package/src/utils/cloneElement.ts +61 -0
  415. package/src/{core/content/Content.module.css → utils/getBadgeProps.ts} +20 -15
  416. package/src/utils/getColor.ts +42 -36
  417. package/src/utils/getIconProps.ts +58 -0
  418. package/src/utils/getTooltipProps.ts +59 -0
  419. package/src/utils/index.ts +23 -17
  420. package/src/utils/nodeCheck.ts +4 -8
  421. package/css/flags.rect.css +0 -1607
  422. package/css/flags.wavy.css +0 -1606
  423. package/css/index.js +0 -250
  424. package/css/tailwind/colors.ts +0 -158
  425. package/dist/cjs/components/actionLabel/ActionLabel.module.css +0 -1
  426. package/dist/cjs/components/animations/Animations.js +0 -142
  427. package/dist/cjs/components/animations/Animations.module.css +0 -1
  428. package/dist/cjs/components/avatar/Avatar.module.css +0 -1
  429. package/dist/cjs/components/badge/Badge.module.css +0 -1
  430. package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +0 -71
  431. package/dist/cjs/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  432. package/dist/cjs/components/button/Button.module.css +0 -1
  433. package/dist/cjs/components/card/Card.module.css +0 -1
  434. package/dist/cjs/components/chip/Chip.module.css +0 -1
  435. package/dist/cjs/components/collapsable/Collapsable.module.css +0 -1
  436. package/dist/cjs/components/dropdown/Dropdown.module.css +0 -1
  437. package/dist/cjs/components/icon/Icon.module.css +0 -1
  438. package/dist/cjs/components/media/Media.module.css +0 -1
  439. package/dist/cjs/components/menu/Menu.module.css +0 -1
  440. package/dist/cjs/components/meter/Meter.module.css +0 -1
  441. package/dist/cjs/components/panel/Panel.module.css +0 -1
  442. package/dist/cjs/components/progress/Progress.module.css +0 -1
  443. package/dist/cjs/components/tabpanel/TabPanel.module.css +0 -1
  444. package/dist/cjs/context/NotificationCenter.js +0 -254
  445. package/dist/cjs/core/aside/Aside.module.css +0 -1
  446. package/dist/cjs/core/boundary/ErrorBoundary.module.css +0 -1
  447. package/dist/cjs/core/content/Content.module.css +0 -1
  448. package/dist/cjs/core/headfoot/HeadFoot.module.css +0 -1
  449. package/dist/cjs/core/page/Page.js +0 -66
  450. package/dist/cjs/core/page/Page.module.css +0 -1
  451. package/dist/cjs/core/responsive/Responsive.module.css +0 -1
  452. package/dist/cjs/core/section/Section.module.css +0 -1
  453. package/dist/cjs/core/theme/Theme.module.css +0 -1
  454. package/dist/cjs/core/viewport/Viewport.module.css +0 -1
  455. package/dist/cjs/hotkeys/HotKey.js +0 -47
  456. package/dist/cjs/hotkeys/HotKeyLabel.js +0 -52
  457. package/dist/cjs/hotkeys/HotKeyWrapper.js +0 -98
  458. package/dist/cjs/hotkeys/commons.js +0 -56
  459. package/dist/cjs/overlays/alert/Alert.module.css +0 -1
  460. package/dist/cjs/overlays/flyout/Flyout.js +0 -152
  461. package/dist/cjs/overlays/flyout/Flyout.module.css +0 -1
  462. package/dist/cjs/overlays/message/Message.js +0 -84
  463. package/dist/cjs/overlays/message/Message.module.css +0 -1
  464. package/dist/cjs/overlays/modal/Modal.js +0 -132
  465. package/dist/cjs/overlays/modal/Modal.module.css +0 -1
  466. package/dist/cjs/overlays/toast/Toast.js +0 -166
  467. package/dist/cjs/overlays/toast/Toast.module.css +0 -1
  468. package/dist/cjs/overlays/tooltip/Tooltip.js +0 -133
  469. package/dist/cjs/overlays/tooltip/Tooltip.module.css +0 -1
  470. package/dist/cjs/types/icons.js +0 -200
  471. package/dist/cjs/typography/Link.js +0 -55
  472. package/dist/cjs/typography/Typography.module.css +0 -1
  473. package/dist/cjs/typography/types.js +0 -42
  474. package/dist/esm/components/actionLabel/ActionLabel.module.css +0 -1
  475. package/dist/esm/components/animations/Animations.js +0 -138
  476. package/dist/esm/components/animations/Animations.module.css +0 -1
  477. package/dist/esm/components/avatar/Avatar.module.css +0 -1
  478. package/dist/esm/components/badge/Badge.module.css +0 -1
  479. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +0 -71
  480. package/dist/esm/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  481. package/dist/esm/components/button/Button.module.css +0 -1
  482. package/dist/esm/components/card/Card.module.css +0 -1
  483. package/dist/esm/components/chip/Chip.module.css +0 -1
  484. package/dist/esm/components/collapsable/Collapsable.module.css +0 -1
  485. package/dist/esm/components/dropdown/Dropdown.module.css +0 -1
  486. package/dist/esm/components/icon/Icon.module.css +0 -1
  487. package/dist/esm/components/media/Media.module.css +0 -1
  488. package/dist/esm/components/menu/Menu.module.css +0 -1
  489. package/dist/esm/components/meter/Meter.module.css +0 -1
  490. package/dist/esm/components/panel/Panel.module.css +0 -1
  491. package/dist/esm/components/progress/Progress.module.css +0 -1
  492. package/dist/esm/components/tabpanel/TabPanel.module.css +0 -1
  493. package/dist/esm/context/NotificationCenter.js +0 -254
  494. package/dist/esm/core/aside/Aside.module.css +0 -1
  495. package/dist/esm/core/boundary/ErrorBoundary.module.css +0 -1
  496. package/dist/esm/core/content/Content.module.css +0 -1
  497. package/dist/esm/core/headfoot/HeadFoot.module.css +0 -1
  498. package/dist/esm/core/page/Page.js +0 -66
  499. package/dist/esm/core/page/Page.module.css +0 -1
  500. package/dist/esm/core/responsive/Responsive.module.css +0 -1
  501. package/dist/esm/core/section/Section.module.css +0 -1
  502. package/dist/esm/core/theme/Theme.module.css +0 -1
  503. package/dist/esm/core/viewport/Viewport.module.css +0 -1
  504. package/dist/esm/hotkeys/HotKey.js +0 -47
  505. package/dist/esm/hotkeys/HotKeyLabel.js +0 -52
  506. package/dist/esm/hotkeys/HotKeyWrapper.js +0 -96
  507. package/dist/esm/hotkeys/commons.js +0 -56
  508. package/dist/esm/overlays/alert/Alert.module.css +0 -1
  509. package/dist/esm/overlays/flyout/Flyout.js +0 -152
  510. package/dist/esm/overlays/flyout/Flyout.module.css +0 -1
  511. package/dist/esm/overlays/message/Message.js +0 -84
  512. package/dist/esm/overlays/message/Message.module.css +0 -1
  513. package/dist/esm/overlays/modal/Modal.js +0 -132
  514. package/dist/esm/overlays/modal/Modal.module.css +0 -1
  515. package/dist/esm/overlays/toast/Toast.js +0 -166
  516. package/dist/esm/overlays/toast/Toast.module.css +0 -1
  517. package/dist/esm/overlays/tooltip/Tooltip.js +0 -132
  518. package/dist/esm/overlays/tooltip/Tooltip.module.css +0 -1
  519. package/dist/esm/types/icons.js +0 -202
  520. package/dist/esm/typography/Link.js +0 -55
  521. package/dist/esm/typography/Typography.module.css +0 -1
  522. package/dist/esm/typography/types.js +0 -41
  523. package/dist/types/components/animations/Animations.d.ts +0 -23
  524. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +0 -17
  525. package/dist/types/components/index.d.ts +0 -33
  526. package/dist/types/context/NotificationCenter.d.ts +0 -11
  527. package/dist/types/core/index.d.ts +0 -9
  528. package/dist/types/core/page/Page.d.ts +0 -23
  529. package/dist/types/core/section/Section.d.ts +0 -7
  530. package/dist/types/hotkeys/HotKey.d.ts +0 -2
  531. package/dist/types/hotkeys/HotKeyLabel.d.ts +0 -2
  532. package/dist/types/hotkeys/HotKeyWrapper.d.ts +0 -11
  533. package/dist/types/hotkeys/commons.d.ts +0 -28
  534. package/dist/types/overlays/alert/Alert.d.ts +0 -41
  535. package/dist/types/overlays/flyout/Flyout.d.ts +0 -57
  536. package/dist/types/overlays/index.d.ts +0 -6
  537. package/dist/types/overlays/message/Message.d.ts +0 -21
  538. package/dist/types/overlays/modal/Modal.d.ts +0 -53
  539. package/dist/types/overlays/toast/Toast.d.ts +0 -33
  540. package/dist/types/overlays/tooltip/Tooltip.d.ts +0 -18
  541. package/dist/types/types/icons.d.ts +0 -197
  542. package/dist/types/typography/Link.d.ts +0 -25
  543. package/dist/types/typography/index.d.ts +0 -6
  544. package/src/components/animations/Animations.module.css +0 -253
  545. package/src/components/animations/Animations.tsx +0 -196
  546. package/src/components/avatar/Avatar.module.css +0 -90
  547. package/src/components/badge/Badge.module.css +0 -165
  548. package/src/components/breadcrumbs/Breadcrumbs.module.css +0 -189
  549. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -109
  550. package/src/components/button/Button.module.css +0 -375
  551. package/src/components/card/Card.module.css +0 -152
  552. package/src/components/chip/Chip.module.css +0 -118
  553. package/src/components/collapsable/Collapsable.module.css +0 -30
  554. package/src/components/icon/Icon.module.css +0 -71
  555. package/src/components/index.ts +0 -62
  556. package/src/components/media/Media.module.css +0 -112
  557. package/src/context/NotificationCenter.tsx +0 -223
  558. package/src/core/aside/Aside.module.css +0 -231
  559. package/src/core/boundary/ErrorBoundary.module.css +0 -65
  560. package/src/core/headfoot/HeadFoot.module.css +0 -38
  561. package/src/core/index.ts +0 -32
  562. package/src/core/page/Page.module.css +0 -46
  563. package/src/core/page/Page.tsx +0 -101
  564. package/src/core/responsive/Responsive.module.css +0 -85
  565. package/src/core/section/Section.module.css +0 -28
  566. package/src/core/section/Section.tsx +0 -54
  567. package/src/core/theme/Theme.module.css +0 -30
  568. package/src/core/viewport/Viewport.module.css +0 -32
  569. package/src/hooks/useControlledValue.tsx +0 -43
  570. package/src/hotkeys/HotKey.tsx +0 -39
  571. package/src/hotkeys/HotKeyLabel.tsx +0 -61
  572. package/src/hotkeys/HotKeyWrapper.tsx +0 -137
  573. package/src/hotkeys/commons.ts +0 -74
  574. package/src/overlays/alert/Alert.tsx +0 -252
  575. package/src/overlays/flyout/Flyout.tsx +0 -283
  576. package/src/overlays/index.ts +0 -29
  577. package/src/overlays/message/Message.tsx +0 -107
  578. package/src/overlays/modal/Modal.tsx +0 -244
  579. package/src/overlays/toast/Toast.module.css +0 -37
  580. package/src/overlays/toast/Toast.tsx +0 -216
  581. package/src/overlays/tooltip/Tooltip.module.css +0 -53
  582. package/src/overlays/tooltip/Tooltip.tsx +0 -200
  583. package/src/types/icons.ts +0 -426
  584. package/src/typography/Link.tsx +0 -113
  585. package/src/typography/Typography.module.css +0 -68
  586. package/src/typography/index.ts +0 -29
  587. /package/dist/cjs/i18n/{ar.json.js → ar/core.json.js} +0 -0
  588. /package/dist/cjs/i18n/{en.json.js → en/core.json.js} +0 -0
  589. /package/dist/esm/i18n/{ar.json.js → ar/core.json.js} +0 -0
  590. /package/dist/esm/i18n/{en.json.js → en/core.json.js} +0 -0
  591. /package/src/i18n/{ar.json → ar/core.json} +0 -0
  592. /package/src/i18n/{en.json → en/core.json} +0 -0
@@ -2,105 +2,106 @@
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
- import { isSvgPath, isString } from '@react-fabric/utilities';
6
- import classNames from 'classnames';
7
- import { useMemo } from 'react';
8
- import { getColor, getBgClass, getColorClass } from '../../utils/getColor.js';
9
- import classes from './Icon.module.css';
5
+ import { isString, isSvgPath, cn } from '@react-fabric/utilities';
6
+ import { useMemo, isValidElement } from 'react';
10
7
  import { jsx } from 'react/jsx-runtime';
8
+ import { getColor } from '../../utils/getColor.js';
11
9
 
12
- var _excluded = ["ref", "icon", "bg", "color", "size", "rtlFlip", "animate", "rounded", "viewBox", "className", "onClick"];
10
+ var _excluded = ["animate", "className", "color", "bg", "icon", "ref", "rounded", "rtlFlip", "size", "viewBox"];
13
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
13
  var SvgTextSize = ["", ".875em", ".525em", ".35em", ".25em"];
16
- var SizeMap = {
17
- xs: "0.625rem",
18
- sm: "0.875rem",
19
- md: "1.125rem",
20
- lg: "1.5rem",
21
- xl: "2rem"
14
+ var ANIMATIONS = {
15
+ spin: "animate-spin",
16
+ fade: "animate-fade",
17
+ pulse: "animate-pulse",
18
+ bounce: "animate-bounce"
22
19
  };
23
20
 
24
21
  /**
25
- * An icon is a display component for svg icon path / image
22
+ * A versatile icon component that supports multiple formats: SVG paths, CSS class names,
23
+ * and short text labels (rendered inside an SVG).
24
+ *
25
+ * Recommended to use iconify for CSS icons
26
+ *
27
+ * @see https://iconify.design/ for a comprehensive collection of icons that can be easily integrated using CSS class names, providing a wide range of options for developers to choose from when selecting icons for their applications.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * import { Icon } from "@react-fabric/core";
32
+ *
33
+ * // Render as a raw SVG path
34
+ * <Icon icon="M10 20v-6h4v6h5V3h-5V13H9v6H5v-6h4z" size="24px" />
35
+ *
36
+ * // Render via CSS class
37
+ * <Icon icon="icon-[mdi--home]" />
38
+ *
39
+ * // Render as a short text label inside an SVG
40
+ * <Icon icon="+" size="1.5em" />
41
+ *
42
+ * // With additional features like animations and custom colors
43
+ * <Icon icon="M4 10h2v10H4zm8-2h2v10h-2zm6-7h2v10h-2zm-4 12h2v3h-2z" animate="spin" color="primary-500" />
44
+ * ```
26
45
  */
27
- var Icon = function Icon(_ref) {
28
- var ref = _ref.ref,
29
- icon = _ref.icon,
30
- bg = _ref.bg,
46
+ function Icon(_ref) {
47
+ var animate = _ref.animate,
48
+ className = _ref.className,
31
49
  color = _ref.color,
32
- _ref$size = _ref.size,
33
- size = _ref$size === void 0 ? "" : _ref$size,
34
- rtlFlip = _ref.rtlFlip,
35
- animate = _ref.animate,
50
+ bg = _ref.bg,
51
+ icon = _ref.icon,
52
+ ref = _ref.ref,
36
53
  rounded = _ref.rounded,
54
+ rtlFlip = _ref.rtlFlip,
55
+ size = _ref.size,
37
56
  _ref$viewBox = _ref.viewBox,
38
57
  viewBox = _ref$viewBox === void 0 ? "0 0 24 24" : _ref$viewBox,
39
- className = _ref.className,
40
- onClick = _ref.onClick,
41
- rest = _objectWithoutProperties(_ref, _excluded);
42
- /** ***************** style map *******************/
43
- var styles = useMemo(function () {
44
- var s = {};
45
- if (bg) {
46
- s.backgroundColor = getColor(bg);
47
- }
48
- if (color) {
49
- s.color = getColor(color);
50
- }
51
- if (size && !(size in SizeMap)) {
52
- s.fontSize = size;
53
- }
54
- if (size && size in SizeMap) {
55
- s.fontSize = SizeMap[size];
56
- }
57
- return s;
58
- }, [bg, color, size]);
59
-
60
- /** ***************** check if icon is svg path *******************/
61
- var isSvg = useMemo(function () {
62
- return isSvgPath(icon);
63
- }, [icon]);
64
-
65
- /** ***************** render icon *******************/
58
+ props = _objectWithoutProperties(_ref, _excluded);
66
59
  var iconEl = useMemo(function () {
67
- var _SvgTextSize$icon$len;
68
- if (!isString(icon)) {
69
- throw Error("Invalid icon expected string");
60
+ if (/*#__PURE__*/isValidElement(icon)) return icon;
61
+ if (isString(icon)) {
62
+ if (isSvgPath(icon)) {
63
+ return /*#__PURE__*/jsx("svg", {
64
+ viewBox: viewBox,
65
+ className: "size-[1em]",
66
+ children: /*#__PURE__*/jsx("path", {
67
+ fill: "currentColor",
68
+ d: icon.toString()
69
+ })
70
+ });
71
+ }
72
+ return icon.length <= 4 ? /*#__PURE__*/jsx("svg", {
73
+ role: "img",
74
+ className: "size-[1em]",
75
+ children: /*#__PURE__*/jsx("text", {
76
+ x: "50%",
77
+ y: "50%",
78
+ dy: ".1em",
79
+ dominantBaseline: "middle",
80
+ textAnchor: "middle",
81
+ style: {
82
+ fontSize: SvgTextSize[icon.length]
83
+ },
84
+ children: icon
85
+ })
86
+ }) : /*#__PURE__*/jsx("i", {
87
+ className: "size-[1em] ".concat(icon)
88
+ });
70
89
  }
71
- return isSvg ? /*#__PURE__*/jsx("svg", {
72
- viewBox: viewBox,
73
- children: /*#__PURE__*/jsx("path", {
74
- fill: "currentColor",
75
- d: icon.toString()
76
- })
77
- }) : (icon === null || icon === void 0 ? void 0 : icon.toString().length) <= 4 ? /*#__PURE__*/jsx("svg", {
78
- role: "img",
79
- children: /*#__PURE__*/jsx("text", {
80
- x: "50%",
81
- y: "50%",
82
- dy: ".1em",
83
- dominantBaseline: "middle",
84
- textAnchor: "middle",
85
- style: {
86
- fontSize: (_SvgTextSize$icon$len = SvgTextSize[icon.length]) !== null && _SvgTextSize$icon$len !== void 0 ? _SvgTextSize$icon$len : "1em"
87
- },
88
- children: icon
89
- })
90
- }) : /*#__PURE__*/jsx("i", {
91
- className: "".concat(icon)
92
- });
93
- }, [icon, isSvg, viewBox]);
94
- return /*#__PURE__*/jsx("dfn", _objectSpread(_objectSpread({}, rest), {}, {
90
+ throw Error("Invalid icon expected string");
91
+ }, [icon, viewBox]);
92
+ return /*#__PURE__*/jsx("dfn", _objectSpread(_objectSpread({
93
+ "data-ref": "icon"
94
+ }, props), {}, {
95
95
  ref: ref,
96
96
  role: "presentation",
97
- className: classNames(classes.icon, className, "select-none overflow-hidden inline-block box-content leading-none not-italic text-center", bg && getBgClass(bg), color && getColorClass(color), !rounded && "rounded", rounded && "rounded-full", animate && "animate-".concat(animate)),
98
- onClick: onClick,
99
- "data-flip": rtlFlip,
100
- style: styles,
101
- "data-clickable": !!onClick,
97
+ className: cn("fabric-icon", "inline-block", className, "select-none overflow-hidden box-content leading-0 not-italic text-center", rounded ? "rounded-full" : "rounded", animate && ANIMATIONS[animate], rtlFlip && "rtl:-scale-x-100"),
98
+ style: {
99
+ fontSize: size,
100
+ color: getColor(color),
101
+ backgroundColor: getColor(bg)
102
+ },
102
103
  children: iconEl
103
104
  }));
104
- };
105
+ }
105
106
 
106
107
  export { Icon };
@@ -3,19 +3,49 @@
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
- import { getImageColorset } from '@react-fabric/utilities';
7
- import classNames from 'classnames';
8
- import { useState, useMemo, useRef } from 'react';
9
- import { CoreIcons } from '../../types/icons.js';
6
+ import { cn, getImageColorset } from '@react-fabric/utilities';
7
+ import { useState, useRef, Fragment } from 'react';
8
+ import { usePropWatcher } from '../../hooks/usePropState.js';
10
9
  import { Button } from '../button/Button.js';
11
- import classes from './Media.module.css';
10
+ import { Icon } from '../icon/Icon.js';
12
11
  import { jsx, jsxs } from 'react/jsx-runtime';
13
12
 
14
13
  var _excluded = ["src", "alt", "reel", "fit", "className"],
15
14
  _excluded2 = ["src", "poster", "reel", "autoPlay", "playOnHover", "fit", "className"];
16
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
- var Image = function Image(_ref) {
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ var cover = {
18
+ fill: "object-fill",
19
+ cover: "object-cover",
20
+ contain: "object-contain"
21
+ };
22
+ var loadIndicator = /*#__PURE__*/jsx("div", {
23
+ className: cn("fabric-mediaPlaceholder", "absolute z-1 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-sm text-gray"),
24
+ children: /*#__PURE__*/jsx("i", {
25
+ className: "icon-[svg-spinners--pulse-rings-2]"
26
+ })
27
+ });
28
+
29
+ /**
30
+ * Component for displaying images with optional reel decoration.
31
+ * A versatile media component that supports images and videos with various display options.
32
+ * It can display images with a reel decoration, handle loading states, and show error icons if the media fails to load.
33
+ * This component is useful for displaying images in a visually appealing way, with support for lazy loading and error handling.
34
+ * It automatically adjusts the display based on the provided fit property, allowing for different styles such as cover, contain, or fill.
35
+ *
36
+ * @example
37
+ * ```jsx
38
+ * <Image
39
+ * src="image.jpg"
40
+ * alt="Example Image"
41
+ * reel={true}
42
+ * fit="cover"
43
+ * className="custom-class"
44
+ * />
45
+ * // Renders an image with reel decoration, cover fit, and a custom class name.
46
+ * ```
47
+ */
48
+ function Image(_ref) {
19
49
  var src = _ref.src,
20
50
  alt = _ref.alt,
21
51
  reel = _ref.reel,
@@ -27,32 +57,66 @@ var Image = function Image(_ref) {
27
57
  _useState2 = _slicedToArray(_useState, 2),
28
58
  colorSet = _useState2[0],
29
59
  setColorSet = _useState2[1];
30
- var loadIndicator = useMemo(function () {
31
- return /*#__PURE__*/jsx("div", {
32
- className: classNames(classes.mediaPlaceholder, "absolute z-1 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-4xl text-gray animate-pulse"),
33
- children: "\u25CF\u25CF\u25CF"
34
- });
35
- }, [src]);
60
+ var _usePropWatcher = usePropWatcher(false, src),
61
+ _usePropWatcher2 = _slicedToArray(_usePropWatcher, 2),
62
+ loaded = _usePropWatcher2[0],
63
+ setLoaded = _usePropWatcher2[1];
64
+ var _usePropWatcher3 = usePropWatcher(false, src),
65
+ _usePropWatcher4 = _slicedToArray(_usePropWatcher3, 2),
66
+ errored = _usePropWatcher4[0],
67
+ setErrored = _usePropWatcher4[1];
36
68
  return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
37
69
  "data-ref": "image",
38
- className: classNames(classes.mediaContainer, "relative overflow-hidden bg-gray inline-block", reel && classes.mediaReel, className),
70
+ className: cn("fabric-mediaContainer", "relative overflow-hidden inline-block", reel && "fabric-mediaReel", className),
39
71
  "data-colorset": colorSet
40
72
  }, aria), {}, {
41
- children: [loadIndicator, /*#__PURE__*/jsx("img", {
73
+ children: [!loaded && !errored && loadIndicator, !errored && /*#__PURE__*/jsx("img", {
42
74
  alt: alt !== null && alt !== void 0 ? alt : src,
43
75
  src: src,
44
76
  loading: "lazy",
45
77
  crossOrigin: "anonymous",
46
- className: classNames(classes.media, "pointer-events-none w-full h-full", fit && "object-".concat(fit)),
78
+ className: cn("fabric-media", "pointer-events-none w-full h-full", cover[fit]),
47
79
  onLoad: function onLoad(e) {
48
- var _e$currentTarget$prev;
49
- (_e$currentTarget$prev = e.currentTarget.previousElementSibling) === null || _e$currentTarget$prev === void 0 || _e$currentTarget$prev.remove();
80
+ setLoaded(true);
50
81
  setColorSet(getImageColorset(e.currentTarget));
82
+ },
83
+ onError: function onError() {
84
+ return setErrored(true);
51
85
  }
86
+ }), errored && /*#__PURE__*/jsx(Icon, {
87
+ size: "2rem",
88
+ className: "absolute text-tint-300 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
89
+ icon: "icon-[mdi--image-off-outline]"
52
90
  })]
53
91
  }));
54
- };
55
- var Video = function Video(_ref2) {
92
+ }
93
+
94
+ /**
95
+ * Component for displaying videos with optional controls and reel decoration.
96
+ * A versatile video component that supports autoplay, hover play, and various display options.
97
+ * It can display videos with a reel decoration, handle loading states, and show error icons if the video fails to load.
98
+ * This component is useful for displaying videos in a visually appealing way, with support for controls, autoplay, and error handling.
99
+ * It automatically adjusts the display based on the provided fit property, allowing for different styles such as cover, contain, or fill.
100
+ * It also includes controls for play/pause and volume, enhancing user interaction with the video content.
101
+ * This component is ideal for media-rich applications where video content needs to be displayed with user-friendly controls and visual effects.
102
+ * It supports features like autoplay, play on hover, and custom fit options for the video display.
103
+ * It also includes a reel decoration for a more engaging visual presentation.
104
+ *
105
+ * @example
106
+ * ```jsx
107
+ * <Video
108
+ * src="video.mp4"
109
+ * poster="poster.jpg"
110
+ * reel={true}
111
+ * autoPlay={true}
112
+ * playOnHover={true}
113
+ * fit="cover"
114
+ * className="custom-class"
115
+ * />
116
+ * // Renders a video with reel decoration, autoplay, play on hover, cover fit, and a custom class name.
117
+ * ```
118
+ */
119
+ function Video(_ref2) {
56
120
  var src = _ref2.src,
57
121
  poster = _ref2.poster,
58
122
  reel = _ref2.reel,
@@ -63,6 +127,14 @@ var Video = function Video(_ref2) {
63
127
  className = _ref2.className,
64
128
  aria = _objectWithoutProperties(_ref2, _excluded2);
65
129
  var videoRef = useRef(null);
130
+ var _usePropWatcher5 = usePropWatcher(false, src),
131
+ _usePropWatcher6 = _slicedToArray(_usePropWatcher5, 2),
132
+ loaded = _usePropWatcher6[0],
133
+ setLoaded = _usePropWatcher6[1];
134
+ var _usePropWatcher7 = usePropWatcher(false, src),
135
+ _usePropWatcher8 = _slicedToArray(_usePropWatcher7, 2),
136
+ errored = _usePropWatcher8[0],
137
+ setErrored = _usePropWatcher8[1];
66
138
  var _useState3 = useState(true),
67
139
  _useState4 = _slicedToArray(_useState3, 2),
68
140
  state = _useState4[0],
@@ -73,76 +145,81 @@ var Video = function Video(_ref2) {
73
145
  setVolume = _useState6[1];
74
146
  return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
75
147
  "data-ref": "video",
76
- className: classNames(classes.mediaContainer, "relative overflow-hidden bg-gray inline-block", reel && classes.mediaReel, className),
148
+ className: cn("fabric-mediaContainer", "relative overflow-hidden inline-block", reel && "fabric-mediaReel", className),
77
149
  onMouseEnter: function onMouseEnter() {
78
150
  var _videoRef$current;
79
- playOnHover && ((_videoRef$current = videoRef.current) === null || _videoRef$current === void 0 ? void 0 : _videoRef$current.play());
151
+ if (playOnHover) void ((_videoRef$current = videoRef.current) === null || _videoRef$current === void 0 ? void 0 : _videoRef$current.play());
80
152
  },
81
153
  onMouseLeave: function onMouseLeave() {
82
154
  var _videoRef$current2;
83
- playOnHover && ((_videoRef$current2 = videoRef.current) === null || _videoRef$current2 === void 0 ? void 0 : _videoRef$current2.pause());
155
+ if (playOnHover) (_videoRef$current2 = videoRef.current) === null || _videoRef$current2 === void 0 || _videoRef$current2.pause();
84
156
  }
85
157
  }, aria), {}, {
86
- children: [/*#__PURE__*/jsx("div", {
87
- className: classNames(classes.mediaPlaceholder, "absolute z-1 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-5xl animate-pulse"),
88
- children: "\u25CF\u25CF\u25CF"
89
- }), /*#__PURE__*/jsxs("video", {
90
- loop: true,
91
- ref: videoRef,
92
- controls: false,
93
- poster: poster,
94
- autoPlay: autoPlay,
95
- className: classNames(classes.media, "pointer-events-none w-full h-full", fit && "object-".concat(fit)),
96
- onPlay: function onPlay() {
97
- return setState(true);
98
- },
99
- onPause: function onPause() {
100
- return setState(false);
101
- },
102
- onVolumeChange: function onVolumeChange(e) {
103
- return setVolume(!!e.currentTarget.volume);
104
- },
105
- onLoadedData: function onLoadedData(e) {
106
- var _e$currentTarget$prev2;
107
- e.currentTarget.volume = 0;
108
- (_e$currentTarget$prev2 = e.currentTarget.previousElementSibling) === null || _e$currentTarget$prev2 === void 0 || _e$currentTarget$prev2.remove();
109
- },
110
- children: [/*#__PURE__*/jsx("source", {
111
- src: src
112
- }), /*#__PURE__*/jsx("track", {
113
- kind: "captions"
114
- })]
115
- }), /*#__PURE__*/jsxs("div", {
116
- "data-inner-clickable": true,
117
- className: classNames(classes.mediaControls, "absolute bottom-6 end-6 rounded-full flex flex-col"),
118
- children: [/*#__PURE__*/jsx(Button, {
119
- rounded: true,
120
- variant: "link",
121
- className: classes.mediaControlPlaceholder,
122
- icon: CoreIcons.ellipsis,
123
- "aria-label": "controls"
124
- }), /*#__PURE__*/jsx(Button, {
125
- rounded: true,
126
- variant: "link",
127
- "aria-label": "controls",
128
- className: classes.mediaControlAction,
129
- onClick: function onClick() {
130
- videoRef.current && (videoRef.current.volume = videoRef.current.volume ? 0 : 1);
158
+ children: [!loaded && !errored && loadIndicator, !errored && /*#__PURE__*/jsxs(Fragment, {
159
+ children: [/*#__PURE__*/jsxs("video", {
160
+ loop: true,
161
+ ref: videoRef,
162
+ controls: false,
163
+ poster: poster,
164
+ autoPlay: autoPlay,
165
+ className: cn("fabric-media", "pointer-events-none w-full h-full", fit && "object-".concat(fit)),
166
+ onPlay: function onPlay() {
167
+ return setState(true);
168
+ },
169
+ onPause: function onPause() {
170
+ return setState(false);
131
171
  },
132
- icon: volume ? CoreIcons.volumeOn : CoreIcons.volumeOff
133
- }), /*#__PURE__*/jsx(Button, {
134
- rounded: true,
135
- variant: "link",
136
- "aria-label": "controls",
137
- className: classes.mediaControlAction,
138
- onClick: function onClick() {
139
- var _videoRef$current3, _videoRef$current4, _videoRef$current5;
140
- (_videoRef$current3 = videoRef.current) !== null && _videoRef$current3 !== void 0 && _videoRef$current3.paused ? (_videoRef$current4 = videoRef.current) === null || _videoRef$current4 === void 0 ? void 0 : _videoRef$current4.play() : (_videoRef$current5 = videoRef.current) === null || _videoRef$current5 === void 0 ? void 0 : _videoRef$current5.pause();
172
+ onVolumeChange: function onVolumeChange(e) {
173
+ return setVolume(!!e.currentTarget.volume);
141
174
  },
142
- icon: state ? CoreIcons.pause : CoreIcons.play
175
+ onLoadedData: function onLoadedData(e) {
176
+ e.currentTarget.volume = 0;
177
+ setLoaded(true);
178
+ },
179
+ onError: function onError() {
180
+ return setErrored(true);
181
+ },
182
+ children: [/*#__PURE__*/jsx("source", {
183
+ src: src
184
+ }), /*#__PURE__*/jsx("track", {
185
+ kind: "captions"
186
+ })]
187
+ }), /*#__PURE__*/jsxs("div", {
188
+ "data-inner-clickable": true,
189
+ className: cn("fabric-mediaControls", "absolute bottom-6 inset-e-6 rounded-full flex flex-col"),
190
+ children: [/*#__PURE__*/jsx(Button, {
191
+ rounded: true,
192
+ variant: "link",
193
+ className: "fabric-mediaControlPlaceholder",
194
+ icon: "icon-[mdi--dots-vertical]",
195
+ "aria-label": "controls"
196
+ }), /*#__PURE__*/jsx(Button, {
197
+ rounded: true,
198
+ variant: "link",
199
+ "aria-label": "controls",
200
+ className: "fabric-mediaControlAction",
201
+ onClick: function onClick() {
202
+ if (videoRef.current) videoRef.current.volume = videoRef.current.volume ? 0 : 1;
203
+ },
204
+ icon: volume ? "icon-[mdi--volume]" : "icon-[mdi--volume-mute]"
205
+ }), /*#__PURE__*/jsx(Button, {
206
+ rounded: true,
207
+ variant: "link",
208
+ "aria-label": "controls",
209
+ className: "fabric-mediaControlAction",
210
+ onClick: function onClick() {
211
+ var _videoRef$current3, _videoRef$current4, _videoRef$current5;
212
+ void ((_videoRef$current3 = videoRef.current) !== null && _videoRef$current3 !== void 0 && _videoRef$current3.paused ? (_videoRef$current4 = videoRef.current) === null || _videoRef$current4 === void 0 ? void 0 : _videoRef$current4.play() : (_videoRef$current5 = videoRef.current) === null || _videoRef$current5 === void 0 ? void 0 : _videoRef$current5.pause());
213
+ },
214
+ icon: state ? "icon-[mdi--pause]" : "icon-[mdi--play]"
215
+ })]
143
216
  })]
217
+ }), errored && /*#__PURE__*/jsx(Icon, {
218
+ size: "2rem",
219
+ className: "absolute text-tint-300 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
220
+ icon: "icon-[mdi--video-off-outline]"
144
221
  })]
145
222
  }));
146
- };
223
+ }
147
224
 
148
225
  export { Image, Video };
@@ -2,13 +2,27 @@
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
- import { useFloatingNodeId, useFloating, autoUpdate, offset, flip, useClick, useDismiss, useInteractions, FloatingPortal } from '@floating-ui/react';
5
+ import { useFloatingNodeId, useFloating, autoUpdate, offset, flip, useClick, useDismiss, useInteractions, FloatingPortal, FloatingOverlay, FloatingFocusManager } from '@floating-ui/react';
6
6
  import { useState, useRef, useEffect, cloneElement } from 'react';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
9
9
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- var ContextMenu = function ContextMenu(_ref) {
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ /**
12
+ * A component that provides a context menu that appears on right-click.
13
+ * It uses the Floating UI library to manage the positioning and interactions of the menu.
14
+ * This component is useful for creating custom context menus that can be triggered by right-clicking on elements.
15
+ *
16
+ * @example
17
+ * ```jsx
18
+ * <ContextMenu
19
+ * menu={<Menu items={[{ label: "Option 1" }, { label: "Option 2" }]} />}
20
+ * >
21
+ * <div className="context-menu-target">Right-click me!</div>
22
+ * </ContextMenu>
23
+ * ```
24
+ */
25
+ function ContextMenu(_ref) {
12
26
  var _refs$domReference$cu, _refs$domReference$cu2;
13
27
  var children = _ref.children,
14
28
  menu = _ref.menu,
@@ -21,7 +35,7 @@ var ContextMenu = function ContextMenu(_ref) {
21
35
  var _useFloating = useFloating({
22
36
  open: isOpen,
23
37
  nodeId: nodeId,
24
- onOpenChange: function onOpenChange(open, evt, reason) {
38
+ onOpenChange: function onOpenChange(open, evt) {
25
39
  var target = evt === null || evt === void 0 ? void 0 : evt.target;
26
40
  if (!(target !== null && target !== void 0 && target.closest(".menu-list"))) setIsOpen(open);
27
41
  },
@@ -42,7 +56,7 @@ var ContextMenu = function ContextMenu(_ref) {
42
56
  });
43
57
  var _useInteractions = useInteractions([dismiss, click]),
44
58
  getFloatingProps = _useInteractions.getFloatingProps;
45
- var handleClick = useRef(function (e) {
59
+ var handleClickRef = useRef(function (e) {
46
60
  var virtual = {
47
61
  getBoundingClientRect: function getBoundingClientRect() {
48
62
  return {
@@ -66,39 +80,50 @@ var ContextMenu = function ContextMenu(_ref) {
66
80
  var wrapperRef = useRef(null);
67
81
  useEffect(function () {
68
82
  var el = wrapperRef.current;
83
+ var handler = handleClickRef.current;
69
84
  if (el && !disabled) {
70
85
  var _el$parentElement;
71
- el === null || el === void 0 || (_el$parentElement = el.parentElement) === null || _el$parentElement === void 0 || _el$parentElement.addEventListener("contextmenu", handleClick.current);
86
+ el === null || el === void 0 || (_el$parentElement = el.parentElement) === null || _el$parentElement === void 0 || _el$parentElement.addEventListener("contextmenu", handler);
72
87
  return function () {
73
88
  var _el$parentElement2;
74
- el === null || el === void 0 || (_el$parentElement2 = el.parentElement) === null || _el$parentElement2 === void 0 || _el$parentElement2.removeEventListener("contextmenu", handleClick.current);
89
+ el === null || el === void 0 || (_el$parentElement2 = el.parentElement) === null || _el$parentElement2 === void 0 || _el$parentElement2.removeEventListener("contextmenu", handler);
75
90
  };
76
91
  }
77
92
  }, [disabled]);
78
- var tryClosing = useRef(function (e) {
93
+ var tryClosingRef = useRef(function (e) {
79
94
  var _e$target;
80
- if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.closest("[data-dropdown-dismiss='true']")) setTimeout(function () {
95
+ if (!((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.closest("[data-dropdown-dismiss='false']"))) setTimeout(function () {
81
96
  return setIsOpen(false);
82
97
  }, 50);
83
98
  });
84
99
  return /*#__PURE__*/jsxs("div", {
85
100
  className: "contents",
86
101
  ref: wrapperRef,
87
- onMouseUpCapture: tryClosing.current,
88
102
  children: [children, isOpen && /*#__PURE__*/jsx(FloatingPortal, {
89
103
  root: (_refs$domReference$cu = (_refs$domReference$cu2 = refs.domReference.current) === null || _refs$domReference$cu2 === void 0 ? void 0 : _refs$domReference$cu2.closest(".theme-base")) !== null && _refs$domReference$cu !== void 0 ? _refs$domReference$cu : undefined,
90
- children: /*#__PURE__*/cloneElement(menu, _objectSpread(_objectSpread({}, getFloatingProps()), {}, {
91
- style: _objectSpread(_objectSpread({}, floatingStyles), {}, {
92
- borderRadius: "var(--rounding)",
93
- zIndex: "var(--z-popover)",
94
- fontSize: "0.875rem"
95
- }),
96
- className: "bg-base outline rounded-capped shadow-lg",
97
- ref: refs.setFloating,
98
- onMouseUp: tryClosing.current
99
- }))
104
+ children: /*#__PURE__*/jsx(FloatingOverlay, {
105
+ lockScroll: true,
106
+ style: {
107
+ zIndex: "var(--z-overlay-mask)",
108
+ position: "absolute",
109
+ overflow: "hidden"
110
+ },
111
+ children: /*#__PURE__*/jsx(FloatingFocusManager, {
112
+ context: context,
113
+ children: /*#__PURE__*/cloneElement(menu, _objectSpread(_objectSpread({}, getFloatingProps()), {}, {
114
+ style: _objectSpread(_objectSpread({}, floatingStyles), {}, {
115
+ borderRadius: "var(--rounding)",
116
+ zIndex: "var(--z-popover)",
117
+ fontSize: "0.875rem"
118
+ }),
119
+ className: "bg-default outline rounded-capped shadow-lg",
120
+ ref: refs.floating,
121
+ onMouseUp: tryClosingRef.current
122
+ }))
123
+ })
124
+ })
100
125
  })]
101
126
  });
102
- };
127
+ }
103
128
 
104
129
  export { ContextMenu };