@react-fabric/core 1.0.0-beta.9 → 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
@@ -0,0 +1,199 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { shortHash, isString } from '@react-fabric/utilities';
5
+ import { useRef, useEffect } from 'react';
6
+ import { useSonner, toast } from 'sonner';
7
+ import { Alert } from '../components/alert/Alert.js';
8
+ import { useGlobals } from '../context/context.js';
9
+ import { useIsRtl } from './useIsRtl.js';
10
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
11
+
12
+ 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; }
13
+ 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; }
14
+ var DEFAULT_DURATION = 5000;
15
+ var TOAST_POSITIONS_LTR = {
16
+ top: "top-right",
17
+ bottom: "bottom-right"
18
+ };
19
+ var TOAST_POSITIONS_RTL = {
20
+ top: "top-left",
21
+ bottom: "bottom-left"
22
+ };
23
+ var MESSAGE_POSITIONS = {
24
+ top: "top-center",
25
+ bottom: "bottom-center"
26
+ };
27
+ function useNotificationService() {
28
+ var isRtl = useIsRtl();
29
+ var _useSonner = useSonner(),
30
+ toasts = _useSonner.toasts;
31
+ var toastRef = useRef(toasts);
32
+ var _useGlobals = useGlobals(),
33
+ showAlert = _useGlobals.showAlert;
34
+ var makeToastOptions = function makeToastOptions(options, promiseId) {
35
+ var _opts$duration, _opts$position, _opts$actions;
36
+ var opts = isString(options) ? {
37
+ message: options
38
+ } : options;
39
+ var id = promiseId !== null && promiseId !== void 0 ? promiseId : shortHash();
40
+ var duration = (_opts$duration = opts.duration) !== null && _opts$duration !== void 0 ? _opts$duration : DEFAULT_DURATION;
41
+ return {
42
+ message: /*#__PURE__*/jsxs(Fragment, {
43
+ children: [/*#__PURE__*/jsx("div", {
44
+ children: opts.message
45
+ }), /*#__PURE__*/jsx("button", {
46
+ "data-button": true,
47
+ "data-close-all": true,
48
+ onClick: c,
49
+ children: "Close All"
50
+ })]
51
+ }),
52
+ id: id,
53
+ position: (isRtl ? TOAST_POSITIONS_RTL : TOAST_POSITIONS_LTR)[(_opts$position = opts.position) !== null && _opts$position !== void 0 ? _opts$position : "top"],
54
+ icon: opts.icon,
55
+ toasterId: "toasting",
56
+ closeButton: true,
57
+ action: (opts.actions || opts.link) && /*#__PURE__*/jsxs("div", {
58
+ "data-actionbar": true,
59
+ children: [(_opts$actions = opts.actions) === null || _opts$actions === void 0 ? void 0 : _opts$actions.map(function (act) {
60
+ return /*#__PURE__*/jsx("button", {
61
+ "data-button": true,
62
+ "data-action": true,
63
+ onClick: function onClick() {
64
+ return act.onClick(), toast.dismiss(id);
65
+ },
66
+ children: act.label
67
+ }, act.label);
68
+ }), opts.link && /*#__PURE__*/jsx("button", {
69
+ "data-link": true,
70
+ "data-action": true,
71
+ onClick: function onClick() {
72
+ var _opts$link;
73
+ return (_opts$link = opts.link) !== null && _opts$link !== void 0 && _opts$link.onClick(), toast.dismiss(id);
74
+ },
75
+ children: opts.link.label
76
+ }, opts.link.label)]
77
+ }),
78
+ className: duration > 0 ? "progress" : undefined,
79
+ style: {
80
+ "--sonner-duration": duration
81
+ },
82
+ description: opts.description,
83
+ duration: duration === 0 ? Infinity : duration
84
+ };
85
+ };
86
+ var makeMessageOptions = function makeMessageOptions(options) {
87
+ var _opts$duration2, _opts$position2;
88
+ var opts = isString(options) ? {
89
+ message: options
90
+ } : options;
91
+ var id = shortHash();
92
+ var duration = (_opts$duration2 = opts.duration) !== null && _opts$duration2 !== void 0 ? _opts$duration2 : DEFAULT_DURATION;
93
+ return {
94
+ message: /*#__PURE__*/jsxs(Fragment, {
95
+ children: [/*#__PURE__*/jsx("div", {
96
+ children: opts.message
97
+ }), /*#__PURE__*/jsx("button", {
98
+ "data-button": true,
99
+ "data-close-all": true,
100
+ onClick: c,
101
+ children: "Close All"
102
+ })]
103
+ }),
104
+ id: id,
105
+ position: MESSAGE_POSITIONS[(_opts$position2 = opts.position) !== null && _opts$position2 !== void 0 ? _opts$position2 : "top"],
106
+ icon: opts.icon,
107
+ toasterId: "toasting",
108
+ closeButton: true,
109
+ action: opts.link && /*#__PURE__*/jsx("div", {
110
+ "data-actionbar": true,
111
+ children: opts.link && /*#__PURE__*/jsx("button", {
112
+ "data-link": true,
113
+ "data-action": true,
114
+ onClick: function onClick() {
115
+ var _opts$link2;
116
+ return (_opts$link2 = opts.link) !== null && _opts$link2 !== void 0 && _opts$link2.onClick(), toast.dismiss(id);
117
+ },
118
+ children: opts.link.label
119
+ }, opts.link.label)
120
+ }),
121
+ className: duration > 0 ? "progress" : undefined,
122
+ style: {
123
+ "--sonner-duration": duration
124
+ },
125
+ duration: duration === 0 ? Infinity : duration
126
+ };
127
+ };
128
+ useEffect(function () {
129
+ toastRef.current = toasts;
130
+ }, [toasts]);
131
+ var c = function c() {
132
+ showAlert();
133
+ toastRef.current.forEach(function (t) {
134
+ if (t.toasterId === "toasting" && !t.promise) toast.dismiss(t.id);
135
+ });
136
+ };
137
+ var t = function t(props) {
138
+ var opts = makeToastOptions(props);
139
+ var tt = !isString(props) && props.type ? toast[props.type] : toast;
140
+ tt(opts.message, opts);
141
+ };
142
+ var m = function m(props) {
143
+ var opts = makeMessageOptions(props);
144
+ var tt = !isString(props) && props.type ? toast[props.type] : toast;
145
+ tt(opts.message, opts);
146
+ };
147
+ var p = function p(promise, props) {
148
+ var _props$loading, _props$position;
149
+ var id = shortHash();
150
+ toast.loading(/*#__PURE__*/jsxs("div", {
151
+ className: "flex items-center",
152
+ children: [/*#__PURE__*/jsx("div", {
153
+ className: "flex-1",
154
+ children: (_props$loading = props === null || props === void 0 ? void 0 : props.loading) !== null && _props$loading !== void 0 ? _props$loading : "Loading"
155
+ }), (props === null || props === void 0 ? void 0 : props.onCancel) && /*#__PURE__*/jsx("button", {
156
+ "data-button": true,
157
+ "data-cancel": true,
158
+ onClick: function onClick() {
159
+ var _props$onCancel;
160
+ void Promise.resolve((_props$onCancel = props.onCancel) === null || _props$onCancel === void 0 ? void 0 : _props$onCancel.call(props))["finally"](function () {
161
+ toast.dismiss(id);
162
+ });
163
+ },
164
+ children: "Cancel"
165
+ })]
166
+ }), {
167
+ id: id,
168
+ toasterId: "toasting",
169
+ position: (isRtl ? TOAST_POSITIONS_RTL : TOAST_POSITIONS_LTR)[(_props$position = props === null || props === void 0 ? void 0 : props.position) !== null && _props$position !== void 0 ? _props$position : "bottom"]
170
+ });
171
+ void promise.then(function (props) {
172
+ var opts = makeToastOptions(props, id);
173
+ toast.success(opts.message, opts);
174
+ })["catch"](function (props) {
175
+ if (props) {
176
+ var opts = makeToastOptions(props, id);
177
+ toast.error(opts.message, opts);
178
+ }
179
+ });
180
+ };
181
+ var a = function a(props) {
182
+ return new Promise(function (r) {
183
+ showAlert(/*#__PURE__*/jsx(Alert, _objectSpread(_objectSpread({}, props), {}, {
184
+ onClose: function onClose(ret) {
185
+ return r(ret), showAlert();
186
+ }
187
+ })));
188
+ });
189
+ };
190
+ return {
191
+ alert: a,
192
+ toast: t,
193
+ message: m,
194
+ promise: p,
195
+ closeAll: c
196
+ };
197
+ }
198
+
199
+ export { useNotificationService };
@@ -1,55 +1,96 @@
1
1
  'use client';
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
4
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
6
5
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
7
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
8
- import { useState } from 'react';
7
+ import { useState, useRef, useCallback } from 'react';
9
8
  import { jsx } from 'react/jsx-runtime';
