@react-fabric/core 1.0.0-beta.9 → 1.0.1

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 (592) 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/css/components/_animations.css +52 -0
  4. package/css/components/_avatar.css +89 -0
  5. package/css/components/_button.css +218 -0
  6. package/css/components/_buttonGroup.css +62 -0
  7. package/css/components/_callout.css +32 -0
  8. package/css/components/_card.css +167 -0
  9. package/css/components/_chip.css +125 -0
  10. package/css/components/_collapsable.css +32 -0
  11. package/{src/overlays/message/Message.module.css → css/components/_divider.css} +11 -10
  12. package/{src/components/dropdown/Dropdown.module.css → css/components/_dropdown.css} +3 -2
  13. package/{src/overlays/flyout/Flyout.module.css → css/components/_flyout.css} +15 -9
  14. package/css/components/_media.css +102 -0
  15. package/{src/components/menu/Menu.module.css → css/components/_menu.css} +21 -20
  16. package/{src/components/meter/Meter.module.css → css/components/_meter.css} +15 -20
  17. package/{src/overlays/modal/Modal.module.css → css/components/_modal.css} +9 -9
  18. package/{src/components/panel/Panel.module.css → css/components/_panel.css} +19 -19
  19. package/{src/components/progress/Progress.module.css → css/components/_progress.css} +7 -10
  20. package/css/components/_sonner.css +431 -0
  21. package/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +125 -85
  22. package/css/components/_titlebar.css +48 -0
  23. package/css/components/index.css +47 -0
  24. package/css/core/_aside.css +176 -0
  25. package/css/core/_content.css +31 -0
  26. package/css/core/_errorboundary.css +55 -0
  27. package/css/core/_responsive.css +45 -0
  28. package/css/core/_typography.css +69 -0
  29. package/css/core/_viewport.css +33 -0
  30. package/{src/hooks/useClientService.tsx → css/core/index.css} +7 -7
  31. package/css/reset/_gradients.css +36 -33
  32. package/css/reset/_reset.css +206 -300
  33. package/css/reset/_text.css +31 -61
  34. package/css/reset/_theme.css +467 -81
  35. package/css/reset/index.css +23 -21
  36. package/css/styles.css +30 -23
  37. package/css/theme/_colors.css +445 -0
  38. package/css/theme/_utilities.css +528 -0
  39. package/css/theme/_variants.css +128 -0
  40. package/css/theme/index.css +55 -0
  41. package/dist/cjs/components/actionLabel/ActionLabel.js +25 -12
  42. package/dist/cjs/{overlays → components}/alert/Alert.js +76 -53
  43. package/dist/cjs/components/animations/Indicator.js +72 -0
  44. package/dist/cjs/components/animations/Loader.js +77 -0
  45. package/dist/cjs/components/animations/LoadingBars.js +37 -0
  46. package/dist/cjs/components/animations/LoadingLine.js +59 -0
  47. package/dist/cjs/components/animations/LoadingSpinner.js +37 -0
  48. package/dist/cjs/components/animations/Skeleton.js +88 -0
  49. package/dist/cjs/components/avatar/Avatar.js +41 -20
  50. package/dist/cjs/components/avatar/AvatarGroup.js +37 -16
  51. package/dist/cjs/components/badge/Badge.js +90 -68
  52. package/dist/cjs/components/button/Button.js +198 -136
  53. package/dist/cjs/components/button/ButtonGroup.js +86 -21
  54. package/dist/cjs/components/button/ConfirmButton.js +55 -41
  55. package/dist/cjs/components/button/ToggleButtonGroup.js +84 -32
  56. package/dist/cjs/components/callout/Callout.js +56 -25
  57. package/dist/cjs/components/card/Card.js +90 -42
  58. package/dist/cjs/components/card/CardCover.js +38 -27
  59. package/dist/cjs/components/card/FlipContent.js +47 -0
  60. package/dist/cjs/components/chip/Chip.js +80 -37
  61. package/dist/cjs/components/collapsable/Collapsable.js +62 -31
  62. package/dist/cjs/components/divider/Divider.js +58 -24
  63. package/dist/cjs/components/dropdown/Dropdown.js +92 -45
  64. package/dist/cjs/components/dropdown/DropdownTool.js +6 -7
  65. package/dist/cjs/components/effect/GlassEffect.js +259 -0
  66. package/dist/cjs/components/effect/MatteEffect.js +127 -0
  67. package/dist/cjs/components/effect/StyleEffect.js +43 -0
  68. package/dist/cjs/components/empty/EmptyContent.js +37 -49
  69. package/dist/cjs/components/flyout/Flyout.js +170 -0
  70. package/dist/cjs/components/hotkey/HotKey.js +42 -0
  71. package/dist/cjs/components/icon/Icon.js +81 -80
  72. package/dist/cjs/components/media/Media.js +154 -77
  73. package/dist/cjs/components/menu/ContextMenu.js +45 -20
  74. package/dist/cjs/components/menu/Menu.js +98 -38
  75. package/dist/cjs/components/menu/MenuItem.js +102 -74
  76. package/dist/cjs/components/meter/Meter.js +35 -12
  77. package/dist/cjs/components/modal/Modal.js +152 -0
  78. package/dist/cjs/components/navigator/Navigator.js +81 -36
  79. package/dist/cjs/components/panel/Panel.js +115 -60
  80. package/dist/cjs/components/panel/PanelGroup.js +42 -16
  81. package/dist/cjs/components/panel/PanelStack.js +47 -16
  82. package/dist/cjs/components/pillbox/Pillbox.js +118 -0
  83. package/dist/cjs/components/progress/ProgressBar.js +30 -14
  84. package/dist/cjs/components/progress/ProgressCircle.js +27 -11
  85. package/dist/cjs/components/tabpanel/Tab.js +53 -37
  86. package/dist/cjs/components/tabpanel/TabPanel.js +74 -28
  87. package/dist/cjs/components/titlebar/Titlebar.js +52 -0
  88. package/dist/cjs/components/tooltip/Tooltip.js +180 -0
  89. package/dist/cjs/context/Global.js +159 -80
  90. package/dist/cjs/context/ModalManager.js +60 -0
  91. package/dist/cjs/context/context.js +43 -0
  92. package/dist/cjs/core/areaToggle/AreaToggle.js +41 -0
  93. package/dist/cjs/core/aside/Aside.js +178 -83
  94. package/dist/cjs/core/boundary/ErrorBoundary.js +37 -34
  95. package/dist/cjs/core/boundary/ErrorIcon.js +32 -19
  96. package/dist/cjs/core/content/Content.js +26 -37
  97. package/dist/cjs/core/headfoot/HeadFoot.js +133 -35
  98. package/dist/cjs/core/layout/Layout.js +28 -0
  99. package/dist/cjs/core/responsive/Responsive.js +62 -26
  100. package/dist/cjs/core/theme/ThemeProvider.js +35 -41
  101. package/dist/cjs/core/viewport/Viewport.js +26 -22
  102. package/dist/cjs/hooks/useClientService.js +39 -18
  103. package/dist/cjs/hooks/useContextMenu.js +103 -0
  104. package/dist/cjs/hooks/useControlledValue.js +13 -7
  105. package/dist/cjs/hooks/useDebounce.js +37 -21
  106. package/dist/cjs/hooks/useEffectDebugger.js +79 -60
  107. package/dist/cjs/hooks/useIsDark.js +34 -26
  108. package/dist/cjs/hooks/useIsRtl.js +13 -3
  109. package/dist/cjs/hooks/useNavigator.js +12 -9
  110. package/dist/cjs/hooks/useNotificationService.js +199 -0
  111. package/dist/cjs/hooks/useOverlayService.js +82 -41
  112. package/dist/cjs/hooks/usePropState.js +41 -0
  113. package/dist/cjs/hooks/usePropToggle.js +32 -26
  114. package/dist/cjs/hooks/useResize.js +47 -38
  115. package/dist/cjs/hooks/useResizeObserver.js +26 -7
  116. package/dist/cjs/hooks/useStorage.js +29 -16
  117. package/dist/cjs/i18n/index.js +25 -23
  118. package/dist/cjs/index.js +142 -94
  119. package/dist/cjs/typography/Abbr.js +43 -20
  120. package/dist/cjs/typography/Anchor.js +39 -0
  121. package/dist/cjs/typography/Copy.js +28 -28
  122. package/dist/cjs/typography/Kbd.js +43 -0
  123. package/dist/cjs/typography/Mark.js +34 -17
  124. package/dist/cjs/typography/Text.js +36 -54
  125. package/dist/cjs/typography/Title.js +17 -40
  126. package/dist/cjs/utils/calculateDimensions.js +38 -23
  127. package/dist/cjs/utils/cloneElement.js +64 -0
  128. package/dist/cjs/{core/section/Section.js → utils/getBadgeProps.js} +25 -21
  129. package/dist/cjs/utils/getColor.js +42 -36
  130. package/dist/cjs/utils/getIconProps.js +63 -0
  131. package/dist/cjs/utils/getTooltipProps.js +66 -0
  132. package/dist/cjs/utils/nodeCheck.js +4 -4
  133. package/dist/esm/components/actionLabel/ActionLabel.js +25 -12
  134. package/dist/esm/{overlays → components}/alert/Alert.js +73 -50
  135. package/dist/esm/components/animations/Indicator.js +72 -0
  136. package/dist/esm/components/animations/Loader.js +77 -0
  137. package/dist/esm/components/animations/LoadingBars.js +37 -0
  138. package/dist/esm/components/animations/LoadingLine.js +59 -0
  139. package/dist/esm/components/animations/LoadingSpinner.js +37 -0
  140. package/dist/esm/components/animations/Skeleton.js +88 -0
  141. package/dist/esm/components/avatar/Avatar.js +42 -21
  142. package/dist/esm/components/avatar/AvatarGroup.js +37 -16
  143. package/dist/esm/components/badge/Badge.js +93 -70
  144. package/dist/esm/components/button/Button.js +199 -137
  145. package/dist/esm/components/button/ButtonGroup.js +87 -22
  146. package/dist/esm/components/button/ConfirmButton.js +58 -44
  147. package/dist/esm/components/button/ToggleButtonGroup.js +86 -34
  148. package/dist/esm/components/callout/Callout.js +56 -25
  149. package/dist/esm/components/card/Card.js +92 -44
  150. package/dist/esm/components/card/CardCover.js +38 -27
  151. package/dist/esm/components/card/FlipContent.js +47 -0
  152. package/dist/esm/components/chip/Chip.js +81 -38
  153. package/dist/esm/components/collapsable/Collapsable.js +63 -32
  154. package/dist/esm/components/divider/Divider.js +59 -25
  155. package/dist/esm/components/dropdown/Dropdown.js +95 -48
  156. package/dist/esm/components/dropdown/DropdownTool.js +6 -7
  157. package/dist/esm/components/effect/GlassEffect.js +259 -0
  158. package/dist/esm/components/effect/MatteEffect.js +127 -0
  159. package/dist/esm/components/effect/StyleEffect.js +43 -0
  160. package/dist/esm/components/empty/EmptyContent.js +38 -50
  161. package/dist/esm/components/flyout/Flyout.js +170 -0
  162. package/dist/esm/components/hotkey/HotKey.js +42 -0
  163. package/dist/esm/components/icon/Icon.js +83 -82
  164. package/dist/esm/components/media/Media.js +156 -79
  165. package/dist/esm/components/menu/ContextMenu.js +46 -21
  166. package/dist/esm/components/menu/Menu.js +101 -41
  167. package/dist/esm/components/menu/MenuItem.js +98 -70
  168. package/dist/esm/components/meter/Meter.js +36 -13
  169. package/dist/esm/components/modal/Modal.js +152 -0
  170. package/dist/esm/components/navigator/Navigator.js +81 -36
  171. package/dist/esm/components/panel/Panel.js +117 -62
  172. package/dist/esm/components/panel/PanelGroup.js +43 -17
  173. package/dist/esm/components/panel/PanelStack.js +48 -17
  174. package/dist/esm/components/pillbox/Pillbox.js +118 -0
  175. package/dist/esm/components/progress/ProgressBar.js +31 -15
  176. package/dist/esm/components/progress/ProgressCircle.js +28 -12
  177. package/dist/esm/components/tabpanel/Tab.js +54 -38
  178. package/dist/esm/components/tabpanel/TabPanel.js +75 -29
  179. package/dist/esm/components/titlebar/Titlebar.js +52 -0
  180. package/dist/esm/components/tooltip/Tooltip.js +180 -0
  181. package/dist/esm/context/Global.js +161 -78
  182. package/dist/esm/context/ModalManager.js +60 -0
  183. package/dist/esm/context/context.js +40 -0
  184. package/dist/esm/core/areaToggle/AreaToggle.js +41 -0
  185. package/dist/esm/core/aside/Aside.js +179 -84
  186. package/dist/esm/core/boundary/ErrorBoundary.js +38 -35
  187. package/dist/esm/core/boundary/ErrorIcon.js +32 -19
  188. package/dist/esm/core/content/Content.js +26 -37
  189. package/dist/esm/core/headfoot/HeadFoot.js +134 -36
  190. package/dist/esm/core/layout/Layout.js +28 -0
  191. package/dist/esm/core/responsive/Responsive.js +62 -26
  192. package/dist/esm/core/theme/ThemeProvider.js +36 -42
  193. package/dist/esm/core/viewport/Viewport.js +26 -22
  194. package/dist/esm/hooks/useClientService.js +39 -18
  195. package/dist/esm/hooks/useContextMenu.js +103 -0
  196. package/dist/esm/hooks/useControlledValue.js +14 -8
  197. package/dist/esm/hooks/useDebounce.js +37 -21
  198. package/dist/esm/hooks/useEffectDebugger.js +81 -62
  199. package/dist/esm/hooks/useIsDark.js +34 -26
  200. package/dist/esm/hooks/useIsRtl.js +13 -3
  201. package/dist/esm/hooks/useNavigator.js +13 -10
  202. package/dist/esm/hooks/useNotificationService.js +199 -0
  203. package/dist/esm/hooks/useOverlayService.js +83 -42
  204. package/dist/esm/hooks/usePropState.js +40 -0
  205. package/dist/esm/hooks/usePropToggle.js +33 -27
  206. package/dist/esm/hooks/useResize.js +48 -39
  207. package/dist/esm/hooks/useResizeObserver.js +27 -8
  208. package/dist/esm/hooks/useStorage.js +30 -17
  209. package/dist/esm/i18n/index.js +23 -21
  210. package/dist/esm/index.js +87 -44
  211. package/dist/esm/typography/Abbr.js +45 -22
  212. package/dist/esm/typography/Anchor.js +39 -0
  213. package/dist/esm/typography/Copy.js +28 -28
  214. package/dist/esm/typography/Kbd.js +43 -0
  215. package/dist/esm/typography/Mark.js +35 -18
  216. package/dist/esm/typography/Text.js +39 -57
  217. package/dist/esm/typography/Title.js +17 -40
  218. package/dist/esm/utils/calculateDimensions.js +38 -23
  219. package/dist/esm/utils/cloneElement.js +64 -0
  220. package/dist/esm/{core/section/Section.js → utils/getBadgeProps.js} +25 -21
  221. package/dist/esm/utils/getColor.js +43 -34
  222. package/dist/esm/utils/getIconProps.js +63 -0
  223. package/dist/esm/utils/getTooltipProps.js +66 -0
  224. package/dist/esm/utils/nodeCheck.js +4 -4
  225. package/dist/types/components/actionLabel/ActionLabel.d.ts +20 -7
  226. package/dist/types/components/alert/Alert.d.ts +74 -0
  227. package/dist/types/components/animations/Indicator.d.ts +57 -0
  228. package/dist/types/components/animations/Loader.d.ts +65 -0
  229. package/dist/types/components/animations/LoadingBars.d.ts +61 -0
  230. package/dist/types/components/animations/LoadingLine.d.ts +43 -0
  231. package/dist/types/components/animations/LoadingSpinner.d.ts +61 -0
  232. package/dist/types/components/animations/Skeleton.d.ts +61 -0
  233. package/dist/types/components/avatar/Avatar.d.ts +70 -19
  234. package/dist/types/components/avatar/AvatarGroup.d.ts +51 -14
  235. package/dist/types/components/badge/Badge.d.ts +64 -14
  236. package/dist/types/components/button/Button.d.ts +72 -55
  237. package/dist/types/components/button/ButtonGroup.d.ts +86 -24
  238. package/dist/types/components/button/ConfirmButton.d.ts +21 -7
  239. package/dist/types/components/button/ToggleButtonGroup.d.ts +88 -44
  240. package/dist/types/components/callout/Callout.d.ts +58 -7
  241. package/dist/types/components/card/Card.d.ts +66 -25
  242. package/dist/types/components/card/CardCover.d.ts +52 -7
  243. package/dist/types/components/card/FlipContent.d.ts +50 -0
  244. package/dist/types/components/chip/Chip.d.ts +72 -20
  245. package/dist/types/components/collapsable/Collapsable.d.ts +55 -15
  246. package/dist/types/components/divider/Divider.d.ts +25 -8
  247. package/dist/types/components/dropdown/Dropdown.d.ts +42 -9
  248. package/dist/types/components/dropdown/DropdownTool.d.ts +22 -4
  249. package/dist/types/components/effect/GlassEffect.d.ts +5 -0
  250. package/dist/types/components/effect/MatteEffect.d.ts +40 -0
  251. package/dist/types/components/effect/StyleEffect.d.ts +27 -0
  252. package/dist/types/components/empty/EmptyContent.d.ts +53 -9
  253. package/dist/types/components/flyout/Flyout.d.ts +60 -0
  254. package/dist/types/components/hotkey/HotKey.d.ts +41 -0
  255. package/dist/types/components/icon/Icon.d.ts +74 -24
  256. package/dist/types/components/media/Media.d.ts +72 -4
  257. package/dist/types/components/menu/ContextMenu.d.ts +22 -5
  258. package/dist/types/components/menu/Menu.d.ts +26 -2
  259. package/dist/types/components/menu/MenuItem.d.ts +19 -4
  260. package/dist/types/components/menu/types.d.ts +23 -14
  261. package/dist/types/components/meter/Meter.d.ts +23 -3
  262. package/dist/types/components/modal/Modal.d.ts +52 -0
  263. package/dist/types/components/navigator/Navigator.d.ts +30 -4
  264. package/dist/types/components/panel/Panel.d.ts +43 -23
  265. package/dist/types/components/panel/PanelGroup.d.ts +22 -3
  266. package/dist/types/components/panel/PanelStack.d.ts +28 -2
  267. package/dist/types/components/pillbox/Pillbox.d.ts +95 -0
  268. package/dist/types/components/progress/ProgressBar.d.ts +19 -4
  269. package/dist/types/components/progress/ProgressCircle.d.ts +18 -4
  270. package/dist/types/components/tabpanel/Tab.d.ts +42 -10
  271. package/dist/types/components/tabpanel/TabPanel.d.ts +47 -7
  272. package/dist/types/components/titlebar/Titlebar.d.ts +54 -0
  273. package/dist/types/components/tooltip/Tooltip.d.ts +76 -0
  274. package/dist/types/context/Global.d.ts +39 -69
  275. package/dist/types/context/ModalManager.d.ts +30 -0
  276. package/dist/types/context/context.d.ts +107 -0
  277. package/dist/types/core/areaToggle/AreaToggle.d.ts +33 -0
  278. package/dist/types/core/aside/Aside.d.ts +75 -20
  279. package/dist/types/core/boundary/ErrorBoundary.d.ts +43 -4
  280. package/dist/types/core/boundary/ErrorIcon.d.ts +38 -1
  281. package/dist/types/core/content/Content.d.ts +38 -6
  282. package/dist/types/core/headfoot/HeadFoot.d.ts +48 -14
  283. package/dist/types/core/layout/Layout.d.ts +38 -0
  284. package/dist/types/core/responsive/Responsive.d.ts +45 -15
  285. package/dist/types/core/theme/ThemeProvider.d.ts +35 -11
  286. package/dist/types/core/viewport/Viewport.d.ts +27 -3
  287. package/dist/types/hooks/useClientService.d.ts +43 -1
  288. package/dist/types/hooks/useContextMenu.d.ts +10 -0
  289. package/dist/types/hooks/useControlledValue.d.ts +28 -4
  290. package/dist/types/hooks/useDebounce.d.ts +38 -2
  291. package/dist/types/hooks/useEffectDebugger.d.ts +73 -4
  292. package/dist/types/hooks/useIsDark.d.ts +6 -0
  293. package/dist/types/hooks/useIsRtl.d.ts +35 -1
  294. package/dist/types/hooks/useNavigator.d.ts +37 -2
  295. package/dist/types/hooks/useNotificationService.d.ts +60 -0
  296. package/dist/types/hooks/useOverlayService.d.ts +28 -8
  297. package/dist/types/hooks/usePropState.d.ts +26 -0
  298. package/dist/types/hooks/usePropToggle.d.ts +41 -7
  299. package/dist/types/hooks/useResize.d.ts +46 -4
  300. package/dist/types/hooks/useResizeObserver.d.ts +45 -3
  301. package/dist/types/hooks/useStorage.d.ts +32 -2
  302. package/dist/types/i18n/index.d.ts +27 -3
  303. package/dist/types/index.d.ts +106 -18
  304. package/dist/types/types/colors.d.ts +29 -0
  305. package/dist/types/types/index.d.ts +216 -76
  306. package/dist/types/typography/Abbr.d.ts +51 -6
  307. package/dist/types/typography/Anchor.d.ts +41 -0
  308. package/dist/types/typography/Copy.d.ts +36 -2
  309. package/dist/types/typography/Kbd.d.ts +40 -0
  310. package/dist/types/typography/Mark.d.ts +44 -7
  311. package/dist/types/typography/Text.d.ts +40 -24
  312. package/dist/types/typography/Title.d.ts +37 -26
  313. package/dist/types/typography/types.d.ts +32 -0
  314. package/dist/types/utils/calculateDimensions.d.ts +50 -6
  315. package/dist/types/utils/cloneElement.d.ts +41 -0
  316. package/dist/types/utils/getBadgeProps.d.ts +16 -0
  317. package/dist/types/utils/getColor.d.ts +43 -4
  318. package/dist/types/utils/getIconProps.d.ts +45 -0
  319. package/dist/types/utils/getTooltipProps.d.ts +47 -0
  320. package/dist/types/utils/index.d.ts +28 -0
  321. package/dist/types/utils/nodeCheck.d.ts +1 -2
  322. package/package.json +29 -21
  323. package/src/components/actionLabel/ActionLabel.tsx +28 -39
  324. package/src/components/alert/Alert.tsx +261 -0
  325. package/src/components/animations/Indicator.tsx +76 -0
  326. package/src/components/animations/Loader.tsx +89 -0
  327. package/src/components/animations/LoadingBars.tsx +70 -0
  328. package/src/components/animations/LoadingLine.tsx +51 -0
  329. package/src/components/animations/LoadingSpinner.tsx +70 -0
  330. package/src/components/animations/Skeleton.tsx +100 -0
  331. package/src/components/avatar/Avatar.tsx +89 -70
  332. package/src/components/avatar/AvatarGroup.tsx +65 -74
  333. package/src/components/badge/Badge.tsx +141 -108
  334. package/src/components/button/Button.tsx +223 -238
  335. package/src/components/button/ButtonGroup.tsx +117 -77
  336. package/src/components/button/ConfirmButton.tsx +60 -90
  337. package/src/components/button/ToggleButtonGroup.tsx +134 -120
  338. package/src/components/callout/Callout.tsx +81 -59
  339. package/src/components/card/Card.tsx +131 -113
  340. package/src/components/card/CardCover.tsx +61 -61
  341. package/src/components/card/FlipContent.tsx +78 -0
  342. package/src/components/chip/Chip.tsx +139 -99
  343. package/src/components/collapsable/Collapsable.tsx +79 -77
  344. package/src/components/divider/Divider.tsx +74 -53
  345. package/src/components/dropdown/Dropdown.tsx +109 -106
  346. package/src/components/dropdown/DropdownTool.tsx +29 -12
  347. package/src/components/effect/GlassEffect.tsx +221 -0
  348. package/src/components/effect/MatteEffect.tsx +99 -0
  349. package/src/components/effect/StyleEffect.tsx +36 -0
  350. package/src/components/empty/EmptyContent.tsx +60 -99
  351. package/src/components/flyout/Flyout.tsx +257 -0
  352. package/src/components/hotkey/HotKey.tsx +57 -0
  353. package/src/components/icon/Icon.tsx +131 -130
  354. package/src/components/media/Media.tsx +184 -154
  355. package/src/components/menu/ContextMenu.tsx +56 -39
  356. package/src/components/menu/Menu.tsx +121 -84
  357. package/src/components/menu/MenuItem.tsx +87 -69
  358. package/src/components/menu/types.ts +23 -28
  359. package/src/components/meter/Meter.tsx +34 -17
  360. package/src/components/modal/Modal.tsx +226 -0
  361. package/src/components/navigator/Navigator.tsx +93 -38
  362. package/src/components/panel/Panel.tsx +123 -131
  363. package/src/components/panel/PanelGroup.tsx +49 -43
  364. package/src/components/panel/PanelStack.tsx +63 -62
  365. package/src/components/pillbox/Pillbox.tsx +208 -0
  366. package/src/components/progress/ProgressBar.tsx +33 -33
  367. package/src/components/progress/ProgressCircle.tsx +29 -37
  368. package/src/components/tabpanel/Tab.tsx +84 -73
  369. package/src/components/tabpanel/TabPanel.tsx +102 -51
  370. package/src/components/titlebar/Titlebar.tsx +115 -0
  371. package/src/components/tooltip/Tooltip.tsx +255 -0
  372. package/src/context/Global.tsx +148 -148
  373. package/src/context/ModalManager.tsx +68 -0
  374. package/src/context/context.ts +111 -0
  375. package/src/core/areaToggle/AreaToggle.tsx +45 -0
  376. package/src/core/aside/Aside.tsx +200 -155
  377. package/src/core/boundary/ErrorBoundary.tsx +50 -68
  378. package/src/core/boundary/ErrorIcon.tsx +34 -32
  379. package/src/core/content/Content.tsx +41 -50
  380. package/src/core/headfoot/HeadFoot.tsx +162 -81
  381. package/src/core/layout/Layout.tsx +54 -0
  382. package/src/core/responsive/Responsive.tsx +91 -98
  383. package/src/core/theme/ThemeProvider.tsx +45 -56
  384. package/src/core/viewport/Viewport.tsx +25 -27
  385. package/src/hooks/useClientService.ts +47 -0
  386. package/src/hooks/useContextMenu.tsx +131 -0
  387. package/src/hooks/useControlledValue.ts +47 -0
  388. package/src/hooks/useDebounce.ts +41 -24
  389. package/src/hooks/useEffectDebugger.ts +105 -94
  390. package/src/hooks/useIsDark.ts +10 -24
  391. package/src/hooks/useIsRtl.ts +32 -20
  392. package/src/hooks/useNavigator.tsx +41 -26
  393. package/src/hooks/useNotificationService.tsx +239 -0
  394. package/src/hooks/useOverlayService.tsx +67 -20
  395. package/src/hooks/usePropState.ts +52 -0
  396. package/src/hooks/usePropToggle.ts +54 -47
  397. package/src/hooks/useResize.ts +69 -45
  398. package/src/hooks/useResizeObserver.ts +59 -34
  399. package/src/hooks/useStorage.ts +40 -48
  400. package/src/i18n/index.ts +24 -25
  401. package/src/index.ts +115 -44
  402. package/src/types/colors.ts +49 -0
  403. package/src/types/global.d.ts +40 -17
  404. package/src/types/index.ts +243 -155
  405. package/src/typography/Abbr.tsx +62 -59
  406. package/src/typography/Anchor.tsx +63 -0
  407. package/src/typography/Copy.tsx +39 -29
  408. package/src/typography/Kbd.tsx +50 -0
  409. package/src/typography/Mark.tsx +56 -51
  410. package/src/typography/Text.tsx +57 -128
  411. package/src/typography/Title.tsx +36 -108
  412. package/src/typography/types.ts +27 -17
  413. package/src/utils/calculateDimensions.ts +50 -40
  414. package/src/utils/cloneElement.ts +61 -0
  415. package/src/{core/content/Content.module.css → utils/getBadgeProps.ts} +20 -15
  416. package/src/utils/getColor.ts +42 -36
  417. package/src/utils/getIconProps.ts +58 -0
  418. package/src/utils/getTooltipProps.ts +59 -0
  419. package/src/utils/index.ts +23 -17
  420. package/src/utils/nodeCheck.ts +4 -8
  421. package/css/flags.rect.css +0 -1607
  422. package/css/flags.wavy.css +0 -1606
  423. package/css/index.js +0 -250
  424. package/css/tailwind/colors.ts +0 -158
  425. package/dist/cjs/components/actionLabel/ActionLabel.module.css +0 -1
  426. package/dist/cjs/components/animations/Animations.js +0 -142
  427. package/dist/cjs/components/animations/Animations.module.css +0 -1
  428. package/dist/cjs/components/avatar/Avatar.module.css +0 -1
  429. package/dist/cjs/components/badge/Badge.module.css +0 -1
  430. package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +0 -71
  431. package/dist/cjs/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  432. package/dist/cjs/components/button/Button.module.css +0 -1
  433. package/dist/cjs/components/card/Card.module.css +0 -1
  434. package/dist/cjs/components/chip/Chip.module.css +0 -1
  435. package/dist/cjs/components/collapsable/Collapsable.module.css +0 -1
  436. package/dist/cjs/components/dropdown/Dropdown.module.css +0 -1
  437. package/dist/cjs/components/icon/Icon.module.css +0 -1
  438. package/dist/cjs/components/media/Media.module.css +0 -1
  439. package/dist/cjs/components/menu/Menu.module.css +0 -1
  440. package/dist/cjs/components/meter/Meter.module.css +0 -1
  441. package/dist/cjs/components/panel/Panel.module.css +0 -1
  442. package/dist/cjs/components/progress/Progress.module.css +0 -1
  443. package/dist/cjs/components/tabpanel/TabPanel.module.css +0 -1
  444. package/dist/cjs/context/NotificationCenter.js +0 -254
  445. package/dist/cjs/core/aside/Aside.module.css +0 -1
  446. package/dist/cjs/core/boundary/ErrorBoundary.module.css +0 -1
  447. package/dist/cjs/core/content/Content.module.css +0 -1
  448. package/dist/cjs/core/headfoot/HeadFoot.module.css +0 -1
  449. package/dist/cjs/core/page/Page.js +0 -66
  450. package/dist/cjs/core/page/Page.module.css +0 -1
  451. package/dist/cjs/core/responsive/Responsive.module.css +0 -1
  452. package/dist/cjs/core/section/Section.module.css +0 -1
  453. package/dist/cjs/core/theme/Theme.module.css +0 -1
  454. package/dist/cjs/core/viewport/Viewport.module.css +0 -1
  455. package/dist/cjs/hotkeys/HotKey.js +0 -47
  456. package/dist/cjs/hotkeys/HotKeyLabel.js +0 -52
  457. package/dist/cjs/hotkeys/HotKeyWrapper.js +0 -98
  458. package/dist/cjs/hotkeys/commons.js +0 -56
  459. package/dist/cjs/overlays/alert/Alert.module.css +0 -1
  460. package/dist/cjs/overlays/flyout/Flyout.js +0 -152
  461. package/dist/cjs/overlays/flyout/Flyout.module.css +0 -1
  462. package/dist/cjs/overlays/message/Message.js +0 -84
  463. package/dist/cjs/overlays/message/Message.module.css +0 -1
  464. package/dist/cjs/overlays/modal/Modal.js +0 -132
  465. package/dist/cjs/overlays/modal/Modal.module.css +0 -1
  466. package/dist/cjs/overlays/toast/Toast.js +0 -166
  467. package/dist/cjs/overlays/toast/Toast.module.css +0 -1
  468. package/dist/cjs/overlays/tooltip/Tooltip.js +0 -133
  469. package/dist/cjs/overlays/tooltip/Tooltip.module.css +0 -1
  470. package/dist/cjs/types/icons.js +0 -200
  471. package/dist/cjs/typography/Link.js +0 -55
  472. package/dist/cjs/typography/Typography.module.css +0 -1
  473. package/dist/cjs/typography/types.js +0 -42
  474. package/dist/esm/components/actionLabel/ActionLabel.module.css +0 -1
  475. package/dist/esm/components/animations/Animations.js +0 -138
  476. package/dist/esm/components/animations/Animations.module.css +0 -1
  477. package/dist/esm/components/avatar/Avatar.module.css +0 -1
  478. package/dist/esm/components/badge/Badge.module.css +0 -1
  479. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +0 -71
  480. package/dist/esm/components/breadcrumbs/Breadcrumbs.module.css +0 -1
  481. package/dist/esm/components/button/Button.module.css +0 -1
  482. package/dist/esm/components/card/Card.module.css +0 -1
  483. package/dist/esm/components/chip/Chip.module.css +0 -1
  484. package/dist/esm/components/collapsable/Collapsable.module.css +0 -1
  485. package/dist/esm/components/dropdown/Dropdown.module.css +0 -1
  486. package/dist/esm/components/icon/Icon.module.css +0 -1
  487. package/dist/esm/components/media/Media.module.css +0 -1
  488. package/dist/esm/components/menu/Menu.module.css +0 -1
  489. package/dist/esm/components/meter/Meter.module.css +0 -1
  490. package/dist/esm/components/panel/Panel.module.css +0 -1
  491. package/dist/esm/components/progress/Progress.module.css +0 -1
  492. package/dist/esm/components/tabpanel/TabPanel.module.css +0 -1
  493. package/dist/esm/context/NotificationCenter.js +0 -254
  494. package/dist/esm/core/aside/Aside.module.css +0 -1
  495. package/dist/esm/core/boundary/ErrorBoundary.module.css +0 -1
  496. package/dist/esm/core/content/Content.module.css +0 -1
  497. package/dist/esm/core/headfoot/HeadFoot.module.css +0 -1
  498. package/dist/esm/core/page/Page.js +0 -66
  499. package/dist/esm/core/page/Page.module.css +0 -1
  500. package/dist/esm/core/responsive/Responsive.module.css +0 -1
  501. package/dist/esm/core/section/Section.module.css +0 -1
  502. package/dist/esm/core/theme/Theme.module.css +0 -1
  503. package/dist/esm/core/viewport/Viewport.module.css +0 -1
  504. package/dist/esm/hotkeys/HotKey.js +0 -47
  505. package/dist/esm/hotkeys/HotKeyLabel.js +0 -52
  506. package/dist/esm/hotkeys/HotKeyWrapper.js +0 -96
  507. package/dist/esm/hotkeys/commons.js +0 -56
  508. package/dist/esm/overlays/alert/Alert.module.css +0 -1
  509. package/dist/esm/overlays/flyout/Flyout.js +0 -152
  510. package/dist/esm/overlays/flyout/Flyout.module.css +0 -1
  511. package/dist/esm/overlays/message/Message.js +0 -84
  512. package/dist/esm/overlays/message/Message.module.css +0 -1
  513. package/dist/esm/overlays/modal/Modal.js +0 -132
  514. package/dist/esm/overlays/modal/Modal.module.css +0 -1
  515. package/dist/esm/overlays/toast/Toast.js +0 -166
  516. package/dist/esm/overlays/toast/Toast.module.css +0 -1
  517. package/dist/esm/overlays/tooltip/Tooltip.js +0 -132
  518. package/dist/esm/overlays/tooltip/Tooltip.module.css +0 -1
  519. package/dist/esm/types/icons.js +0 -202
  520. package/dist/esm/typography/Link.js +0 -55
  521. package/dist/esm/typography/Typography.module.css +0 -1
  522. package/dist/esm/typography/types.js +0 -41
  523. package/dist/types/components/animations/Animations.d.ts +0 -23
  524. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +0 -17
  525. package/dist/types/components/index.d.ts +0 -33
  526. package/dist/types/context/NotificationCenter.d.ts +0 -11
  527. package/dist/types/core/index.d.ts +0 -9
  528. package/dist/types/core/page/Page.d.ts +0 -23
  529. package/dist/types/core/section/Section.d.ts +0 -7
  530. package/dist/types/hotkeys/HotKey.d.ts +0 -2
  531. package/dist/types/hotkeys/HotKeyLabel.d.ts +0 -2
  532. package/dist/types/hotkeys/HotKeyWrapper.d.ts +0 -11
  533. package/dist/types/hotkeys/commons.d.ts +0 -28
  534. package/dist/types/overlays/alert/Alert.d.ts +0 -41
  535. package/dist/types/overlays/flyout/Flyout.d.ts +0 -57
  536. package/dist/types/overlays/index.d.ts +0 -6
  537. package/dist/types/overlays/message/Message.d.ts +0 -21
  538. package/dist/types/overlays/modal/Modal.d.ts +0 -53
  539. package/dist/types/overlays/toast/Toast.d.ts +0 -33
  540. package/dist/types/overlays/tooltip/Tooltip.d.ts +0 -18
  541. package/dist/types/types/icons.d.ts +0 -197
  542. package/dist/types/typography/Link.d.ts +0 -25
  543. package/dist/types/typography/index.d.ts +0 -6
  544. package/src/components/animations/Animations.module.css +0 -253
  545. package/src/components/animations/Animations.tsx +0 -196
  546. package/src/components/avatar/Avatar.module.css +0 -90
  547. package/src/components/badge/Badge.module.css +0 -165
  548. package/src/components/breadcrumbs/Breadcrumbs.module.css +0 -189
  549. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -109
  550. package/src/components/button/Button.module.css +0 -375
  551. package/src/components/card/Card.module.css +0 -152
  552. package/src/components/chip/Chip.module.css +0 -118
  553. package/src/components/collapsable/Collapsable.module.css +0 -30
  554. package/src/components/icon/Icon.module.css +0 -71
  555. package/src/components/index.ts +0 -62
  556. package/src/components/media/Media.module.css +0 -112
  557. package/src/context/NotificationCenter.tsx +0 -223
  558. package/src/core/aside/Aside.module.css +0 -231
  559. package/src/core/boundary/ErrorBoundary.module.css +0 -65
  560. package/src/core/headfoot/HeadFoot.module.css +0 -38
  561. package/src/core/index.ts +0 -32
  562. package/src/core/page/Page.module.css +0 -46
  563. package/src/core/page/Page.tsx +0 -101
  564. package/src/core/responsive/Responsive.module.css +0 -85
  565. package/src/core/section/Section.module.css +0 -28
  566. package/src/core/section/Section.tsx +0 -54
  567. package/src/core/theme/Theme.module.css +0 -30
  568. package/src/core/viewport/Viewport.module.css +0 -32
  569. package/src/hooks/useControlledValue.tsx +0 -43
  570. package/src/hotkeys/HotKey.tsx +0 -39
  571. package/src/hotkeys/HotKeyLabel.tsx +0 -61
  572. package/src/hotkeys/HotKeyWrapper.tsx +0 -137
  573. package/src/hotkeys/commons.ts +0 -74
  574. package/src/overlays/alert/Alert.tsx +0 -252
  575. package/src/overlays/flyout/Flyout.tsx +0 -283
  576. package/src/overlays/index.ts +0 -29
  577. package/src/overlays/message/Message.tsx +0 -107
  578. package/src/overlays/modal/Modal.tsx +0 -244
  579. package/src/overlays/toast/Toast.module.css +0 -37
  580. package/src/overlays/toast/Toast.tsx +0 -216
  581. package/src/overlays/tooltip/Tooltip.module.css +0 -53
  582. package/src/overlays/tooltip/Tooltip.tsx +0 -200
  583. package/src/types/icons.ts +0 -426
  584. package/src/typography/Link.tsx +0 -113
  585. package/src/typography/Typography.module.css +0 -68
  586. package/src/typography/index.ts +0 -29
  587. /package/dist/cjs/i18n/{ar.json.js → ar/core.json.js} +0 -0
  588. /package/dist/cjs/i18n/{en.json.js → en/core.json.js} +0 -0
  589. /package/dist/esm/i18n/{ar.json.js → ar/core.json.js} +0 -0
  590. /package/dist/esm/i18n/{en.json.js → en/core.json.js} +0 -0
  591. /package/src/i18n/{ar.json → ar/core.json} +0 -0
  592. /package/src/i18n/{en.json → en/core.json} +0 -0
