@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
@@ -45,13 +45,13 @@ import {
45
45
  useMemo,
46
46
  useRef,
47
47
  useState,
48
+ type MouseEvent,
48
49
  type ReactElement,
49
50
  } from "react";
50
51
  import { Icon } from "../../components/icon/Icon";
51
52
  import { useIsRtl } from "../../hooks/useIsRtl";
52
53
  import { type RefProp, type TooltipType } from "../../types";
53
- import { CoreIcons } from "../../types/icons";
54
- import classes from "./Tooltip.module.css";
54
+ import { getColor } from "../../utils";
55
55
 
56
56
  export interface TooltipProps extends TooltipType, RefProp {
57
57
  /**
@@ -63,7 +63,7 @@ export interface TooltipProps extends TooltipType, RefProp {
63
63
  */
64
64
  copyContent?: boolean | string;
65
65
  disabled?: boolean;
66
- children: ReactElement;
66
+ children: ReactElement<KeyValue>;
67
67
  }
68
68
 
69
69
  export const getTooltipProps = (
@@ -82,6 +82,7 @@ export const Tooltip = ({
82
82
  ref,
83
83
  children,
84
84
  color,
85
+ textColor,
85
86
  content,
86
87
  open,
87
88
  copyContent,
@@ -125,7 +126,7 @@ export const Tooltip = ({
125
126
  });
126
127
 
127
128
  const hover = useHover(context, {
128
- restMs: 250,
129
+ restMs: 500,
129
130
  delay: { open: 1000 },
130
131
  handleClose: copyContent ? safePolygon({ buffer: 1 }) : undefined,
131
132
  });
@@ -146,17 +147,18 @@ export const Tooltip = ({
146
147
  const copyEl = useMemo(() => {
147
148
  if (copyContent) {
148
149
  const copyText: AnyObject = isString(copyContent) ? copyContent : content;
149
- const handler = () => {
150
+ const handler = (e: MouseEvent) => {
150
151
  setIsOpen(false);
152
+ e.stopPropagation();
151
153
  void navigator.clipboard.writeText(copyText.toString());
152
154
  };
153
155
  return (
154
156
  <span
155
157
  role="none"
156
- className="ms-2 cursor-pointer text-invert flex-content opacity-75 hover:opacity-90 active:opacity-60"
158
+ className="ms-2 cursor-pointer text-dimmed flex-content opacity-75 hover:opacity-90 active:opacity-60"
157
159
  onClick={handler}
158
160
  >
159
- <Icon icon={CoreIcons.copy} />
161
+ <Icon icon="icon-[mdi--content-copy]" />
160
162
  </span>
161
163
  );
162
164
  }
@@ -173,25 +175,47 @@ export const Tooltip = ({
173
175
  <FloatingPortal>
174
176
  <dfn
175
177
  data-ref="tooltip"
176
- data-color={color}
177
178
  className={classNames(
178
- classes.tooltip,
179
- "select-none text-sm not-italic flex py-1 px-2 rounded shadow-md bg-current",
179
+ "fabric-tooltip z-(--z-tooltip)",
180
+ "select-none text-sm not-italic flex py-1 px-2 max-w-lg! rounded shadow-md bg-muted",
180
181
  )}
181
182
  ref={refs.setFloating}
182
- style={floatingStyles}
183
+ style={{
184
+ color: textColor ? getColor(textColor) : undefined,
185
+ backgroundColor: color ? getColor(color) : undefined,
186
+ ...floatingStyles,
187
+ }}
183
188
  {...getFloatingProps()}
184
189
  >
185
- <span
186
- className={classNames(
187
- "font-medium text-invert flex-1",
188
- isString(content) && "whitespace-pre-wrap",
189
- )}
190
- >
191
- {content}
192
- </span>
190
+ {isValidElement(content) && content}
191
+ {isString(content) && (
192
+ <span
193
+ className={classNames(
194
+ "font-medium flex-1 break-all whitespace-pre-wrap mixed-lang",
195
+ !textColor && "contrast",
196
+ )}
197
+ style={{
198
+ color: textColor
199
+ ? undefined
200
+ : color
201
+ ? getColor(color)
202
+ : "var(--bg-color-muted)",
203
+ }}
204
+ >
205
+ {content}
206
+ </span>
207
+ )}
193
208
  {copyEl}
194
- <FloatingArrow ref={arrowRef} context={context} />
209
+ <FloatingArrow
210
+ ref={arrowRef}
211
+ context={context}
212
+ strokeWidth={0.5}
213
+ className="fill-muted stroke-dimmed"
214
+ style={{
215
+ stroke: color ? getColor(color) : undefined,
216
+ fill: color ? getColor(color) : undefined,
217
+ }}
218
+ />
195
219
  </dfn>
196
220
  </FloatingPortal>
197
221
  )}
@@ -45,6 +45,14 @@ declare module "*.png" {
45
45
  const content: any;
46
46
  export default content;
47
47
  }
48
+ declare module "*.jpg" {
49
+ const content: any;
50
+ export default content;
51
+ }
52
+ declare module "*.jpeg" {
53
+ const content: any;
54
+ export default content;
55
+ }
48
56
  declare module "*.svg" {
49
57
  const content: any;
50
58
  export default content;
@@ -25,33 +25,258 @@
25
25
  import { type Placement } from "@floating-ui/react";
26
26
  import { type JSXElementConstructor, type Ref } from "react";
27
27
 
28
+ export type ModalProps<P = unknown> = P & {
29
+ onClose: (...args: AnyObject) => void;
30
+ };
31
+
28
32
  export type SizeType = "xs" | "sm" | "md" | "lg" | "xl";
29
33
 
30
34
  export type SizeTypeWithZero = "xs" | "sm" | "md" | "lg" | "xl" | 0;
31
35
 
32
- export type ColorType =
36
+ export type ColorState =
37
+ | "default"
33
38
  | "primary"
34
39
  | "accent"
40
+ | "muted"
35
41
  | "info"
36
42
  | "danger"
37
43
  | "success"
38
44
  | "warning";
39
45
 
46
+ export type ColorType =
47
+ | "primary-50"
48
+ | "primary-100"
49
+ | "primary-200"
50
+ | "primary-300"
51
+ | "primary-400"
52
+ | "primary-500"
53
+ | "primary-600"
54
+ | "primary-700"
55
+ | "primary-800"
56
+ | "primary-900"
57
+ | "primary-950"
58
+ | "accent-50"
59
+ | "accent-100"
60
+ | "accent-200"
61
+ | "accent-300"
62
+ | "accent-400"
63
+ | "accent-500"
64
+ | "accent-600"
65
+ | "accent-700"
66
+ | "accent-800"
67
+ | "accent-900"
68
+ | "accent-950"
69
+ | "info-50"
70
+ | "info-100"
71
+ | "info-200"
72
+ | "info-300"
73
+ | "info-400"
74
+ | "info-500"
75
+ | "info-600"
76
+ | "info-700"
77
+ | "info-800"
78
+ | "info-900"
79
+ | "info-950"
80
+ | "danger-50"
81
+ | "danger-100"
82
+ | "danger-200"
83
+ | "danger-300"
84
+ | "danger-400"
85
+ | "danger-500"
86
+ | "danger-600"
87
+ | "danger-700"
88
+ | "danger-800"
89
+ | "danger-900"
90
+ | "danger-950"
91
+ | "success-50"
92
+ | "success-100"
93
+ | "success-200"
94
+ | "success-300"
95
+ | "success-400"
96
+ | "success-500"
97
+ | "success-600"
98
+ | "success-700"
99
+ | "success-800"
100
+ | "success-900"
101
+ | "success-950"
102
+ | "warning-50"
103
+ | "warning-100"
104
+ | "warning-200"
105
+ | "warning-300"
106
+ | "warning-400"
107
+ | "warning-500"
108
+ | "warning-600"
109
+ | "warning-700"
110
+ | "warning-800"
111
+ | "warning-900"
112
+ | "warning-950";
113
+
40
114
  export type PaletteType =
41
- | "scarlet"
42
- | "pumpkin"
43
- | "marigold"
44
- | "avacado"
45
- | "jade"
46
- | "denim"
47
- | "iris"
48
- | "lilac"
49
- | "coral"
50
- | "wood"
51
- | "silver"
52
- | "steel"
53
- | "olive"
54
- | "sand";
115
+ | "scarlet-50"
116
+ | "scarlet-100"
117
+ | "scarlet-200"
118
+ | "scarlet-300"
119
+ | "scarlet-400"
120
+ | "scarlet-500"
121
+ | "scarlet-600"
122
+ | "scarlet-700"
123
+ | "scarlet-800"
124
+ | "scarlet-900"
125
+ | "scarlet-950"
126
+ | "pumpkin-50"
127
+ | "pumpkin-100"
128
+ | "pumpkin-200"
129
+ | "pumpkin-300"
130
+ | "pumpkin-400"
131
+ | "pumpkin-500"
132
+ | "pumpkin-600"
133
+ | "pumpkin-700"
134
+ | "pumpkin-800"
135
+ | "pumpkin-900"
136
+ | "pumpkin-950"
137
+ | "marigold-50"
138
+ | "marigold-100"
139
+ | "marigold-200"
140
+ | "marigold-300"
141
+ | "marigold-400"
142
+ | "marigold-500"
143
+ | "marigold-600"
144
+ | "marigold-700"
145
+ | "marigold-800"
146
+ | "marigold-900"
147
+ | "marigold-950"
148
+ | "avacado-50"
149
+ | "avacado-100"
150
+ | "avacado-200"
151
+ | "avacado-300"
152
+ | "avacado-400"
153
+ | "avacado-500"
154
+ | "avacado-600"
155
+ | "avacado-700"
156
+ | "avacado-800"
157
+ | "avacado-900"
158
+ | "avacado-950"
159
+ | "jade-50"
160
+ | "jade-100"
161
+ | "jade-200"
162
+ | "jade-300"
163
+ | "jade-400"
164
+ | "jade-500"
165
+ | "jade-600"
166
+ | "jade-700"
167
+ | "jade-800"
168
+ | "jade-900"
169
+ | "jade-950"
170
+ | "denim-50"
171
+ | "denim-100"
172
+ | "denim-200"
173
+ | "denim-300"
174
+ | "denim-400"
175
+ | "denim-500"
176
+ | "denim-600"
177
+ | "denim-700"
178
+ | "denim-800"
179
+ | "denim-900"
180
+ | "denim-950"
181
+ | "iris-50"
182
+ | "iris-100"
183
+ | "iris-200"
184
+ | "iris-300"
185
+ | "iris-400"
186
+ | "iris-500"
187
+ | "iris-600"
188
+ | "iris-700"
189
+ | "iris-800"
190
+ | "iris-900"
191
+ | "iris-950"
192
+ | "lilac-50"
193
+ | "lilac-100"
194
+ | "lilac-200"
195
+ | "lilac-300"
196
+ | "lilac-400"
197
+ | "lilac-500"
198
+ | "lilac-600"
199
+ | "lilac-700"
200
+ | "lilac-800"
201
+ | "lilac-900"
202
+ | "lilac-950"
203
+ | "coral-50"
204
+ | "coral-100"
205
+ | "coral-200"
206
+ | "coral-300"
207
+ | "coral-400"
208
+ | "coral-500"
209
+ | "coral-600"
210
+ | "coral-700"
211
+ | "coral-800"
212
+ | "coral-900"
213
+ | "coral-950"
214
+ | "wood-50"
215
+ | "wood-100"
216
+ | "wood-200"
217
+ | "wood-300"
218
+ | "wood-400"
219
+ | "wood-500"
220
+ | "wood-600"
221
+ | "wood-700"
222
+ | "wood-800"
223
+ | "wood-900"
224
+ | "wood-950"
225
+ | "silver-50"
226
+ | "silver-100"
227
+ | "silver-200"
228
+ | "silver-300"
229
+ | "silver-400"
230
+ | "silver-500"
231
+ | "silver-600"
232
+ | "silver-700"
233
+ | "silver-800"
234
+ | "silver-900"
235
+ | "silver-950"
236
+ | "steel-50"
237
+ | "steel-100"
238
+ | "steel-200"
239
+ | "steel-300"
240
+ | "steel-400"
241
+ | "steel-500"
242
+ | "steel-600"
243
+ | "steel-700"
244
+ | "steel-800"
245
+ | "steel-900"
246
+ | "steel-950"
247
+ | "olive-50"
248
+ | "olive-100"
249
+ | "olive-200"
250
+ | "olive-300"
251
+ | "olive-400"
252
+ | "olive-500"
253
+ | "olive-600"
254
+ | "olive-700"
255
+ | "olive-800"
256
+ | "olive-900"
257
+ | "olive-950"
258
+ | "sand-50"
259
+ | "sand-100"
260
+ | "sand-200"
261
+ | "sand-300"
262
+ | "sand-400"
263
+ | "sand-500"
264
+ | "sand-600"
265
+ | "sand-700"
266
+ | "sand-800"
267
+ | "sand-900"
268
+ | "sand-950"
269
+ | "tint-50"
270
+ | "tint-100"
271
+ | "tint-200"
272
+ | "tint-300"
273
+ | "tint-400"
274
+ | "tint-500"
275
+ | "tint-600"
276
+ | "tint-700"
277
+ | "tint-800"
278
+ | "tint-900"
279
+ | "tint-950";
55
280
 
56
281
  export type ColorWithGrays = ColorType | "invert" | "dimmed" | "muted";
57
282
 
@@ -78,7 +303,11 @@ export interface TooltipType {
78
303
  /**
79
304
  * tooltip color
80
305
  */
81
- color?: ColorType;
306
+ color?: ColorType | PaletteType | string;
307
+ /**
308
+ * text color
309
+ */
310
+ textColor?: ColorType | PaletteType | string;
82
311
  /**
83
312
  * tooltip placement
84
313
  */
@@ -109,6 +338,10 @@ export interface CssProp {
109
338
  * css classname(s)
110
339
  */
111
340
  className?: string;
341
+ /**
342
+ * direction
343
+ */
344
+ dir?: "ltr" | "rtl";
112
345
  }
113
346
 
114
347
  export interface TestProps {
@@ -122,15 +355,7 @@ export interface TestProps {
122
355
  "data-test-value"?: AnyObject;
123
356
  }
124
357
 
125
- export type Elements<T> =
126
- | React.ReactElement<T>
127
- | React.ReactPortal
128
- | React.ReactNode
129
- | string
130
- | number
131
- | boolean
132
- | null
133
- | undefined;
358
+ export type Elements<T> = React.ReactElement<T> | React.ReactNode;
134
359
 
135
360
  export type AriaProps = React.AriaAttributes;
136
361
 
@@ -144,7 +369,6 @@ export interface RefProp<T = HTMLElement> {
144
369
 
145
370
  /* *********** */
146
371
 
147
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
148
372
  export type CallbackReturn<T = unknown> =
149
373
  | undefined
150
374
  | T
@@ -167,25 +391,6 @@ export type PolymorphicProps<AsTag extends ReactTag> = Omit<
167
391
  as?: AsTag;
168
392
  };
169
393
 
170
- export interface IconProps {
171
- /**
172
- * svg path / image url
173
- */
174
- icon?: string;
175
- /**
176
- * flip icon in rtl
177
- */
178
- rtlFlip?: boolean;
179
- /**
180
- * icon background color
181
- */
182
- iconBg?: ColorType | string;
183
- /**
184
- * icon color
185
- */
186
- iconColor?: ColorType | string;
187
- }
188
-
189
394
  export interface CollapseProps {
190
395
  /**
191
396
  * Allow collapsing
@@ -222,11 +427,22 @@ export interface TooltipProp {
222
427
  tooltip?: string | TooltipType;
223
428
  }
224
429
 
225
- export interface ChildProp<T = JSX.Element> {
430
+ export type ReactElement =
431
+ | React.ReactElement
432
+ | string
433
+ | number
434
+ | bigint
435
+ | Iterable<React.ReactNode>
436
+ | React.ReactPortal
437
+ | boolean
438
+ | null
439
+ | undefined;
440
+
441
+ export interface ChildProp<T = ReactElement> {
226
442
  children: Elements<T>;
227
443
  }
228
444
 
229
- export interface ChildrenProp<T = JSX.Element> {
445
+ export interface ChildrenProp<T = ReactElement> {
230
446
  children: Elements<T> | Array<Elements<T>>;
231
447
  }
232
448
 
@@ -244,3 +460,33 @@ export interface ScrollObject extends PositionObject, SizeObject {
244
460
  scrollWidth?: number;
245
461
  scrollHeight: number;
246
462
  }
463
+
464
+ export type ArrayType<T extends readonly any[] | ArrayLike<any> | undefined> =
465
+ T extends readonly any[]
466
+ ? T[number]
467
+ : T extends ArrayLike<any>
468
+ ? T[number]
469
+ : undefined;
470
+
471
+ export type Complete<T> = {
472
+ [P in keyof Required<T>]: Pick<T, P> extends Required<Pick<T, P>>
473
+ ? T[P]
474
+ : T[P] | undefined;
475
+ };
476
+
477
+ export type NestedKeys<T> = T extends object
478
+ ? {
479
+ [K in keyof T]: K extends string | number
480
+ ? T[K] extends object
481
+ ? // Check for array type explicitly and handle it
482
+ T[K] extends readonly any[]
483
+ ? T[K][number] extends object
484
+ ? // Array of objects/items: return key with array index notation and recurse
485
+ `${K}.${NestedKeys<T[K][number]>}` | `${K}`
486
+ : `${K}`
487
+ : // Standard object: return key with dot notation and recurse
488
+ `${K}.${NestedKeys<T[K]>}` | `${K}`
489
+ : `${K}`
490
+ : never;
491
+ }[keyof T]
492
+ : "";
@@ -26,9 +26,13 @@ import classNames from "classnames";
26
26
  import { Fragment, useCallback, useMemo } from "react";
27
27
  import { useMemoDebugger } from "../hooks/useEffectDebugger";
28
28
  import { Tooltip, getTooltipProps } from "../overlays/tooltip/Tooltip";
29
- import { type ChildProp, type ColorType, type CssProp } from "../types";
30
- import { getColor, getColorClass } from "../utils";
31
- import classes from "./Typography.module.css";
29
+ import {
30
+ type ChildProp,
31
+ type ColorType,
32
+ type CssProp,
33
+ type PaletteType,
34
+ } from "../types";
35
+ import { getColor } from "../utils";
32
36
 
33
37
  interface AbbrTextProps {
34
38
  children: string;
@@ -43,17 +47,13 @@ const AbbrText = ({ color, children, tooltip, content }: AbbrTextProps) => {
43
47
  [tooltip],
44
48
  );
45
49
  const tooltipProps = useMemo(() => {
46
- return { ...getTooltipProps(tooltip), copyContent: content };
50
+ return tooltip ? { ...getTooltipProps(tooltip), copyContent: content } : {};
47
51
  }, [tooltip, content]);
48
52
 
49
53
  return (
50
54
  <TooltipWrapper {...tooltipProps}>
51
55
  <abbr
52
- className={classNames(
53
- classes.abbr,
54
- "whitespace-nowrap",
55
- color && getColorClass(color),
56
- )}
56
+ className={classNames("fabric-abbr", "whitespace-nowrap")}
57
57
  style={
58
58
  color ? ({ "--abbr-color": getColor(color) } as AnyObject) : undefined
59
59
  }
@@ -74,7 +74,13 @@ export interface AbbrProps extends ChildProp<string>, CssProp {
74
74
  *
75
75
  * [textPart, tooltip, color (class name or color string)]
76
76
  */
77
- abbr: Array<[textPart: string, tooltip: string, color?: ColorType | string]>;
77
+ abbr: Array<
78
+ [
79
+ textPart: string,
80
+ tooltip: string,
81
+ color?: ColorType | PaletteType | string,
82
+ ]
83
+ >;
78
84
  /**
79
85
  * renderer callback
80
86
  */
@@ -82,7 +88,34 @@ export interface AbbrProps extends ChildProp<string>, CssProp {
82
88
  }
83
89
 
84
90
  /**
85
- * Typography abbr component to wrap text parts in `abbr` with tooltip
91
+ * A component that renders abbreviated text with tooltips for additional information.
92
+ * It allows you to define a list of abbreviations, each with a tooltip and optional color.
93
+ * The component will tokenize the children text and replace matching parts with the abbreviated version.
94
+ * It supports a copy action that can either copy the text or the tooltip content.
95
+ * This component is useful for displaying technical terms or acronyms in a user-friendly way,
96
+ * while providing additional context through tooltips.
97
+ *
98
+ * @param {AbbrProps} props - The properties for the Abbr component.
99
+ * @returns {JSX.Element} The rendered Abbr component.
100
+ *
101
+ * @example
102
+ * ```jsx
103
+ * <Abbr
104
+ * abbr={[
105
+ * ["HTML", "HyperText Markup Language", "primary"],
106
+ * ["CSS", "Cascading Style Sheets", "secondary"],
107
+ * ["JS", "JavaScript", "success"],
108
+ * ]}
109
+ * className="text-sm"
110
+ * copyContent="tooltip"
111
+ * >
112
+ * Learn more about HTML, CSS, and JS.
113
+ * </Abbr>
114
+ * // Renders the text with abbreviations for HTML, CSS, and JS,
115
+ * // each with a tooltip showing the full form and colored according to the specified color.
116
+ * ```
117
+ *
118
+ * @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-typography--abbr} for more details.
86
119
  */
87
120
  export const Abbr = ({
88
121
  children,
@@ -109,6 +142,7 @@ export const Abbr = ({
109
142
 
110
143
  /** ***************** tokenize text with abbr list *******************/
111
144
  const inner = useMemoDebugger(
145
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
112
146
  () => {
113
147
  if (isString(children)) {
114
148
  if (!isEmpty(abbr)) {