@flikk/ui 1.0.0-beta.2 → 1.0.0-beta.3

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 (383) hide show
  1. package/dist/components/ai/ApprovalCard/ApprovalCard.js +2 -2
  2. package/dist/components/ai/ApprovalCard/ApprovalCard.types.d.ts +2 -2
  3. package/dist/components/ai/PromptInput/PromptInput.js +173 -13
  4. package/dist/components/ai/PromptInput/PromptInput.theme.js +1 -0
  5. package/dist/components/ai/PromptInput/PromptInput.types.d.ts +20 -0
  6. package/dist/components/core/Accordion/Accordion.theme.js +2 -2
  7. package/dist/components/core/Alert/Alert.js +2 -2
  8. package/dist/components/core/Alert/Alert.types.d.ts +2 -2
  9. package/dist/components/core/AlertDialog/AlertDialog.d.ts +1 -1
  10. package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
  11. package/dist/components/core/AlertDialog/AlertDialog.types.d.ts +2 -2
  12. package/dist/components/core/Badge/Badge.js +11 -9
  13. package/dist/components/core/Badge/Badge.theme.js +13 -14
  14. package/dist/components/core/Badge/Badge.types.d.ts +6 -1
  15. package/dist/components/core/Button/Button.theme.js +8 -9
  16. package/dist/components/core/Calendar/Calendar.theme.js +1 -1
  17. package/dist/components/core/Card/Card.d.ts +2 -2
  18. package/dist/components/core/Card/Card.js +6 -7
  19. package/dist/components/core/Card/Card.theme.js +4 -4
  20. package/dist/components/core/Card/Card.types.d.ts +5 -20
  21. package/dist/components/core/Card/CardSubtitle.d.ts +3 -0
  22. package/dist/components/core/Card/CardSubtitle.js +11 -0
  23. package/dist/components/core/Card/index.d.ts +2 -2
  24. package/dist/components/core/CommandPalette/CommandItem.d.ts +1 -1
  25. package/dist/components/core/CommandPalette/CommandItem.js +2 -2
  26. package/dist/components/core/CommandPalette/CommandPalette.js +2 -2
  27. package/dist/components/core/CommandPalette/CommandPalette.theme.js +2 -2
  28. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -2
  29. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +1 -1
  30. package/dist/components/core/ContextMenu/ContextMenuItem.js +2 -2
  31. package/dist/components/core/Drawer/Drawer.d.ts +13 -1
  32. package/dist/components/core/Drawer/Drawer.js +23 -10
  33. package/dist/components/core/Drawer/Drawer.theme.js +1 -1
  34. package/dist/components/core/Drawer/Drawer.types.d.ts +21 -4
  35. package/dist/components/core/Drawer/DrawerHeader.d.ts +5 -0
  36. package/dist/components/core/Drawer/DrawerHeader.js +14 -0
  37. package/dist/components/core/Drawer/DrawerSubtitle.d.ts +5 -0
  38. package/dist/components/core/Drawer/DrawerSubtitle.js +11 -0
  39. package/dist/components/core/Drawer/DrawerTitle.d.ts +5 -0
  40. package/dist/components/core/Drawer/DrawerTitle.js +11 -0
  41. package/dist/components/core/Drawer/index.d.ts +1 -1
  42. package/dist/components/core/Dropdown/Dropdown.types.d.ts +4 -4
  43. package/dist/components/core/Dropdown/DropdownItem.js +2 -2
  44. package/dist/components/core/Empty/Empty.js +2 -2
  45. package/dist/components/core/Empty/Empty.theme.d.ts +1 -1
  46. package/dist/components/core/Empty/Empty.theme.js +3 -3
  47. package/dist/components/core/Empty/Empty.types.d.ts +2 -2
  48. package/dist/components/core/MenuItem/MenuItem.js +2 -2
  49. package/dist/components/core/MenuItem/MenuItem.theme.d.ts +1 -2
  50. package/dist/components/core/MenuItem/MenuItem.theme.js +7 -9
  51. package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
  52. package/dist/components/core/Message/Message.d.ts +3 -2
  53. package/dist/components/core/Message/Message.js +30 -24
  54. package/dist/components/core/Message/Message.theme.d.ts +1 -1
  55. package/dist/components/core/Message/Message.theme.js +22 -24
  56. package/dist/components/core/Message/Message.types.d.ts +0 -7
  57. package/dist/components/core/Message/MessageList.animations.d.ts +6 -0
  58. package/dist/components/core/Message/MessageList.animations.js +32 -0
  59. package/dist/components/core/Message/MessageList.d.ts +5 -0
  60. package/dist/components/core/Message/MessageList.js +78 -0
  61. package/dist/components/core/Message/MessageList.theme.d.ts +2 -0
  62. package/dist/components/core/Message/MessageList.theme.js +6 -0
  63. package/dist/components/core/Message/MessageList.types.d.ts +32 -0
  64. package/dist/components/core/Message/index.d.ts +2 -0
  65. package/dist/components/core/Modal/Modal.d.ts +2 -2
  66. package/dist/components/core/Modal/Modal.js +5 -5
  67. package/dist/components/core/Modal/Modal.theme.js +5 -5
  68. package/dist/components/core/Modal/Modal.types.d.ts +4 -4
  69. package/dist/components/core/Modal/ModalSubtitle.d.ts +5 -0
  70. package/dist/components/core/Modal/ModalSubtitle.js +11 -0
  71. package/dist/components/core/ModalStack/ModalStack.animations.js +3 -3
  72. package/dist/components/core/ModalStack/ModalStackModal.js +3 -3
  73. package/dist/components/core/PageHeading/PageHeading.d.ts +8 -0
  74. package/dist/components/core/PageHeading/PageHeading.js +28 -0
  75. package/dist/components/core/PageHeading/PageHeading.theme.d.ts +2 -0
  76. package/dist/components/core/PageHeading/PageHeading.theme.js +11 -0
  77. package/dist/components/core/PageHeading/PageHeading.types.d.ts +55 -0
  78. package/dist/components/core/PageHeading/PageHeadingActions.d.ts +3 -0
  79. package/dist/components/core/PageHeading/PageHeadingActions.js +11 -0
  80. package/dist/components/core/PageHeading/PageHeadingBackButton.d.ts +3 -0
  81. package/dist/components/core/PageHeading/PageHeadingBackButton.js +12 -0
  82. package/dist/components/core/PageHeading/PageHeadingIcon.d.ts +3 -0
  83. package/dist/components/core/PageHeading/PageHeadingIcon.js +11 -0
  84. package/dist/components/core/PageHeading/PageHeadingSubtitle.d.ts +3 -0
  85. package/dist/components/core/PageHeading/PageHeadingSubtitle.js +11 -0
  86. package/dist/components/core/PageHeading/PageHeadingTitle.d.ts +3 -0
  87. package/dist/components/core/PageHeading/PageHeadingTitle.js +11 -0
  88. package/dist/components/core/PageHeading/index.d.ts +2 -0
  89. package/dist/components/core/Popover/Popover.theme.js +1 -1
  90. package/dist/components/core/Segmented/Segmented.theme.js +3 -3
  91. package/dist/components/core/Sidebar/Sidebar.js +1 -0
  92. package/dist/components/core/SocialIcon/SocialIcon.d.ts +3 -0
  93. package/dist/components/core/SocialIcon/SocialIcon.js +30 -0
  94. package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +2 -0
  95. package/dist/components/core/SocialIcon/SocialIcon.theme.js +12 -0
  96. package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +18 -0
  97. package/dist/components/core/SocialIcon/index.d.ts +2 -0
  98. package/dist/components/core/SocialIcon/platforms.d.ts +17 -0
  99. package/dist/components/core/SocialIcon/platforms.js +234 -0
  100. package/dist/components/core/Toast/Toast.js +4 -4
  101. package/dist/components/core/Toast/Toast.theme.js +1 -1
  102. package/dist/components/core/Toast/Toast.types.d.ts +9 -9
  103. package/dist/components/core/Toast/useToast.js +6 -6
  104. package/dist/components/core/index.d.ts +2 -7
  105. package/dist/components/core/index.js +9 -19
  106. package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.js +1 -1
  107. package/dist/components/{core → data-display}/Feed/Feed.js +2 -2
  108. package/dist/components/data-display/GanttChart/GanttChart.animations.d.ts +4 -0
  109. package/dist/components/data-display/GanttChart/GanttChart.animations.js +21 -0
  110. package/dist/components/data-display/GanttChart/GanttChart.d.ts +8 -0
  111. package/dist/components/data-display/GanttChart/GanttChart.js +170 -0
  112. package/dist/components/data-display/GanttChart/GanttChart.theme.d.ts +2 -0
  113. package/dist/components/data-display/GanttChart/GanttChart.theme.js +23 -0
  114. package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +162 -0
  115. package/dist/components/data-display/GanttChart/GanttChart.types.js +9 -0
  116. package/dist/components/data-display/GanttChart/GanttChart.utils.d.ts +80 -0
  117. package/dist/components/data-display/GanttChart/GanttChart.utils.js +274 -0
  118. package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +9 -0
  119. package/dist/components/data-display/GanttChart/GanttChartPanel.js +82 -0
  120. package/dist/components/data-display/GanttChart/GanttDependencyArrows.d.ts +2 -0
  121. package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +35 -0
  122. package/dist/components/data-display/GanttChart/GanttGroupBar.d.ts +8 -0
  123. package/dist/components/data-display/GanttChart/GanttGroupBar.js +26 -0
  124. package/dist/components/data-display/GanttChart/GanttMilestone.d.ts +9 -0
  125. package/dist/components/data-display/GanttChart/GanttMilestone.js +44 -0
  126. package/dist/components/data-display/GanttChart/GanttProgressCircle.d.ts +9 -0
  127. package/dist/components/data-display/GanttChart/GanttProgressCircle.js +11 -0
  128. package/dist/components/data-display/GanttChart/GanttSplitter.d.ts +2 -0
  129. package/dist/components/data-display/GanttChart/GanttSplitter.js +39 -0
  130. package/dist/components/data-display/GanttChart/GanttTableGroupRow.d.ts +7 -0
  131. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +23 -0
  132. package/dist/components/data-display/GanttChart/GanttTableHeader.d.ts +2 -0
  133. package/dist/components/data-display/GanttChart/GanttTableHeader.js +13 -0
  134. package/dist/components/data-display/GanttChart/GanttTablePanel.d.ts +6 -0
  135. package/dist/components/data-display/GanttChart/GanttTablePanel.js +20 -0
  136. package/dist/components/data-display/GanttChart/GanttTableTaskRow.d.ts +8 -0
  137. package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +30 -0
  138. package/dist/components/data-display/GanttChart/GanttTaskBar.d.ts +9 -0
  139. package/dist/components/data-display/GanttChart/GanttTaskBar.js +206 -0
  140. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.d.ts +8 -0
  141. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +17 -0
  142. package/dist/components/data-display/GanttChart/GanttTimelineGrid.d.ts +7 -0
  143. package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +33 -0
  144. package/dist/components/data-display/GanttChart/GanttTimelineHeader.d.ts +8 -0
  145. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +43 -0
  146. package/dist/components/data-display/GanttChart/GanttToolbar.d.ts +2 -0
  147. package/dist/components/data-display/GanttChart/GanttToolbar.js +28 -0
  148. package/dist/components/data-display/GanttChart/hooks/useGanttDates.d.ts +12 -0
  149. package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +25 -0
  150. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.d.ts +25 -0
  151. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +144 -0
  152. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.d.ts +2 -0
  153. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +33 -0
  154. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.d.ts +6 -0
  155. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +32 -0
  156. package/dist/components/data-display/GanttChart/index.d.ts +3 -0
  157. package/dist/components/{core → data-display}/KPI/KPI.js +10 -8
  158. package/dist/components/{core → data-display}/KPI/KPI.theme.js +2 -1
  159. package/dist/components/{core → data-display}/KPI/KPI.types.d.ts +5 -5
  160. package/dist/components/{core → data-display}/KPI/index.d.ts +1 -0
  161. package/dist/components/{core → data-display}/Metric/Metric.js +4 -7
  162. package/dist/components/{core → data-display}/Metric/Metric.theme.js +9 -9
  163. package/dist/components/{core → data-display}/Metric/Metric.types.d.ts +6 -6
  164. package/dist/components/{core → data-display}/Table/Table.theme.js +2 -2
  165. package/dist/components/{core → data-display}/Table/TableActions.js +8 -8
  166. package/dist/components/{core → data-display}/Table/TableColumnManager.js +4 -4
  167. package/dist/components/{core → data-display}/Table/TableFilter.js +3 -3
  168. package/dist/components/data-display/Table/TablePagination.js +25 -0
  169. package/dist/components/{core → data-display}/Table/TableRow.js +1 -1
  170. package/dist/components/{core → data-display}/Table/TableSelectionHeader.js +1 -1
  171. package/dist/components/data-display/index.d.ts +7 -0
  172. package/dist/components/data-display/index.js +20 -0
  173. package/dist/components/effects/Aurora/Aurora.d.ts +24 -0
  174. package/dist/components/effects/Aurora/Aurora.js +119 -0
  175. package/dist/components/effects/Aurora/Aurora.types.d.ts +15 -0
  176. package/dist/components/effects/Aurora/index.d.ts +2 -0
  177. package/dist/components/effects/DotPattern/DotPattern.d.ts +18 -0
  178. package/dist/components/effects/DotPattern/DotPattern.js +65 -0
  179. package/dist/components/effects/DotPattern/DotPattern.types.d.ts +47 -0
  180. package/dist/components/effects/DotPattern/index.d.ts +2 -0
  181. package/dist/components/effects/GridPattern/GridPattern.d.ts +18 -0
  182. package/dist/components/effects/GridPattern/GridPattern.js +64 -0
  183. package/dist/components/effects/GridPattern/GridPattern.types.d.ts +47 -0
  184. package/dist/components/effects/GridPattern/index.d.ts +2 -0
  185. package/dist/components/effects/MagneticElement/MagneticElement.d.ts +30 -0
  186. package/dist/components/effects/MagneticElement/MagneticElement.js +110 -0
  187. package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +44 -0
  188. package/dist/components/effects/MagneticElement/index.d.ts +2 -0
  189. package/dist/components/effects/MorphingText/MorphingText.d.ts +17 -0
  190. package/dist/components/effects/MorphingText/MorphingText.js +91 -0
  191. package/dist/components/effects/MorphingText/MorphingText.types.d.ts +18 -0
  192. package/dist/components/effects/MorphingText/index.d.ts +2 -0
  193. package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +28 -0
  194. package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +61 -0
  195. package/dist/components/effects/NoiseOverlay/NoiseOverlay.types.d.ts +35 -0
  196. package/dist/components/effects/NoiseOverlay/index.d.ts +2 -0
  197. package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +26 -0
  198. package/dist/components/effects/ParallaxSection/ParallaxSection.js +71 -0
  199. package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +11 -0
  200. package/dist/components/effects/ParallaxSection/index.d.ts +2 -0
  201. package/dist/components/effects/Particles/Particles.d.ts +22 -0
  202. package/dist/components/effects/Particles/Particles.js +33 -0
  203. package/dist/components/effects/Particles/Particles.scene.d.ts +3 -0
  204. package/dist/components/effects/Particles/Particles.scene.js +284 -0
  205. package/dist/components/effects/Particles/Particles.types.d.ts +65 -0
  206. package/dist/components/effects/Particles/index.d.ts +2 -0
  207. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.d.ts +3 -0
  208. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +75 -0
  209. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.d.ts +7 -0
  210. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.js +12 -0
  211. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +47 -0
  212. package/dist/components/effects/ProgressiveBlur/index.d.ts +2 -0
  213. package/dist/components/effects/ScrollReveal/ScrollReveal.d.ts +29 -0
  214. package/dist/components/effects/ScrollReveal/ScrollReveal.js +121 -0
  215. package/dist/components/effects/ScrollReveal/ScrollReveal.types.d.ts +25 -0
  216. package/dist/components/effects/ScrollReveal/index.d.ts +2 -0
  217. package/dist/components/effects/Spotlight/Spotlight.d.ts +36 -0
  218. package/dist/components/effects/Spotlight/Spotlight.js +112 -0
  219. package/dist/components/effects/Spotlight/Spotlight.types.d.ts +29 -0
  220. package/dist/components/effects/Spotlight/index.d.ts +2 -0
  221. package/dist/components/effects/StickyScroll/StickyScroll.d.ts +30 -0
  222. package/dist/components/effects/StickyScroll/StickyScroll.js +128 -0
  223. package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +19 -0
  224. package/dist/components/effects/StickyScroll/index.d.ts +2 -0
  225. package/dist/components/effects/index.d.ts +24 -0
  226. package/dist/components/effects/index.js +12 -0
  227. package/dist/components/forms/Checkbox/Checkbox.js +3 -3
  228. package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -5
  229. package/dist/components/forms/ColorPicker/ColorPicker.theme.js +2 -2
  230. package/dist/components/forms/CronInput/CronInput.d.ts +3 -0
  231. package/dist/components/forms/CronInput/CronInput.js +107 -0
  232. package/dist/components/forms/CronInput/CronInput.theme.d.ts +6 -0
  233. package/dist/components/forms/CronInput/CronInput.theme.js +84 -0
  234. package/dist/components/forms/CronInput/CronInput.types.d.ts +98 -0
  235. package/dist/components/forms/CronInput/CronInput.utils.d.ts +67 -0
  236. package/dist/components/forms/CronInput/CronInput.utils.js +505 -0
  237. package/dist/components/forms/CronInput/index.d.ts +4 -0
  238. package/dist/components/forms/DatePicker/DatePicker.theme.js +2 -2
  239. package/dist/components/forms/FileUpload/FileUpload.js +78 -0
  240. package/dist/components/forms/InputOTP/InputOTP.theme.js +1 -1
  241. package/dist/components/forms/Mention/Mention.d.ts +3 -0
  242. package/dist/components/forms/Mention/Mention.js +410 -0
  243. package/dist/components/forms/Mention/Mention.theme.d.ts +6 -0
  244. package/dist/components/forms/Mention/Mention.theme.js +56 -0
  245. package/dist/components/forms/Mention/Mention.types.d.ts +111 -0
  246. package/dist/components/forms/Mention/index.d.ts +3 -0
  247. package/dist/components/forms/Radio/Radio.js +8 -12
  248. package/dist/components/forms/Radio/Radio.theme.js +28 -5
  249. package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +2 -0
  250. package/dist/components/forms/SelectableCard/SelectableCard.animations.js +9 -0
  251. package/dist/components/forms/SelectableCard/SelectableCard.d.ts +5 -0
  252. package/dist/components/forms/SelectableCard/SelectableCard.js +58 -0
  253. package/dist/components/forms/SelectableCard/SelectableCard.theme.d.ts +2 -0
  254. package/dist/components/forms/SelectableCard/SelectableCard.theme.js +38 -0
  255. package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +34 -0
  256. package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +3 -0
  257. package/dist/components/forms/SelectableCard/SelectableCardContext.js +12 -0
  258. package/dist/components/forms/SelectableCard/SelectableCardGroup.d.ts +3 -0
  259. package/dist/components/forms/SelectableCard/SelectableCardGroup.js +37 -0
  260. package/dist/components/forms/SelectableCard/index.d.ts +3 -0
  261. package/dist/components/forms/TimePicker/TimePickerContent.js +78 -1
  262. package/dist/components/forms/TransferList/TransferList.animations.d.ts +10 -0
  263. package/dist/components/forms/TransferList/TransferList.animations.js +32 -0
  264. package/dist/components/forms/TransferList/TransferList.d.ts +28 -0
  265. package/dist/components/forms/TransferList/TransferList.js +199 -0
  266. package/dist/components/forms/TransferList/TransferList.theme.d.ts +6 -0
  267. package/dist/components/forms/TransferList/TransferList.theme.js +60 -0
  268. package/dist/components/forms/TransferList/TransferList.types.d.ts +101 -0
  269. package/dist/components/forms/TransferList/index.d.ts +3 -0
  270. package/dist/components/forms/index.d.ts +13 -0
  271. package/dist/components/forms/index.js +87 -0
  272. package/dist/components/layout/FormLayout/FormLayout.d.ts +8 -0
  273. package/dist/components/layout/FormLayout/FormLayout.js +22 -0
  274. package/dist/components/layout/FormLayout/FormLayout.theme.d.ts +2 -0
  275. package/dist/components/layout/FormLayout/FormLayout.theme.js +16 -0
  276. package/dist/components/layout/FormLayout/FormLayout.types.d.ts +61 -0
  277. package/dist/components/layout/FormLayout/FormLayoutBody.d.ts +3 -0
  278. package/dist/components/layout/FormLayout/FormLayoutBody.js +91 -0
  279. package/dist/components/layout/FormLayout/FormLayoutFooter.d.ts +3 -0
  280. package/dist/components/layout/FormLayout/FormLayoutFooter.js +12 -0
  281. package/dist/components/layout/FormLayout/FormLayoutHeader.d.ts +3 -0
  282. package/dist/components/layout/FormLayout/FormLayoutHeader.js +12 -0
  283. package/dist/components/layout/FormLayout/FormLayoutSection.d.ts +3 -0
  284. package/dist/components/layout/FormLayout/FormLayoutSection.js +12 -0
  285. package/dist/components/layout/FormLayout/index.d.ts +3 -0
  286. package/dist/components/layout/PageLayout/PageLayout.d.ts +7 -0
  287. package/dist/components/layout/PageLayout/PageLayout.js +33 -0
  288. package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +2 -0
  289. package/dist/components/layout/PageLayout/PageLayout.theme.js +10 -0
  290. package/dist/components/layout/PageLayout/PageLayout.types.d.ts +39 -0
  291. package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +3 -0
  292. package/dist/components/layout/PageLayout/PageLayoutContent.js +12 -0
  293. package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +3 -0
  294. package/dist/components/layout/PageLayout/PageLayoutHeader.js +12 -0
  295. package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +3 -0
  296. package/dist/components/layout/PageLayout/PageLayoutSidebar.js +12 -0
  297. package/dist/components/layout/PageLayout/index.d.ts +3 -0
  298. package/dist/components/layout/index.d.ts +2 -0
  299. package/dist/index.d.ts +2 -0
  300. package/dist/index.js +208 -167
  301. package/dist/styles.css +1 -1
  302. package/dist/utils/dateUtils.d.ts +30 -0
  303. package/dist/utils/dateUtils.js +58 -1
  304. package/dist/utils/index.d.ts +1 -1
  305. package/package.json +5 -1
  306. package/dist/components/core/Card/CardDescription.d.ts +0 -3
  307. package/dist/components/core/Card/CardDescription.js +0 -11
  308. package/dist/components/core/Modal/ModalDescription.d.ts +0 -5
  309. package/dist/components/core/Modal/ModalDescription.js +0 -11
  310. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.d.ts +0 -34
  311. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.js +0 -218
  312. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.theme.d.ts +0 -9
  313. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.types.d.ts +0 -48
  314. package/dist/components/core/ProgressiveBlur/index.d.ts +0 -2
  315. package/dist/components/core/Table/TablePagination.js +0 -25
  316. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.d.ts +0 -0
  317. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.js +0 -0
  318. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.d.ts +0 -0
  319. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.types.d.ts +0 -0
  320. /package/dist/components/{core → data-display}/DescriptionList/index.d.ts +0 -0
  321. /package/dist/components/{core → data-display}/Feed/Feed.d.ts +0 -0
  322. /package/dist/components/{core → data-display}/Feed/Feed.theme.d.ts +0 -0
  323. /package/dist/components/{core → data-display}/Feed/Feed.theme.js +0 -0
  324. /package/dist/components/{core → data-display}/Feed/Feed.types.d.ts +0 -0
  325. /package/dist/components/{core → data-display}/Feed/index.d.ts +0 -0
  326. /package/dist/components/{core → data-display}/KPI/KPI.d.ts +0 -0
  327. /package/dist/components/{core → data-display}/KPI/KPI.theme.d.ts +0 -0
  328. /package/dist/components/{core → data-display}/Metric/Metric.d.ts +0 -0
  329. /package/dist/components/{core → data-display}/Metric/Metric.theme.d.ts +0 -0
  330. /package/dist/components/{core → data-display}/Metric/index.d.ts +0 -0
  331. /package/dist/components/{core → data-display}/Table/Table.animations.d.ts +0 -0
  332. /package/dist/components/{core → data-display}/Table/Table.animations.js +0 -0
  333. /package/dist/components/{core → data-display}/Table/Table.d.ts +0 -0
  334. /package/dist/components/{core → data-display}/Table/Table.filterUtils.d.ts +0 -0
  335. /package/dist/components/{core → data-display}/Table/Table.filterUtils.js +0 -0
  336. /package/dist/components/{core → data-display}/Table/Table.js +0 -0
  337. /package/dist/components/{core → data-display}/Table/Table.theme.d.ts +0 -0
  338. /package/dist/components/{core → data-display}/Table/Table.types.d.ts +0 -0
  339. /package/dist/components/{core → data-display}/Table/Table.utils.d.ts +0 -0
  340. /package/dist/components/{core → data-display}/Table/Table.utils.js +0 -0
  341. /package/dist/components/{core → data-display}/Table/TableActions.d.ts +0 -0
  342. /package/dist/components/{core → data-display}/Table/TableActionsMenu.d.ts +0 -0
  343. /package/dist/components/{core → data-display}/Table/TableActionsMenu.js +0 -0
  344. /package/dist/components/{core → data-display}/Table/TableBody.d.ts +0 -0
  345. /package/dist/components/{core → data-display}/Table/TableBody.js +0 -0
  346. /package/dist/components/{core → data-display}/Table/TableCell.d.ts +0 -0
  347. /package/dist/components/{core → data-display}/Table/TableCell.js +0 -0
  348. /package/dist/components/{core → data-display}/Table/TableColumnManager.d.ts +0 -0
  349. /package/dist/components/{core → data-display}/Table/TableDeclarative.d.ts +0 -0
  350. /package/dist/components/{core → data-display}/Table/TableDeclarative.js +0 -0
  351. /package/dist/components/{core → data-display}/Table/TableFilter.d.ts +0 -0
  352. /package/dist/components/{core → data-display}/Table/TableHeader.d.ts +0 -0
  353. /package/dist/components/{core → data-display}/Table/TableHeader.js +0 -0
  354. /package/dist/components/{core → data-display}/Table/TablePagination.d.ts +0 -0
  355. /package/dist/components/{core → data-display}/Table/TableRow.d.ts +0 -0
  356. /package/dist/components/{core → data-display}/Table/TableSelectionHeader.d.ts +0 -0
  357. /package/dist/components/{core → data-display}/Table/hooks/index.d.ts +0 -0
  358. /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.d.ts +0 -0
  359. /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.js +0 -0
  360. /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.d.ts +0 -0
  361. /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.js +0 -0
  362. /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.d.ts +0 -0
  363. /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.js +0 -0
  364. /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.d.ts +0 -0
  365. /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.js +0 -0
  366. /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.d.ts +0 -0
  367. /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.js +0 -0
  368. /package/dist/components/{core → data-display}/Table/index.d.ts +0 -0
  369. /package/dist/components/{core → data-display}/Table/index.js +0 -0
  370. /package/dist/components/{core → data-display}/Timeline/Timeline.animations.d.ts +0 -0
  371. /package/dist/components/{core → data-display}/Timeline/Timeline.animations.js +0 -0
  372. /package/dist/components/{core → data-display}/Timeline/Timeline.d.ts +0 -0
  373. /package/dist/components/{core → data-display}/Timeline/Timeline.js +0 -0
  374. /package/dist/components/{core → data-display}/Timeline/Timeline.theme.d.ts +0 -0
  375. /package/dist/components/{core → data-display}/Timeline/Timeline.theme.js +0 -0
  376. /package/dist/components/{core → data-display}/Timeline/Timeline.types.d.ts +0 -0
  377. /package/dist/components/{core → data-display}/Timeline/TimelineContent.d.ts +0 -0
  378. /package/dist/components/{core → data-display}/Timeline/TimelineContent.js +0 -0
  379. /package/dist/components/{core → data-display}/Timeline/TimelineItem.d.ts +0 -0
  380. /package/dist/components/{core → data-display}/Timeline/TimelineItem.js +0 -0
  381. /package/dist/components/{core → data-display}/Timeline/TimelineMarker.d.ts +0 -0
  382. /package/dist/components/{core → data-display}/Timeline/TimelineMarker.js +0 -0
  383. /package/dist/components/{core → data-display}/Timeline/index.d.ts +0 -0