@@ -0,0 +1,72 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
+ import AlertCircleIcon from '@iconify-react/line-md/alert-circle';
6
+ import CloseCircleIcon from '@iconify-react/line-md/close-circle';
7
+ import ConfirmCircleIcon from '@iconify-react/line-md/confirm-circle';
8
+ import QuestionCircleIcon from '@iconify-react/line-md/question-circle';
9
+ import { Icon } from '../icon/Icon.js';
10
+ import { jsx } from 'react/jsx-runtime';
11
+
12
+ var _excluded = ["type"];
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var ANIMATION_ICONS = {
16
+ info: /*#__PURE__*/jsx(AlertCircleIcon, {
17
+ height: "1.25em",
18
+ width: "1.25em",
19
+ className: "rotate-180"
20
+ }),
21
+ check: /*#__PURE__*/jsx(ConfirmCircleIcon, {
22
+ height: "1.25em",
23
+ width: "1.25em"
24
+ }),
25
+ cross: /*#__PURE__*/jsx(CloseCircleIcon, {
26
+ height: "1.25em",
27
+ width: "1.25em"
28
+ }),
29
+ question: /*#__PURE__*/jsx(QuestionCircleIcon, {
30
+ height: "1.25em",
31
+ width: "1.25em"
32
+ }),
33
+ exclaim: /*#__PURE__*/jsx(AlertCircleIcon, {
34
+ height: "1.25em",
35
+ width: "1.25em"
36
+ })
37
+ };
38
+
39
+ /**
40
+ * Animated status indicator that renders a themed icon with animation.
41
+ *
42
+ * Renders one of five predefined icon types (check, cross, question, exclaim, info)
43
+ * using the `Icon` component. Useful for displaying success, error, help, alert,
44
+ * or info states in forms, notifications, and feedback UI.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * import { AnimationIndicator } from "@react-fabric/core";
49
+ *
50
+ * // Success indicator
51
+ * <AnimationIndicator type="check" color="success-500" />
52
+ *
53
+ * // Error indicator
54
+ * <AnimationIndicator type="cross" color="error-500" />
55
+ *
56
+ * // Warning indicator
57
+ * <AnimationIndicator type="exclaim" color="warning-500" />
58
+ *
59
+ * // Help indicator
60
+ * <AnimationIndicator type="question" />
61
+ * ```
62
+ */
63
+ function AnimationIndicator(_ref) {
64
+ var type = _ref.type,
65
+ props = _objectWithoutProperties(_ref, _excluded);
66
+ // Map the type to its corresponding icon and delegate rendering to the Icon component
67
+ return /*#__PURE__*/jsx(Icon, _objectSpread(_objectSpread({}, props), {}, {
68
+ icon: ANIMATION_ICONS[type || "info"]
69
+ }));
70
+ }
71
+
72
+ export { AnimationIndicator };
@@ -0,0 +1,77 @@
1
+ 'use client';
2
+
3
+ import { cn } from '@react-fabric/utilities';
4
+ import 'react';
5
+ import { jsx } from 'react/jsx-runtime';
6
+ import { getColor } from '../../utils/getColor.js';
7
+
8
+ /**
9
+ * React Fabric
10
+ * @version 1.0.0
11
+ * @license MIT
12
+ * @copyright 2024 Adarsh Pastakia
13
+ *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ * of this software and associated documentation files (the "Software"), to deal
16
+ * in the Software without restriction, including without limitation the rights
17
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ * copies of the Software, and to permit persons to whom the Software is
19
+ * furnished to do so, subject to the following conditions:
20
+ *
21
+ * The above copyright notice and this permission notice shall be included in all
22
+ * copies or substantial portions of the Software.
23
+ *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ * SOFTWARE.
31
+ */
32
+
33
+ /**
34
+ * Loading overlay that renders an animated icon over a blurred backdrop.
35
+ *
36
+ * Renders a centered icon inside a frosted-glass mask, typically used to
37
+ * indicate loading or disabled states. The mask covers its parent element
38
+ * and prevents user interaction while visible.
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * import { AnimationLoader } from "@react-fabric/core";
43
+ *
44
+ * // Loading overlay with medium blur
45
+ * <div style={{ position: "relative" }}>
46
+ * <p>Page content</p>
47
+ * <AnimationLoader icon="icon-[mdi--loading]" maskBlur="md" />
48
+ * </div>
49
+ *
50
+ * // Custom color and size
51
+ * <AnimationLoader icon="icon-[mdi--loading]" color="primary-500" size="3rem" />
52
+ * ```
53
+ */
54
+ function AnimationLoader(_ref) {
55
+ var _ref$color = _ref.color,
56
+ color = _ref$color === void 0 ? "tint-500" : _ref$color,
57
+ _ref$size = _ref.size,
58
+ size = _ref$size === void 0 ? "2rem" : _ref$size,
59
+ icon = _ref.icon,
60
+ maskBlur = _ref.maskBlur;
61
+ return /*#__PURE__*/jsx("div", {
62
+ className: cn("fabric-loader-mask", "absolute inset-0 z-10 flex justify-center items-center cursor-wait", maskBlur === "sm" && "backdrop-blur-sm", maskBlur === "md" && "backdrop-blur-md", maskBlur === "lg" && "backdrop-blur-lg"),
63
+ children: /*#__PURE__*/jsx("div", {
64
+ "data-ref": "loader",
65
+ className: "outline outline-tint-300/50 p-4 bg-white/50 dark:bg-black/50 backdrop-blur-xs leading-0 rounded",
66
+ children: /*#__PURE__*/jsx("div", {
67
+ className: cn(icon, "aspect-square"),
68
+ style: {
69
+ fontSize: size,
70
+ color: getColor(color)
71
+ }
72
+ })
73
+ })
74
+ });
75
+ }
76
+
77
+ export { AnimationLoader };
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { AnimationLoader } from './Loader.js';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
+ /**
10
+ * Animated loading indicator that renders a "bars scale fade" spinner.
11
+ *
12
+ * A thin wrapper around `AnimationLoader` that provides a pre-configured
13
+ * bars-style loading animation. Useful for inline loading indicators in
14
+ * forms, tables, or content areas.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import { LoadingBars } from "@react-fabric/core";
19
+ *
20
+ * // Basic bars spinner
21
+ * <LoadingBars />
22
+ *
23
+ * // Custom color and size
24
+ * <LoadingBars color="primary-500" size="2rem" />
25
+ *
26
+ * // With backdrop blur
27
+ * <LoadingBars maskBlur="sm" />
28
+ * ```
29
+ */
30
+ function LoadingBars(props) {
31
+ // Delegate to AnimationLoader with a pre-configured bars-scale-fade icon
32
+ return /*#__PURE__*/jsx(AnimationLoader, _objectSpread({
33
+ icon: "icon-[svg-spinners--bars-scale-fade]"
34
+ }, props));
35
+ }
36
+
37
+ export { LoadingBars };
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ /**
6
+ * React Fabric
7
+ * @version 1.0.0
8
+ * @license MIT
9
+ * @copyright 2024 Adarsh Pastakia
10
+ *
11
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ * of this software and associated documentation files (the "Software"), to deal
13
+ * in the Software without restriction, including without limitation the rights
14
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ * copies of the Software, and to permit persons to whom the Software is
16
+ * furnished to do so, subject to the following conditions:
17
+ *
18
+ * The above copyright notice and this permission notice shall be included in all
19
+ * copies or substantial portions of the Software.
20
+ *
21
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ * SOFTWARE.
28
+ */
29
+
30
+ /**
31
+ * Inline loading indicator that renders a top-border shimmer animation.
32
+ *
33
+ * A lightweight loading bar displayed as a thin horizontal line at the top
34
+ * of its container. Useful for page-level or section-level loading states
35
+ * where a full overlay would be too intrusive.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * import { LoadingLine } from "@react-fabric/core";
40
+ *
41
+ * // Page-level loading indicator
42
+ * <div>
43
+ * <LoadingLine />
44
+ * <p>Content loads below...</p>
45
+ * </div>
46
+ * ```
47
+ */
48
+ function LoadingLine() {
49
+ // Renders a thin shimmer bar at the top of the container using CSS animations
50
+ return /*#__PURE__*/jsx("div", {
51
+ className: "fabric-loader area-loader relative overflow-x-clip h-0",
52
+ "data-ref": "loading",
53
+ children: /*#__PURE__*/jsx("div", {
54
+ className: "absolute inset-x-0 top-0 z-10 py-px overflow-hidden after:absolute after:block after:inset-0"
55
+ })
56
+ });
57
+ }
58
+
59
+ export { LoadingLine };
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { AnimationLoader } from './Loader.js';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
+ /**
10
+ * Animated loading indicator that renders an "eclipse" spinner.
11
+ *
12
+ * A thin wrapper around `AnimationLoader` that provides a pre-configured
13
+ * circular loading animation. Useful for inline loading indicators in
14
+ * images, charts, and data cards.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import { LoadingSpinner } from "@react-fabric/core";
19
+ *
20
+ * // Basic spinner
21
+ * <LoadingSpinner />
22
+ *
23
+ * // Custom color and size
24
+ * <LoadingSpinner color="primary-500" size="2rem" />
25
+ *
26
+ * // With backdrop blur
27
+ * <LoadingSpinner maskBlur="sm" />
28
+ * ```
29
+ */
30
+ function LoadingSpinner(props) {
31
+ // Delegate to AnimationLoader with a pre-configured eclipse spinner icon
32
+ return /*#__PURE__*/jsx(AnimationLoader, _objectSpread({
33
+ icon: "icon-[svg-spinners--eclipse]"
34
+ }, props));
35
+ }
36
+
37
+ export { LoadingSpinner };
@@ -0,0 +1,88 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
+ import { cn } from '@react-fabric/utilities';
6
+ import 'react';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+ import { getColor } from '../../utils/getColor.js';
9
+
10
+ var _excluded = ["className", "classNames", "color"];
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ /**
14
+ * Content placeholder that renders a grayed-out card mockup with icon, title, and line slots.
15
+ *
16
+ * Displays a pre-styled skeleton card layout (icon area + title + two rows of text lines)
17
+ * to occupy space while real content loads. Useful for list items, cards, panels, and
18
+ * virtualized lists.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * import { Skeleton } from "@react-fabric/core";
23
+ *
24
+ * // Basic skeleton placeholder
25
+ * <Skeleton />
26
+ *
27
+ * // Custom color
28
+ * <Skeleton color="primary-100" />
29
+ *
30
+ * // Custom slot styling
31
+ * <Skeleton classNames={{ titlePlaceholder: "w-2/3" }} />
32
+ * ```
33
+ */
34
+ function Skeleton(_ref) {
35
+ var className = _ref.className,
36
+ classNames = _ref.classNames,
37
+ _ref$color = _ref.color,
38
+ color = _ref$color === void 0 ? "tint-200" : _ref$color,
39
+ rest = _objectWithoutProperties(_ref, _excluded);
40
+ var bgColor = getColor(color);
41
+ return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
42
+ className: cn("fabric-skeleton", "p-2 animate-fade flex gap-2 max-w-lg", className, classNames === null || classNames === void 0 ? void 0 : classNames.root),
43
+ "data-ref": "skeleton"
44
+ }, rest), {}, {
45
+ children: [/*#__PURE__*/jsx("div", {
46
+ className: cn("rounded aspect-square h-12", classNames === null || classNames === void 0 ? void 0 : classNames.iconPlaceholder),
47
+ style: {
48
+ backgroundColor: bgColor
49
+ }
50
+ }), /*#__PURE__*/jsxs("div", {
51
+ className: "flex-1 flex flex-col gap-2",
52
+ children: [/*#__PURE__*/jsx("div", {
53
+ className: cn("h-3 rounded-full", classNames === null || classNames === void 0 ? void 0 : classNames.titlePlaceholder),
54
+ style: {
55
+ backgroundColor: bgColor
56
+ }
57
+ }), /*#__PURE__*/jsxs("div", {
58
+ className: "flex gap-2",
59
+ children: [/*#__PURE__*/jsx("div", {
60
+ className: cn("h-2 rounded-full basis-[30%]", classNames === null || classNames === void 0 ? void 0 : classNames.linePlaceholder),
61
+ style: {
62
+ backgroundColor: bgColor
63
+ }
64
+ }), /*#__PURE__*/jsx("div", {
65
+ className: cn("h-2 rounded-full basis-[60%]", classNames === null || classNames === void 0 ? void 0 : classNames.linePlaceholder),
66
+ style: {
67
+ backgroundColor: bgColor
68
+ }
69
+ })]
70
+ }), /*#__PURE__*/jsxs("div", {
71
+ className: "flex gap-2",
72
+ children: [/*#__PURE__*/jsx("div", {
73
+ className: cn("h-2 rounded-full basis-[30%]", classNames === null || classNames === void 0 ? void 0 : classNames.linePlaceholder),
74
+ style: {
75
+ backgroundColor: bgColor
76
+ }
77
+ }), /*#__PURE__*/jsx("div", {
78
+ className: cn("h-2 rounded-full basis-[60%]", classNames === null || classNames === void 0 ? void 0 : classNames.linePlaceholder),
79
+ style: {
80
+ backgroundColor: bgColor
81
+ }
82
+ })]
83
+ })]
84
+ })]
85
+ }));
86
+ }
87
+
88
+ export { Skeleton };
@@ -3,17 +3,15 @@
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
- import { isSvgPath } from '@react-fabric/utilities';
6
+ import { isSvgPath, cn } from '@react-fabric/utilities';
7
7
  import BoringAvatar from 'boring-avatars';
