@object-ui/components 0.3.0 → 0.3.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 (317) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/ISSUES_FOUND.md +128 -0
  3. package/README.md +19 -1
  4. package/README_SHADCN_SYNC.md +281 -0
  5. package/TESTING.md +335 -0
  6. package/dist/index.css +1 -1
  7. package/dist/index.js +30981 -30027
  8. package/dist/index.umd.cjs +30 -39
  9. package/dist/src/hooks/use-mobile.d.ts +7 -0
  10. package/dist/src/index.d.ts +4 -1
  11. package/dist/src/renderers/basic/button-group.d.ts +8 -0
  12. package/dist/src/renderers/basic/div.d.ts +7 -0
  13. package/dist/src/renderers/basic/html.d.ts +7 -0
  14. package/dist/src/renderers/basic/icon.d.ts +7 -0
  15. package/dist/src/renderers/basic/image.d.ts +7 -0
  16. package/dist/src/renderers/basic/navigation-menu.d.ts +8 -0
  17. package/dist/src/renderers/basic/pagination.d.ts +8 -0
  18. package/dist/src/renderers/basic/separator.d.ts +7 -0
  19. package/dist/src/renderers/basic/span.d.ts +7 -0
  20. package/dist/src/renderers/basic/text.d.ts +7 -0
  21. package/dist/src/renderers/complex/carousel.d.ts +7 -0
  22. package/dist/src/renderers/complex/data-table.d.ts +7 -0
  23. package/dist/src/renderers/complex/filter-builder.d.ts +7 -0
  24. package/dist/src/renderers/complex/resizable.d.ts +7 -0
  25. package/dist/src/renderers/complex/scroll-area.d.ts +7 -0
  26. package/dist/src/renderers/complex/table.d.ts +7 -0
  27. package/dist/src/renderers/data-display/alert.d.ts +7 -0
  28. package/dist/src/renderers/data-display/avatar.d.ts +7 -0
  29. package/dist/src/renderers/data-display/badge.d.ts +7 -0
  30. package/dist/src/renderers/data-display/breadcrumb.d.ts +8 -0
  31. package/dist/src/renderers/data-display/kbd.d.ts +8 -0
  32. package/dist/src/renderers/data-display/list.d.ts +7 -0
  33. package/dist/src/renderers/data-display/statistic.d.ts +7 -0
  34. package/dist/src/renderers/data-display/table.d.ts +8 -0
  35. package/dist/src/renderers/data-display/tree-view.d.ts +7 -0
  36. package/dist/src/renderers/disclosure/accordion.d.ts +7 -0
  37. package/dist/src/renderers/disclosure/collapsible.d.ts +7 -0
  38. package/dist/src/renderers/disclosure/toggle-group.d.ts +8 -0
  39. package/dist/src/renderers/feedback/empty.d.ts +8 -0
  40. package/dist/src/renderers/feedback/loading.d.ts +7 -0
  41. package/dist/src/renderers/feedback/progress.d.ts +7 -0
  42. package/dist/src/renderers/feedback/skeleton.d.ts +7 -0
  43. package/dist/src/renderers/feedback/sonner.d.ts +8 -0
  44. package/dist/src/renderers/feedback/spinner.d.ts +8 -0
  45. package/dist/src/renderers/feedback/toast.d.ts +8 -0
  46. package/dist/src/renderers/feedback/toaster.d.ts +7 -0
  47. package/dist/src/renderers/form/button.d.ts +7 -0
  48. package/dist/src/renderers/form/calendar.d.ts +7 -0
  49. package/dist/src/renderers/form/checkbox.d.ts +7 -0
  50. package/dist/src/renderers/form/combobox.d.ts +8 -0
  51. package/dist/src/renderers/form/command.d.ts +8 -0
  52. package/dist/src/renderers/form/date-picker.d.ts +7 -0
  53. package/dist/src/renderers/form/file-upload.d.ts +7 -0
  54. package/dist/src/renderers/form/form.d.ts +7 -0
  55. package/dist/src/renderers/form/input-otp.d.ts +7 -0
  56. package/dist/src/renderers/form/input.d.ts +7 -0
  57. package/dist/src/renderers/form/label.d.ts +7 -0
  58. package/dist/src/renderers/form/radio-group.d.ts +7 -0
  59. package/dist/src/renderers/form/select.d.ts +7 -0
  60. package/dist/src/renderers/form/slider.d.ts +7 -0
  61. package/dist/src/renderers/form/switch.d.ts +7 -0
  62. package/dist/src/renderers/form/textarea.d.ts +7 -0
  63. package/dist/src/renderers/form/toggle.d.ts +7 -0
  64. package/dist/src/renderers/layout/aspect-ratio.d.ts +8 -0
  65. package/dist/src/renderers/layout/card.d.ts +7 -0
  66. package/dist/src/renderers/layout/container.d.ts +7 -0
  67. package/dist/src/renderers/layout/flex.d.ts +7 -0
  68. package/dist/src/renderers/layout/grid.d.ts +7 -0
  69. package/dist/src/renderers/layout/semantic.d.ts +7 -0
  70. package/dist/src/renderers/layout/stack.d.ts +7 -0
  71. package/dist/src/renderers/layout/tabs.d.ts +7 -0
  72. package/dist/src/renderers/navigation/header-bar.d.ts +7 -0
  73. package/dist/src/renderers/navigation/sidebar.d.ts +7 -0
  74. package/dist/src/renderers/overlay/alert-dialog.d.ts +7 -0
  75. package/dist/src/renderers/overlay/context-menu.d.ts +7 -0
  76. package/dist/src/renderers/overlay/dialog.d.ts +7 -0
  77. package/dist/src/renderers/overlay/drawer.d.ts +7 -0
  78. package/dist/src/renderers/overlay/dropdown-menu.d.ts +7 -0
  79. package/dist/src/renderers/overlay/hover-card.d.ts +7 -0
  80. package/dist/src/renderers/overlay/menubar.d.ts +8 -0
  81. package/dist/src/renderers/overlay/popover.d.ts +7 -0
  82. package/dist/src/renderers/overlay/sheet.d.ts +7 -0
  83. package/dist/src/renderers/overlay/tooltip.d.ts +7 -0
  84. package/dist/src/renderers/placeholders.d.ts +9 -0
  85. package/dist/src/ui/accordion.d.ts +7 -0
  86. package/dist/src/ui/alert-dialog.d.ts +7 -0
  87. package/dist/src/ui/alert.d.ts +7 -0
  88. package/dist/src/ui/aspect-ratio.d.ts +7 -0
  89. package/dist/src/ui/avatar.d.ts +7 -0
  90. package/dist/src/ui/badge.d.ts +7 -0
  91. package/dist/src/ui/breadcrumb.d.ts +7 -0
  92. package/dist/src/ui/button.d.ts +10 -5
  93. package/dist/src/ui/calendar.d.ts +14 -7
  94. package/dist/src/ui/card.d.ts +7 -0
  95. package/dist/src/ui/carousel.d.ts +7 -0
  96. package/dist/src/ui/checkbox.d.ts +7 -0
  97. package/dist/src/ui/collapsible.d.ts +7 -0
  98. package/dist/src/ui/combobox.d.ts +22 -0
  99. package/dist/src/ui/command.d.ts +7 -0
  100. package/dist/src/ui/context-menu.d.ts +7 -0
  101. package/dist/src/ui/date-picker.d.ts +15 -0
  102. package/dist/src/ui/dialog.d.ts +7 -0
  103. package/dist/src/ui/drawer.d.ts +7 -0
  104. package/dist/src/ui/dropdown-menu.d.ts +7 -0
  105. package/dist/src/ui/filter-builder.d.ts +7 -0
  106. package/dist/src/ui/form.d.ts +7 -0
  107. package/dist/src/ui/hover-card.d.ts +7 -0
  108. package/dist/src/ui/index.d.ts +10 -5
  109. package/dist/src/ui/input-otp.d.ts +7 -0
  110. package/dist/src/ui/input.d.ts +7 -0
  111. package/dist/src/ui/item.d.ts +7 -0
  112. package/dist/src/ui/kbd.d.ts +7 -0
  113. package/dist/src/ui/label.d.ts +7 -0
  114. package/dist/src/ui/menubar.d.ts +7 -0
  115. package/dist/src/ui/navigation-menu.d.ts +7 -0
  116. package/dist/src/ui/pagination.d.ts +7 -0
  117. package/dist/src/ui/popover.d.ts +7 -0
  118. package/dist/src/ui/progress.d.ts +7 -0
  119. package/dist/src/ui/radio-group.d.ts +7 -0
  120. package/dist/src/ui/resizable.d.ts +7 -0
  121. package/dist/src/ui/scroll-area.d.ts +7 -0
  122. package/dist/src/ui/select.d.ts +9 -2
  123. package/dist/src/ui/separator.d.ts +7 -0
  124. package/dist/src/ui/sheet.d.ts +7 -0
  125. package/dist/src/ui/sidebar.d.ts +14 -9
  126. package/dist/src/ui/skeleton.d.ts +7 -0
  127. package/dist/src/ui/slider.d.ts +7 -0
  128. package/dist/src/ui/spinner.d.ts +7 -0
  129. package/dist/src/ui/switch.d.ts +7 -0
  130. package/dist/src/ui/table.d.ts +15 -8
  131. package/dist/src/ui/tabs.d.ts +7 -0
  132. package/dist/src/ui/textarea.d.ts +7 -0
  133. package/dist/src/ui/toggle-group.d.ts +8 -3
  134. package/dist/src/ui/toggle.d.ts +7 -0
  135. package/dist/src/ui/tooltip.d.ts +7 -0
  136. package/metadata/ObjectGrid.component.yml +72 -0
  137. package/package.json +23 -11
  138. package/postcss.config.js +9 -1
  139. package/shadcn-components.json +310 -0
  140. package/src/__tests__/README.md +124 -0
  141. package/src/__tests__/basic-renderers.test.tsx +255 -0
  142. package/src/__tests__/complex-disclosure-renderers.test.tsx +301 -0
  143. package/src/__tests__/feedback-overlay-renderers.test.tsx +349 -0
  144. package/src/__tests__/form-renderers.test.tsx +364 -0
  145. package/src/__tests__/layout-data-renderers.test.tsx +340 -0
  146. package/src/__tests__/test-utils.tsx +190 -0
  147. package/src/hooks/use-mobile.tsx +8 -0
  148. package/src/index.css +86 -54
  149. package/src/index.test.ts +8 -0
  150. package/src/index.ts +21 -1
  151. package/src/lib/utils.tsx +8 -0
  152. package/src/new-components.test.ts +8 -9
  153. package/src/renderers/basic/button-group.tsx +78 -0
  154. package/src/renderers/basic/div.tsx +9 -1
  155. package/src/renderers/basic/html.tsx +8 -0
  156. package/src/renderers/basic/icon.tsx +66 -3
  157. package/src/renderers/basic/image.tsx +12 -1
  158. package/src/renderers/basic/index.ts +11 -0
  159. package/src/renderers/basic/navigation-menu.tsx +80 -0
  160. package/src/renderers/basic/pagination.tsx +82 -0
  161. package/src/renderers/basic/separator.tsx +9 -1
  162. package/src/renderers/basic/span.tsx +9 -1
  163. package/src/renderers/basic/text.tsx +8 -0
  164. package/src/renderers/complex/__tests__/data-table.test.ts +8 -0
  165. package/src/renderers/complex/carousel.tsx +11 -3
  166. package/src/renderers/complex/data-table.tsx +19 -4
  167. package/src/renderers/complex/filter-builder.tsx +8 -0
  168. package/src/renderers/complex/index.ts +9 -3
  169. package/src/renderers/complex/resizable.tsx +8 -0
  170. package/src/renderers/complex/scroll-area.tsx +8 -0
  171. package/src/renderers/complex/table.tsx +10 -2
  172. package/src/renderers/data-display/alert.tsx +8 -0
  173. package/src/renderers/data-display/avatar.tsx +8 -0
  174. package/src/renderers/data-display/badge.tsx +8 -0
  175. package/src/renderers/data-display/breadcrumb.tsx +59 -0
  176. package/src/renderers/data-display/index.ts +12 -0
  177. package/src/renderers/data-display/kbd.tsx +49 -0
  178. package/src/renderers/data-display/list.tsx +8 -0
  179. package/src/renderers/data-display/statistic.tsx +24 -43
  180. package/src/renderers/data-display/table.tsx +68 -0
  181. package/src/renderers/data-display/tree-view.tsx +26 -37
  182. package/src/renderers/disclosure/accordion.tsx +8 -0
  183. package/src/renderers/disclosure/collapsible.tsx +8 -0
  184. package/src/renderers/disclosure/index.ts +9 -0
  185. package/src/renderers/disclosure/toggle-group.tsx +77 -0
  186. package/src/renderers/feedback/empty.tsx +48 -0
  187. package/src/renderers/feedback/index.ts +12 -0
  188. package/src/renderers/feedback/loading.tsx +8 -0
  189. package/src/renderers/feedback/progress.tsx +8 -0
  190. package/src/renderers/feedback/skeleton.tsx +8 -0
  191. package/src/renderers/feedback/sonner.tsx +55 -0
  192. package/src/renderers/feedback/spinner.tsx +54 -0
  193. package/src/renderers/feedback/toast.tsx +58 -0
  194. package/src/renderers/feedback/toaster.tsx +13 -17
  195. package/src/renderers/form/button.tsx +8 -0
  196. package/src/renderers/form/calendar.tsx +8 -0
  197. package/src/renderers/form/checkbox.tsx +8 -0
  198. package/src/renderers/form/combobox.tsx +47 -0
  199. package/src/renderers/form/command.tsx +57 -0
  200. package/src/renderers/form/date-picker.tsx +10 -2
  201. package/src/renderers/form/file-upload.tsx +10 -2
  202. package/src/renderers/form/form.tsx +12 -3
  203. package/src/renderers/form/index.ts +10 -0
  204. package/src/renderers/form/input-otp.tsx +34 -15
  205. package/src/renderers/form/input.tsx +89 -50
  206. package/src/renderers/form/label.tsx +8 -0
  207. package/src/renderers/form/radio-group.tsx +8 -0
  208. package/src/renderers/form/select.tsx +8 -0
  209. package/src/renderers/form/slider.tsx +16 -1
  210. package/src/renderers/form/switch.tsx +8 -0
  211. package/src/renderers/form/textarea.tsx +8 -0
  212. package/src/renderers/form/toggle.tsx +8 -0
  213. package/src/renderers/index.ts +8 -0
  214. package/src/renderers/layout/aspect-ratio.tsx +50 -0
  215. package/src/renderers/layout/card.tsx +8 -0
  216. package/src/renderers/layout/container.tsx +20 -12
  217. package/src/renderers/layout/flex.tsx +16 -8
  218. package/src/renderers/layout/grid.tsx +8 -0
  219. package/src/renderers/layout/index.ts +9 -0
  220. package/src/renderers/layout/page.tsx +9 -1
  221. package/src/renderers/layout/semantic.tsx +8 -0
  222. package/src/renderers/layout/stack.tsx +16 -8
  223. package/src/renderers/layout/tabs.tsx +8 -0
  224. package/src/renderers/navigation/header-bar.tsx +9 -1
  225. package/src/renderers/navigation/index.ts +8 -0
  226. package/src/renderers/navigation/sidebar.tsx +8 -0
  227. package/src/renderers/overlay/alert-dialog.tsx +8 -0
  228. package/src/renderers/overlay/context-menu.tsx +9 -1
  229. package/src/renderers/overlay/dialog.tsx +8 -0
  230. package/src/renderers/overlay/drawer.tsx +8 -0
  231. package/src/renderers/overlay/dropdown-menu.tsx +8 -0
  232. package/src/renderers/overlay/hover-card.tsx +8 -0
  233. package/src/renderers/overlay/index.ts +9 -0
  234. package/src/renderers/overlay/menubar.tsx +75 -0
  235. package/src/renderers/overlay/popover.tsx +8 -0
  236. package/src/renderers/overlay/sheet.tsx +8 -0
  237. package/src/renderers/overlay/tooltip.tsx +8 -0
  238. package/src/renderers/placeholders.tsx +107 -0
  239. package/src/ui/accordion.tsx +8 -0
  240. package/src/ui/alert-dialog.tsx +8 -0
  241. package/src/ui/alert.tsx +14 -24
  242. package/src/ui/aspect-ratio.tsx +8 -0
  243. package/src/ui/avatar.tsx +8 -0
  244. package/src/ui/badge.tsx +13 -6
  245. package/src/ui/breadcrumb.tsx +8 -0
  246. package/src/ui/button-group.tsx +8 -0
  247. package/src/ui/button.tsx +38 -36
  248. package/src/ui/calendar.tsx +57 -200
  249. package/src/ui/card.tsx +8 -0
  250. package/src/ui/carousel.tsx +8 -0
  251. package/src/ui/checkbox.tsx +8 -0
  252. package/src/ui/collapsible.tsx +8 -0
  253. package/src/ui/combobox.tsx +104 -0
  254. package/src/ui/command.tsx +8 -0
  255. package/src/ui/context-menu.tsx +8 -0
  256. package/src/ui/date-picker.tsx +61 -0
  257. package/src/ui/dialog.tsx +8 -0
  258. package/src/ui/drawer.tsx +8 -0
  259. package/src/ui/dropdown-menu.tsx +8 -0
  260. package/src/ui/empty.tsx +8 -0
  261. package/src/ui/filter-builder.tsx +8 -0
  262. package/src/ui/form.tsx +8 -0
  263. package/src/ui/hover-card.tsx +8 -0
  264. package/src/ui/index.ts +11 -5
  265. package/src/ui/input-otp.tsx +20 -12
  266. package/src/ui/input.tsx +8 -0
  267. package/src/ui/item.tsx +8 -0
  268. package/src/ui/kbd.tsx +8 -0
  269. package/src/ui/label.tsx +8 -0
  270. package/src/ui/menubar.tsx +8 -0
  271. package/src/ui/navigation-menu.tsx +8 -0
  272. package/src/ui/pagination.tsx +8 -0
  273. package/src/ui/popover.tsx +9 -1
  274. package/src/ui/progress.tsx +11 -15
  275. package/src/ui/radio-group.tsx +8 -0
  276. package/src/ui/resizable.tsx +8 -0
  277. package/src/ui/scroll-area.tsx +9 -1
  278. package/src/ui/select.tsx +17 -9
  279. package/src/ui/separator.tsx +8 -0
  280. package/src/ui/sheet.tsx +8 -0
  281. package/src/ui/sidebar.tsx +34 -15
  282. package/src/ui/skeleton.tsx +8 -0
  283. package/src/ui/slider.tsx +8 -0
  284. package/src/ui/sonner.tsx +12 -20
  285. package/src/ui/spinner.tsx +11 -23
  286. package/src/ui/switch.tsx +8 -0
  287. package/src/ui/table.tsx +102 -97
  288. package/src/ui/tabs.tsx +8 -0
  289. package/src/ui/textarea.tsx +8 -0
  290. package/src/ui/toggle-group.tsx +12 -21
  291. package/src/ui/toggle.tsx +15 -12
  292. package/src/ui/tooltip.tsx +8 -0
  293. package/tsconfig.json +2 -1
  294. package/vite.config.ts +11 -1
  295. package/dist/src/index.test.d.ts +0 -1
  296. package/dist/src/new-components.test.d.ts +0 -1
  297. package/dist/src/renderers/complex/__tests__/data-table.test.d.ts +0 -0
  298. package/dist/src/renderers/complex/calendar-view.d.ts +0 -1
  299. package/dist/src/renderers/complex/chatbot.d.ts +0 -1
  300. package/dist/src/renderers/complex/chatbot.test.d.ts +0 -1
  301. package/dist/src/renderers/complex/timeline.d.ts +0 -1
  302. package/dist/src/ui/calendar-view.d.ts +0 -21
  303. package/dist/src/ui/chatbot.d.ts +0 -36
  304. package/dist/src/ui/field.d.ts +0 -24
  305. package/dist/src/ui/input-group.d.ts +0 -16
  306. package/dist/src/ui/timeline.d.ts +0 -25
  307. package/metadata/ObjectTable.component.yml +0 -41
  308. package/src/renderers/complex/calendar-view.tsx +0 -219
  309. package/src/renderers/complex/chatbot.test.ts +0 -44
  310. package/src/renderers/complex/chatbot.tsx +0 -185
  311. package/src/renderers/complex/timeline.tsx +0 -466
  312. package/src/ui/calendar-view.tsx +0 -503
  313. package/src/ui/chatbot.tsx +0 -240
  314. package/src/ui/field.tsx +0 -246
  315. package/src/ui/input-group.tsx +0 -170
  316. package/src/ui/timeline.tsx +0 -266
  317. package/tailwind.config.js +0 -75