@@ -0,0 +1,33 @@
1
+ import { useMemo } from 'react';
2
+ import { computeGroupSummary } from '../GanttChart.utils.js';
3
+
4
+ function useGanttLayout(groups, tasks, collapsedGroups, hideCompleted) {
5
+ return useMemo(() => {
6
+ const sorted = [...groups].sort((a, b) => { var _a, _b; return ((_a = a.order) !== null && _a !== void 0 ? _a : 0) - ((_b = b.order) !== null && _b !== void 0 ? _b : 0); });
7
+ const rows = [];
8
+ for (const group of sorted) {
9
+ const groupTasks = tasks.filter((t) => t.groupId === group.id);
10
+ const visibleTasks = hideCompleted
11
+ ? groupTasks.filter((t) => !t.completed)
12
+ : groupTasks;
13
+ const summary = computeGroupSummary(group, groupTasks);
14
+ rows.push({
15
+ type: "group",
16
+ group,
17
+ taskCount: visibleTasks.length,
18
+ completedCount: summary.completedCount,
19
+ earliestStart: summary.earliestStart,
20
+ latestEnd: summary.latestEnd,
21
+ });
22
+ const isCollapsed = collapsedGroups.includes(group.id);
23
+ if (!isCollapsed) {
24
+ for (const task of visibleTasks) {
25
+ rows.push({ type: "task", task, group });
26
+ }
27
+ }
28
+ }
29
+ return rows;
30
+ }, [groups, tasks, collapsedGroups, hideCompleted]);
31
+ }
32
+
33
+ export { useGanttLayout };
@@ -0,0 +1,6 @@
1
+ export declare function useGanttScrollSync(): {
2
+ tableRef: import("react").RefObject<HTMLDivElement | null>;
3
+ chartRef: import("react").RefObject<HTMLDivElement | null>;
4
+ handleTableScroll: () => void;
5
+ handleChartScroll: () => void;
6
+ };
@@ -0,0 +1,32 @@
1
+ import { useRef, useCallback } from 'react';
2
+
3
+ function useGanttScrollSync() {
4
+ const tableRef = useRef(null);
5
+ const chartRef = useRef(null);
6
+ const isSyncing = useRef(false);
7
+ const handleTableScroll = useCallback(() => {
8
+ if (isSyncing.current)
9
+ return;
10
+ isSyncing.current = true;
11
+ requestAnimationFrame(() => {
12
+ if (tableRef.current && chartRef.current) {
13
+ chartRef.current.scrollTop = tableRef.current.scrollTop;
14
+ }
15
+ isSyncing.current = false;
16
+ });
17
+ }, []);
18
+ const handleChartScroll = useCallback(() => {
19
+ if (isSyncing.current)
20
+ return;
21
+ isSyncing.current = true;
22
+ requestAnimationFrame(() => {
23
+ if (chartRef.current && tableRef.current) {
24
+ tableRef.current.scrollTop = chartRef.current.scrollTop;
25
+ }
26
+ isSyncing.current = false;
27
+ });
28
+ }, []);
29
+ return { tableRef, chartRef, handleTableScroll, handleChartScroll };
30
+ }
31
+
32
+ export { useGanttScrollSync };
@@ -0,0 +1,3 @@
1
+ export { GanttChart } from "./GanttChart";
2
+ export type { GanttChartProps, GanttTask, GanttGroup, GanttColumn, GanttZoom, GanttHoliday, GanttChartThemeOverrides, } from "./GanttChart.types";
3
+ export { ganttChartTheme } from "./GanttChart.theme";
@@ -1,10 +1,11 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React__default, { useMemo } from 'react';
3
+ import { motion } from 'motion/react';
3
4
  import { ArrowUpRightIcon, ArrowDownRightIcon } from '@heroicons/react/20/solid';
