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

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 +66 -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 +66 -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 +30 -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 +75 -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
@@ -3,29 +3,55 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
5
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
- var classNames = require('classnames');
6
+ var utilities = require('@react-fabric/utilities');
7
+ var reactHotkeys = require('@tanstack/react-hotkeys');
7
8
  var react = require('react');
8
9
  var usePropToggle = require('../../hooks/usePropToggle.js');
9
- var icons = require('../../types/icons.js');
10
- var Animations = require('../animations/Animations.js');
10
+ var LoadingLine = require('../animations/LoadingLine.js');
11
11
  var Icon = require('../icon/Icon.js');
12
- var Panel_module = require('./Panel.module.css');
12
+ var Titlebar = require('../titlebar/Titlebar.js');
13
13
  var jsxRuntime = require('react/jsx-runtime');
14
14
 
15
- var _excluded = ["children", "className", "titleClassName", "headerClassName", "title", "actions", "icon", "iconBg", "iconColor", "rtlFlip", "panelId", "height", "width", "minHeight", "minWidth", "maxHeight", "maxWidth", "loading", "expandable", "expanded", "onExpand", "collapsable", "collapsed", "onCollapse", "onClose", "onBack"];
15
+ var _excluded = ["children", "className", "classNames", "title", "actions", "icon", "panelId", "height", "width", "minHeight", "minWidth", "maxHeight", "maxWidth", "loading", "expandable", "expanded", "onExpand", "collapsable", "collapsed", "onCollapse", "onClose", "onBack"];
16
16
  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; }
