@wealthx/shadcn 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/.turbo/turbo-build.log +235 -154
  2. package/CHANGELOG.md +12 -0
  3. package/dist/{chunk-6OJF6XRN.mjs → chunk-24FUO7TD.mjs} +4 -8
  4. package/dist/{chunk-4AJ5HWHD.mjs → chunk-2I5S2AMY.mjs} +3 -3
  5. package/dist/{chunk-GPRJQ24C.mjs → chunk-34NWQURD.mjs} +2 -2
  6. package/dist/{chunk-MQ72DIBH.mjs → chunk-3GF7OVTP.mjs} +14 -5
  7. package/dist/chunk-3WMX6KWS.mjs +245 -0
  8. package/dist/{chunk-PMKODV6M.mjs → chunk-462HMNO4.mjs} +6 -10
  9. package/dist/chunk-4CX4SBRO.mjs +153 -0
  10. package/dist/chunk-4MN6UQHG.mjs +443 -0
  11. package/dist/chunk-4Y6R4WEC.mjs +250 -0
  12. package/dist/{chunk-BGP2N52Z.mjs → chunk-66MI7Q4B.mjs} +5 -5
  13. package/dist/{chunk-CGOKTPXU.mjs → chunk-6JQFUE5I.mjs} +20 -23
  14. package/dist/{chunk-Z3MK2KKZ.mjs → chunk-7DHU4VGG.mjs} +7 -3
  15. package/dist/chunk-7MMXNK3C.mjs +317 -0
  16. package/dist/{chunk-VZ2NR7L3.mjs → chunk-7PYJD5JI.mjs} +35 -27
  17. package/dist/{chunk-JU2RUWHF.mjs → chunk-7XJHLGUV.mjs} +1 -1
  18. package/dist/{chunk-BMFN37JH.mjs → chunk-7YAU5CY6.mjs} +1 -1
  19. package/dist/chunk-A56YQQHG.mjs +402 -0
  20. package/dist/{chunk-GLW2UO6O.mjs → chunk-BL3DXM2X.mjs} +84 -62
  21. package/dist/{chunk-SLWCCURD.mjs → chunk-CLIN5525.mjs} +8 -4
  22. package/dist/{chunk-3VQNJ235.mjs → chunk-CSDO6VBW.mjs} +7 -0
  23. package/dist/chunk-D4ILTPOG.mjs +293 -0
  24. package/dist/{chunk-HS7TFG7V.mjs → chunk-D6ID6M4V.mjs} +1 -1
  25. package/dist/chunk-DOH3EHX7.mjs +378 -0
  26. package/dist/{chunk-MJIEMGRD.mjs → chunk-EFRENWEJ.mjs} +9 -17
  27. package/dist/{chunk-YBXCIF5Q.mjs → chunk-ERGGHC2V.mjs} +36 -49
  28. package/dist/{chunk-OXQQNQZI.mjs → chunk-FEZKMUCF.mjs} +10 -1
  29. package/dist/{chunk-55CEW76V.mjs → chunk-FH6QVUVZ.mjs} +1 -1
  30. package/dist/chunk-FMAXJ2SI.mjs +71 -0
  31. package/dist/chunk-FZIXGLMV.mjs +173 -0
  32. package/dist/chunk-GGM2UYGG.mjs +273 -0
  33. package/dist/{chunk-DS2AMHN2.mjs → chunk-GYMYRIZP.mjs} +2 -2
  34. package/dist/{chunk-KQDD5MU3.mjs → chunk-H45TKD34.mjs} +5 -5
  35. package/dist/{chunk-BBJBJSXQ.mjs → chunk-J5UICVJS.mjs} +1 -1
  36. package/dist/{chunk-RL772EH7.mjs → chunk-JHJHG4GO.mjs} +4 -12
  37. package/dist/{chunk-RN67642N.mjs → chunk-JNQORUPP.mjs} +49 -42
  38. package/dist/{chunk-5JGQAAQV.mjs → chunk-K3JYD4IU.mjs} +86 -63
  39. package/dist/{chunk-FHNT55I5.mjs → chunk-KUDCQ4FI.mjs} +4 -4
  40. package/dist/{chunk-UEL4RD5P.mjs → chunk-LHYCMLVA.mjs} +82 -68
  41. package/dist/{chunk-NLLKTU4B.mjs → chunk-LLVQKSU3.mjs} +21 -17
  42. package/dist/{chunk-KKHTJNMM.mjs → chunk-MARPPFOJ.mjs} +8 -4
  43. package/dist/{chunk-6AFMNC42.mjs → chunk-N2PT566P.mjs} +15 -11
  44. package/dist/{chunk-YN5SYTOO.mjs → chunk-NQPOYKAQ.mjs} +9 -5
  45. package/dist/{chunk-ZZV5JVNW.mjs → chunk-NSLMILBT.mjs} +3 -7
  46. package/dist/chunk-OGOYQ7BG.mjs +150 -0
  47. package/dist/chunk-OPNQAVVH.mjs +162 -0
  48. package/dist/{chunk-3NQGYJEZ.mjs → chunk-P6AM5V7O.mjs} +10 -18
  49. package/dist/{chunk-CZ3BW5GL.mjs → chunk-P76HMUI6.mjs} +5 -11
  50. package/dist/chunk-PCPLO5HT.mjs +671 -0
  51. package/dist/chunk-PG6K5XEC.mjs +475 -0
  52. package/dist/{chunk-DDPA2XXS.mjs → chunk-PMB3A7V3.mjs} +2 -2
  53. package/dist/chunk-PR6V5XKM.mjs +209 -0
  54. package/dist/{chunk-46OFHMQA.mjs → chunk-Q76O3RIQ.mjs} +10 -6
  55. package/dist/chunk-RGU7HOEC.mjs +140 -0
  56. package/dist/{chunk-JF4PHPD5.mjs → chunk-RGVKLTLH.mjs} +4 -4
  57. package/dist/{chunk-VG6UF6UT.mjs → chunk-RP3SQYA3.mjs} +2 -2
  58. package/dist/chunk-RYCLWMZ7.mjs +162 -0
  59. package/dist/chunk-SIZMLSRU.mjs +162 -0
  60. package/dist/chunk-SPJ5KXW7.mjs +199 -0
  61. package/dist/chunk-SWGT756Z.mjs +210 -0
  62. package/dist/chunk-SYOD63OZ.mjs +225 -0
  63. package/dist/chunk-TS2ZX2VS.mjs +270 -0
  64. package/dist/chunk-UFYSFDER.mjs +42 -0
  65. package/dist/chunk-VACKZOMY.mjs +190 -0
  66. package/dist/chunk-VLQZANBF.mjs +42 -0
  67. package/dist/chunk-VPBN3WOO.mjs +164 -0
  68. package/dist/chunk-WA6O6EUR.mjs +1885 -0
  69. package/dist/{chunk-E3K6O4FZ.mjs → chunk-WAZD7NFU.mjs} +5 -2
  70. package/dist/chunk-WG6JGJXB.mjs +165 -0
  71. package/dist/{chunk-I64K754C.mjs → chunk-WNGWBVLV.mjs} +2 -2
  72. package/dist/{chunk-3U7SD3MS.mjs → chunk-WOEHFRGB.mjs} +3 -3
  73. package/dist/{chunk-DKZRJOMF.mjs → chunk-XIRTEFKH.mjs} +12 -12
  74. package/dist/chunk-Y6DWJSKZ.mjs +79 -0
  75. package/dist/{chunk-CJ46PDXE.mjs → chunk-ZRO5JO3H.mjs} +106 -66
  76. package/dist/{chunk-VYMHBV6D.mjs → chunk-ZU4NV6RG.mjs} +5 -3
  77. package/dist/components/ui/accordion.js +40 -4
  78. package/dist/components/ui/accordion.mjs +2 -2
  79. package/dist/components/ui/add-column-modal.js +789 -0
  80. package/dist/components/ui/add-column-modal.mjs +17 -0
  81. package/dist/components/ui/add-lead-modal.js +647 -0
  82. package/dist/components/ui/add-lead-modal.mjs +16 -0
  83. package/dist/components/ui/ai-assistant-drawer.js +686 -0
  84. package/dist/components/ui/ai-assistant-drawer.mjs +16 -0
  85. package/dist/components/ui/alert-dialog.js +37 -5
  86. package/dist/components/ui/alert-dialog.mjs +4 -4
  87. package/dist/components/ui/alert.js +37 -11
  88. package/dist/components/ui/alert.mjs +2 -2
  89. package/dist/components/ui/avatar.js +36 -8
  90. package/dist/components/ui/avatar.mjs +2 -2
  91. package/dist/components/ui/backoffice-alert-history-chart.js +624 -0
  92. package/dist/components/ui/backoffice-alert-history-chart.mjs +16 -0
  93. package/dist/components/ui/backoffice-contact-history-chart.js +687 -0
  94. package/dist/components/ui/backoffice-contact-history-chart.mjs +16 -0
  95. package/dist/components/ui/badge.js +37 -2
  96. package/dist/components/ui/badge.mjs +2 -2
  97. package/dist/components/ui/borrowing-capacity-line-chart.js +640 -0
  98. package/dist/components/ui/borrowing-capacity-line-chart.mjs +16 -0
  99. package/dist/components/ui/button.js +35 -3
  100. package/dist/components/ui/button.mjs +2 -2
  101. package/dist/components/ui/calendar.js +43 -19
  102. package/dist/components/ui/calendar.mjs +3 -3
  103. package/dist/components/ui/card.js +40 -4
  104. package/dist/components/ui/card.mjs +2 -2
  105. package/dist/components/ui/cash-balance-line-chart.js +628 -0
  106. package/dist/components/ui/cash-balance-line-chart.mjs +16 -0
  107. package/dist/components/ui/cashflow-bar-chart.js +124 -70
  108. package/dist/components/ui/cashflow-bar-chart.mjs +8 -8
  109. package/dist/components/ui/checkbox.js +36 -5
  110. package/dist/components/ui/checkbox.mjs +2 -3
  111. package/dist/components/ui/chip.js +37 -2
  112. package/dist/components/ui/chip.mjs +3 -3
  113. package/dist/components/ui/combobox.js +68 -49
  114. package/dist/components/ui/combobox.mjs +2 -2
  115. package/dist/components/ui/data-table.js +160 -88
  116. package/dist/components/ui/data-table.mjs +10 -11
  117. package/dist/components/ui/date-picker.js +44 -20
  118. package/dist/components/ui/date-picker.mjs +6 -7
  119. package/dist/components/ui/dialog.js +44 -12
  120. package/dist/components/ui/dialog.mjs +4 -4
  121. package/dist/components/ui/drawer.js +46 -10
  122. package/dist/components/ui/drawer.mjs +3 -3
  123. package/dist/components/ui/dropdown-menu.js +40 -16
  124. package/dist/components/ui/dropdown-menu.mjs +3 -3
  125. package/dist/components/ui/empty.js +41 -5
  126. package/dist/components/ui/empty.mjs +2 -2
  127. package/dist/components/ui/expense-bar-chart.js +166 -67
  128. package/dist/components/ui/expense-bar-chart.mjs +8 -8
  129. package/dist/components/ui/field.js +53 -21
  130. package/dist/components/ui/field.mjs +4 -4
  131. package/dist/components/ui/financial-cards.js +1002 -0
  132. package/dist/components/ui/financial-cards.mjs +24 -0
  133. package/dist/components/ui/financial-drawers.js +637 -0
  134. package/dist/components/ui/financial-drawers.mjs +17 -0
  135. package/dist/components/ui/financial-primitives.js +218 -0
  136. package/dist/components/ui/financial-primitives.mjs +22 -0
  137. package/dist/components/ui/financial-sections.js +1422 -0
  138. package/dist/components/ui/financial-sections.mjs +30 -0
  139. package/dist/components/ui/form-primitives.js +682 -0
  140. package/dist/components/ui/form-primitives.mjs +19 -0
  141. package/dist/components/ui/income-bar-chart.js +164 -66
  142. package/dist/components/ui/income-bar-chart.mjs +8 -8
  143. package/dist/components/ui/input-group.js +43 -7
  144. package/dist/components/ui/input-group.mjs +5 -5
  145. package/dist/components/ui/input-otp.js +39 -3
  146. package/dist/components/ui/input-otp.mjs +2 -2
  147. package/dist/components/ui/input.js +34 -2
  148. package/dist/components/ui/input.mjs +2 -2
  149. package/dist/components/ui/kanban-column.js +1143 -0
  150. package/dist/components/ui/kanban-column.mjs +20 -0
  151. package/dist/components/ui/label.js +35 -7
  152. package/dist/components/ui/label.mjs +2 -2
  153. package/dist/components/ui/opportunity-card.js +960 -0
  154. package/dist/components/ui/opportunity-card.mjs +20 -0
  155. package/dist/components/ui/opportunity-edit-modals.js +3360 -0
  156. package/dist/components/ui/opportunity-edit-modals.mjs +37 -0
  157. package/dist/components/ui/opportunity-summary-tab.js +4365 -0
  158. package/dist/components/ui/opportunity-summary-tab.mjs +34 -0
  159. package/dist/components/ui/pagination.js +35 -3
  160. package/dist/components/ui/pagination.mjs +3 -3
  161. package/dist/components/ui/pipeline-alerts.js +103 -0
  162. package/dist/components/ui/pipeline-alerts.mjs +8 -0
  163. package/dist/components/ui/pipeline-board.js +1408 -0
  164. package/dist/components/ui/pipeline-board.mjs +24 -0
  165. package/dist/components/ui/pipeline-chart.js +216 -0
  166. package/dist/components/ui/pipeline-chart.mjs +10 -0
  167. package/dist/components/ui/pipeline-dialogs.js +1183 -0
  168. package/dist/components/ui/pipeline-dialogs.mjs +23 -0
  169. package/dist/components/ui/pipeline-primitives.js +300 -0
  170. package/dist/components/ui/pipeline-primitives.mjs +11 -0
  171. package/dist/components/ui/popover.js +45 -4
  172. package/dist/components/ui/popover.mjs +3 -3
  173. package/dist/components/ui/progress.js +33 -1
  174. package/dist/components/ui/progress.mjs +2 -2
  175. package/dist/components/ui/property-cashflow-doughnut-chart.js +523 -0
  176. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +16 -0
  177. package/dist/components/ui/property-debt-equity-doughnut-chart.js +521 -0
  178. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +16 -0
  179. package/dist/components/ui/property-mobile-estimate-line-chart.js +683 -0
  180. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +16 -0
  181. package/dist/components/ui/radio-group.js +33 -1
  182. package/dist/components/ui/radio-group.mjs +2 -2
  183. package/dist/components/ui/select.js +66 -26
  184. package/dist/components/ui/select.mjs +3 -3
  185. package/dist/components/ui/separator.js +33 -1
  186. package/dist/components/ui/separator.mjs +2 -2
  187. package/dist/components/ui/sheet.js +37 -9
  188. package/dist/components/ui/sheet.mjs +3 -3
  189. package/dist/components/ui/skeleton.js +33 -1
  190. package/dist/components/ui/skeleton.mjs +2 -2
  191. package/dist/components/ui/slider.js +86 -102
  192. package/dist/components/ui/slider.mjs +2 -2
  193. package/dist/components/ui/spinner.js +33 -1
  194. package/dist/components/ui/spinner.mjs +2 -2
  195. package/dist/components/ui/stage-timeline.js +579 -0
  196. package/dist/components/ui/stage-timeline.mjs +15 -0
  197. package/dist/components/ui/switch.js +37 -4
  198. package/dist/components/ui/switch.mjs +2 -3
  199. package/dist/components/ui/table.js +37 -5
  200. package/dist/components/ui/table.mjs +2 -2
  201. package/dist/components/ui/tabs.js +36 -12
  202. package/dist/components/ui/tabs.mjs +2 -2
  203. package/dist/components/ui/textarea.js +34 -2
  204. package/dist/components/ui/textarea.mjs +2 -2
  205. package/dist/components/ui/toggle-group.js +35 -4
  206. package/dist/components/ui/toggle-group.mjs +3 -4
  207. package/dist/components/ui/toggle.js +35 -4
  208. package/dist/components/ui/toggle.mjs +2 -3
  209. package/dist/components/ui/tooltip.js +51 -22
  210. package/dist/components/ui/tooltip.mjs +3 -3
  211. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +528 -0
  212. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +16 -0
  213. package/dist/components/ui/transactions-income-expense-bar-chart.js +77 -39
  214. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +8 -8
  215. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +528 -0
  216. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +16 -0
  217. package/dist/index.js +11620 -3832
  218. package/dist/index.mjs +333 -161
  219. package/dist/lib/theme-provider.js +10 -1
  220. package/dist/lib/theme-provider.mjs +1 -1
  221. package/dist/lib/typography.js +8 -0
  222. package/dist/lib/typography.mjs +3 -1
  223. package/dist/lib/utils.js +33 -1
  224. package/dist/lib/utils.mjs +1 -1
  225. package/dist/styles.css +1 -1
  226. package/package.json +140 -5
  227. package/src/components/index.tsx +296 -42
  228. package/src/components/ui/accordion.tsx +6 -3
  229. package/src/components/ui/add-column-modal.tsx +339 -0
  230. package/src/components/ui/add-lead-modal.tsx +290 -0
  231. package/src/components/ui/ai-assistant-drawer.tsx +408 -0
  232. package/src/components/ui/alert-dialog.tsx +80 -54
  233. package/src/components/ui/alert.tsx +28 -28
  234. package/src/components/ui/avatar.tsx +30 -29
  235. package/src/components/ui/backoffice-alert-history-chart.tsx +261 -0
  236. package/src/components/ui/backoffice-contact-history-chart.tsx +326 -0
  237. package/src/components/ui/badge.tsx +17 -15
  238. package/src/components/ui/borrowing-capacity-line-chart.tsx +359 -0
  239. package/src/components/ui/button.tsx +30 -27
  240. package/src/components/ui/calendar.tsx +53 -67
  241. package/src/components/ui/card.tsx +27 -24
  242. package/src/components/ui/cash-balance-line-chart.tsx +304 -0
  243. package/src/components/ui/cashflow-bar-chart.tsx +106 -78
  244. package/src/components/ui/chart-shared.tsx +176 -15
  245. package/src/components/ui/checkbox.tsx +30 -26
  246. package/src/components/ui/combobox.tsx +78 -72
  247. package/src/components/ui/data-table.tsx +160 -99
  248. package/src/components/ui/date-picker.tsx +0 -2
  249. package/src/components/ui/dialog.tsx +70 -60
  250. package/src/components/ui/drawer.tsx +57 -48
  251. package/src/components/ui/dropdown-menu.tsx +90 -82
  252. package/src/components/ui/empty.tsx +31 -27
  253. package/src/components/ui/expense-bar-chart.tsx +85 -66
  254. package/src/components/ui/field.tsx +70 -62
  255. package/src/components/ui/financial-cards.tsx +830 -0
  256. package/src/components/ui/financial-drawers.tsx +339 -0
  257. package/src/components/ui/financial-primitives.tsx +331 -0
  258. package/src/components/ui/financial-sections.tsx +672 -0
  259. package/src/components/ui/form-primitives.tsx +536 -0
  260. package/src/components/ui/income-bar-chart.tsx +81 -61
  261. package/src/components/ui/input-group.tsx +41 -34
  262. package/src/components/ui/input-otp.tsx +29 -24
  263. package/src/components/ui/input.tsx +8 -8
  264. package/src/components/ui/kanban-column.tsx +333 -0
  265. package/src/components/ui/label.tsx +9 -12
  266. package/src/components/ui/opportunity-card.tsx +616 -0
  267. package/src/components/ui/opportunity-edit-modals.tsx +2528 -0
  268. package/src/components/ui/opportunity-summary-tab.tsx +579 -0
  269. package/src/components/ui/pipeline-alerts.tsx +74 -0
  270. package/src/components/ui/pipeline-board.tsx +268 -0
  271. package/src/components/ui/pipeline-chart.tsx +173 -0
  272. package/src/components/ui/pipeline-dialogs.tsx +303 -0
  273. package/src/components/ui/pipeline-primitives.tsx +108 -0
  274. package/src/components/ui/popover.tsx +41 -36
  275. package/src/components/ui/property-cashflow-doughnut-chart.tsx +189 -0
  276. package/src/components/ui/property-debt-equity-doughnut-chart.tsx +186 -0
  277. package/src/components/ui/property-mobile-estimate-line-chart.tsx +395 -0
  278. package/src/components/ui/select.tsx +65 -52
  279. package/src/components/ui/sheet.tsx +55 -52
  280. package/src/components/ui/slider.tsx +54 -77
  281. package/src/components/ui/stage-timeline.tsx +205 -0
  282. package/src/components/ui/switch.tsx +42 -29
  283. package/src/components/ui/table.tsx +28 -28
  284. package/src/components/ui/tabs.tsx +22 -28
  285. package/src/components/ui/textarea.tsx +8 -8
  286. package/src/components/ui/toggle-group.tsx +0 -2
  287. package/src/components/ui/toggle.tsx +13 -15
  288. package/src/components/ui/tooltip.tsx +30 -28
  289. package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +192 -0
  290. package/src/components/ui/transactions-income-expense-bar-chart.tsx +47 -39
  291. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +192 -0
  292. package/src/lib/theme-provider.tsx +10 -0
  293. package/src/lib/typography.ts +9 -0
  294. package/src/lib/utils.ts +41 -3
  295. package/src/styles/globals.css +371 -124
  296. package/src/styles/styles-css.ts +1 -1
  297. package/tsup.config.ts +27 -0
  298. package/dist/chunk-3EQP72AW.mjs +0 -58
  299. package/dist/chunk-K74JRTJR.mjs +0 -105
  300. package/dist/chunk-V7CNWJT3.mjs +0 -10
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DBHJ5KC3.mjs";
4
4
  import {
5
5
  cn
6
- } from "./chunk-V7CNWJT3.mjs";
6
+ } from "./chunk-VLQZANBF.mjs";
7
7
  import {
8
8
  __objRest,
9
9
  __spreadValues
@@ -13,13 +13,16 @@ import {
13
13
  import { cva } from "class-variance-authority";
14
14
  import { jsx } from "react/jsx-runtime";
15
15
  var badgeVariants = cva(
16
- "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium font-sans whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
16
+ "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 py-0.5 text-xs font-medium font-sans whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
17
17
  {
18
18
  variants: {
19
19
  variant: {
20
20
  default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
21
21
  secondary: "bg-muted text-muted-foreground [a&]:hover:bg-muted/80",
22
22
  destructive: "bg-destructive text-destructive-foreground focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
23
+ success: "bg-success text-success-foreground [a&]:hover:bg-success/90",
24
+ warning: "bg-warning text-warning-foreground [a&]:hover:bg-warning/90",
25
+ info: "bg-info text-info-foreground [a&]:hover:bg-info/90",
23
26
  outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
24
27
  ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
25
28
  link: "text-primary underline-offset-4 [a&]:hover:underline"
@@ -0,0 +1,165 @@
1
+ import {
2
+ Progress
3
+ } from "./chunk-J5UICVJS.mjs";
4
+ import {
5
+ TaskCheckItem
6
+ } from "./chunk-FMAXJ2SI.mjs";
7
+ import {
8
+ Accordion,
9
+ AccordionContent,
10
+ AccordionItem,
11
+ AccordionTrigger
12
+ } from "./chunk-MARPPFOJ.mjs";
13
+ import {
14
+ Spinner
15
+ } from "./chunk-7YAU5CY6.mjs";
16
+ import {
17
+ cn
18
+ } from "./chunk-VLQZANBF.mjs";
19
+
20
+ // src/components/ui/stage-timeline.tsx
21
+ import { Check } from "lucide-react";
22
+ import { jsx, jsxs } from "react/jsx-runtime";
23
+ function StageTimeline({
24
+ stages,
25
+ onTaskToggle,
26
+ isLoading = false,
27
+ className
28
+ }) {
29
+ var _a, _b;
30
+ if (isLoading) {
31
+ return /* @__PURE__ */ jsxs(
32
+ "div",
33
+ {
34
+ className: cn(
35
+ "flex flex-col items-center justify-center gap-3 py-10",
36
+ className
37
+ ),
38
+ "data-slot": "stage-timeline",
39
+ children: [
40
+ /* @__PURE__ */ jsx(Spinner, { size: "lg", className: "text-muted-foreground" }),
41
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Loading stages\u2026" })
42
+ ]
43
+ }
44
+ );
45
+ }
46
+ if (stages.length === 0) {
47
+ return /* @__PURE__ */ jsx(
48
+ "div",
49
+ {
50
+ className: cn(
51
+ "flex items-center justify-center py-10 text-sm text-muted-foreground",
52
+ className
53
+ ),
54
+ "data-slot": "stage-timeline",
55
+ children: "No stages available."
56
+ }
57
+ );
58
+ }
59
+ const completedCount = stages.filter((s) => s.isCompleted).length;
60
+ const progressPct = Math.round(completedCount / stages.length * 100);
61
+ const defaultOpen = (_b = (_a = stages.find((s) => s.isCurrentStage)) == null ? void 0 : _a.id) != null ? _b : stages[0].id;
62
+ return /* @__PURE__ */ jsxs(
63
+ "div",
64
+ {
65
+ className: cn("flex flex-col gap-4", className),
66
+ "data-slot": "stage-timeline",
67
+ children: [
68
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
69
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-sm text-muted-foreground", children: [
70
+ /* @__PURE__ */ jsx("span", { children: "Stage progress" }),
71
+ /* @__PURE__ */ jsxs("span", { children: [
72
+ completedCount,
73
+ " / ",
74
+ stages.length,
75
+ " completed"
76
+ ] })
77
+ ] }),
78
+ /* @__PURE__ */ jsx(Progress, { value: progressPct, className: "h-2.5" })
79
+ ] }),
80
+ /* @__PURE__ */ jsx(
81
+ Accordion,
82
+ {
83
+ type: "single",
84
+ collapsible: true,
85
+ defaultValue: defaultOpen,
86
+ className: "w-full",
87
+ children: stages.map((stage) => {
88
+ const completedTasks = stage.tasks.filter((t) => t.completed).length;
89
+ const hasTasks = stage.tasks.length > 0;
90
+ return /* @__PURE__ */ jsxs(
91
+ AccordionItem,
92
+ {
93
+ value: stage.id,
94
+ className: "border-b border-border last:border-0",
95
+ children: [
96
+ /* @__PURE__ */ jsx(
97
+ AccordionTrigger,
98
+ {
99
+ className: cn(
100
+ "py-3.5 text-sm hover:no-underline [&>svg]:size-4",
101
+ stage.isCompleted ? "text-muted-foreground" : stage.isCurrentStage ? "font-semibold text-foreground" : "font-normal text-muted-foreground"
102
+ ),
103
+ disabled: !hasTasks,
104
+ children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2.5", children: [
105
+ stage.isCompleted ? /* @__PURE__ */ jsx(
106
+ "span",
107
+ {
108
+ className: "flex size-5 shrink-0 items-center justify-center rounded-full bg-primary",
109
+ "aria-hidden": "true",
110
+ children: /* @__PURE__ */ jsx(
111
+ Check,
112
+ {
113
+ className: "size-3 text-primary-foreground",
114
+ strokeWidth: 2.5
115
+ }
116
+ )
117
+ }
118
+ ) : stage.isCurrentStage ? /* @__PURE__ */ jsx(
119
+ "span",
120
+ {
121
+ className: "size-5 shrink-0 rounded-full border-2 border-primary bg-background",
122
+ "aria-hidden": "true"
123
+ }
124
+ ) : /* @__PURE__ */ jsx(
125
+ "span",
126
+ {
127
+ className: "size-5 shrink-0 rounded-full border-2 border-muted-foreground/30 bg-background",
128
+ "aria-hidden": "true"
129
+ }
130
+ ),
131
+ /* @__PURE__ */ jsx("span", { className: cn(stage.isCompleted && "line-through"), children: stage.name }),
132
+ hasTasks && /* @__PURE__ */ jsxs("span", { className: "text-xs text-muted-foreground", children: [
133
+ completedTasks,
134
+ "/",
135
+ stage.tasks.length
136
+ ] })
137
+ ] })
138
+ }
139
+ ),
140
+ hasTasks && /* @__PURE__ */ jsx(AccordionContent, { className: "p-0 pb-3 pl-8", children: stage.tasks.map((task) => /* @__PURE__ */ jsx(
141
+ TaskCheckItem,
142
+ {
143
+ title: task.title,
144
+ completed: task.completed,
145
+ aiAgentName: task.aiAgentName,
146
+ size: "sm",
147
+ onToggle: onTaskToggle ? () => onTaskToggle(stage.id, task.id) : void 0
148
+ },
149
+ task.id
150
+ )) })
151
+ ]
152
+ },
153
+ stage.id
154
+ );
155
+ })
156
+ }
157
+ )
158
+ ]
159
+ }
160
+ );
161
+ }
162
+
163
+ export {
164
+ StageTimeline
165
+ };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  buttonVariants
3
- } from "./chunk-4AJ5HWHD.mjs";
3
+ } from "./chunk-2I5S2AMY.mjs";
4
4
  import {
5
5
  cn
6
- } from "./chunk-V7CNWJT3.mjs";
6
+ } from "./chunk-VLQZANBF.mjs";
7
7
  import {
8
8
  __objRest,
9
9
  __spreadProps,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-V7CNWJT3.mjs";
3
+ } from "./chunk-VLQZANBF.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadValues
@@ -11,7 +11,7 @@ import { cva } from "class-variance-authority";
11
11
  import { Toggle as ToggleComponent } from "@base-ui/react/toggle";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  var toggleVariants = cva(
14
- "inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-pressed:bg-primary/10 data-pressed:inset-ring data-pressed:inset-ring-primary data-pressed:text-foreground data-pressed:hover:bg-primary/10 data-pressed:hover:text-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14
+ "inline-flex items-center justify-center gap-2 text-label-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-pressed:bg-primary/10 data-pressed:inset-ring data-pressed:inset-ring-primary data-pressed:text-foreground data-pressed:hover:bg-primary/10 data-pressed:hover:text-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
15
15
  {
16
16
  variants: {
17
17
  variant: {
@@ -20,7 +20,7 @@ var toggleVariants = cva(
20
20
  },
21
21
  size: {
22
22
  default: "h-9 min-w-9 px-2",
23
- sm: "h-8 min-w-8 px-1.5",
23
+ sm: "h-8 min-w-8 px-1.5 text-caption",
24
24
  lg: "h-10 min-w-10 px-2.5"
25
25
  }
26
26
  },
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  buttonVariants
3
- } from "./chunk-4AJ5HWHD.mjs";
3
+ } from "./chunk-2I5S2AMY.mjs";
4
4
  import {
5
5
  useThemeVars
6
- } from "./chunk-OXQQNQZI.mjs";
6
+ } from "./chunk-FEZKMUCF.mjs";
7
7
  import {
8
8
  cn
9
- } from "./chunk-V7CNWJT3.mjs";
9
+ } from "./chunk-VLQZANBF.mjs";
10
10
  import {
11
11
  __objRest,
12
12
  __spreadProps,
@@ -65,7 +65,7 @@ function DialogContent(_a) {
65
65
  ]);