4
5
  import { cn } from '../../../utils/cn.js';
5
6
  import { kpiTheme } from './KPI.theme.js';
6
7
 
7
- const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progress, barCount = 24, description, icon, size = "md", color = "primary", className, theme: customTheme = {}, ...props }, ref) => {
8
+ const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progress, barCount = 24, subtitle, icon, size = "md", color = "primary", className, theme: customTheme = {}, ...props }, ref) => {
8
9
  const theme = useMemo(() => ({
9
10
  ...kpiTheme,
10
11
  ...customTheme,
@@ -33,15 +34,16 @@ const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progre
33
34
  const barSize = kpiTheme.barSizes[size];
34
35
  return (jsxs("div", { ref: ref, className: cn(theme.baseStyle, className), ...props, children: [jsxs("div", { className: "flex items-start justify-between", children: [jsxs("div", { className: "flex items-baseline gap-2", children: [jsx("span", { className: cn(theme.valueSizes[size]), children: value }), label && (jsxs("span", { className: cn(theme.labelStyle, theme.labelSizes[size]), children: [icon && (jsx("span", { className: "inline-flex items-center mr-1", children: icon })), label] }))] }), formattedTrend && trendDirection && (jsxs("span", { className: cn("inline-flex items-center gap-0.5 font-medium", theme.trendSizes[size], trendDirection === "up" && theme.trendPositive, trendDirection === "down" && theme.trendNegative, trendDirection === "neutral" && theme.trendNeutral), children: [formattedTrend, trendDirection === "up" && jsx(ArrowUpRightIcon, { className: "size-4" }), trendDirection === "down" && jsx(ArrowDownRightIcon, { className: "size-4" })] }))] }), progress !== undefined && (jsx("div", { className: cn("flex items-end", barSize.gap), role: "img", "aria-label": `Progress: ${progress}%`, children: Array.from({ length: barCount }, (_, i) => {
35
36
  const isFilled = i < filledBars;
36
- // Fade the last 2-3 filled bars for a smooth transition
37
37
  const fadeDistance = filledBars - i;
38
- const opacity = isFilled && fadeDistance <= 3
38
+ const fillOpacity = isFilled && fadeDistance <= 3
39
39
  ? 0.4 + (fadeDistance / 3) * 0.6
40
- : undefined;
41
- return (jsx("div", { className: cn("rounded-sm flex-1", barSize.height, isFilled
42
- ? theme.barFilledColors[color]
43
- : theme.barEmptyColor), style: isFilled && opacity !== undefined ? { opacity } : undefined }, i));
44
- }) })), description && (jsx("span", { className: cn(theme.descriptionStyle, size === "sm" ? "text-xs" : "text-sm"), children: description }))] }));
40
+ : 1;
41
+ return (jsx("div", { className: cn("relative rounded-sm flex-1", barSize.height, theme.barEmptyColor), children: isFilled && (jsx(motion.div, { className: cn("absolute inset-0 rounded-sm", theme.barFilledColors[color]), initial: { opacity: 0 }, animate: { opacity: fillOpacity }, transition: {
42
+ duration: 0.25,
43
+ ease: "easeOut",
44
+ delay: i * 0.03,
45
+ } })) }, i));
46
+ }) })), subtitle && (jsx("span", { className: cn(theme.subtitleStyle, size === "sm" ? "text-xs" : "text-sm"), children: subtitle }))] }));
45
47
  });
