@react-fabric/core 1.0.0-beta.6 → 1.0.0-beta.60

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 (425) 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} +52 -47
  7. package/{src/components/button/Button.module.css → css/components/_button.css} +77 -83
  8. package/{src/components/card/Card.module.css → css/components/_card.css} +54 -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} +11 -8
  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} +21 -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/css/components/_stepper.css +86 -0
  23. package/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +130 -85
  24. package/{src/overlays/toast/Toast.module.css → css/components/_toast.css} +2 -2
  25. package/css/components/_tooltip.css +29 -0
  26. package/{src/core/content/Content.module.css → css/components/index.css} +26 -18
  27. package/{src/core/aside/Aside.module.css → css/core/_aside.css} +60 -48
  28. package/{src/core/section/Section.module.css → css/core/_content.css} +5 -3
  29. package/{src/core/boundary/ErrorBoundary.module.css → css/core/_errorboundary.css} +9 -9
  30. package/{src/core/headfoot/HeadFoot.module.css → css/core/_headfoot.css} +4 -10
  31. package/{src/core/page/Page.module.css → css/core/_page.css} +10 -14
  32. package/{src/core/responsive/Responsive.module.css → css/core/_responsive.css} +10 -10
  33. package/css/core/_section.css +28 -0
  34. package/{src/core/theme/Theme.module.css → css/core/_theme.css} +3 -3
  35. package/{src/typography/Typography.module.css → css/core/_typography.css} +14 -12
  36. package/{src/core/viewport/Viewport.module.css → css/core/_viewport.css} +7 -3
  37. package/css/core/index.css +33 -0
  38. package/css/reset/_gradients.css +8 -8
  39. package/css/reset/_reset.css +56 -224
  40. package/css/reset/_text.css +14 -29
  41. package/css/reset/_theme.css +331 -52
  42. package/css/reset/index.css +4 -4
  43. package/css/styles.css +7 -6
  44. package/css/theme/_colors.css +320 -0
  45. package/css/theme/_utilities.css +541 -0
  46. package/css/theme/index.css +45 -0
  47. package/dist/cjs/components/actionLabel/ActionLabel.js +26 -8
  48. package/dist/cjs/components/animations/Animations.js +110 -23
  49. package/dist/cjs/components/avatar/Avatar.js +46 -13
  50. package/dist/cjs/components/avatar/AvatarGroup.js +22 -4
  51. package/dist/cjs/components/badge/Badge.js +36 -15
  52. package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +40 -9
  53. package/dist/cjs/components/button/Button.js +50 -28
  54. package/dist/cjs/components/button/ButtonGroup.js +30 -3
  55. package/dist/cjs/components/button/ConfirmButton.js +28 -2
  56. package/dist/cjs/components/button/ToggleButtonGroup.js +41 -15
  57. package/dist/cjs/components/callout/Callout.js +44 -4
  58. package/dist/cjs/components/card/Card.js +60 -18
  59. package/dist/cjs/components/card/CardCover.js +36 -5
  60. package/dist/cjs/components/card/FlipContent.js +56 -0
  61. package/dist/cjs/components/chip/Chip.js +40 -20
  62. package/dist/cjs/components/collapsable/Collapsable.js +30 -5
  63. package/dist/cjs/components/divider/Divider.js +30 -7
  64. package/dist/cjs/components/dropdown/Dropdown.js +48 -9
  65. package/dist/cjs/components/dropdown/DropdownTool.js +1 -1
  66. package/dist/cjs/components/empty/EmptyContent.js +37 -7
  67. package/dist/cjs/components/icon/Icon.js +76 -13
  68. package/dist/cjs/components/media/Media.js +172 -75
  69. package/dist/cjs/components/menu/ContextMenu.js +19 -0
  70. package/dist/cjs/components/menu/Menu.js +76 -21
  71. package/dist/cjs/components/menu/MenuItem.js +54 -26
  72. package/dist/cjs/components/meter/Meter.js +26 -3
  73. package/dist/cjs/components/navigator/Navigator.js +48 -15
  74. package/dist/cjs/components/panel/Panel.js +53 -22
  75. package/dist/cjs/components/panel/PanelGroup.js +25 -2
  76. package/dist/cjs/components/panel/PanelStack.js +31 -2
  77. package/dist/cjs/components/progress/ProgressBar.js +31 -9
  78. package/dist/cjs/components/progress/ProgressCircle.js +29 -7
  79. package/dist/cjs/components/tabpanel/Tab.js +39 -15
  80. package/dist/cjs/components/tabpanel/TabPanel.js +56 -16
  81. package/dist/cjs/context/Global.js +28 -1
  82. package/dist/cjs/context/NotificationCenter.js +3 -3
  83. package/dist/cjs/core/aside/Aside.js +48 -22
  84. package/dist/cjs/core/boundary/ErrorBoundary.js +25 -8
  85. package/dist/cjs/core/boundary/ErrorIcon.js +1 -2
  86. package/dist/cjs/core/content/Content.js +7 -3
  87. package/dist/cjs/core/headfoot/HeadFoot.js +48 -22
  88. package/dist/cjs/core/page/Page.js +40 -39
  89. package/dist/cjs/core/responsive/Responsive.js +59 -6
  90. package/dist/cjs/core/section/Section.js +12 -29
  91. package/dist/cjs/core/theme/ThemeProvider.js +32 -10
  92. package/dist/cjs/core/viewport/Viewport.js +18 -2
  93. package/dist/cjs/hooks/useControlledValue.js +12 -0
  94. package/dist/cjs/hooks/useDebounce.js +14 -1
  95. package/dist/cjs/hooks/useEffectDebugger.js +54 -2
  96. package/dist/cjs/hooks/useIsDark.js +8 -0
  97. package/dist/cjs/hooks/useIsRtl.js +12 -0
  98. package/dist/cjs/hooks/useNavigator.js +6 -4
  99. package/dist/cjs/hooks/useOverlayService.js +24 -0
  100. package/dist/cjs/hooks/usePropToggle.js +16 -5
  101. package/dist/cjs/hooks/useResize.js +18 -0
  102. package/dist/cjs/hooks/useResizeObserver.js +20 -1
  103. package/dist/cjs/hooks/useStepper.js +75 -0
  104. package/dist/cjs/hooks/useStorage.js +39 -0
  105. package/dist/cjs/hotkeys/HotKeyLabel.js +1 -1
  106. package/dist/cjs/hotkeys/HotKeyWrapper.js +3 -1
  107. package/dist/cjs/index.js +11 -2
  108. package/dist/cjs/overlays/alert/Alert.js +23 -15
  109. package/dist/cjs/overlays/flyout/Flyout.js +48 -64
  110. package/dist/cjs/overlays/message/Message.js +8 -3
  111. package/dist/cjs/overlays/modal/Modal.js +17 -20
  112. package/dist/cjs/overlays/toast/Toast.js +20 -10
  113. package/dist/cjs/overlays/tooltip/Tooltip.js +24 -11
  114. package/dist/cjs/types/icons.js +17 -4
  115. package/dist/cjs/typography/Abbr.js +35 -7
  116. package/dist/cjs/typography/{Link.js → Anchor.js} +23 -5
  117. package/dist/cjs/typography/Mark.js +25 -5
  118. package/dist/cjs/typography/Text.js +30 -5
  119. package/dist/cjs/typography/Title.js +19 -4
  120. package/dist/cjs/utils/cloneElement.js +47 -0
  121. package/dist/cjs/utils/getColor.js +1 -18
  122. package/dist/esm/components/actionLabel/ActionLabel.js +26 -8
  123. package/dist/esm/components/animations/Animations.js +111 -24
  124. package/dist/esm/components/avatar/Avatar.js +46 -13
  125. package/dist/esm/components/avatar/AvatarGroup.js +22 -4
  126. package/dist/esm/components/badge/Badge.js +38 -17
  127. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +40 -9
  128. package/dist/esm/components/button/Button.js +52 -30
  129. package/dist/esm/components/button/ButtonGroup.js +31 -4
  130. package/dist/esm/components/button/ConfirmButton.js +28 -2
  131. package/dist/esm/components/button/ToggleButtonGroup.js +42 -16
  132. package/dist/esm/components/callout/Callout.js +44 -4
  133. package/dist/esm/components/card/Card.js +61 -19
  134. package/dist/esm/components/card/CardCover.js +36 -5
  135. package/dist/esm/components/card/FlipContent.js +56 -0
  136. package/dist/esm/components/chip/Chip.js +42 -22
  137. package/dist/esm/components/collapsable/Collapsable.js +30 -5
  138. package/dist/esm/components/divider/Divider.js +31 -8
  139. package/dist/esm/components/dropdown/Dropdown.js +48 -9
  140. package/dist/esm/components/dropdown/DropdownTool.js +1 -1
  141. package/dist/esm/components/empty/EmptyContent.js +37 -7
  142. package/dist/esm/components/icon/Icon.js +78 -16
  143. package/dist/esm/components/media/Media.js +173 -76
  144. package/dist/esm/components/menu/ContextMenu.js +19 -0
  145. package/dist/esm/components/menu/Menu.js +78 -23
  146. package/dist/esm/components/menu/MenuItem.js +49 -21
  147. package/dist/esm/components/meter/Meter.js +26 -3
  148. package/dist/esm/components/navigator/Navigator.js +48 -15
  149. package/dist/esm/components/panel/Panel.js +54 -23
  150. package/dist/esm/components/panel/PanelGroup.js +25 -2
  151. package/dist/esm/components/panel/PanelStack.js +31 -2
  152. package/dist/esm/components/progress/ProgressBar.js +31 -9
  153. package/dist/esm/components/progress/ProgressCircle.js +29 -7
  154. package/dist/esm/components/tabpanel/Tab.js +40 -16
  155. package/dist/esm/components/tabpanel/TabPanel.js +56 -16
  156. package/dist/esm/context/Global.js +28 -1
  157. package/dist/esm/context/NotificationCenter.js +3 -3
  158. package/dist/esm/core/aside/Aside.js +49 -23
  159. package/dist/esm/core/boundary/ErrorBoundary.js +25 -8
  160. package/dist/esm/core/boundary/ErrorIcon.js +1 -2
  161. package/dist/esm/core/content/Content.js +7 -3
  162. package/dist/esm/core/headfoot/HeadFoot.js +48 -22
  163. package/dist/esm/core/page/Page.js +41 -40
  164. package/dist/esm/core/responsive/Responsive.js +59 -6
  165. package/dist/esm/core/section/Section.js +12 -29
  166. package/dist/esm/core/theme/ThemeProvider.js +32 -10
  167. package/dist/esm/core/viewport/Viewport.js +18 -2
  168. package/dist/esm/hooks/useControlledValue.js +12 -0
  169. package/dist/esm/hooks/useDebounce.js +14 -1
  170. package/dist/esm/hooks/useEffectDebugger.js +54 -2
  171. package/dist/esm/hooks/useIsDark.js +8 -0
  172. package/dist/esm/hooks/useIsRtl.js +12 -0
  173. package/dist/esm/hooks/useNavigator.js +7 -5
  174. package/dist/esm/hooks/useOverlayService.js +24 -0
  175. package/dist/esm/hooks/usePropToggle.js +16 -5
  176. package/dist/esm/hooks/useResize.js +18 -0
  177. package/dist/esm/hooks/useResizeObserver.js +20 -1
  178. package/dist/esm/hooks/useStepper.js +75 -0
  179. package/dist/esm/hooks/useStorage.js +39 -0
  180. package/dist/esm/hotkeys/HotKeyLabel.js +1 -1
  181. package/dist/esm/hotkeys/HotKeyWrapper.js +3 -1
  182. package/dist/esm/index.js +6 -2
  183. package/dist/esm/overlays/alert/Alert.js +24 -16
  184. package/dist/esm/overlays/flyout/Flyout.js +52 -68
  185. package/dist/esm/overlays/message/Message.js +9 -4
  186. package/dist/esm/overlays/modal/Modal.js +19 -22
  187. package/dist/esm/overlays/toast/Toast.js +21 -11
  188. package/dist/esm/overlays/tooltip/Tooltip.js +24 -11
  189. package/dist/esm/types/icons.js +17 -4
  190. package/dist/esm/typography/Abbr.js +35 -7
  191. package/dist/esm/typography/{Link.js → Anchor.js} +24 -6
  192. package/dist/esm/typography/Mark.js +25 -5
  193. package/dist/esm/typography/Text.js +31 -6
  194. package/dist/esm/typography/Title.js +20 -5
  195. package/dist/esm/utils/cloneElement.js +47 -0
  196. package/dist/esm/utils/getColor.js +2 -16
  197. package/dist/types/components/actionLabel/ActionLabel.d.ts +21 -2
  198. package/dist/types/components/animations/Animations.d.ts +84 -5
  199. package/dist/types/components/avatar/Avatar.d.ts +34 -6
  200. package/dist/types/components/avatar/AvatarGroup.d.ts +19 -1
  201. package/dist/types/components/badge/Badge.d.ts +37 -3
  202. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +31 -2
  203. package/dist/types/components/button/Button.d.ts +39 -7
  204. package/dist/types/components/button/ButtonGroup.d.ts +28 -3
  205. package/dist/types/components/button/ConfirmButton.d.ts +23 -3
  206. package/dist/types/components/button/ToggleButtonGroup.d.ts +39 -11
  207. package/dist/types/components/callout/Callout.d.ts +29 -3
  208. package/dist/types/components/card/Card.d.ts +44 -4
  209. package/dist/types/components/card/CardCover.d.ts +25 -0
  210. package/dist/types/components/card/FlipContent.d.ts +28 -0
  211. package/dist/types/components/chip/Chip.d.ts +34 -5
  212. package/dist/types/components/collapsable/Collapsable.d.ts +28 -2
  213. package/dist/types/components/divider/Divider.d.ts +30 -7
  214. package/dist/types/components/dropdown/Dropdown.d.ts +40 -1
  215. package/dist/types/components/dropdown/DropdownTool.d.ts +25 -0
  216. package/dist/types/components/empty/EmptyContent.d.ts +32 -3
  217. package/dist/types/components/icon/Icon.d.ts +40 -8
  218. package/dist/types/components/index.d.ts +3 -2
  219. package/dist/types/components/media/Media.d.ts +54 -0
  220. package/dist/types/components/menu/ContextMenu.d.ts +19 -1
  221. package/dist/types/components/menu/Menu.d.ts +29 -0
  222. package/dist/types/components/menu/MenuItem.d.ts +22 -2
  223. package/dist/types/components/menu/types.d.ts +9 -3
  224. package/dist/types/components/meter/Meter.d.ts +24 -0
  225. package/dist/types/components/navigator/Navigator.d.ts +29 -4
  226. package/dist/types/components/panel/Panel.d.ts +43 -4
  227. package/dist/types/components/panel/PanelGroup.d.ts +24 -0
  228. package/dist/types/components/panel/PanelStack.d.ts +31 -0
  229. package/dist/types/components/progress/ProgressBar.d.ts +23 -3
  230. package/dist/types/components/progress/ProgressCircle.d.ts +22 -3
  231. package/dist/types/components/tabpanel/Tab.d.ts +38 -4
  232. package/dist/types/components/tabpanel/TabPanel.d.ts +51 -2
  233. package/dist/types/context/Global.d.ts +24 -1
  234. package/dist/types/core/aside/Aside.d.ts +45 -6
  235. package/dist/types/core/boundary/ErrorBoundary.d.ts +18 -2
  236. package/dist/types/core/content/Content.d.ts +6 -1
  237. package/dist/types/core/headfoot/HeadFoot.d.ts +41 -9
  238. package/dist/types/core/page/Page.d.ts +32 -4
  239. package/dist/types/core/responsive/Responsive.d.ts +58 -3
  240. package/dist/types/core/section/Section.d.ts +18 -3
  241. package/dist/types/core/theme/ThemeProvider.d.ts +25 -5
  242. package/dist/types/core/viewport/Viewport.d.ts +15 -1
  243. package/dist/types/hooks/useControlledValue.d.ts +13 -2
  244. package/dist/types/hooks/useDebounce.d.ts +12 -0
  245. package/dist/types/hooks/useEffectDebugger.d.ts +49 -0
  246. package/dist/types/hooks/useIsDark.d.ts +8 -0
  247. package/dist/types/hooks/useIsRtl.d.ts +12 -0
  248. package/dist/types/hooks/useNavigator.d.ts +18 -1
  249. package/dist/types/hooks/useOverlayService.d.ts +28 -9
  250. package/dist/types/hooks/usePropToggle.d.ts +16 -5
  251. package/dist/types/hooks/useResize.d.ts +19 -1
  252. package/dist/types/hooks/useResizeObserver.d.ts +20 -1
  253. package/dist/types/hooks/useStepper.d.ts +14 -0
  254. package/dist/types/hooks/useStorage.d.ts +38 -0
  255. package/dist/types/index.d.ts +4 -0
  256. package/dist/types/overlays/alert/Alert.d.ts +16 -5
  257. package/dist/types/overlays/flyout/Flyout.d.ts +9 -4
  258. package/dist/types/overlays/message/Message.d.ts +16 -5
  259. package/dist/types/overlays/modal/Modal.d.ts +13 -4
  260. package/dist/types/overlays/toast/Toast.d.ts +16 -5
  261. package/dist/types/overlays/tooltip/Tooltip.d.ts +2 -2
  262. package/dist/types/types/icons.d.ts +17 -3
  263. package/dist/types/types/index.d.ts +20 -22
  264. package/dist/types/typography/Abbr.d.ts +34 -4
  265. package/dist/types/typography/Anchor.d.ts +42 -0
  266. package/dist/types/typography/Copy.d.ts +15 -0
  267. package/dist/types/typography/Mark.d.ts +22 -4
  268. package/dist/types/typography/Text.d.ts +27 -1
  269. package/dist/types/typography/Title.d.ts +16 -1
  270. package/dist/types/typography/index.d.ts +1 -1
  271. package/dist/types/utils/cloneElement.d.ts +1 -0
  272. package/dist/types/utils/getColor.d.ts +1 -4
  273. package/dist/types/utils/index.d.ts +1 -0
  274. package/package.json +14 -16
  275. package/src/components/actionLabel/ActionLabel.tsx +26 -8
  276. package/src/components/animations/Animations.tsx +115 -36
  277. package/src/components/avatar/Avatar.tsx +51 -15
  278. package/src/components/avatar/AvatarGroup.tsx +23 -5
  279. package/src/components/badge/Badge.tsx +50 -22
  280. package/src/components/breadcrumbs/Breadcrumbs.tsx +43 -10
  281. package/src/components/button/Button.tsx +74 -42
  282. package/src/components/button/ButtonGroup.tsx +33 -7
  283. package/src/components/button/ConfirmButton.tsx +31 -3
  284. package/src/components/button/ToggleButtonGroup.tsx +74 -47
  285. package/src/components/callout/Callout.tsx +55 -12
  286. package/src/components/card/Card.tsx +84 -25
  287. package/src/components/card/CardCover.tsx +36 -6
  288. package/src/components/card/FlipContent.tsx +90 -0
  289. package/src/components/chip/Chip.tsx +53 -25
  290. package/src/components/collapsable/Collapsable.tsx +33 -8
  291. package/src/components/divider/Divider.tsx +42 -16
  292. package/src/components/dropdown/Dropdown.tsx +47 -12
  293. package/src/components/dropdown/DropdownTool.tsx +27 -2
  294. package/src/components/empty/EmptyContent.tsx +49 -8
  295. package/src/components/icon/Icon.tsx +96 -18
  296. package/src/components/index.ts +3 -2
  297. package/src/components/media/Media.tsx +193 -104
  298. package/src/components/menu/ContextMenu.tsx +19 -0
  299. package/src/components/menu/Menu.tsx +87 -30
  300. package/src/components/menu/MenuItem.tsx +44 -19
  301. package/src/components/menu/types.ts +9 -8
  302. package/src/components/meter/Meter.tsx +27 -4
  303. package/src/components/navigator/Navigator.tsx +58 -9
  304. package/src/components/panel/Panel.tsx +53 -21
  305. package/src/components/panel/PanelGroup.tsx +25 -2
  306. package/src/components/panel/PanelStack.tsx +33 -2
  307. package/src/components/progress/ProgressBar.tsx +33 -14
  308. package/src/components/progress/ProgressCircle.tsx +29 -13
  309. package/src/components/tabpanel/Tab.tsx +47 -24
  310. package/src/components/tabpanel/TabPanel.tsx +79 -13
  311. package/src/context/Global.tsx +28 -1
  312. package/src/context/NotificationCenter.tsx +3 -3
  313. package/src/core/aside/Aside.tsx +56 -34
  314. package/src/core/boundary/ErrorBoundary.tsx +26 -8
  315. package/src/core/boundary/ErrorIcon.tsx +1 -2
  316. package/src/core/content/Content.tsx +7 -3
  317. package/src/core/headfoot/HeadFoot.tsx +44 -37
  318. package/src/core/page/Page.tsx +42 -20
  319. package/src/core/responsive/Responsive.tsx +66 -8
  320. package/src/core/section/Section.tsx +26 -4
  321. package/src/core/theme/ThemeProvider.tsx +35 -14
  322. package/src/core/viewport/Viewport.tsx +16 -3
  323. package/src/hooks/useControlledValue.tsx +12 -0
  324. package/src/hooks/useDebounce.ts +13 -1
  325. package/src/hooks/useEffectDebugger.ts +50 -2
  326. package/src/hooks/useIsDark.ts +8 -0
  327. package/src/hooks/useIsRtl.ts +12 -0
  328. package/src/hooks/useNavigator.tsx +28 -5
  329. package/src/hooks/useOverlayService.tsx +33 -8
  330. package/src/hooks/usePropToggle.ts +16 -5
  331. package/src/hooks/useResize.ts +19 -1
  332. package/src/hooks/useResizeObserver.ts +32 -9
  333. package/src/hooks/useStepper.tsx +68 -0
  334. package/src/hooks/useStorage.ts +38 -0
  335. package/src/hotkeys/HotKeyLabel.tsx +1 -1
  336. package/src/hotkeys/HotKeyWrapper.tsx +3 -1
  337. package/src/index.ts +5 -0
  338. package/src/overlays/alert/Alert.tsx +50 -34
  339. package/src/overlays/flyout/Flyout.tsx +73 -97
  340. package/src/overlays/message/Message.tsx +28 -9
  341. package/src/overlays/modal/Modal.tsx +36 -30
  342. package/src/overlays/toast/Toast.tsx +42 -30
  343. package/src/overlays/tooltip/Tooltip.tsx +43 -18
  344. package/src/types/global.d.ts +8 -0
  345. package/src/types/icons.ts +32 -6
  346. package/src/types/index.ts +261 -45
  347. package/src/typography/Abbr.tsx +45 -11
  348. package/src/typography/{Link.tsx → Anchor.tsx} +26 -14
  349. package/src/typography/Copy.tsx +15 -0
  350. package/src/typography/Mark.tsx +25 -10
  351. package/src/typography/Text.tsx +31 -13
  352. package/src/typography/Title.tsx +18 -7
  353. package/src/typography/index.ts +1 -1
  354. package/src/{overlays/tooltip/Tooltip.module.css → utils/cloneElement.ts} +21 -27
  355. package/src/utils/getColor.ts +1 -17
  356. package/src/utils/index.ts +1 -0
  357. package/css/index.js +0 -250
  358. package/css/tailwind/colors.ts +0 -158
  359. package/dist/cjs/components/actionLabel/ActionLabel.module.css +0 -1
  360. package/dist/cjs/components/animations/Animations.module.css +0 -1
  361. package/dist/cjs/components/avatar/Avatar.module.css +0 -1
  362. package/dist/cjs/components/badge/Badge.module.css +0 -1
  363. package/dist/cjs/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  364. package/dist/cjs/components/button/Button.module.css +0 -1
  365. package/dist/cjs/components/card/Card.module.css +0 -1
  366. package/dist/cjs/components/chip/Chip.module.css +0 -1
  367. package/dist/cjs/components/collapsable/Collapsable.module.css +0 -1
  368. package/dist/cjs/components/dropdown/Dropdown.module.css +0 -1
  369. package/dist/cjs/components/icon/Icon.module.css +0 -1
  370. package/dist/cjs/components/media/Media.module.css +0 -1
  371. package/dist/cjs/components/menu/Menu.module.css +0 -1
  372. package/dist/cjs/components/meter/Meter.module.css +0 -1
  373. package/dist/cjs/components/panel/Panel.module.css +0 -1
  374. package/dist/cjs/components/progress/Progress.module.css +0 -1
  375. package/dist/cjs/components/tabpanel/TabPanel.module.css +0 -1
  376. package/dist/cjs/core/aside/Aside.module.css +0 -1
  377. package/dist/cjs/core/boundary/ErrorBoundary.module.css +0 -1
  378. package/dist/cjs/core/content/Content.module.css +0 -1
  379. package/dist/cjs/core/headfoot/HeadFoot.module.css +0 -1
  380. package/dist/cjs/core/page/Page.module.css +0 -1
  381. package/dist/cjs/core/responsive/Responsive.module.css +0 -1
  382. package/dist/cjs/core/section/Section.module.css +0 -1
  383. package/dist/cjs/core/theme/Theme.module.css +0 -1
  384. package/dist/cjs/core/viewport/Viewport.module.css +0 -1
  385. package/dist/cjs/overlays/alert/Alert.module.css +0 -1
  386. package/dist/cjs/overlays/flyout/Flyout.module.css +0 -1
  387. package/dist/cjs/overlays/message/Message.module.css +0 -1
  388. package/dist/cjs/overlays/modal/Modal.module.css +0 -1
  389. package/dist/cjs/overlays/toast/Toast.module.css +0 -1
  390. package/dist/cjs/overlays/tooltip/Tooltip.module.css +0 -1
  391. package/dist/cjs/typography/Typography.module.css +0 -1
  392. package/dist/esm/components/actionLabel/ActionLabel.module.css +0 -1
  393. package/dist/esm/components/animations/Animations.module.css +0 -1
  394. package/dist/esm/components/avatar/Avatar.module.css +0 -1
  395. package/dist/esm/components/badge/Badge.module.css +0 -1
  396. package/dist/esm/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  397. package/dist/esm/components/button/Button.module.css +0 -1
  398. package/dist/esm/components/card/Card.module.css +0 -1
  399. package/dist/esm/components/chip/Chip.module.css +0 -1
  400. package/dist/esm/components/collapsable/Collapsable.module.css +0 -1
  401. package/dist/esm/components/dropdown/Dropdown.module.css +0 -1
  402. package/dist/esm/components/icon/Icon.module.css +0 -1
  403. package/dist/esm/components/media/Media.module.css +0 -1
  404. package/dist/esm/components/menu/Menu.module.css +0 -1
  405. package/dist/esm/components/meter/Meter.module.css +0 -1
  406. package/dist/esm/components/panel/Panel.module.css +0 -1
  407. package/dist/esm/components/progress/Progress.module.css +0 -1
  408. package/dist/esm/components/tabpanel/TabPanel.module.css +0 -1
  409. package/dist/esm/core/aside/Aside.module.css +0 -1
  410. package/dist/esm/core/boundary/ErrorBoundary.module.css +0 -1
  411. package/dist/esm/core/content/Content.module.css +0 -1
  412. package/dist/esm/core/headfoot/HeadFoot.module.css +0 -1
  413. package/dist/esm/core/page/Page.module.css +0 -1
  414. package/dist/esm/core/responsive/Responsive.module.css +0 -1
  415. package/dist/esm/core/section/Section.module.css +0 -1
  416. package/dist/esm/core/theme/Theme.module.css +0 -1
  417. package/dist/esm/core/viewport/Viewport.module.css +0 -1
  418. package/dist/esm/overlays/alert/Alert.module.css +0 -1
  419. package/dist/esm/overlays/flyout/Flyout.module.css +0 -1
  420. package/dist/esm/overlays/message/Message.module.css +0 -1
  421. package/dist/esm/overlays/modal/Modal.module.css +0 -1
  422. package/dist/esm/overlays/toast/Toast.module.css +0 -1
  423. package/dist/esm/overlays/tooltip/Tooltip.module.css +0 -1
  424. package/dist/esm/typography/Typography.module.css +0 -1
  425. package/dist/types/typography/Link.d.ts +0 -25
