@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
@@ -1,19 +1,107 @@
1
- export * from "./components";
2
- export * from "./core";
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ export declare const CORE_PACKAGE = "@react-fabric/core";
26
+ export declare const CORE_VERSION = "1.0.1";
27
+ export { useApplicationContext } from "./context/context";
28
+ export { ApplicationProvider } from "./context/Global";
29
+ export type { ModalProps } from "./types";
3
30
  export { addTranslationBundle } from "./i18n";
4
- export { Flyout, Modal, Tooltip } from "./overlays";
5
- export * from "./typography";
6
- export * from "./hooks/useClientService";
7
- export * from "./hooks/useDebounce";
8
- export * from "./hooks/useEffectDebugger";
9
- export * from "./hooks/useIsDark";
10
- export * from "./hooks/useIsRtl";
11
- export * from "./hooks/useNavigator";
12
- export * from "./hooks/useOverlayService";
13
- export * from "./hooks/useResize";
14
- export * from "./hooks/useResizeObserver";
15
- export * from "./hooks/useStorage";
16
- export { HotKey } from "./hotkeys/HotKey";
17
- export { HotKeyLabel } from "./hotkeys/HotKeyLabel";
18
- export { CoreIcons } from "./types/icons";
19
- export { ApplicationProvider, useApplicationContext, useGlobals, useNotificationService, } from "./context/Global";
31
+ export { cloneChildren, getBadgeProps, getColor, getIconProps } from "./utils";
32
+ export { useClientService } from "./hooks/useClientService";
33
+ export { useContextMenu } from "./hooks/useContextMenu";
34
+ export { useControlledValue } from "./hooks/useControlledValue";
35
+ export { useDebounce } from "./hooks/useDebounce";
36
+ export { useEffectDebugger, useLayoutEffectDebugger, useMemoDebugger } from "./hooks/useEffectDebugger";
37
+ export { useIsDark } from "./hooks/useIsDark";
38
+ export { useIsRtl } from "./hooks/useIsRtl";
39
+ export { useNavigator } from "./hooks/useNavigator";
40
+ export { useNotificationService } from "./hooks/useNotificationService";
41
+ export { useOverlayService } from "./hooks/useOverlayService";
42
+ export { usePropState, usePropWatcher } from "./hooks/usePropState";
43
+ export { usePropToggle } from "./hooks/usePropToggle";
44
+ export { useResize } from "./hooks/useResize";
45
+ export { useResizeObserver } from "./hooks/useResizeObserver";
46
+ export { useLocalStorage, useSessionStorage } from "./hooks/useStorage";
47
+ export { AreaToggle } from "./core/areaToggle/AreaToggle";
48
+ export { Aside } from "./core/aside/Aside";
49
+ export { ErrorBoundary } from "./core/boundary/ErrorBoundary";
50
+ export { Content } from "./core/content/Content";
51
+ export { Footer, Header } from "./core/headfoot/HeadFoot";
52
+ export { Layout } from "./core/layout/Layout";
53
+ export { Col, Container, Row } from "./core/responsive/Responsive";
54
+ export { ThemeProvider } from "./core/theme/ThemeProvider";
55
+ export { Viewport } from "./core/viewport/Viewport";
56
+ export { Abbr } from "./typography/Abbr";
57
+ export { Anchor } from "./typography/Anchor";
58
+ export { Copy } from "./typography/Copy";
59
+ export { Kbd } from "./typography/Kbd";
60
+ export { Mark } from "./typography/Mark";
61
+ export { Text } from "./typography/Text";
62
+ export { Title } from "./typography/Title";
63
+ export { ActionLabel } from "./components/actionLabel/ActionLabel";
64
+ export { AnimationIndicator } from "./components/animations/Indicator";
65
+ export { AnimationLoader } from "./components/animations/Loader";
66
+ export { LoadingBars } from "./components/animations/LoadingBars";
67
+ export { LoadingLine } from "./components/animations/LoadingLine";
68
+ export { LoadingSpinner } from "./components/animations/LoadingSpinner";
69
+ export { Skeleton } from "./components/animations/Skeleton";
70
+ export { Avatar } from "./components/avatar/Avatar";
71
+ export { AvatarGroup } from "./components/avatar/AvatarGroup";
72
+ export { Badge } from "./components/badge/Badge";
73
+ export { Button } from "./components/button/Button";
74
+ export { ButtonGroup } from "./components/button/ButtonGroup";
75
+ export { ConfirmButton } from "./components/button/ConfirmButton";
76
+ export { ToggleButtonGroup } from "./components/button/ToggleButtonGroup";
77
+ export { Callout } from "./components/callout/Callout";
78
+ export { Card } from "./components/card/Card";
79
+ export { CardCover } from "./components/card/CardCover";
80
+ export { FlipContent, type FlipContentRef } from "./components/card/FlipContent";
81
+ export { Chip } from "./components/chip/Chip";
82
+ export { Collapsable } from "./components/collapsable/Collapsable";
83
+ export { Divider } from "./components/divider/Divider";
84
+ export { Dropdown, DropdownDismiss } from "./components/dropdown/Dropdown";
85
+ export { DropdownTool } from "./components/dropdown/DropdownTool";
86
+ export { StyleEffect } from "./components/effect/StyleEffect";
87
+ export { EmptyContent } from "./components/empty/EmptyContent";
88
+ export { Flyout } from "./components/flyout/Flyout";
89
+ export { HotKey } from "./components/hotkey/HotKey";
90
+ export { Icon } from "./components/icon/Icon";
91
+ export { Image, Video } from "./components/media/Media";
92
+ export { ContextMenu } from "./components/menu/ContextMenu";
93
+ export { Menu } from "./components/menu/Menu";
94
+ export { MenuItem } from "./components/menu/MenuItem";
95
+ export { Meter } from "./components/meter/Meter";
96
+ export { Modal } from "./components/modal/Modal";
97
+ export { Navigator } from "./components/navigator/Navigator";
98
+ export { Panel } from "./components/panel/Panel";
99
+ export { PanelGroup } from "./components/panel/PanelGroup";
100
+ export { PanelStack } from "./components/panel/PanelStack";
101
+ export { Pillbox } from "./components/pillbox/Pillbox";
102
+ export { ProgressBar } from "./components/progress/ProgressBar";
103
+ export { ProgressCircle } from "./components/progress/ProgressCircle";
104
+ export { Tab } from "./components/tabpanel/Tab";
105
+ export { TabPanel } from "./components/tabpanel/TabPanel";
106
+ export { Titlebar } from "./components/titlebar/Titlebar";
107
+ export { Tooltip } from "./components/tooltip/Tooltip";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ export type ColorBase = "primary" | "secondary" | "info" | "danger" | "success" | "warning";
26
+ export type ColorTints = "tint" | "silver" | "steel" | "olive" | "blush" | "slate";
27
+ export type ColorPalette = "scarlet" | "pumpkin" | "marigold" | "amber" | "jade" | "avocado" | "teal" | "azure" | "denim" | "iris" | "lilac" | "orchid" | "coral" | "wood" | "terracotta";
28
+ export type ColorUnion = ColorBase | ColorTints | ColorPalette;
29
+ export type CustomColors<T = ColorUnion> = T | (string & {});
@@ -1,49 +1,106 @@
1
- import { type Placement } from "@floating-ui/react";
2
- import { type JSXElementConstructor, type Ref } from "react";
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ /**
26
+ * Core type definitions for React Fabric.
27
+ *
28
+ * This module exports shared TypeScript types and interfaces used across the library,
29
+ * including CSS prop types, test prop types, polymorphic component props,
30
+ * and utility types for working with React elements and nested object keys.
31
+ */
32
+ export type { ColorBase, ColorPalette, ColorTints, ColorUnion, CustomColors } from "./colors";
33
+ export type CSSSizeType = string | number;
3
34
  export type SizeType = "xs" | "sm" | "md" | "lg" | "xl";