46
48
  KPI.displayName = "KPI";
47
49
 
@@ -24,6 +24,7 @@ const kpiTheme = {
24
24
  success: "bg-[var(--color-success)]",
25
25
  warning: "bg-[var(--color-warning)]",
26
26
  danger: "bg-[var(--color-danger)]",
27
+ neutral: "bg-[var(--color-text-secondary)]",
27
28
  },
28
29
  barEmptyColor: "bg-[var(--color-background-tertiary)]",
29
30
  barSizes: {
@@ -31,7 +32,7 @@ const kpiTheme = {
31
32
  md: { height: "h-6", width: "w-[3px]", gap: "gap-[3px]" },
32
33
  lg: { height: "h-8", width: "w-1", gap: "gap-1" },
33
34
  },
34
- descriptionStyle: "text-[var(--color-text-muted)]",
35
+ subtitleStyle: "text-[var(--color-text-muted)]",
35
36
  };
36
37
 
37
38
  export { kpiTheme };
@@ -1,6 +1,6 @@
1
1
  import { ReactNode, HTMLAttributes } from "react";
2
2
  export type KPISize = "sm" | "md" | "lg";
3
- export type KPIColor = "primary" | "success" | "warning" | "danger";
3
+ export type KPIColor = "primary" | "success" | "warning" | "danger" | "neutral";
4
4
  export interface KPITheme {
5
5
  baseStyle: string;
6
6
  valueSizes: Record<KPISize, string>;
@@ -17,7 +17,7 @@ export interface KPITheme {
17
17
  width: string;
18
18
  gap: string;
19
19
  }>;
20
- descriptionStyle: string;
20
+ subtitleStyle: string;
21
21
  }
