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

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 (394) 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 +51 -10
  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/charts/DonutChart/DonutChart.types.d.ts +1 -2
  7. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.types.d.ts +1 -2
  8. package/dist/components/core/Accordion/Accordion.theme.js +2 -2
  9. package/dist/components/core/Alert/Alert.js +2 -2
  10. package/dist/components/core/Alert/Alert.types.d.ts +2 -2
  11. package/dist/components/core/AlertDialog/AlertDialog.d.ts +1 -1
  12. package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
  13. package/dist/components/core/AlertDialog/AlertDialog.types.d.ts +2 -2
  14. package/dist/components/core/Badge/Badge.d.ts +1 -1
  15. package/dist/components/core/Badge/Badge.js +11 -9
  16. package/dist/components/core/Badge/Badge.theme.js +13 -14
  17. package/dist/components/core/Badge/Badge.types.d.ts +8 -4
  18. package/dist/components/core/Button/Button.d.ts +1 -1
  19. package/dist/components/core/Button/Button.theme.js +8 -9
  20. package/dist/components/core/Button/Button.types.d.ts +1 -2
  21. package/dist/components/core/Calendar/Calendar.theme.js +1 -1
  22. package/dist/components/core/Card/Card.d.ts +2 -2
  23. package/dist/components/core/Card/Card.js +6 -7
  24. package/dist/components/core/Card/Card.theme.js +4 -4
  25. package/dist/components/core/Card/Card.types.d.ts +5 -20
  26. package/dist/components/core/Card/CardSubtitle.d.ts +3 -0
  27. package/dist/components/core/Card/CardSubtitle.js +11 -0
  28. package/dist/components/core/Card/index.d.ts +2 -2
  29. package/dist/components/core/CommandPalette/CommandItem.d.ts +1 -1
  30. package/dist/components/core/CommandPalette/CommandItem.js +2 -2
  31. package/dist/components/core/CommandPalette/CommandPalette.js +2 -2
  32. package/dist/components/core/CommandPalette/CommandPalette.theme.js +2 -2
  33. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -2
  34. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +1 -1
  35. package/dist/components/core/ContextMenu/ContextMenuItem.js +2 -2
  36. package/dist/components/core/Drawer/Drawer.d.ts +13 -1
  37. package/dist/components/core/Drawer/Drawer.js +23 -10
  38. package/dist/components/core/Drawer/Drawer.theme.js +1 -1
  39. package/dist/components/core/Drawer/Drawer.types.d.ts +21 -4
  40. package/dist/components/core/Drawer/DrawerHeader.d.ts +5 -0
  41. package/dist/components/core/Drawer/DrawerHeader.js +14 -0
  42. package/dist/components/core/Drawer/DrawerSubtitle.d.ts +5 -0
  43. package/dist/components/core/Drawer/DrawerSubtitle.js +11 -0
  44. package/dist/components/core/Drawer/DrawerTitle.d.ts +5 -0
  45. package/dist/components/core/Drawer/DrawerTitle.js +11 -0
  46. package/dist/components/core/Drawer/index.d.ts +1 -1
  47. package/dist/components/core/Dropdown/Dropdown.types.d.ts +4 -4
  48. package/dist/components/core/Dropdown/DropdownItem.js +2 -2
  49. package/dist/components/core/Empty/Empty.js +2 -2
  50. package/dist/components/core/Empty/Empty.theme.d.ts +1 -1
  51. package/dist/components/core/Empty/Empty.theme.js +3 -3
  52. package/dist/components/core/Empty/Empty.types.d.ts +2 -2
  53. package/dist/components/core/Link/Link.d.ts +1 -1
  54. package/dist/components/core/Link/Link.types.d.ts +2 -2
  55. package/dist/components/core/MenuItem/MenuItem.js +2 -2
  56. package/dist/components/core/MenuItem/MenuItem.theme.d.ts +1 -2
  57. package/dist/components/core/MenuItem/MenuItem.theme.js +7 -9
  58. package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
  59. package/dist/components/core/Message/Message.d.ts +3 -2
  60. package/dist/components/core/Message/Message.js +30 -24
  61. package/dist/components/core/Message/Message.theme.d.ts +1 -1
  62. package/dist/components/core/Message/Message.theme.js +22 -24
  63. package/dist/components/core/Message/Message.types.d.ts +0 -7
  64. package/dist/components/core/Message/MessageList.animations.d.ts +6 -0
  65. package/dist/components/core/Message/MessageList.animations.js +32 -0
  66. package/dist/components/core/Message/MessageList.d.ts +5 -0
  67. package/dist/components/core/Message/MessageList.js +78 -0
  68. package/dist/components/core/Message/MessageList.theme.d.ts +2 -0
  69. package/dist/components/core/Message/MessageList.theme.js +6 -0
  70. package/dist/components/core/Message/MessageList.types.d.ts +32 -0
  71. package/dist/components/core/Message/index.d.ts +2 -0
  72. package/dist/components/core/Modal/Modal.d.ts +2 -2
  73. package/dist/components/core/Modal/Modal.js +5 -5
  74. package/dist/components/core/Modal/Modal.theme.js +5 -5
  75. package/dist/components/core/Modal/Modal.types.d.ts +4 -4
  76. package/dist/components/core/Modal/ModalSubtitle.d.ts +5 -0
  77. package/dist/components/core/Modal/ModalSubtitle.js +11 -0
  78. package/dist/components/core/ModalStack/ModalStack.animations.js +3 -3
  79. package/dist/components/core/ModalStack/ModalStackModal.js +3 -3
  80. package/dist/components/core/PageHeading/PageHeading.d.ts +8 -0
  81. package/dist/components/core/PageHeading/PageHeading.js +28 -0
  82. package/dist/components/core/PageHeading/PageHeading.theme.d.ts +2 -0
  83. package/dist/components/core/PageHeading/PageHeading.theme.js +11 -0
  84. package/dist/components/core/PageHeading/PageHeading.types.d.ts +55 -0
  85. package/dist/components/core/PageHeading/PageHeadingActions.d.ts +3 -0
  86. package/dist/components/core/PageHeading/PageHeadingActions.js +11 -0
  87. package/dist/components/core/PageHeading/PageHeadingBackButton.d.ts +3 -0
  88. package/dist/components/core/PageHeading/PageHeadingBackButton.js +12 -0
  89. package/dist/components/core/PageHeading/PageHeadingIcon.d.ts +3 -0
  90. package/dist/components/core/PageHeading/PageHeadingIcon.js +11 -0
  91. package/dist/components/core/PageHeading/PageHeadingSubtitle.d.ts +3 -0
  92. package/dist/components/core/PageHeading/PageHeadingSubtitle.js +11 -0
  93. package/dist/components/core/PageHeading/PageHeadingTitle.d.ts +3 -0
  94. package/dist/components/core/PageHeading/PageHeadingTitle.js +11 -0
  95. package/dist/components/core/PageHeading/index.d.ts +2 -0
  96. package/dist/components/core/Popover/Popover.theme.js +1 -1
  97. package/dist/components/core/Segmented/Segmented.theme.js +3 -3
  98. package/dist/components/core/Sidebar/Sidebar.js +1 -0
  99. package/dist/components/core/SocialIcon/SocialIcon.d.ts +3 -0
  100. package/dist/components/core/SocialIcon/SocialIcon.js +30 -0
  101. package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +2 -0
  102. package/dist/components/core/SocialIcon/SocialIcon.theme.js +12 -0
  103. package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +18 -0
  104. package/dist/components/core/SocialIcon/index.d.ts +2 -0
  105. package/dist/components/core/SocialIcon/platforms.d.ts +17 -0
  106. package/dist/components/core/SocialIcon/platforms.js +234 -0
  107. package/dist/components/core/Toast/Toast.js +4 -4
  108. package/dist/components/core/Toast/Toast.theme.js +1 -1
  109. package/dist/components/core/Toast/Toast.types.d.ts +9 -9
  110. package/dist/components/core/Toast/useToast.js +6 -6
  111. package/dist/components/core/index.d.ts +2 -7
  112. package/dist/components/core/index.js +9 -19
  113. package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.js +1 -1
  114. package/dist/components/{core → data-display}/Feed/Feed.js +2 -2
  115. package/dist/components/data-display/GanttChart/GanttChart.animations.d.ts +4 -0
  116. package/dist/components/data-display/GanttChart/GanttChart.animations.js +21 -0
  117. package/dist/components/data-display/GanttChart/GanttChart.d.ts +8 -0
  118. package/dist/components/data-display/GanttChart/GanttChart.js +170 -0
  119. package/dist/components/data-display/GanttChart/GanttChart.theme.d.ts +2 -0
  120. package/dist/components/data-display/GanttChart/GanttChart.theme.js +23 -0
  121. package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +162 -0
  122. package/dist/components/data-display/GanttChart/GanttChart.types.js +9 -0
  123. package/dist/components/data-display/GanttChart/GanttChart.utils.d.ts +80 -0
  124. package/dist/components/data-display/GanttChart/GanttChart.utils.js +274 -0
  125. package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +9 -0
  126. package/dist/components/data-display/GanttChart/GanttChartPanel.js +82 -0
  127. package/dist/components/data-display/GanttChart/GanttDependencyArrows.d.ts +2 -0
  128. package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +35 -0
  129. package/dist/components/data-display/GanttChart/GanttGroupBar.d.ts +8 -0
  130. package/dist/components/data-display/GanttChart/GanttGroupBar.js +26 -0
  131. package/dist/components/data-display/GanttChart/GanttMilestone.d.ts +9 -0
  132. package/dist/components/data-display/GanttChart/GanttMilestone.js +44 -0
  133. package/dist/components/data-display/GanttChart/GanttProgressCircle.d.ts +9 -0
  134. package/dist/components/data-display/GanttChart/GanttProgressCircle.js +11 -0
  135. package/dist/components/data-display/GanttChart/GanttSplitter.d.ts +2 -0
  136. package/dist/components/data-display/GanttChart/GanttSplitter.js +39 -0
  137. package/dist/components/data-display/GanttChart/GanttTableGroupRow.d.ts +7 -0
  138. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +23 -0
  139. package/dist/components/data-display/GanttChart/GanttTableHeader.d.ts +2 -0
  140. package/dist/components/data-display/GanttChart/GanttTableHeader.js +13 -0
  141. package/dist/components/data-display/GanttChart/GanttTablePanel.d.ts +6 -0
  142. package/dist/components/data-display/GanttChart/GanttTablePanel.js +20 -0
  143. package/dist/components/data-display/GanttChart/GanttTableTaskRow.d.ts +8 -0
  144. package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +30 -0
  145. package/dist/components/data-display/GanttChart/GanttTaskBar.d.ts +9 -0
  146. package/dist/components/data-display/GanttChart/GanttTaskBar.js +206 -0
  147. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.d.ts +8 -0
  148. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +17 -0
  149. package/dist/components/data-display/GanttChart/GanttTimelineGrid.d.ts +7 -0
  150. package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +33 -0
  151. package/dist/components/data-display/GanttChart/GanttTimelineHeader.d.ts +8 -0
  152. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +43 -0
  153. package/dist/components/data-display/GanttChart/GanttToolbar.d.ts +2 -0
  154. package/dist/components/data-display/GanttChart/GanttToolbar.js +28 -0
  155. package/dist/components/data-display/GanttChart/hooks/useGanttDates.d.ts +12 -0
  156. package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +25 -0
  157. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.d.ts +25 -0
  158. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +144 -0
  159. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.d.ts +2 -0
  160. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +33 -0
  161. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.d.ts +6 -0
  162. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +32 -0
  163. package/dist/components/data-display/GanttChart/index.d.ts +3 -0
  164. package/dist/components/{core → data-display}/KPI/KPI.js +10 -8
  165. package/dist/components/{core → data-display}/KPI/KPI.theme.js +2 -1
  166. package/dist/components/{core → data-display}/KPI/KPI.types.d.ts +5 -5
  167. package/dist/components/{core → data-display}/KPI/index.d.ts +1 -0
  168. package/dist/components/{core → data-display}/Metric/Metric.js +4 -7
  169. package/dist/components/{core → data-display}/Metric/Metric.theme.js +9 -9
  170. package/dist/components/{core → data-display}/Metric/Metric.types.d.ts +6 -6
  171. package/dist/components/{core → data-display}/Table/Table.theme.js +2 -2
  172. package/dist/components/{core → data-display}/Table/TableActions.js +8 -8
  173. package/dist/components/{core → data-display}/Table/TableColumnManager.js +4 -4
  174. package/dist/components/{core → data-display}/Table/TableFilter.js +3 -3
  175. package/dist/components/data-display/Table/TablePagination.js +25 -0
  176. package/dist/components/{core → data-display}/Table/TableRow.js +1 -1
  177. package/dist/components/{core → data-display}/Table/TableSelectionHeader.js +1 -1
  178. package/dist/components/data-display/index.d.ts +7 -0
  179. package/dist/components/data-display/index.js +20 -0
  180. package/dist/components/effects/3d/index.d.ts +6 -0
  181. package/dist/components/effects/3d/index.js +3 -0
  182. package/dist/components/effects/Aurora/Aurora.d.ts +24 -0
  183. package/dist/components/effects/Aurora/Aurora.js +119 -0
  184. package/dist/components/effects/Aurora/Aurora.types.d.ts +15 -0
  185. package/dist/components/effects/Aurora/index.d.ts +2 -0
  186. package/dist/components/effects/CustomCursor/CustomCursor.d.ts +2 -2
  187. package/dist/components/effects/CustomCursor/CustomCursor.types.d.ts +3 -3
  188. package/dist/components/effects/DotPattern/DotPattern.d.ts +18 -0
  189. package/dist/components/effects/DotPattern/DotPattern.js +65 -0
  190. package/dist/components/effects/DotPattern/DotPattern.types.d.ts +47 -0
  191. package/dist/components/effects/DotPattern/index.d.ts +2 -0
  192. package/dist/components/effects/GridPattern/GridPattern.d.ts +18 -0
  193. package/dist/components/effects/GridPattern/GridPattern.js +64 -0
  194. package/dist/components/effects/GridPattern/GridPattern.types.d.ts +47 -0
  195. package/dist/components/effects/GridPattern/index.d.ts +2 -0
  196. package/dist/components/effects/MagneticElement/MagneticElement.d.ts +30 -0
  197. package/dist/components/effects/MagneticElement/MagneticElement.js +110 -0
  198. package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +44 -0
  199. package/dist/components/effects/MagneticElement/index.d.ts +2 -0
  200. package/dist/components/effects/MorphingText/MorphingText.d.ts +17 -0
  201. package/dist/components/effects/MorphingText/MorphingText.js +91 -0
  202. package/dist/components/effects/MorphingText/MorphingText.types.d.ts +18 -0
  203. package/dist/components/effects/MorphingText/index.d.ts +2 -0
  204. package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +28 -0
  205. package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +61 -0
  206. package/dist/components/effects/NoiseOverlay/NoiseOverlay.types.d.ts +35 -0
  207. package/dist/components/effects/NoiseOverlay/index.d.ts +2 -0
  208. package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +26 -0
  209. package/dist/components/effects/ParallaxSection/ParallaxSection.js +71 -0
  210. package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +11 -0
  211. package/dist/components/effects/ParallaxSection/index.d.ts +2 -0
  212. package/dist/components/effects/Particles/Particles.d.ts +22 -0
  213. package/dist/components/effects/Particles/Particles.js +33 -0
  214. package/dist/components/effects/Particles/Particles.scene.d.ts +3 -0
  215. package/dist/components/effects/Particles/Particles.scene.js +284 -0
  216. package/dist/components/effects/Particles/Particles.types.d.ts +65 -0
  217. package/dist/components/effects/Particles/index.d.ts +2 -0
  218. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.d.ts +3 -0
  219. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +75 -0
  220. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.d.ts +7 -0
  221. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.js +12 -0
  222. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +47 -0
  223. package/dist/components/effects/ProgressiveBlur/index.d.ts +2 -0
  224. package/dist/components/effects/ScrollReveal/ScrollReveal.d.ts +29 -0
  225. package/dist/components/effects/ScrollReveal/ScrollReveal.js +121 -0
  226. package/dist/components/effects/ScrollReveal/ScrollReveal.types.d.ts +25 -0
  227. package/dist/components/effects/ScrollReveal/index.d.ts +2 -0
  228. package/dist/components/effects/Spotlight/Spotlight.d.ts +36 -0
  229. package/dist/components/effects/Spotlight/Spotlight.js +112 -0
  230. package/dist/components/effects/Spotlight/Spotlight.types.d.ts +29 -0
  231. package/dist/components/effects/Spotlight/index.d.ts +2 -0
  232. package/dist/components/effects/StickyScroll/StickyScroll.d.ts +30 -0
  233. package/dist/components/effects/StickyScroll/StickyScroll.js +128 -0
  234. package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +19 -0
  235. package/dist/components/effects/StickyScroll/index.d.ts +2 -0
  236. package/dist/components/effects/index.d.ts +22 -4
  237. package/dist/components/effects/index.js +11 -2
  238. package/dist/components/forms/Checkbox/Checkbox.js +3 -3
  239. package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -5
  240. package/dist/components/forms/ColorPicker/ColorPicker.theme.js +2 -2
  241. package/dist/components/forms/CronInput/CronInput.d.ts +3 -0
  242. package/dist/components/forms/CronInput/CronInput.js +107 -0
  243. package/dist/components/forms/CronInput/CronInput.theme.d.ts +6 -0
  244. package/dist/components/forms/CronInput/CronInput.theme.js +84 -0
  245. package/dist/components/forms/CronInput/CronInput.types.d.ts +98 -0
  246. package/dist/components/forms/CronInput/CronInput.utils.d.ts +67 -0
  247. package/dist/components/forms/CronInput/CronInput.utils.js +505 -0
  248. package/dist/components/forms/CronInput/index.d.ts +4 -0
  249. package/dist/components/forms/DatePicker/DatePicker.theme.js +2 -2
  250. package/dist/components/forms/InputCounter/InputCounter.d.ts +1 -1
  251. package/dist/components/forms/InputCounter/InputCounter.types.d.ts +3 -2
  252. package/dist/components/forms/InputOTP/InputOTP.theme.js +1 -1
  253. package/dist/components/forms/Mention/Mention.d.ts +3 -0
  254. package/dist/components/forms/Mention/Mention.js +410 -0
  255. package/dist/components/forms/Mention/Mention.theme.d.ts +6 -0
  256. package/dist/components/forms/Mention/Mention.theme.js +56 -0
  257. package/dist/components/forms/Mention/Mention.types.d.ts +111 -0
  258. package/dist/components/forms/Mention/index.d.ts +3 -0
  259. package/dist/components/forms/Radio/Radio.js +8 -12
  260. package/dist/components/forms/Radio/Radio.theme.js +28 -5
  261. package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +2 -0
  262. package/dist/components/forms/SelectableCard/SelectableCard.animations.js +9 -0
  263. package/dist/components/forms/SelectableCard/SelectableCard.d.ts +5 -0
  264. package/dist/components/forms/SelectableCard/SelectableCard.js +58 -0
  265. package/dist/components/forms/SelectableCard/SelectableCard.theme.d.ts +2 -0
  266. package/dist/components/forms/SelectableCard/SelectableCard.theme.js +38 -0
  267. package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +33 -0
  268. package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +3 -0
  269. package/dist/components/forms/SelectableCard/SelectableCardContext.js +12 -0
  270. package/dist/components/forms/SelectableCard/SelectableCardGroup.d.ts +3 -0
  271. package/dist/components/forms/SelectableCard/SelectableCardGroup.js +37 -0
  272. package/dist/components/forms/SelectableCard/index.d.ts +3 -0
  273. package/dist/components/forms/TransferList/TransferList.animations.d.ts +10 -0
  274. package/dist/components/forms/TransferList/TransferList.animations.js +32 -0
  275. package/dist/components/forms/TransferList/TransferList.d.ts +28 -0
  276. package/dist/components/forms/TransferList/TransferList.js +199 -0
  277. package/dist/components/forms/TransferList/TransferList.theme.d.ts +6 -0
  278. package/dist/components/forms/TransferList/TransferList.theme.js +60 -0
  279. package/dist/components/forms/TransferList/TransferList.types.d.ts +101 -0
  280. package/dist/components/forms/TransferList/index.d.ts +3 -0
  281. package/dist/components/forms/index.d.ts +13 -0
  282. package/dist/components/forms/index.js +9 -0
  283. package/dist/components/layout/FormLayout/FormLayout.d.ts +8 -0
  284. package/dist/components/layout/FormLayout/FormLayout.js +22 -0
  285. package/dist/components/layout/FormLayout/FormLayout.theme.d.ts +2 -0
  286. package/dist/components/layout/FormLayout/FormLayout.theme.js +16 -0
  287. package/dist/components/layout/FormLayout/FormLayout.types.d.ts +61 -0
  288. package/dist/components/layout/FormLayout/FormLayoutBody.d.ts +3 -0
  289. package/dist/components/layout/FormLayout/FormLayoutBody.js +13 -0
  290. package/dist/components/layout/FormLayout/FormLayoutFooter.d.ts +3 -0
  291. package/dist/components/layout/FormLayout/FormLayoutFooter.js +12 -0
  292. package/dist/components/layout/FormLayout/FormLayoutHeader.d.ts +3 -0
  293. package/dist/components/layout/FormLayout/FormLayoutHeader.js +12 -0
  294. package/dist/components/layout/FormLayout/FormLayoutSection.d.ts +3 -0
  295. package/dist/components/layout/FormLayout/FormLayoutSection.js +12 -0
  296. package/dist/components/layout/FormLayout/index.d.ts +3 -0
  297. package/dist/components/layout/PageLayout/PageLayout.d.ts +7 -0
  298. package/dist/components/layout/PageLayout/PageLayout.js +33 -0
  299. package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +2 -0
  300. package/dist/components/layout/PageLayout/PageLayout.theme.js +10 -0
  301. package/dist/components/layout/PageLayout/PageLayout.types.d.ts +39 -0
  302. package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +3 -0
  303. package/dist/components/layout/PageLayout/PageLayoutContent.js +12 -0
  304. package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +3 -0
  305. package/dist/components/layout/PageLayout/PageLayoutHeader.js +12 -0
  306. package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +3 -0
  307. package/dist/components/layout/PageLayout/PageLayoutSidebar.js +12 -0
  308. package/dist/components/layout/PageLayout/index.d.ts +3 -0
  309. package/dist/components/layout/index.d.ts +2 -0
  310. package/dist/index.d.ts +2 -0
  311. package/dist/index.js +53 -21
  312. package/dist/styles.css +1 -1
  313. package/dist/utils/dateUtils.d.ts +30 -0
  314. package/dist/utils/dateUtils.js +58 -1
  315. package/dist/utils/index.d.ts +1 -1
  316. package/package.json +26 -22
  317. package/dist/components/core/Card/CardDescription.d.ts +0 -3
  318. package/dist/components/core/Card/CardDescription.js +0 -11
  319. package/dist/components/core/Modal/ModalDescription.d.ts +0 -5
  320. package/dist/components/core/Modal/ModalDescription.js +0 -11
  321. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.d.ts +0 -34
  322. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.js +0 -218
  323. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.theme.d.ts +0 -9
  324. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.types.d.ts +0 -48
  325. package/dist/components/core/ProgressiveBlur/index.d.ts +0 -2
  326. package/dist/components/core/Table/TablePagination.js +0 -25
  327. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.d.ts +0 -0
  328. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.js +0 -0
  329. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.d.ts +0 -0
  330. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.types.d.ts +0 -0
  331. /package/dist/components/{core → data-display}/DescriptionList/index.d.ts +0 -0
  332. /package/dist/components/{core → data-display}/Feed/Feed.d.ts +0 -0
  333. /package/dist/components/{core → data-display}/Feed/Feed.theme.d.ts +0 -0
  334. /package/dist/components/{core → data-display}/Feed/Feed.theme.js +0 -0
  335. /package/dist/components/{core → data-display}/Feed/Feed.types.d.ts +0 -0
  336. /package/dist/components/{core → data-display}/Feed/index.d.ts +0 -0
  337. /package/dist/components/{core → data-display}/KPI/KPI.d.ts +0 -0
  338. /package/dist/components/{core → data-display}/KPI/KPI.theme.d.ts +0 -0
  339. /package/dist/components/{core → data-display}/Metric/Metric.d.ts +0 -0
  340. /package/dist/components/{core → data-display}/Metric/Metric.theme.d.ts +0 -0
  341. /package/dist/components/{core → data-display}/Metric/index.d.ts +0 -0
  342. /package/dist/components/{core → data-display}/Table/Table.animations.d.ts +0 -0
  343. /package/dist/components/{core → data-display}/Table/Table.animations.js +0 -0
  344. /package/dist/components/{core → data-display}/Table/Table.d.ts +0 -0
  345. /package/dist/components/{core → data-display}/Table/Table.filterUtils.d.ts +0 -0
  346. /package/dist/components/{core → data-display}/Table/Table.filterUtils.js +0 -0
  347. /package/dist/components/{core → data-display}/Table/Table.js +0 -0
  348. /package/dist/components/{core → data-display}/Table/Table.theme.d.ts +0 -0
  349. /package/dist/components/{core → data-display}/Table/Table.types.d.ts +0 -0
  350. /package/dist/components/{core → data-display}/Table/Table.utils.d.ts +0 -0
  351. /package/dist/components/{core → data-display}/Table/Table.utils.js +0 -0
  352. /package/dist/components/{core → data-display}/Table/TableActions.d.ts +0 -0
  353. /package/dist/components/{core → data-display}/Table/TableActionsMenu.d.ts +0 -0
  354. /package/dist/components/{core → data-display}/Table/TableActionsMenu.js +0 -0
  355. /package/dist/components/{core → data-display}/Table/TableBody.d.ts +0 -0
  356. /package/dist/components/{core → data-display}/Table/TableBody.js +0 -0
  357. /package/dist/components/{core → data-display}/Table/TableCell.d.ts +0 -0
  358. /package/dist/components/{core → data-display}/Table/TableCell.js +0 -0
  359. /package/dist/components/{core → data-display}/Table/TableColumnManager.d.ts +0 -0
  360. /package/dist/components/{core → data-display}/Table/TableDeclarative.d.ts +0 -0
  361. /package/dist/components/{core → data-display}/Table/TableDeclarative.js +0 -0
  362. /package/dist/components/{core → data-display}/Table/TableFilter.d.ts +0 -0
  363. /package/dist/components/{core → data-display}/Table/TableHeader.d.ts +0 -0
  364. /package/dist/components/{core → data-display}/Table/TableHeader.js +0 -0
  365. /package/dist/components/{core → data-display}/Table/TablePagination.d.ts +0 -0
  366. /package/dist/components/{core → data-display}/Table/TableRow.d.ts +0 -0
  367. /package/dist/components/{core → data-display}/Table/TableSelectionHeader.d.ts +0 -0
  368. /package/dist/components/{core → data-display}/Table/hooks/index.d.ts +0 -0
  369. /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.d.ts +0 -0
  370. /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.js +0 -0
  371. /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.d.ts +0 -0
  372. /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.js +0 -0
  373. /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.d.ts +0 -0
  374. /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.js +0 -0
  375. /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.d.ts +0 -0
  376. /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.js +0 -0
  377. /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.d.ts +0 -0
  378. /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.js +0 -0
  379. /package/dist/components/{core → data-display}/Table/index.d.ts +0 -0
  380. /package/dist/components/{core → data-display}/Table/index.js +0 -0
  381. /package/dist/components/{core → data-display}/Timeline/Timeline.animations.d.ts +0 -0
  382. /package/dist/components/{core → data-display}/Timeline/Timeline.animations.js +0 -0
  383. /package/dist/components/{core → data-display}/Timeline/Timeline.d.ts +0 -0
  384. /package/dist/components/{core → data-display}/Timeline/Timeline.js +0 -0
  385. /package/dist/components/{core → data-display}/Timeline/Timeline.theme.d.ts +0 -0
  386. /package/dist/components/{core → data-display}/Timeline/Timeline.theme.js +0 -0
  387. /package/dist/components/{core → data-display}/Timeline/Timeline.types.d.ts +0 -0
  388. /package/dist/components/{core → data-display}/Timeline/TimelineContent.d.ts +0 -0
  389. /package/dist/components/{core → data-display}/Timeline/TimelineContent.js +0 -0
  390. /package/dist/components/{core → data-display}/Timeline/TimelineItem.d.ts +0 -0
  391. /package/dist/components/{core → data-display}/Timeline/TimelineItem.js +0 -0
  392. /package/dist/components/{core → data-display}/Timeline/TimelineMarker.d.ts +0 -0
  393. /package/dist/components/{core → data-display}/Timeline/TimelineMarker.js +0 -0
  394. /package/dist/components/{core → data-display}/Timeline/index.d.ts +0 -0