17
- 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; }
18
- var Panel = function Panel(_ref) {
17
+ 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; }
18
+ /**
19
+ * A component that represents a panel with a header, body, and optional actions.
20
+ * It supports expandable and collapsible functionality, loading state, and customizable styles.
21
+ * The panel can be resized and has a fixed position when expanded.
22
+ * It can be customized with different colors, icons, and behaviors.
23
+ * This component is useful for displaying content in a structured way, allowing users to interact with it through actions and toggles.
24
+ * It can be used in various applications where panels are needed, such as dashboards, settings pages, or content management systems.
25
+ *
26
+ * @example
27
+ * ```jsx
28
+ * <Panel
29
+ * title="Panel Title"
30
+ * icon="icon-[mdi--info]"
31
+ * actions={<button>Action</button>}
32
+ * expandable
33
+ * collapsable
34
+ * onExpand={() => console.log("Expanded")}
35
+ * onCollapse={() => console.log("Collapsed")}
36
+ * onClose={() => console.log("Closed")}
37
+ * height="400px"
38
+ * width="300px"
39
+ * minHeight="200px"
40
+ * minWidth="200px"
41
+ * maxHeight="600px"
42
+ * maxWidth="600px"
43
+ * >
44
+ * <p>This is the content of the panel.</p>
45
+ * </Panel>
46
+ * ```
47
+ */
48
+ function Panel(_ref) {
19
49
  var children = _ref.children,
20
50
  className = _ref.className,
21
- titleClassName = _ref.titleClassName,
22
- headerClassName = _ref.headerClassName,
51
+ classNames = _ref.classNames,
23
52
  title = _ref.title,
24
53
  actions = _ref.actions,
25
54
  icon = _ref.icon,
26
- iconBg = _ref.iconBg,
27
- iconColor = _ref.iconColor,
28
- rtlFlip = _ref.rtlFlip,
29
55
  panelId = _ref.panelId,
30
56
  height = _ref.height,
31
57
  width = _ref.width,
@@ -54,8 +80,18 @@ var Panel = function Panel(_ref) {
54
80
  var hasTools = react.useMemo(function () {
55
81
  return !!expandable || !!collapsable || !!onClose;
56
82
  }, [expandable, collapsable, onClose]);
83
+ reactHotkeys.useHotkeySequences([{
84
+ sequence: ["Escape"],
85
+ callback: function callback() {
86
+ return toggleExpand();
87
+ },
88
+ options: {
89
+ enabled: expanded,
90
+ conflictBehavior: "allow"
91
+ }
92
+ }]);
57
93
  return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
58
- className: classNames(Panel_module.panel, className, "rounded-capped overflow-hidden outline grid", expanded ? "fixed inset-4 z-50" : "relative"),
94
+ className: utilities.cn("fabric-panel", className, "rounded-capped overflow-hidden outline grid group", expanded ? "fixed inset-4 z-50" : "relative", !collapsed && "not-last:border-b"),
59
95
  "data-ref": "panel",
60
96
  "data-collapsed": collapsed,
61
97
  style: expanded ? {} : collapsed ? {
@@ -71,57 +107,76 @@ var Panel = function Panel(_ref) {
71
107
  maxHeight: maxHeight
72
108
  }
73
109
  }, aria), {}, {
74
- children: [/*#__PURE__*/jsxRuntime.jsxs("header", {
75
- role: "none",
76
- className: classNames(Panel_module.panelHeader, headerClassName, "flex flex-nowrap items-center area-head"),
77
- "data-testid": "panel-header",
78
- onClick: collapsable ? toggleCollapse : undefined,
79
- children: [onBack && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
110
+ children: [/*#__PURE__*/jsxRuntime.jsx(Titlebar.Titlebar, {
111
+ title: title,
112
+ icon: icon,
113
+ onClick: function onClick() {
114
+ return toggleCollapse();
115
+ },
116
+ prepend: !!onBack && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
117
+ rtlFlip: true,
80
118
  "data-ref": "panelBack",
81
- className: classNames(Panel_module.panelAction, "cursor-pointer"),
82
- icon: icons.CoreIcons.chevronLeft,
119
+ className: utilities.cn("fabric-panelAction", "cursor-pointer pointer-events-auto"),
120
+ icon: "icon-[mdi--chevron-left]"
121
+ // @ts-expect-error ignore
122
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
123
+ ,
83
124
  onClick: onBack
84
- }), icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
85
- icon: icon,
86
- bg: iconBg,
87
- color: iconColor,
88
- rtlFlip: rtlFlip,
89
- className: "p-2 text-md select-none pointer-events-none"
90
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
91
- className: classNames(titleClassName, "flex-1 select-none truncate", title && "py-1 first:px-2"),
92
- children: title
93
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
94
- className: "px-1",
95
- children: actions
96
- }), hasTools && /*#__PURE__*/jsxRuntime.jsxs("div", {
97
- role: "none",
98
- className: "px-1 gap-px flex",
99
- onClick: function onClick(e) {
100
- return e.stopPropagation();
101
- },
102
- children: [expandable && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
103
- "data-ref": "panelExpand",
104
- className: classNames(Panel_module.panelAction, "cursor-pointer"),
105
- icon: expanded ? icons.CoreIcons.minimize : icons.CoreIcons.maximize,
106
- onClick: toggleExpand
107
- }), !expanded && collapsable && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
108
- "data-ref": "panelCollapse",
109
- className: classNames(Panel_module.panelAction, "cursor-pointer"),
110
- icon: collapsed ? icons.CoreIcons.expand : icons.CoreIcons.collapse,
111
- onClick: toggleCollapse
112
- }), !expanded && onClose && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
113
- "data-ref": "panelClose",
114
- className: classNames(Panel_module.panelAction, "cursor-pointer"),
115
- icon: icons.CoreIcons.close,
116
- onClick: onClose
125
+ }),
126
+ actions: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
127
+ children: [actions, hasTools && /*#__PURE__*/jsxRuntime.jsxs("div", {
128
+ role: "none",
129
+ className: "px-1 gap-px flex",
130
+ onClick: function onClick(e) {
131
+ return e.stopPropagation();
132
+ },
133
+ children: [expandable && /*#__PURE__*/jsxRuntime.jsx("button", {
134
+ type: "button",
135
+ className: "size-fit cursor-pointer leading-none outline-none",
136
+ onClick: function onClick() {
137
+ return toggleExpand();
138
+ },
139
+ children: /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
140
+ "data-ref": "panelExpand",
141
+ className: utilities.cn("fabric-panelAction", "cursor-pointer pointer-events-auto"),
142
+ icon: expanded ? "icon-[mdi--fullscreen-exit]" : "icon-[mdi--fullscreen]"
143
+ })
144
+ }), !expanded && collapsable && /*#__PURE__*/jsxRuntime.jsx("button", {
145
+ type: "button",
146
+ className: "size-fit cursor-pointer leading-none outline-none",
147
+ onClick: function onClick() {
148
+ return toggleCollapse();
149
+ },
150
+ children: /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
151
+ "data-ref": "panelCollapse",
152
+ className: utilities.cn("fabric-panelAction", "cursor-pointer pointer-events-auto"),
153
+ icon: collapsed ? "icon-[mdi--plus-box-outline]" : "icon-[mdi--minus-box-outline]"
154
+ })
155
+ }), !expanded && onClose && /*#__PURE__*/jsxRuntime.jsx("button", {
156
+ type: "button",
157
+ className: "size-fit cursor-pointer leading-none outline-none",
158
+ onClick: function onClick() {
159
+ return onClose();
160
+ },
161
+ children: /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
162
+ "data-ref": "panelClose",
163
+ className: utilities.cn("fabric-panelAction", "cursor-pointer pointer-events-auto"),
164
+ icon: "icon-[mdi--close]"
165
+ })
166
+ })]
117
167
  })]