66
66
  const themeVars = useThemeVars();
67
67
  return /* @__PURE__ */ jsxs(DialogPortal, { children: [
68
- /* @__PURE__ */ jsx(DialogOverlay, {}),
68
+ /* @__PURE__ */ jsx(DialogOverlay, { style: themeVars }),
69
69
  /* @__PURE__ */ jsxs(
70
70
  DialogPrimitive.Popup,
71
71
  __spreadProps(__spreadValues({
@@ -96,7 +96,11 @@ function DialogContent(_a) {
96
96
  ] });
97
97
  }
98
98
  function DialogHeader(_a) {
99
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
99
+ var _b = _a, {
100
+ className
101
+ } = _b, props = __objRest(_b, [
102
+ "className"
103
+ ]);
100
104
  return /* @__PURE__ */ jsx(
101
105
  "div",
102
106
  __spreadValues({
@@ -139,15 +143,11 @@ function DialogFooter(_a) {
139
143
  );
140
144
  }
141
145
  function DialogTitle(_a) {
142
- var _b = _a, {
143
- className
144
- } = _b, props = __objRest(_b, [
145
- "className"
146
- ]);
146
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
147
147
  return /* @__PURE__ */ jsx(
148
148
  DialogPrimitive.Title,
149
149
  __spreadValues({
150
- className: cn("text-lg leading-none font-semibold", className),
150
+ className: cn("text-h5 leading-none", className),
151
151
  "data-slot": "dialog-title"
152
152
  }, props)
153
153
  );
@@ -161,7 +161,7 @@ function DialogDescription(_a) {
161
161
  return /* @__PURE__ */ jsx(
162
162
  DialogPrimitive.Description,
163
163
  __spreadValues({
164
- className: cn("text-sm text-muted-foreground", className),
164
+ className: cn("text-body-small text-muted-foreground", className),
165
165
  "data-slot": "dialog-description"
166
166
  }, props)
167
167
  );
@@ -0,0 +1,79 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-VLQZANBF.mjs";
4
+
5
+ // src/components/ui/slider.tsx
6
+ import * as React from "react";
7
+ import { Slider as SliderPrimitive } from "@base-ui/react/slider";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ var Slider = React.forwardRef(
10
+ ({
11
+ className,
12
+ value,
13
+ defaultValue = 0,
14
+ min = 0,
15
+ max = 100,
16
+ step = 1,
17
+ disabled = false,
18
+ onValueChange
19
+ }, ref) => {
20
+ return /* @__PURE__ */ jsx(
21
+ SliderPrimitive.Root,
22
+ {
23
+ ref,
24
+ value,
25
+ defaultValue,
26
+ min,
27
+ max,
28
+ step,
29
+ disabled,
30
+ thumbAlignment: "edge",
31
+ onValueChange: (val) => onValueChange == null ? void 0 : onValueChange(val),
32
+ "data-slot": "slider",
33
+ className: cn(
34
+ "relative w-full touch-none select-none",
35
+ disabled && "opacity-50",
36
+ className
37
+ ),
38
+ children: /* @__PURE__ */ jsxs(
39
+ SliderPrimitive.Control,
40
+ {
41
+ className: "relative flex h-5 w-full cursor-pointer items-center",
42
+ "data-slot": "slider-control",
43
+ children: [
44
+ /* @__PURE__ */ jsx(
45
+ SliderPrimitive.Track,
46
+ {
47
+ className: "relative h-2 w-full overflow-hidden rounded-full bg-muted",
48
+ "data-slot": "slider-track",
49
+ children: /* @__PURE__ */ jsx(
50
+ SliderPrimitive.Indicator,
51
+ {
52
+ className: "absolute h-full rounded-full bg-primary",
53
+ "data-slot": "slider-indicator"
54
+ }
55
+ )
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(
59
+ SliderPrimitive.Thumb,
60
+ {
61
+ className: cn(
62
+ "block size-5 rounded-full border-2 border-primary bg-background shadow-sm",
63
+ "outline-none"
64
+ ),
65
+ "data-slot": "slider-thumb"
66
+ }
67
+ )
68
+ ]
69
+ }
70
+ )
71
+ }
72
+ );
73
+ }
74
+ );
75
+ Slider.displayName = "Slider";
76
+
77
+ export {
78
+ Slider
79
+ };
@@ -5,17 +5,7 @@ import {
5
5
  TableHead,
6
6
  TableHeader,
7
7
  TableRow
8
- } from "./chunk-BGP2N52Z.mjs";
9
- import {
10
- Select,
11
- SelectContent,
12
- SelectItem,
13
- SelectTrigger,
14
- SelectValue
15
- } from "./chunk-VZ2NR7L3.mjs";
16
- import {
17
- Input
18
- } from "./chunk-DS2AMHN2.mjs";
8
+ } from "./chunk-66MI7Q4B.mjs";
19
9
  import {
20
10
  DropdownMenu,
21
11
  DropdownMenuCheckboxItem,
@@ -24,19 +14,29 @@ import {
24
14
  DropdownMenuLabel,
25
15
  DropdownMenuSeparator,
26
16
  DropdownMenuTrigger
27
- } from "./chunk-MJIEMGRD.mjs";
17
+ } from "./chunk-EFRENWEJ.mjs";
28
18
  import {
29
19
  Skeleton
30
- } from "./chunk-HS7TFG7V.mjs";
20
+ } from "./chunk-D6ID6M4V.mjs";
21
+ import {
22
+ Select,
23
+ SelectContent,
24
+ SelectItem,
25
+ SelectTrigger,
26
+ SelectValue
27
+ } from "./chunk-7PYJD5JI.mjs";
31
28
  import {
32
29
  Checkbox
33
- } from "./chunk-JF4PHPD5.mjs";
30
+ } from "./chunk-RGVKLTLH.mjs";
31
+ import {
32
+ Input
33
+ } from "./chunk-GYMYRIZP.mjs";
34
34
  import {
35
35
  Button
36
- } from "./chunk-4AJ5HWHD.mjs";
36
+ } from "./chunk-2I5S2AMY.mjs";
37
37
  import {
38
38
  cn
39
- } from "./chunk-V7CNWJT3.mjs";
39
+ } from "./chunk-VLQZANBF.mjs";
40
40
 
41
41
  // src/components/ui/data-table.tsx
42
42
  import * as React from "react";
@@ -79,7 +79,10 @@ function DataTableColumnHeader({
79
79
  return /* @__PURE__ */ jsxs(
80
80
  Button,
81
81
  {
82
- className: cn("-ml-3 h-8 font-medium text-muted-foreground hover:text-foreground", className),
82
+ className: cn(
83
+ "-ml-3 h-8 text-muted-foreground hover:text-foreground",
84
+ className
85
+ ),
83
86
  onClick: () => {
84
87
  column.toggleSorting(sorted === "asc");
85
88
  },
@@ -127,48 +130,62 @@ function DataTableToolbar({
127
130
  enableColumnVisibility
128
131
  }) {
129
132
  var _a;
130
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 py-4", "data-slot": "data-table-toolbar", children: [
131
- /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center gap-2", children: searchKey ? /* @__PURE__ */ jsx(
132
- Input,
133
- {
134
- className: "max-w-xs",
135
- onChange: (e) => {
136
- var _a2;
137
- return (_a2 = table.getColumn(searchKey)) == null ? void 0 : _a2.setFilterValue(e.target.value);
138
- },
139
- placeholder: searchPlaceholder != null ? searchPlaceholder : `Filter ${searchKey}...`,
140
- value: (_a = table.getColumn(searchKey)) == null ? void 0 : _a.getFilterValue()
141
- }
142
- ) : null }),
143
- enableColumnVisibility ? /* @__PURE__ */ jsxs(DropdownMenu, { children: [
144
- /* @__PURE__ */ jsxs(
145
- DropdownMenuTrigger,
146
- {
147
- render: /* @__PURE__ */ jsx(Button, { className: "ml-auto h-8 gap-1.5", size: "sm", variant: "outline" }),
148
- children: [
149
- /* @__PURE__ */ jsx(SlidersHorizontal, { className: "size-3.5" }),
150
- /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: "Columns" })
151
- ]
152
- }
153
- ),
154
- /* @__PURE__ */ jsx(DropdownMenuContent, { children: /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
155
- /* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Toggle columns" }),
156
- /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
157
- table.getAllColumns().filter((col) => col.getCanHide()).map((col) => /* @__PURE__ */ jsx(
158
- DropdownMenuCheckboxItem,
133
+ return /* @__PURE__ */ jsxs(
134
+ "div",
135
+ {
136
+ className: "flex items-center justify-between gap-2 py-4",
137
+ "data-slot": "data-table-toolbar",
138
+ children: [
139
+ /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center gap-2", children: searchKey ? /* @__PURE__ */ jsx(
140
+ Input,
159
141
  {
160
- checked: col.getIsVisible(),
161
- className: "capitalize",
162
- onCheckedChange: (value) => {
163
- col.toggleVisibility(Boolean(value));
142
+ className: "max-w-xs",
143
+ onChange: (e) => {
144
+ var _a2;
145
+ return (_a2 = table.getColumn(searchKey)) == null ? void 0 : _a2.setFilterValue(e.target.value);
164
146
  },
165
- children: col.id
166
- },
167
- col.id
168
- ))
169
- ] }) })
170
- ] }) : null
171
- ] });
147
+ placeholder: searchPlaceholder != null ? searchPlaceholder : `Filter ${searchKey}...`,
148
+ value: (_a = table.getColumn(searchKey)) == null ? void 0 : _a.getFilterValue()
149
+ }
150
+ ) : null }),
151
+ enableColumnVisibility ? /* @__PURE__ */ jsxs(DropdownMenu, { children: [
152
+ /* @__PURE__ */ jsxs(
153
+ DropdownMenuTrigger,
154
+ {
155
+ render: /* @__PURE__ */ jsx(
156
+ Button,
157
+ {
158
+ className: "ml-auto h-8 gap-1.5",
159
+ size: "sm",
160
+ variant: "outline"
161
+ }
162
+ ),
163
+ children: [
164
+ /* @__PURE__ */ jsx(SlidersHorizontal, { className: "size-3.5" }),
165
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: "Columns" })
166
+ ]
167
+ }
168
+ ),
169
+ /* @__PURE__ */ jsx(DropdownMenuContent, { children: /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
170
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Toggle columns" }),
171
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
172
+ table.getAllColumns().filter((col) => col.getCanHide()).map((col) => /* @__PURE__ */ jsx(
173
+ DropdownMenuCheckboxItem,
174
+ {
175
+ checked: col.getIsVisible(),
176
+ className: "capitalize",
177
+ onCheckedChange: (value) => {
178
+ col.toggleVisibility(Boolean(value));
179
+ },
180
+ children: col.id
181
+ },
182
+ col.id
183
+ ))
184
+ ] }) })
185
+ ] }) : null
186
+ ]
187
+ }
188
+ );
172
189
  }