4
- export type SizeTypeWithZero = "xs" | "sm" | "md" | "lg" | "xl" | 0;
5
- export type ColorType = "primary" | "accent" | "info" | "danger" | "success" | "warning";
6
- export type PaletteType = "scarlet" | "pumpkin" | "marigold" | "avacado" | "jade" | "denim" | "iris" | "lilac" | "coral" | "wood" | "silver" | "steel" | "olive" | "sand";
7
- export type ColorWithGrays = ColorType | "invert" | "dimmed" | "muted";
8
- export declare const ThemeColors: string[];
9
- export interface TooltipType {
35
+ export type SizeWithCustom = SizeType | (string & {}) | number;
36
+ export interface PositionObject {
37
+ top: number;
38
+ left: number;
39
+ }
40
+ export interface SizeObject {
41
+ width: number;
42
+ height: number;
43
+ }
44
+ export interface ScrollObject extends PositionObject, SizeObject {
45
+ scrollWidth?: number;
46
+ scrollHeight: number;
47
+ }
48
+ /**
49
+ * CSS prop types
50
+ * This interface defines the properties that can be used for styling React components using CSS class names.
51
+ * It includes an optional "className" property for applying CSS class names directly to the component,
52
+ * and an optional "classNames" property which is an object map for component items, allowing for more granular styling.
53
+ * The "dir" property specifies the text direction, which can be either "ltr" (left-to-right) or "rtl" (right-to-left), providing support for internationalization and different writing systems.
54
+ * By using this interface, developers can easily apply consistent styling to their components while also supporting various text directions.
55
+ */
56
+ export interface CssProp {
10
57
  /**
11
- * tooltip content
58
+ * css classname(s)
12
59
  */
13
- content?: string | JSX.Element;
60
+ className?: string;
61
+ dir?: "ltr" | "rtl";
62
+ }
63
+ export interface CssPropWithMap<T extends Record<string, string> = never> extends CssProp {
14
64
  /**
15
- * tooltip color
65
+ * css classname(s) object map for component items
16
66
  */
17
- color?: ColorType;
67
+ classNames?: Partial<T>;
68
+ }
69
+ export interface HeightProps {
18
70
  /**
19
- * tooltip placement
71
+ * initial height
20
72
  */
21
- placement?: Placement;
22
- }
23
- export interface BadgeType {
73
+ height?: number | string;
24
74
  /**
25
- * badge value
75
+ * max height
26
76
  */
27
- value?: number | string;
77
+ maxHeight?: number | string;
28
78
  /**
29
- * max value for number display
79
+ * min height
30
80
  */
31
- max?: number;
81
+ minHeight?: number | string;
82
+ }
83
+ export interface WidthProps {
32
84
  /**
33
- * ping animation
85
+ * initial width
34
86
  */
35
- ping?: boolean;
87
+ width?: number | string;
36
88
  /**
37
- * badge CSS className
89
+ * max width
38
90
  */
39
- className?: string;
40
- }
41
- export interface CssProp {
91
+ maxWidth?: number | string;
42
92
  /**
43
- * css classname(s)
93
+ * min width
44
94
  */
45
- className?: string;
95
+ minWidth?: number | string;
46
96
  }
97
+ /**
98
+ * Test prop types
99
+ * This interface defines the properties that can be used for testing purposes in React components.
100
+ * It includes optional data attributes for test id and test value, which can be used to identify and interact with elements during testing.
101
+ * The "data-testid" attribute is commonly used to provide a unique identifier for an element, while the "data-test-value" attribute can hold any additional information relevant to the test.
102
+ * By using these properties, developers can write more robust and maintainable tests that target specific elements in the DOM.
103
+ */
47
104
  export interface TestProps {
48
105
  /**
49
106
  * data attribute for test id
@@ -52,44 +109,91 @@ export interface TestProps {
52
109
  /**
53
110
  * data attribute for test value
54
111
  */
55
- "data-test-value"?: AnyObject;
112
+ "data-test-value"?: string;
56
113
  }
57
- export type Elements<T> = React.ReactElement<T> | React.ReactPortal | React.ReactNode | string | number | boolean | null | undefined;
58
- export type AriaProps = React.AriaAttributes;
59
- /**
60
- * For wrapping components
61
- */
62
- export interface RefProp<T = HTMLElement> {
63
- ref?: Ref<T>;
64
- }
65
- export type CallbackReturn<T = unknown> = undefined | T | Promise<T | undefined>;
66
- export type ReactTag = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
67
- export type PropsOf<AsTag extends ReactTag> = AsTag extends React.ElementType ? Omit<React.ComponentProps<AsTag>, "ref"> : never;
68
- export type PolymorphicProps<AsTag extends ReactTag> = Omit<PropsOf<AsTag>, "children" | "as" | "className" | "onClick"> & {
114
+ export interface HtmlEvents {
69
115
  /**
70
- * The component used for the root node.
71
- * Either a string to use a HTML element or a component.
116
+ * Focus handler for the button.
72
117
  */
73
- as?: AsTag;
74
- };
75
- export interface IconProps {
118
+ onFocus?: (e: React.FocusEvent) => void;
119
+ /**
120
+ * Blur handler for the button.
121
+ */
122
+ onBlur?: (e: React.FocusEvent) => void;
123
+ /**
124
+ * Click handler for the button.
125
+ */
126
+ onClick?: (e?: React.MouseEvent) => CallbackReturn;
76
127
  /**
77
- * svg path / image url
128
+ * Mouse down handler for the button.
78
129
  */
79
- icon?: string;
130
+ onMouseDown?: (e: React.MouseEvent) => void;
80
131
  /**
81
- * flip icon in rtl
132
+ * Mouse up handler for the button.
82
133
  */
83
- rtlFlip?: boolean;
134
+ onMouseUp?: (e: React.MouseEvent) => void;
84
135
  /**
85
- * icon background color
136
+ * Mouse over handler for the button.
86
137
  */
87
- iconBg?: ColorType | string;
138
+ onMouseOver?: (e: React.MouseEvent) => void;
88
139
  /**
89
- * icon color
140
+ * Mouse move handler for the button.
90
141
  */
91
- iconColor?: ColorType | string;
142
+ onMouseMove?: (e: React.MouseEvent) => void;
143
+ /**
144
+ * Mouse enter handler for the button.
145
+ */
146
+ onMouseEnter?: (e: React.MouseEvent) => void;
147
+ /**
148
+ * Mouse leave handler for the button.
149
+ */
150
+ onMouseLeave?: (e: React.MouseEvent) => void;
92
151
  }
152
+ export interface Draggable {
153
+ /**
154
+ * make card draggable
155
+ */
156
+ draggable?: boolean;
157
+ /**
158
+ * drag event data key
159
+ */
160
+ dragKey?: string;
161
+ /**
162
+ * drag event data
163
+ */
164
+ dragData?: KeyValue;
165
+ onDrag?: (e: React.DragEvent) => void;
166
+ onDragStart?: (e: React.DragEvent, dragKey: string, dragData?: KeyValue) => void;
167
+ onDragEnd?: (e: React.DragEvent) => void;
168
+ }
169
+ export interface Droppable {
170
+ /**
171
+ * droppable types. true for all, string[] for specific types
172
+ */
173
+ dropable?: true | string[];
174
+ onDragEnter?: (e: React.DragEvent) => void;
175
+ onDragOver?: (e: React.DragEvent) => void;
176
+ onDragLeave?: (e: React.DragEvent) => void;
177
+ onDrop?: (e: React.DragEvent) => void;
178
+ }
179
+ /**
180
+ * Utility type for ref props in React components.
181
+ * This type defines a generic interface for components that accept a ref prop, allowing the ref to be of any specified type T (defaulting to HTMLElement).
182
+ * The ref prop is optional and can be used to access the underlying DOM element or component instance.
183
+ * By using this type, you can ensure that your components are properly typed when accepting refs, improving type safety and developer experience.
184
+ */
185
+ export interface RefProp<T = HTMLElement> {
186
+ ref?: React.Ref<T>;
187
+ }
188
+ export type ModalProps<P = unknown, T extends AnyObject = AnyObject> = P & {
189
+ onClose?: (args: T | null) => void;
190
+ };
191
+ /**
192
+ * Utility type for callback return values, allowing for void, undefined, a specific type T, or a Promise that resolves to T or undefined.
193
+ * This type is useful for defining the return type of callback functions that may perform asynchronous operations or may not return a value at all.
194
+ * By including void and undefined, it allows for flexibility in how the callback is implemented, while still providing the option to return a specific type or a Promise.
195
+ */
196
+ export type CallbackReturn<T = unknown> = void | undefined | T | Promise<T | undefined>;
93
197
  export interface CollapseProps {
94
198
  /**
95
199
  * Allow collapsing
@@ -118,27 +222,63 @@ export interface ExpandProps {
118
222
  */
119
223
  onExpand?: (state: boolean) => void;
120
224
  }
121
- export interface TooltipProp {
122
- /**
123
- * floating tooltip
124
- */
125
- tooltip?: string | TooltipType;
126
- }
127
- export interface ChildProp<T = JSX.Element> {
128
- children: Elements<T>;
129
- }
130
- export interface ChildrenProp<T = JSX.Element> {
131
- children: Elements<T> | Array<Elements<T>>;
132
- }
133
- export interface PositionObject {
134
- top: number;
135
- left: number;
136
- }
137
- export interface SizeObject {
138
- width: number;
139
- height: number;
225
+ export type ChildNode<T = unknown> = React.ReactElement<T> | React.ReactNode | false | undefined | null;
226
+ export interface ChildProp<T = unknown> {
227
+ children: ChildNode<T>;
140
228
  }
141
- export interface ScrollObject extends PositionObject, SizeObject {
142
- scrollWidth?: number;
143
- scrollHeight: number;
229
+ export interface ChildrenProp<T = unknown> {
230
+ children: ChildNode<T> | Array<ChildNode<T>>;
144
231
  }
232
+ /**
233
+ * React tag types
234
+ */
235
+ export type ReactTag = keyof React.JSX.IntrinsicElements | React.JSXElementConstructor<unknown>;
236
+ /**
237
+ * Utility type to extract props of a given React tag, excluding the ref prop.
238
+ * If the tag is a valid React element type, it returns the component props without the ref.
239
+ * Otherwise, it returns never.
240
+ */
241
+ export type PropsOf<AsTag extends ReactTag> = AsTag extends React.ElementType ? Omit<React.ComponentProps<AsTag>, "ref"> : never;
242
+ /**
243
+ * Utility type for polymorphic component props.
244
+ * It combines the props of the specified React tag (excluding "as" and HTML attributes)
245
+ * with an optional "as" prop that allows specifying the component or HTML element to render.
246
+ * This type is useful for creating flexible components that can render different elements based on the "as" prop.
247
+ * The resulting props include all props of the specified tag, except for "as",
248
+ * which are handled separately to avoid conflicts.
249
+ */
250
+ export type PolymorphicProps<AsTag extends ReactTag> = Omit<PropsOf<AsTag>, "as" | "children" | "onClick" | "onDragStart"> & {
251
+ /**
252
+ * The component used for the root node.
253
+ * Either a string to use a HTML element or a component.
254
+ */
255
+ as?: AsTag;
256
+ };
257
+ /**
258
+ * Utility type to extract the element type from an array or array-like type.
259
+ * If the type is a readonly array, it returns the type of its elements.
260
+ * If the type is an array-like object, it also returns the type of its elements.
261
+ * If the type is undefined or does not match either case, it returns undefined.
262
+ */
263
+ export type ArrayType<T extends readonly unknown[] | ArrayLike<unknown> | undefined> = T extends readonly unknown[] ? T[number] : T extends ArrayLike<unknown> ? T[number] : undefined;
264
+ /**
265
+ * Utility type to make all properties of a type required, but still allow them to be optional if they were originally optional.
266
+ * This is useful for cases where you want to ensure that all properties are present, but still want to allow for optional properties to be omitted.
267
+ * The type iterates over each property of the input type T and checks if it is required or optional.
268
+ * If the property is required, it keeps it as is. If the property is optional, it allows it to be either the original type or undefined.
269
+ */
270
+ export type Complete<T> = {
271
+ [P in keyof Required<T>]: Pick<T, P> extends Required<Pick<T, P>> ? T[P] : T[P] | undefined;
272
+ };
273
+ /**
274
+ * Utility type to recursively extract nested keys from an object type T.
275
+ * It checks if T is an object and iterates over its keys. For each key K, it checks if the corresponding value is also an object.
276
+ * If it is, it recursively extracts the nested keys and combines them with the current key using dot notation.
277
+ * If the value is not an object, it simply returns the current key. The resulting type is a union of all possible nested keys in the object.
278
+ * This type is useful for scenarios where you want to access deeply nested properties of an object using a string path.
279
+ */
280
+ export type NestedKeys<T> = T extends object ? {
281
+ [K in keyof T]: K extends string | number ? T[K] extends object ? T[K] extends readonly unknown[] ? T[K][number] extends object ? // Array of objects/items: return key with array index notation and recurse
282
+ `${K}.${NestedKeys<T[K][number]>}` | `${K}` : `${K}` : // Standard object: return key with dot notation and recurse
283
+ `${K}.${NestedKeys<T[K]>}` | `${K}` : `${K}` : never;
284
+ }[keyof T] : "";
@@ -1,5 +1,28 @@
1
- /// <reference types="react" />
2
- import { type ChildProp, type ColorType, type CssProp } from "../types";
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ import type { ChildProp, CssProp, CustomColors } from "../types";
3
26
  export interface AbbrProps extends ChildProp<string>, CssProp {
4
27
  /**
5
28
  * content to copy using the tooltip copy action
@@ -10,13 +33,35 @@ export interface AbbrProps extends ChildProp<string>, CssProp {
10
33
  *
11
34
  * [textPart, tooltip, color (class name or color string)]
12
35
  */
13
- abbr: Array<[textPart: string, tooltip: string, color?: ColorType | string]>;
36
+ abbr: Array<[textPart: string, tooltip: string, color?: CustomColors]>;
14
37
  /**
15
38
  * renderer callback
16
39
  */
17
- renderer?: (part: string[]) => JSX.Element;
40
+ renderer?: (part: string[]) => React.ReactElement;
18
41
  }
19
42
  /**
20
- * Typography abbr component to wrap text parts in `abbr` with tooltip
43
+ * A component that renders abbreviated text with tooltips for additional information.
44
+ * It allows you to define a list of abbreviations, each with a tooltip and optional color.
45
+ * The component will tokenize the children text and replace matching parts with the abbreviated version.
46
+ * It supports a copy action that can either copy the text or the tooltip content.
47
+ * This component is useful for displaying technical terms or acronyms in a user-friendly way,
48
+ * while providing additional context through tooltips.
49
+ *
50
+ * @example
51
+ * ```jsx
52
+ * <Abbr
53
+ * abbr={[
54
+ * ["HTML", "HyperText Markup Language", "primary"],
55
+ * ["CSS", "Cascading Style Sheets", "secondary"],
56
+ * ["JS", "JavaScript", "success"],
57
+ * ]}
58
+ * className="text-sm"
59
+ * copyContent="tooltip"
60
+ * >
61
+ * Learn more about HTML, CSS, and JS.
62
+ * </Abbr>
63
+ * // Renders the text with abbreviations for HTML, CSS, and JS,
64
+ * // each with a tooltip showing the full form and colored according to the specified color.
65
+ * ```
21
66
  */
22
- export declare const Abbr: ({ children, abbr, className, renderer, copyContent, }: AbbrProps) => import("react/jsx-runtime").JSX.Element;
67
+ export declare function Abbr({ children, abbr, className, renderer, copyContent }: AbbrProps): import("react").JSX.Element;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ import type { ChildrenProp, CssProp, PolymorphicProps, RefProp } from "../types";
26
+ export interface AnchorProps extends ChildrenProp, CssProp, RefProp {
27
+ onClick?: React.MouseEventHandler;
28
+ }
29
+ /**
30
+ * A versatile link component that supports polymorphic rendering, allowing it to be used as an anchor (`<a>`), button, or any other HTML element.
31
+ * This component is useful for creating links that need to be styled consistently across an application, while also providing flexibility in terms of the HTML element used.
32
+ *
33
+ * @example
34
+ * ```jsx
35
+ * <Anchor href="https://example.com">
36
+ * Click here
37
+ * </Anchor>
38
+ * // Renders a link with default styling.
39
+ * ```
40
+ */
41
+ export declare function Anchor<Tag extends React.ElementType = "a">({ ref, as, children, className, ...props }: AnchorProps & PolymorphicProps<Tag>): import("react").JSX.Element;
@@ -1,4 +1,38 @@
1
- import { type CssProp, type SizeType } from "../types";
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ import type { CssProp, SizeType } from "../types";
26
+ /**
27
+ * A component that provides a button to copy text to the clipboard.
28
+ * It uses the Clipboard API to write the specified text to the clipboard.
29
+ * The button displays a tooltip feedback when the text is successfully copied.
30
+ *
31
+ * @example
32
+ * ```jsx
33
+ * <Copy text="Text to copy" size="small" />
34
+ * ```
35
+ */
2
36
  export interface CopyProps extends CssProp {
3
37
  text: string;
4
38
  /**
@@ -6,4 +40,4 @@ export interface CopyProps extends CssProp {
6
40
  */
7
41
  size?: SizeType;
8
42
  }
9
- export declare const Copy: ({ text, size, className }: CopyProps) => import("react/jsx-runtime").JSX.Element;
43
+ export declare function Copy({ text, size, className }: CopyProps): import("react").JSX.Element;