10
9
 
11
- var _excluded = ["onClose"];
12
10
  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; }
13
- 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; }
14
- var useOverlayService = function useOverlayService(ModalOrFlyout) {
15
- var _useState = useState(null),
11
+ 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; }
12
+ /**
13
+ * Hook to manage overlay components like modals or flyouts.
14
+ * It provides a way to open an overlay with specified properties and handle its closure.
15
+ * This hook returns the current overlay component and a function to open it with props.
16
+ * It is useful for scenarios where you need to display overlays dynamically,
17
+ * such as modals, flyouts, or any other overlay components in a React application.
18
+ * The `openOverlay` function returns a promise that resolves with the result
19
+ * of the overlay when it is closed, allowing you to handle the result in a controlled manner.
20
+ *
21
+ * @example
22
+ * ```jsx
23
+ * const [Overlay, openOverlay] = useOverlayService(MyModalComponent);
24
+ * // To open the overlay:
25
+ * const handleOpen = async () => {
26
+ * const result = await openOverlay({ title: "My Modal", content: "Hello World" });
27
+ * console.log(result); // Handle the result from the overlay
28
+ * };
29
+ * <button onClick={handleOpen}>Open Modal</button>
30
+ * <Overlay />
31
+ * ```
32
+ */
33
+ function useOverlayService(OverlayComponent) {
34
+ var _useState = useState(false),
16
35
  _useState2 = _slicedToArray(_useState, 2),
17
- Overlay = _useState2[0],
18
- setOverlay = _useState2[1];
19
- var openOverlay = /*#__PURE__*/function () {
20
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
21
- var _ref2,
22
- onClose,
23
- props,
24
- _args = arguments;
25
- return _regeneratorRuntime.wrap(function _callee$(_context) {
26
- while (1) switch (_context.prev = _context.next) {
27
- case 0:
28
- _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, onClose = _ref2.onClose, props = _objectWithoutProperties(_ref2, _excluded);
29
- _context.next = 3;
30
- return new Promise(function (resolve) {
31
- var handleClose = function handleClose(args) {
32
- setOverlay(null);
33
- resolve(args);
34
- onClose === null || onClose === void 0 || onClose(args);
35
- };
36
- setOverlay( /*#__PURE__*/jsx(ModalOrFlyout, _objectSpread(_objectSpread({}, props), {}, {
37
- onClose: handleClose
38
- })));
39
- });
40
- case 3:
41
- return _context.abrupt("return", _context.sent);
42
- case 4:
43
- case "end":
44
- return _context.stop();
36
+ isOpen = _useState2[0],
37
+ setIsOpen = _useState2[1];
38
+ var _useState3 = useState({}),
39
+ _useState4 = _slicedToArray(_useState3, 2),
40
+ modalProps = _useState4[0],
41
+ setModalProps = _useState4[1];
42
+ var existingOpenPromiseRef = useRef(null);
43
+
44
+ // Open modal and optionally pass dynamic props down to it
45
+ var openOverlay = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
46
+ var props,
47
+ _args = arguments;
48
+ return _regeneratorRuntime.wrap(function (_context) {
49
+ while (1) switch (_context.prev = _context.next) {
50
+ case 0:
51
+ props = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
52
+ setModalProps(props);
53
+ setIsOpen(true);
54
+ _context.next = 1;
55
+ return new Promise(function (resolve) {
56
+ existingOpenPromiseRef.current = function (args) {
57
+ var _props$onClose;
58
+ resolve(args);
59
+ props === null || props === void 0 || (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props, args);
60
+ setIsOpen(false);
61
+ setModalProps({});
62
+ existingOpenPromiseRef.current = null;
63
+ };
64
+ });
65
+ case 1:
66
+ return _context.abrupt("return", _context.sent);
67
+ case 2:
68
+ case "end":
69
+ return _context.stop();
70
+ }
71
+ }, _callee);
72
+ })), []);
73
+ var closeOverlay = useCallback(function (args) {
74
+ var _existingOpenPromiseR;
75
+ (_existingOpenPromiseR = existingOpenPromiseRef.current) === null || _existingOpenPromiseR === void 0 || _existingOpenPromiseR.call(existingOpenPromiseRef, args);
76
+ }, []);
77
+
78
+ // A wrapper component that handles the Portal attachment safely
79
+ var renderOverlay = useCallback(function () {
80
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
81
+ if (!isOpen) return null;
82
+ return (
83
+ /*#__PURE__*/
84
+ // @ts-expect-error ignore
85
+ jsx(OverlayComponent, _objectSpread(_objectSpread(_objectSpread({}, props), modalProps), {}, {
86
+ onClose: function onClose(args) {
87
+ var _existingOpenPromiseR2;
88
+ return (_existingOpenPromiseR2 = existingOpenPromiseRef.current) === null || _existingOpenPromiseR2 === void 0 ? void 0 : _existingOpenPromiseR2.call(existingOpenPromiseRef, args, props.onClose);
45
89
  }
46
- }, _callee);
47
- }));
48
- return function openOverlay() {
49
- return _ref.apply(this, arguments);
50
- };
51
- }();
52
- return [Overlay, openOverlay];
53
- };
90
+ }))
91
+ );
92
+ }, [OverlayComponent, isOpen, modalProps]);
93
+ return [renderOverlay, openOverlay, closeOverlay];
94
+ }
54
95
 
