@react-fabric/core 1.0.0-beta.8 → 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
@@ -1,2 +1,26 @@
1
- import { type MenuProps } from "./types";
2
- export declare const Menu: (props: MenuProps) => import("react/jsx-runtime").JSX.Element;
1
+ import type { MenuProps } from "./types";
2
+ /**
3
+ * A component that displays a menu with items, supports nested menus and various interactions.
4
+ * It can be triggered by hover or click events, and allows for custom styling and behavior.
5
+ * This component is designed to be used within a Floating UI context, allowing for dynamic positioning and interaction handling.
6
+ * It can be nested within other menus to create complex menu structures.
7
+ *
8
+ * @example
9
+ * ```jsx
10
+ * <Menu
11
+ * className="my-menu"
12
+ * trigger="click"
13
+ * onClick={(id) => console.log(`Clicked item with id: ${id}`)}
14
+ * >
15
+ * <MenuItem id="item1" label="Item 1" />
16
+ * <MenuItem id="item2" label="Item 2" />
17
+ * <MenuItem id="item3" label="Item 3">
18
+ * <Menu>
19
+ * <MenuItem id="subitem1" label="Sub Item 1" />
20
+ * <MenuItem id="subitem2" label="Sub Item 2" />
21
+ * </Menu>
22
+ * </MenuItem>
23
+ * </Menu>
24
+ * ```
25
+ */
26
+ export declare function Menu(props: MenuProps): import("react").JSX.Element;
@@ -1,4 +1,19 @@
1
- /// <reference types="react" />
2
- import { type PolymorphicProps } from "../../types";
3
- import { type MenuItemProps } from "./types";
4
- export declare const MenuItem: <Tag extends import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> = "button">({ as, label, color, className, icon, iconBg, iconColor, appendLabel, rtlFlip, altIcon, id, active, disabled, onClick, badge, hotKey, minimal, "data-open": childOpen, ref, ...aria }: MenuItemProps & PolymorphicProps<Tag>) => import("react/jsx-runtime").JSX.Element;
1
+ import type { PolymorphicProps } from "../../types";
2
+ import type { MenuItemProps } from "./types";
3
+ /**
4
+ * A menu item component that can be used in a dropdown or menu.
5
+ * It supports various features such as icons, badges, hotkeys, and more.
6
+ * It can be customized with different colors, icons, and behaviors.
7
+ *
8
+ * @example
9
+ * ```jsx
10
+ * <MenuItem
11
+ * label="Settings"
12
+ * icon="settings"
13
+ * onClick={() => console.log("Settings clicked")}
14
+ * hotKey="Ctrl+S"
15
+ * badge={{ count: 3, color: "red" }}
16
+ * />
17
+ * ```
18
+ */
19
+ export declare function MenuItem<Tag extends React.ElementType = "button">({ as, label, color, className, icon, labelRender, appendLabel, altIcon, id, active, disabled, onClick, badge, hotKey, tabIndex, minimal, "data-open": childOpen, ref, ...aria }: MenuItemProps & PolymorphicProps<Tag>): import("react").JSX.Element;
@@ -1,6 +1,8 @@
1
- import { type ElementType, type MouseEvent } from "react";
2
- import { type AriaProps, type BadgeType, type CallbackReturn, type ChildrenProp, type ColorType, type CssProp, type IconProps, type TestProps } from "../../types";
3
- export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps {
1
+ import type { Hotkey } from "@tanstack/react-hotkeys";
2
+ import type { CallbackReturn, ChildrenProp, ColorBase, CssProp, TestProps } from "../../types";
3
+ import type { BadgeType } from "../badge/Badge";
4
+ import type { IconProps } from "../icon/Icon";
5
+ export interface MenuItemProps extends CssProp, TestProps {
4
6
  /**
5
7
  * menu id passed via menu.onClick
6
8
  */
@@ -9,14 +11,19 @@ export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps
9
11
  * item label
10
12
  */
11
13
  label: string;
14
+ labelRender?: React.ReactElement;
12
15
  /**
13
16
  * append label badge text
14
17
  */
15
- appendLabel?: string | false;
18
+ appendLabel?: React.ReactElement | string | number | false;
16
19
  /**
17
20
  * menu color
18
21
  */
19
- color?: ColorType;
22
+ color?: ColorBase;
23
+ /**
24
+ * icon path or props
25
+ */
26
+ icon?: IconProps;
20
27
  /**
21
28
  * item active
22
29
  */
@@ -32,7 +39,7 @@ export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps
32
39
  /**
33
40
  * keyboard shortcut label
34
41
  */
35
- hotKey?: string;
42
+ hotKey?: Hotkey | Hotkey[];
36
43
  /**
37
44
  * alternate icon align end (caret, arrow)
38
45
  */
@@ -40,20 +47,22 @@ export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps
40
47
  /**
41
48
  * click handler
42
49
  */
43
- onClick?: (e: MouseEvent) => CallbackReturn;
50
+ onClick?: (e: React.MouseEvent) => CallbackReturn;
44
51
  }
45
52
  export interface MenuRootProps extends CssProp {
46
53
  label?: never;
47
54
  minimal?: boolean;
48
- menuClassName?: never;
55
+ /**
56
+ * use this create a dropdown button within menu-item
57
+ */
58
+ forDropdown?: boolean;
49
59
  onClick?: (id: string) => CallbackReturn;
50
60
  }
51
- export interface MenuInnerProps extends MenuItemProps {
61
+ export interface MenuInnerProps extends Omit<MenuItemProps, "onClick"> {
52
62
  label: string;
53
63
  minimal?: never;
54
- /**
55
- * floating menu className
56
- */
57
- menuClassName?: string;
64
+ trigger?: "hover" | "click";
65
+ forDropdown?: boolean;
66
+ onClick?: (id: string) => CallbackReturn;
58
67
  }
59
- export type MenuProps = ChildrenProp<ElementType<MenuItemProps>> & (MenuRootProps | MenuInnerProps);
68
+ export type MenuProps = ChildrenProp<MenuItemProps> & (MenuRootProps | MenuInnerProps);
@@ -1,5 +1,5 @@
1
- import { type AriaProps, type CssProp, type TestProps } from "../../types";
2
- export interface MeterProps extends CssProp, AriaProps, TestProps {
1
+ import type { CssProp, CustomColors, TestProps } from "../../types";
2
+ export interface MeterProps extends CssProp, TestProps {
3
3
  /**
4
4
  * meter value (0-100)
5
5
  */
@@ -8,5 +8,25 @@ export interface MeterProps extends CssProp, AriaProps, TestProps {
8
8
  * hide value label
9
9
  */
10
10
  hideLabel?: boolean;
11
+ color?: CustomColors;
11
12
  }
12
- export declare const Meter: ({ value, hideLabel, className, ...aria }: MeterProps) => import("react/jsx-runtime").JSX.Element;
13
+ /**
14
+ * A component that displays a visual representation of a value as a series of dots.
15
+ * It is useful for showing progress or completion status in a compact form.
16
+ * The meter consists of 6 dots, each representing approximately 16.67% of the total value.
17
+ * The active dots are filled based on the value provided, and the remaining dots are empty.
18
+ * The component can also display a label showing the percentage value.
19
+ *
20
+ * @example
21
+ * ```jsx
22
+ * <Meter value={75} />
23
+ * // Renders a meter with 4 active dots and a label showing "75%"
24
+ *
25
+ * <Meter value={50} hideLabel />
26
+ * // Renders a meter with 3 active dots and no label
27
+ *
28
+ * <Meter value={100} className="custom-meter" />
29
+ * // Renders a meter with all 6 active dots and a custom class name
30
+ * ```
31
+ */
32
+ export declare function Meter({ value, hideLabel, color, className, ...props }: MeterProps): import("react").JSX.Element;
@@ -0,0 +1,52 @@
1
+ import type { CallbackReturn, ChildrenProp, CssPropWithMap, TestProps } from "../../types";
2
+ import type { TitlebarProps } from "../titlebar/Titlebar";
3
+ export interface ModalProps<T> extends TestProps, ChildrenProp, TitlebarProps, CssPropWithMap<{
4
+ root: string;
5
+ body?: string;
6
+ titlebar?: string;
7
+ title?: string;
8
+ icon?: string;
9
+ }> {
10
+ /**
11
+ * show loading indicator
12
+ */
13
+ loading?: boolean;
14
+ /**
15
+ * modal size
16
+ */
17
+ size?: "sm" | "md" | "lg" | "xl" | "screen";
18
+ /**
19
+ * height
20
+ */
21
+ height?: string | number;
22
+ /**
23
+ * width
24
+ */
25
+ width?: string | number;
26
+ /**
27
+ * minimum height
28
+ */
29
+ minHeight?: string | number;
30
+ /**
31
+ * minimum width
32
+ */
33
+ minWidth?: string | number;
34
+ /**
35
+ * portal root element
36
+ */
37
+ root?: HTMLElement;
38
+ /**
39
+ * hide mask background
40
+ */
41
+ hideMask?: boolean;
42
+ closeOnEscape?: boolean;
43
+ /**
44
+ * close handler
45
+ */
46
+ onClose?: (args: T | null) => void;
47
+ /**
48
+ * before close handler, return false to prevent close
49
+ */
50
+ onBeforeClose?: (args: T | null) => CallbackReturn;
51
+ }
52
+ export declare function Modal<T extends AnyObject = AnyObject>({ icon, className, classNames, title, actions, onClose, onBeforeClose, children, loading, root, size, hideMask, width, height, minHeight, minWidth, closeOnEscape, ...props }: ModalProps<T>): import("react").JSX.Element;
@@ -1,12 +1,38 @@
1
- import { type AriaProps, type ColorType, type CssProp, type TestProps } from "../../types";
2
- export interface NavigatorProps extends CssProp, AriaProps, TestProps {
1
+ import type { ChildProp, CssProp, CustomColors, TestProps } from "../../types";
2
+ export interface NavigatorProps extends CssProp, TestProps, Partial<ChildProp> {
3
+ /**
4
+ * item list length (ignore to enable infinite navigation)
5
+ */
6
+ length?: number;
7
+ /**
8
+ * current item index (ignore to enable infinite navigation)
9
+ */
10
+ current?: number;
11
+ disableKeyHandlers?: boolean;
3
12
  /**
4
13
  * navigator button color
5
14
  */
6
- color?: ColorType | string;
15
+ color?: CustomColors;
7
16
  /**
8
17
  * navigation handler
9
18
  */
10
19
  onNavigate: (dir: -1 | 1) => void;
11
20
  }
12
- export declare const Navigator: ({ className, onNavigate, color, ...aria }: NavigatorProps) => import("react/jsx-runtime").JSX.Element;
21
+ /**
22
+ * A component that provides navigation controls for traversing through items.
23
+ * It includes previous and next buttons, and supports keyboard navigation.
24
+ *
25
+ * @example
26
+ * ```jsx
27
+ * <Navigator
28
+ * className="my-navigator"
29
+ * onNavigate={(dir) => console.log(`Navigate ${dir === -1 ? 'previous' : 'next'}`)}
30
+ * color="blue"
31
+ * length={10}
32
+ * current={0}
33
+ * >
34
+ * <span>Current Item: 1</span>
35
+ * </Navigator>
36
+ * ```
37
+ */
38
+ export declare function Navigator({ className, onNavigate, color, children, length, current, disableKeyHandlers, ...aria }: NavigatorProps): import("react").JSX.Element;
@@ -1,28 +1,18 @@
1
- /// <reference types="react" />
2
- import { type ContentProps } from "../../core/content/Content";
3
- import { type HeadFootProps } from "../../core/headfoot/HeadFoot";
4
- import { type AriaProps, type ChildrenProp, type CollapseProps, type CssProp, type ExpandProps, type IconProps, type TestProps } from "../../types";
5
- export interface PanelProps extends CssProp, AriaProps, TestProps, IconProps, ExpandProps, CollapseProps, ChildrenProp<HeadFootProps | ContentProps> {
6
- /**
7
- * panel id used by panel stack
8
- */
9
- panelId?: string;
10
- /**
11
- * panel title
12
- */
1
+ import type { ContentProps } from "../../core/content/Content";
2
+ import type { HeadFootProps } from "../../core/headfoot/HeadFoot";
3
+ import type { ChildrenProp, CollapseProps, CssPropWithMap, ExpandProps, TestProps } from "../../types";
4
+ import type { TitlebarProps } from "../titlebar/Titlebar";
5
+ export interface PanelProps extends CssPropWithMap<{
6
+ root: string;
7
+ body?: string;
8
+ titlebar?: string;
13
9
  title?: string;
10
+ icon?: string;
11
+ }>, TestProps, ExpandProps, CollapseProps, TitlebarProps, ChildrenProp<HeadFootProps | ContentProps> {
14
12
  /**
15
- * header actions
16
- */
17
- actions?: JSX.Element;
18
- /**
19
- * header css classname(s)
20
- */
21
- headerClassName?: string;
22
- /**
23
- * title css classname(s)
13
+ * panel id used by panel stack
24
14
  */
25
- titleClassName?: string;
15
+ panelId?: string | number;
26
16
  /**
27
17
  * loading state
28
18
  */
@@ -56,4 +46,34 @@ export interface PanelProps extends CssProp, AriaProps, TestProps, IconProps, Ex
56
46
  */
57
47
  onClose?: () => void;
58
48
  }
59
- export declare const Panel: ({ children, className, titleClassName, headerClassName, title, actions, icon, iconBg, iconColor, rtlFlip, panelId, height, width, minHeight, minWidth, maxHeight, maxWidth, loading, expandable, expanded: _expanded, onExpand, collapsable, collapsed: _collapsed, onCollapse, onClose, onBack, ...aria }: PanelProps) => import("react/jsx-runtime").JSX.Element;
49
+ /**
50
+ * A component that represents a panel with a header, body, and optional actions.
51
+ * It supports expandable and collapsible functionality, loading state, and customizable styles.
52
+ * The panel can be resized and has a fixed position when expanded.
53
+ * It can be customized with different colors, icons, and behaviors.
54
+ * This component is useful for displaying content in a structured way, allowing users to interact with it through actions and toggles.
55
+ * It can be used in various applications where panels are needed, such as dashboards, settings pages, or content management systems.
56
+ *
57
+ * @example
58
+ * ```jsx
59
+ * <Panel
60
+ * title="Panel Title"
61
+ * icon="icon-[mdi--info]"
62
+ * actions={<button>Action</button>}
63
+ * expandable
64
+ * collapsable
65
+ * onExpand={() => console.log("Expanded")}
66
+ * onCollapse={() => console.log("Collapsed")}
67
+ * onClose={() => console.log("Closed")}
68
+ * height="400px"
69
+ * width="300px"
70
+ * minHeight="200px"
71
+ * minWidth="200px"
72
+ * maxHeight="600px"
73
+ * maxWidth="600px"
74
+ * >
75
+ * <p>This is the content of the panel.</p>
76
+ * </Panel>
77
+ * ```
78
+ */
79
+ export declare function Panel({ children, className, classNames, title, actions, icon, panelId, height, width, minHeight, minWidth, maxHeight, maxWidth, loading, expandable, expanded: _expanded, onExpand, collapsable, collapsed: _collapsed, onCollapse, onClose, onBack, ...aria }: PanelProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { type ChildrenProp } from "../../types";
1
+ import type { ChildrenProp } from "../../types";
2
2
  export interface PanelGroupProps extends ChildrenProp {
3
3
  /**
4
4
  * active panel id / index
@@ -7,6 +7,25 @@ export interface PanelGroupProps extends ChildrenProp {
7
7
  /**
8
8
  * active change callback
9
9
  */
10
- onActiveChange?: (panelId: string) => void;
10
+ onActiveChange?: (panelId: string | number) => void;
11
11
  }
12
- export declare const PanelGroup: ({ children, activePanel, onActiveChange, }: PanelGroupProps) => import("react/jsx-runtime").JSX.Element;
12
+ /**
13
+ * A component that groups multiple panels together, allowing for one panel to be expanded at a time.
14
+ * This component allows you to manage a group of panels where only one can be expanded at a time.
15
+ * It accepts an `activePanel` prop to control which panel is currently expanded,
16
+ * and an `onActiveChange` callback that is triggered when the active panel changes.
17
+ * It uses the `Panel` component to render each individual panel within the group.
18
+ *
19
+ * @example
20
+ * ```jsx
21
+ * <PanelGroup
22
+ * activePanel="panel1"
23
+ * onActiveChange={(panelId) => console.log(`Active panel changed to: ${panelId}`)}
24
+ * >
25
+ * <Panel panelId="panel1" title="Panel 1">Content for Panel 1</Panel>
26
+ * <Panel panelId="panel2" title="Panel 2">Content for Panel 2</Panel>
27
+ * <Panel panelId="panel3" title="Panel 3">Content for Panel 3</Panel>
28
+ * </PanelGroup>
29
+ * ```
30
+ */
31
+ export declare function PanelGroup({ children, activePanel, onActiveChange }: PanelGroupProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { type ChildrenProp, type CssProp } from "../../types";
1
+ import type { ChildrenProp, CssProp } from "../../types";
2
2
  export interface PanelStackProps extends CssProp, ChildrenProp {
3
3
  /**
4
4
  * active panel id
@@ -13,4 +13,30 @@ export interface PanelStackProps extends CssProp, ChildrenProp {
13
13
  */
14
14
  onBack?: (panelId: string, nextPanelId: string) => boolean | undefined;
15
15
  }
16
- export declare const PanelStack: ({ active, children, className, onPanelChange, onBack, ...rest }: PanelStackProps) => import("react/jsx-runtime").JSX.Element;
16
+ /**
17
+ * A component that manages a stack of panels, allowing navigation between them.
18
+ * This component allows you to manage a stack of panels where you can navigate between them.
19
+ * It accepts an `active` prop to control which panel is currently active,
20
+ * an `onPanelChange` callback that is triggered when the active panel changes,
21
+ * and an `onBack` callback to handle navigation to the previous panel in the history.
22
+ * It uses the `Panel` component to render each individual panel within the stack.
23
+ * The component maintains a history of panels to allow back navigation,
24
+ * and it updates the active panel based on user interactions.
25
+ *
26
+ * @example
27
+ * ```jsx
28
+ * <PanelStack
29
+ * active="panel1"
30
+ * onPanelChange={(panelId) => console.log(`Active panel changed to: ${panelId}`)}
31
+ * onBack={(currentPanel, nextPanel) => {
32
+ * console.log(`Navigating back from ${currentPanel} to ${nextPanel}`);
33
+ * return true; // return false to prevent navigation
34
+ * }}
35
+ * >
36
+ * <Panel panelId="panel1" title="Panel 1">Content for Panel 1</Panel>
37
+ * <Panel panelId="panel2" title="Panel 2">Content for Panel 2</Panel>
38
+ * <Panel panelId="panel3" title="Panel 3">Content for Panel 3</Panel>
39
+ * </PanelStack>
40
+ * ```
41
+ */
42
+ export declare function PanelStack({ children, className, onPanelChange, onBack, ...rest }: PanelStackProps): import("react").JSX.Element;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * React Fabric
3
+ * @version 1.0.0
4
+ * @license MIT
5
+ * @copyright 2024 Adarsh Pastakia
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ import type { CssProp, CustomColors } from "../../types";
26
+ import type { IconProps } from "../icon/Icon";
27
+ /**
28
+ * Represents a single selectable value type within a Pillbox.
29
+ */
30
+ type ValueType = string | number | boolean;
31
+ /**
32
+ * Configuration for a single pill option.
33
+ */
34
+ interface PillOption {
35
+ /**
36
+ * Unique value identifying this option.
37
+ */
38
+ value: ValueType;
39
+ /**
40
+ * Display text shown inside the pill.
41
+ */
42
+ label?: React.ReactNode;
43
+ /**
44
+ * Icon configuration rendered before the label.
45
+ */
46
+ icon?: IconProps;
47
+ /**
48
+ * Background color override for the active pill highlight.
49
+ */
50
+ bg?: CustomColors;
51
+ /**
52
+ * Text color override for the active pill.
53
+ */
54
+ color?: CustomColors;
55
+ /**
56
+ * Whether this option is disabled and cannot be selected.
57
+ */
58
+ disabled?: boolean;
59
+ }
60
+ /**
61
+ * Props for the Pillbox component.
62
+ */
63
+ interface PillboxProps extends CssProp {
64
+ /**
65
+ * Render pills in a full-width flex layout instead of inline.
66
+ */
67
+ block?: boolean;
68
+ /**
69
+ * Enable toggle behavior when exactly two options exist, allowing
70
+ * deselect on click.
71
+ */
72
+ toggle?: boolean;
73
+ /**
74
+ * Hide pills visually when the group is not hovered.
75
+ */
76
+ autoHide?: boolean;
77
+ /**
78
+ * Array of pill options to render.
79
+ */
80
+ options: PillOption[];
81
+ /**
82
+ * Currently selected value. Controlled component pattern.
83
+ */
84
+ value?: ValueType | null;
85
+ /**
86
+ * Callback invoked when a pill is selected with its value.
87
+ */
88
+ onChange?: (value: ValueType) => void;
89
+ }
90
+ /**
91
+ * A pill-based selector that renders a horizontal group of clickable options
92
+ * with an animated highlight tracking the selected pill.
93
+ */
94
+ export declare function Pillbox({ options, className, block, toggle, value, autoHide, onChange }: PillboxProps): import("react").JSX.Element;
95
+ export {};
@@ -1,7 +1,7 @@
1
- import { type ColorType } from "../../types";
1
+ import type { CustomColors } from "../../types";
2
2
  export interface ProgressProps {
3
3
  /**
4
- * progress value (0-100)
4
+ * progress value (0-1)
5
5
  */
6
6
  value: number;
7
7
  /**
@@ -11,7 +11,7 @@ export interface ProgressProps {
11
11
  /**
12
12
  * color
13
13
  */
14
- color?: ColorType;
14
+ color?: CustomColors;
15
15
  /**
16
16
  * animate
17
17
  */
@@ -21,4 +21,19 @@ export interface ProgressProps {
21
21
  */
22
22
  label?: string;
23
23
  }
24
- export declare const ProgressBar: ({ value, size, color, label, animate, }: ProgressProps) => import("react/jsx-runtime").JSX.Element;
24
+ /**
25
+ * A component that displays a progress bar indicating the completion percentage of a task or operation.
26
+ * The progress bar is styled with a background color and a track that fills based on the value provided.
27
+ * It can also display a label showing the percentage value.
28
+ * The label can be customized or hidden based on the props provided.
29
+ *
30
+ * @example
31
+ * ```jsx
32
+ * <ProgressBar value={0.75} size="md" color="primary-500" label="Loading" animate />
33
+ * // Renders a progress bar with 75% completion, medium size, primary color, and a label "Loading"
34
+ *
35
+ * <ProgressBar value={0.5} size="lg" color="success-500" />
36
+ * // Renders a progress bar with 50% completion, large size, and success color without a label
37
+ * ```
38
+ */
39
+ export declare function ProgressBar({ value, size, color, label, animate }: ProgressProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
- import { type ColorType } from "../../types";
1
+ import type { CustomColors } from "../../types";
2
2
  export interface ProgressProps {
3
3
  /**
4
- * progress value (0-100)
4
+ * progress value (0-1)
5
5
  */
6
6
  value: number;
7
7
  /**
@@ -11,6 +11,20 @@ export interface ProgressProps {
11
11
  /**
12
12
  * color
13
13
  */
14
- color?: ColorType;
14
+ color?: CustomColors;
15
15
  }
16
- export declare const ProgressCircle: ({ value, size, color, }: ProgressProps) => import("react/jsx-runtime").JSX.Element;
16
+ /**
17
+ * A circular progress indicator that visually represents a percentage of completion.
18
+ * It displays a circular track with a stroke that fills based on the `value` prop.
19
+ * The component is customizable with size and color props.
20
+ *
21
+ * @example
22
+ * ```jsx
23
+ * <ProgressCircle value={0.75} size="md" color="primary-500" />
24
+ * // Renders a circular progress indicator with 75% completion, medium size, and primary color.
25
+ *
26
+ * <ProgressCircle value={0.5} size="lg" color="secondary-500" />
27
+ * // Renders a circular progress indicator with 50% completion, large size, and secondary color.
28
+ * ```
29
+ */
30
+ export declare function ProgressCircle({ value, size, color }: ProgressProps): import("react").JSX.Element;
@@ -1,6 +1,13 @@
1
- import { type ReactElement } from "react";
2
- import { type AriaProps, type BadgeType, type CallbackReturn, type ChildrenProp, type ColorType, type CssProp, type IconProps, type PolymorphicProps, type RefProp, type TestProps, type TooltipProp } from "../../types";
3
- export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaProps, TestProps, IconProps, TooltipProp {
1
+ import type { CallbackReturn, ChildrenProp, ColorBase, CssPropWithMap, PolymorphicProps, RefProp, TestProps } from "../../types";
2
+ import type { BadgeType } from "../badge/Badge";
3
+ import type { IconProps } from "../icon/Icon";
4
+ import type { TooltipType } from "../tooltip/Tooltip";
5
+ export interface TabProps extends Partial<ChildrenProp>, CssPropWithMap<{
6
+ root: string;
7
+ label: string;
8
+ active: string;
9
+ badge: string;
10
+ }>, RefProp<HTMLButtonElement>, TestProps {
4
11
  /**
5
12
  * tab id
6
13
  */
@@ -12,11 +19,16 @@ export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaP
12
19
  /**
13
20
  * tab color
14
21
  */
15
- color?: ColorType;
22
+ color?: ColorBase;
23
+ /**
24
+ * icon path or props
25
+ */
26
+ icon?: IconProps;
16
27
  /**
17
28
  * tab badge
18
29
  */
19
30
  badge?: string | number | BadgeType;
31
+ tooltip?: string | TooltipType;
20
32
  /**
21
33
  * disabled
22
34
  */
@@ -25,14 +37,10 @@ export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaP
25
37
  * tab flex to fill button
26
38
  */
27
39
  tabFlex?: boolean;
28
- /**
29
- * className for active state
30
- */
31
- activeClassName?: string;
32
40
  /**
33
41
  * action dropdown body
34
42
  */
35
- actions?: ReactElement;
43
+ actions?: React.ReactElement;
36
44
  /**
37
45
  * close handler
38
46
  */
@@ -42,4 +50,28 @@ export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaP
42
50
  */
43
51
  onClick?: (id: string) => CallbackReturn;
44
52
  }
45
- export declare const Tab: <Tag extends import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> = "button">({ ref, as, id, className, label, icon, iconBg, iconColor, rtlFlip, badge, disabled, onClose, active, minimal, onClick, tabFlex, color, actions, tooltip, activeClassName, ...aria }: TabProps & PolymorphicProps<Tag>) => import("react/jsx-runtime").JSX.Element;
53
+ /**
54
+ * A component that represents a tab in a tabbed interface. It can display an icon, label, badge, and actions.
55
+ * It supports polymorphic rendering, allowing it to be rendered as different HTML elements.
56
+ * It also supports tooltips, active states, and click handling.
57
+ *
58
+ * @example
59
+ * ```jsx
60
+ * <Tab
61
+ * id="tab1"
62
+ * label="Tab 1"
63
+ * icon="home"
64
+ * badge="New"
65
+ * onClick={(id) => console.log(`Tab clicked: ${id}`)}
66
+ * onClose={() => console.log("Tab closed")}
67
+ * active={true}
68
+ * actions={<button>Action</button>}
69
+ * color="primary"
70
+ * tooltip="This is a tab"
71
+ * activeClassName="bg-blue-100"
72
+ * />
73
+ * // Renders a tab with label "Tab 1", home icon, blue background, white text, badge "New",
74
+ * // and an action button. The tab is active and has a tooltip.
75
+ * ```
76
+ */
77
+ export declare function Tab<Tag extends React.ElementType = "button">({ ref, as, id, className, classNames, label, icon, badge, disabled, onClose, onClick, tabFlex, color, actions, tooltip, active, ...props }: TabProps & PolymorphicProps<Tag>): React.ReactElement<TabProps>;