@react-fabric/core 1.0.0-beta.5 → 1.0.0-beta.52

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 (419) 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/{src/components/animations/Animations.module.css → css/components/_animations.css} +9 -9
  4. package/{src/components/avatar/Avatar.module.css → css/components/_avatar.css} +11 -11
  5. package/{src/components/badge/Badge.module.css → css/components/_badge.css} +19 -17
  6. package/{src/components/breadcrumbs/Breadcrumbs.module.css → css/components/_breadcrumbs.css} +49 -44
  7. package/{src/components/button/Button.module.css → css/components/_button.css} +69 -79
  8. package/{src/components/card/Card.module.css → css/components/_card.css} +50 -28
  9. package/{src/components/chip/Chip.module.css → css/components/_chip.css} +14 -10
  10. package/{src/components/collapsable/Collapsable.module.css → css/components/_collapsable.css} +3 -3
  11. package/css/components/_divider.css +38 -0
  12. package/{src/components/dropdown/Dropdown.module.css → css/components/_dropdown.css} +2 -2
  13. package/{src/overlays/flyout/Flyout.module.css → css/components/_flyout.css} +6 -6
  14. package/{src/components/icon/Icon.module.css → css/components/_icon.css} +8 -5
  15. package/{src/components/media/Media.module.css → css/components/_media.css} +17 -17
  16. package/{src/components/menu/Menu.module.css → css/components/_menu.css} +19 -20
  17. package/{src/overlays/message/Message.module.css → css/components/_message.css} +2 -2
  18. package/{src/components/meter/Meter.module.css → css/components/_meter.css} +10 -10
  19. package/{src/overlays/modal/Modal.module.css → css/components/_modal.css} +8 -8
  20. package/{src/components/panel/Panel.module.css → css/components/_panel.css} +17 -17
  21. package/{src/components/progress/Progress.module.css → css/components/_progress.css} +7 -10
  22. package/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +73 -84
  23. package/{src/overlays/toast/Toast.module.css → css/components/_toast.css} +2 -2
  24. package/css/components/_tooltip.css +29 -0
  25. package/{src/core/content/Content.module.css → css/components/index.css} +25 -18
  26. package/{src/core/aside/Aside.module.css → css/core/_aside.css} +56 -42
  27. package/{src/core/section/Section.module.css → css/core/_content.css} +5 -3
  28. package/{src/core/boundary/ErrorBoundary.module.css → css/core/_errorboundary.css} +9 -9
  29. package/{src/core/headfoot/HeadFoot.module.css → css/core/_headfoot.css} +4 -10
  30. package/{src/core/page/Page.module.css → css/core/_page.css} +10 -14
  31. package/{src/core/responsive/Responsive.module.css → css/core/_responsive.css} +10 -10
  32. package/css/core/_section.css +28 -0
  33. package/{src/core/theme/Theme.module.css → css/core/_theme.css} +3 -3
  34. package/{src/typography/Typography.module.css → css/core/_typography.css} +14 -12
  35. package/{src/core/viewport/Viewport.module.css → css/core/_viewport.css} +7 -3
  36. package/css/core/index.css +33 -0
  37. package/css/reset/_gradients.css +8 -8
  38. package/css/reset/_reset.css +42 -224
  39. package/css/reset/_text.css +14 -29
  40. package/css/reset/_theme.css +331 -52
  41. package/css/reset/index.css +4 -4
  42. package/css/styles.css +7 -6
  43. package/css/theme/_colors.css +320 -0
  44. package/css/theme/_utilities.css +530 -0
  45. package/css/theme/index.css +45 -0
  46. package/dist/cjs/components/actionLabel/ActionLabel.js +26 -8
  47. package/dist/cjs/components/animations/Animations.js +118 -24
  48. package/dist/cjs/components/avatar/Avatar.js +43 -16
  49. package/dist/cjs/components/avatar/AvatarGroup.js +22 -4
  50. package/dist/cjs/components/badge/Badge.js +35 -6
  51. package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +39 -8
  52. package/dist/cjs/components/button/Button.js +42 -15
  53. package/dist/cjs/components/button/ButtonGroup.js +30 -3
  54. package/dist/cjs/components/button/ConfirmButton.js +32 -4
  55. package/dist/cjs/components/button/ToggleButtonGroup.js +41 -15
  56. package/dist/cjs/components/callout/Callout.js +44 -4
  57. package/dist/cjs/components/card/Card.js +48 -10
  58. package/dist/cjs/components/card/CardCover.js +36 -5
  59. package/dist/cjs/components/card/FlipContent.js +56 -0
  60. package/dist/cjs/components/chip/Chip.js +32 -7
  61. package/dist/cjs/components/collapsable/Collapsable.js +32 -6
  62. package/dist/cjs/components/divider/Divider.js +30 -7
  63. package/dist/cjs/components/dropdown/Dropdown.js +48 -9
  64. package/dist/cjs/components/dropdown/DropdownTool.js +4 -3
  65. package/dist/cjs/components/empty/EmptyContent.js +35 -5
  66. package/dist/cjs/components/icon/Icon.js +44 -16
  67. package/dist/cjs/components/media/Media.js +172 -75
  68. package/dist/cjs/components/menu/ContextMenu.js +49 -10
  69. package/dist/cjs/components/menu/Menu.js +74 -21
  70. package/dist/cjs/components/menu/MenuItem.js +51 -16
  71. package/dist/cjs/components/meter/Meter.js +26 -3
  72. package/dist/cjs/components/navigator/Navigator.js +48 -13
  73. package/dist/cjs/components/panel/Panel.js +47 -9
  74. package/dist/cjs/components/panel/PanelGroup.js +25 -2
  75. package/dist/cjs/components/panel/PanelStack.js +31 -0
  76. package/dist/cjs/components/progress/ProgressBar.js +31 -9
  77. package/dist/cjs/components/progress/ProgressCircle.js +29 -7
  78. package/dist/cjs/components/tabpanel/Tab.js +89 -38
  79. package/dist/cjs/components/tabpanel/TabPanel.js +53 -16
  80. package/dist/cjs/context/Global.js +28 -1
  81. package/dist/cjs/context/NotificationCenter.js +3 -3
  82. package/dist/cjs/core/aside/Aside.js +49 -11
  83. package/dist/cjs/core/boundary/ErrorBoundary.js +23 -8
  84. package/dist/cjs/core/boundary/ErrorIcon.js +1 -2
  85. package/dist/cjs/core/content/Content.js +15 -8
  86. package/dist/cjs/core/headfoot/HeadFoot.js +44 -20
  87. package/dist/cjs/core/page/Page.js +40 -29
  88. package/dist/cjs/core/responsive/Responsive.js +59 -6
  89. package/dist/cjs/core/section/Section.js +1 -2
  90. package/dist/cjs/core/theme/ThemeProvider.js +32 -10
  91. package/dist/cjs/core/viewport/Viewport.js +18 -2
  92. package/dist/cjs/hooks/useControlledValue.js +12 -0
  93. package/dist/cjs/hooks/useDebounce.js +14 -1
  94. package/dist/cjs/hooks/useEffectDebugger.js +54 -2
  95. package/dist/cjs/hooks/useIsDark.js +8 -0
  96. package/dist/cjs/hooks/useIsRtl.js +12 -0
  97. package/dist/cjs/hooks/useNavigator.js +6 -4
  98. package/dist/cjs/hooks/useOverlayService.js +24 -0
  99. package/dist/cjs/hooks/usePropToggle.js +16 -5
  100. package/dist/cjs/hooks/useResize.js +18 -0
  101. package/dist/cjs/hooks/useResizeObserver.js +20 -1
  102. package/dist/cjs/hooks/useStorage.js +39 -0
  103. package/dist/cjs/hotkeys/HotKeyLabel.js +1 -1
  104. package/dist/cjs/hotkeys/HotKeyWrapper.js +3 -1
  105. package/dist/cjs/index.js +8 -2
  106. package/dist/cjs/overlays/alert/Alert.js +20 -14
  107. package/dist/cjs/overlays/flyout/Flyout.js +49 -60
  108. package/dist/cjs/overlays/message/Message.js +6 -3
  109. package/dist/cjs/overlays/modal/Modal.js +16 -12
  110. package/dist/cjs/overlays/toast/Toast.js +17 -9
  111. package/dist/cjs/overlays/tooltip/Tooltip.js +24 -11
  112. package/dist/cjs/types/icons.js +10 -1
  113. package/dist/cjs/typography/Abbr.js +32 -6
  114. package/dist/cjs/typography/{Link.js → Anchor.js} +23 -5
  115. package/dist/cjs/typography/Mark.js +22 -4
  116. package/dist/cjs/typography/Text.js +30 -5
  117. package/dist/cjs/typography/Title.js +19 -4
  118. package/dist/cjs/utils/cloneElement.js +47 -0
  119. package/dist/cjs/utils/getColor.js +1 -18
  120. package/dist/esm/components/actionLabel/ActionLabel.js +26 -8
  121. package/dist/esm/components/animations/Animations.js +119 -25
  122. package/dist/esm/components/avatar/Avatar.js +44 -17
  123. package/dist/esm/components/avatar/AvatarGroup.js +22 -4
  124. package/dist/esm/components/badge/Badge.js +36 -7
  125. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +39 -8
  126. package/dist/esm/components/button/Button.js +42 -15
  127. package/dist/esm/components/button/ButtonGroup.js +31 -4
  128. package/dist/esm/components/button/ConfirmButton.js +32 -4
  129. package/dist/esm/components/button/ToggleButtonGroup.js +42 -16
  130. package/dist/esm/components/callout/Callout.js +44 -4
  131. package/dist/esm/components/card/Card.js +49 -11
  132. package/dist/esm/components/card/CardCover.js +36 -5
  133. package/dist/esm/components/card/FlipContent.js +56 -0
  134. package/dist/esm/components/chip/Chip.js +33 -8
  135. package/dist/esm/components/collapsable/Collapsable.js +32 -6
  136. package/dist/esm/components/divider/Divider.js +31 -8
  137. package/dist/esm/components/dropdown/Dropdown.js +48 -9
  138. package/dist/esm/components/dropdown/DropdownTool.js +4 -3
  139. package/dist/esm/components/empty/EmptyContent.js +35 -5
  140. package/dist/esm/components/icon/Icon.js +44 -16
  141. package/dist/esm/components/media/Media.js +173 -76
  142. package/dist/esm/components/menu/ContextMenu.js +51 -12
  143. package/dist/esm/components/menu/Menu.js +76 -23
  144. package/dist/esm/components/menu/MenuItem.js +45 -10
  145. package/dist/esm/components/meter/Meter.js +26 -3
  146. package/dist/esm/components/navigator/Navigator.js +48 -13
  147. package/dist/esm/components/panel/Panel.js +47 -9
  148. package/dist/esm/components/panel/PanelGroup.js +25 -2
  149. package/dist/esm/components/panel/PanelStack.js +31 -0
  150. package/dist/esm/components/progress/ProgressBar.js +31 -9
  151. package/dist/esm/components/progress/ProgressCircle.js +29 -7
  152. package/dist/esm/components/tabpanel/Tab.js +90 -39
  153. package/dist/esm/components/tabpanel/TabPanel.js +53 -16
  154. package/dist/esm/context/Global.js +28 -1
  155. package/dist/esm/context/NotificationCenter.js +3 -3
  156. package/dist/esm/core/aside/Aside.js +49 -11
  157. package/dist/esm/core/boundary/ErrorBoundary.js +23 -8
  158. package/dist/esm/core/boundary/ErrorIcon.js +1 -2
  159. package/dist/esm/core/content/Content.js +15 -8
  160. package/dist/esm/core/headfoot/HeadFoot.js +44 -20
  161. package/dist/esm/core/page/Page.js +40 -29
  162. package/dist/esm/core/responsive/Responsive.js +59 -6
  163. package/dist/esm/core/section/Section.js +1 -2
  164. package/dist/esm/core/theme/ThemeProvider.js +32 -10
  165. package/dist/esm/core/viewport/Viewport.js +18 -2
  166. package/dist/esm/hooks/useControlledValue.js +12 -0
  167. package/dist/esm/hooks/useDebounce.js +14 -1
  168. package/dist/esm/hooks/useEffectDebugger.js +54 -2
  169. package/dist/esm/hooks/useIsDark.js +8 -0
  170. package/dist/esm/hooks/useIsRtl.js +12 -0
  171. package/dist/esm/hooks/useNavigator.js +7 -5
  172. package/dist/esm/hooks/useOverlayService.js +24 -0
  173. package/dist/esm/hooks/usePropToggle.js +16 -5
  174. package/dist/esm/hooks/useResize.js +18 -0
  175. package/dist/esm/hooks/useResizeObserver.js +20 -1
  176. package/dist/esm/hooks/useStorage.js +39 -0
  177. package/dist/esm/hotkeys/HotKeyLabel.js +1 -1
  178. package/dist/esm/hotkeys/HotKeyWrapper.js +3 -1
  179. package/dist/esm/index.js +4 -1
  180. package/dist/esm/overlays/alert/Alert.js +21 -15
  181. package/dist/esm/overlays/flyout/Flyout.js +52 -63
  182. package/dist/esm/overlays/message/Message.js +7 -4
  183. package/dist/esm/overlays/modal/Modal.js +17 -13
  184. package/dist/esm/overlays/toast/Toast.js +18 -10
  185. package/dist/esm/overlays/tooltip/Tooltip.js +24 -11
  186. package/dist/esm/types/icons.js +10 -1
  187. package/dist/esm/typography/Abbr.js +32 -6
  188. package/dist/esm/typography/{Link.js → Anchor.js} +24 -6
  189. package/dist/esm/typography/Mark.js +22 -4
  190. package/dist/esm/typography/Text.js +31 -6
  191. package/dist/esm/typography/Title.js +20 -5
  192. package/dist/esm/utils/cloneElement.js +47 -0
  193. package/dist/esm/utils/getColor.js +2 -16
  194. package/dist/types/components/actionLabel/ActionLabel.d.ts +23 -4
  195. package/dist/types/components/animations/Animations.d.ts +84 -5
  196. package/dist/types/components/avatar/Avatar.d.ts +29 -5
  197. package/dist/types/components/avatar/AvatarGroup.d.ts +19 -1
  198. package/dist/types/components/badge/Badge.d.ts +30 -1
  199. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +31 -2
  200. package/dist/types/components/button/Button.d.ts +29 -6
  201. package/dist/types/components/button/ButtonGroup.d.ts +28 -3
  202. package/dist/types/components/button/ConfirmButton.d.ts +28 -3
  203. package/dist/types/components/button/ToggleButtonGroup.d.ts +39 -11
  204. package/dist/types/components/callout/Callout.d.ts +29 -3
  205. package/dist/types/components/card/Card.d.ts +42 -4
  206. package/dist/types/components/card/CardCover.d.ts +25 -0
  207. package/dist/types/components/card/FlipContent.d.ts +28 -0
  208. package/dist/types/components/chip/Chip.d.ts +24 -4
  209. package/dist/types/components/collapsable/Collapsable.d.ts +33 -3
  210. package/dist/types/components/divider/Divider.d.ts +30 -7
  211. package/dist/types/components/dropdown/Dropdown.d.ts +40 -1
  212. package/dist/types/components/dropdown/DropdownTool.d.ts +27 -1
  213. package/dist/types/components/empty/EmptyContent.d.ts +32 -3
  214. package/dist/types/components/icon/Icon.d.ts +32 -6
  215. package/dist/types/components/index.d.ts +2 -1
  216. package/dist/types/components/media/Media.d.ts +56 -2
  217. package/dist/types/components/menu/ContextMenu.d.ts +21 -2
  218. package/dist/types/components/menu/Menu.d.ts +29 -0
  219. package/dist/types/components/menu/MenuItem.d.ts +22 -2
  220. package/dist/types/components/menu/types.d.ts +3 -2
  221. package/dist/types/components/meter/Meter.d.ts +24 -0
  222. package/dist/types/components/navigator/Navigator.d.ts +29 -4
  223. package/dist/types/components/panel/Panel.d.ts +37 -1
  224. package/dist/types/components/panel/PanelGroup.d.ts +24 -0
  225. package/dist/types/components/panel/PanelStack.d.ts +31 -0
  226. package/dist/types/components/progress/ProgressBar.d.ts +23 -3
  227. package/dist/types/components/progress/ProgressCircle.d.ts +22 -3
  228. package/dist/types/components/tabpanel/Tab.d.ts +36 -5
  229. package/dist/types/components/tabpanel/TabPanel.d.ts +43 -1
  230. package/dist/types/context/Global.d.ts +24 -1
  231. package/dist/types/core/aside/Aside.d.ts +38 -1
  232. package/dist/types/core/boundary/ErrorBoundary.d.ts +18 -2
  233. package/dist/types/core/content/Content.d.ts +9 -3
  234. package/dist/types/core/headfoot/HeadFoot.d.ts +41 -9
  235. package/dist/types/core/page/Page.d.ts +29 -4
  236. package/dist/types/core/responsive/Responsive.d.ts +58 -3
  237. package/dist/types/core/section/Section.d.ts +16 -1
  238. package/dist/types/core/theme/ThemeProvider.d.ts +25 -5
  239. package/dist/types/core/viewport/Viewport.d.ts +15 -1
  240. package/dist/types/hooks/useControlledValue.d.ts +13 -2
  241. package/dist/types/hooks/useDebounce.d.ts +12 -0
  242. package/dist/types/hooks/useEffectDebugger.d.ts +49 -0
  243. package/dist/types/hooks/useIsDark.d.ts +8 -0
  244. package/dist/types/hooks/useIsRtl.d.ts +12 -0
  245. package/dist/types/hooks/useNavigator.d.ts +18 -1
  246. package/dist/types/hooks/useOverlayService.d.ts +28 -9
  247. package/dist/types/hooks/usePropToggle.d.ts +16 -5
  248. package/dist/types/hooks/useResize.d.ts +19 -1
  249. package/dist/types/hooks/useResizeObserver.d.ts +20 -1
  250. package/dist/types/hooks/useStorage.d.ts +38 -0
  251. package/dist/types/index.d.ts +3 -0
  252. package/dist/types/overlays/alert/Alert.d.ts +2 -3
  253. package/dist/types/overlays/flyout/Flyout.d.ts +3 -2
  254. package/dist/types/overlays/message/Message.d.ts +2 -3
  255. package/dist/types/overlays/modal/Modal.d.ts +12 -3
  256. package/dist/types/overlays/toast/Toast.d.ts +2 -3
  257. package/dist/types/overlays/tooltip/Tooltip.d.ts +2 -2
  258. package/dist/types/types/icons.d.ts +10 -1
  259. package/dist/types/types/index.d.ts +26 -6
  260. package/dist/types/typography/Abbr.d.ts +34 -4
  261. package/dist/types/typography/Anchor.d.ts +42 -0
  262. package/dist/types/typography/Copy.d.ts +15 -0
  263. package/dist/types/typography/Mark.d.ts +22 -4
  264. package/dist/types/typography/Text.d.ts +27 -1
  265. package/dist/types/typography/Title.d.ts +16 -1
  266. package/dist/types/typography/index.d.ts +1 -1
  267. package/dist/types/utils/cloneElement.d.ts +2 -0
  268. package/dist/types/utils/getColor.d.ts +1 -4
  269. package/dist/types/utils/index.d.ts +1 -0
  270. package/package.json +11 -13
  271. package/src/components/actionLabel/ActionLabel.tsx +38 -11
  272. package/src/components/animations/Animations.tsx +118 -33
  273. package/src/components/avatar/Avatar.tsx +106 -91
  274. package/src/components/avatar/AvatarGroup.tsx +23 -5
  275. package/src/components/badge/Badge.tsx +41 -9
  276. package/src/components/breadcrumbs/Breadcrumbs.tsx +42 -9
  277. package/src/components/button/Button.tsx +50 -23
  278. package/src/components/button/ButtonGroup.tsx +33 -7
  279. package/src/components/button/ConfirmButton.tsx +41 -7
  280. package/src/components/button/ToggleButtonGroup.tsx +74 -47
  281. package/src/components/callout/Callout.tsx +55 -12
  282. package/src/components/card/Card.tsx +64 -15
  283. package/src/components/card/CardCover.tsx +36 -6
  284. package/src/components/card/FlipContent.tsx +90 -0
  285. package/src/components/chip/Chip.tsx +39 -13
  286. package/src/components/collapsable/Collapsable.tsx +38 -7
  287. package/src/components/divider/Divider.tsx +42 -16
  288. package/src/components/dropdown/Dropdown.tsx +46 -11
  289. package/src/components/dropdown/DropdownTool.tsx +30 -3
  290. package/src/components/empty/EmptyContent.tsx +47 -6
  291. package/src/components/icon/Icon.tsx +85 -68
  292. package/src/components/index.ts +2 -1
  293. package/src/components/media/Media.tsx +195 -106
  294. package/src/components/menu/ContextMenu.tsx +55 -11
  295. package/src/components/menu/Menu.tsx +85 -30
  296. package/src/components/menu/MenuItem.tsx +40 -9
  297. package/src/components/menu/types.ts +3 -2
  298. package/src/components/meter/Meter.tsx +26 -3
  299. package/src/components/navigator/Navigator.tsx +58 -7
  300. package/src/components/panel/Panel.tsx +47 -9
  301. package/src/components/panel/PanelGroup.tsx +25 -2
  302. package/src/components/panel/PanelStack.tsx +31 -0
  303. package/src/components/progress/ProgressBar.tsx +33 -14
  304. package/src/components/progress/ProgressCircle.tsx +29 -13
  305. package/src/components/tabpanel/Tab.tsx +112 -64
  306. package/src/components/tabpanel/TabPanel.tsx +67 -12
  307. package/src/context/Global.tsx +28 -1
  308. package/src/context/NotificationCenter.tsx +3 -3
  309. package/src/core/aside/Aside.tsx +50 -12
  310. package/src/core/boundary/ErrorBoundary.tsx +25 -8
  311. package/src/core/boundary/ErrorIcon.tsx +1 -2
  312. package/src/core/content/Content.tsx +23 -13
  313. package/src/core/headfoot/HeadFoot.tsx +42 -35
  314. package/src/core/page/Page.tsx +44 -6
  315. package/src/core/responsive/Responsive.tsx +66 -8
  316. package/src/core/section/Section.tsx +17 -3
  317. package/src/core/theme/ThemeProvider.tsx +35 -14
  318. package/src/core/viewport/Viewport.tsx +16 -3
  319. package/src/hooks/useControlledValue.tsx +12 -0
  320. package/src/hooks/useDebounce.ts +13 -1
  321. package/src/hooks/useEffectDebugger.ts +50 -2
  322. package/src/hooks/useIsDark.ts +8 -0
  323. package/src/hooks/useIsRtl.ts +12 -0
  324. package/src/hooks/useNavigator.tsx +28 -5
  325. package/src/hooks/useOverlayService.tsx +36 -6
  326. package/src/hooks/usePropToggle.ts +16 -5
  327. package/src/hooks/useResize.ts +19 -1
  328. package/src/hooks/useResizeObserver.ts +32 -9
  329. package/src/hooks/useStorage.ts +38 -0
  330. package/src/hotkeys/HotKeyLabel.tsx +1 -1
  331. package/src/hotkeys/HotKeyWrapper.tsx +3 -1
  332. package/src/index.ts +4 -0
  333. package/src/overlays/alert/Alert.tsx +28 -32
  334. package/src/overlays/flyout/Flyout.tsx +71 -84
  335. package/src/overlays/message/Message.tsx +10 -7
  336. package/src/overlays/modal/Modal.tsx +37 -15
  337. package/src/overlays/toast/Toast.tsx +18 -27
  338. package/src/overlays/tooltip/Tooltip.tsx +43 -18
  339. package/src/types/icons.ts +18 -3
  340. package/src/types/index.ts +268 -27
  341. package/src/typography/Abbr.tsx +44 -11
  342. package/src/typography/{Link.tsx → Anchor.tsx} +26 -14
  343. package/src/typography/Copy.tsx +15 -0
  344. package/src/typography/Mark.tsx +24 -10
  345. package/src/typography/Text.tsx +31 -13
  346. package/src/typography/Title.tsx +18 -7
  347. package/src/typography/index.ts +1 -1
  348. package/src/{overlays/tooltip/Tooltip.module.css → utils/cloneElement.ts} +21 -27
  349. package/src/utils/getColor.ts +1 -17
  350. package/src/utils/index.ts +1 -0
  351. package/css/index.js +0 -250
  352. package/css/tailwind/colors.ts +0 -158
  353. package/dist/cjs/components/actionLabel/ActionLabel.module.css +0 -1
  354. package/dist/cjs/components/animations/Animations.module.css +0 -1
  355. package/dist/cjs/components/avatar/Avatar.module.css +0 -1
  356. package/dist/cjs/components/badge/Badge.module.css +0 -1
  357. package/dist/cjs/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  358. package/dist/cjs/components/button/Button.module.css +0 -1
  359. package/dist/cjs/components/card/Card.module.css +0 -1
  360. package/dist/cjs/components/chip/Chip.module.css +0 -1
  361. package/dist/cjs/components/collapsable/Collapsable.module.css +0 -1
  362. package/dist/cjs/components/dropdown/Dropdown.module.css +0 -1
  363. package/dist/cjs/components/icon/Icon.module.css +0 -1
  364. package/dist/cjs/components/media/Media.module.css +0 -1
  365. package/dist/cjs/components/menu/Menu.module.css +0 -1
  366. package/dist/cjs/components/meter/Meter.module.css +0 -1
  367. package/dist/cjs/components/panel/Panel.module.css +0 -1
  368. package/dist/cjs/components/progress/Progress.module.css +0 -1
  369. package/dist/cjs/components/tabpanel/TabPanel.module.css +0 -1
  370. package/dist/cjs/core/aside/Aside.module.css +0 -1
  371. package/dist/cjs/core/boundary/ErrorBoundary.module.css +0 -1
  372. package/dist/cjs/core/content/Content.module.css +0 -1
  373. package/dist/cjs/core/headfoot/HeadFoot.module.css +0 -1
  374. package/dist/cjs/core/page/Page.module.css +0 -1
  375. package/dist/cjs/core/responsive/Responsive.module.css +0 -1
  376. package/dist/cjs/core/section/Section.module.css +0 -1
  377. package/dist/cjs/core/theme/Theme.module.css +0 -1
  378. package/dist/cjs/core/viewport/Viewport.module.css +0 -1
  379. package/dist/cjs/overlays/alert/Alert.module.css +0 -1
  380. package/dist/cjs/overlays/flyout/Flyout.module.css +0 -1
  381. package/dist/cjs/overlays/message/Message.module.css +0 -1
  382. package/dist/cjs/overlays/modal/Modal.module.css +0 -1
  383. package/dist/cjs/overlays/toast/Toast.module.css +0 -1
  384. package/dist/cjs/overlays/tooltip/Tooltip.module.css +0 -1
  385. package/dist/cjs/typography/Typography.module.css +0 -1
  386. package/dist/esm/components/actionLabel/ActionLabel.module.css +0 -1
  387. package/dist/esm/components/animations/Animations.module.css +0 -1
  388. package/dist/esm/components/avatar/Avatar.module.css +0 -1
  389. package/dist/esm/components/badge/Badge.module.css +0 -1
  390. package/dist/esm/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  391. package/dist/esm/components/button/Button.module.css +0 -1
  392. package/dist/esm/components/card/Card.module.css +0 -1
  393. package/dist/esm/components/chip/Chip.module.css +0 -1
  394. package/dist/esm/components/collapsable/Collapsable.module.css +0 -1
  395. package/dist/esm/components/dropdown/Dropdown.module.css +0 -1
  396. package/dist/esm/components/icon/Icon.module.css +0 -1
  397. package/dist/esm/components/media/Media.module.css +0 -1
  398. package/dist/esm/components/menu/Menu.module.css +0 -1
  399. package/dist/esm/components/meter/Meter.module.css +0 -1
  400. package/dist/esm/components/panel/Panel.module.css +0 -1
  401. package/dist/esm/components/progress/Progress.module.css +0 -1
  402. package/dist/esm/components/tabpanel/TabPanel.module.css +0 -1
  403. package/dist/esm/core/aside/Aside.module.css +0 -1
  404. package/dist/esm/core/boundary/ErrorBoundary.module.css +0 -1
  405. package/dist/esm/core/content/Content.module.css +0 -1
  406. package/dist/esm/core/headfoot/HeadFoot.module.css +0 -1
  407. package/dist/esm/core/page/Page.module.css +0 -1
  408. package/dist/esm/core/responsive/Responsive.module.css +0 -1
  409. package/dist/esm/core/section/Section.module.css +0 -1
  410. package/dist/esm/core/theme/Theme.module.css +0 -1
  411. package/dist/esm/core/viewport/Viewport.module.css +0 -1
  412. package/dist/esm/overlays/alert/Alert.module.css +0 -1
  413. package/dist/esm/overlays/flyout/Flyout.module.css +0 -1
  414. package/dist/esm/overlays/message/Message.module.css +0 -1
  415. package/dist/esm/overlays/modal/Modal.module.css +0 -1
  416. package/dist/esm/overlays/toast/Toast.module.css +0 -1
  417. package/dist/esm/overlays/tooltip/Tooltip.module.css +0 -1
  418. package/dist/esm/typography/Typography.module.css +0 -1
  419. package/dist/types/typography/Link.d.ts +0 -25