55
96
  export { useOverlayService };
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import { isEqual } from '@react-fabric/utilities';
5
+ import { useRef, useState } from 'react';
6
+
7
+ function usePropState(value, callback) {
8
+ var currentRef = useRef(value);
9
+ var _useState = useState(function () {
10
+ return value;
11
+ }),
12
+ _useState2 = _slicedToArray(_useState, 2),
13
+ state = _useState2[0],
14
+ setState = _useState2[1];
15
+ if (!isEqual(currentRef.current, value)) {
16
+ currentRef.current = value;
17
+ setState(value);
18
+ callback === null || callback === void 0 || callback(value);
19
+ }
20
+ return [state, setState];
21
+ }
22
+ function usePropWatcher(value) {
23
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
24
+ args[_key - 1] = arguments[_key];
25
+ }
26
+ var currentRef = useRef(args);
27
+ var _useState3 = useState(function () {
28
+ return value;
29
+ }),
30
+ _useState4 = _slicedToArray(_useState3, 2),
31
+ state = _useState4[0],
32
+ setState = _useState4[1];
33
+ if (!isEqual(currentRef.current, args)) {
34
+ currentRef.current = args;
35
+ setState(value);
36
+ }
37
+ return [state, setState];
38
+ }
39
+
40
+ export { usePropState, usePropWatcher };
@@ -1,40 +1,46 @@
1
1
  'use client';