118
- })]
119
- }), (!collapsed || expanded) && /*#__PURE__*/jsxRuntime.jsxs("div", {
120
- "data-testid": "panel-body",
121
- className: classNames(Panel_module.panelBody, "area-content grid overflow-hidden"),
122
- children: [loading && /*#__PURE__*/jsxRuntime.jsx(Animations.Loading, {}), children]
168
+ }),
169
+ className: utilities.cn(classNames === null || classNames === void 0 ? void 0 : classNames.titlebar),
170
+ classNames: classNames
171
+ }), /*#__PURE__*/jsxRuntime.jsx(react.Activity, {
172
+ mode: !collapsed || expanded ? "visible" : "hidden",
173
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
174
+ "data-ref": "panelBody",
175
+ className: utilities.cn("fabric-panelBody", classNames === null || classNames === void 0 ? void 0 : classNames.body, "area-content grid overflow-hidden"),
176
+ children: [loading && /*#__PURE__*/jsxRuntime.jsx(LoadingLine.LoadingLine, {}), children]
177
+ })
123
178
  })]
124
179
  }));
125
- };
180
+ }
126
181
 
127
182
  exports.Panel = Panel;
@@ -1,13 +1,33 @@
1
1
  'use strict';
2
2
 
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
- var classNames = require('classnames');
4
+ var utilities = require('@react-fabric/utilities');
5
5
  var react = require('react');
6
6
  var useEffectDebugger = require('../../hooks/useEffectDebugger.js');