@@ -24,12 +24,12 @@
24
24
  import { Format } from "@react-fabric/utilities";
25
25
  import classNames from "classnames";
26
26
  import { useMemoDebugger } from "../../hooks/useEffectDebugger";
27
- import { type ColorType } from "../../types";
28
- import { getColorClass } from "../../utils";
27
+ import { type PaletteType, type ColorType } from "../../types";
28
+ import { getColor } from "../../utils";
29
29
 
30
30
  export interface ProgressProps {
31
31
  /**
32
- * progress value (0-100)
32
+ * progress value (0-1)
33
33
  */
34
34
  value: number;
35
35
  /**
@@ -39,7 +39,7 @@ export interface ProgressProps {
39
39
  /**
40
40
  * color
41
41
  */
42
- color?: ColorType;
42
+ color?: ColorType | PaletteType;
43
43
  }
44
44
 
45
45
  const SizeMap: KeyValue = {
@@ -50,14 +50,33 @@ const SizeMap: KeyValue = {
50
50
  xl: "2rem",
51
51
  };
52
52
 
53
+ /**
54
+ * A circular progress indicator that visually represents a percentage of completion.
55
+ * It displays a circular track with a stroke that fills based on the `value` prop.
56
+ * The component is customizable with size and color props.
57
+ *
58
+ * @param {ProgressProps} props - The properties for the ProgressCircle component.
59
+ * @returns {JSX.Element} - A circular progress indicator.
60
+ *
61
+ * @example
62
+ * ```jsx
63
+ * <ProgressCircle value={0.75} size="md" color="primary-500" />
64
+ * // Renders a circular progress indicator with 75% completion, medium size, and primary color.
65
+ *
66
+ * <ProgressCircle value={0.5} size="lg" color="secondary-500" />
67
+ * // Renders a circular progress indicator with 50% completion, large size, and secondary color.
68
+ * ```
69
+ *
70
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-progress--docs} for more details.
71
+ */
53
72
  export const ProgressCircle = ({
54
73
  value = 0,
55
74
  size = "sm",
56
- color = "primary",
75
+ color = "primary-500",
57
76
  }: ProgressProps) => {
58
77
  /** ***************** make sure value is between 0 and 100 *******************/
59
78
  const actualValue = useMemoDebugger(
60
- () => Math.min(Math.max(value, 0), 100),
79
+ () => Math.min(Math.max(value, 0), 1),
61
80
  [value],
62
81
  "ProgressCirle value",
63
82
  );
@@ -66,7 +85,7 @@ export const ProgressCircle = ({
66
85
  const strokeDashoffset = useMemoDebugger(
67
86
  () => {
68
87
  const circumfrence = Math.PI * 2 * 44;
69
- return circumfrence * (1 - actualValue / 100);
88
+ return circumfrence * (1 - actualValue);
70
89
  },
71
90
  [actualValue],
72
91
  "ProgressCirle dashOffset",
@@ -75,12 +94,9 @@ export const ProgressCircle = ({
75
94
  /** ***************** component *******************/
76
95
  return (
77
96
  <div
78
- className={classNames(
79
- "inline-block w-[4em] h-[4em] text-lg relative",
80
- getColorClass(color),
81
- )}
97
+ className={classNames("inline-block w-[4em] h-[4em] text-lg relative")}
82
98
  aria-hidden="true"
83
- style={{ fontSize: SizeMap[size] }}
99
+ style={{ fontSize: SizeMap[size], color: getColor(color) }}
84
100
  >
85
101
  <svg
86
102
  viewBox="0 0 100 100"
@@ -111,7 +127,7 @@ export const ProgressCircle = ({
111
127
  />
112
128
  </svg>
113
129
  <span className="flex w-full h-full items-center justify-center select-none font-bold text-[0.625em]">
114
- {Format.percent(actualValue / 100)}
130
+ {Format.percent(actualValue)}
115
131
  </span>
116
132
  </div>
117
133
  );
@@ -21,24 +21,26 @@
21
21
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  */
23
23
 
24
+ import { isString } from "@react-fabric/utilities";
24
25
  import classNames from "classnames";
25
- import { type ReactElement, useMemo } from "react";
26
+ import { Fragment, type ReactElement, useMemo } from "react";
27
+ import { Tooltip } from "../../overlays";
26
28
  import {
27
29
  type AriaProps,
28
30
  type BadgeType,
29
31
  type CallbackReturn,
30
32
  type ChildrenProp,
31
- type ColorType,
33
+ type ColorState,
32
34
  type CssProp,
33
35
  type IconProps,
34
36
  type PolymorphicProps,
35
37
  type RefProp,
36
38
  type TestProps,
39
+ type TooltipProp,
37
40
  } from "../../types";
38
41
  import { Badge, getBadgeProps } from "../badge/Badge";
39
42
  import { DropdownTool } from "../dropdown/DropdownTool";
40
43
  import { Icon } from "../icon/Icon";
41
- import classes from "./TabPanel.module.css";
42
44
 
43
45
  export interface TabProps
44
46
  extends Partial<ChildrenProp>,
@@ -46,7 +48,8 @@ export interface TabProps
46
48
  RefProp,
47
49
  AriaProps,
48
50
  TestProps,
49
- IconProps {
51
+ IconProps,
52
+ TooltipProp {
50
53
  /**
51
54
  * tab id
52
55
  */
@@ -58,11 +61,11 @@ export interface TabProps
58
61
  /**
59
62
  * tab color
60
63
  */
61
- color?: ColorType;
64
+ color?: ColorState;
62
65
  /**
63
66
  * tab badge
64
67
  */
65
- badge?: BadgeType;
68
+ badge?: string | number | BadgeType;
66
69
  /**
67
70
  * disabled
68
71
  */
@@ -89,6 +92,37 @@ export interface TabProps
89
92
  onClick?: (id: string) => CallbackReturn;
90
93
  }
91
94
 
95
+ /**
96
+ * A component that represents a tab in a tabbed interface. It can display an icon, label, badge, and actions.
97
+ * It supports polymorphic rendering, allowing it to be rendered as different HTML elements.
98
+ * It also supports tooltips, active states, and click handling.
99
+ *
100
+ * @param {TabProps} props - The properties for the Tab component.
101
+ * @returns {JSX.Element} The rendered Tab component.
102
+ *
103
+ * @example
104
+ * ```jsx
105
+ * <Tab
106
+ * id="tab1"
107
+ * label="Tab 1"
108
+ * icon="home"
109
+ * iconBg="bg-blue-500"
110
+ * iconColor="text-white"
111
+ * badge="New"
112
+ * onClick={(id) => console.log(`Tab clicked: ${id}`)}
113
+ * onClose={() => console.log("Tab closed")}
114
+ * active={true}
115
+ * actions={<button>Action</button>}
116
+ * color="primary"
117
+ * tooltip="This is a tab"
118
+ * activeClassName="bg-blue-100"
119
+ * />
120
+ * // Renders a tab with label "Tab 1", home icon, blue background, white text, badge "New",
121
+ * // and an action button. The tab is active and has a tooltip.
122
+ * ```
123
+ *
124
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-tabpanel--docs} for more details.
125
+ */
92
126
  export const Tab = <Tag extends React.ElementType = "button">({
93
127
  ref,
94
128
  as,
@@ -104,12 +138,11 @@ export const Tab = <Tag extends React.ElementType = "button">({
104
138
  onClose,
105
139
  // @ts-expect-error ignore
106
140
  active,
107
- // @ts-expect-error ignore
108
- minimal,
109
141
  onClick,
110
142
  tabFlex,
111
143
  color,
112
144
  actions,
145
+ tooltip,
113
146
  activeClassName,
114
147
  ...aria
115
148
  }: TabProps & PolymorphicProps<Tag>) => {
@@ -117,63 +150,78 @@ export const Tab = <Tag extends React.ElementType = "button">({
117
150
  return getBadgeProps(badge);
118
151
  }, [badge]);
119
152
 
153
+ const minimal = useMemo(() => !label, [label]);
154
+
155
+ const tooltipProps = useMemo(() => {
156
+ if (isString(tooltip)) return { content: tooltip };
157
+
158
+ return tooltip ?? {};
159
+ }, [tooltip]);
160
+
120
161
  const E = as ?? "button";
162
+ const W = tooltip ? Tooltip : Fragment;
121
163
  return (
122
- <E
123
- data-id={id}
124
- disabled={disabled}
125
- data-color={color}
126
- className={classNames(
127
- classes.tabButton,
128
- className,
129
- active && "active pointer-events-none",
130
- active && activeClassName,
131
- disabled && "text-tint-500 pointer-events-none",
132
- tabFlex ? "flex-1" : "flex-initial max-w-36 min-w-24",
133
- "flex items-center justify-center px-1 rounded overflow-hidden",
134
- )}
135
- onClick={() => !active && onClick?.(id)}
136
- ref={ref as AnyObject}
137
- {...aria}
138
- >
139
- {icon && (
140
- <Icon
141
- icon={icon}
142
- bg={iconBg}
143
- color={iconColor}
144
- rtlFlip={rtlFlip}
145
- className="flex-content"
146
- />
147
- )}
148
- {!minimal && (
149
- <label className="flex-initial truncate text-center px-1 py-1">
150
- {label}
151
- </label>
152
- )}
153
- {badge && (
154
- <Badge
155
- {...badgeProps}
156
- placement={minimal ? "end" : ""}
157
- className={classNames("me-1", badgeProps.className)}
158
- />
159
- )}
160
- {actions && active && (
161
- <DropdownTool className="bg-base/20 me-1 z-5">{actions}</DropdownTool>
162
- )}
163
- {onClose && (
164
- <span
165
- role="none"
166
- className={classNames(
167
- "cursor-pointer me-1 opacity-65 hover:opacity-90 pointer-events-auto",
168
- )}
169
- onClick={(e) => {
170
- onClose?.();
171
- e.stopPropagation();
172
- }}
173
- >
174
- &times;
175
- </span>
176
- )}
177
- </E>
164
+ <W {...tooltipProps}>
165
+ <E
166
+ data-id={id}
167
+ disabled={disabled}
168
+ data-color={color}
169
+ data-inner-clickable
170
+ className={classNames(
171
+ "fabric-tabButton",
172
+ className,
173
+ active && "active pointer-events-none",
174
+ active && activeClassName,
175
+ disabled && "text-tint-500 pointer-events-none",
176
+ tabFlex ? "flex-1" : "flex-initial max-w-36",
177
+ minimal ? "min-w-6" : "min-w-18",
178
+ "flex items-center justify-center px-1 rounded overflow-hidden cursor-pointer",
179
+ )}
180
+ onClick={() => !active && onClick?.(id)}
181
+ ref={ref as AnyObject}
182
+ {...aria}
183
+ >
184
+ {icon && (
185
+ <Icon
186
+ icon={icon}
187
+ bg={iconBg}
188
+ color={iconColor}
189
+ rtlFlip={rtlFlip}
190
+ className="flex-content p-2"
191
+ />
192
+ )}
193
+ {!minimal && (
194
+ <label className="flex-initial truncate text-center px-1 py-1">
195
+ {label}
196
+ </label>
197
+ )}
198
+ {badge && (
199
+ <Badge
200
+ {...badgeProps}
201
+ placement={minimal ? "end" : ""}
202
+ className={classNames("me-1", badgeProps.className)}
203
+ />
204
+ )}
205
+ {actions && active && (
206
+ <DropdownTool className="bg-tint-50/20 me-1 z-5">
207
+ {actions}
208
+ </DropdownTool>
209
+ )}
210
+ {onClose && (
211
+ <span
212
+ role="none"
213
+ className={classNames(
214
+ "cursor-pointer me-1 opacity-65 hover:opacity-90 pointer-events-auto",
215
+ )}
216
+ onClick={(e) => {
217
+ onClose?.();
218
+ e.stopPropagation();
219
+ }}
220
+ >
221
+ &times;
222
+ </span>
223
+ )}
224
+ </E>
225
+ </W>
178
226
  );
179
227
  };
@@ -25,6 +25,7 @@ import classNames from "classnames";
25
25
  import {
26
26
  Children,
27
27
  cloneElement,
28
+ type ReactNode,
28
29
  useCallback,
29
30
  useEffect,
30
31
  useMemo,
@@ -33,7 +34,6 @@ import {
33
34
  import { type CallbackReturn, type ChildrenProp } from "../../types";
34
35
  import { nodeCheck } from "../../utils";
35
36
  import { Tab } from "./Tab";
36
- import classes from "./TabPanel.module.css";
37
37
 
38
38
  export interface TabPanelProps extends ChildrenProp<typeof Tab> {
39
39
  /**
@@ -64,6 +64,14 @@ export interface TabPanelProps extends ChildrenProp<typeof Tab> {
64
64
  * tab list className
65
65
  */
66
66
  headerClassName?: string;
67
+ /**
68
+ * append element
69
+ */
70
+ append?: ReactNode;
71
+ /**
72
+ * prepend element
73
+ */
74
+ prepend?: ReactNode;
67
75
  /**
68
76
  * change handler
69
77
  */
@@ -76,6 +84,39 @@ export interface TabPanelProps extends ChildrenProp<typeof Tab> {
76
84
 
77
85
  // TODO: implement append/prepend tab-bar items
78
86
 
87
+ /**
88
+ * A component that provides a tabbed interface for displaying content.
89
+ * It allows users to switch between different tabs, each containing its own content.
90
+ * It supports various orientations, justify options, and variants for the tab header.
91
+ * It also provides hooks for handling tab changes before and after they occur.
92
+ * This component is useful for organizing content into separate sections that can be easily navigated by the user.
93
+ * It can be customized with different styles and behaviors to fit the needs of the application.
94
+ *
95
+ * @param {TabPanelProps} props - The properties for the TabPanel component.
96
+ * @returns {JSX.Element} The rendered TabPanel component.
97
+ *
98
+ * @example
99
+ * ```jsx
100
+ * <TabPanel
101
+ * orientation="top"
102
+ * activeTab="tab1"
103
+ * justify="start"
104
+ * variant="solid"
105
+ * tabFlex={true}
106
+ * onBeforeChange={(nextTab, currentTab) => {
107
+ * console.log(`Switching from ${currentTab} to ${nextTab}`);
108
+ * return true; // or false to prevent change
109
+ * }}
110
+ * onChange={(id) => console.log(`Active tab changed to: ${id}`)}
111
+ * >
112
+ * <Tab id="tab1" label="Tab 1">Content for Tab 1</Tab>
113
+ * <Tab id="tab2" label="Tab 2">Content for Tab 2</Tab>
114
+ * <Tab id="tab3" label="Tab 3">Content for Tab 3</Tab>
115
+ * </TabPanel>
116
+ * ```
117
+ *
118
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-tabpanel--docs} for more details.
119
+ */
79
120
  export const TabPanel = ({
80
121
  children,
81
122
  headerClassName,
@@ -84,6 +125,8 @@ export const TabPanel = ({
84
125
  justify,
85
126
  variant,
86
127
  tabFlex,
128
+ append,
129
+ prepend,
87
130
  gap,
88
131
  onBeforeChange,
89
132
  onChange,
@@ -124,7 +167,7 @@ export const TabPanel = ({
124
167
  return (
125
168
  <div
126
169
  className={classNames(
127
- classes.tabPanel,
170
+ "fabric-tabPanel",
128
171
  "area-content grid bg-base overflow-hidden",
129
172
  )}
130
173
  data-orientation={orientation}
@@ -132,21 +175,33 @@ export const TabPanel = ({
132
175
  >
133
176
  <div
134
177
  className={classNames(
135
- classes.tabList,
178
+ "fabric-tabHeader",
136
179
  headerClassName,
137
180
  justify && `justify-${justify}`,
138
181
  ["start", "end"].includes(orientation) && "flex-col",
139
- "flex flex-nowrap overflow-auto scroll-thin",
182
+ "flex flex-nowrap overflow-hidden items-center",
140
183
  )}
141
- style={{ gap }}
142
184
  >
143
- {tabs.map((node: AnyObject) =>
144
- cloneElement(node, {
145
- tabFlex: node.props.tabFlex ?? tabFlex,
146
- onClick: handleClick,
147
- active: node.props.id === active,
148
- }),
149
- )}
185
+ {prepend}
186
+ <div
187
+ className={classNames(
188
+ "fabric-tabList",
189
+ justify && `justify-${justify}`,
190
+ ["start", "end"].includes(orientation) && "flex-col",
191
+ ["bottom", "end"].includes(orientation) ? "self-start" : "self-end",
192
+ "flex flex-1 flex-nowrap overflow-auto scroll-thin",
193
+ )}
194
+ style={{ gap }}
195
+ >
196
+ {tabs.map((node: AnyObject) =>
197
+ cloneElement(node, {
198
+ tabFlex: node.props.tabFlex ?? tabFlex,
199
+ onClick: handleClick,
200
+ active: node.props.id === active,
201
+ }),
202
+ )}
203
+ </div>
204
+ {append}
150
205
  </div>
151
206
  {rest}
152
207
  {activeTabPanel}
@@ -146,6 +146,10 @@ export const ApplicationProvider: FC<GlobalProps> = ({
146
146
  defaultLocale ?? systemLocale(),
147
147
  );
148
148
 
149
+ useEffect(() => {
150
+ defaultColorScheme && setColorScheme(defaultColorScheme);
151
+ }, [defaultColorScheme]);
152
+
149
153
  /** ***************** set initial theme and locale dir *******************/
150
154
  useEffect(() => {
151
155
  document.documentElement.lang = locale;
@@ -228,13 +232,36 @@ export const ApplicationProvider: FC<GlobalProps> = ({
228
232
  export const useGlobals = () => useContext(GlobalContext);
229
233
 
230
234
  /**
231
- * global application context
235
+ * Hook to access the global application context.
236
+ * This hook provides access to the global context values, including the current locale, calendar, and color scheme.
237
+ *
238
+ * @returns {GlobalContextType} The global context values excluding the error element.
239
+ *
240
+ * @example
241
+ * ```jsx
242
+ * const { changeLocale, currentLocale, toggleColorScheme } = useApplicationContext();
243
+ * ```
232
244
  */
233
245
  export const useApplicationContext = () => {
234
246
  const { errorElement, ...rest } = useContext(GlobalContext);
235
247
  return rest;
236
248
  };
237
249
 
250
+ /**
251
+ * Hook to access the notification manager from the global context.
252
+ * This hook provides methods to show alerts, errors, messages, and toasts.
253
+ * It returns a reference to the notification manager, which can be used to display notifications in the application.
254
+ *
255
+ * @returns {NotificationManagerRef} The notification manager reference.
256
+ *
257
+ * @example
258
+ * ```jsx
259
+ * const notificationService = useNotificationService();
260
+ * notificationService.showMessage("Hello World");
261
+ * ```
262
+ *
263
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-notifications--notifications} for more details on available methods.
264
+ */
238
265
  export const useNotificationService = () => {
239
266
  const { notificationManager } = useContext(GlobalContext);
240
267
  return notificationManager ?? {};
@@ -194,7 +194,7 @@ export const NotificationManager = ({ onLoad }: KeyValue) => {
194
194
  {createPortal(
195
195
  <div
196
196
  style={{ zIndex: "var(--z-overlay)" }}
197
- className="ruf-container__overlays pointer-events-none fixed inset-0 p-4 bg-transparent"
197
+ className="fabric-container__overlays pointer-events-none fixed inset-0 p-4 bg-transparent"
198
198
  >
199
199
  {Object.values(alerts).map(([el]: AnyObject) => el)}
200
200
  </div>,
@@ -203,7 +203,7 @@ export const NotificationManager = ({ onLoad }: KeyValue) => {
203
203
  {createPortal(
204
204
  <div
205
205
  style={{ zIndex: "var(--z-notifications)" }}
206
- className="ruf-container__notifs flex flex-nowrap pointer-events-none fixed inset-0 p-2 bg-transparent flex-col-reverse items-center justify-end"
206
+ className="fabric-container__notifs flex flex-nowrap pointer-events-none fixed inset-0 p-2 bg-transparent flex-col-reverse items-center justify-end"
207
207
  >
208
208
  {Object.values(messages).map(([el]: AnyObject) => el)}
209
209
  </div>,
@@ -212,7 +212,7 @@ export const NotificationManager = ({ onLoad }: KeyValue) => {
212
212
  {createPortal(
213
213
  <div
214
214
  style={{ zIndex: "var(--z-notifications)" }}
215
- className="ruf-container__toasts flex flex-nowrap pointer-events-none fixed inset-0 p-4 bg-transparent flex-col items-end justify-end overflow-auto scroll-hide"
215
+ className="fabric-container__toasts flex flex-nowrap pointer-events-none fixed inset-0 p-4 bg-transparent flex-col items-end justify-end overflow-auto scroll-hide"
216
216
  >
217
217
  {Object.values(toasts).map(([el]: AnyObject) => el)}
218
218
  </div>,
@@ -45,7 +45,6 @@ import {
45
45
  } from "../../types";
46
46
  import { CoreIcons } from "../../types/icons";
47
47
  import { ErrorBoundary } from "../boundary/ErrorBoundary";
48
- import classes from "./Aside.module.css";
49
48
 
50
49
  export interface AsideProps
51
50
  extends IconProps,
@@ -106,7 +105,44 @@ export interface AsideProps
106
105
  }
107
106
 
108
107
  /**
109
- * Side panel
108
+ * A sidebar component that can be collapsed, resized, and has a flyout feature.
109
+ * It supports a title, icon, actions, and loading state.
110
+ * It can be aligned to the start or end of the page.
111
+ *
112
+ * @param {AsideProps} props - The properties for the Aside component.
113
+ * @returns {JSX.Element} The rendered Aside component.
114
+ *
115
+ * @example
116
+ * ```jsx
117
+ * <Aside
118
+ * title="Sidebar Title"
119
+ * icon={CoreIcons.menu}
120
+ * iconBg="bg-gray-200"
121
+ * iconColor="text-gray-800"
122
+ * rtlFlip={true}
123
+ * className="custom-aside"
124
+ * bodyClassName="custom-aside-body"
125
+ * headerClassName="custom-aside-header"
126
+ * resizeable={true}
127
+ * flyout={true}
128
+ * onFlyout={() => console.log("Flyout triggered")}
129
+ * collapsed={false}
130
+ * collapsable={true}
131
+ * onCollapse={() => console.log("Collapsed toggled")}
132
+ * actions={<button>Action</button>}
133
+ * loading={false}
134
+ * align="start"
135
+ * width="20rem"
136
+ * minWidth="2rem"
137
+ * maxWidth="30vw"
138
+ * data-testid="aside-test"
139
+ * data-test-value="aside-value"
140
+ * >
141
+ * <Content>This is the content of the aside.</Content>
142
+ * </Aside>
143
+ * ```
144
+ *
145
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--aside} for more details.
110
146
  */
111
147
  export const Aside = ({
112
148
  children,
@@ -197,9 +233,10 @@ export const Aside = ({
197
233
 
198
234
  return (
199
235
  <aside
200
- className={classNames(classes.aside, className, "overflow-hidden grid")}
236
+ className={classNames("fabric-aside", className, "overflow-hidden grid")}
201
237
  data-align={align}
202
238
  data-flyout={peek}
239
+ data-loading={loading}
203
240
  data-collapsed={isCollapsed}
204
241
  style={isCollapsed ? undefined : widthStyles}
205
242
  data-testid={testId}
@@ -207,15 +244,16 @@ export const Aside = ({
207
244
  >
208
245
  <header
209
246
  className={classNames(
210
- classes.asideHeader,
247
+ "fabric-asideHeader",
211
248
  headerClassName,
212
249
  "grid area-head items-center",
213
250
  )}
251
+ data-ref="asideHeader"
214
252
  >
215
253
  {title && (
216
254
  <div
217
255
  className={classNames(
218
- classes.asideTitle,
256
+ "fabric-asideTitle",
219
257
  "truncate py-0.5 px-1 select-none pointer-events-none",
220
258
  )}
221
259
  >
@@ -225,7 +263,7 @@ export const Aside = ({
225
263
  {collapsable && (
226
264
  <Icon
227
265
  aria-label={isCollapsed ? "expand" : "collapse"}
228
- className={classNames(classes.asideCollapse, "p-2 select-none")}
266
+ className={classNames("fabric-asideCollapse", "p-2 select-none")}
229
267
  icon={CoreIcons.chevronLeft}
230
268
  rtlFlip
231
269
  onClick={toggleCollapse}
@@ -239,12 +277,12 @@ export const Aside = ({
239
277
  color={iconColor}
240
278
  rtlFlip={rtlFlip}
241
279
  className={classNames(
242
- classes.asideIcon,
280
+ "fabric-asideIcon",
243
281
  "p-1 text-lg select-none pointer-events-none",
244
282
  )}
245
283
  />
246
284
  )}
247
- {actions && <div className={classes.asideActions}>{actions}</div>}
285
+ {actions && <div className={"fabric-asideActions"}>{actions}</div>}
248
286
  </header>
249
287
  {loading && <Loading />}
250
288
  {isCollapsed && (
@@ -252,14 +290,14 @@ export const Aside = ({
252
290
  role="none"
253
291
  onClick={tryPeek}
254
292
  data-ref="asidePlaceholder"
255
- className={classes.asidePlaceholder}
293
+ className={"fabric-asidePlaceholder"}
256
294
  />
257
295
  )}
258
296
  <section
259
297
  ref={elementRef}
260
298
  data-ref="asideBody"
261
299
  className={classNames(
262
- classes.asideBody,
300
+ "fabric-asideBody",
263
301
  bodyClassName,
264
302
  "overflow-hidden grid",
265
303
  )}
@@ -271,8 +309,8 @@ export const Aside = ({
271
309
  <div
272
310
  {...resizeHandleProps}
273
311
  className={classNames(
274
- classes.asideResizer,
275
- "before:absolute before:inset-0 before:w-1 before:top-1/2 before:-translate-y-1/2 before:transition-all",
312
+ "fabric-asideResizer",
313
+ "before:absolute before:inset-0 before:w-1 before:top-1/2 before:-translate-y-1/2 before:transition-all before:delay-150",
276
314
  )}
277
315
  />
278
316
  )}