2
2
 
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
- import { useRef, useState, useCallback } from 'react';
5
- import { useLayoutEffectDebugger } from './useEffectDebugger.js';
4
+ import { useCallback } from 'react';
5
+ import { usePropState } from './usePropState.js';
6
6
 
7
7
  /**
8
- * hook to control boolean props
9
- * @param isOn (is prop true)
10
- * @param callback (optional callback)
11
- * @param key (optional key to pass to callback)
12
- * @returns
8
+ * This hook is used to manage a toggle state based on a prop value.
9
+ * It allows you to toggle the state and also provides a reference to the current state.
10
+ * It is useful for scenarios where you want to control a toggle state from a parent component while also allowing local toggling.
11
+ *
12
+ * @param isOn - The initial state of the toggle.
13
+ * @param onToggle - A callback function that is called when the toggle state changes.
14
+ * @param key - A unique key to identify the toggle state.
15
+ * @returns A tuple containing the current toggle state, a function to toggle the state, and a reference to the current state.
16
+ *
17
+ * @example
18
+ * ```jsx
19
+ * const [isToggled, toggle, toggleRef] = usePropToggle(false, (newState) => {
20
+ * console.log("Toggle state changed to:", newState);
21
+ * });
22
+ * toggle(); // This will toggle the state and call the onToggle callback
23
+ * ```
13
24
  */