@@ -3,7 +3,7 @@
3
3
  * Uses design tokens and data-[state=*] selectors
4
4
  */
5
5
  const calendarTheme = {
6
- baseStyle: "select-none w-full max-w-fit bg-white dark:bg-[var(--color-neutral-900)]",
6
+ baseStyle: "select-none w-full bg-white dark:bg-[var(--color-neutral-900)]",
7
7
  headerStyle: "flex items-center justify-between mb-4",
8
8
  titleStyle: "text-base font-semibold text-[var(--color-text-primary)] cursor-pointer hover:text-[var(--color-primary)] transition-colors " +
9
9
  "dark:text-[var(--color-neutral-200)] dark:hover:text-[var(--color-primary-400)]",
@@ -1,8 +1,8 @@
1
1
  import { CardComponent } from './Card.types';
2
2
  import { CardHeader } from './CardHeader';
3
3
  import { CardTitle } from './CardTitle';
4
- import { CardDescription } from './CardDescription';
4
+ import { CardSubtitle } from './CardSubtitle';
5
5
  import { CardContent } from './CardContent';
6
6
  import { CardFooter } from './CardFooter';
7
- export { CardHeader, CardTitle, CardDescription, CardContent, CardFooter };
7
+ export { CardHeader, CardTitle, CardSubtitle, CardContent, CardFooter };
8
8
  export declare const Card: CardComponent;
@@ -1,29 +1,28 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import React__default, { useMemo } from 'react';
3
3
  import { cn } from '../../../utils/cn.js';
4
4
  import { cardTheme } from './Card.theme.js';
5
5
  import { CardHeader } from './CardHeader.js';
6
6
  import { CardTitle } from './CardTitle.js';
7
- import { CardDescription } from './CardDescription.js';
7
+ import { CardSubtitle } from './CardSubtitle.js';
8
8
  import { CardContent } from './CardContent.js';
9
9
  import { CardFooter } from './CardFooter.js';
10
10
 
11
- const CardRoot = React__default.forwardRef(({ children, className, theme: customTheme = {}, title, description, footer, darkMode = false, ...props }, ref) => {
11
+ const CardRoot = React__default.forwardRef(({ children, className, theme: customTheme = {}, darkMode = false, ...props }, ref) => {
12
12
  const theme = useMemo(() => ({
13
13
  ...cardTheme,
14
14
  ...customTheme,
15
15
  }), [customTheme]);
16
- const hasHeader = title || description;
17
- return (jsxs("div", { ref: ref, className: cn(theme.baseStyle, darkMode && "dark", className), ...props, children: [hasHeader && (jsxs("div", { className: theme.headerStyle, children: [title && jsx("div", { className: theme.titleStyle, children: title }), description && jsx("div", { className: theme.descriptionStyle, children: description })] })), hasHeader ? (jsx("div", { className: theme.contentStyle, children: children })) : (children), footer && jsx("div", { className: theme.footerStyle, children: footer })] }));
16
+ return (jsx("div", { ref: ref, className: cn(theme.baseStyle, darkMode && "dark", className), ...props, children: children }));
18
17
  });
19
18
  CardRoot.displayName = 'Card';
20
19
  // Create compound component with proper typing
21
20
  const Card = Object.assign(CardRoot, {
22
21
  Header: CardHeader,
23
22
  Title: CardTitle,
24
- Description: CardDescription,
23
+ Subtitle: CardSubtitle,
25
24
  Content: CardContent,
26
25
  Footer: CardFooter,
27
26
  });
28
27
 
29
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
28
+ export { Card, CardContent, CardFooter, CardHeader, CardSubtitle, CardTitle };
@@ -1,10 +1,10 @@
1
1
  const cardTheme = {
2
- baseStyle: "rounded-[var(--card-radius)] overflow-hidden bg-white border border-[var(--color-border)] shadow-xs dark:bg-[var(--color-background-secondary)]",
2
+ baseStyle: "rounded-[var(--card-radius)] overflow-hidden bg-white border border-[var(--color-border)] shadow-xs dark:bg-[var(--color-background-secondary)] [&>*+*]:pt-0",
3
3
  headerStyle: "flex flex-col space-y-1.5 p-6",
4
4
  titleStyle: "text-base font-semibold leading-none text-[var(--color-text-primary)]",
5
- descriptionStyle: "text-sm text-[var(--color-text-muted)]",
6
- contentStyle: "p-6 pt-0",
7
- footerStyle: "flex items-center p-6 pt-0",
5
+ subtitleStyle: "text-sm text-[var(--color-text-muted)]",
6
+ contentStyle: "p-6",
7
+ footerStyle: "flex items-center p-6",
8
8
  };
9
9
 
10
10
  export { cardTheme };
@@ -3,7 +3,7 @@ export interface CardTheme {
3
3
  baseStyle: string;
4
4
  headerStyle: string;
5
5
  titleStyle: string;
6
- descriptionStyle: string;
6
+ subtitleStyle: string;
7
7
  contentStyle: string;
8
8
  footerStyle: string;
9
9
  }
@@ -11,11 +11,11 @@ export interface CardThemeOverrides {
11
11
  baseStyle?: string;
12
12
  headerStyle?: string;
13
13
  titleStyle?: string;
14
- descriptionStyle?: string;
14
+ subtitleStyle?: string;
15
15
  contentStyle?: string;
16
16
  footerStyle?: string;
17
17
  }
18
- export interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
18
+ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
19
19
  /**
20
20
  * The content to be displayed inside the card
21
21
  */
@@ -28,21 +28,6 @@ export interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>
28
28
  * Component-level theme overrides
29
29
  */
30
30
  theme?: CardThemeOverrides;
31
- /**
32
- * Card title - auto-generates header when provided
33
- * Use this for simple cards instead of Card.Header/Card.Title
34
- */
35
- title?: ReactNode;
36
- /**
37
- * Card description - displayed below title in auto-generated header
38
- * Use this for simple cards instead of Card.Header/Card.Description
39
- */
40
- description?: ReactNode;
41
- /**
42
- * Card footer content - auto-generates footer when provided
43
- * Use this for simple cards instead of Card.Footer
44
- */
45
- footer?: ReactNode;
46
31
  /**
47
32
  * Force dark mode styling for the component. Use when placing the component
48
33
  * on a dark background while the page is in light mode. This applies the
@@ -55,7 +40,7 @@ export interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>
55
40
  export interface CardComponent extends ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> {
56
41
  Header: ForwardRefExoticComponent<CardHeaderProps & RefAttributes<HTMLDivElement>>;
57
42
  Title: ForwardRefExoticComponent<CardTitleProps & RefAttributes<HTMLHeadingElement>>;
58
- Description: ForwardRefExoticComponent<CardDescriptionProps & RefAttributes<HTMLParagraphElement>>;
43
+ Subtitle: ForwardRefExoticComponent<CardSubtitleProps & RefAttributes<HTMLParagraphElement>>;
59
44
  Content: ForwardRefExoticComponent<CardContentProps & RefAttributes<HTMLDivElement>>;
60
45
  Footer: ForwardRefExoticComponent<CardFooterProps & RefAttributes<HTMLDivElement>>;
61
46
  }
@@ -75,7 +60,7 @@ export interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
75
60
  children: ReactNode;
76
61
  className?: string;
77
62
  }
78
- export interface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
63
+ export interface CardSubtitleProps extends HTMLAttributes<HTMLParagraphElement> {
79
64
  children: ReactNode;
80
65
  className?: string;
81
66
  }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { CardSubtitleProps } from './Card.types';
3
+ export declare const CardSubtitle: React.ForwardRefExoticComponent<CardSubtitleProps & React.RefAttributes<HTMLParagraphElement>>;
@@ -0,0 +1,11 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+ import { cn } from '../../../utils/cn.js';
4
+ import { cardTheme } from './Card.theme.js';
5
+
6
+ const CardSubtitle = React__default.forwardRef(({ children, className, ...props }, ref) => {
7
+ return (jsx("div", { ref: ref, className: cn(cardTheme.subtitleStyle, className), ...props, children: children }));
8
+ });
9
+ CardSubtitle.displayName = 'CardSubtitle';
10
+
11
+ export { CardSubtitle };
@@ -1,2 +1,2 @@
1
- export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from './Card';
2
- export type { CardProps, CardHeaderProps, CardTitleProps, CardDescriptionProps, CardContentProps, CardFooterProps, CardTheme, CardThemeOverrides } from './Card.types';
1
+ export { Card, CardHeader, CardTitle, CardSubtitle, CardContent, CardFooter } from './Card';
2
+ export type { CardProps, CardHeaderProps, CardTitleProps, CardSubtitleProps, CardContentProps, CardFooterProps, CardTheme, CardThemeOverrides } from './Card.types';
@@ -36,7 +36,7 @@ export interface CommandItemProps {
36
36
  * command={{
37
37
  * id: 'user-profile',
38
38
  * label: 'John Doe',
39
- * description: 'View profile',
39
+ * subtitle: 'View profile',
40
40
  * contentStart: <Avatar src="..." />,
41
41
  * contentEnd: <Badge>Admin</Badge>,
42
42
  * onSelect: () => navigate('/profile')
@@ -88,7 +88,7 @@ const Shortcut = ({ keys }) => {
88
88
  * command={{
89
89
  * id: 'user-profile',
90
90
  * label: 'John Doe',
91
- * description: 'View profile',
91
+ * subtitle: 'View profile',
92
92
  * contentStart: <Avatar src="..." />,
93
93
  * contentEnd: <Badge>Admin</Badge>,
94
94
  * onSelect: () => navigate('/profile')
@@ -126,7 +126,7 @@ const CommandItem = ({ command, index, isHighlighted, contentStart, contentEnd,
126
126
  }
127
127
  return null;
128
128
  };
129
- return (jsxs("div", { "data-command-index": index, "data-highlighted": isHighlighted, "data-disabled": command.disabled || false, className: cn(theme.commandItem, className), onClick: handleClick, onMouseEnter: handleMouseEnter, children: [finalContentStart && (jsx("div", { className: "flex-shrink-0", children: finalContentStart })), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("div", { className: "text-sm truncate", children: command.label }), command.description && (jsx("div", { className: "text-sm opacity-70 truncate mt-0", children: command.description }))] }), renderContentEnd()] }));
129
+ return (jsxs("div", { "data-command-index": index, "data-highlighted": isHighlighted, "data-disabled": command.disabled || false, className: cn(theme.commandItem, className), onClick: handleClick, onMouseEnter: handleMouseEnter, children: [finalContentStart && (jsx("div", { className: "flex-shrink-0", children: finalContentStart })), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("div", { className: "text-sm truncate", children: command.label }), command.subtitle && (jsx("div", { className: "text-sm opacity-70 truncate mt-0", children: command.subtitle }))] }), renderContentEnd()] }));
130
130
  };
131
131
 
132
132
  export { CommandItem };
@@ -14,9 +14,9 @@ const defaultFilterFunction = (command, searchValue) => {
14
14
  var _a, _b;
15
15
  const search = searchValue.toLowerCase();
16
16
  const labelMatch = command.label.toLowerCase().includes(search);
17
- const descriptionMatch = (_a = command.description) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(search);
17
+ const subtitleMatch = (_a = command.subtitle) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(search);
18
18
  const keywordsMatch = (_b = command.keywords) === null || _b === void 0 ? void 0 : _b.some((keyword) => keyword.toLowerCase().includes(search));
19
- return labelMatch || descriptionMatch || keywordsMatch || false;
19
+ return labelMatch || subtitleMatch || keywordsMatch || false;
20
20
  };
21
21
  /**
22
22
  * Check if commands array is grouped
@@ -1,7 +1,7 @@
1
1
  const commandPaletteTheme = {
2
2
  overlay: "fixed inset-0 bg-[var(--overlay-bg)] backdrop-blur-[var(--overlay-blur)] z-50 " +
3
- "flex items-start justify-center pt-[10vh] px-4",
4
- container: "relative w-full max-h-[calc(100vh-2rem)] w-full max-w-lg " +
3
+ "flex items-start justify-center pt-[min(10vh,4rem)] px-4",
4
+ container: "relative w-full max-h-[calc(100vh-2rem)] max-w-lg " +
5
5
  "bg-[var(--color-background)] rounded-[var(--modal-radius)] shadow-2xl shadow-black/30 " +
6
6
  "border border-[var(--color-border)] ring-4 ring-[var(--color-background)]/20 " +
7
7
  "flex flex-col my-4 min-h-0 overflow-hidden " +
@@ -7,8 +7,8 @@ export interface CommandItem {
7
7
  id: string;
8
8
  /** Display label for the command */
9
9
  label: string;
10
- /** Description or subtitle for the command */
11
- description?: string;
10
+ /** Subtitle for the command */
11
+ subtitle?: string;
12
12
  /** Content to display at the start (icon, avatar, etc.) */
13
13
  contentStart?: React.ReactNode;
14
14
  /** Content to display at the end (keyboard shortcuts, badges, etc.) */
@@ -42,7 +42,7 @@ export interface ContextMenuItemProps extends Omit<React.HTMLAttributes<HTMLDivE
42
42
  onSelect?: () => void;
43
43
  startContent?: ReactNode;
44
44
  endContent?: ReactNode;
45
- description?: string;
45
+ subtitle?: string;
46
46
  }
47
47
  export interface ContextMenuSubProps {
48
48
  children: ReactNode;
@@ -9,7 +9,7 @@ import { MenuItem } from '../MenuItem/MenuItem.js';
9
9
  * ContextMenuItem - Individual menu item with optional check indicator.
10
10
  * Built on shared MenuItem, adds checked state and ContextMenu context integration.
11
11
  */
12
- const ContextMenuItem = React__default.forwardRef(({ children, className, checked = false, disabled = false, isDanger = false, shortcut, onSelect, startContent, endContent, description, ...props }, ref) => {
12
+ const ContextMenuItem = React__default.forwardRef(({ children, className, checked = false, disabled = false, isDanger = false, shortcut, onSelect, startContent, endContent, subtitle, ...props }, ref) => {
13
13
  const { onOpenChange, theme } = useContextMenuContext();
14
14
  const handleActivate = useCallback(() => {
15
15
  if (disabled)
@@ -23,7 +23,7 @@ const ContextMenuItem = React__default.forwardRef(({ children, className, checke
23
23
  // Build end content: user's endContent OR shortcut display
24
24
  const resolvedEndContent = endContent ||
25
25
  (shortcut ? (jsx("span", { className: "text-xs text-[var(--color-text-muted)] font-mono", children: shortcut })) : undefined);
26
- return (jsx(MenuItem, { ref: ref, role: "menuitem", disabled: disabled, isDanger: isDanger, startContent: resolvedStartContent, endContent: resolvedEndContent, description: description, onActivate: handleActivate, "data-checked": checked, "aria-checked": checked ? "true" : undefined, className: cn(checked && "pl-8", className), theme: {
26
+ return (jsx(MenuItem, { ref: ref, role: "menuitem", disabled: disabled, isDanger: isDanger, startContent: resolvedStartContent, endContent: resolvedEndContent, subtitle: subtitle, onActivate: handleActivate, "data-checked": checked, "aria-checked": checked ? "true" : undefined, className: cn(checked && "pl-8", className), theme: {
27
27
  baseStyle: theme.itemStyle,
28
28
  dangerStyle: theme.itemDangerStyle,
29
29
  focusStyle: theme.itemFocusStyle,
@@ -1,9 +1,21 @@
1
1
  import { DrawerProps, DrawerContextValue } from "./Drawer.types";
2
2
  export declare const useDrawerContext: () => DrawerContextValue;
3
3
  export declare const Drawer: {
4
- ({ isOpen, onClose, title, description, icon, position, size, closeOnOverlayClick, closeOnEsc, showCloseButton, children, className, theme: themeOverrides, scale, ...props }: DrawerProps): import("react/jsx-runtime").JSX.Element;
4
+ ({ isOpen, onClose, title, subtitle, icon, position, size, closeOnOverlayClick, closeOnEsc, showCloseButton, children, className, theme: themeOverrides, scale, ...props }: DrawerProps): import("react/jsx-runtime").JSX.Element;
5
5
  displayName: string;
6
6
  } & {
7
+ Header: {
8
+ ({ children, icon, showCloseButton, className, ...props }: import("./Drawer.types").DrawerHeaderProps): import("react/jsx-runtime").JSX.Element;
9
+ displayName: string;
10
+ };
11
+ Title: {
12
+ ({ children, className, ...props }: import("./Drawer.types").DrawerTitleProps): import("react/jsx-runtime").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ Subtitle: {
16
+ ({ children, className, ...props }: import("./Drawer.types").DrawerSubtitleProps): import("react/jsx-runtime").JSX.Element;
17
+ displayName: string;
18
+ };
7
19
  Content: {
8
20
  ({ children, className, ...props }: import("./Drawer.types").DrawerContentProps): import("react/jsx-runtime").JSX.Element;
9
21
  displayName: string;
@@ -1,14 +1,15 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { createContext, useId, useMemo, useContext } from 'react';
2
+ import React__default, { createContext, useId, useMemo, useContext } from 'react';
3
3
  import { cn } from '../../../utils/cn.js';
4
4
  import { useScaleBackground } from '../../../hooks/useScaleBackground.js';
5
- import { XMarkIcon } from '@heroicons/react/24/outline';
6
5
  import { Overlay } from '../../effects/Overlay/Overlay.js';
7
6
  import { drawerTheme, drawerSizeVariants, drawerPositionVariantsFullWidth, drawerPositionVariantsWithMargin } from './Drawer.theme.js';
8
7
  import { drawerOverlayAnimations, getDrawerContentAnimations } from './Drawer.animations.js';
8
+ import { DrawerHeader } from './DrawerHeader.js';
9
+ import { DrawerTitle } from './DrawerTitle.js';
10
+ import { DrawerSubtitle } from './DrawerSubtitle.js';
9
11
  import { DrawerContent } from './DrawerContent.js';
10
12
  import { DrawerFooter } from './DrawerFooter.js';
11
- import { Button } from '../Button/Button.js';
12
13
 
13
14
  // Create context for Drawer components
14
15
  const DrawerContext = createContext(undefined);
@@ -18,13 +19,13 @@ const useDrawerContext = () => {
18
19
  throw new Error("Drawer compound components must be used within <Drawer>");
19
20
  return ctx;
20
21
  };
21
- const DrawerRoot = ({ isOpen, onClose, title, description, icon, position = "right", size = "md", closeOnOverlayClick = true, closeOnEsc = true, showCloseButton = true, children, className, theme: themeOverrides, scale = 0.94, ...props }) => {
22
+ const DrawerRoot = ({ isOpen, onClose, title, subtitle, icon, position = "right", size = "md", closeOnOverlayClick = true, closeOnEsc = true, showCloseButton = true, children, className, theme: themeOverrides, scale = 0.94, ...props }) => {
22
23
  // iOS-style scale background effect
23
24
  useScaleBackground({ isOpen, scale, position });
24
25
  // Generate unique IDs for ARIA linkage
25
26
  const id = useId();
26
27
  const titleId = `${id}-title`;
27
- const descriptionId = `${id}-description`;
28
+ const subtitleId = `${id}-subtitle`;
28
29
  // Merge theme with overrides
29
30
  const theme = useMemo(() => ({
30
31
  ...drawerTheme,
@@ -38,8 +39,19 @@ const DrawerRoot = ({ isOpen, onClose, title, description, icon, position = "rig
38
39
  size,
39
40
  closeOnOverlayClick,
40
41
  closeOnEsc,
42
+ showCloseButton,
41
43
  theme,
42
- }), [isOpen, onClose, position, size, closeOnOverlayClick, closeOnEsc, theme]);
44
+ titleId,
45
+ subtitleId,
46
+ }), [isOpen, onClose, position, size, closeOnOverlayClick, closeOnEsc, showCloseButton, theme, titleId, subtitleId]);
47
+ // Detect if children contain a compound Drawer.Header
48
+ const hasCompoundHeader = React__default.Children.toArray(children).some((child) => {
49
+ var _a;
50
+ return React__default.isValidElement(child) &&
51
+ ((_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName) === "Drawer.Header";
52
+ });
53
+ // Auto-generate header when using prop shorthand (backward compat)
54
+ const shouldAutoRenderHeader = !hasCompoundHeader && (title || showCloseButton);
43
55
  // Get size variant based on position
44
56
  const isHorizontal = position === "left" || position === "right";
45
57
  const sizeVariant = isHorizontal
@@ -49,16 +61,17 @@ const DrawerRoot = ({ isOpen, onClose, title, description, icon, position = "rig
49
61
  const positionVariant = size === "full"
50
62
  ? drawerPositionVariantsFullWidth[position]
51
63
  : drawerPositionVariantsWithMargin[position];
52
- // Header renders when title exists or close button is shown
53
- const shouldRenderHeader = title || showCloseButton;
54
- return (jsx(Overlay, { isOpen: isOpen, onClose: onClose, closeOnOverlayClick: closeOnOverlayClick, closeOnEsc: closeOnEsc, position: "none", role: "dialog", ariaModal: true, ariaLabelledBy: title ? titleId : undefined, ariaDescribedBy: description ? descriptionId : undefined, contentClassName: cn(theme.container, positionVariant, size !== "full" && sizeVariant, className), animations: {
64
+ return (jsx(Overlay, { isOpen: isOpen, onClose: onClose, closeOnOverlayClick: closeOnOverlayClick, closeOnEsc: closeOnEsc, position: "none", role: "dialog", ariaModal: true, ariaLabelledBy: titleId, ariaDescribedBy: subtitleId, contentClassName: cn(theme.container, positionVariant, size !== "full" && sizeVariant, className), animations: {
55
65
  overlay: drawerOverlayAnimations,
56
66
  content: getDrawerContentAnimations(position),
57
- }, ...props, children: jsx(DrawerContext.Provider, { value: contextValue, children: jsxs("div", { className: theme.content, children: [shouldRenderHeader && (jsxs("div", { className: cn(theme.header), children: [jsxs("div", { className: cn(theme.headerContent), children: [icon && title && (jsx("div", { className: "flex-shrink-0 text-[var(--color-text-secondary)]", children: icon })), title && (jsxs("div", { className: "flex-1 min-w-0", children: [jsx("div", { id: titleId, className: cn(theme.title), children: title }), description && (jsx("p", { id: descriptionId, className: cn(theme.description), children: description }))] }))] }), showCloseButton && (jsx(Button, { color: "neutral", variant: "ghost", iconOnly: true, size: "sm", onClick: onClose, "aria-label": "Close drawer", className: "rounded-full shrink-0", children: jsx(XMarkIcon, { className: "size-5" }) }))] })), children] }) }) }));
67
+ }, ...props, children: jsx(DrawerContext.Provider, { value: contextValue, children: jsxs("div", { className: theme.content, children: [shouldAutoRenderHeader && (jsxs(DrawerHeader, { icon: icon, children: [title && jsx(DrawerTitle, { children: title }), subtitle && jsx(DrawerSubtitle, { children: subtitle })] })), children] }) }) }));
58
68
  };
59
69
  DrawerRoot.displayName = "Drawer";
60
70
  // Attach compound subcomponents
61
71
  const Drawer = Object.assign(DrawerRoot, {
72
+ Header: DrawerHeader,
73
+ Title: DrawerTitle,
74
+ Subtitle: DrawerSubtitle,
62
75
  Content: DrawerContent,
63
76
  Footer: DrawerFooter,
64
77
  });
@@ -9,7 +9,7 @@ const drawerTheme = {
9
9
  header: "flex items-start justify-between p-4 border-b border-[var(--color-border)] shrink-0 text-[var(--color-text-primary)] gap-4",
10
10
  headerContent: "flex items-start gap-3 flex-1 min-w-0",
11
11
  title: "text-base font-semibold leading-6 text-[var(--color-text-primary)]",
12
- description: "text-sm text-[var(--color-text-secondary)] mt-0.5",
12
+ subtitle: "text-sm text-[var(--color-text-secondary)] mt-0.5",
13
13
  body: "flex-1 overflow-y-auto p-4",
14
14
  footer: "flex items-center justify-end gap-3 p-4 border-t border-[var(--color-border)] shrink-0 " +
15
15
  "dark:border-[var(--color-neutral-700)]",
@@ -8,7 +8,7 @@ export interface DrawerTheme {
8
8
  header: string;
9
9
  headerContent: string;
10
10
  title: string;
11
- description: string;
11
+ subtitle: string;
12
12
  body: string;
13
13
  footer: string;
14
14
  }
@@ -19,7 +19,7 @@ export interface DrawerThemeOverrides {
19
19
  header?: string;
20
20
  headerContent?: string;
21
21
  title?: string;
22
- description?: string;
22
+ subtitle?: string;
23
23
  body?: string;
24
24
  footer?: string;
25
25
  }
@@ -30,15 +30,18 @@ export interface DrawerContextValue {
30
30
  size: DrawerSize;
31
31
  closeOnOverlayClick: boolean;
32
32
  closeOnEsc: boolean;
33
+ showCloseButton: boolean;
33
34
  theme: DrawerTheme;
35
+ titleId: string;
36
+ subtitleId: string;
34
37
  }
35
38
  export interface DrawerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onClose" | "onAnimationStart" | "onDragStart" | "title"> {
36
39
  isOpen: boolean;
37
40
  onClose: () => void;
38
41
  /** Title text displayed in the drawer header */
39
42
  title?: string;
40
- /** Description text displayed below the title */
41
- description?: string;
43
+ /** Subtitle text displayed below the title */
44
+ subtitle?: string;
42
45
  /** Icon displayed to the left of the title/description */
43
46
  icon?: React.ReactNode;
44
47
  position?: DrawerPosition;
@@ -58,6 +61,20 @@ export interface DrawerProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
58
61
  */
59
62
  scale?: number;
60
63
  }
64
+ export interface DrawerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
65
+ children: React.ReactNode;
66
+ icon?: React.ReactNode;
67
+ showCloseButton?: boolean;
68
+ className?: string;
69
+ }
70
+ export interface DrawerTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
71
+ children: React.ReactNode;
72
+ className?: string;
73
+ }
74
+ export interface DrawerSubtitleProps extends React.HTMLAttributes<HTMLParagraphElement> {
75
+ children: React.ReactNode;
76
+ className?: string;
77
+ }
61
78
  export interface DrawerContentProps extends React.HTMLAttributes<HTMLDivElement> {
62
79
  children: React.ReactNode;
63
80
  className?: string;
@@ -0,0 +1,5 @@
1
+ import { DrawerHeaderProps } from "./Drawer.types";
2
+ export declare const DrawerHeader: {
3
+ ({ children, icon, showCloseButton, className, ...props }: DrawerHeaderProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,14 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { cn } from '../../../utils/cn.js';
3
+ import { useDrawerContext } from './Drawer.js';
4
+ import { Button } from '../Button/Button.js';
5
+ import { XMarkIcon } from '@heroicons/react/24/outline';
6
+
7
+ const DrawerHeader = ({ children, icon, showCloseButton, className, ...props }) => {
8
+ const { onClose, showCloseButton: contextShowCloseButton, theme, } = useDrawerContext();
9
+ const shouldShowCloseButton = showCloseButton !== null && showCloseButton !== void 0 ? showCloseButton : contextShowCloseButton;
10
+ return (jsxs("div", { className: cn(theme.header, className), ...props, children: [jsxs("div", { className: cn(theme.headerContent), children: [icon && (jsx("div", { className: "flex-shrink-0 text-[var(--color-text-secondary)]", children: icon })), jsx("div", { className: "flex-1 min-w-0", children: children })] }), shouldShowCloseButton && (jsx(Button, { color: "neutral", variant: "ghost", iconOnly: true, size: "sm", onClick: onClose, "aria-label": "Close drawer", className: "rounded-full shrink-0", children: jsx(XMarkIcon, { className: "size-5" }) }))] }));
11
+ };
12
+ DrawerHeader.displayName = "Drawer.Header";
13
+
14
+ export { DrawerHeader };
@@ -0,0 +1,5 @@
1
+ import { DrawerSubtitleProps } from "./Drawer.types";
2
+ export declare const DrawerSubtitle: {
3
+ ({ children, className, ...props }: DrawerSubtitleProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,11 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { cn } from '../../../utils/cn.js';
3
+ import { useDrawerContext } from './Drawer.js';
4
+
5
+ const DrawerSubtitle = ({ children, className, ...props }) => {
6
+ const { theme, subtitleId } = useDrawerContext();
7
+ return (jsx("p", { id: subtitleId, className: cn(theme.subtitle, className), ...props, children: children }));
8
+ };
9
+ DrawerSubtitle.displayName = "Drawer.Subtitle";
10
+
11
+ export { DrawerSubtitle };
@@ -0,0 +1,5 @@
1
+ import { DrawerTitleProps } from "./Drawer.types";
2
+ export declare const DrawerTitle: {
3
+ ({ children, className, ...props }: DrawerTitleProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,11 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { cn } from '../../../utils/cn.js';
3
+ import { useDrawerContext } from './Drawer.js';
4
+
5
+ const DrawerTitle = ({ children, className, ...props }) => {
6
+ const { theme, titleId } = useDrawerContext();
7
+ return (jsx("div", { id: titleId, className: cn(theme.title, className), ...props, children: children }));
8
+ };
9
+ DrawerTitle.displayName = "Drawer.Title";
10
+
11
+ export { DrawerTitle };
@@ -1,2 +1,2 @@
1
1
  export { Drawer } from "./Drawer";
2
- export type { DrawerProps, DrawerPosition, DrawerSize, DrawerThemeOverrides } from "./Drawer.types";
2
+ export type { DrawerProps, DrawerPosition, DrawerSize, DrawerThemeOverrides, DrawerHeaderProps, DrawerTitleProps, DrawerSubtitleProps, } from "./Drawer.types";
@@ -1,7 +1,7 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import { DropdownTheme } from "./Dropdown.theme";
3
3
  export type DropdownPlacement = "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
4
- export type SelectionMode = 'none' | 'single' | 'multiple';
4
+ export type SelectionMode = "none" | "single" | "multiple";
5
5
  export interface DropdownContextValue {
6
6
  isOpen: boolean;
7
7
  onOpenChange: (isOpen: boolean) => void;
@@ -53,14 +53,14 @@ export interface DropdownMenuProps extends React.HTMLAttributes<HTMLDivElement>
53
53
  horizontal?: boolean;
54
54
  "aria-label"?: string;
55
55
  }
56
- export interface DropdownItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color' | 'onSelect'> {
56
+ export interface DropdownItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "color" | "onSelect"> {
57
57
  itemKey: string;
58
58
  children: ReactNode;
59
59
  className?: string;
60
60
  startContent?: ReactNode;
61
61
  endContent?: ReactNode;
62
- description?: string;
63
- shortcut?: string;
62
+ subtitle?: string;
63
+ shortcut?: ReactNode;
64
64
  isDisabled?: boolean;
65
65
  isDanger?: boolean;
66
66
  onAction?: () => void;
@@ -9,7 +9,7 @@ import { MenuItem } from '../MenuItem/MenuItem.js';
9
9
  * DropdownItem component - individual menu item for action menus.
10
10
  * Built on shared MenuItem, adds selection mode and Dropdown context integration.
11
11
  */
12
- const DropdownItem = React__default.forwardRef(({ itemKey, children, className, startContent, endContent, description, shortcut, isDisabled = false, isDanger = false, onAction, ...props }, ref) => {
12
+ const DropdownItem = React__default.forwardRef(({ itemKey, children, className, startContent, endContent, subtitle, shortcut, isDisabled = false, isDanger = false, onAction, ...props }, ref) => {
13
13
  const { closeOnSelect, onOpenChange, disabledKeys, selectedKeys, selectionMode, onAction: contextOnAction, onSelectionChange, theme, } = useDropdownContext();
14
14
  // Check if item is disabled
15
15
  const disabled = isDisabled || disabledKeys.has(itemKey);
@@ -63,7 +63,7 @@ const DropdownItem = React__default.forwardRef(({ itemKey, children, className,
63
63
  // Build end content: user's endContent OR selection checkmark
64
64
  const resolvedEndContent = endContent ||
65
65
  (selectionMode !== "none" ? (jsx("div", { className: cn("flex items-center justify-center flex-shrink-0 w-5 h-5"), children: isSelected && (jsx(CheckIcon, { className: "size-4 text-[var(--color-text-secondary)]" })) })) : undefined);
66
- return (jsx(MenuItem, { ref: ref, role: itemRole, disabled: disabled, isDanger: isDanger, startContent: startContent, endContent: resolvedEndContent, description: description, shortcut: shortcut, onActivate: handleActivate, "data-selected": isSelected, ...(selectionMode !== "none" ? { "aria-checked": isSelected } : {}), className: className, theme: {
66
+ return (jsx(MenuItem, { ref: ref, role: itemRole, disabled: disabled, isDanger: isDanger, startContent: startContent, endContent: resolvedEndContent, subtitle: subtitle, shortcut: shortcut, onActivate: handleActivate, "data-selected": isSelected, ...(selectionMode !== "none" ? { "aria-checked": isSelected } : {}), className: className, theme: {
67
67
  baseStyle: theme.itemBaseStyle,
68
68
  dangerStyle: theme.itemDangerStyle,
69
69
  focusStyle: theme.itemFocusStyle,
@@ -3,7 +3,7 @@ import React__default from 'react';
3
3
  import { emptyTheme } from './Empty.theme.js';
4
4
  import { cn } from '../../../utils/cn.js';
5
5
 
6
- const Empty = React__default.forwardRef(({ title, description, image, imageAlt, icon, action, className, children, ...props }, ref) => {
6
+ const Empty = React__default.forwardRef(({ title, subtitle, image, imageAlt, icon, action, className, children, ...props }, ref) => {
7
7
  // Fixed image and icon dimensions
8
8
  const imageDimensions = "size-32";
9
9
  const iconDimensions = "size-16";
@@ -11,7 +11,7 @@ const Empty = React__default.forwardRef(({ title, description, image, imageAlt,
11
11
  if (children) {
12
12
  return (jsx("div", { ref: ref, className: cn(emptyTheme.baseStyle, className), role: "region", "aria-label": "Empty state", ...props, children: children }));
13
13
  }
14
- return (jsxs("div", { ref: ref, className: cn(emptyTheme.baseStyle, className), role: "region", "aria-label": "Empty state", ...props, children: [image ? (jsx("div", { className: "flex-shrink-0 mb-6", children: jsx("img", { src: image, alt: imageAlt || "Empty state illustration", className: cn("mx-auto object-cover", imageDimensions), loading: "lazy" }) })) : icon ? (jsx("div", { className: cn("flex-shrink-0 mx-auto text-[var(--color-text-muted)] mb-6", iconDimensions), "aria-hidden": "true", children: icon })) : null, jsxs("div", { className: "flex flex-col items-center justify-center gap-1", children: [title && jsx("div", { className: emptyTheme.titleStyle, children: title }), description && (jsx("div", { className: emptyTheme.descriptionStyle, children: description }))] }), action && (jsx("div", { className: "flex flex-col sm:flex-row gap-2 justify-center items-center mt-3", children: action }))] }));
14
+ return (jsxs("div", { ref: ref, className: cn(emptyTheme.baseStyle, className), role: "region", "aria-label": "Empty state", ...props, children: [image ? (jsx("div", { className: "flex-shrink-0 mb-6", children: jsx("img", { src: image, alt: imageAlt || "Empty state illustration", className: cn("mx-auto object-cover", imageDimensions), loading: "lazy" }) })) : icon ? (jsx("div", { className: cn("flex-shrink-0 mx-auto text-[var(--color-text-muted)] mb-6", iconDimensions), "aria-hidden": "true", children: icon })) : null, jsxs("div", { className: "flex flex-col items-center justify-center gap-1", children: [title && jsx("div", { className: emptyTheme.titleStyle, children: title }), subtitle && (jsx("div", { className: emptyTheme.subtitleStyle, children: subtitle }))] }), action && (jsx("div", { className: "flex flex-col sm:flex-row gap-2 justify-center items-center mt-3", children: action }))] }));
15
15
  });
16
16
  // Set display name for dev tools and Storybook
17
17
  Empty.displayName = "Empty";
@@ -4,7 +4,7 @@
4
4
  export interface EmptyTheme {
5
5
  baseStyle: string;
6
6
  titleStyle: string;
7
- descriptionStyle: string;
7
+ subtitleStyle: string;
8
8
  }
9
9
  /**
10
10
  * Default theme for the Empty component
@@ -5,9 +5,9 @@ const emptyTheme = {
5
5
  // Base container styles - customizable spacing, colors, and layout
6
6
  baseStyle: "flex flex-col items-center justify-center text-center w-full max-w-md mx-auto space-y-3 py-12 px-6 ",
7
7
  // Title text styles - customizable typography and colors
8
- titleStyle: "text-base font-medium text-[var(--color-text-primary)]",
9
- // Description text styles - customizable typography and colors
10
- descriptionStyle: "text-base text-[var(--color-text-secondary)]/70",
8
+ titleStyle: "text-base font-semibold text-[var(--color-text-primary)]",
9
+ // Description text styles - customizable typography and colors
10
+ subtitleStyle: "text-sm text-[var(--color-text-muted)]",
11
11
  };
12
12
 
13
13
  export { emptyTheme };
@@ -5,8 +5,8 @@ import React from "react";
5
5
  export interface EmptyProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
6
6
  /** Primary title/heading text */
7
7
  title?: React.ReactNode;
8
- /** Descriptive text explaining the empty state */
9
- description?: React.ReactNode;
8
+ /** Subtitle text explaining the empty state */
9
+ subtitle?: React.ReactNode;
10
10
  /**
11
11
  * Optional image source for illustration
12
12
  * Note: If both image and icon are provided, image takes precedence
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { LinkProps } from "./Link.types";
3
- declare const Link: React.ForwardRefExoticComponent<Omit<LinkProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
3
+ declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
4
4
  export { Link };