@react-fabric/core 1.0.0-beta.9 → 1.0.2

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 +66 -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 +66 -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 +30 -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 +75 -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,43 +1,56 @@
1
1
  'use client';
2
2
 
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
- import { useState } from 'react';
4
+ import { useState, useEffectEvent } from 'react';
5
5
  import { useClientService } from './useClientService.js';
6
6
  import { useEffectDebugger } from './useEffectDebugger.js';
7
7
 
8
- var useLocalStorage = function useLocalStorage(key, defaultValue) {
9
- var _JSON$parse, _service$getItem;
8
+ /**
9
+ * Hook to manage a value in localStorage with a default fallback. Returns [value, setValue].
10
+ */
11
+ function useLocalStorage(key, defaultValue) {
10
12
  var service = useClientService(localStorage);
11
- var _useState = useState((_JSON$parse = JSON.parse((_service$getItem = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem !== void 0 ? _service$getItem : "null")) !== null && _JSON$parse !== void 0 ? _JSON$parse : defaultValue),
13
+ var _useState = useState(function () {
14
+ var _ref, _service$getItem;
15
+ return (_ref = JSON.parse((_service$getItem = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem !== void 0 ? _service$getItem : "null")) !== null && _ref !== void 0 ? _ref : defaultValue;
16
+ }),
12
17
  _useState2 = _slicedToArray(_useState, 2),
13
18
  value = _useState2[0],
14
19
  setValue = _useState2[1];
15
- useEffectDebugger(function () {
16
- var _JSON$parse2, _service$getItem2;
17
- setValue((_JSON$parse2 = JSON.parse((_service$getItem2 = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem2 !== void 0 ? _service$getItem2 : "null")) !== null && _JSON$parse2 !== void 0 ? _JSON$parse2 : defaultValue);
18
- }, [], "useStorage initial value");
20
+ var init = useEffectEvent(function () {
21
+ var _ref2, _service$getItem2;
22
+ setValue((_ref2 = JSON.parse((_service$getItem2 = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem2 !== void 0 ? _service$getItem2 : "null")) !== null && _ref2 !== void 0 ? _ref2 : defaultValue);
23
+ });
24
+ useEffectDebugger(init, [], "useStorage initial value");
19
25
  var changeValue = function changeValue(value) {
20
26
  service === null || service === void 0 || service.setItem(key, JSON.stringify(value));
21
27
  setValue(value);
22
28
  };
23
29
  return [value, changeValue];
24
- };
25
- var useSessionStorage = function useSessionStorage(key, defaultValue) {
26
- var _JSON$parse3, _service$getItem3;
30
+ }
31
+
32
+ /**
33
+ * Hook to manage a value in sessionStorage with a default fallback. Returns [value, setValue].
34
+ */
35
+ function useSessionStorage(key, defaultValue) {
27
36
  var service = useClientService(sessionStorage);
28
- var _useState3 = useState((_JSON$parse3 = JSON.parse((_service$getItem3 = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem3 !== void 0 ? _service$getItem3 : "null")) !== null && _JSON$parse3 !== void 0 ? _JSON$parse3 : defaultValue),
37
+ var _useState3 = useState(function () {
38
+ var _ref3, _service$getItem3;
39
+ return (_ref3 = JSON.parse((_service$getItem3 = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem3 !== void 0 ? _service$getItem3 : "null")) !== null && _ref3 !== void 0 ? _ref3 : defaultValue;
40
+ }),
29
41
  _useState4 = _slicedToArray(_useState3, 2),
30
42
  value = _useState4[0],
31
43
  setValue = _useState4[1];
32
- useEffectDebugger(function () {
33
- var _JSON$parse4, _service$getItem4;
34
- setValue((_JSON$parse4 = JSON.parse((_service$getItem4 = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem4 !== void 0 ? _service$getItem4 : "null")) !== null && _JSON$parse4 !== void 0 ? _JSON$parse4 : defaultValue);
35
- }, [], "useStorage initial value");
44
+ var init = useEffectEvent(function () {
45
+ var _ref4, _service$getItem4;
46
+ setValue((_ref4 = JSON.parse((_service$getItem4 = service === null || service === void 0 ? void 0 : service.getItem(key)) !== null && _service$getItem4 !== void 0 ? _service$getItem4 : "null")) !== null && _ref4 !== void 0 ? _ref4 : defaultValue);
47
+ });
48
+ useEffectDebugger(init, [], "useStorage initial value");
36
49
  var changeValue = function changeValue(value) {
37
50
  service === null || service === void 0 || service.setItem(key, JSON.stringify(value));
38
51
  setValue(value);
39
52
  };
40
53
  return [value, changeValue];
41
- };
54
+ }
42
55
 
43
56
  export { useLocalStorage, useSessionStorage };
@@ -1,38 +1,40 @@
1
1
  'use client';
2
2
 
3
3
  import i18next from 'i18next';
4
- import ar from './ar.json.js';
5
- import en from './en.json.js';
4
+ import ar from './ar/core.json.js';
5
+ import en from './en/core.json.js';
6
6
 
7
- /*
7
+ /**
8
8
  * React Fabric
9
- * @version: 1.0.0
10
- *
11
- *
12
- * The MIT License (MIT)
13
- * Copyright (c) 2024 Adarsh Pastakia
9
+ * @version 1.0.0
10
+ * @license MIT
11
+ * @copyright 2024 Adarsh Pastakia
14
12
  *
15
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
16
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
17
- * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
18
- * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
19
- * subject to the following conditions:
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
20
19
  *
21
- * The above copyright notice and this permission notice shall be included in all copies or substantial
22
- * portions of the Software.
20
+ * The above copyright notice and this permission notice shall be included in all
21
+ * copies or substantial portions of the Software.
23
22
  *
24
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
25
- * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
28
30
  */
29
31
  /* istanbul ignore file */
30
32
 
31
33
 
32
34
  /**
33
35
  * add language bundles using bundle keys as namespaces
34
- * @param key
35
- * @param languageBundles: {en: {}, ar: {}}
36
+ * @param {string} key
37
+ * @param {Record<string, Record<string, string>>} languageBundles: {en: {}, ar: {}}
36
38
  */
37
39
  var addTranslationBundle = function addTranslationBundle(key, languageBundles) {
38
40
  var callback = function callback() {
package/dist/esm/index.js CHANGED
@@ -1,11 +1,55 @@
1
1
  'use client';
2
2
 
3
+ export { useApplicationContext } from './context/context.js';
4
+ export { ApplicationProvider } from './context/Global.js';
5
+ export { addTranslationBundle } from './i18n/index.js';
6
+ export { cloneChildren } from './utils/cloneElement.js';
7
+ export { getBadgeProps } from './utils/getBadgeProps.js';
8
+ export { getColor } from './utils/getColor.js';
9
+ export { getIconProps } from './utils/getIconProps.js';
10
+ import '@react-fabric/utilities';
11
+ import 'react';
12
+ export { useClientService } from './hooks/useClientService.js';
13
+ export { useContextMenu } from './hooks/useContextMenu.js';
14
+ export { useControlledValue } from './hooks/useControlledValue.js';
15
+ export { useDebounce } from './hooks/useDebounce.js';
16
+ export { useEffectDebugger, useLayoutEffectDebugger, useMemoDebugger } from './hooks/useEffectDebugger.js';
17
+ export { useIsDark } from './hooks/useIsDark.js';
18
+ export { useIsRtl } from './hooks/useIsRtl.js';
19
+ export { useNavigator } from './hooks/useNavigator.js';
20
+ export { useNotificationService } from './hooks/useNotificationService.js';
21
+ export { useOverlayService } from './hooks/useOverlayService.js';
22
+ export { usePropState, usePropWatcher } from './hooks/usePropState.js';
23
+ export { usePropToggle } from './hooks/usePropToggle.js';
24
+ export { useResize } from './hooks/useResize.js';
25
+ export { useResizeObserver } from './hooks/useResizeObserver.js';
26
+ export { useLocalStorage, useSessionStorage } from './hooks/useStorage.js';
27
+ export { AreaToggle } from './core/areaToggle/AreaToggle.js';
28
+ export { Aside } from './core/aside/Aside.js';
29
+ export { ErrorBoundary } from './core/boundary/ErrorBoundary.js';
30
+ export { Content } from './core/content/Content.js';
31
+ export { Footer, Header } from './core/headfoot/HeadFoot.js';
32
+ export { Layout } from './core/layout/Layout.js';
33
+ export { Col, Container, Row } from './core/responsive/Responsive.js';
34
+ export { ThemeProvider } from './core/theme/ThemeProvider.js';
35
+ export { Viewport } from './core/viewport/Viewport.js';
36
+ export { Abbr } from './typography/Abbr.js';
37
+ export { Anchor } from './typography/Anchor.js';
38
+ export { Copy } from './typography/Copy.js';
39
+ export { Kbd } from './typography/Kbd.js';
40
+ export { Mark } from './typography/Mark.js';
41
+ export { Text } from './typography/Text.js';
42
+ export { Title } from './typography/Title.js';
3
43
  export { ActionLabel } from './components/actionLabel/ActionLabel.js';
4
- export { AnimationBars, AnimationIndicator, AnimationSpinner, Loading, Skeleton } from './components/animations/Animations.js';
44
+ export { AnimationIndicator } from './components/animations/Indicator.js';
45
+ export { AnimationLoader } from './components/animations/Loader.js';
46
+ export { LoadingBars } from './components/animations/LoadingBars.js';
47
+ export { LoadingLine } from './components/animations/LoadingLine.js';
48
+ export { LoadingSpinner } from './components/animations/LoadingSpinner.js';
49
+ export { Skeleton } from './components/animations/Skeleton.js';
5
50
  export { Avatar } from './components/avatar/Avatar.js';
6
51
  export { AvatarGroup } from './components/avatar/AvatarGroup.js';
7
- export { Badge, getBadgeProps } from './components/badge/Badge.js';
8
- export { Breadcrumbs } from './components/breadcrumbs/Breadcrumbs.js';
52
+ export { Badge } from './components/badge/Badge.js';
9
53
  export { Button } from './components/button/Button.js';
10
54
  export { ButtonGroup } from './components/button/ButtonGroup.js';
11
55
  export { ConfirmButton } from './components/button/ConfirmButton.js';
@@ -13,64 +57,63 @@ export { ToggleButtonGroup } from './components/button/ToggleButtonGroup.js';
13
57
  export { Callout } from './components/callout/Callout.js';
14
58
  export { Card } from './components/card/Card.js';
15
59
  export { CardCover } from './components/card/CardCover.js';
60
+ export { FlipContent } from './components/card/FlipContent.js';
16
61
  export { Chip } from './components/chip/Chip.js';
17
62
  export { Collapsable } from './components/collapsable/Collapsable.js';
18
63
  export { Divider } from './components/divider/Divider.js';
19
64
  export { Dropdown, DropdownDismiss } from './components/dropdown/Dropdown.js';
20
65
  export { DropdownTool } from './components/dropdown/DropdownTool.js';
66
+ export { StyleEffect } from './components/effect/StyleEffect.js';
21
67
  export { EmptyContent } from './components/empty/EmptyContent.js';
68
+ export { Flyout } from './components/flyout/Flyout.js';
69
+ export { HotKey } from './components/hotkey/HotKey.js';
22
70
  export { Icon } from './components/icon/Icon.js';
23
71
  export { Image, Video } from './components/media/Media.js';
24
72
  export { ContextMenu } from './components/menu/ContextMenu.js';
25
73
  export { Menu } from './components/menu/Menu.js';
26
74
  export { MenuItem } from './components/menu/MenuItem.js';
27
75
  export { Meter } from './components/meter/Meter.js';
76
+ export { Modal } from './components/modal/Modal.js';
28
77
  export { Navigator } from './components/navigator/Navigator.js';
29
78
  export { Panel } from './components/panel/Panel.js';
30
79
  export { PanelGroup } from './components/panel/PanelGroup.js';
31
80
  export { PanelStack } from './components/panel/PanelStack.js';
81
+ export { Pillbox } from './components/pillbox/Pillbox.js';
32
82
  export { ProgressBar } from './components/progress/ProgressBar.js';
33
83
  export { ProgressCircle } from './components/progress/ProgressCircle.js';
34
84
  export { Tab } from './components/tabpanel/Tab.js';
35
85
  export { TabPanel } from './components/tabpanel/TabPanel.js';
36
- export { Aside } from './core/aside/Aside.js';
37
- export { ErrorBoundary } from './core/boundary/ErrorBoundary.js';
38
- export { Content } from './core/content/Content.js';
39
- export { Footer, Header } from './core/headfoot/HeadFoot.js';
40
- export { Page } from './core/page/Page.js';
41
- export { Col, Container, Row } from './core/responsive/Responsive.js';
42
- export { Section } from './core/section/Section.js';
43
- export { ThemeProvider } from './core/theme/ThemeProvider.js';
44
- export { Viewport } from './core/viewport/Viewport.js';
45
- export { addTranslationBundle } from './i18n/index.js';
46
- import '@babel/runtime/helpers/defineProperty';
47
- import '@babel/runtime/helpers/slicedToArray';
48
- import '@floating-ui/react';
49
- import 'classnames';
50
- import 'react';
51
- import 'react-i18next';
52
- export { CoreIcons } from './types/icons.js';
53
- export { Title } from './typography/Title.js';
54
- import '@react-fabric/utilities';
55
- import 'react/jsx-runtime';
56
- export { Flyout } from './overlays/flyout/Flyout.js';
57
- export { Modal } from './overlays/modal/Modal.js';
58
- export { Tooltip } from './overlays/tooltip/Tooltip.js';
59
- export { Abbr } from './typography/Abbr.js';
60
- export { Copy } from './typography/Copy.js';
61
- export { Link } from './typography/Link.js';
62
- export { Mark } from './typography/Mark.js';
63
- export { Text } from './typography/Text.js';
64
- export { useClientService } from './hooks/useClientService.js';
65
- export { useDebounce } from './hooks/useDebounce.js';
66
- export { useEffectDebugger, useLayoutEffectDebugger, useMemoDebugger } from './hooks/useEffectDebugger.js';
67
- export { useIsDark } from './hooks/useIsDark.js';
68
- export { useIsRtl } from './hooks/useIsRtl.js';
69
- export { useNavigator } from './hooks/useNavigator.js';
70
- export { useOverlayService } from './hooks/useOverlayService.js';
71
- export { useResize } from './hooks/useResize.js';
72
- export { useResizeObserver } from './hooks/useResizeObserver.js';
73
- export { useLocalStorage, useSessionStorage } from './hooks/useStorage.js';
74
- export { HotKey } from './hotkeys/HotKey.js';
75
- export { HotKeyLabel } from './hotkeys/HotKeyLabel.js';
76
- export { ApplicationProvider, useApplicationContext, useGlobals, useNotificationService } from './context/Global.js';
86
+ export { Titlebar } from './components/titlebar/Titlebar.js';
87
+ export { Tooltip } from './components/tooltip/Tooltip.js';
88
+
89
+ /**
90
+ * React Fabric
91
+ * @version 1.0.0
92
+ * @license MIT
93
+ * @copyright 2024 Adarsh Pastakia
94
+ *
95
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
96
+ * of this software and associated documentation files (the "Software"), to deal
97
+ * in the Software without restriction, including without limitation the rights
98
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
99
+ * copies of the Software, and to permit persons to whom the Software is
100
+ * furnished to do so, subject to the following conditions:
101
+ *
102
+ * The above copyright notice and this permission notice shall be included in all
103
+ * copies or substantial portions of the Software.
104
+ *
105
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
106
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
107
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
108
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
109
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
110
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
111
+ * SOFTWARE.
112
+ */
113
+
114
+ /* istanbul ignore file */
115
+
116
+ var CORE_PACKAGE = "@react-fabric/core";
117
+ var CORE_VERSION = "1.0.1";
118
+
119
+ export { CORE_PACKAGE, CORE_VERSION };
@@ -2,44 +2,63 @@
2
2
 
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
- import { isString, isEmpty, tokenize } from '@react-fabric/utilities';
6
- import classNames from 'classnames';
7
- import { useCallback, Fragment, useMemo } from 'react';
5
+ import { cn, isString, isEmpty, tokenize } from '@react-fabric/utilities';
6
+ import { useCallback, useMemo, Fragment } from 'react';
7
+ import { Tooltip } from '../components/tooltip/Tooltip.js';
8
8
  import { useMemoDebugger } from '../hooks/useEffectDebugger.js';
9
- import { Tooltip, getTooltipProps } from '../overlays/tooltip/Tooltip.js';
10
- import { getColorClass, getColor } from '../utils/getColor.js';
11
- import classes from './Typography.module.css';
12
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
+ import { getColor } from '../utils/getColor.js';
11
+ import { getTooltipProps } from '../utils/getTooltipProps.js';
13
12
 
14
13
  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; }
15
- 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; }
16
- var AbbrText = function AbbrText(_ref) {
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function AbbrText(_ref) {
17
16
  var color = _ref.color,
18
17
  children = _ref.children,
19
18
  tooltip = _ref.tooltip,
20
19
  content = _ref.content;
21
- var TooltipWrapper = useMemo(function () {
22
- return tooltip ? Tooltip : Fragment;
23
- }, [tooltip]);
20
+ var TooltipWrapper = tooltip ? Tooltip : Fragment;
24
21
  var tooltipProps = useMemo(function () {
25
- return _objectSpread(_objectSpread({}, getTooltipProps(tooltip)), {}, {
22
+ return tooltip ? _objectSpread(_objectSpread({}, getTooltipProps(tooltip)), {}, {
26
23
  copyContent: content
27
- });
24
+ }) : {};
28
25
  }, [tooltip, content]);
29
26
  return /*#__PURE__*/jsx(TooltipWrapper, _objectSpread(_objectSpread({}, tooltipProps), {}, {
30
27
  children: /*#__PURE__*/jsx("abbr", {
31
- className: classNames(classes.abbr, "whitespace-nowrap", color && getColorClass(color)),
28
+ className: cn("fabric-abbr whitespace-nowrap"),
32
29
  style: color ? {
33
30
  "--abbr-color": getColor(color)
34
31
  } : undefined,
35
32
  children: children
36
33
  })
37
34
  }));
38
- };
35
+ }
39
36
  /**
40
- * Typography abbr component to wrap text parts in `abbr` with tooltip
37
+ * A component that renders abbreviated text with tooltips for additional information.
38
+ * It allows you to define a list of abbreviations, each with a tooltip and optional color.
39
+ * The component will tokenize the children text and replace matching parts with the abbreviated version.
40
+ * It supports a copy action that can either copy the text or the tooltip content.
41
+ * This component is useful for displaying technical terms or acronyms in a user-friendly way,
42
+ * while providing additional context through tooltips.
43
+ *
44
+ * @example
45
+ * ```jsx
46
+ * <Abbr
47
+ * abbr={[
48
+ * ["HTML", "HyperText Markup Language", "primary"],
49
+ * ["CSS", "Cascading Style Sheets", "secondary"],
50
+ * ["JS", "JavaScript", "success"],
51
+ * ]}
52
+ * className="text-sm"
53
+ * copyContent="tooltip"
54
+ * >
55
+ * Learn more about HTML, CSS, and JS.
56
+ * </Abbr>
57
+ * // Renders the text with abbreviations for HTML, CSS, and JS,
58
+ * // each with a tooltip showing the full form and colored according to the specified color.
59
+ * ```
41
60
  */
42
- var Abbr = function Abbr(_ref2) {
61
+ function Abbr(_ref2) {
43
62
  var children = _ref2.children,
44
63
  abbr = _ref2.abbr,
45
64
  className = _ref2.className,
@@ -90,9 +109,13 @@ var Abbr = function Abbr(_ref2) {
90
109
  tooltip = _ref9$tooltip === void 0 ? "" : _ref9$tooltip,
91
110
  _ref9$color = _ref9.color,
92
111
  color = _ref9$color === void 0 ? "" : _ref9$color;
93
- return /*#__PURE__*/jsxs(Fragment, {
94
- children: [start, text ? abbrRender(text, tooltip, color) : null]
95
- }, i);
112
+ return (
113
+ /*#__PURE__*/
114
+ // eslint-disable-next-line @eslint-react/no-array-index-key
115
+ jsxs(Fragment, {
116
+ children: [start, text ? abbrRender(text, tooltip, color) : null]
117
+ }, "".concat(text, "-").concat(i))
118
+ );
96
119
  })
97
120
  });
98
121
  }
@@ -102,9 +125,9 @@ var Abbr = function Abbr(_ref2) {
102
125
 
103
126
  /** ***************** component *******************/
104
127
  return /*#__PURE__*/jsx("span", {
105
- className: className,
128
+ className: cn(className, "mixed-lang whitespace-pre-wrap"),
106
129
  children: inner
107
130
  });
108
- };
131
+ }
109
132
 
110
133
  export { Abbr };
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
+ import { cn } from '@react-fabric/utilities';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var _excluded = ["ref", "as", "children", "className"];
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ /**
12
+ * A versatile link component that supports polymorphic rendering, allowing it to be used as an anchor (`<a>`), button, or any other HTML element.
13
+ * 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.
14
+ *
15
+ * @example
16
+ * ```jsx
17
+ * <Anchor href="https://example.com">
18
+ * Click here
19
+ * </Anchor>
20
+ * // Renders a link with default styling.
21
+ * ```
22
+ */
23
+ function Anchor(_ref) {
24
+ var ref = _ref.ref,
25
+ as = _ref.as,
26
+ children = _ref.children,
27
+ className = _ref.className,
28
+ props = _objectWithoutProperties(_ref, _excluded);
29
+ var E = as !== null && as !== void 0 ? as : "a";
30
+ return /*#__PURE__*/jsx(E, _objectSpread(_objectSpread({
31
+ className: cn("link", className),
32
+ ref: ref,
33
+ "data-clickable": true
34
+ }, props), {}, {
35
+ children: children
36
+ }));
37
+ }
38
+
39
+ export { Anchor };
@@ -1,37 +1,37 @@
1
1
  'use client';
2
2
 
3
- import classNames from 'classnames';
4
- import { useCallback } from 'react';
3
+ import { cn } from '@react-fabric/utilities';
5
4
  import { useTranslation } from 'react-i18next';
6
5
  import { Button } from '../components/button/Button.js';
7
- import { Tooltip } from '../overlays/tooltip/Tooltip.js';
8
- import { CoreIcons } from '../types/icons.js';
6
+ import { Tooltip } from '../components/tooltip/Tooltip.js';
9
7
  import { jsx } from 'react/jsx-runtime';
10
8
 
11
- /*
9
+ /**
12
10
  * React Fabric
13
- * @version: 1.0.0
11
+ * @version 1.0.0
12
+ * @license MIT
13
+ * @copyright 2024 Adarsh Pastakia
14
14
  *
15
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ * of this software and associated documentation files (the "Software"), to deal
17
+ * in the Software without restriction, including without limitation the rights
18
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ * copies of the Software, and to permit persons to whom the Software is
20
+ * furnished to do so, subject to the following conditions:
15
21
  *
16
- * The MIT License (MIT)
17
- * Copyright (c) 2024 Adarsh Pastakia
22
+ * The above copyright notice and this permission notice shall be included in all
23
+ * copies or substantial portions of the Software.
18
24
  *
19
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
20
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
21
- * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
22
- * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
23
- * subject to the following conditions:
24
- *
25
- * The above copyright notice and this permission notice shall be included in all copies or substantial
26
- * portions of the Software.
27
- *
28
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
29
- * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
30
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
31
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ * SOFTWARE.
32
32
  */
33
33
 
34
- var Copy = function Copy(_ref) {
34
+ function Copy(_ref) {
35
35
  var text = _ref.text,
36
36
  size = _ref.size,
37
37
  className = _ref.className;
@@ -39,21 +39,21 @@ var Copy = function Copy(_ref) {
39
39
  t = _useTranslation.t;
40
40
 
41
41
  /** ***************** handle copy *******************/
42
- var doCopy = useCallback(function () {
42
+ var doCopy = function doCopy() {
43
43
  void navigator.clipboard.writeText(text);
44
- }, [text]);
44
+ };
45
45
  return /*#__PURE__*/jsx(Tooltip, {
46
46
  content: t("action.copy"),
47
47
  children: /*#__PURE__*/jsx(Button, {
48
- icon: CoreIcons.copy,
48
+ icon: "icon-[mdi--content-copy]",
49
49
  "aria-label": "Copy text",
50
- actionMessage: t("action.copied"),
51
50
  variant: "link",
52
51
  size: size,
53
- className: classNames(className, "align-bottom"),
52
+ showActionDone: true,
53
+ className: cn(className, "align-bottom"),
54
54
  onClick: doCopy
55
55
  })
56
56
  });
57
- };
57
+ }
58
58
 
59
59
  export { Copy };
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+
3
+ import { formatForDisplay } from '@tanstack/react-hotkeys';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ /**
7
+ * React Fabric
8
+ * @version 1.0.0
9
+ * @license MIT
10
+ * @copyright 2024 Adarsh Pastakia
11
+ *
12
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ * of this software and associated documentation files (the "Software"), to deal
14
+ * in the Software without restriction, including without limitation the rights
15
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ * copies of the Software, and to permit persons to whom the Software is
17
+ * furnished to do so, subject to the following conditions:
18
+ *
19
+ * The above copyright notice and this permission notice shall be included in all
20
+ * copies or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ * SOFTWARE.
29
+ */
30
+
31
+ function Kbd(_ref) {
32
+ var keys = _ref.keys;
33
+ return [keys].flat().map(function (key, i) {
34
+ return /*#__PURE__*/jsx("kbd", {
35
+ className: "hotkey-label align-top inline-flex gap-1 select-none self-center font-sans items-center text-[0.625rem] leading-4 bg-tint-500/20 text-tint-900/65 whitespace-nowrap rounded px-2 mx-1",
36
+ children: formatForDisplay(key, {
37
+ useSymbols: true
38
+ })
39
+ }, "".concat(key, "-").concat(i.toString(16)));
40
+ });
41
+ }
42
+
43
+ export { Kbd };