14
- var usePropToggle = function usePropToggle() {
25
+ function usePropToggle() {
15
26
  var isOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
16
27
  var onToggle = arguments.length > 1 ? arguments[1] : undefined;
17
28
  var key = arguments.length > 2 ? arguments[2] : undefined;
18
- var toggleRef = useRef(isOn);
19
- var _useState = useState(isOn),
20
- _useState2 = _slicedToArray(_useState, 2),
21
- toggleOn = _useState2[0],
22
- setToggleOn = _useState2[1];
23
-
24
- /** ***************** update toggle state on change *******************/
25
- useLayoutEffectDebugger(function () {
26
- toggleRef.current = isOn;
27
- setToggleOn(isOn);
28
- }, [isOn], "usePropToggle");
29
+ var _usePropState = usePropState(isOn),
30
+ _usePropState2 = _slicedToArray(_usePropState, 2),
31
+ toggleOn = _usePropState2[0],
32
+ setToggleOn = _usePropState2[1];
29
33
 
30
34
  /** ***************** toggle handler *******************/
31
- var doToggle = useCallback(function () {
32
- if ((onToggle === null || onToggle === void 0 ? void 0 : onToggle(!toggleOn, key)) !== false) {
33
- toggleRef.current = !toggleOn;
34
- setToggleOn(!toggleOn);
35
- }
36
- }, [toggleOn, onToggle, key]);
37
- return [toggleOn, doToggle, toggleRef];
38
- };
35
+ var doToggle = useCallback(function (toggle) {
36
+ setToggleOn(function (toggleOn) {
37
+ if ((onToggle === null || onToggle === void 0 ? void 0 : onToggle(toggle !== null && toggle !== void 0 ? toggle : !toggleOn, key)) !== false) {
38
+ return toggle !== null && toggle !== void 0 ? toggle : !toggleOn;
39
+ }
40
+ return toggleOn;
41
+ });
42
+ }, [setToggleOn, onToggle, key]);
43
+ return [toggleOn, doToggle];
44
+ }
39
45
 
40
46
  export { usePropToggle };
@@ -1,75 +1,84 @@
1
1
  'use client';
2
2
 
3
- import { useRef, useCallback } from 'react';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import { useRef, useState, useCallback } from 'react';
4
5
  import { useIsRtl } from './useIsRtl.js';
5
6
 