@@ -1,266 +0,0 @@
1
- import * as React from "react"
2
- import { cn } from "../lib/utils"
3
-
4
- const Timeline = React.forwardRef<
5
- HTMLOListElement,
6
- React.HTMLAttributes<HTMLOListElement>
7
- >(({ className, ...props }, ref) => (
8
- <ol
9
- ref={ref}
10
- className={cn("relative border-l border-gray-200", className)}
11
- {...props}
12
- />
13
- ))
14
- Timeline.displayName = "Timeline"
15
-
16
- const TimelineItem = React.forwardRef<
17
- HTMLLIElement,
18
- React.HTMLAttributes<HTMLLIElement>
19
- >(({ className, ...props }, ref) => (
20
- <li
21
- ref={ref}
22
- className={cn("mb-10 ml-6", className)}
23
- {...props}
24
- />
25
- ))
26
- TimelineItem.displayName = "TimelineItem"
27
-
28
- const TimelineMarker = React.forwardRef<
29
- HTMLDivElement,
30
- React.HTMLAttributes<HTMLDivElement> & {
31
- variant?: "default" | "success" | "warning" | "danger" | "info"
32
- }
33
- >(({ className, variant = "default", ...props }, ref) => {
34
- const variantClasses = {
35
- default: "bg-gray-200 border-gray-300",
36
- success: "bg-green-200 border-green-500",
37
- warning: "bg-yellow-200 border-yellow-500",
38
- danger: "bg-red-200 border-red-500",
39
- info: "bg-blue-200 border-blue-500",
40
- }
41
-
42
- return (
43
- <div
44
- ref={ref}
45
- className={cn(
46
- "absolute -left-3 w-6 h-6 rounded-full border-2 flex items-center justify-center",
47
- variantClasses[variant],
48
- className
49
- )}
50
- {...props}
51
- />
52
- )
53
- })
54
- TimelineMarker.displayName = "TimelineMarker"
55
-
56
- const TimelineContent = React.forwardRef<
57
- HTMLDivElement,
58
- React.HTMLAttributes<HTMLDivElement>
59
- >(({ className, ...props }, ref) => (
60
- <div
61
- ref={ref}
62
- className={className}
63
- {...props}
64
- />
65
- ))
66
- TimelineContent.displayName = "TimelineContent"
67
-
68
- const TimelineTitle = React.forwardRef<
69
- HTMLHeadingElement,
70
- React.HTMLAttributes<HTMLHeadingElement>
71
- >(({ className, ...props }, ref) => (
72
- <h3
73
- ref={ref}
74
- className={cn("font-semibold text-lg mb-1", className)}
75
- {...props}
76
- />
77
- ))
78
- TimelineTitle.displayName = "TimelineTitle"
79
-
80
- const TimelineTime = React.forwardRef<
81
- HTMLTimeElement,
82
- React.TimeHTMLAttributes<HTMLTimeElement>
83
- >(({ className, ...props }, ref) => (
84
- <time
85
- ref={ref}
86
- className={cn("text-sm font-normal text-gray-500 mb-2 block", className)}
87
- {...props}
88
- />
89
- ))
90
- TimelineTime.displayName = "TimelineTime"
91
-
92
- const TimelineDescription = React.forwardRef<
93
- HTMLParagraphElement,
94
- React.HTMLAttributes<HTMLParagraphElement>
95
- >(({ className, ...props }, ref) => (
96
- <p
97
- ref={ref}
98
- className={cn("text-base text-gray-700", className)}
99
- {...props}
100
- />
101
- ))
102
- TimelineDescription.displayName = "TimelineDescription"
103
-
104
- // Horizontal Timeline Components
105
- const TimelineHorizontal = React.forwardRef<
106
- HTMLDivElement,
107
- React.HTMLAttributes<HTMLDivElement>
108
- >(({ className, ...props }, ref) => (
109
- <div
110
- ref={ref}
111
- className={cn("relative flex overflow-x-auto py-8", className)}
112
- {...props}
113
- />
114
- ))
115
- TimelineHorizontal.displayName = "TimelineHorizontal"
116
-
117
- const TimelineHorizontalItem = React.forwardRef<
118
- HTMLDivElement,
119
- React.HTMLAttributes<HTMLDivElement>
120
- >(({ className, ...props }, ref) => (
121
- <div
122
- ref={ref}
123
- className={cn("flex-shrink-0 w-64 relative", className)}
124
- {...props}
125
- />
126
- ))
127
- TimelineHorizontalItem.displayName = "TimelineHorizontalItem"
128
-
129
- // Gantt-style Timeline Components (Airtable-like)
130
- const TimelineGantt = React.forwardRef<
131
- HTMLDivElement,
132
- React.HTMLAttributes<HTMLDivElement>
133
- >(({ className, ...props }, ref) => (
134
- <div
135
- ref={ref}
136
- className={cn("relative w-full border rounded-lg overflow-hidden", className)}
137
- {...props}
138
- />
139
- ))
140
- TimelineGantt.displayName = "TimelineGantt"
141
-
142
- const TimelineGanttHeader = React.forwardRef<
143
- HTMLDivElement,
144
- React.HTMLAttributes<HTMLDivElement>
145
- >(({ className, ...props }, ref) => (
146
- <div
147
- ref={ref}
148
- className={cn("flex border-b bg-gray-50", className)}
149
- {...props}
150
- />
151
- ))
152
- TimelineGanttHeader.displayName = "TimelineGanttHeader"
153
-
154
- const TimelineGanttRowLabels = React.forwardRef<
155
- HTMLDivElement,
156
- React.HTMLAttributes<HTMLDivElement>
157
- >(({ className, ...props }, ref) => (
158
- <div
159
- ref={ref}
160
- className={cn("w-48 border-r bg-white", className)}
161
- {...props}
162
- />
163
- ))
164
- TimelineGanttRowLabels.displayName = "TimelineGanttRowLabels"
165
-
166
- const TimelineGanttGrid = React.forwardRef<
167
- HTMLDivElement,
168
- React.HTMLAttributes<HTMLDivElement>
169
- >(({ className, ...props }, ref) => (
170
- <div
171
- ref={ref}
172
- className={cn("flex-1 overflow-x-auto", className)}
173
- {...props}
174
- />
175
- ))
176
- TimelineGanttGrid.displayName = "TimelineGanttGrid"
177
-
178
- const TimelineGanttRow = React.forwardRef<
179
- HTMLDivElement,
180
- React.HTMLAttributes<HTMLDivElement>
181
- >(({ className, ...props }, ref) => (
182
- <div
183
- ref={ref}
184
- className={cn("flex items-center border-b min-h-12", className)}
185
- {...props}
186
- />
187
- ))
188
- TimelineGanttRow.displayName = "TimelineGanttRow"
189
-
190
- const TimelineGanttLabel = React.forwardRef<
191
- HTMLDivElement,
192
- React.HTMLAttributes<HTMLDivElement>
193
- >(({ className, ...props }, ref) => (
194
- <div
195
- ref={ref}
196
- className={cn("px-4 py-2 font-medium text-sm truncate", className)}
197
- {...props}
198
- />
199
- ))
200
- TimelineGanttLabel.displayName = "TimelineGanttLabel"
201
-
202
- const TimelineGanttBar = React.forwardRef<
203
- HTMLDivElement,
204
- React.HTMLAttributes<HTMLDivElement> & {
205
- start?: number
206
- width?: number
207
- variant?: "default" | "success" | "warning" | "danger" | "info"
208
- }
209
- >(({ className, start = 0, width = 100, variant = "default", ...props }, ref) => {
210
- const variantClasses = {
211
- default: "bg-blue-500 hover:bg-blue-600",
212
- success: "bg-green-500 hover:bg-green-600",
213
- warning: "bg-yellow-500 hover:bg-yellow-600",
214
- danger: "bg-red-500 hover:bg-red-600",
215
- info: "bg-purple-500 hover:bg-purple-600",
216
- }
217
-
218
- return (
219
- <div
220
- ref={ref}
221
- className={cn(
222
- "absolute h-8 rounded-md transition-colors cursor-pointer",
223
- variantClasses[variant],
224
- className
225
- )}
226
- style={{
227
- left: `${start}%`,
228
- width: `${width}%`,
229
- }}
230
- {...props}
231
- />
232
- )
233
- })
234
- TimelineGanttBar.displayName = "TimelineGanttBar"
235
-
236
- const TimelineGanttBarContent = React.forwardRef<
237
- HTMLDivElement,
238
- React.HTMLAttributes<HTMLDivElement>
239
- >(({ className, ...props }, ref) => (
240
- <div
241
- ref={ref}
242
- className={cn("px-2 py-1 text-white text-xs font-medium truncate", className)}
243
- {...props}
244
- />
245
- ))
246
- TimelineGanttBarContent.displayName = "TimelineGanttBarContent"
247
-
248
- export {
249
- Timeline,
250
- TimelineItem,
251
- TimelineMarker,
252
- TimelineContent,
253
- TimelineTitle,
254
- TimelineTime,
255
- TimelineDescription,
256
- TimelineHorizontal,
257
- TimelineHorizontalItem,
258
- TimelineGantt,
259
- TimelineGanttHeader,
260
- TimelineGanttRowLabels,
261
- TimelineGanttGrid,
262
- TimelineGanttRow,
263
- TimelineGanttLabel,
264
- TimelineGanttBar,
265
- TimelineGanttBarContent,
266
- }
@@ -1,75 +0,0 @@
1
- import tailwindcssAnimate from "tailwindcss-animate"
2
-
3
- /** @type {import('tailwindcss').Config} */
4
- export default {
5
- darkMode: ["class"],
6
- content: [
7
- './src/**/*.{ts,tsx}',
8
- ],
9
- theme: {
10
- container: {
11
- center: true,
12
- padding: "2rem",
13
- screens: {
14
- "2xl": "1400px",
15
- },
16
- },
17
- extend: {
18
- colors: {
19
- border: "hsl(var(--border))",
20
- input: "hsl(var(--input))",
21
- ring: "hsl(var(--ring))",
22
- background: "hsl(var(--background))",
23
- foreground: "hsl(var(--foreground))",
24
- primary: {
25
- DEFAULT: "hsl(var(--primary))",
26
- foreground: "hsl(var(--primary-foreground))",
27
- },
28
- secondary: {
29
- DEFAULT: "hsl(var(--secondary))",
30
- foreground: "hsl(var(--secondary-foreground))",
31
- },
32
- destructive: {
33
- DEFAULT: "hsl(var(--destructive))",
34
- foreground: "hsl(var(--destructive-foreground))",
35
- },
36
- muted: {
37
- DEFAULT: "hsl(var(--muted))",
38
- foreground: "hsl(var(--muted-foreground))",
39
- },
40
- accent: {
41
- DEFAULT: "hsl(var(--accent))",
42
- foreground: "hsl(var(--accent-foreground))",
43
- },
44
- popover: {
45
- DEFAULT: "hsl(var(--popover))",
46
- foreground: "hsl(var(--popover-foreground))",
47
- },
48
- card: {
49
- DEFAULT: "hsl(var(--card))",
50
- foreground: "hsl(var(--card-foreground))",
51
- },
52
- },
53
- borderRadius: {
54
- lg: "var(--radius)",
55
- md: "calc(var(--radius) - 2px)",
56
- sm: "calc(var(--radius) - 4px)",
57
- },
58
- keyframes: {
59
- "accordion-down": {
60
- from: { height: 0 },
61
- to: { height: "var(--radix-accordion-content-height)" },
62
- },
63
- "accordion-up": {
64
- from: { height: "var(--radix-accordion-content-height)" },
65
- to: { height: 0 },
66
- },
67
- },
68
- animation: {
69
- "accordion-down": "accordion-down 0.2s ease-out",
70
- "accordion-up": "accordion-up 0.2s ease-out",
71
- },
72
- },
73
- },
74
- plugins: [tailwindcssAnimate],
75
- }