173
190
  function DataTablePagination({
174
191
  table,
@@ -180,7 +197,7 @@ function DataTablePagination({
180
197
  className: "flex items-center justify-between gap-4 py-4",
181
198
  "data-slot": "data-table-pagination",
182
199
  children: [
183
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: table.getFilteredSelectedRowModel().rows.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
200
+ /* @__PURE__ */ jsx("p", { className: "text-body-small text-muted-foreground", children: table.getFilteredSelectedRowModel().rows.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
184
201
  table.getFilteredSelectedRowModel().rows.length,
185
202
  " of",
186
203
  " ",
@@ -189,7 +206,7 @@ function DataTablePagination({
189
206
  ] }) }),
190
207
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-6", children: [
191
208
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
192
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground whitespace-nowrap", children: "Rows per page" }),
209
+ /* @__PURE__ */ jsx("p", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: "Rows per page" }),
193
210
  /* @__PURE__ */ jsxs(
194
211
  Select,
195
212
  {
@@ -198,16 +215,22 @@ function DataTablePagination({
198
215
  },
199
216
  value: `${table.getState().pagination.pageSize}`,
200
217
  children: [
201
- /* @__PURE__ */ jsx(SelectTrigger, { className: "w-[70px]", size: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: `${table.getState().pagination.pageSize}` }) }),
218
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "w-[70px]", size: "sm", children: /* @__PURE__ */ jsx(
219
+ SelectValue,
220
+ {
221
+ placeholder: `${table.getState().pagination.pageSize}`
222
+ }
223
+ ) }),
202
224
  /* @__PURE__ */ jsx(SelectContent, { children: pageSizeOptions.map((pageSize) => /* @__PURE__ */ jsx(SelectItem, { value: `${pageSize}`, children: pageSize }, pageSize)) })
203
225
  ]
204
226
  }
205
227
  )