22
22
  export interface KPIThemeOverrides {
23
23
  baseStyle?: string;
@@ -27,7 +27,7 @@ export interface KPIThemeOverrides {
27
27
  trendNegative?: string;
28
28
  barFilledColors?: Partial<Record<KPIColor, string>>;
29
29
  barEmptyColor?: string;
30
- descriptionStyle?: string;
30
+ subtitleStyle?: string;
31
31
  }
32
32
  export interface KPIProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
33
33
  /**
@@ -56,9 +56,9 @@ export interface KPIProps extends Omit<HTMLAttributes<HTMLDivElement>, "title">
56
56
  */
57
57
  barCount?: number;
58
58
  /**
59
- * Description text below the bars (e.g. "Compared to last month")
59
+ * Subtitle text below the bars (e.g. "Compared to last month")
60
60
  */
61
- description?: string;
61
+ subtitle?: string;
62
62
  /**
63
63
  * Icon to display before the label.
64
64
  */
@@ -1,2 +1,3 @@
1
1
  export { KPI } from "./KPI";
2
+ export { kpiTheme } from "./KPI.theme";
2
3
  export type { KPIProps, KPISize, KPIColor, KPITheme, KPIThemeOverrides, } from "./KPI.types";
@@ -2,21 +2,18 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
3
  import { cn } from '../../../utils/cn.js';
4
4
  import { metricTheme } from './Metric.theme.js';
5
- import { Badge } from '../Badge/Badge.js';
6
5
  import { ArrowTrendingUpIcon, ArrowTrendingDownIcon } from '@heroicons/react/24/outline';
7
6
 
8
- const Metric = React__default.forwardRef(({ value, label, description, trendValue, trendDirection = "up", trendChart, size = "md", variant = "filled", color = "primary", icon, className, ...props }, ref) => {
7
+ const Metric = React__default.forwardRef(({ value, label, subtitle, trendValue, trendDirection = "up", trendChart, size = "md", variant = "filled", color = "primary", icon, className, ...props }, ref) => {
9
8
  var _a;
10
9
  const trendIcon = trendDirection === "up" ? (jsx(ArrowTrendingUpIcon, { className: "size-3.5", strokeWidth: 2.5 })) : (jsx(ArrowTrendingDownIcon, { className: "size-3.5", strokeWidth: 2.5 }));
11
10
  const sizeStyles = metricTheme.sizes[size];
12
11
  const variantStyles = metricTheme.variants[variant];
13
12
  const variantColorStyles = metricTheme.variantColors[variant] || "";
14
13
  const iconStyles = ((_a = metricTheme.iconContainerVariantColors[variant]) === null || _a === void 0 ? void 0 : _a[color]) || "";
15
- return (jsx("div", { ref: ref, className: cn(metricTheme.baseStyle, variantStyles, variantColorStyles, sizeStyles.container, className), "data-size": size, ...props, children: jsxs("div", { className: "flex flex-col gap-3 ", children: [jsxs("div", { className: cn("flex items-start gap-3", sizeStyles.contentPadding), children: [icon && (jsx("div", { className: cn(metricTheme.iconContainerStyle, iconStyles, sizeStyles.iconContainer), children: icon })), jsxs("div", { className: "flex flex-col flex-1", children: [jsx("div", { className: cn(metricTheme.labelStyle, sizeStyles.label), children: label }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("div", { className: cn(metricTheme.valueStyle, sizeStyles.value), children: value }), trendValue && (jsxs("div", { className: "flex items-center gap-1", children: [jsx("div", { className: cn("rounded-full p-1 flex flex-shrink-0 w-fit h-fit", trendDirection === "up"
16
- ? "bg-[var(--color-success-100)] text-[var(--color-success)] dark:bg-[var(--color-success-100)]/20"
17
- : "bg-[var(--color-danger-100)] text-[var(--color-danger)] dark:bg-[var(--color-danger-100)]/20"), children: trendIcon }), jsx(Badge, { color: trendDirection === "up" ? "success" : "danger", variant: "ghost", className: cn("bg-transparent p-0 font-semibold gap-1 ring-0", trendDirection === "up"
18
- ? "text-[var(--color-success)]"
19
- : "text-[var(--color-danger)]"), children: trendValue })] }))] }), description && (jsx("div", { className: cn(metricTheme.descriptionStyle, sizeStyles.description), children: description }))] })] }), trendChart && (jsx("div", { className: "w-full h-12 flex-shrink-0 -mt-4", children: trendChart }))] }) }));
14
+ return (jsx("div", { ref: ref, className: cn(metricTheme.baseStyle, variantStyles, variantColorStyles, sizeStyles.container, className), "data-size": size, ...props, children: jsxs("div", { className: "flex flex-col gap-3 ", children: [jsxs("div", { className: cn("flex items-start gap-3", sizeStyles.contentPadding), children: [icon && (jsx("div", { className: cn(metricTheme.iconContainerStyle, iconStyles, sizeStyles.iconContainer), children: icon })), jsxs("div", { className: "flex flex-col flex-1", children: [jsx("div", { className: cn(metricTheme.labelStyle, sizeStyles.label), children: label }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("div", { className: cn(metricTheme.valueStyle, sizeStyles.value), children: value }), trendValue && (jsxs("div", { className: cn("flex items-center w-fit gap-1 text-sm font-medium", trendDirection === "up"
15
+ ? "text-[var(--color-success)]"
16
+ : "text-[var(--color-danger)]"), children: [trendIcon, " ", trendValue] }))] }), subtitle && (jsx("div", { className: cn(metricTheme.subtitleStyle, sizeStyles.subtitle), children: subtitle }))] })] }), trendChart && (jsx("div", { className: "w-full h-12 flex-shrink-0 -mt-4", children: trendChart }))] }) }));
20
17
  });
