flikkui 0.2.0-beta.2 → 0.2.0-beta.5

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 (269) hide show
  1. package/README.md +92 -0
  2. package/dist/components/ai/PromptInput/PromptInput.js +23 -15
  3. package/dist/components/ai/PromptSuggestions/PromptSuggestion.d.ts +27 -0
  4. package/dist/components/ai/PromptSuggestions/PromptSuggestion.js +62 -0
  5. package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.d.ts +10 -0
  6. package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.js +12 -0
  7. package/dist/components/ai/PromptSuggestions/PromptSuggestion.types.d.ts +53 -0
  8. package/dist/components/ai/PromptSuggestions/index.d.ts +4 -2
  9. package/dist/components/ai/index.d.ts +2 -12
  10. package/dist/components/charts/ActivityRings/ActivityRings.js +70 -58
  11. package/dist/components/charts/ActivityRings/ActivityRings.theme.js +0 -1
  12. package/dist/components/charts/ActivityRings/ActivityRings.types.d.ts +17 -0
  13. package/dist/components/charts/BarChart/BarChart.js +8 -4
  14. package/dist/components/charts/BarChart/BarChart.types.d.ts +14 -0
  15. package/dist/components/charts/DonutChart/DonutChart.js +11 -8
  16. package/dist/components/charts/DonutChart/DonutChart.theme.d.ts +3 -0
  17. package/dist/components/charts/DonutChart/DonutChart.theme.js +5 -4
  18. package/dist/components/charts/DonutChart/donut-utils.d.ts +5 -0
  19. package/dist/components/charts/DonutChart/donut-utils.js +26 -1
  20. package/dist/components/charts/Heatmap/Heatmap.theme.js +2 -2
  21. package/dist/components/charts/shared/ChartAxis/XAxis.d.ts +2 -2
  22. package/dist/components/charts/shared/ChartAxis/XAxis.js +4 -4
  23. package/dist/components/charts/shared/ChartAxis/YAxis.d.ts +2 -2
  24. package/dist/components/charts/shared/ChartAxis/YAxis.js +8 -7
  25. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.d.ts +1 -1
  26. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.js +2 -2
  27. package/dist/components/charts/theme/chart.theme.d.ts +1 -1
  28. package/dist/components/charts/theme/chart.theme.js +39 -39
  29. package/dist/components/core/Accordion/Accordion.d.ts +1 -1
  30. package/dist/components/core/Accordion/Accordion.js +2 -2
  31. package/dist/components/core/Accordion/Accordion.types.d.ts +8 -0
  32. package/dist/components/core/Badge/Badge.js +11 -15
  33. package/dist/components/core/Badge/Badge.theme.js +7 -21
  34. package/dist/components/core/Badge/Badge.types.d.ts +9 -1
  35. package/dist/components/core/Button/Button.js +2 -2
  36. package/dist/components/core/Button/Button.theme.js +1 -1
  37. package/dist/components/core/Button/Button.types.d.ts +8 -0
  38. package/dist/components/core/Card/Card.js +8 -2
  39. package/dist/components/core/Card/Card.theme.js +1 -1
  40. package/dist/components/core/Card/Card.types.d.ts +24 -1
  41. package/dist/components/core/Drawer/Drawer.d.ts +1 -1
  42. package/dist/components/core/Drawer/Drawer.js +10 -40
  43. package/dist/components/core/Drawer/Drawer.theme.js +2 -1
  44. package/dist/components/core/Drawer/Drawer.types.d.ts +8 -0
  45. package/dist/components/core/Dropdown/Dropdown.d.ts +1 -1
  46. package/dist/components/core/Dropdown/Dropdown.js +2 -2
  47. package/dist/components/core/Dropdown/Dropdown.types.d.ts +8 -0
  48. package/dist/components/core/Metric/Metric.d.ts +1 -1
  49. package/dist/components/core/Metric/Metric.js +9 -5
  50. package/dist/components/core/Metric/Metric.theme.d.ts +1 -1
  51. package/dist/components/core/Metric/Metric.theme.js +38 -28
  52. package/dist/components/core/Metric/Metric.types.d.ts +27 -8
  53. package/dist/components/core/Modal/Modal.d.ts +1 -1
  54. package/dist/components/core/Modal/Modal.js +17 -40
  55. package/dist/components/core/Modal/Modal.theme.js +8 -3
  56. package/dist/components/core/Modal/Modal.types.d.ts +18 -0
  57. package/dist/components/core/Modal/index.d.ts +1 -1
  58. package/dist/components/core/Notification/Notification.js +2 -0
  59. package/dist/components/core/Pill/Pill.d.ts +6 -11
  60. package/dist/components/core/Pill/Pill.theme.d.ts +2 -2
  61. package/dist/components/core/Pill/Pill.types.d.ts +9 -22
  62. package/dist/components/core/Pill/index.d.ts +1 -1
  63. package/dist/components/core/Popover/Popover.d.ts +1 -1
  64. package/dist/components/core/Popover/Popover.js +2 -2
  65. package/dist/components/core/Popover/Popover.types.d.ts +8 -0
  66. package/dist/components/core/Progress/Progress.d.ts +28 -0
  67. package/dist/components/core/Progress/Progress.js +114 -0
  68. package/dist/components/core/Progress/Progress.theme.d.ts +5 -0
  69. package/dist/components/core/Progress/Progress.theme.js +33 -0
  70. package/dist/components/core/Progress/Progress.types.d.ts +92 -0
  71. package/dist/components/core/Progress/index.d.ts +2 -0
  72. package/dist/components/core/Table/Table.animations.d.ts +5 -16
  73. package/dist/components/core/Table/Table.animations.js +46 -0
  74. package/dist/components/core/Table/Table.d.ts +0 -27
  75. package/dist/components/core/Table/Table.js +58 -156
  76. package/dist/components/core/Table/Table.theme.js +28 -19
  77. package/dist/components/core/Table/Table.types.d.ts +95 -8
  78. package/dist/components/core/Table/Table.utils.d.ts +7 -0
  79. package/dist/components/core/Table/Table.utils.js +11 -1
  80. package/dist/components/core/Table/{components/TableActions/TableActions.d.ts → TableActions.d.ts} +3 -3
  81. package/dist/components/core/Table/{components/TableActions/TableActions.js → TableActions.js} +14 -24
  82. package/dist/components/core/Table/{components/TableActions/TableActionsMenu.d.ts → TableActionsMenu.d.ts} +1 -1
  83. package/dist/components/core/Table/{components/TableActions/TableActionsMenu.js → TableActionsMenu.js} +4 -4
  84. package/dist/components/core/Table/{components/core/TableBody.d.ts → TableBody.d.ts} +1 -1
  85. package/dist/components/core/Table/{components/core/TableBody.js → TableBody.js} +14 -20
  86. package/dist/components/core/Table/{components/core/TableCell.d.ts → TableCell.d.ts} +1 -9
  87. package/dist/components/core/Table/{components/core/TableCell.js → TableCell.js} +5 -13
  88. package/dist/components/core/Table/TableColumnManager.d.ts +3 -0
  89. package/dist/components/core/Table/TableColumnManager.js +34 -0
  90. package/dist/components/core/Table/{components/DeclarativeComponents.d.ts → TableDeclarative.d.ts} +1 -1
  91. package/dist/components/core/Table/{components/DeclarativeComponents.js → TableDeclarative.js} +6 -56
  92. package/dist/components/core/Table/TableFilter.d.ts +3 -0
  93. package/dist/components/core/Table/TableFilter.js +122 -0
  94. package/dist/components/core/Table/{components/core/TableHeader.d.ts → TableHeader.d.ts} +1 -1
  95. package/dist/components/core/Table/{components/core/TableHeader.js → TableHeader.js} +15 -29
  96. package/dist/components/core/Table/TablePagination.d.ts +7 -0
  97. package/dist/components/core/Table/{components/TablePagination/TablePagination.js → TablePagination.js} +5 -16
  98. package/dist/components/core/Table/TableRow.d.ts +8 -0
  99. package/dist/components/core/Table/TableRow.js +45 -0
  100. package/dist/components/core/Table/TableSelectionHeader.d.ts +7 -0
  101. package/dist/components/core/Table/{components/TableSelectionHeader/TableSelectionHeader.js → TableSelectionHeader.js} +4 -5
  102. package/dist/components/core/Table/hooks/index.d.ts +10 -0
  103. package/dist/components/core/Table/hooks/useTableColumns.d.ts +16 -0
  104. package/dist/components/core/Table/hooks/useTableColumns.js +67 -0
  105. package/dist/components/core/Table/hooks/useTableExpansion.d.ts +8 -0
  106. package/dist/components/core/Table/hooks/useTableExpansion.js +15 -0
  107. package/dist/components/core/Table/hooks/useTableFilter.d.ts +12 -0
  108. package/dist/components/core/Table/hooks/useTableFilter.js +37 -0
  109. package/dist/components/core/Table/hooks/useTablePagination.d.ts +12 -0
  110. package/dist/components/core/Table/hooks/useTablePagination.js +13 -0
  111. package/dist/components/core/Table/hooks/useTableSelection.d.ts +17 -0
  112. package/dist/components/core/Table/hooks/useTableSelection.js +40 -0
  113. package/dist/components/core/Table/index.d.ts +9 -8
  114. package/dist/components/core/Table/index.js +7 -5
  115. package/dist/components/core/Tabs/Tabs.js +2 -2
  116. package/dist/components/core/Tabs/Tabs.types.d.ts +8 -0
  117. package/dist/components/core/Tag/Tag.animations.d.ts +3 -0
  118. package/dist/components/core/Tag/Tag.animations.js +31 -0
  119. package/dist/components/core/Tag/Tag.d.ts +14 -0
  120. package/dist/components/core/Tag/Tag.js +45 -0
  121. package/dist/components/core/Tag/Tag.theme.d.ts +2 -0
  122. package/dist/components/core/Tag/Tag.theme.js +21 -0
  123. package/dist/components/core/Tag/Tag.types.d.ts +40 -0
  124. package/dist/components/core/Tag/index.d.ts +3 -0
  125. package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
  126. package/dist/components/core/Tooltip/Tooltip.js +3 -3
  127. package/dist/components/core/Tooltip/Tooltip.theme.js +1 -1
  128. package/dist/components/core/Tooltip/Tooltip.types.d.ts +17 -0
  129. package/dist/components/core/index.d.ts +2 -1
  130. package/dist/components/core/index.js +12 -5
  131. package/dist/components/effects/CustomCursor/CustomCursor.d.ts +0 -13
  132. package/dist/components/effects/CustomCursor/CustomCursor.js +26 -2
  133. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +12 -1
  134. package/dist/components/effects/CustomCursor/CustomCursor.types.d.ts +14 -1
  135. package/dist/components/forms/Combobox/Combobox.d.ts +25 -0
  136. package/dist/components/forms/Combobox/Combobox.js +412 -0
  137. package/dist/components/forms/Combobox/Combobox.theme.d.ts +6 -0
  138. package/dist/components/forms/Combobox/Combobox.theme.js +60 -0
  139. package/dist/components/forms/Combobox/Combobox.types.d.ts +111 -0
  140. package/dist/components/forms/Combobox/index.d.ts +3 -0
  141. package/dist/components/forms/FileUpload/FileUpload.js +2 -0
  142. package/dist/components/forms/Input/Input.js +25 -28
  143. package/dist/components/forms/Input/inputMasks.d.ts +15 -0
  144. package/dist/components/forms/Input/inputMasks.js +72 -1
  145. package/dist/components/forms/InputTag/InputTag.d.ts +40 -0
  146. package/dist/components/forms/InputTag/InputTag.js +491 -0
  147. package/dist/components/forms/InputTag/InputTag.theme.d.ts +2 -0
  148. package/dist/components/forms/InputTag/InputTag.theme.js +16 -0
  149. package/dist/components/forms/InputTag/InputTag.types.d.ts +107 -0
  150. package/dist/components/forms/InputTag/index.d.ts +3 -0
  151. package/dist/components/forms/Select/Select.d.ts +101 -2
  152. package/dist/components/forms/Select/Select.js +128 -132
  153. package/dist/components/forms/Select/Select.theme.js +10 -14
  154. package/dist/components/forms/Select/Select.types.d.ts +6 -2
  155. package/dist/components/forms/Select/index.d.ts +7 -4
  156. package/dist/components/forms/Select/useSelectState.d.ts +66 -0
  157. package/dist/components/forms/Select/useSelectState.js +134 -0
  158. package/dist/components/forms/SelectExpand/SelectExpand.animations.d.ts +20 -0
  159. package/dist/components/forms/SelectExpand/SelectExpand.animations.js +74 -0
  160. package/dist/components/forms/SelectExpand/SelectExpand.d.ts +9 -0
  161. package/dist/components/forms/SelectExpand/SelectExpand.js +223 -0
  162. package/dist/components/forms/SelectExpand/SelectExpand.theme.d.ts +5 -0
  163. package/dist/components/forms/SelectExpand/SelectExpand.theme.js +74 -0
  164. package/dist/components/forms/SelectExpand/SelectExpand.types.d.ts +126 -0
  165. package/dist/components/forms/SelectExpand/index.d.ts +4 -0
  166. package/dist/components/forms/Switch/Switch.js +3 -3
  167. package/dist/components/forms/Switch/Switch.theme.d.ts +1 -1
  168. package/dist/components/forms/Switch/Switch.theme.js +2 -2
  169. package/dist/components/forms/TimePicker/TimePicker.animations.d.ts +0 -46
  170. package/dist/components/forms/TimePicker/TimePicker.d.ts +15 -6
  171. package/dist/components/forms/TimePicker/TimePicker.js +285 -124
  172. package/dist/components/forms/TimePicker/TimePicker.theme.d.ts +1 -1
  173. package/dist/components/forms/TimePicker/TimePicker.theme.js +39 -22
  174. package/dist/components/forms/TimePicker/TimePicker.types.d.ts +88 -34
  175. package/dist/components/forms/TimePicker/TimePickerContent.d.ts +7 -10
  176. package/dist/components/forms/TimePicker/TimePickerContent.js +149 -16
  177. package/dist/components/forms/TimePicker/TimePickerTrigger.d.ts +3 -3
  178. package/dist/components/forms/TimePicker/TimePickerTrigger.js +22 -19
  179. package/dist/components/forms/TimePicker/WheelColumn.d.ts +14 -0
  180. package/dist/components/forms/TimePicker/WheelColumn.js +90 -0
  181. package/dist/components/forms/TimePicker/index.d.ts +4 -1
  182. package/dist/components/forms/TimePicker/useWheelPicker.d.ts +37 -0
  183. package/dist/components/forms/TimePicker/useWheelPicker.js +138 -0
  184. package/dist/components/forms/forms.theme.d.ts +14 -0
  185. package/dist/components/forms/forms.theme.js +31 -0
  186. package/dist/components/forms/index.d.ts +9 -3
  187. package/dist/components/forms/index.js +73 -2
  188. package/dist/hooks/index.d.ts +0 -4
  189. package/dist/icons/Icon.d.ts +7 -0
  190. package/dist/icons/Icon.js +6 -2
  191. package/dist/index.js +21 -19
  192. package/dist/styles.css +1 -1
  193. package/dist/utils/index.d.ts +0 -1
  194. package/dist/utils/optimisticErrors.js +1 -70
  195. package/package.json +1 -1
  196. package/dist/components/ai/EditingIndicator/EditingIndicator.animations.d.ts +0 -31
  197. package/dist/components/ai/EditingIndicator/EditingIndicator.animations.js +0 -115
  198. package/dist/components/ai/EditingIndicator/EditingIndicator.d.ts +0 -35
  199. package/dist/components/ai/EditingIndicator/EditingIndicator.js +0 -94
  200. package/dist/components/ai/EditingIndicator/EditingIndicator.theme.d.ts +0 -2
  201. package/dist/components/ai/EditingIndicator/EditingIndicator.theme.js +0 -13
  202. package/dist/components/ai/EditingIndicator/EditingIndicator.types.d.ts +0 -54
  203. package/dist/components/ai/EditingIndicator/index.d.ts +0 -9
  204. package/dist/components/ai/GenerativeRenderer/GenerativeRenderer.d.ts +0 -3
  205. package/dist/components/ai/GenerativeRenderer/GenerativeRenderer.js +0 -126
  206. package/dist/components/ai/GenerativeRenderer/GenerativeRenderer.theme.d.ts +0 -2
  207. package/dist/components/ai/GenerativeRenderer/GenerativeRenderer.theme.js +0 -8
  208. package/dist/components/ai/GenerativeRenderer/GenerativeRenderer.types.d.ts +0 -45
  209. package/dist/components/ai/GenerativeRenderer/index.d.ts +0 -3
  210. package/dist/components/ai/PresenceIndicator/PresenceIndicator.animations.d.ts +0 -17
  211. package/dist/components/ai/PresenceIndicator/PresenceIndicator.animations.js +0 -56
  212. package/dist/components/ai/PresenceIndicator/PresenceIndicator.d.ts +0 -38
  213. package/dist/components/ai/PresenceIndicator/PresenceIndicator.js +0 -110
  214. package/dist/components/ai/PresenceIndicator/PresenceIndicator.theme.d.ts +0 -2
  215. package/dist/components/ai/PresenceIndicator/PresenceIndicator.theme.js +0 -13
  216. package/dist/components/ai/PresenceIndicator/PresenceIndicator.types.d.ts +0 -53
  217. package/dist/components/ai/PresenceIndicator/index.d.ts +0 -8
  218. package/dist/components/ai/PresenceProvider/PresenceContext.d.ts +0 -24
  219. package/dist/components/ai/PresenceProvider/PresenceContext.js +0 -34
  220. package/dist/components/ai/PresenceProvider/PresenceProvider.d.ts +0 -32
  221. package/dist/components/ai/PresenceProvider/PresenceProvider.js +0 -321
  222. package/dist/components/ai/PresenceProvider/PresenceProvider.types.d.ts +0 -140
  223. package/dist/components/ai/PresenceProvider/adapters/MockAdapter.d.ts +0 -102
  224. package/dist/components/ai/PresenceProvider/adapters/MockAdapter.js +0 -331
  225. package/dist/components/ai/PresenceProvider/adapters/PresenceAdapter.d.ts +0 -93
  226. package/dist/components/ai/PresenceProvider/adapters/SupabaseAdapter.d.ts +0 -134
  227. package/dist/components/ai/PresenceProvider/adapters/WebSocketAdapter.d.ts +0 -149
  228. package/dist/components/ai/PresenceProvider/adapters/index.d.ts +0 -11
  229. package/dist/components/ai/PresenceProvider/index.d.ts +0 -10
  230. package/dist/components/ai/PromptSuggestions/PromptSuggestions.d.ts +0 -27
  231. package/dist/components/ai/PromptSuggestions/PromptSuggestions.js +0 -61
  232. package/dist/components/ai/PromptSuggestions/PromptSuggestions.types.d.ts +0 -65
  233. package/dist/components/ai/VersionSlider/VersionSlider.d.ts +0 -3
  234. package/dist/components/ai/VersionSlider/VersionSlider.js +0 -97
  235. package/dist/components/ai/VersionSlider/VersionSlider.theme.d.ts +0 -2
  236. package/dist/components/ai/VersionSlider/VersionSlider.theme.js +0 -18
  237. package/dist/components/ai/VersionSlider/VersionSlider.types.d.ts +0 -77
  238. package/dist/components/ai/VersionSlider/index.d.ts +0 -3
  239. package/dist/components/core/Pill/Pill.animations.js +0 -25
  240. package/dist/components/core/Pill/Pill.js +0 -145
  241. package/dist/components/core/Pill/Pill.theme.js +0 -65
  242. package/dist/components/core/RetryBoundary/RetryBoundary.d.ts +0 -35
  243. package/dist/components/core/RetryBoundary/RetryBoundary.js +0 -154
  244. package/dist/components/core/RetryBoundary/RetryBoundary.theme.d.ts +0 -2
  245. package/dist/components/core/RetryBoundary/RetryBoundary.theme.js +0 -7
  246. package/dist/components/core/RetryBoundary/RetryBoundary.types.d.ts +0 -51
  247. package/dist/components/core/RetryBoundary/index.d.ts +0 -3
  248. package/dist/components/core/Table/components/TableActions/TableActions.types.d.ts +0 -40
  249. package/dist/components/core/Table/components/TableActions/index.d.ts +0 -3
  250. package/dist/components/core/Table/components/TableActionsMenu.d.ts +0 -6
  251. package/dist/components/core/Table/components/TablePagination/TablePagination.d.ts +0 -17
  252. package/dist/components/core/Table/components/TablePagination/TablePagination.types.d.ts +0 -21
  253. package/dist/components/core/Table/components/TablePagination/index.d.ts +0 -2
  254. package/dist/components/core/Table/components/TableSelectionHeader/TableSelectionHeader.d.ts +0 -15
  255. package/dist/components/core/Table/components/TableSelectionHeader/index.d.ts +0 -3
  256. package/dist/components/core/Table/components/core/TableRow.d.ts +0 -3
  257. package/dist/components/core/Table/components/core/TableRow.js +0 -44
  258. package/dist/components/core/Table/components/core/index.d.ts +0 -4
  259. package/dist/components/forms/OptimisticForm/OptimisticForm.d.ts +0 -33
  260. package/dist/components/forms/OptimisticForm/OptimisticForm.js +0 -87
  261. package/dist/components/forms/OptimisticForm/OptimisticForm.theme.d.ts +0 -2
  262. package/dist/components/forms/OptimisticForm/OptimisticForm.theme.js +0 -8
  263. package/dist/components/forms/OptimisticForm/OptimisticForm.types.d.ts +0 -74
  264. package/dist/components/forms/OptimisticForm/index.d.ts +0 -3
  265. package/dist/hooks/useOptimisticMutation.d.ts +0 -109
  266. package/dist/hooks/useOptimisticMutation.js +0 -171
  267. package/dist/hooks/usePresence.d.ts +0 -88
  268. package/dist/utils/presenceUtils.d.ts +0 -66
  269. package/dist/utils/presenceUtils.js +0 -107