@@ -30,15 +30,11 @@ import {
30
30
  useInteractions,
31
31
  useRole,
32
32
  } from "@floating-ui/react";
33
+ import { isString } from "@react-fabric/utilities";
33
34
  import classNames from "classnames";
34
- import {
35
- Fragment,
36
- useCallback,
37
- useEffect,
38
- type PropsWithChildren,
39
- } from "react";
35
+ import { isValidElement, useCallback, useEffect } from "react";
40
36
  import { Loading } from "../../components/animations/Animations";
41
- import { Icon } from "../../components/icon/Icon";
37
+ import { getIconProps, Icon, type IconProps } from "../../components/icon/Icon";
42
38
  import { Header } from "../../core/headfoot/HeadFoot";
43
39
  import { HotKeyWrapper } from "../../hotkeys/HotKeyWrapper";
44
40
  import {
@@ -46,17 +42,12 @@ import {
46
42
  type CallbackReturn,
47
43
  type ChildrenProp,
48
44
  type Elements,
49
- type IconProps,
50
45
  type TestProps,
51
46
  } from "../../types";
52
47
  import { CoreIcons } from "../../types/icons";
53
- import classes from "./Flyout.module.css";
54
48
 
55
- export interface FlyoutProps
56
- extends AriaProps,
57
- TestProps,
58
- IconProps,
59
- ChildrenProp {
49
+ export interface FlyoutProps extends AriaProps, TestProps, ChildrenProp {
50
+ icon?: IconProps;
60
51
  /**
61
52
  * flyout alignment
62
53
  */
@@ -93,6 +84,10 @@ export interface FlyoutProps
93
84
  * minimum width
94
85
  */
95
86
  minWidth?: string | number;
87
+ /**
88
+ * portal root element
89
+ */
90
+ root?: HTMLElement;
96
91
  /**
97
92
  * hide backdrop mask
98
93
  */
@@ -113,10 +108,7 @@ export interface FlyoutProps
113
108
 
114
109
  export const Flyout = ({
115
110
  icon,
116
- iconBg,
117
- iconColor,
118
111
  iconClassName,
119
- rtlFlip,
120
112
  title,
121
113
  actions,
122
114
  closeOnClick,
@@ -128,6 +120,7 @@ export const Flyout = ({
128
120
  size,
129
121
  width,
130
122
  minWidth,
123
+ root,
131
124
  hideMask,
132
125
  align = "start",
133
126
  ...aria
@@ -140,6 +133,7 @@ export const Flyout = ({
140
133
  });
141
134
  const dismiss = useDismiss(context, {
142
135
  outsidePressEvent: "mousedown",
136
+ outsidePress: !hideMask,
143
137
  escapeKey: true,
144
138
  });
145
139
  const role = useRole(context);
@@ -173,9 +167,6 @@ export const Flyout = ({
173
167
  useEffect(() => {
174
168
  setTimeout(() => {
175
169
  refs.floating.current && (refs.floating.current.dataset.show = "true");
176
- refs.floating.current
177
- ?.querySelector<HTMLElement>('[role="dialog"]')
178
- ?.focus();
179
170
  }, 50);
180
171
  }, []);
181
172
 
@@ -193,91 +184,76 @@ export const Flyout = ({
193
184
  [closeOnClick, handleClose],
194
185
  );
195
186
 
196
- const Wrapper = useCallback(
197
- ({ children }: PropsWithChildren) => {
198
- if (hideMask) return <Fragment>{children}</Fragment>;
199
-
200
- return (
187
+ return (
188
+ <FloatingPortal root={root}>
189
+ {!hideMask && (
201
190
  <FloatingOverlay
202
191
  lockScroll
203
- style={{ zIndex: "var(--z-overlay-mask)" }}
204
- className="bg-base/10 backdrop-blur-sm transition-all"
192
+ style={{ zIndex: "var(--z-overlay-mask)", overflow: "hidden" }}
193
+ className="bg-tint-100/10 backdrop-blur-sm transition-all"
194
+ />
195
+ )}
196
+ <FloatingFocusManager context={context}>
197
+ <div
198
+ data-align={align}
199
+ className={classNames(
200
+ "fabric-flyout",
201
+ "fixed inset-y-0 overflow-hidden flex flex-col flex-nowrap pointer-events-auto shadow-xl",
202
+ align === "start" ? "start-0" : "end-0",
203
+ size === "sm" && "w-[20rem]",
204
+ size === "md" && "w-[40rem]",
205
+ size === "lg" && "w-[60vw]",
206
+ size === "xl" && "w-[80vw]",
207
+ )}
208
+ style={{
209
+ width,
210
+ minWidth,
211
+ }}
212
+ onMouseUpCapture={tryClosing}
213
+ ref={refs.setFloating}
214
+ {...getFloatingProps()}
215
+ {...aria}
216
+ {...aria}
205
217
  >
206
- {children}
207
- </FloatingOverlay>
208
- );
209
- },
210
- [hideMask, handleClose],
211
- );
212
-
213
- return (
214
- <FloatingPortal>
215
- <Wrapper>
216
- <FloatingFocusManager context={context}>
217
- <Wrapper>
218
+ <HotKeyWrapper>
219
+ <Header
220
+ flex
221
+ align="center"
222
+ className={classNames("fabric-flyoutHeader", headerClassName)}
223
+ >
224
+ {isString(icon) && (
225
+ <Icon
226
+ className={classNames(iconClassName, "p-1")}
227
+ {...getIconProps(icon)}
228
+ />
229
+ )}
230
+ {isValidElement(icon) && icon}
231
+ <label className="flex-1 truncate py-2 px-1">{title}</label>
232
+ {actions}
233
+ <Icon
234
+ data-ref="panelClose"
235
+ className={classNames(
236
+ "fabric-panelAction",
237
+ "cursor-pointer p-1 text-xl self-center",
238
+ )}
239
+ icon={CoreIcons.close}
240
+ onClick={() => handleClose(false)}
241
+ />
242
+ </Header>
243
+ {loading && <Loading />}
218
244
  <div
219
- data-align={align}
245
+ role="dialog"
220
246
  className={classNames(
221
- classes.flyout,
222
- "fixed inset-y-0 overflow-hidden flex flex-col flex-nowrap pointer-events-auto shadow-xl",
223
- align === "start" ? "start-0" : "end-0",
224
- size === "sm" && "w-[20rem]",
225
- size === "md" && "w-[40rem]",
226
- size === "lg" && "w-[60vw]",
227
- size === "xl" && "w-[80vw]",
247
+ "fabric-flyoutBody",
248
+ "flex-1 grid overflow-hidden",
228
249
  )}
229
- style={{
230
- width,
231
- minWidth,
232
- }}
233
- onMouseUpCapture={tryClosing}
234
- ref={refs.setFloating}
235
- {...getFloatingProps()}
236
- {...aria}
237
- {...aria}
250
+ {...({ tabIndex: 0 } as AnyObject)}
238
251
  >
239
- <HotKeyWrapper>
240
- <Header
241
- flex
242
- className={classNames(classes.flyoutHeader, headerClassName)}
243
- >
244
- {icon && (
245
- <Icon
246
- icon={icon}
247
- bg={iconBg}
248
- color={iconColor}
249
- className={classNames(iconClassName, "p-1")}
250
- rtlFlip={rtlFlip}
251
- />
252
- )}
253
- <label className="flex-1 truncate py-2 px-1">{title}</label>
254
- {actions}
255
- <Icon
256
- data-ref="panelClose"
257
- className={classNames(
258
- classes.panelAction,
259
- "cursor-pointer p-1 text-xl self-stretch",
260
- )}
261
- icon={CoreIcons.close}
262
- onClick={() => handleClose(false)}
263
- />
264
- </Header>
265
- {loading && <Loading />}
266
- <div
267
- role="dialog"
268
- className={classNames(
269
- classes.flyoutBody,
270
- "flex-1 grid overflow-hidden",
271
- )}
272
- {...({ tabIndex: 0 } as AnyObject)}
273
- >
274
- {children}
275
- </div>
276
- </HotKeyWrapper>
252
+ {children}
277
253
  </div>
278
- </Wrapper>
279
- </FloatingFocusManager>
280
- </Wrapper>
254
+ </HotKeyWrapper>
255
+ </div>
256
+ </FloatingFocusManager>
281
257
  </FloatingPortal>
282
258
  );
283
259
  };
@@ -24,11 +24,22 @@
24
24
  import classNames from "classnames";
25
25
  import { useCallback, useLayoutEffect, useRef } from "react";
26
26
  import { Icon } from "../../components/icon/Icon";
27
- import { type ColorType, type Elements, type IconProps } from "../../types";
28
- import { getBgClass, getColorClass } from "../../utils";
29
- import classes from "./Message.module.css";
27
+ import { type ColorState, type Elements } from "../../types";
28
+ import { getColor } from "../../utils";
30
29
 
31
- export interface MessageProps extends Omit<IconProps, "iconBg" | "iconColor"> {
30
+ export interface MessageProps {
31
+ /**
32
+ * svg path / webfont className / 1-4 letter text
33
+ */
34
+ icon: string;
35
+ /**
36
+ * icon image source URL, if failed to load then shows icon
37
+ */
38
+ iconSrc?: string;
39
+ /**
40
+ * flip icon in rtl
41
+ */
42
+ rtlFlip?: boolean;
32
43
  /**
33
44
  * message title
34
45
  */
@@ -40,7 +51,7 @@ export interface MessageProps extends Omit<IconProps, "iconBg" | "iconColor"> {
40
51
  /**
41
52
  * theme color
42
53
  */
43
- color?: ColorType;
54
+ color?: ColorState;
44
55
  /**
45
56
  * extra action button
46
57
  */
@@ -52,9 +63,11 @@ export const Message = ({
52
63
  message,
53
64
  color,
54
65
  icon,
66
+ iconSrc,
55
67
  rtlFlip,
56
68
  actions,
57
69
  // @ts-expect-error internal prop
70
+ // eslint-disable-next-line react/prop-types --- IGNORE ---
58
71
  onClose,
59
72
  }: MessageProps) => {
60
73
  const elRef = useRef<HTMLDivElement>(null);
@@ -77,14 +90,20 @@ export const Message = ({
77
90
  return (
78
91
  <div
79
92
  className={classNames(
80
- classes.message,
81
- color ? getBgClass(color + "-300") : "bg-invert",
82
- color ? getColorClass(color + "-900") : "text-invert",
93
+ "fabric-message",
83
94
  "flex flex-nowrap gap-1 px-8 relative justify-center max-w-md pointer-events-auto rounded mb-2 select-none",
84
95
  )}
96
+ style={{
97
+ backgroundColor: color
98
+ ? getColor(color + "-300")
99
+ : "var(--bg-color-invert)",
100
+ color: color ? getColor(color + "-900") : "var(--text-color-invert)",
101
+ }}
85
102
  ref={elRef}
86
103
  >
87
- {icon && <Icon icon={icon} size="md" rtlFlip={rtlFlip} />}
104
+ {icon && (
105
+ <Icon icon={icon} iconSrc={iconSrc} size="md" rtlFlip={rtlFlip} />
106
+ )}
88
107
  {title && <div className="font-medium">{title}</div>}
89
108
  <div className="truncate flex-initial">{message}</div>
90
109
  {actions && (
@@ -30,10 +30,11 @@ import {
30
30
  useInteractions,
31
31
  useRole,
32
32
  } from "@floating-ui/react";
33
+ import { isString } from "@react-fabric/utilities";
33
34
  import classNames from "classnames";
34
- import { useCallback, useEffect } from "react";
35
+ import { isValidElement, useCallback, useEffect } from "react";
35
36
  import { Loading } from "../../components/animations/Animations";
36
- import { Icon } from "../../components/icon/Icon";
37
+ import { getIconProps, Icon, type IconProps } from "../../components/icon/Icon";
37
38
  import { Header } from "../../core/headfoot/HeadFoot";
38
39
  import { HotKeyWrapper } from "../../hotkeys/HotKeyWrapper";
39
40
  import {
@@ -41,17 +42,12 @@ import {
41
42
  type CallbackReturn,
42
43
  type ChildrenProp,
43
44
  type Elements,
44
- type IconProps,
45
45
  type TestProps,
46
46
  } from "../../types";
47
47
  import { CoreIcons } from "../../types/icons";
48
- import classes from "./Modal.module.css";
49
48
 
50
- export interface ModalProps
51
- extends AriaProps,
52
- TestProps,
53
- IconProps,
54
- ChildrenProp {
49
+ export interface ModalProps extends AriaProps, TestProps, ChildrenProp {
50
+ icon?: IconProps;
55
51
  /**
56
52
  * header className
57
53
  */
@@ -92,6 +88,14 @@ export interface ModalProps
92
88
  * minimum width
93
89
  */
94
90
  minWidth?: string | number;
91
+ /**
92
+ * portal root element
93
+ */
94
+ root?: HTMLElement;
95
+ /**
96
+ * hide mask background
97
+ */
98
+ hideMask?: boolean;
95
99
  /**
96
100
  * close handler
97
101
  */
@@ -104,10 +108,7 @@ export interface ModalProps
104
108
 
105
109
  export const Modal = ({
106
110
  icon,
107
- iconBg,
108
- iconColor,
109
111
  iconClassName,
110
- rtlFlip,
111
112
  title,
112
113
  actions,
113
114
  headerClassName,
@@ -115,7 +116,9 @@ export const Modal = ({
115
116
  onBeforeClose,
116
117
  children,
117
118
  loading,
119
+ root,
118
120
  size,
121
+ hideMask,
119
122
  width,
120
123
  height,
121
124
  minHeight,
@@ -163,27 +166,31 @@ export const Modal = ({
163
166
  useEffect(() => {
164
167
  setTimeout(() => {
165
168
  refs.floating.current && (refs.floating.current.dataset.show = "true");
166
- refs.floating.current
167
- ?.querySelector<HTMLElement>("[role='dialog']")
168
- ?.focus();
169
169
  }, 50);
170
170
  }, []);
171
171
 
172
172
  return (
173
- <FloatingPortal>
173
+ <FloatingPortal root={root}>
174
174
  <FloatingOverlay
175
175
  lockScroll
176
- style={{ zIndex: "var(--z-overlay-mask)" }}
177
- className="bg-base/50 backdrop-blur-sm grid place-items-center"
176
+ style={{
177
+ zIndex: "var(--z-overlay-mask)",
178
+ position: "absolute",
179
+ overflow: "hidden",
180
+ }}
181
+ className={classNames(
182
+ "grid place-items-center p-16",
183
+ !hideMask && "bg-tint-100/20 backdrop-blur-sm",
184
+ )}
178
185
  >
179
186
  <FloatingFocusManager context={context}>
180
187
  <dialog
181
188
  className={classNames(
182
- classes.modal,
189
+ "fabric-modal",
183
190
  "rounded-capped relative overflow-hidden flex flex-col flex-nowrap",
184
- "ring-1 ring-tint-100 ring-offset-1 focus-within:ring-primary-300 shadow-xl",
191
+ "ring-2 ring-offset-2 ring-tint-100 focus-within:ring-primary-300 shadow-xl",
185
192
  size === "sm" && "w-[20rem]",
186
- size === "md" && "w-[40rem]",
193
+ size === "md" && "w-160",
187
194
  size === "lg" && "w-[60vw]",
188
195
  size === "xl" && "w-[80vw]",
189
196
  size === "screen" && "w-screen h-screen",
@@ -201,24 +208,23 @@ export const Modal = ({
201
208
  <HotKeyWrapper>
202
209
  <Header
203
210
  flex
204
- className={classNames(classes.modalHeader, headerClassName)}
211
+ align="center"
212
+ className={classNames("fabric-modalHeader", headerClassName)}
205
213
  >
206
- {icon && (
214
+ {isString(icon) && (
207
215
  <Icon
208
- icon={icon}
209
- bg={iconBg}
210
- color={iconColor}
211
216
  className={classNames(iconClassName, "p-1")}
212
- rtlFlip={rtlFlip}
217
+ {...getIconProps(icon)}
213
218
  />
214
219
  )}
220
+ {isValidElement(icon) && icon}
215
221
  <label className="flex-1 truncate py-2 px-1">{title}</label>
216
222
  {actions}
217
223
  <Icon
218
224
  data-ref="panelClose"
219
225
  className={classNames(
220
- classes.panelAction,
221
- "cursor-pointer p-1 text-xl self-stretch",
226
+ "fabric-panelAction",
227
+ "cursor-pointer p-1 text-xl self-center",
222
228
  )}
223
229
  icon={CoreIcons.close}
224
230
  onClick={() => handleClose(false)}
@@ -228,7 +234,7 @@ export const Modal = ({
228
234
  <div
229
235
  role="dialog"
230
236
  className={classNames(
231
- classes.modalBody,
237
+ "fabric-modalBody",
232
238
  "flex-1 grid overflow-hidden",
233
239
  )}
234
240
  {...({ tabIndex: 0 } as AnyObject)}
@@ -27,16 +27,27 @@ import { useTranslation } from "react-i18next";
27
27
  import { AnimationIndicator } from "../../components/animations/Animations";
28
28
  import { Button } from "../../components/button/Button";
29
29
  import { Icon } from "../../components/icon/Icon";
30
- import { type ColorType, type Elements, type IconProps } from "../../types";
30
+ import { type ColorState, type Elements } from "../../types";
31
31
  import { CoreIcons } from "../../types/icons";
32
- import { getBgClass, getBorderClass, getColorClass } from "../../utils";
33
- import classes from "./Toast.module.css";
32
+ import { getColor } from "../../utils";
34
33
 
35
- export interface ToastProps extends Omit<IconProps, "iconBg" | "iconColor"> {
34
+ export interface ToastProps {
36
35
  /**
37
36
  * toast type
38
37
  */
39
38
  type?: "alert" | "confirm";
39
+ /**
40
+ * svg path / webfont className / 1-4 letter text
41
+ */
42
+ icon?: string;
43
+ /**
44
+ * icon image source URL, if failed to load then shows icon
45
+ */
46
+ iconSrc?: string;
47
+ /**
48
+ * flip icon in rtl
49
+ */
50
+ rtlFlip?: boolean;
40
51
  /**
41
52
  * toast title
42
53
  */
@@ -48,7 +59,7 @@ export interface ToastProps extends Omit<IconProps, "iconBg" | "iconColor"> {
48
59
  /**
49
60
  * theme color
50
61
  */
51
- color?: ColorType;
62
+ color?: ColorState;
52
63
  /**
53
64
  * extra action button
54
65
  */
@@ -68,11 +79,14 @@ export const Toast = ({
68
79
  message,
69
80
  color = "primary",
70
81
  icon,
82
+ iconSrc,
71
83
  rtlFlip,
72
84
  actions,
73
85
  // @ts-expect-error internal prop
86
+ // eslint-disable-next-line react/prop-types --- IGNORE ---
74
87
  onClose,
75
88
  // @ts-expect-error internal prop
89
+ // eslint-disable-next-line react/prop-types --- IGNORE ---
76
90
  onCloseAll,
77
91
  type,
78
92
  okLabel,
@@ -83,39 +97,30 @@ export const Toast = ({
83
97
  const iconType = useMemo(() => {
84
98
  if (icon)
85
99
  return (
86
- <Icon icon={icon} size="md" rtlFlip={rtlFlip} color={color + "-600"} />
100
+ <Icon
101
+ icon={icon}
102
+ iconSrc={iconSrc}
103
+ size="md"
104
+ rtlFlip={rtlFlip}
105
+ color={color + "-600"}
106
+ />
87
107
  );
88
108
  switch (color) {
89
109
  case "danger":
90
- return (
91
- <AnimationIndicator
92
- type="cross"
93
- className={getColorClass(color + "-600")}
94
- />
95
- );
110
+ return <AnimationIndicator type="cross" color={"danger-600"} />;
96
111
  case "success":
97
- return (
98
- <AnimationIndicator
99
- type="check"
100
- className={getColorClass(color + "-600")}
101
- />
102
- );
112
+ return <AnimationIndicator type="check" color={"success-600"} />;
103
113
  case "warning":
104
- return (
105
- <AnimationIndicator
106
- type="exclaim"
107
- className={getColorClass(color + "-600")}
108
- />
109
- );
114
+ return <AnimationIndicator type="exclaim" color={"warning-600"} />;
110
115
  default:
111
116
  return (
112
117
  <AnimationIndicator
113
118
  type={type === "confirm" ? "question" : "info"}
114
- className={getColorClass(color + "-600")}
119
+ color={`${color}-600`}
115
120
  />
116
121
  );
117
122
  }
118
- }, [color, type, icon]);
123
+ }, [color, type, icon, iconSrc, rtlFlip]);
119
124
 
120
125
  const elRef = useRef<HTMLDivElement>(null);
121
126
  const handleClose = useCallback(
@@ -138,22 +143,29 @@ export const Toast = ({
138
143
  <div
139
144
  role="alert"
140
145
  className={classNames(
141
- classes.toast,
142
- getBorderClass(color + "-300"),
146
+ "fabric-toast",
143
147
  "flex flex-nowrap max-w-sm bg-base min-w-72 border pointer-events-auto relative overflow-hidden rounded-capped mt-4 select-none",
144
148
  )}
149
+ style={{
150
+ borderColor: getColor(color + "-300"),
151
+ }}
145
152
  ref={elRef}
146
153
  >
147
154
  <div
148
- className={classNames("flex-initial p-2", getBgClass(color + "-100"))}
155
+ className={classNames("flex-initial p-2")}
156
+ style={{
157
+ backgroundColor: getColor(color + "-300"),
158
+ }}
149
159
  >
150
160
  {iconType}
151
161
  </div>
152
162
  <div
153
163
  className={classNames(
154
- getBgClass(color + "-50/50"),
155
164
  "flex flex-col flex-1 flex-nowrap overflow-hidden p-2",
156
165
  )}
166
+ style={{
167
+ backgroundColor: getColor(color + "-50"),
168
+ }}
157
169
  >
158
170
  <div className="flex flex-nowrap gap-2 items-start">
159
171
  <div className="font-medium flex-1">{title}</div>