7
- var Panel_module = require('./Panel.module.css');
7
+ var cloneElement = require('../../utils/cloneElement.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
- var PanelGroup = function PanelGroup(_ref) {
10
+ /**
11
+ * A component that groups multiple panels together, allowing for one panel to be expanded at a time.
12
+ * This component allows you to manage a group of panels where only one can be expanded at a time.
13
+ * It accepts an `activePanel` prop to control which panel is currently expanded,
14
+ * and an `onActiveChange` callback that is triggered when the active panel changes.
15
+ * It uses the `Panel` component to render each individual panel within the group.
16
+ *
17
+ * @example
18
+ * ```jsx
19
+ * <PanelGroup
20
+ * activePanel="panel1"
21
+ * onActiveChange={(panelId) => console.log(`Active panel changed to: ${panelId}`)}
22
+ * >
23
+ * <Panel panelId="panel1" title="Panel 1">Content for Panel 1</Panel>
24
+ * <Panel panelId="panel2" title="Panel 2">Content for Panel 2</Panel>
25
+ * <Panel panelId="panel3" title="Panel 3">Content for Panel 3</Panel>
26
+ * </PanelGroup>
27
+ * ```
28
+ */
29
+ function PanelGroup(_ref) {
30
+ var _cloneChildren;
11
31
  var children = _ref.children,
12
32
  activePanel = _ref.activePanel,
13
33
  onActiveChange = _ref.onActiveChange;
@@ -16,35 +36,41 @@ var PanelGroup = function PanelGroup(_ref) {
16
36
  expandedPanel = _useState2[0],
17
37
  setExpandedPanel = _useState2[1];
18
38
  var panels = useEffectDebugger.useMemoDebugger(function () {
19
- return react.Children.toArray(children).map(function (child, index) {
20
- return child.props.panelId || index;
21
- });
39
+ return (
40
+ // eslint-disable-next-line @eslint-react/no-children-to-array
41
+ react.Children.toArray(children).map(function (child, index) {
42
+ var _child$props;
43
+ return (/*#__PURE__*/react.isValidElement(child) ? (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.panelId : "") || index;
44
+ })
45
+ );
22
46
  }, [children], "PanelGroup children");
23
47
  useEffectDebugger.useEffectDebugger(function () {
24
48
  setExpandedPanel(activePanel !== null && activePanel !== void 0 ? activePanel : panels[0]);
25
49
  }, [activePanel, panels], "PanelGroup setActive");
26
- var changeExpanded = react.useCallback(function (collapsed, id, handler) {
50
+ var changeExpanded = function changeExpanded(collapsed, id, handler) {
27
51
  if (!collapsed) {
28
52
  setExpandedPanel(id);
29
53
  onActiveChange === null || onActiveChange === void 0 || onActiveChange(id);
30
54
  }
31
55
  handler === null || handler === void 0 || handler(collapsed);
32
56
  return id !== expandedPanel;
33
- }, [onActiveChange, expandedPanel]);
57
+ };
34
58
  return /*#__PURE__*/jsxRuntime.jsx("div", {
35
59
  "data-ref": "panelGroup",
36
- className: classNames(Panel_module.panelGroup, "flex flex-col overflow-auto area-content p-px"),
37
- children: react.Children.toArray(children).map(function (child, index) {
38
- return /*#__PURE__*/react.cloneElement(child, {
39
- panelId: child.props.panelId || index,
60
+ className: utilities.cn("fabric-panelGroup", "flex flex-col overflow-auto scroll-thin area-content p-px"),
61
+ children: (_cloneChildren = cloneElement.cloneChildren(children)) === null || _cloneChildren === void 0 ? void 0 : _cloneChildren.map(function (child, index) {
62
+ var childEl = child;
63
+ var id = childEl.props.panelId || index;
64
+ return /*#__PURE__*/react.cloneElement(childEl, {
65
+ panelId: id,
40
66
  collapsable: true,
41
- onCollapse: function onCollapse(b, id) {
42
- return changeExpanded(b, id, child.props.onCollapse);
67
+ onCollapse: function onCollapse(b) {
68
+ return changeExpanded(b, id, childEl.props.onCollapse);
43
69
  },
44
- collapsed: expandedPanel !== (child.props.panelId || index)
70
+ collapsed: expandedPanel !== (childEl.props.panelId || index)
45
71
  });
46
72
  })
47
73
  });
48
- };
74
+ }
49
75
 
50
76
  exports.PanelGroup = PanelGroup;
@@ -7,12 +7,37 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
7
7
  var react = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
- var _excluded = ["active", "children", "className", "onPanelChange", "onBack"];
10
+ var _excluded = ["children", "className", "onPanelChange", "onBack"];
11
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), !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; }
13
- var PanelStack = function PanelStack(_ref) {
14
- _ref.active;
15
- var children = _ref.children,
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
+ * A component that manages a stack of panels, allowing navigation between them.
15
+ * This component allows you to manage a stack of panels where you can navigate between them.
16
+ * It accepts an `active` prop to control which panel is currently active,
17
+ * an `onPanelChange` callback that is triggered when the active panel changes,
18
+ * and an `onBack` callback to handle navigation to the previous panel in the history.
19
+ * It uses the `Panel` component to render each individual panel within the stack.
20
+ * The component maintains a history of panels to allow back navigation,
21
+ * and it updates the active panel based on user interactions.
22
+ *
23
+ * @example
24
+ * ```jsx
25
+ * <PanelStack
26
+ * active="panel1"
27
+ * onPanelChange={(panelId) => console.log(`Active panel changed to: ${panelId}`)}
28
+ * onBack={(currentPanel, nextPanel) => {
29
+ * console.log(`Navigating back from ${currentPanel} to ${nextPanel}`);
30
+ * return true; // return false to prevent navigation
31
+ * }}
32
+ * >
33
+ * <Panel panelId="panel1" title="Panel 1">Content for Panel 1</Panel>
34
+ * <Panel panelId="panel2" title="Panel 2">Content for Panel 2</Panel>
35
+ * <Panel panelId="panel3" title="Panel 3">Content for Panel 3</Panel>
36
+ * </PanelStack>
37
+ * ```
38
+ */
39
+ function PanelStack(_ref) {
40
+ var children = _ref.children,
16
41
  className = _ref.className,
17
42
  onPanelChange = _ref.onPanelChange,
18
43
  onBack = _ref.onBack,
@@ -26,10 +51,17 @@ var PanelStack = function PanelStack(_ref) {
26
51
  _useTransition2 = _slicedToArray(_useTransition, 2),
27
52
  startTransition = _useTransition2[1];
28
53
  var panels = react.useMemo(function () {
29
- return new Map(react.Children.toArray(children).map(function (child) {
30
- var _child$props$panelId;
31
- return child.props && [(_child$props$panelId = child.props.panelId) !== null && _child$props$panelId !== void 0 ? _child$props$panelId : "root", child];
32
- }));
54
+ return new Map(
55
+ // eslint-disable-next-line @eslint-react/no-children-to-array
56
+ react.Children.toArray(children)
57
+ // @ts-expect-error ignore
58
+ .map(function (child) {
59
+ if (/*#__PURE__*/react.isValidElement(child)) {
60
+ var _childEl$props$panelI;
61
+ var childEl = child;
62
+ return [(_childEl$props$panelI = childEl.props.panelId) !== null && _childEl$props$panelI !== void 0 ? _childEl$props$panelI : "root", childEl];
63
+ }
64
+ }).filter(Boolean));
33
65
  }, [children]);
34
66
  react.useEffect(function () {
35
67
  startTransition(function () {
@@ -40,25 +72,23 @@ var PanelStack = function PanelStack(_ref) {
40
72
  }));
41
73
  });
42
74
  }, [onPanelChange, history]);
43
- var goBack = react.useCallback(function () {
75
+ var goBack = function goBack() {
44
76
  var _history$2;
45
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-boolean-literal-compare
46
77
  if ((onBack === null || onBack === void 0 ? void 0 : onBack(history[0], (_history$2 = history[1]) !== null && _history$2 !== void 0 ? _history$2 : "root")) !== false) {
47
78
  setHistory(history.slice(1));
48
79
  }
49
- }, [history, onBack]);
80
+ };
50
81
  var currentPanel = react.useMemo(function () {
51
82
  var _panels$get;
52
83
  return (_panels$get = panels.get(history[0])) !== null && _panels$get !== void 0 ? _panels$get : panels.values().next().value;
53
84
  }, [history, panels]);
54
- var checkMenuClick = react.useCallback(function (e) {
85
+ var checkMenuClick = function checkMenuClick(e) {
55
86
  var _e$target;
56
87
  var panelKey = (_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.dataset) === null || _e$target === void 0 ? void 0 : _e$target.panel;
57
88
  if (panelKey) {
58
89
  if (panelKey === "back") {
59
90
  goBack();
60
91
  } else if (panelKey === "root") {
61
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-boolean-literal-compare
62
92
  if ((onBack === null || onBack === void 0 ? void 0 : onBack(history[0], "root")) !== false) {
63
93
  setHistory([]);
64
94
  }
@@ -70,16 +100,17 @@ var PanelStack = function PanelStack(_ref) {
70
100
  return false;
71
101
  }
72
102
  return true;
73
- }, [goBack, history, panels, onBack]);
103
+ };
74
104
  return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({}, rest), {}, {
75
105
  role: "none",
76
106
  ref: stackRef,
77
107
  className: className,
78
108
  onClickCapture: checkMenuClick,
79
109
  children: currentPanel && /*#__PURE__*/react.cloneElement(currentPanel, {
110
+ // @ts-expect-error ignore
80
111
  onBack: history.length > 0 ? goBack : undefined
81
112
  })
82
113
  }));
83
- };
114
+ }
84
115
 
85
116
  exports.PanelStack = PanelStack;
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var utilities = require('@react-fabric/utilities');
6
+ var react = require('react');
7
+ var useControlledValue = require('../../hooks/useControlledValue.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var getColor = require('../../utils/getColor.js');
10
+ var getIconProps = require('../../utils/getIconProps.js');
11
+ var StyleEffect = require('../effect/StyleEffect.js');
12
+ var Icon = require('../icon/Icon.js');
13
+
14
+ 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; }
15
+ 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; }
16
+ /**
17
+ * A pill-based selector that renders a horizontal group of clickable options
18
+ * with an animated highlight tracking the selected pill.
19
+ */
20
+ function Pillbox(_ref) {
21
+ var _currentOption$bg, _currentOption$color;
22
+ var options = _ref.options,
23
+ className = _ref.className,
24
+ block = _ref.block,
25
+ toggle = _ref.toggle,
26
+ value = _ref.value,
27
+ autoHide = _ref.autoHide,
28
+ onChange = _ref.onChange;
29
+ var pillboxRef = react.useRef(null);
30
+ var _useState = react.useState(function () {
31
+ return {
32
+ left: 0,
33
+ top: 0,
34
+ width: 0,
35
+ height: 0
36
+ };
37
+ }),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ hilightStyle = _useState2[0],
40
+ setHilightStyle = _useState2[1];
41
+ var _useControlledValue = useControlledValue.useControlledValue(value, null),
42
+ currentValue = _useControlledValue.currentValue,
43
+ updateValue = _useControlledValue.updateValue;
44
+
45
+ // Allow toggle behavior only when exactly two options exist and toggle is enabled
46
+ var canToggle = react.useMemo(function () {
47
+ return options.length === 2 && toggle;
48
+ }, [options, toggle]);
49
+ var currentIndex = react.useMemo(function () {
50
+ // Use Math.max to default to 0 when no option matches (prevents -1 index)
51
+ return Math.max(0, options.findIndex(function (o) {
52
+ return o.value === currentValue;
53
+ }));
54
+ }, [options, currentValue]);
55
+ var currentOption = options[currentIndex];
56
+
57
+ // Update highlight position whenever the selected index or ref changes
58
+ react.useLayoutEffect(function () {
59
+ var _pillboxRef$current, _el$offsetLeft, _el$offsetTop, _el$offsetWidth, _el$offsetHeight;
60
+ var el = (_pillboxRef$current = pillboxRef.current) === null || _pillboxRef$current === void 0 ? void 0 : _pillboxRef$current.querySelectorAll("button")[currentIndex];
61
+
62
+ // eslint-disable-next-line @eslint-react/set-state-in-effect
63
+ setHilightStyle({
64
+ left: (_el$offsetLeft = el === null || el === void 0 ? void 0 : el.offsetLeft) !== null && _el$offsetLeft !== void 0 ? _el$offsetLeft : 0,
65
+ top: (_el$offsetTop = el === null || el === void 0 ? void 0 : el.offsetTop) !== null && _el$offsetTop !== void 0 ? _el$offsetTop : 0,
66
+ width: (_el$offsetWidth = el === null || el === void 0 ? void 0 : el.offsetWidth) !== null && _el$offsetWidth !== void 0 ? _el$offsetWidth : 0,
67
+ height: (_el$offsetHeight = el === null || el === void 0 ? void 0 : el.offsetHeight) !== null && _el$offsetHeight !== void 0 ? _el$offsetHeight : 0
68
+ });
69
+ }, [pillboxRef, currentIndex]);
70
+ var handleValueChange = function handleValueChange(value) {
71
+ // Handle pill selection with optional toggle behavior
72
+ // In toggle mode, clicking the selected pill switches to the other option
73
+ updateValue(function (oldValue) {
74
+ if (canToggle) {
75
+ // Toggle between the two options: click selected pill to switch to the other
76
+ var newValue = oldValue === options[1].value ? options[0].value : options[1].value;
77
+ onChange === null || onChange === void 0 || onChange(newValue);
78
+ return newValue;
79
+ } else {
80
+ onChange === null || onChange === void 0 || onChange(value);
81
+ return value;
82
+ }
83
+ });
84
+ };
85
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
86
+ ref: pillboxRef,
87
+ className: utilities.cn("fabric-pillbox", className, "relative p-1 outline rounded overflow-hidden"),
88
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
89
+ className: utilities.cn("fabric-pillboxContainer", "relative group rounded select-none overflow-hidden flex-nowrap", block ? "flex" : "inline-flex", autoHide && "not-hover:bg-(--currentBg)"),
90
+ style: {
91
+ "--currentBg": getColor.getColor((_currentOption$bg = currentOption.bg) !== null && _currentOption$bg !== void 0 ? _currentOption$bg : "primary-500"),
92
+ "--currentColor": getColor.getColor((_currentOption$color = currentOption.color) !== null && _currentOption$color !== void 0 ? _currentOption$color : "white")
93
+ },
94
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
95
+ className: utilities.cn("fabric-pillHilight", "absolute rounded -z-1! top-0 h-full bg-(--currentBg) transition-[background-color,width,left] ease-in-out duration-500", autoHide && "not-group-hover:hidden"),
96
+ style: hilightStyle
97
+ }), options.map(function (opt, idx) {
98
+ return /*#__PURE__*/jsxRuntime.jsxs("button", {
99
+ disabled: opt.disabled,
100
+ onClick: function onClick() {
101
+ return handleValueChange(opt.value);
102
+ },
103
+ "data-color": opt.color,
104
+ type: "button",
105
+ className: utilities.cn("fabric-pill", "flex justify-center flex-initial has-[.fabric-pillLabel]:px-4 has-[.fabric-pillLabel]:py-1 z-1 rounded not-disabled:cursor-pointer disabled:cursor-not-allowed items-center transition-colors ease-in-out duration-500", idx === currentIndex ? "text-(--currentColor)" : "not-disabled:hover:bg-primary-500/20", autoHide && idx !== currentIndex && "not-group-hover:hidden", opt.disabled && "opacity-50", block && "flex-1"),
106
+ children: [opt.icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, _objectSpread({
107
+ className: utilities.cn("fabric-pillIcon", "not-has-[~_.fabric-pillLabel]:m-[0.375em] text-[1.125em] has-[~_.fabric-pillLabel]:me-1 inline-block size-[1em] flex-content pointer-events-none")
108
+ }, getIconProps.getIconProps(opt.icon))), opt.label && /*#__PURE__*/jsxRuntime.jsx("span", {
109
+ className: "fabric-pillLabel flex-initial truncate",
110
+ children: opt.label
111
+ })]
112
+ }, "".concat(opt.value));
113
+ })]
114
+ }), /*#__PURE__*/jsxRuntime.jsx(StyleEffect.StyleEffect, {})]
115
+ });
116
+ }
117
+
118
+ exports.Pillbox = Pillbox;
@@ -2,14 +2,13 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var utilities = require('@react-fabric/utilities');
5
- var classNames = require('classnames');
6
5
  var useEffectDebugger = require('../../hooks/useEffectDebugger.js');
