@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
@@ -29,7 +29,6 @@ import { Fragment } from "react/jsx-runtime";
29
29
  import { useMemoDebugger } from "../../hooks/useEffectDebugger";
30
30
  import { usePropToggle } from "../../hooks/usePropToggle";
31
31
  import { type ChildrenProp } from "../../types";
32
- import classes from "./ErrorBoundary.module.css";
33
32
  import { ErrorIcon } from "./ErrorIcon";
34
33
  import { useGlobals } from "../../context/Global";
35
34
 
@@ -53,7 +52,7 @@ const ErrorMessage = ({ error, errorElement }: KeyValue) => {
53
52
  return (
54
53
  <Fragment>
55
54
  <ErrorIcon />
56
- <div className={classNames(classes.boundaryMessage, "p-2")}>
55
+ <div className={classNames("fabric-boundaryMessage", "p-2")}>
57
56
  <EE error={error} />
58
57
  </div>
59
58
  </Fragment>
@@ -64,10 +63,12 @@ const ErrorStack = ({ error, stack }: KeyValue) => {
64
63
  const [show, toggleShow] = usePropToggle(false);
65
64
  useLogger().error(error, {}, stack);
66
65
  return (
67
- <div className={classNames(classes.boundaryDetail, "overflow-hidden grid")}>
66
+ <div
67
+ className={classNames("fabric-boundaryDetail", "overflow-hidden grid")}
68
+ >
68
69
  <div
69
70
  className={classNames(
70
- classes.boundaryLink,
71
+ "fabric-boundaryLink",
71
72
  "px-2 py-1 text-xs text-end",
72
73
  )}
73
74
  >
@@ -78,7 +79,7 @@ const ErrorStack = ({ error, stack }: KeyValue) => {
78
79
  {show && (
79
80
  <div
80
81
  className={classNames(
81
- classes.boundaryStack,
82
+ "fabric-boundaryStack",
82
83
  "overflow-auto p-2 text-xs border-t",
83
84
  )}
84
85
  >
@@ -90,7 +91,23 @@ const ErrorStack = ({ error, stack }: KeyValue) => {
90
91
  };
91
92
 
92
93
  /**
93
- * An error boundary wrapper higher-order component designed to provide consistent error display across the application will trap runtime errors
94
+ * ErrorBoundary component to catch JavaScript errors anywhere in the child component tree,
95
+ * log those errors, and display a fallback UI.
96
+ * It can also display a custom error element if provided.
97
+ * This component is useful for preventing the entire application from crashing
98
+ * when an error occurs in a part of the component tree.
99
+ * It can be used to wrap any part of the application.
100
+ * It supports custom error display components and provides a default error message.
101
+ * It also conditionally displays the error stack trace in development mode.
102
+ *
103
+ * @example
104
+ * ```jsx
105
+ * <ErrorBoundary errorElement={CustomErrorComponent}>
106
+ * <YourComponent />
107
+ * </ErrorBoundary>
108
+ * ```
109
+ *
110
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--error-boundary}
94
111
  */
95
112
  export class ErrorBoundary extends Component<
96
113
  {
@@ -122,13 +139,13 @@ export class ErrorBoundary extends Component<
122
139
  return (
123
140
  <div
124
141
  className={classNames(
125
- classes.errorBoundary,
142
+ "fabric-errorBoundary",
126
143
  "grid grid-rows-1 overflow-hidden p-0.5 rounded-capped",
127
144
  )}
128
145
  >
129
146
  <div
130
147
  className={classNames(
131
- classes.boundaryContent,
148
+ "fabric-boundaryContent",
132
149
  "overflow-hidden grid rounded-capped",
133
150
  )}
134
151
  >
@@ -22,13 +22,12 @@
22
22
  */
23
23
 
24
24
  import classNames from "classnames";
25
- import classes from "./ErrorBoundary.module.css";
26
25
 
27
26
  export const ErrorIcon = () => (
28
27
  <svg
29
28
  xmlns="http://www.w3.org/2000/svg"
30
29
  viewBox="0 0 64 64"
31
- className={classNames(classes.boundaryIcon, "size-6 m-2")}
30
+ className={classNames("fabric-boundaryIcon", "size-6 m-2")}
32
31
  >
33
32
  <path
34
33
  fill="#808080"
@@ -22,19 +22,18 @@
22
22
  */
23
23
 
24
24
  import classNames from "classnames";
25
- import { useImperativeHandle } from "react";
25
+ import { type MouseEvent, useImperativeHandle } from "react";
26
26
  import { useDebounce } from "../../hooks/useDebounce";
27
27
  import { useResizeObserver } from "../../hooks/useResizeObserver";
28
28
  import {
29
29
  type ChildrenProp,
30
30
  type CssProp,
31
- type PositionObject,
32
31
  type RefProp,
32
+ type ScrollObject,
33
33
  type SizeObject,
34
34
  type TestProps,
35
35
  } from "../../types";
36
36
  import { ErrorBoundary } from "../boundary/ErrorBoundary";
37
- import classes from "./Content.module.css";
38
37
 
39
38
  export interface ContentProps
40
39
  extends ChildrenProp,
@@ -44,7 +43,7 @@ export interface ContentProps
44
43
  /**
45
44
  * scroll vevent handler
46
45
  */
47
- onScroll?: (event: PositionObject) => void;
46
+ onScroll?: (scroll: ScrollObject, event: MouseEvent<HTMLDivElement>) => void;
48
47
  /**
49
48
  * scroll vevent handler
50
49
  */
@@ -52,7 +51,12 @@ export interface ContentProps
52
51
  }
53
52
 
54
53
  /**
55
- * Scrollable content element
54
+ * Content component that wraps children in a section element.
55
+ * It uses a resize observer to handle resizing and a debounced scroll handler.
56
+ * It also includes an error boundary to catch any errors in the children.
57
+ *
58
+ * @param {ContentProps} props - The properties for the Content component.
59
+ * @returns A section element containing the children wrapped in an error boundary.
56
60
  */
57
61
  export const Content = ({
58
62
  ref,
@@ -65,13 +69,19 @@ export const Content = ({
65
69
  }: ContentProps) => {
66
70
  const resizeHandle = useResizeObserver(onResize);
67
71
  const scrollHandler = useDebounce(
68
- (e: React.UIEvent<HTMLDivElement>) => {
69
- onScroll?.({
70
- // @ts-expect-error ignore
71
- left: e.target.scrollLeft,
72
- // @ts-expect-error ignore
73
- top: e.target.scrollTop,
74
- });
72
+ (e: MouseEvent<HTMLDivElement>) => {
73
+ const el = e.target as HTMLElement;
74
+ onScroll?.(
75
+ {
76
+ left: el.scrollLeft,
77
+ top: el.scrollTop,
78
+ scrollHeight: el.scrollHeight,
79
+ scrollWidth: el.scrollWidth,
80
+ width: el.offsetWidth,
81
+ height: el.offsetHeight,
82
+ },
83
+ e,
84
+ );
75
85
  },
76
86
  [onScroll],
77
87
  );
@@ -83,7 +93,7 @@ export const Content = ({
83
93
  data-test-value={testValue}
84
94
  ref={resizeHandle}
85
95
  onScroll={scrollHandler}
86
- className={classNames(classes.content, "area-content", className)}
96
+ className={classNames("fabric-content", "area-content", className)}
87
97
  >
88
98
  <ErrorBoundary>{children}</ErrorBoundary>
89
99
  </section>
@@ -22,27 +22,15 @@
22
22
  */
23
23
 
24
24
  import classNames from "classnames";
25
- import { useMemoDebugger } from "../../hooks/useEffectDebugger";
26
25
  import {
27
26
  type AriaProps,
28
27
  type ChildrenProp,
29
- type ColorWithGrays,
30
28
  type CssProp,
31
29
  type TestProps,
32
30
  } from "../../types";
33
- import { getBgClass, getColor, getColorClass } from "../../utils";
34
- import classes from "./HeadFoot.module.css";
35
31
 
36
32
  interface BaseProps extends CssProp, AriaProps, ChildrenProp, TestProps {
37
33
  dir?: "ltr" | "rtl";
38
- /**
39
- * background color
40
- */
41
- bg?: ColorWithGrays | string;
42
- /**
43
- * background color
44
- */
45
- color?: ColorWithGrays | string;
46
34
  }
47
35
 
48
36
  type DefaultProps = BaseProps & { flex?: false };
@@ -58,8 +46,6 @@ const HeadFoot = ({
58
46
  as: E,
59
47
  children,
60
48
  className,
61
- bg,
62
- color,
63
49
  flex,
64
50
  area,
65
51
  dir,
@@ -67,37 +53,18 @@ const HeadFoot = ({
67
53
  justify = "start",
68
54
  ...aria
69
55
  }: KeyValue & { as: "header" | "footer" }) => {
70
- /** ***************** style map *******************/
71
- const styles = useMemoDebugger(
72
- () => {
73
- const s: KeyValue = {};
74
- if (bg) {
75
- s.backgroundColor = getColor(bg);
76
- }
77
- if (color) {
78
- s.color = getColor(color);
79
- }
80
- return s;
81
- },
82
- [bg],
83
- "HeadFoot styles",
84
- );
85
-
86
56
  return (
87
57
  <E
88
58
  dir={dir}
89
59
  className={classNames(
90
- classes.headfoot,
60
+ "fabric-headfoot",
91
61
  className,
92
- bg && getBgClass(bg),
93
- color && getColorClass(color),
94
62
  area === "head" ? "area-head" : "area-foot",
95
63
  `leading-none`,
96
- flex && "flex flex-nowrap gap-px",
64
+ flex && "flex flex-nowrap",
97
65
  align && `items-${align}`,
98
66
  justify && `justify-${justify}`,
99
67
  )}
100
- style={styles}
101
68
  {...aria}
102
69
  >
103
70
  {children}
@@ -105,10 +72,50 @@ const HeadFoot = ({
105
72
  );
106
73
  };
107
74
 
75
+ /**
76
+ * Header component that wraps children in a header element.
77
+ * It uses the HeadFoot component to handle layout and styling.
78
+ * It accepts properties for direction, alignment, and justification,
79
+ * allowing for flexible layout configurations.
80
+ * The `as` prop is set to "header" to render the element as a header.
81
+ * The `area` prop is set to "head" to indicate that this is a header area.
82
+ * It can be used to create a consistent header layout across an application.
83
+ *
84
+ * @param {HeadFootProps} props - The properties for the Header component.
85
+ * @returns A header element containing the children wrapped in the HeadFoot component.
86
+ *
87
+ * @example
88
+ * ```jsx
89
+ * <Header className="custom-header" dir="ltr">
90
+ * <h1>Header content goes here</h1>
91
+ * </Header>
92
+ * ```
93
+ */
108
94
  export const Header = (props: HeadFootProps) => (
109
95
  <HeadFoot as="header" area="head" {...props} />
110
96
  );
111
97
 
98
+ /**
99
+ * Footer component that wraps children in a footer element.
100
+ * It uses the HeadFoot component to handle layout and styling.
101
+ * It accepts properties for direction, alignment, and justification,
102
+ * allowing for flexible layout configurations.
103
+ * The `as` prop is set to "footer" to render the element as a footer.
104
+ * The `area` prop is set to "foot" to indicate that this is a footer area.
105
+ * It can be used to create a consistent footer layout across an application.
106
+ * * The Footer component is designed to be flexible and can be styled with custom classes.
107
+ * It supports both default and flex layouts, allowing for alignment and justification of its children.
108
+ *
109
+ * @param {HeadFootProps} props - The properties for the Footer component.
110
+ * @returns A footer element containing the children wrapped in the HeadFoot component.
111
+ *
112
+ * @example
113
+ * ```jsx
114
+ * <Footer className="custom-footer" dir="ltr">
115
+ * <p>Footer content goes here</p>
116
+ * </Footer>
117
+ * ```
118
+ */
112
119
  export const Footer = (props: HeadFootProps) => (
113
120
  <HeadFoot as="footer" area="foot" {...props} />
114
121
  );
@@ -24,10 +24,18 @@
24
24
  import classNames from "classnames";
25
25
  import { Loading } from "../../components/animations/Animations";
26
26
  import { Icon } from "../../components/icon/Icon";
27
- import { type ChildrenProp, type IconProps, type TestProps } from "../../types";
28
- import classes from "./Page.module.css";
27
+ import {
28
+ type ChildrenProp,
29
+ type IconProps,
30
+ type RefProp,
31
+ type TestProps,
32
+ } from "../../types";
29
33
 
30
- export interface PageProps extends IconProps, ChildrenProp, TestProps {
34
+ export interface PageProps
35
+ extends IconProps,
36
+ ChildrenProp,
37
+ TestProps,
38
+ RefProp<HTMLDivElement> {
31
39
  /**
32
40
  * page title
33
41
  */
@@ -47,9 +55,35 @@ export interface PageProps extends IconProps, ChildrenProp, TestProps {
47
55
  }
48
56
 
49
57
  /**
50
- * The page component used typically for routes, is a structured layout used within an application to organize and display content in a sectioned format, ensuring a consistent and intuitive user experience.
58
+ * Page component that wraps children in a div element.
59
+ * It includes a title section with an optional icon and a loading indicator.
60
+ * The component can be styled with a paper effect, page icon and title.
61
+ * It also accepts a loading prop to display a loading indicator.
62
+ *
63
+ * @param {PageProps} props - The properties for the Page component.
64
+ * @returns A div element containing the title and children, with optional loading indicator.
65
+ *
66
+ * @example
67
+ * ```jsx
68
+ * <Page
69
+ * title="My Page"
70
+ * icon="home"
71
+ * iconBg="bg-blue-500"
72
+ * iconColor="text-white"
73
+ * loading={false}
74
+ * paper={true}
75
+ * data-testid="my-page"
76
+ * data-test-value="page-value"
77
+ * >
78
+ * <p>This is the content of the page.</p>
79
+ * </Page>
80
+ * // Renders a page with a title, icon, and content.
81
+ * ```
82
+ *
83
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--page} for more details.
51
84
  */
52
85
  export const Page = ({
86
+ ref,
53
87
  children,
54
88
  paper,
55
89
  title,
@@ -61,22 +95,26 @@ export const Page = ({
61
95
  loading,
62
96
  "data-testid": testId,
63
97
  "data-test-value": testValue,
98
+ ...rest
64
99
  }: PageProps) => {
65
100
  return (
66
101
  <div
67
102
  data-testid={testId}
68
103
  data-test-value={testValue}
104
+ data-loading={loading}
69
105
  className={classNames(
70
- classes.page,
106
+ "fabric-page relative",
71
107
  "overflow-hidden grid area-content",
72
108
  paper && "shadow-paper m-[6px] rounded-capped",
73
109
  )}
110
+ ref={ref}
111
+ {...rest}
74
112
  >
75
113
  {title && (
76
114
  <div
77
115
  data-ref="pageTitle"
78
116
  className={classNames(
79
- classes.pageTitle,
117
+ "fabric-pageTitle",
80
118
  "select-none flex gap-1 items-center justify-center px-1 py-0.5 font-medium text-center",
81
119
  titleClassName,
82
120
  )}
@@ -29,7 +29,6 @@ import {
29
29
  type SizeTypeWithZero,
30
30
  type TestProps,
31
31
  } from "../../types";
32
- import classes from "./Responsive.module.css";
33
32
 
34
33
  export interface ContainerProps
35
34
  extends AriaProps,
@@ -81,15 +80,32 @@ export interface ColProps
81
80
  /**
82
81
  * column flex
83
82
  */
84
- flex?: "auto" | "fill" | "full";
83
+ flex?: "auto" | "fill" | "full" | "initial" | "content";
85
84
  /**
86
85
  * stretch inner content
87
86
  */
88
87
  stretchContent?: boolean;
88
+ /**
89
+ * truncate text
90
+ */
91
+ truncate?: boolean;
89
92
  }
90
93
 
91
94
  /**
92
- * Responsive layout container
95
+ * Container component that wraps children in a div element.
96
+ * It supports full width, gutter size, and additional CSS classes.
97
+ * It can be used to create a responsive layout with optional gutters for spacing.
98
+ * It accepts properties for full width, gutter size, and additional CSS classes.
99
+ *
100
+ * @param {ContainerProps} props - The properties for the Container component.
101
+ * @returns A div element containing the children with optional full width and gutter size.
102
+ *
103
+ * @example
104
+ * ```jsx
105
+ * <Container fullWidth={true} gutter="16px" className="custom-container">
106
+ * <p>This is a container with full width and gutter.</p>
107
+ * </Container>
108
+ * ```
93
109
  */
94
110
  export const Container = ({
95
111
  children,
@@ -101,7 +117,7 @@ export const Container = ({
101
117
  return (
102
118
  <div
103
119
  className={classNames(
104
- classes.container,
120
+ "fabric-container",
105
121
  className,
106
122
  !fullWidth && "container mx-auto",
107
123
  )}
@@ -113,6 +129,26 @@ export const Container = ({
113
129
  );
114
130
  };
115
131
 
132
+ /**
133
+ * Row component that allows for flexible layout of columns.
134
+ * It supports various flex properties, alignment, and wrapping.
135
+ * It can be used to create a responsive layout with optional gutters for spacing.
136
+ * It accepts properties for gutter size, orientation, alignment, justification, and additional CSS classes.
137
+ *
138
+ * @param {RowProps} props - The properties for the Row component.
139
+ * @returns A div element representing a row with the specified flex and alignment properties.
140
+ *
141
+ * @example
142
+ * ```jsx
143
+ * <Row gutter="16px" orient="row" align="center" justify="between">
144
+ * <Col flex="fill">Column 1</Col>
145
+ * <Col flex="fill">Column 2</Col>
146
+ * </Row>
147
+ * // Renders a row with two columns, each taking equal space, centered vertically and spaced evenly.
148
+ * ```
149
+ *
150
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--responsive} for more details.
151
+ */
116
152
  export const Row = ({
117
153
  children,
118
154
  gutter,
@@ -126,7 +162,7 @@ export const Row = ({
126
162
  return (
127
163
  <div
128
164
  className={classNames(
129
- classes.row,
165
+ "fabric-row",
130
166
  className,
131
167
  "flex",
132
168
  orient === "row" && "flex-row",
@@ -145,10 +181,29 @@ export const Row = ({
145
181
  );
146
182
  };
147
183
 
184
+ /**
185
+ * Column component that allows for flexible layout within a row.
186
+ * It supports various flex properties, alignment, and truncation.
187
+ * It can be used to create a responsive layout with optional stretching of inner content.
188
+ * It accepts properties for flex size, alignment, truncation, and additional CSS classes.
189
+ *
190
+ * @param {ColProps} props - The properties for the Col component.
191
+ * @returns A div element representing a column with the specified flex and alignment properties.
192
+ *
193
+ * @example
194
+ * ```jsx
195
+ * <Col flex="fill" align="center" truncate className="custom-col">
196
+ * <p>This is a column with flexible layout.</p>
197
+ * </Col>
198
+ * ```
199
+ *
200
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--responsive} for more details.
201
+ */
148
202
  export const Col = ({
149
203
  children,
150
204
  flex,
151
205
  align,
206
+ truncate,
152
207
  className,
153
208
  stretchContent,
154
209
  ...aria
@@ -156,13 +211,16 @@ export const Col = ({
156
211
  return (
157
212
  <div
158
213
  className={classNames(
159
- classes.col,
214
+ "fabric-col",
160
215
  className,
161
- stretchContent && classes.stretchContent,
162
- flex === "auto" && "flex-content",
216
+ stretchContent && "stretchContent",
163
217
  flex === "fill" && "flex-1",
164
218
  flex === "full" && "flex-full",
219
+ flex === "auto" && "flex-auto",
220
+ flex === "initial" && "flex-initial",
221
+ flex === "content" && "flex-none",
165
222
  align && `self-${align}`,
223
+ truncate && "truncate",
166
224
  )}
167
225
  {...aria}
168
226
  >
@@ -24,10 +24,24 @@
24
24
  import classNames from "classnames";
25
25
  import { type ChildrenProp, type CssProp, type RefProp } from "../../types";
26
26
  import { ErrorBoundary } from "../boundary/ErrorBoundary";
27
- import classes from "./Section.module.css";
28
27
 
29
28
  /**
30
- * The section component provides a structured layout used within a page to organize and display content in a sectioned format, ensuring a consistent and intuitive user experience.
29
+ * A component that represents a section of content within a page, with templated grid layout.
30
+ * It can be used to group related content together and can be styled with additional CSS classes.
31
+ * It supports RTL (right-to-left) text direction.
32
+ *
33
+ * @param {ChildrenProp} children - The children to be rendered inside the section.
34
+ * @param {CssProp} className - Additional CSS classes to apply to the section.
35
+ * @param {RefProp<HTMLDivElement>} ref - A ref to the section element.
36
+ *
37
+ * @example
38
+ * ```jsx
39
+ * <Section className="my-section" ref={sectionRef}>
40
+ * <p>This is a section.</p>
41
+ * </Section>
42
+ * ```
43
+ *
44
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-application--section} for more details.
31
45
  */
32
46
  export const Section = ({
33
47
  children,
@@ -43,7 +57,7 @@ export const Section = ({
43
57
  dir={dir}
44
58
  ref={ref}
45
59
  className={classNames(
46
- classes.section,
60
+ "fabric-section",
47
61
  className,
48
62
  "grid area-content overflow-hidden",
49
63
  )}
@@ -25,7 +25,7 @@ import { isColor } from "@react-fabric/utilities";
25
25
  import classNames from "classnames";
26
26
  import { useMemo } from "react";
27
27
  import { type ChildrenProp } from "../../types";
28
- import classes from "./Theme.module.css";
28
+ import { useApplicationContext } from "../../context/Global";
29
29
 
30
30
  export interface ThemeProps {
31
31
  /**
@@ -36,9 +36,9 @@ export interface ThemeProps {
36
36
  * branding css className
37
37
  *
38
38
  * .branding {
39
- * --primary: #color;
40
- * --accent: #color;
41
- * --tint: #color;
39
+ * --color-primary: #color;
40
+ * --color-accent: #color;
41
+ * --color-tint: #color;
42
42
  * }
43
43
  */
44
44
  branding?: string;
@@ -57,11 +57,31 @@ export interface ThemeProps {
57
57
  /**
58
58
  * component rounding
59
59
  */
60
- rounding?: "minimal" | "normal" | "full";
60
+ rounding?: "sm" | "md" | "full";
61
61
  }
62
62
 
63
63
  /**
64
- * Theme override
64
+ * This component provides a way to set the theme for the application.
65
+ * It allows you to set the primary, accent, and tint colors, as well as the color scheme and rounding.
66
+ * It uses CSS variables to apply the colors and styles.
67
+ * It also applies the branding className to the root element.
68
+ * The component uses the `useApplicationContext` hook to get the current color scheme from the application context.
69
+ *
70
+ * @example
71
+ * ```jsx
72
+ * <ThemeProvider
73
+ * branding="my-branding"
74
+ * primaryColor="#ff0000"
75
+ * accentColor="#00ff00"
76
+ * tintColor="#0000ff"
77
+ * colorScheme="dark"
78
+ * rounding="md"
79
+ * >
80
+ * <div>Your content here</div>
81
+ * </ThemeProvider>
82
+ * ```
83
+ *
84
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--theme-provider} for more details.
65
85
  */
66
86
  export const ThemeProvider = ({
67
87
  children,
@@ -72,25 +92,26 @@ export const ThemeProvider = ({
72
92
  colorScheme,
73
93
  rounding,
74
94
  }: ThemeProps & ChildrenProp) => {
95
+ const { currentColorScheme } = useApplicationContext();
75
96
  const styles = useMemo(() => {
76
97
  const ret: KeyValue = {};
77
98
  if (primaryColor && isColor(primaryColor)) {
78
- ret["--primary"] = primaryColor;
99
+ ret["--color-primary"] = primaryColor;
79
100
  }
80
101
  if (primaryColor && !isColor(primaryColor)) {
81
- ret["--primary"] = `var(--${primaryColor})`;
102
+ ret["--color-primary"] = `var(--color-${primaryColor})`;
82
103
  }
83
104
  if (accentColor && isColor(accentColor)) {
84
- ret["--accent"] = accentColor;
105
+ ret["--color-accent"] = accentColor;
85
106
  }
86
107
  if (accentColor && !isColor(accentColor)) {
87
- ret["--accent"] = `var(--${accentColor})`;
108
+ ret["--color-accent"] = `var(--color-${accentColor})`;
88
109
  }
89
110
  if (tintColor && isColor(tintColor)) {
90
- ret["--tint"] = tintColor;
111
+ ret["--color-tint"] = tintColor;
91
112
  }
92
113
  if (tintColor && !isColor(tintColor)) {
93
- ret["--tint"] = `var(--${tintColor})`;
114
+ ret["--color-tint"] = `var(--color-${tintColor})`;
94
115
  }
95
116
  return ret;
96
117
  }, [primaryColor, accentColor, tintColor]);
@@ -98,10 +119,10 @@ export const ThemeProvider = ({
98
119
  return (
99
120
  <div
100
121
  style={styles}
101
- data-color-scheme={colorScheme}
122
+ data-color-scheme={colorScheme ?? currentColorScheme}
102
123
  data-rounding={rounding}
103
124
  className={classNames(
104
- classes.themeProvider,
125
+ "fabric-themeProvider",
105
126
  "contents theme-base",
106
127
  branding,
107
128
  )}