6
- /*
7
- * React Fabric
8
- * @version: 1.0.0
7
+ /**
8
+ * Custom hook to handle resizing of an element.
9
+ * It provides a ref to the element and a mouse down event handler to initiate resizing.
10
+ * The resizing is done by tracking mouse movements and calculating the difference in x and y coordinates.
11
+ * It supports both horizontal and vertical resizing, and can be configured to reverse the direction based on RTL (Right-to-Left) layout.
9
12
  *
13
+ * @param onResize - Callback function to handle the resize difference.
14
+ * @param options - Options for the resizing behavior.
15
+ * @returns An object containing the ref to the element, a boolean indicating if resizing is in progress, and a mouse down event handler.
10
16
  *
11
- * The MIT License (MIT)
12
- * Copyright (c) 2024 Adarsh Pastakia
13
- *
14
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
15
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
16
- * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
- * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
18
- * subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in all copies or substantial
21
- * portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
24
- * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17
+ * @example
18
+ * ```jsx
19
+ * const { ref, onMouseDown } = useResize((diff) => {
20
+ * console.log("Resize difference:", diff);
21
+ * }, { isReverse: true, isVertical: false });
22
+ * <div ref={ref} onMouseDown={onMouseDown}>Resize Me</div>
23
+ * ```
27
24
  */
28
-
29
- var useResize = function useResize(onResize, _ref) {
25
+ function useResize(onResize, _ref) {
30
26
  var _ref$isReverse = _ref.isReverse,
31
27
  isReverse = _ref$isReverse === void 0 ? false : _ref$isReverse,
32
28
  _ref$isVertical = _ref.isVertical,
33
29
  isVertical = _ref$isVertical === void 0 ? false : _ref$isVertical,
34
30
  onStart = _ref.onStart,
35
31
  onEnd = _ref.onEnd;
36
- var refEl = useRef(null);
32
+ var elRef = useRef(null);
37
33
  var isRtl = useIsRtl();
38
- var onResizing = useCallback(function (evt) {
39
- if (refEl.current != null) {
40
- var _refEl$current;
34
+ var _useState = useState(false),
35
+ _useState2 = _slicedToArray(_useState, 2),
36
+ isResizing = _useState2[0],
37
+ setIsResizing = _useState2[1];
38
+ var onResizingRef = useRef(function (evt) {
39
+ if (elRef.current != null) {
40
+ var _elRef$current;
41
41
  /** ***************** check if reverse enabled of RTL *******************/
42
42
  var reversed = ((isRtl ? 1 : 0) ^ (isReverse ? 1 : 0)) === 1;
43
- var box = (_refEl$current = refEl.current) === null || _refEl$current === void 0 ? void 0 : _refEl$current.getBoundingClientRect();
44
- var x = (evt.clientX - (reversed ? box.left : box.right)) * (reversed ? -1 : 1);
45
- var y = evt.clientY - box.bottom;
43
+ var box = (_elRef$current = elRef.current) === null || _elRef$current === void 0 ? void 0 : _elRef$current.getBoundingClientRect();
44
+ var diffX = isReverse ? box.left : box.right;
45
+ var diffY = isReverse ? box.top : box.bottom;
46
+ var x = (evt.clientX - diffX) * (reversed ? -1 : 1);
47
+ var y = (evt.clientY - diffY) * (isReverse ? -1 : 1);
46
48
  onResize({
47
49
  x: x,
48
50
  y: y
49
51
  });
50
52
  }
51
- }, [onResize, isRtl, isReverse]);
53
+ });
52
54
 
53
55
  /** ***************** dettach handlers on mouseup *******************/
54
- var onResizeEnd = useCallback(function () {
56
+ var onResizeEndRef = useRef(function () {
55
57
  document.body.style.cursor = "unset";
56
- document.removeEventListener("mousemove", onResizing);
57
- document.removeEventListener("mouseup", onResizeEnd);
58
+ document.body.style.userSelect = "unset";
59
+ document.removeEventListener("mousemove", onResizingRef.current);
60
+ document.removeEventListener("mouseup", onResizeEndRef.current);
61
+ setIsResizing(false);
58
62
  onEnd === null || onEnd === void 0 || onEnd();
59
- }, [onEnd, onResizing]);
63
+ });
60
64
 
61
65
  /** ***************** attach handlers on mousedown *******************/
62
66
  var onResizeStart = useCallback(function (e) {
67
+ if (e.button !== 0) return;
63
68
  e.preventDefault();
69
+ e.stopPropagation();
70
+ document.body.style.userSelect = "none";
64
71
  document.body.style.cursor = isVertical ? "row-resize" : "col-resize";
65
- document.addEventListener("mousemove", onResizing);
66
- document.addEventListener("mouseup", onResizeEnd);
72
+ document.addEventListener("mousemove", onResizingRef.current);
73
+ document.addEventListener("mouseup", onResizeEndRef.current);
74
+ setIsResizing(true);
67
75
  onStart === null || onStart === void 0 || onStart();
68
- }, [onResizing, onResizeEnd, onStart]);
76
+ }, [isVertical, onStart]);
69
77
  return {
70
- ref: refEl,
78
+ ref: elRef,
79
+ isResizing: isResizing,
71
80
  onMouseDown: onResizeStart
72
81
  };
73
- };
82
+ }
74
83
 