206
228
  ] }),
207
- /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground whitespace-nowrap", children: [
229
+ /* @__PURE__ */ jsxs("p", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: [
208
230
  "Page ",
209
231
  table.getState().pagination.pageIndex + 1,
210
- " of ",
232
+ " of",
233
+ " ",
211
234
  table.getPageCount()
212
235
  ] }),
213
236
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
@@ -273,7 +296,13 @@ function DataTableSkeleton({
273
296
  columnCount,
274
297
  rowCount = 5
275
298
  }) {
276
- return /* @__PURE__ */ jsx(Fragment, { children: Array.from({ length: rowCount }).map((_, rowIdx) => /* @__PURE__ */ jsx(TableRow, { children: Array.from({ length: columnCount }).map((_inner, colIdx) => /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" }) }, `skeleton-cell-${String(rowIdx)}-${String(colIdx)}`)) }, `skeleton-row-${String(rowIdx)}`)) });
299
+ return /* @__PURE__ */ jsx(Fragment, { children: Array.from({ length: rowCount }).map((_, rowIdx) => /* @__PURE__ */ jsx(TableRow, { children: Array.from({ length: columnCount }).map((_inner, colIdx) => /* @__PURE__ */ jsx(
300
+ TableCell,
301
+ {
302
+ children: /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" })
303
+ },
304
+ `skeleton-cell-${String(rowIdx)}-${String(colIdx)}`
305
+ )) }, `skeleton-row-${String(rowIdx)}`)) });
277
306
  }
278
307
  function DataTable({
279
308
  columns: userColumns,
@@ -291,7 +320,9 @@ function DataTable({
291
320
  emptyText = "No results."
292
321
  }) {
293
322
  const [sorting, setSorting] = React.useState([]);
294
- const [columnFilters, setColumnFilters] = React.useState([]);
323
+ const [columnFilters, setColumnFilters] = React.useState(
324
+ []
325
+ );
295
326
  const [columnVisibility, setColumnVisibility] = React.useState({});
296
327
  const [rowSelection, setRowSelection] = React.useState({});
297
328
  const resolvedColumns = React.useMemo(() => {
@@ -323,7 +354,13 @@ function DataTable({
323
354
  });
324
355
  function renderTableBody() {
325
356
  if (loading) {
326
- return /* @__PURE__ */ jsx(DataTableSkeleton, { columnCount: resolvedColumns.length, rowCount: skeletonRows });
357
+ return /* @__PURE__ */ jsx(
358
+ DataTableSkeleton,
359
+ {
360
+ columnCount: resolvedColumns.length,
361
+ rowCount: skeletonRows
362
+ }
363
+ );
327
364
  }
328
365
  if (table.getRowModel().rows.length) {
329
366
  return /* @__PURE__ */ jsx(Fragment, { children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(
@@ -355,7 +392,10 @@ function DataTable({
355
392
  }
356
393
  ),
357
394
  /* @__PURE__ */ jsx("div", { className: "border border-border", children: /* @__PURE__ */ jsxs(Table, { children: [
358
- /* @__PURE__ */ jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(TableHead, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id)) }, headerGroup.id)) }),
395
+ /* @__PURE__ */ jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(TableHead, { children: header.isPlaceholder ? null : flexRender(
396
+ header.column.columnDef.header,
397
+ header.getContext()
398
+ ) }, header.id)) }, headerGroup.id)) }),
359
399
  /* @__PURE__ */ jsx(TableBody, { children: renderTableBody() })
360
400
  ] }) }),
361
401
  /* @__PURE__ */ jsx(DataTablePagination, { pageSizeOptions, table })
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-V7CNWJT3.mjs";
3
+ } from "./chunk-VLQZANBF.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadProps,
@@ -75,7 +75,9 @@ function SwitchCard(_a) {
75
75
  "switchPosition",
76
76
  "size"
77
77
  ]);
78
- const [internalChecked, setInternalChecked] = useState(defaultChecked != null ? defaultChecked : false);
78
+ const [internalChecked, setInternalChecked] = useState(
79
+ defaultChecked != null ? defaultChecked : false
80
+ );
79
81
  const isChecked = checked != null ? checked : internalChecked;
80
82
  const switchElement = /* @__PURE__ */ jsx(
81
83
  Switch,
@@ -93,7 +95,7 @@ function SwitchCard(_a) {
93
95
  );
94
96
  const contentElement = /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
95
97
  /* @__PURE__ */ jsx("span", { className: "text-sm font-medium leading-none", children: label }),
96
- description ? /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: description }) : null
98
+ description ? /* @__PURE__ */ jsx("span", { className: "text-body-small text-muted-foreground", children: description }) : null
97
99
  ] });
98
100
  return /* @__PURE__ */ jsx(
99
101
  "label",