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

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