75
84
  export { useResize };
@@ -1,16 +1,35 @@
1
1
  'use client';
2
2
 
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
- import { useRef, useTransition, useEffect } from 'react';
4
+ import { useRef, useTransition } from 'react';
5
5
  import ResizeObserver from 'resize-observer-polyfill';
6
- import { useDebounce } from './useDebounce.js';
6
+ import { useEffectDebugger } from './useEffectDebugger.js';
7
7
 
8
- var useResizeObserver = function useResizeObserver(onResize) {
8
+ /**
9
+ * Custom hook to observe size changes of an element using ResizeObserver.
10
+ * It returns a ref that can be attached to the element you want to observe.
11
+ * The hook will call the provided `onResize` callback with the new size of the element
12
+ * whenever it changes.
13
+ * * This is useful for responsive designs where you need to adjust the layout or styles
14
+ * based on the size of an element.
15
+ *
16
+ * @param {Function} onResize Callback function that receives the new size of the element.
17
+ * @returns A ref object to be attached to the element you want to observe.
18
+ *
19
+ * @example
20
+ * ```jsx
21
+ * const ref = useResizeObserver((size) => {
22
+ * console.log("Element resized:", size);
23
+ * });
24
+ * <div ref={ref}>Resize me!</div>
25
+ * ```
26
+ */
27
+ function useResizeObserver(onResize) {
9
28
  var ref = useRef(null);
10
29
  var _useTransition = useTransition(),
11
30
  _useTransition2 = _slicedToArray(_useTransition, 2),
12
31
  startTransition = _useTransition2[1];
13
- var callbackResize = useDebounce(function () {
32
+ var callbackResize = function callbackResize() {
14
33
  startTransition(function () {
15
34
  if (onResize && ref.current != null) {
16
35
  var _ref$current = ref.current,
@@ -22,8 +41,8 @@ var useResizeObserver = function useResizeObserver(onResize) {
22
41
  });
23
42
  }
24
43
  });
25
- }, [onResize]);
26
- useEffect(function () {
44
+ };
45
+ useEffectDebugger(function () {
27
46
  if (ref.current != null) {
28
47
  var ob = new ResizeObserver(callbackResize);
29
48
  ob.observe(ref.current);
@@ -31,8 +50,8 @@ var useResizeObserver = function useResizeObserver(onResize) {
31
50
  ob.disconnect();
32
51
  };
33
52
  }
34
- }, [callbackResize, ref]);
53
+ }, [], "useResizeObserver");
35
54
  return ref;
36
- };
55
+ }
37
56
 
38
57
  export { useResizeObserver };