7
- var getColor = require('../../utils/getColor.js');
8
- var Progress_module = require('./Progress.module.css');
6
+ require('react');
9
7
  var jsxRuntime = require('react/jsx-runtime');
8
+ var getColor = require('../../utils/getColor.js');
10
9
 
11
10
  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), !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; }
11
+ 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
12
  var SizeMap = {
14
13
  "": "0.875rem",
15
14
  xxs: "3px",
@@ -19,29 +18,46 @@ var SizeMap = {
19
18
  lg: "1.5rem",
20
19
  xl: "2rem"
21
20
  };
22
- var ProgressBar = function ProgressBar(_ref) {
21
+
22
+ /**
23
+ * A component that displays a progress bar indicating the completion percentage of a task or operation.
24
+ * The progress bar is styled with a background color and a track that fills based on the value provided.
25
+ * It can also display a label showing the percentage value.
26
+ * The label can be customized or hidden based on the props provided.
27
+ *
28
+ * @example
29
+ * ```jsx
30
+ * <ProgressBar value={0.75} size="md" color="primary-500" label="Loading" animate />
31
+ * // Renders a progress bar with 75% completion, medium size, primary color, and a label "Loading"
32
+ *
33
+ * <ProgressBar value={0.5} size="lg" color="success-500" />
34
+ * // Renders a progress bar with 50% completion, large size, and success color without a label
35
+ * ```
36
+ */
37
+ function ProgressBar(_ref) {
23
38
  var _ref$value = _ref.value,
24
39
  value = _ref$value === void 0 ? 0 : _ref$value,
25
40
  size = _ref.size,
26
41
  _ref$color = _ref.color,
27
- color = _ref$color === void 0 ? "primary" : _ref$color,
42
+ color = _ref$color === void 0 ? "primary-500" : _ref$color,
28
43
  _ref$label = _ref.label,
29
44
  label = _ref$label === void 0 ? "" : _ref$label,
30
45
  animate = _ref.animate;
31
46
  /** ***************** make sure value is between 0 and 100 *******************/
32
47
  var actualValue = useEffectDebugger.useMemoDebugger(function () {
33
- return Math.min(Math.max(value, 0), 100);
48
+ return Math.min(Math.max(value, 0), 1);
34
49
  }, [value], "ProgressBar value");
35
50
  var progressVar = useEffectDebugger.useMemoDebugger(function () {
36
51
  return {
37
- "--progress": actualValue
52
+ "--progress": actualValue * 100
38
53
  };
39
54
  }, [actualValue], "ProgressBar cssVar");
40
55
 
41
56
  /** ***************** component *******************/
42
57
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
43
- className: classNames(Progress_module.progressbar, getColor.getColorClass(color), "block bg-dimmed relative rounded font-bold overflow-hidden whitespace-nowrap"),
58
+ className: utilities.cn("fabric-progressbar", "block bg-tint-50 relative rounded font-bold overflow-hidden whitespace-nowrap"),
44
59
  style: _objectSpread(_objectSpread({}, progressVar), {}, {
60
+ color: getColor.getColor(color),
45
61
  minHeight: SizeMap[size !== null && size !== void 0 ? size : ""],
46
62
  fontSize: SizeMap[size !== null && size !== void 0 ? size : ""]
47
63
  }),
@@ -49,14 +65,14 @@ var ProgressBar = function ProgressBar(_ref) {
49
65
  "aria-hidden": "true",
50
66
  children: [!["xxs", "xs", "sm"].includes(size !== null && size !== void 0 ? size : "") && /*#__PURE__*/jsxRuntime.jsxs("div", {
51
67
  className: "absolute inset-0 text-center z-0 align-top",
52
- children: [label, " ", utilities.Format.percent(actualValue / 100)]
68
+ children: [label, " ", utilities.Format.percent(actualValue)]
53
69
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
54
- className: classNames(Progress_module.progressTrack, animate && Progress_module.progressAnimate, "h-full overflow-clip bg-current relative z-0")
70
+ className: utilities.cn("fabric-progressTrack", animate && "fabric-progressAnimate", "h-full overflow-clip bg-current relative z-0")
55
71
  }), !["xxs", "xs", "sm"].includes(size !== null && size !== void 0 ? size : "") && /*#__PURE__*/jsxRuntime.jsx("div", {
56
- className: classNames("h-full absolute inset-0 overflow-hidden z-1"),
57
- "data-label": "".concat(label, " ").concat(utilities.Format.percent(actualValue / 100))
72
+ className: utilities.cn("h-full absolute inset-0 overflow-hidden z-1"),
73
+ "data-label": "".concat(label, " ").concat(utilities.Format.percent(actualValue))
58
74
  })]
59
75
  });
60
- };
76
+ }
61
77
 
62
78
  exports.ProgressBar = ProgressBar;