@@ -1,24 +1,20 @@
1
- import React from 'react';
2
- import { PillProps } from './Pill.types';
1
+ import React from "react";
2
+ import { PillProps } from "./Pill.types";
3
3
  /**
4
4
  * Pill component - Simplified selectable chip for filters and tags
5
5
  *
6
- * A focused alternative to Badge without icons, avatars, or dismissible functionality.
7
- * Perfect for filter chips, tag selection, and simple category pills.
6
+ * A focused component with single outline style. For colorful semantic
7
+ * variations, use Badge instead.
8
8
  *
9
9
  * @example Basic usage
10
10
  * ```tsx
11
- * <Pill variant="primary">Design</Pill>
11
+ * <Pill>Design</Pill>
12
12
  * ```
13
13
  *
14
14
  * @example Selectable filter
15
15
  * ```tsx
16
16
  * const [selected, setSelected] = useState(false);
17
- * <Pill
18
- * variant="primary"
19
- * selected={selected}
20
- * onSelect={setSelected}
21
- * >
17
+ * <Pill selected={selected} onSelect={setSelected}>
22
18
  * Frontend
23
19
  * </Pill>
24
20
  * ```
@@ -27,7 +23,6 @@ import { PillProps } from './Pill.types';
27
23
  * ```tsx
28
24
  * const [filters, setFilters] = useState(['design']);
29
25
  * <Pill
30
- * variant="primary"
31
26
  * selected={filters.includes('design')}
32
27
  * onSelect={(selected) => {
33
28
  * setFilters(selected
@@ -2,7 +2,7 @@ import { PillTheme } from "./Pill.types";
2
2
  /**
3
3
  * Default theme for Pill component
4
4
  *
5
- * Separates visual variants from semantic colors following new convention.
6
- * All styles can be overridden via className prop (shadcn approach).
5
+ * Simple outline style for filter chips and tags.
6
+ * For colorful semantic variations, use Badge instead.
7
7
  */