8
- import classNames from 'classnames';
9
8
  import { useState, useMemo } from 'react';
10
- import { getColor, getBgClass, getColorClass } from '../../utils/getColor.js';
11
- import classes from './Avatar.module.css';
12
9
  import { jsxs, jsx } from 'react/jsx-runtime';
10
+ import { getColor } from '../../utils/getColor.js';
13
11
 
14
- var _excluded = ["ref", "name", "avatar", "fallbackIcon", "bg", "color", "size", "rounded", "variant", "className", "viewBox", "onClick"];
12
+ var _excluded = ["ref", "name", "avatar", "fallbackIcon", "bg", "color", "size", "rounded", "variant", "className", "viewBox", "preventDefault", "onClick"];
15
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
15
  var SizeMap = {
18
16
  xs: "0.875rem",
19
17
  sm: "1.125rem",
@@ -23,9 +21,24 @@ var SizeMap = {
23
21
  };
24
22
 
25
23
  /**
26
- * An avatar is a graphical representation of a user's identity.
24
+ * User avatar that renders an image with a Boring Avatar fallback.
25
+ *
26
+ * Displays a user image, falling back to a Boring Avatar (or text initials)
27
+ * when no image is provided or the image fails to load. Supports four
28
+ * Boring Avatar variants (beam, text, pixel, bauhaus) and custom SVG/icon fallbacks.
29
+ *
30
+ * @see {@link https://boringavatars.com/}
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * import { Avatar } from "@react-fabric/core";
35
+ *
36
+ * <Avatar name="Ada Lovelace" avatar="/ada.jpg" />
37
+ * <Avatar name="John Doe" variant="pixel" size="lg" />
38
+ * <Avatar name="Jane" fallbackIcon="icon-[mdi--user]" variant="text" />
39
+ * ```
27
40
  */
28
- var Avatar = function Avatar(_ref) {
41
+ function Avatar(_ref) {
29
42
  var ref = _ref.ref,
30
43
  name = _ref.name,
31
44
  avatar = _ref.avatar,
@@ -40,14 +53,15 @@ var Avatar = function Avatar(_ref) {
40
53
  className = _ref.className,
41
54
  _ref$viewBox = _ref.viewBox,
42
55
  viewBox = _ref$viewBox === void 0 ? "0 0 24 24" : _ref$viewBox,
43
- onClick = _ref.onClick,
44
- aria = _objectWithoutProperties(_ref, _excluded);
56
+ preventDefault = _ref.preventDefault,
57
+ _onClick = _ref.onClick,
58
+ props = _objectWithoutProperties(_ref, _excluded);
45
59
  var _useState = useState(true),
46
60
  _useState2 = _slicedToArray(_useState, 2),
47
61
  fallback = _useState2[0],
48
62
  setFallback = _useState2[1];
49
63
 
50
- /** ***************** style map *******************/
64
+ // Compute inline styles from props (memoized to prevent re-renders)
51
65
  var styles = useMemo(function () {
52
66
  var s = {};
53
67
  if (bg) {
@@ -65,13 +79,13 @@ var Avatar = function Avatar(_ref) {
65
79
  return s;
66
80
  }, [bg, color, size]);
67
81
 
68
- /** ***************** render icon *******************/
82
+ // Render avatar image with a fade-in placeholder behind it
69
83
  var avatarImage = useMemo(function () {
70
84
  setFallback(!avatar);
71
85
  return avatar && /*#__PURE__*/jsxs("div", {
72
86
  className: "contents",
73
87
  children: [/*#__PURE__*/jsx("div", {
74
- className: classNames(classes.imgPlaceholder, "absolute inset-0 bg-gray animate-pulse")
88
+ className: "fabric-imgPlaceholder absolute inset-0 bg-gray animate-fade -z-1"
75
89
  }), /*#__PURE__*/jsx("img", {
76
90
  src: avatar,
77
91
  alt: avatar,
@@ -86,10 +100,13 @@ var Avatar = function Avatar(_ref) {
86
100
  })]
87
101
  });
88
102
  }, [avatar]);
103
+
104
+ // Render fallback: custom icon, text initials, or Boring Avatar
89
105
  var fallbackAvatar = useMemo(function () {
90
106
  if (fallbackIcon) {
91
107
  return isSvgPath(fallbackIcon) ? /*#__PURE__*/jsx("svg", {
92
108
  viewBox: viewBox,
109
+ className: "p-[0.125em]",
93
110
  children: /*#__PURE__*/jsx("path", {
94
111
  fill: "currentColor",
95
112
  d: fallbackIcon.toString()
@@ -99,8 +116,8 @@ var Avatar = function Avatar(_ref) {
99
116
  });
100
117
  }
101
118
  if (variant === "text") {
102
- var _name$match;
103
- var _ref2 = (_name$match = name.match(/(?=(\w).* (\w).*)|(?=(\w\w).*)/)) !== null && _name$match !== void 0 ? _name$match : [],
119
+ // Extract initials: "John Doe" -> "JD", "Jane" -> "JA"
120
+ var _ref2 = name.match(/(?=(\w).* (\w).*)|(?=(\w\w).*)/),
104
121
  _ref3 = _slicedToArray(_ref2, 4),
105
122
  first = _ref3[1],
106
123
  second = _ref3[2],
@@ -121,23 +138,27 @@ var Avatar = function Avatar(_ref) {
121
138
  })
122
139
  });
123
140
  }
141
+ // Default: generate a Boring Avatar from the name
124
142
  return /*#__PURE__*/jsx(BoringAvatar, {
125
143
  square: true,
126
144
  size: 64,
127
145
  variant: variant,
128
146
  name: name
129
147
  });
130
- }, [name, variant, fallbackIcon]);
148
+ }, [fallbackIcon, variant, name, viewBox]);
131
149
  return /*#__PURE__*/jsxs("dfn", _objectSpread(_objectSpread({
132
150
  role: "presentation",
133
- className: classNames(classes.avatar, className, "select-none relative overflow-hidden inline-block box-content leading-none not-italic text-center", bg && getBgClass(bg), color && getColorClass(color), !rounded && "rounded", rounded && "rounded-full"),
134
- onClick: onClick,
151
+ className: cn("fabric-avatar", rounded ? "rounded-full" : "rounded", "select-none relative overflow-hidden inline-block box-content leading-none not-italic text-center is-clickable:cursor-pointer", className),
152
+ onClick: function onClick(e) {
153
+ if (preventDefault) e.preventDefault();
154
+ _onClick === null || _onClick === void 0 || _onClick(e);
155
+ },
135
156
  style: styles,
136
- "data-clickable": !!onClick,
157
+ "data-clickable": !!_onClick,
137
158
  ref: ref
138
- }, aria), {}, {
159
+ }, props), {}, {
139
160
  children: [!fallback && avatarImage, fallback && fallbackAvatar]
140
161
  }));
141
- };
162
+ }
142
163
 
143
164
  export { Avatar };
@@ -2,15 +2,14 @@
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
- import classNames from 'classnames';
5
+ import { cn } from '@react-fabric/utilities';
6
6
  import { useMemo, Children } from 'react';
7
7
  import { useMemoDebugger } from '../../hooks/useEffectDebugger.js';
8
- import classes from './Avatar.module.css';
9
8
  import { jsxs, jsx } from 'react/jsx-runtime';
10
9
 
11
- var _excluded = ["ref", "children", "className", "totalCount", "rounded", "size"];
10
+ var _excluded = ["ref", "children", "className", "max", "rounded", "size"];
12
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
13
  var SizeMap = {
15
14
  xs: "0.875rem",
16
15
  sm: "1.125rem",
@@ -20,17 +19,34 @@ var SizeMap = {
20
19
  };
21
20
 
22
21
  /**
23
- * Group multiple avatars together
22
+ * Horizontal group of avatars with an overflow count badge.
23
+ *
24
+ * Renders its avatar children in a flex row, truncating to `max` visible
25
+ * avatars and appending a "+N" badge for the remainder. Each avatar is
26
+ * sized according to the `size` prop.
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * import { Avatar, AvatarGroup } from "@react-fabric/core";
31
+ *
32
+ * <AvatarGroup max={3} size="md">
33
+ * <Avatar name="John Doe" avatar="/john.jpg" />
34
+ * <Avatar name="Jane Smith" avatar="/jane.jpg" />
35
+ * <Avatar name="Alice Johnson" avatar="/alice.jpg" />
36
+ * <Avatar name="Bob Brown" avatar="/bob.jpg" />
37
+ * </AvatarGroup>
38
+ * // Renders 3 avatars + a "+1" badge
39
+ * ```
24
40
  */
25
- var AvatarGroup = function AvatarGroup(_ref) {
41
+ function AvatarGroup(_ref) {
26
42
  var ref = _ref.ref,
27
43
  children = _ref.children,
28
44
  className = _ref.className,
29
- totalCount = _ref.totalCount,
45
+ max = _ref.max,
30
46
  rounded = _ref.rounded,
31
47
  size = _ref.size,
32
- aria = _objectWithoutProperties(_ref, _excluded);
33
- /** ***************** style map *******************/
48
+ props = _objectWithoutProperties(_ref, _excluded);
49
+ // Compute inline styles from size prop (memoized to prevent re-renders)
34
50
  var styles = useMemoDebugger(function () {
35
51
  var s = {};
36
52
  if (size && !(size in SizeMap)) {
@@ -41,18 +57,23 @@ var AvatarGroup = function AvatarGroup(_ref) {
41
57
  }
42
58
  return s;
43
59
  }, [size], "Icon styles");
60
+
61
+ // Normalize children to an array, filtering out falsy values
62
+ // eslint-disable-next-line @eslint-react/no-children-to-array
44
63
  var avatars = useMemo(function () {
45
64
  return Children.toArray(children).filter(Boolean);
46
65
  }, [children]);
66
+ // Calculate how many avatars exceed the max (0 if none)
47
67
  var diff = useMemo(function () {
48
- return totalCount && totalCount > avatars.length && totalCount - avatars.length;
49
- }, [avatars, totalCount]);
50
- return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({}, aria), {}, {
68
+ return max && avatars.length > max && avatars.length - max;
69
+ }, [avatars, max]);
70
+ return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({}, props), {}, {
51
71
  ref: ref,
52
- className: classNames(classes.avatarGroup, className, "inline-flex flex-nowrap", !rounded && "rounded", rounded && "rounded-full"),
72
+ className: cn("fabric-avatarGroup", "inline-flex flex-nowrap", className, rounded ? "rounded-full" : "rounded"),
53
73
  style: styles,
54
- children: [avatars, !!diff && /*#__PURE__*/jsx("dfn", {
55
- className: classNames(classes.avatar, "select-none relative overflow-hidden inline-block box-content leading-none not-italic text-center", classes.extra),
74
+ children: [avatars.slice(0, max), !!diff && /*#__PURE__*/jsx("dfn", {
75
+ "data-ref": "avatarCount",
76
+ className: cn("fabric-avatar", "fabric-avatarGroup--extra", "select-none relative overflow-hidden inline-block box-content bg-muted leading-none not-italic text-center"),
56
77
  children: /*#__PURE__*/jsx("svg", {
57
78
  children: /*#__PURE__*/jsx("text", {
58
79
  x: "50%",
@@ -69,6 +90,6 @@ var AvatarGroup = function AvatarGroup(_ref) {
69
90
  })
70
91
  })]
71
92
  }));
72
- };
93
+ }
73
94
 
74
95
  export { AvatarGroup };