21
18
  Metric.displayName = "Metric";
22
19
 
@@ -19,15 +19,15 @@ const metricTheme = {
19
19
  iconContainerVariantColors: {
20
20
  filled: {
21
21
  neutral: "bg-white text-[var(--color-text-primary)] border border-[var(--color-border)] " +
22
- "dark:bg-[var(--color-background-secondary)] dark:border-0",
22
+ "dark:bg-[var(--color-background-secondary)]",
23
23
  primary: "bg-white text-[var(--color-primary)] border border-[var(--color-border)] " +
24
- "dark:bg-[var(--color-background-secondary)] dark:border-0",
24
+ "dark:bg-[var(--color-background-secondary)]",
25
25
  success: "bg-white text-[var(--color-success)] border border-[var(--color-border)] " +
26
- "dark:bg-[var(--color-background-secondary)] dark:border-0",
26
+ "dark:bg-[var(--color-background-secondary)]",
27
27
  warning: "bg-white text-[var(--color-warning)] border border-[var(--color-border)] " +
28
- "dark:bg-[var(--color-background-secondary)] dark:border-0",
28
+ "dark:bg-[var(--color-background-secondary)]",
29
29
  danger: "bg-white text-[var(--color-danger)] border border-[var(--color-border)] " +
30
- "dark:bg-[var(--color-background-secondary)] dark:border-0",
30
+ "dark:bg-[var(--color-background-secondary)]",
31
31
  },
32
32
  glass: {
33
33
  neutral: "glass-effect-1 !ring-0 text-[var(--color-text-primary)]",
@@ -49,7 +49,7 @@ const metricTheme = {
49
49
  iconContainer: "size-10",
50
50
  label: "text-xs",
51
51
  value: "text-xl",
52
- description: "text-xs mt-1",
52
+ subtitle: "text-xs mt-1",
53
53
  },
54
54
  md: {
55
55
  container: "", // Padding moved to content section
@@ -57,7 +57,7 @@ const metricTheme = {
57
57
  iconContainer: "size-14",
58
58
  label: "text-sm",
59
59
  value: "text-2xl",
60
- description: "text-xs mt-0.5",
60
+ subtitle: "text-xs mt-0.5",
61
61
  },
62
62
  lg: {
63
63
  container: "", // Padding moved to content section
@@ -65,13 +65,13 @@ const metricTheme = {
65
65
  iconContainer: "size-16",
66
66
  label: "text-base",
67
67
  value: "text-3xl",
68
- description: "text-sm mt-1",
68
+ subtitle: "text-sm mt-1",
69
69
  },
70
70
  },
71
71
  // Common element styles
72
72
  labelStyle: "font-semibold text-[var(--color-text-secondary)] mb-1",
73
73
  valueStyle: "font-bold text-[var(--color-text-primary)] tracking-tight",
74
- descriptionStyle: "text-[var(--color-text-secondary)]/80",
74
+ subtitleStyle: "text-[var(--color-text-secondary)]/80",
75
75
  iconContainerStyle: "rounded-full flex items-center justify-center flex-shrink-0 p-3.5",
76
76
  };
77
77
 
@@ -13,9 +13,9 @@ export interface MetricProps extends React.HTMLAttributes<HTMLDivElement> {
13
13
  */
14
14
  label: string;
15
15
  /**
16
- * Optional description or secondary text
16
+ * Optional subtitle or secondary text
17
17
  */
18
- description?: string;
18
+ subtitle?: string;
19
19
  /**
20
20
  * Trend value to display (e.g., "+10.34%", "-5.2%")
21
21
  * Also acts as boolean - if provided, trend badge is shown
@@ -65,11 +65,11 @@ export interface MetricTheme {
65
65
  iconContainer: string;
66
66
  label: string;
67
67
  value: string;
68
- description: string;
68
+ subtitle: string;
69
69
  }>;
70
70
  labelStyle: string;
71
71
  valueStyle: string;
72
- descriptionStyle: string;
72
+ subtitleStyle: string;
73
73
  iconContainerStyle: string;
74
74
  }
75
75
  export interface MetricThemeOverrides {
@@ -83,10 +83,10 @@ export interface MetricThemeOverrides {
83
83
  iconContainer: string;
84
84
  label: string;
85
85
  value: string;
86
- description: string;
86
+ subtitle: string;
87
87
  }>>>;
88
88
  labelStyle?: string;
89
89
  valueStyle?: string;
90
- descriptionStyle?: string;
90
+ subtitleStyle?: string;
91
91
  iconContainerStyle?: string;
92
92
  }
@@ -22,8 +22,8 @@ const tableTheme = {
22
22
  },
23
23
  // Header styles
24
24
  // Light: primary text, light border | Dark: neutral-200 text, neutral-700 border
25
- headerStyle: "text-left font-medium sticky top-0 border-b first:pl-4 last:pr-4 " +
26
- "text-[var(--color-text-primary)] border-[var(--color-border)] ",
25
+ headerStyle: "text-left font-semibold sticky top-0 border-b first:pl-4 last:pr-4 " +
26
+ "text-[var(--color-text-secondary)]/80 text-sm border-[var(--color-border)] ",
27
27
  // Cell styles — borders on cells (not rows) so sticky columns keep them
28
28
  // Light: primary text | Dark: neutral-300 text
29
29
  cellStyle: "border-b border-b-[var(--color-border)] first:pl-4 last:pr-4 " +
@@ -1,14 +1,14 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
3
  import { cn } from '../../../utils/cn.js';
4
- import { Dropdown } from '../Dropdown/Dropdown.js';
5
- import '../Dropdown/DropdownTrigger.js';
6
- import '../Dropdown/DropdownMenu.js';
7
- import '../Dropdown/DropdownItem.js';
8
- import '../Dropdown/DropdownSection.js';
9
- import '../Dropdown/DropdownSeparator.js';
10
- import '../Dropdown/Dropdown.theme.js';
11
- import { Button } from '../Button/Button.js';
4
+ import { Dropdown } from '../../core/Dropdown/Dropdown.js';
5
+ import '../../core/Dropdown/DropdownTrigger.js';
6
+ import '../../core/Dropdown/DropdownMenu.js';
7
+ import '../../core/Dropdown/DropdownItem.js';
8
+ import '../../core/Dropdown/DropdownSection.js';
9
+ import '../../core/Dropdown/DropdownSeparator.js';
10
+ import '../../core/Dropdown/Dropdown.theme.js';
11
+ import { Button } from '../../core/Button/Button.js';
12
12
  import { EllipsisHorizontalIcon } from '@heroicons/react/20/solid';
13
13
 
14
14
  /**
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Popover } from '../Popover/Popover.js';
3
- import '../Popover/PopoverContext.js';
2
+ import { Popover } from '../../core/Popover/Popover.js';
3
+ import '../../core/Popover/PopoverContext.js';
4
4
  import { Cog6ToothIcon } from '@heroicons/react/24/outline';
5
- import { Button } from '../Button/Button.js';
5
+ import { Button } from '../../core/Button/Button.js';
6
6
  import { Checkbox } from '../../forms/Checkbox/Checkbox.js';
7
- import { Sortable, SortableItem } from '../Sortable/Sortable.js';
7
+ import { Sortable, SortableItem } from '../../core/Sortable/Sortable.js';
8
8
 
9
9
  function TableColumnManagerComponent({ columns, visibleColumns, columnOrder, onToggleColumn, onResetToDefault, onColumnReorder, }) {
10
10
  const orderedColumns = columnOrder.length > 0
@@ -1,13 +1,13 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState, useCallback } from 'react';
3
3
  import { inferFilterType, getDefaultOperator, isUnaryOperator, getOperatorsForFilterType, isBetweenOperator } from './Table.filterUtils.js';
4
- import { Button } from '../Button/Button.js';
4
+ import { Button } from '../../core/Button/Button.js';
5
5
  import { Input } from '../../forms/Input/Input.js';
6
6
  import '../../forms/Input/Input.theme.js';
7
7
  import { Select } from '../../forms/Select/Select.js';
8
8
  import '../../forms/Select/Select.theme.js';
9
- import { Popover } from '../Popover/Popover.js';
10
- import '../Popover/PopoverContext.js';
9
+ import { Popover } from '../../core/Popover/Popover.js';
10
+ import '../../core/Popover/PopoverContext.js';
11
11
  import { FunnelIcon, XMarkIcon, PlusIcon } from '@heroicons/react/24/outline';
12
12
  import { cn } from '../../../utils/cn.js';
13
13
 
@@ -0,0 +1,25 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+ import { Pagination } from '../../core/Pagination/Pagination.js';
4
+ import { Select } from '../../forms/Select/Select.js';
5
+ import '../../forms/Select/Select.theme.js';
6
+ import { cn } from '../../../utils/cn.js';
7
+
8
+ /**
9
+ * TablePagination provides a standardized pagination interface for tables
10
+ * Combines the core Pagination component with page size selection controls
11
+ */
12
+ const TablePagination = React__default.forwardRef(({ currentPage, totalItems, pageSize, pageSizeOptions = [10, 25, 50, 100], onPageChange, onPageSizeChange, showPageSizeSelector = true, className, }, ref) => {
13
+ const totalPages = Math.ceil(totalItems / pageSize);
14
+ const startItem = (currentPage - 1) * pageSize + 1;
15
+ const endItem = Math.min(currentPage * pageSize, totalItems);
16
+ const pageSizeSelectOptions = pageSizeOptions.map((option) => ({
17
+ id: option,
18
+ label: option.toString(),
19
+ value: option,
20
+ }));
21
+ return (jsxs("div", { ref: ref, className: cn("flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 px-4 py-3 border-t border-[var(--color-border)] bg-[var(--color-background)]", className), children: [jsxs("div", { className: "flex items-center gap-4", children: [showPageSizeSelector && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: "Rows per page:" }), jsx(Select, { value: pageSize, onChange: (value) => onPageSizeChange(value), options: pageSizeSelectOptions, size: "sm", className: "w-20" })] })), jsx("div", { className: "text-sm text-[var(--color-text-muted)]", children: totalItems > 0 ? (jsxs(Fragment, { children: ["Showing ", startItem.toLocaleString(), " to ", endItem.toLocaleString(), " of", " ", totalItems.toLocaleString(), " results"] })) : ("No results") })] }), totalPages > 1 && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange, showPrevNext: true, showFirstLast: false, siblingCount: 1 }))] }));
22
+ });
23
+ TablePagination.displayName = "Table.Pagination";
24
+
25
+ export { TablePagination };
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
3
  import { AnimatePresence, motion } from 'motion/react';