8
8
  export declare const pillTheme: PillTheme;
@@ -3,17 +3,16 @@ import React from "react";
3
3
  * Pill component props
4
4
  *
5
5
  * A simplified, focused component for filters, tags, and selectable chips.
6
- * Lighter alternative to Badge without icons, avatars, or dismissible functionality.
6
+ * Single outline style - use Badge for colorful semantic variations.
7
7
  *
8
8
  * @example Basic usage
9
9
  * ```tsx
10
- * <Pill variant="primary">Design</Pill>
10
+ * <Pill>Design</Pill>
11
11
  * ```
12
12
  *
13
13
  * @example Selectable filter
14
14
  * ```tsx
15
15
  * <Pill
16
- * variant="primary"
17
16
  * selected={isSelected}
18
17
  * onSelect={setIsSelected}
19
18
  * >
@@ -24,10 +23,6 @@ import React from "react";
24
23
  export interface PillProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "onChange" | "onSelect" | "onAnimationStart" | "onDragStart" | "onDragEnd" | "onDrag"> {
25
24
  /** Content to display inside the pill */
26
25
  children: React.ReactNode;
27
- /** Visual style variant (filled, outline, soft) */
28
- variant?: PillVariant;
29
- /** Semantic color (primary, success, danger, etc.) */
30
- color?: PillColor;
31
26
  /** Size of the pill */
32
27
  size?: PillSize;
33
28
  /**
@@ -53,14 +48,6 @@ export interface PillProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "
53
48
  /** Theme overrides for component styling */
54
49
  theme?: PillThemeOverrides;
55
50
  }
56
- /**
57
- * Pill visual variants (appearance)
58
- */
59
- export type PillVariant = "filled" | "outline" | "soft";
60
- /**
61
- * Pill semantic colors (intent)
62
- */
63
- export type PillColor = "neutral" | "primary" | "success" | "warning" | "danger";
64
51
  /**
65
52
  * Pill size variants
66
53
  */
@@ -72,12 +59,12 @@ export type PillSize = "sm" | "md" | "lg";
72
59
  * the shadcn approach where className prop takes highest priority.
73
60
  */
74
61
  export interface PillThemeOverrides {
75
- /** Style for the pill container */
62
+ /** Base style - structure and default colors */
76
63
  baseStyle?: string;
77
- /** Variant-specific styles (visual appearance) */
78
- variants?: Partial<Record<PillVariant, string>>;
79
- /** Color-specific styles (semantic intent) */
80
- colors?: Partial<Record<PillColor, string>>;
64
+ /** Hover state - applied when interactive and NOT selected */
65
+ hoverStyle?: string;
66
+ /** Selected state - applied when selected */
67
+ selectedStyle?: string;
81
68
  /** Size-specific styles */
82
69
  sizes?: Partial<Record<PillSize, string>>;
83
70
  /** Icon sizes for iconStart and CheckIcon */
@@ -88,8 +75,8 @@ export interface PillThemeOverrides {
88
75
  */
89
76
  export interface PillTheme {
90
77
  baseStyle: string;
91
- variants: Record<PillVariant, string>;
92
- colors: Record<PillColor, string>;
78
+ hoverStyle: string;
79
+ selectedStyle: string;
93
80
  sizes: Record<PillSize, string>;
94
81
  iconSizes: Record<PillSize, string>;
95
82
  }
@@ -1,3 +1,3 @@
1
1
  export { Pill } from './Pill';
2
- export type { PillProps, PillVariant, PillSize, PillTheme, PillThemeOverrides, } from './Pill.types';
2
+ export type { PillProps, PillSize, PillTheme, PillThemeOverrides, } from './Pill.types';
3
3
  export { pillTheme } from './Pill.theme';
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { PopoverRootProps as PopoverProps } from "./Popover.types";
3
- export declare const Popover: (({ children, className, isOpen: controlledIsOpen, defaultIsOpen, onOpenChange, placement, offset, triggerType, closeOnClickOutside, closeOnEsc, preventClose, hasBackdrop, theme: themeOverrides, ...props }: PopoverProps) => React.JSX.Element) & {
3
+ export declare const Popover: (({ children, className, isOpen: controlledIsOpen, defaultIsOpen, onOpenChange, placement, offset, triggerType, closeOnClickOutside, closeOnEsc, preventClose, hasBackdrop, theme: themeOverrides, darkMode, ...props }: PopoverProps) => React.JSX.Element) & {
4
4
  Trigger: React.ForwardRefExoticComponent<Omit<import("./Popover.types").PopoverTriggerProps, "ref"> & React.RefAttributes<any>>;
5
5
  Content: React.ForwardRefExoticComponent<import("./Popover.types").PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
6
6
  };
@@ -21,7 +21,7 @@ import { popoverTheme } from './Popover.theme.js';
21
21
  * </Popover>
22
22
  * ```
23
23
  */
24
- const PopoverRoot = ({ children, className, isOpen: controlledIsOpen, defaultIsOpen = false, onOpenChange, placement = "bottom", offset = 8, triggerType = "click", closeOnClickOutside = true, closeOnEsc = true, preventClose = false, hasBackdrop = false, theme: themeOverrides, ...props }) => {
24
+ const PopoverRoot = ({ children, className, isOpen: controlledIsOpen, defaultIsOpen = false, onOpenChange, placement = "bottom", offset = 8, triggerType = "click", closeOnClickOutside = true, closeOnEsc = true, preventClose = false, hasBackdrop = false, theme: themeOverrides, darkMode = false, ...props }) => {
25
25
  // State for uncontrolled mode
26
26
  const [uncontrolledIsOpen, setUncontrolledIsOpen] = useState(defaultIsOpen);
27
27
  // Determine if controlled or uncontrolled
@@ -58,7 +58,7 @@ const PopoverRoot = ({ children, className, isOpen: controlledIsOpen, defaultIsO
58
58
  theme,
59
59
  };
60
60
  return (React__default.createElement(PopoverContext.Provider, { value: contextValue },
61
- React__default.createElement("div", { className: cn("popover", className), "data-state": isOpen ? "open" : "closed", "data-backdrop": hasBackdrop ? "true" : "false", ...props }, children)));
61
+ React__default.createElement("div", { className: cn("popover", darkMode && "dark", className), "data-state": isOpen ? "open" : "closed", "data-backdrop": hasBackdrop ? "true" : "false", ...props }, children)));
62
62
  };