4
4
  import { TableCell } from './TableCell.js';
5
- import { Button } from '../Button/Button.js';
5
+ import { Button } from '../../core/Button/Button.js';
6
6
  import { Checkbox } from '../../forms/Checkbox/Checkbox.js';
7
7
  import { Radio } from '../../forms/Radio/Radio.js';
8
8
  import { MinusIcon, PlusIcon } from '@heroicons/react/24/outline';
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { XMarkIcon } from '@heroicons/react/24/outline';
3
- import { Button } from '../Button/Button.js';
3
+ import { Button } from '../../core/Button/Button.js';
4
4
  import { cn } from '../../../utils/cn.js';
5
5
  import 'react';
6
6
 
@@ -0,0 +1,7 @@
1
+ export * from "./Table";
2
+ export * from "./KPI";
3
+ export * from "./Metric";
4
+ export * from "./DescriptionList";
5
+ export * from "./Timeline";
6
+ export * from "./Feed";
7
+ export * from "./GanttChart";
@@ -0,0 +1,20 @@
1
+ export { Table } from './Table/index.js';
2
+ export { KPI } from './KPI/KPI.js';
3
+ export { kpiTheme } from './KPI/KPI.theme.js';
4
+ export { Metric } from './Metric/Metric.js';
5
+ export { metricTheme } from './Metric/Metric.theme.js';
6
+ export { DescriptionList } from './DescriptionList/DescriptionList.js';
7
+ export { Timeline } from './Timeline/Timeline.js';
8
+ export { Feed } from './Feed/Feed.js';
9
+ export { GanttChart } from './GanttChart/GanttChart.js';
10
+ export { ganttChartTheme } from './GanttChart/GanttChart.theme.js';
11
+ export { TableActions } from './Table/TableActions.js';
12
+ export { TableActionsMenu } from './Table/TableActionsMenu.js';
13
+ export { TableFilter } from './Table/TableFilter.js';
14
+ export { TablePagination } from './Table/TablePagination.js';
15
+ export { filterData, getDefaultOperator, getOperatorsForFilterType, inferFilterType, isBetweenOperator, isUnaryOperator, operatorLabels } from './Table/Table.filterUtils.js';
16
+ export { useTableColumns } from './Table/hooks/useTableColumns.js';
17
+ export { useTableExpansion } from './Table/hooks/useTableExpansion.js';
18
+ export { useTableFilter } from './Table/hooks/useTableFilter.js';
19
+ export { useTablePagination } from './Table/hooks/useTablePagination.js';
20
+ export { useTableSelection } from './Table/hooks/useTableSelection.js';
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { AuroraProps } from './Aurora.types';
3
+ /**
4
+ * Aurora creates an animated multi-color gradient background effect.
5
+ *
6
+ * Renders several large, blurred, semi-transparent blobs that slowly drift
7
+ * and morph, producing an organic aurora-like glow. Ideal for hero sections
8
+ * and decorative backgrounds.
9
+ *
10
+ * The component renders as an absolutely-positioned layer with
11
+ * `pointer-events-none`, so it will not interfere with interactive content.
12
+ * The parent element should have `position: relative` and `overflow: hidden`.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <div className="relative overflow-hidden h-96 bg-gray-950">
17
+ * <Aurora />
18
+ * <div className="relative z-10 text-white p-8">
19
+ * <h1>Hero Content</h1>
20
+ * </div>
21
+ * </div>
22
+ * ```
23
+ */
24
+ export declare const Aurora: React.FC<AuroraProps>;
@@ -0,0 +1,119 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useReducedMotion, motion } from 'motion/react';
3
+ import { cn } from '../../../utils/cn.js';
4
+
5
+ const DEFAULT_COLORS = ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4'];
6
+ /**
7
+ * Each blob follows a unique organic path using keyframed x/y translations
8
+ * and scale changes. The durations are intentionally varied so the blobs
9
+ * never synchronize, producing a natural morphing look.
10
+ */
11
+ const blobAnimations = [
12
+ {
13
+ // Blob 0 -- slow horizontal drift with vertical bob
14
+ x: ['0%', '30%', '-20%', '10%', '0%'],
15
+ y: ['0%', '-25%', '15%', '-10%', '0%'],
16
+ scale: [1, 1.15, 0.9, 1.05, 1],
17
+ baseDuration: 20,
18
+ },
19
+ {
20
+ // Blob 1 -- figure-8-ish path, slightly faster
21
+ x: ['0%', '-35%', '25%', '-15%', '0%'],
22
+ y: ['0%', '20%', '-30%', '25%', '0%'],
23
+ scale: [1, 0.9, 1.2, 0.95, 1],
24
+ baseDuration: 23,
25
+ },
26
+ {
27
+ // Blob 2 -- wide circular sweep
28
+ x: ['0%', '25%', '0%', '-25%', '0%'],
29
+ y: ['0%', '-20%', '25%', '-15%', '0%'],
30
+ scale: [1, 1.1, 0.85, 1.15, 1],
31
+ baseDuration: 27,
32
+ },
33
+ {
34
+ // Blob 3 -- gentle diagonal drift
35
+ x: ['0%', '-20%', '30%', '-10%', '0%'],
36
+ y: ['0%', '30%', '-20%', '10%', '0%'],
37
+ scale: [1, 0.95, 1.1, 0.9, 1],
38
+ baseDuration: 31,
39
+ },
40
+ ];
41
+ /**
42
+ * Positions each blob at a different quadrant of the container so they
43
+ * begin spread out. Additional blobs beyond 4 cycle through positions.
44
+ */
45
+ const blobPositions = [
46
+ { top: '10%', left: '15%' },
47
+ { top: '5%', right: '10%' },
48
+ { bottom: '10%', left: '20%' },
49
+ { bottom: '5%', right: '15%' },
50
+ ];
51
+ /**
52
+ * Aurora creates an animated multi-color gradient background effect.
53
+ *
54
+ * Renders several large, blurred, semi-transparent blobs that slowly drift
55
+ * and morph, producing an organic aurora-like glow. Ideal for hero sections
56
+ * and decorative backgrounds.
57
+ *
58
+ * The component renders as an absolutely-positioned layer with
59
+ * `pointer-events-none`, so it will not interfere with interactive content.
60
+ * The parent element should have `position: relative` and `overflow: hidden`.
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * <div className="relative overflow-hidden h-96 bg-gray-950">
65
+ * <Aurora />
66
+ * <div className="relative z-10 text-white p-8">
67
+ * <h1>Hero Content</h1>
68
+ * </div>
69
+ * </div>
70
+ * ```
71
+ */
72
+ const Aurora = ({ colors = DEFAULT_COLORS, blur = 80, speed = 1, opacity = 0.3, size = 1, className, style, ...props }) => {
73
+ const shouldReduceMotion = useReducedMotion();
74
+ // Compute base blob dimension from the size multiplier.
75
+ // Using percentage-based sizing so it scales with the container.
76
+ const blobDimension = `${40 * size}%`;
77
+ return (jsx("div", { className: cn('absolute inset-0 overflow-hidden pointer-events-none', className), style: {
78
+ opacity,
79
+ filter: `blur(${blur}px)`,
80
+ ...style,
81
+ }, "aria-hidden": "true", ...props, children: colors.map((color, index) => {
82
+ const anim = blobAnimations[index % blobAnimations.length];
83
+ const position = blobPositions[index % blobPositions.length];
84
+ const duration = anim.baseDuration / speed;
85
+ // When reduced motion is preferred, render static blobs with no animation.
86
+ if (shouldReduceMotion) {
87
+ return (jsx("div", { style: {
88
+ position: 'absolute',
89
+ ...position,
90
+ width: blobDimension,
91
+ height: blobDimension,
92
+ borderRadius: '50%',
93
+ background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
94
+ mixBlendMode: 'screen',
95
+ } }, index));
96
+ }
97
+ return (jsx(motion.div, { animate: {
98
+ x: anim.x,
99
+ y: anim.y,
100
+ scale: anim.scale,
101
+ }, transition: {
102
+ duration,
103
+ repeat: Infinity,
104
+ repeatType: 'loop',
105
+ ease: 'easeInOut',
106
+ }, style: {
107
+ position: 'absolute',
108
+ ...position,
109
+ width: blobDimension,
110
+ height: blobDimension,
111
+ borderRadius: '50%',
112
+ background: `radial-gradient(circle at center, ${color}, transparent 70%)`,
113
+ mixBlendMode: 'screen',
114
+ willChange: 'transform',
115
+ } }, index));
116
+ }) }));
117
+ };
118
+
119
+ export { Aurora };
@@ -0,0 +1,15 @@
1
+ import type React from 'react';
2
+ export interface AuroraProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Array of CSS color values for the gradient blobs (default: ['#3b82f6', '#8b5cf6', '#ec4899', '#06b6d4']) */
4
+ colors?: string[];
5
+ /** Blur amount in pixels applied to blobs (default: 80) */
6
+ blur?: number;
7
+ /** Animation speed multiplier. Higher values = faster movement (default: 1) */
8
+ speed?: number;
9
+ /** Overall opacity of the aurora layer, 0-1 (default: 0.3) */
10
+ opacity?: number;
11
+ /** Blob size multiplier. Higher values = larger blobs (default: 1) */
12
+ size?: number;
13
+ /** Additional className for the container */
14
+ className?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export { Aurora } from './Aurora';
2
+ export type { AuroraProps } from './Aurora.types';