63
63
  // Export as a unified component
64
64
  const Popover = Object.assign(PopoverRoot, {
@@ -29,6 +29,14 @@ export interface PopoverRootProps extends React.HTMLAttributes<HTMLDivElement> {
29
29
  preventClose?: boolean;
30
30
  hasBackdrop?: boolean;
31
31
  theme?: Partial<PopoverTheme>;
32
+ /**
33
+ * Force dark mode styling for the component. Use when placing the component
34
+ * on a dark background while the page is in light mode. This applies the
35
+ * 'dark' class to the container, making text, borders, and other elements
36
+ * use light colors for visibility.
37
+ * @default false
38
+ */
39
+ darkMode?: boolean;
32
40
  }
33
41
  export interface PopoverTriggerProps {
34
42
  children: React.ReactElement;
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { ProgressProps } from "./Progress.types";
3
+ /**
4
+ * Progress component - Linear progress bar for tracking completion
5
+ *
6
+ * Features:
7
+ * - Determinate mode: Shows specific progress value (0-100)
8
+ * - Indeterminate mode: Animated loading state when value is undefined
9
+ * - Multiple sizes and semantic colors
10
+ * - Flexible label positioning (right, top, bottom, inside)
11
+ * - Respects reduced motion preferences
12
+ * - Full className override support
13
+ *
14
+ * @example
15
+ * // Determinate progress
16
+ * <Progress value={60} color="primary" />
17
+ *
18
+ * // With label
19
+ * <Progress value={75} showLabel labelPosition="right" />
20
+ *
21
+ * // Indeterminate (loading)
22
+ * <Progress color="primary" />
23
+ *
24
+ * // Custom label format
25
+ * <Progress value={50} showLabel formatLabel={(pct) => `${pct}% complete`} />
26
+ */
27
+ declare const Progress: React.FC<ProgressProps>;
28
+ export { Progress };
@@ -0,0 +1,114 @@
1
+ import React__default, { useMemo } from 'react';
2
+ import { useReducedMotion, motion } from 'motion/react';
3
+ import { progressTheme } from './Progress.theme.js';
4
+ import { cn } from '../../../utils/cn.js';
5
+
6
+ /**
7
+ * Progress component - Linear progress bar for tracking completion
8
+ *
9
+ * Features:
10
+ * - Determinate mode: Shows specific progress value (0-100)
11
+ * - Indeterminate mode: Animated loading state when value is undefined
12
+ * - Multiple sizes and semantic colors
13
+ * - Flexible label positioning (right, top, bottom, inside)
14
+ * - Respects reduced motion preferences
15
+ * - Full className override support
16
+ *
17
+ * @example
18
+ * // Determinate progress
19
+ * <Progress value={60} color="primary" />
20
+ *
21
+ * // With label
22
+ * <Progress value={75} showLabel labelPosition="right" />
23
+ *
24
+ * // Indeterminate (loading)
25
+ * <Progress color="primary" />
26
+ *
27
+ * // Custom label format
28
+ * <Progress value={50} showLabel formatLabel={(pct) => `${pct}% complete`} />
29
+ */
30
+ const Progress = ({ value, size = "md", color = "primary", showLabel = false, labelPosition = "right", formatLabel, animated = true, trackClassName, fillClassName, className, theme: customTheme, ...props }) => {
31
+ const shouldReduceMotion = useReducedMotion();
32
+ // Merge custom theme with default theme
33
+ const theme = useMemo(() => {
34
+ if (!customTheme)
35
+ return progressTheme;
36
+ return {
37
+ ...progressTheme,
38
+ ...customTheme,
39
+ sizes: { ...progressTheme.sizes, ...customTheme.sizes },
40
+ colors: { ...progressTheme.colors, ...customTheme.colors },
41
+ };
42
+ }, [customTheme]);
43
+ // Calculate percentage (clamped to 0-100)
44
+ const percentage = useMemo(() => {
45
+ if (value === undefined || value === null)
46
+ return 0;
47
+ return Math.min(Math.max(Math.round(value), 0), 100);
48
+ }, [value]);
49
+ // Determine if this is indeterminate mode
50
+ const isIndeterminate = value === undefined || value === null;
51
+ // Format the label
52
+ const label = useMemo(() => {
53
+ if (formatLabel)
54
+ return formatLabel(percentage);
55
+ return `${percentage}%`;
56
+ }, [percentage, formatLabel]);
57
+ // Determine if animation should be applied
58
+ const shouldAnimate = animated && !shouldReduceMotion;
59
+ // Get container layout based on label position
60
+ const containerLayoutClass = useMemo(() => {
61
+ if (!showLabel || isIndeterminate)
62
+ return "";
63
+ switch (labelPosition) {
64
+ case "top":
65
+ return "flex flex-col gap-1.5";
66
+ case "bottom":
67
+ return "flex flex-col-reverse gap-1.5";
68
+ case "right":
69
+ return "flex items-center gap-3";
70
+ case "inside":
71
+ return "";
72
+ default:
73
+ return "";
74
+ }
75
+ }, [showLabel, labelPosition, isIndeterminate]);
76
+ // Render label element
77
+ const renderLabel = () => {
78
+ if (!showLabel || isIndeterminate)
79
+ return null;
80
+ if (labelPosition === "inside") {
81
+ // Only show inside label for lg size (enough height)
82
+ if (size !== "lg")
83
+ return null;
84
+ return React__default.createElement("span", { className: theme.insideLabelStyle }, label);
85
+ }
86
+ return (React__default.createElement("span", { className: cn(theme.labelStyle, labelPosition === "top" || labelPosition === "bottom"
87
+ ? "text-left"
88
+ : "") }, label));
89
+ };
90
+ // Track element with optional fill
91
+ const renderTrack = () => (React__default.createElement("div", { className: cn(theme.trackStyle, theme.sizes[size], "relative", trackClassName) },
92
+ isIndeterminate ? (
93
+ // Indeterminate animation
94
+ React__default.createElement("div", { className: cn(theme.fillStyle, theme.colors[color], "w-1/3", theme.indeterminateStyle, fillClassName) })) : shouldAnimate ? (
95
+ // Animated determinate progress with spring animation
96
+ React__default.createElement(motion.div, { className: cn(theme.fillStyle, theme.colors[color], fillClassName), initial: { width: 0 }, animate: { width: `${percentage}%` }, transition: {
97
+ type: "spring",
98
+ stiffness: 100,
99
+ damping: 20,
100
+ mass: 0.5,
101
+ } })) : (
102
+ // Static determinate progress
103
+ React__default.createElement("div", { className: cn(theme.fillStyle, theme.colors[color], fillClassName), style: { width: `${percentage}%` } })),
104
+ showLabel && labelPosition === "inside" && size === "lg" && !isIndeterminate && (React__default.createElement("span", { className: theme.insideLabelStyle }, label))));
105
+ return (React__default.createElement("div", { className: cn(theme.containerStyle, containerLayoutClass, className), role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": isIndeterminate ? undefined : percentage, "aria-label": isIndeterminate ? "Loading" : `${percentage}% complete`, ...props },
106
+ labelPosition === "top" && renderLabel(),
107
+ labelPosition === "right" ? (React__default.createElement(React__default.Fragment, null,
108
+ React__default.createElement("div", { className: "flex-1" }, renderTrack()),
109
+ renderLabel())) : (renderTrack()),
110
+ labelPosition === "bottom" && renderLabel()));
111
+ };
112
+ Progress.displayName = "Progress";
113
+
114
+ export { Progress };
@@ -0,0 +1,5 @@
1
+ import { ProgressTheme } from "./Progress.types";
2
+ /**
3
+ * Default theme configuration for Progress component
4
+ */
5
+ export declare const progressTheme: ProgressTheme;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Default theme configuration for Progress component
3
+ */
4
+ const progressTheme = {
5
+ // Container styles
6
+ containerStyle: "w-full",
7
+ // Track (background) styles
8
+ trackStyle: "relative w-full rounded-full bg-[var(--color-background-tertiary)] overflow-hidden",
9
+ // Fill (progress bar) styles
10
+ fillStyle: "h-full rounded-full",
11
+ // Label text styles
12
+ labelStyle: "text-sm font-medium text-[var(--color-text-secondary)] tabular-nums min-w-[2.5rem] text-right",
13
+ // Inside label styles (when label is positioned inside the bar)
14
+ insideLabelStyle: "absolute inset-0 flex items-center justify-center text-xs font-medium text-white tabular-nums",
15
+ // Size variants for track height
16
+ sizes: {
17
+ sm: "h-1.5",
18
+ md: "h-2.5",
19
+ lg: "h-4",
20
+ },
21
+ // Color variants for the fill
22
+ colors: {
23
+ neutral: "bg-[var(--color-neutral-400)] dark:bg-[var(--color-neutral-500)]",
24
+ primary: "bg-[var(--color-primary)] dark:bg-[var(--color-primary-400)]",
25
+ success: "bg-[var(--color-success)] dark:bg-[var(--color-success-400)]",
26
+ warning: "bg-[var(--color-warning)] dark:bg-[var(--color-warning-400)]",
27
+ danger: "bg-[var(--color-danger)] dark:bg-[var(--color-danger-400)]",
28
+ },
29
+ // Indeterminate animation styles
30
+ indeterminateStyle: "animate-[progress-indeterminate_1.5s_ease-in-out_infinite]",
31
+ };
32
+
33
+ export { progressTheme };
@@ -0,0 +1,92 @@
1
+ import React from "react";
2
+ export type ProgressSize = "sm" | "md" | "lg";
3
+ export type ProgressColor = "neutral" | "primary" | "success" | "warning" | "danger";
4
+ export type ProgressLabelPosition = "right" | "top" | "bottom" | "inside";
5
+ /**
6
+ * Theme configuration for Progress component
7
+ */
8
+ export interface ProgressTheme {
9
+ /** Outer container styles */
10
+ containerStyle: string;
11
+ /** Track (background) styles */
12
+ trackStyle: string;
13
+ /** Fill (progress bar) styles */
14
+ fillStyle: string;
15
+ /** Label text styles */
16
+ labelStyle: string;
17
+ /** Inside label styles (when label is inside the bar) */
18
+ insideLabelStyle: string;
19
+ /** Size variants for the track height */
20
+ sizes: Record<ProgressSize, string>;
21
+ /** Color variants for the fill */
22
+ colors: Record<ProgressColor, string>;
23
+ /** Indeterminate animation styles */
24
+ indeterminateStyle: string;
25
+ }
26
+ /**
27
+ * Theme overrides for Progress component
28
+ */
29
+ export interface ProgressThemeOverrides {
30
+ containerStyle?: string;
31
+ trackStyle?: string;
32
+ fillStyle?: string;
33
+ labelStyle?: string;
34
+ insideLabelStyle?: string;
35
+ sizes?: Partial<Record<ProgressSize, string>>;
36
+ colors?: Partial<Record<ProgressColor, string>>;
37
+ indeterminateStyle?: string;
38
+ }
39
+ export interface ProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
40
+ /**
41
+ * Progress value from 0 to 100.
42
+ * If undefined, the progress bar will be in indeterminate mode.
43
+ */
44
+ value?: number;
45
+ /**
46
+ * The size of the progress bar
47
+ * @default 'md'
48
+ */
49
+ size?: ProgressSize;
50
+ /**
51
+ * The semantic color of the progress bar
52
+ * @default 'primary'
53
+ */
54
+ color?: ProgressColor;
55
+ /**
56
+ * Whether to show the percentage label
57
+ * @default false
58
+ */
59
+ showLabel?: boolean;
60
+ /**
61
+ * Position of the label
62
+ * @default 'right'
63
+ */
64
+ labelPosition?: ProgressLabelPosition;
65
+ /**
66
+ * Custom label formatter function
67
+ * @param percentage - The current percentage value (0-100)
68
+ * @returns The formatted label string
69
+ */
70
+ formatLabel?: (percentage: number) => string;
71
+ /**
72
+ * Whether to animate value changes
73
+ * @default true
74
+ */
75
+ animated?: boolean;
76
+ /**
77
+ * Additional class name for the track (background) element
78
+ */
79
+ trackClassName?: string;
80
+ /**
81
+ * Additional class name for the fill (progress) element
82
+ */
83
+ fillClassName?: string;
84
+ /**
85
+ * Additional class name for the container
86
+ */
87
+ className?: string;
88
+ /**
89
+ * Component-level theme overrides
90
+ */
91
+ theme?: ProgressThemeOverrides;
92
+ }
@@ -0,0 +1,2 @@
1
+ export { Progress } from "./Progress";
2
+ export type { ProgressProps, ProgressSize, ProgressColor, ProgressLabelPosition, ProgressThemeOverrides, } from "./Progress.types";
@@ -1,21 +1,10 @@
1
1
  import { Variants } from "motion/react";
2
2
  /**
3
- * Get table row animation variants for row transitions (selection, expansion, etc.)
3
+ * Container animation for row expansion (height: 0 -> auto with opacity)
4
+ * Uses the same easing curve pattern as Accordion for consistency
4
5
  */
5
- export declare const getTableRowVariants: (shouldReduceMotion: boolean | null) => Variants | undefined;
6
+ export declare const tableExpandAnimations: Variants;
6
7
  /**
7
- * Get table expanded row animation variants for row expansion
8
+ * Content slide-in animation for expanded row content (staggered after container)
8
9
  */
9
- export declare const getTableExpandedRowVariants: (shouldReduceMotion: boolean | null) => Variants | undefined;
10
- /**
11
- * Get table column manager slide animation variants
12
- */
13
- export declare const getTableColumnManagerVariants: (shouldReduceMotion: boolean | null) => Variants | undefined;
14
- /**
15
- * Get table loading state animation variants
16
- */
17
- export declare const getTableLoadingVariants: (shouldReduceMotion: boolean | null) => Variants | undefined;
18
- /**
19
- * Get table sort indicator animation variants
20
- */
21
- export declare const getTableSortVariants: (shouldReduceMotion: boolean | null) => Variants | undefined;
10
+ export declare const tableExpandContentAnimations: Variants;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Container animation for row expansion (height: 0 -> auto with opacity)
3
+ * Uses the same easing curve pattern as Accordion for consistency
4
+ */
5
+ const tableExpandAnimations = {
6
+ collapsed: {
7
+ height: 0,
8
+ opacity: 0,
9
+ transition: {
10
+ height: { duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] },
11
+ opacity: { duration: 0.25 },
12
+ },
13
+ },
14
+ expanded: {
15
+ height: 'auto',
16
+ opacity: 1,
17
+ transition: {
18
+ height: { duration: 0.4, ease: [0.04, 0.62, 0.23, 0.98] },
19
+ opacity: { duration: 0.3, delay: 0.1 },
20
+ },
21
+ },
22
+ };
23
+ /**
24
+ * Content slide-in animation for expanded row content (staggered after container)
25
+ */
26
+ const tableExpandContentAnimations = {
27
+ collapsed: {
28
+ opacity: 0,
29
+ y: -10,
30
+ transition: {
31
+ y: { duration: 0.2 },
32
+ opacity: { duration: 0.2 },
33
+ },
34
+ },
35
+ expanded: {
36
+ opacity: 1,
37
+ y: 0,
38
+ transition: {
39
+ delay: 0.15,
40
+ y: { duration: 0.3 },
41
+ opacity: { duration: 0.3 },
42
+ },
43
+ },
44
+ };
45
+
46
+ export { tableExpandAnimations, tableExpandContentAnimations };
@@ -17,33 +17,6 @@ declare const TableContext: React.Context<TableContextType>;
17
17
  * - Pagination support
18
18
  * - Full accessibility compliance (WCAG 2.1 AA)
19
19
  * - Theme customization with className overrides
20
- *
21
- * @example
22
- * // Data-driven API with stable row keys
23
- * <Table data={data} columns={columns} rowKey="id" sortable selectable />
24
- *
25
- * // Using a function for complex row keys
26
- * <Table
27
- * data={data}
28
- * columns={columns}
29
- * rowKey={(row, index) => `${row.category}-${row.id}`}
30
- * sortable
31
- * selectable
32
- * />
33
- *
34
- * // Declarative API
35
- * <Table>
36
- * <Table.Header>
37
- * <Table.Row>
38
- * <Table.HeaderCell>Name</Table.HeaderCell>
39
- * </Table.Row>
40
- * </Table.Header>
41
- * <Table.Body>
42
- * <Table.Row>
43
- * <Table.Cell>John Doe</Table.Cell>
44
- * </Table.Row>
45
- * </Table.Body>
46
- * </Table>
47
20
  */
48
21
  declare function TableComponent<T extends Record<string, any>>(props: TableProps<T>): React.ReactElement;
49
22
  declare namespace TableComponent {