@gv-tech/design-system 2.5.0 → 2.5.2

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 (440) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +5 -2
  3. package/.agent/skills/dogfood-components/SKILL.md +0 -34
  4. package/.agent/skills/maintain-component/SKILL.md +0 -77
  5. package/.agent/workflows/native-playground.md +0 -93
  6. package/.github/CODEOWNERS +0 -2
  7. package/.github/CONTRIBUTING.md +0 -42
  8. package/.github/FUNDING.yml +0 -4
  9. package/.github/PULL_REQUEST_TEMPLATE/build.md +0 -5
  10. package/.github/PULL_REQUEST_TEMPLATE/standard.md +0 -3
  11. package/.github/RELEASING.md +0 -37
  12. package/.github/copilot-instructions.md +0 -61
  13. package/.github/workflows/ci.yml +0 -91
  14. package/.github/workflows/codeql-analysis.yml +0 -34
  15. package/.github/workflows/release-please.yml +0 -79
  16. package/.husky/pre-commit +0 -1
  17. package/.prettierignore +0 -3
  18. package/.release-please-manifest.json +0 -9
  19. package/.tool-versions +0 -1
  20. package/.vscode/launch.json +0 -22
  21. package/.vscode/mcp.json +0 -8
  22. package/.vscode/settings.json +0 -30
  23. package/.yarnrc.yml +0 -7
  24. package/SECURITY.md +0 -9
  25. package/apps/.gitkeep +0 -0
  26. package/apps/native-playground/CHANGELOG.md +0 -8
  27. package/apps/native-playground/app.json +0 -37
  28. package/apps/native-playground/assets/fonts/.gitkeep +0 -0
  29. package/apps/native-playground/assets/images/adaptive-icon.png +0 -0
  30. package/apps/native-playground/assets/images/favicon.png +0 -0
  31. package/apps/native-playground/assets/images/icon.png +0 -0
  32. package/apps/native-playground/assets/images/splash-icon.png +0 -0
  33. package/apps/native-playground/babel.config.js +0 -6
  34. package/apps/native-playground/eas.json +0 -25
  35. package/apps/native-playground/index.js +0 -8
  36. package/apps/native-playground/metro.config.js +0 -26
  37. package/apps/native-playground/nativewind-env.d.ts +0 -1
  38. package/apps/native-playground/package.json +0 -23
  39. package/apps/native-playground/project.json +0 -15
  40. package/apps/native-playground/src/app/App.tsx +0 -842
  41. package/apps/native-playground/src/global.css +0 -49
  42. package/apps/native-playground/tailwind.config.js +0 -49
  43. package/apps/native-playground/tsconfig.app.json +0 -24
  44. package/apps/native-playground/tsconfig.json +0 -23
  45. package/apps/native-playground/tsconfig.spec.json +0 -24
  46. package/apps/playground-web/CHANGELOG.md +0 -8
  47. package/apps/playground-web/index.html +0 -13
  48. package/apps/playground-web/package.json +0 -31
  49. package/apps/playground-web/public/favicon.png +0 -0
  50. package/apps/playground-web/public/index.demo.html +0 -40
  51. package/apps/playground-web/public/logo192.png +0 -0
  52. package/apps/playground-web/public/logo512.png +0 -0
  53. package/apps/playground-web/public/manifest.json +0 -25
  54. package/apps/playground-web/public/robots.txt +0 -2
  55. package/apps/playground-web/src/App.tsx +0 -179
  56. package/apps/playground-web/src/components/docs/CodeBlock.tsx +0 -34
  57. package/apps/playground-web/src/components/docs/CombinedDocsLayout.tsx +0 -103
  58. package/apps/playground-web/src/components/docs/ComponentShowcase.tsx +0 -96
  59. package/apps/playground-web/src/components/docs/ErrorBoundary.tsx +0 -55
  60. package/apps/playground-web/src/components/docs/Footer.tsx +0 -146
  61. package/apps/playground-web/src/components/docs/PropsTable.tsx +0 -43
  62. package/apps/playground-web/src/components/docs/Search.tsx +0 -75
  63. package/apps/playground-web/src/components/docs/Sidebar.tsx +0 -77
  64. package/apps/playground-web/src/components/docs/ThemeToggle.tsx +0 -19
  65. package/apps/playground-web/src/components/docs/index.ts +0 -9
  66. package/apps/playground-web/src/config/docs.ts +0 -293
  67. package/apps/playground-web/src/globals.css +0 -148
  68. package/apps/playground-web/src/hooks/useDocMetadata.ts +0 -34
  69. package/apps/playground-web/src/hooks/usePackageManager.tsx +0 -42
  70. package/apps/playground-web/src/lib/react-native-shim.js +0 -34
  71. package/apps/playground-web/src/main.tsx +0 -11
  72. package/apps/playground-web/src/pages/index.ts +0 -4
  73. package/apps/playground-web/src/pages/native/AccordionDocs.tsx +0 -85
  74. package/apps/playground-web/src/pages/native/AlertDialogDocs.tsx +0 -128
  75. package/apps/playground-web/src/pages/native/AlertDocs.tsx +0 -89
  76. package/apps/playground-web/src/pages/native/AspectRatioDocs.tsx +0 -52
  77. package/apps/playground-web/src/pages/native/AvatarDocs.tsx +0 -92
  78. package/apps/playground-web/src/pages/native/BadgeDocs.tsx +0 -63
  79. package/apps/playground-web/src/pages/native/BreadcrumbDocs.tsx +0 -71
  80. package/apps/playground-web/src/pages/native/ButtonDocs.tsx +0 -103
  81. package/apps/playground-web/src/pages/native/CalendarDocs.tsx +0 -74
  82. package/apps/playground-web/src/pages/native/CardDocs.tsx +0 -75
  83. package/apps/playground-web/src/pages/native/CarouselDocs.tsx +0 -113
  84. package/apps/playground-web/src/pages/native/ChartDocs.tsx +0 -115
  85. package/apps/playground-web/src/pages/native/CheckboxDocs.tsx +0 -38
  86. package/apps/playground-web/src/pages/native/CollapsibleDocs.tsx +0 -89
  87. package/apps/playground-web/src/pages/native/CommandDocs.tsx +0 -170
  88. package/apps/playground-web/src/pages/native/ContextMenuDocs.tsx +0 -121
  89. package/apps/playground-web/src/pages/native/DialogDocs.tsx +0 -132
  90. package/apps/playground-web/src/pages/native/DrawerDocs.tsx +0 -158
  91. package/apps/playground-web/src/pages/native/DropdownMenuDocs.tsx +0 -168
  92. package/apps/playground-web/src/pages/native/HoverCardDocs.tsx +0 -119
  93. package/apps/playground-web/src/pages/native/InputDocs.tsx +0 -86
  94. package/apps/playground-web/src/pages/native/LabelDocs.tsx +0 -55
  95. package/apps/playground-web/src/pages/native/MenubarDocs.tsx +0 -197
  96. package/apps/playground-web/src/pages/native/NavigationMenuDocs.tsx +0 -190
  97. package/apps/playground-web/src/pages/native/PaginationDocs.tsx +0 -70
  98. package/apps/playground-web/src/pages/native/PopoverDocs.tsx +0 -156
  99. package/apps/playground-web/src/pages/native/ProgressDocs.tsx +0 -61
  100. package/apps/playground-web/src/pages/native/RadioGroupDocs.tsx +0 -125
  101. package/apps/playground-web/src/pages/native/ResizableDocs.tsx +0 -118
  102. package/apps/playground-web/src/pages/native/ScrollAreaDocs.tsx +0 -92
  103. package/apps/playground-web/src/pages/native/SearchDocs.tsx +0 -150
  104. package/apps/playground-web/src/pages/native/SelectDocs.tsx +0 -141
  105. package/apps/playground-web/src/pages/native/SeparatorDocs.tsx +0 -72
  106. package/apps/playground-web/src/pages/native/SheetDocs.tsx +0 -140
  107. package/apps/playground-web/src/pages/native/SkeletonDocs.tsx +0 -44
  108. package/apps/playground-web/src/pages/native/SliderDocs.tsx +0 -118
  109. package/apps/playground-web/src/pages/native/SonnerDocs.tsx +0 -111
  110. package/apps/playground-web/src/pages/native/SwitchDocs.tsx +0 -87
  111. package/apps/playground-web/src/pages/native/TableDocs.tsx +0 -67
  112. package/apps/playground-web/src/pages/native/TabsDocs.tsx +0 -175
  113. package/apps/playground-web/src/pages/native/TextareaDocs.tsx +0 -61
  114. package/apps/playground-web/src/pages/native/ThemeToggleDocs.tsx +0 -288
  115. package/apps/playground-web/src/pages/native/ToastDocs.tsx +0 -124
  116. package/apps/playground-web/src/pages/native/ToggleDocs.tsx +0 -81
  117. package/apps/playground-web/src/pages/native/ToggleGroupDocs.tsx +0 -128
  118. package/apps/playground-web/src/pages/native/TooltipDocs.tsx +0 -140
  119. package/apps/playground-web/src/pages/native/index.ts +0 -47
  120. package/apps/playground-web/src/pages/shared/ColorTokensDocs.tsx +0 -234
  121. package/apps/playground-web/src/pages/shared/GettingStarted.tsx +0 -413
  122. package/apps/playground-web/src/pages/web/AccordionDocs.tsx +0 -194
  123. package/apps/playground-web/src/pages/web/AlertDialogDocs.tsx +0 -157
  124. package/apps/playground-web/src/pages/web/AlertDocs.tsx +0 -110
  125. package/apps/playground-web/src/pages/web/AspectRatioDocs.tsx +0 -94
  126. package/apps/playground-web/src/pages/web/AvatarDocs.tsx +0 -81
  127. package/apps/playground-web/src/pages/web/BadgeDocs.tsx +0 -66
  128. package/apps/playground-web/src/pages/web/BreadcrumbDocs.tsx +0 -93
  129. package/apps/playground-web/src/pages/web/ButtonDocs.tsx +0 -129
  130. package/apps/playground-web/src/pages/web/CalendarDocs.tsx +0 -78
  131. package/apps/playground-web/src/pages/web/CardDocs.tsx +0 -115
  132. package/apps/playground-web/src/pages/web/CarouselDocs.tsx +0 -176
  133. package/apps/playground-web/src/pages/web/ChartDocs.tsx +0 -151
  134. package/apps/playground-web/src/pages/web/CheckboxDocs.tsx +0 -95
  135. package/apps/playground-web/src/pages/web/CollapsibleDocs.tsx +0 -111
  136. package/apps/playground-web/src/pages/web/CommandDocs.tsx +0 -219
  137. package/apps/playground-web/src/pages/web/ContextMenuDocs.tsx +0 -164
  138. package/apps/playground-web/src/pages/web/DialogDocs.tsx +0 -175
  139. package/apps/playground-web/src/pages/web/DrawerDocs.tsx +0 -283
  140. package/apps/playground-web/src/pages/web/DropdownMenuDocs.tsx +0 -319
  141. package/apps/playground-web/src/pages/web/FormDocs.tsx +0 -175
  142. package/apps/playground-web/src/pages/web/HoverCardDocs.tsx +0 -151
  143. package/apps/playground-web/src/pages/web/InputDocs.tsx +0 -118
  144. package/apps/playground-web/src/pages/web/LabelDocs.tsx +0 -59
  145. package/apps/playground-web/src/pages/web/MenubarDocs.tsx +0 -296
  146. package/apps/playground-web/src/pages/web/NavigationMenuDocs.tsx +0 -263
  147. package/apps/playground-web/src/pages/web/PaginationDocs.tsx +0 -102
  148. package/apps/playground-web/src/pages/web/PopoverDocs.tsx +0 -189
  149. package/apps/playground-web/src/pages/web/ProgressDocs.tsx +0 -70
  150. package/apps/playground-web/src/pages/web/RadioGroupDocs.tsx +0 -137
  151. package/apps/playground-web/src/pages/web/ResizableDocs.tsx +0 -143
  152. package/apps/playground-web/src/pages/web/ScrollAreaDocs.tsx +0 -107
  153. package/apps/playground-web/src/pages/web/SearchDocs.tsx +0 -203
  154. package/apps/playground-web/src/pages/web/SelectDocs.tsx +0 -164
  155. package/apps/playground-web/src/pages/web/SeparatorDocs.tsx +0 -88
  156. package/apps/playground-web/src/pages/web/SheetDocs.tsx +0 -186
  157. package/apps/playground-web/src/pages/web/SkeletonDocs.tsx +0 -53
  158. package/apps/playground-web/src/pages/web/SliderDocs.tsx +0 -119
  159. package/apps/playground-web/src/pages/web/SonnerDocs.tsx +0 -126
  160. package/apps/playground-web/src/pages/web/SwitchDocs.tsx +0 -91
  161. package/apps/playground-web/src/pages/web/TableDocs.tsx +0 -148
  162. package/apps/playground-web/src/pages/web/TabsDocs.tsx +0 -241
  163. package/apps/playground-web/src/pages/web/TextareaDocs.tsx +0 -65
  164. package/apps/playground-web/src/pages/web/ThemeToggleDocs.tsx +0 -303
  165. package/apps/playground-web/src/pages/web/ToastDocs.tsx +0 -149
  166. package/apps/playground-web/src/pages/web/ToggleDocs.tsx +0 -85
  167. package/apps/playground-web/src/pages/web/ToggleGroupDocs.tsx +0 -140
  168. package/apps/playground-web/src/pages/web/TooltipDocs.tsx +0 -150
  169. package/apps/playground-web/src/pages/web/index.ts +0 -47
  170. package/apps/playground-web/src/routes/doc-routes.tsx +0 -363
  171. package/apps/playground-web/tailwind.config.js +0 -47
  172. package/apps/playground-web/tsconfig.app.json +0 -16
  173. package/apps/playground-web/tsconfig.json +0 -4
  174. package/apps/playground-web/tsconfig.node.json +0 -13
  175. package/apps/playground-web/vite.config.ts +0 -41
  176. package/components.json +0 -20
  177. package/docs/architecture-pivot.md +0 -165
  178. package/docs/native-setup-decision.md +0 -57
  179. package/docs/phase-1-tracker.md +0 -144
  180. package/docs/release-tooling-evaluation.md +0 -67
  181. package/docs/universal-implementation.md +0 -195
  182. package/docs/update-plan.md +0 -268
  183. package/eslint.config.mjs +0 -13
  184. package/nx.json +0 -50
  185. package/packages/.gitkeep +0 -0
  186. package/packages/design-tokens/CHANGELOG.md +0 -8
  187. package/packages/design-tokens/package.json +0 -20
  188. package/packages/design-tokens/src/index.ts +0 -35
  189. package/packages/design-tokens/src/palette.ts +0 -36
  190. package/packages/design-tokens/src/radii.ts +0 -26
  191. package/packages/design-tokens/src/shadows.ts +0 -16
  192. package/packages/design-tokens/src/spacing.ts +0 -33
  193. package/packages/design-tokens/src/theme.ts +0 -54
  194. package/packages/design-tokens/src/typography.ts +0 -36
  195. package/packages/design-tokens/tsconfig.json +0 -17
  196. package/packages/ui-core/CHANGELOG.md +0 -8
  197. package/packages/ui-core/package.json +0 -40
  198. package/packages/ui-core/src/contracts/accordion.ts +0 -23
  199. package/packages/ui-core/src/contracts/alert-dialog.ts +0 -48
  200. package/packages/ui-core/src/contracts/alert.ts +0 -17
  201. package/packages/ui-core/src/contracts/aspect-ratio.ts +0 -7
  202. package/packages/ui-core/src/contracts/avatar.ts +0 -17
  203. package/packages/ui-core/src/contracts/badge.ts +0 -7
  204. package/packages/ui-core/src/contracts/breadcrumb.ts +0 -37
  205. package/packages/ui-core/src/contracts/button.ts +0 -17
  206. package/packages/ui-core/src/contracts/calendar.ts +0 -4
  207. package/packages/ui-core/src/contracts/card.ts +0 -11
  208. package/packages/ui-core/src/contracts/carousel.ts +0 -29
  209. package/packages/ui-core/src/contracts/chart.ts +0 -31
  210. package/packages/ui-core/src/contracts/checkbox.ts +0 -11
  211. package/packages/ui-core/src/contracts/collapsible.ts +0 -21
  212. package/packages/ui-core/src/contracts/command.ts +0 -43
  213. package/packages/ui-core/src/contracts/context-menu.ts +0 -78
  214. package/packages/ui-core/src/contracts/dialog.ts +0 -29
  215. package/packages/ui-core/src/contracts/drawer.ts +0 -39
  216. package/packages/ui-core/src/contracts/dropdown-menu.ts +0 -87
  217. package/packages/ui-core/src/contracts/form.ts +0 -29
  218. package/packages/ui-core/src/contracts/hover-card.ts +0 -21
  219. package/packages/ui-core/src/contracts/input.ts +0 -11
  220. package/packages/ui-core/src/contracts/label.ts +0 -7
  221. package/packages/ui-core/src/contracts/menubar.ts +0 -86
  222. package/packages/ui-core/src/contracts/navigation-menu.ts +0 -55
  223. package/packages/ui-core/src/contracts/pagination.ts +0 -38
  224. package/packages/ui-core/src/contracts/popover.ts +0 -28
  225. package/packages/ui-core/src/contracts/progress.ts +0 -4
  226. package/packages/ui-core/src/contracts/radio.ts +0 -16
  227. package/packages/ui-core/src/contracts/resizable.ts +0 -36
  228. package/packages/ui-core/src/contracts/scroll-area.ts +0 -15
  229. package/packages/ui-core/src/contracts/search.ts +0 -13
  230. package/packages/ui-core/src/contracts/select.ts +0 -64
  231. package/packages/ui-core/src/contracts/separator.ts +0 -5
  232. package/packages/ui-core/src/contracts/sheet.ts +0 -58
  233. package/packages/ui-core/src/contracts/skeleton.ts +0 -6
  234. package/packages/ui-core/src/contracts/slider.ts +0 -15
  235. package/packages/ui-core/src/contracts/sonner.ts +0 -15
  236. package/packages/ui-core/src/contracts/switch.ts +0 -11
  237. package/packages/ui-core/src/contracts/table.ts +0 -41
  238. package/packages/ui-core/src/contracts/tabs.ts +0 -31
  239. package/packages/ui-core/src/contracts/text.ts +0 -12
  240. package/packages/ui-core/src/contracts/textarea.ts +0 -7
  241. package/packages/ui-core/src/contracts/theme-provider.ts +0 -14
  242. package/packages/ui-core/src/contracts/theme-toggle.ts +0 -15
  243. package/packages/ui-core/src/contracts/toast.ts +0 -15
  244. package/packages/ui-core/src/contracts/toaster.ts +0 -3
  245. package/packages/ui-core/src/contracts/toggle-group.ts +0 -23
  246. package/packages/ui-core/src/contracts/toggle.ts +0 -49
  247. package/packages/ui-core/src/contracts/tooltip.ts +0 -28
  248. package/packages/ui-core/src/index.ts +0 -327
  249. package/packages/ui-core/tsconfig.json +0 -18
  250. package/packages/ui-native/CHANGELOG.md +0 -8
  251. package/packages/ui-native/package.json +0 -76
  252. package/packages/ui-native/src/accordion.tsx +0 -93
  253. package/packages/ui-native/src/alert-dialog.tsx +0 -123
  254. package/packages/ui-native/src/alert.tsx +0 -50
  255. package/packages/ui-native/src/aspect-ratio.tsx +0 -9
  256. package/packages/ui-native/src/avatar.tsx +0 -38
  257. package/packages/ui-native/src/badge.tsx +0 -51
  258. package/packages/ui-native/src/breadcrumb.tsx +0 -9
  259. package/packages/ui-native/src/button.test.tsx +0 -27
  260. package/packages/ui-native/src/button.tsx +0 -75
  261. package/packages/ui-native/src/calendar.tsx +0 -9
  262. package/packages/ui-native/src/card.test.tsx +0 -33
  263. package/packages/ui-native/src/card.tsx +0 -56
  264. package/packages/ui-native/src/carousel.tsx +0 -9
  265. package/packages/ui-native/src/chart.tsx +0 -9
  266. package/packages/ui-native/src/checkbox.test.tsx +0 -58
  267. package/packages/ui-native/src/checkbox.tsx +0 -31
  268. package/packages/ui-native/src/collapsible.test.tsx +0 -50
  269. package/packages/ui-native/src/collapsible.tsx +0 -15
  270. package/packages/ui-native/src/command.tsx +0 -9
  271. package/packages/ui-native/src/context-menu.tsx +0 -9
  272. package/packages/ui-native/src/dialog.test.tsx +0 -91
  273. package/packages/ui-native/src/dialog.tsx +0 -121
  274. package/packages/ui-native/src/drawer.tsx +0 -9
  275. package/packages/ui-native/src/dropdown-menu.tsx +0 -9
  276. package/packages/ui-native/src/form.tsx +0 -9
  277. package/packages/ui-native/src/hover-card.tsx +0 -9
  278. package/packages/ui-native/src/index.ts +0 -209
  279. package/packages/ui-native/src/input.test.tsx +0 -27
  280. package/packages/ui-native/src/input.tsx +0 -27
  281. package/packages/ui-native/src/label.tsx +0 -29
  282. package/packages/ui-native/src/lib/render-native.tsx +0 -17
  283. package/packages/ui-native/src/lib/utils.ts +0 -6
  284. package/packages/ui-native/src/menubar.tsx +0 -9
  285. package/packages/ui-native/src/nativewind-env.d.ts +0 -1
  286. package/packages/ui-native/src/navigation-menu.tsx +0 -9
  287. package/packages/ui-native/src/pagination.tsx +0 -9
  288. package/packages/ui-native/src/popover.tsx +0 -9
  289. package/packages/ui-native/src/progress.tsx +0 -9
  290. package/packages/ui-native/src/radio-group.test.tsx +0 -77
  291. package/packages/ui-native/src/radio-group.tsx +0 -42
  292. package/packages/ui-native/src/resizable.tsx +0 -25
  293. package/packages/ui-native/src/scroll-area.tsx +0 -9
  294. package/packages/ui-native/src/search.tsx +0 -17
  295. package/packages/ui-native/src/select.tsx +0 -229
  296. package/packages/ui-native/src/separator.tsx +0 -20
  297. package/packages/ui-native/src/sheet.test.tsx +0 -93
  298. package/packages/ui-native/src/sheet.tsx +0 -127
  299. package/packages/ui-native/src/skeleton.test.tsx +0 -29
  300. package/packages/ui-native/src/skeleton.tsx +0 -31
  301. package/packages/ui-native/src/slider.tsx +0 -9
  302. package/packages/ui-native/src/sonner.tsx +0 -9
  303. package/packages/ui-native/src/switch.tsx +0 -34
  304. package/packages/ui-native/src/table.tsx +0 -73
  305. package/packages/ui-native/src/tabs.tsx +0 -74
  306. package/packages/ui-native/src/text.test.tsx +0 -24
  307. package/packages/ui-native/src/text.tsx +0 -43
  308. package/packages/ui-native/src/textarea.test.tsx +0 -27
  309. package/packages/ui-native/src/textarea.tsx +0 -29
  310. package/packages/ui-native/src/theme-provider.tsx +0 -6
  311. package/packages/ui-native/src/theme-toggle.tsx +0 -11
  312. package/packages/ui-native/src/toast.test.tsx +0 -61
  313. package/packages/ui-native/src/toast.tsx +0 -88
  314. package/packages/ui-native/src/toaster.tsx +0 -9
  315. package/packages/ui-native/src/toggle-group.tsx +0 -78
  316. package/packages/ui-native/src/toggle.tsx +0 -35
  317. package/packages/ui-native/src/tooltip.tsx +0 -44
  318. package/packages/ui-native/tsconfig.json +0 -23
  319. package/packages/ui-native/vite.config.ts +0 -17
  320. package/packages/ui-web/CHANGELOG.md +0 -8
  321. package/packages/ui-web/package.json +0 -84
  322. package/packages/ui-web/src/accordion.test.tsx +0 -86
  323. package/packages/ui-web/src/accordion.tsx +0 -58
  324. package/packages/ui-web/src/alert-dialog.test.tsx +0 -91
  325. package/packages/ui-web/src/alert-dialog.tsx +0 -121
  326. package/packages/ui-web/src/alert.test.tsx +0 -47
  327. package/packages/ui-web/src/alert.tsx +0 -49
  328. package/packages/ui-web/src/aspect-ratio.test.tsx +0 -34
  329. package/packages/ui-web/src/aspect-ratio.tsx +0 -7
  330. package/packages/ui-web/src/avatar.test.tsx +0 -33
  331. package/packages/ui-web/src/avatar.tsx +0 -40
  332. package/packages/ui-web/src/badge.test.tsx +0 -24
  333. package/packages/ui-web/src/badge.tsx +0 -34
  334. package/packages/ui-web/src/breadcrumb.tsx +0 -105
  335. package/packages/ui-web/src/button.test.tsx +0 -62
  336. package/packages/ui-web/src/button.tsx +0 -47
  337. package/packages/ui-web/src/calendar.test.tsx +0 -23
  338. package/packages/ui-web/src/calendar.tsx +0 -163
  339. package/packages/ui-web/src/card.test.tsx +0 -35
  340. package/packages/ui-web/src/card.tsx +0 -46
  341. package/packages/ui-web/src/carousel.test.tsx +0 -37
  342. package/packages/ui-web/src/carousel.tsx +0 -234
  343. package/packages/ui-web/src/chart.test.tsx +0 -62
  344. package/packages/ui-web/src/chart.tsx +0 -296
  345. package/packages/ui-web/src/checkbox.test.tsx +0 -30
  346. package/packages/ui-web/src/checkbox.tsx +0 -31
  347. package/packages/ui-web/src/collapsible.test.tsx +0 -51
  348. package/packages/ui-web/src/collapsible.tsx +0 -15
  349. package/packages/ui-web/src/command.test.tsx +0 -79
  350. package/packages/ui-web/src/command.tsx +0 -154
  351. package/packages/ui-web/src/context-menu.test.tsx +0 -37
  352. package/packages/ui-web/src/context-menu.tsx +0 -208
  353. package/packages/ui-web/src/dialog.test.tsx +0 -66
  354. package/packages/ui-web/src/dialog.tsx +0 -95
  355. package/packages/ui-web/src/drawer.test.tsx +0 -68
  356. package/packages/ui-web/src/drawer.tsx +0 -110
  357. package/packages/ui-web/src/dropdown-menu.test.tsx +0 -93
  358. package/packages/ui-web/src/dropdown-menu.tsx +0 -212
  359. package/packages/ui-web/src/form.test.tsx +0 -84
  360. package/packages/ui-web/src/form.tsx +0 -160
  361. package/packages/ui-web/src/hooks/use-theme.ts +0 -15
  362. package/packages/ui-web/src/hooks/use-toast.ts +0 -189
  363. package/packages/ui-web/src/hover-card.test.tsx +0 -48
  364. package/packages/ui-web/src/hover-card.tsx +0 -35
  365. package/packages/ui-web/src/index.ts +0 -474
  366. package/packages/ui-web/src/input.test.tsx +0 -33
  367. package/packages/ui-web/src/input.tsx +0 -23
  368. package/packages/ui-web/src/label.test.tsx +0 -27
  369. package/packages/ui-web/src/label.tsx +0 -21
  370. package/packages/ui-web/src/lib/utils.ts +0 -6
  371. package/packages/ui-web/src/menubar.test.tsx +0 -92
  372. package/packages/ui-web/src/menubar.tsx +0 -244
  373. package/packages/ui-web/src/navigation-menu.test.tsx +0 -53
  374. package/packages/ui-web/src/navigation-menu.tsx +0 -143
  375. package/packages/ui-web/src/pagination.test.tsx +0 -57
  376. package/packages/ui-web/src/pagination.tsx +0 -107
  377. package/packages/ui-web/src/popover.test.tsx +0 -31
  378. package/packages/ui-web/src/popover.tsx +0 -45
  379. package/packages/ui-web/src/progress.test.tsx +0 -18
  380. package/packages/ui-web/src/progress.tsx +0 -28
  381. package/packages/ui-web/src/radio-group.test.tsx +0 -39
  382. package/packages/ui-web/src/radio-group.tsx +0 -41
  383. package/packages/ui-web/src/resizable.test.tsx +0 -23
  384. package/packages/ui-web/src/resizable.tsx +0 -59
  385. package/packages/ui-web/src/scroll-area.test.tsx +0 -15
  386. package/packages/ui-web/src/scroll-area.tsx +0 -42
  387. package/packages/ui-web/src/search.test.tsx +0 -81
  388. package/packages/ui-web/src/search.tsx +0 -87
  389. package/packages/ui-web/src/select.test.tsx +0 -42
  390. package/packages/ui-web/src/select.tsx +0 -169
  391. package/packages/ui-web/src/separator.test.tsx +0 -16
  392. package/packages/ui-web/src/separator.tsx +0 -24
  393. package/packages/ui-web/src/setupTests.ts +0 -114
  394. package/packages/ui-web/src/sheet.test.tsx +0 -48
  395. package/packages/ui-web/src/sheet.tsx +0 -136
  396. package/packages/ui-web/src/skeleton.test.tsx +0 -13
  397. package/packages/ui-web/src/skeleton.tsx +0 -10
  398. package/packages/ui-web/src/slider.test.tsx +0 -18
  399. package/packages/ui-web/src/slider.tsx +0 -27
  400. package/packages/ui-web/src/sonner.test.tsx +0 -13
  401. package/packages/ui-web/src/sonner.tsx +0 -32
  402. package/packages/ui-web/src/switch.test.tsx +0 -22
  403. package/packages/ui-web/src/switch.tsx +0 -31
  404. package/packages/ui-web/src/table.test.tsx +0 -29
  405. package/packages/ui-web/src/table.tsx +0 -104
  406. package/packages/ui-web/src/tabs.test.tsx +0 -43
  407. package/packages/ui-web/src/tabs.tsx +0 -62
  408. package/packages/ui-web/src/text.test.tsx +0 -34
  409. package/packages/ui-web/src/text.tsx +0 -55
  410. package/packages/ui-web/src/textarea.test.tsx +0 -21
  411. package/packages/ui-web/src/textarea.tsx +0 -25
  412. package/packages/ui-web/src/theme-provider.tsx +0 -15
  413. package/packages/ui-web/src/theme-toggle.test.tsx +0 -49
  414. package/packages/ui-web/src/theme-toggle.tsx +0 -92
  415. package/packages/ui-web/src/toast.test.tsx +0 -42
  416. package/packages/ui-web/src/toast.tsx +0 -111
  417. package/packages/ui-web/src/toaster.tsx +0 -27
  418. package/packages/ui-web/src/toggle-group.test.tsx +0 -40
  419. package/packages/ui-web/src/toggle-group.tsx +0 -55
  420. package/packages/ui-web/src/toggle.test.tsx +0 -21
  421. package/packages/ui-web/src/toggle.tsx +0 -24
  422. package/packages/ui-web/src/tooltip.tsx +0 -51
  423. package/packages/ui-web/tsconfig.json +0 -24
  424. package/packages/ui-web/vite.config.ts +0 -21
  425. package/postcss.config.mjs +0 -5
  426. package/release-please-config.json +0 -60
  427. package/scripts/build-registry.ts +0 -80
  428. package/scripts/sync-tokens.ts +0 -86
  429. package/scripts/validate.ts +0 -74
  430. package/src/globals.css +0 -146
  431. package/src/index.ts +0 -4
  432. package/src/setupTests.ts +0 -47
  433. package/src/types/nativewind.d.ts +0 -19
  434. package/tailwind.config.js +0 -48
  435. package/tsconfig.build.json +0 -22
  436. package/tsconfig.json +0 -30
  437. package/tsconfig.node.json +0 -11
  438. package/vite.config.ts +0 -106
  439. package/vitest.config.ts +0 -23
  440. package/wrangler.toml +0 -22
@@ -1,88 +0,0 @@
1
- import * as ToastPrimitive from '@rn-primitives/toast';
2
- import { X } from 'lucide-react-native';
3
- import * as React from 'react';
4
- import Animated, { FadeInUp, FadeOutDown, Layout } from 'react-native-reanimated';
5
-
6
- import { cn } from './lib/utils';
7
-
8
- // Toast for native doesn't use a Provider or Viewport in the same way as web.
9
- // We export fragments if they are needed for structural parity in shared components.
10
- const ToastProvider = ({ children }: { children: React.ReactNode }) => <>{children}</>;
11
- const ToastViewport = () => null;
12
-
13
- const Toast = React.forwardRef<
14
- React.ElementRef<typeof ToastPrimitive.Root>,
15
- React.ComponentPropsWithoutRef<typeof ToastPrimitive.Root> & { variant?: 'default' | 'destructive' }
16
- >(({ className, variant = 'default', ...props }, ref) => {
17
- return (
18
- <ToastPrimitive.Root
19
- ref={ref}
20
- className={cn(
21
- 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg',
22
- variant === 'default' ? 'border-border bg-background' : 'border-destructive bg-destructive',
23
- className,
24
- )}
25
- {...props}
26
- >
27
- <Animated.View entering={FadeInUp} exiting={FadeOutDown} layout={Layout} className="flex-row items-center w-full">
28
- {props.children}
29
- </Animated.View>
30
- </ToastPrimitive.Root>
31
- );
32
- });
33
- Toast.displayName = ToastPrimitive.Root.displayName;
34
-
35
- const ToastTitle = React.forwardRef<
36
- React.ElementRef<typeof ToastPrimitive.Title>,
37
- React.ComponentPropsWithoutRef<typeof ToastPrimitive.Title>
38
- >(({ className, ...props }, ref) => (
39
- <ToastPrimitive.Title ref={ref} className={cn('text-sm font-semibold text-foreground', className)} {...props} />
40
- ));
41
- ToastTitle.displayName = ToastPrimitive.Title.displayName;
42
-
43
- const ToastDescription = React.forwardRef<
44
- React.ElementRef<typeof ToastPrimitive.Description>,
45
- React.ComponentPropsWithoutRef<typeof ToastPrimitive.Description>
46
- >(({ className, ...props }, ref) => (
47
- <ToastPrimitive.Description
48
- ref={ref}
49
- className={cn('text-sm opacity-90 text-muted-foreground', className)}
50
- {...props}
51
- />
52
- ));
53
- ToastDescription.displayName = ToastPrimitive.Description.displayName;
54
-
55
- const ToastClose = React.forwardRef<
56
- React.ElementRef<typeof ToastPrimitive.Close>,
57
- React.ComponentPropsWithoutRef<typeof ToastPrimitive.Close>
58
- >(({ className, ...props }, ref) => (
59
- <ToastPrimitive.Close
60
- ref={ref}
61
- className={cn(
62
- 'absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100',
63
- className,
64
- )}
65
- {...props}
66
- >
67
- <X size={16} className="text-muted-foreground" />
68
- </ToastPrimitive.Close>
69
- ));
70
- ToastClose.displayName = ToastPrimitive.Close.displayName;
71
-
72
- const ToastAction = React.forwardRef<
73
- React.ElementRef<typeof ToastPrimitive.Action>,
74
- React.ComponentPropsWithoutRef<typeof ToastPrimitive.Action>
75
- >(({ className, ...props }, ref) => (
76
- <ToastPrimitive.Action
77
- ref={ref}
78
- className={cn(
79
- 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50',
80
- className,
81
- )}
82
- {...props}
83
- />
84
- ));
85
- ToastAction.displayName = ToastPrimitive.Action.displayName;
86
-
87
- export type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;
88
- export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport };
@@ -1,9 +0,0 @@
1
- import { Text, View } from 'react-native';
2
-
3
- export function Toaster() {
4
- return (
5
- <View>
6
- <Text>Toaster is not yet implemented for React Native</Text>
7
- </View>
8
- );
9
- }
@@ -1,78 +0,0 @@
1
- import { ToggleGroupBaseProps, ToggleGroupItemBaseProps } from '@gv-tech/ui-core';
2
- import * as ToggleGroupPrimitive from '@rn-primitives/toggle-group';
3
- import { type VariantProps } from 'class-variance-authority';
4
- import * as React from 'react';
5
-
6
- import { cn } from './lib/utils';
7
- import { TextClassContext } from './text';
8
- import { toggleVariants } from './toggle';
9
-
10
- const ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({
11
- size: 'default',
12
- variant: 'default',
13
- });
14
-
15
- export interface ToggleGroupProps
16
- extends
17
- Omit<React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>, 'value' | 'onValueChange' | 'type'>,
18
- ToggleGroupBaseProps {}
19
-
20
- const ToggleGroup = React.forwardRef<React.ElementRef<typeof ToggleGroupPrimitive.Root>, ToggleGroupProps>(
21
- ({ className, variant, size, children, type, value, onValueChange, ...props }, ref) => (
22
- <ToggleGroupPrimitive.Root
23
- ref={ref}
24
- {...({
25
- type,
26
- value,
27
- onValueChange,
28
- } as unknown as React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>)}
29
- className={cn('flex flex-row items-center justify-center gap-1', className)}
30
- {...props}
31
- >
32
- <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>
33
- </ToggleGroupPrimitive.Root>
34
- ),
35
- );
36
-
37
- ToggleGroup.displayName = ToggleGroupPrimitive.Root?.displayName || 'ToggleGroup';
38
-
39
- export interface ToggleGroupItemProps
40
- extends
41
- Omit<React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item>, 'children' | 'disabled'>,
42
- ToggleGroupItemBaseProps {}
43
-
44
- const ToggleGroupItem = React.forwardRef<React.ElementRef<typeof ToggleGroupPrimitive.Item>, ToggleGroupItemProps>(
45
- ({ className, children, variant, size, value, ...props }, ref) => {
46
- const context = React.useContext(ToggleGroupContext);
47
-
48
- return (
49
- <TextClassContext.Provider
50
- value={cn(
51
- 'text-sm native:text-base text-foreground font-medium',
52
- props.disabled && 'web:cursor-not-allowed opacity-50',
53
- value === '' && 'text-accent-foreground',
54
- className,
55
- )}
56
- >
57
- <ToggleGroupPrimitive.Item
58
- ref={ref}
59
- value={value}
60
- className={cn(
61
- toggleVariants({
62
- variant: context.variant || variant,
63
- size: context.size || size,
64
- }),
65
- className,
66
- )}
67
- {...props}
68
- >
69
- {children}
70
- </ToggleGroupPrimitive.Item>
71
- </TextClassContext.Provider>
72
- );
73
- },
74
- );
75
-
76
- ToggleGroupItem.displayName = ToggleGroupPrimitive.Item?.displayName || 'ToggleGroupItem';
77
-
78
- export { ToggleGroup, ToggleGroupItem };
@@ -1,35 +0,0 @@
1
- import { ToggleBaseProps, toggleVariants } from '@gv-tech/ui-core';
2
- import * as TogglePrimitive from '@rn-primitives/toggle';
3
- import * as React from 'react';
4
-
5
- import { cn } from './lib/utils';
6
- import { TextClassContext } from './text';
7
-
8
- export interface ToggleProps
9
- extends
10
- Omit<React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>, 'pressed' | 'onPressedChange' | 'children'>,
11
- ToggleBaseProps {}
12
-
13
- const Toggle = React.forwardRef<React.ElementRef<typeof TogglePrimitive.Root>, ToggleProps>(
14
- ({ className, variant, size, ...props }, ref) => (
15
- <TextClassContext.Provider
16
- value={cn(
17
- 'text-sm native:text-base text-foreground font-medium',
18
- props.pressed && 'text-accent-foreground',
19
- className,
20
- )}
21
- >
22
- <TogglePrimitive.Root
23
- ref={ref}
24
- className={cn(toggleVariants({ variant, size, className }))}
25
- {...props}
26
- pressed={props.pressed || false}
27
- onPressedChange={props.onPressedChange || (() => {})}
28
- />
29
- </TextClassContext.Provider>
30
- ),
31
- );
32
-
33
- Toggle.displayName = TogglePrimitive.Root?.displayName || 'Toggle';
34
-
35
- export { Toggle, toggleVariants };
@@ -1,44 +0,0 @@
1
- import * as TooltipPrimitive from '@rn-primitives/tooltip';
2
- import * as React from 'react';
3
- import { Platform, StyleSheet } from 'react-native';
4
- import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
5
-
6
- import { cn } from './lib/utils';
7
- import { Text } from './text';
8
-
9
- const Tooltip = TooltipPrimitive.Root;
10
-
11
- const TooltipTrigger = TooltipPrimitive.Trigger;
12
-
13
- const TooltipContent = React.forwardRef<
14
- React.ElementRef<typeof TooltipPrimitive.Content>,
15
- React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {
16
- portalHost?: string;
17
- }
18
- >(
19
- (
20
- { className, portalHost, ...props },
21
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
- _ref,
23
- ) => (
24
- <TooltipPrimitive.Portal hostName={portalHost}>
25
- <TooltipPrimitive.Overlay style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}>
26
- <Animated.View
27
- entering={FadeIn}
28
- exiting={FadeOut}
29
- className={cn(
30
- 'z-50 overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 shadow-md web:animate-in web:fade-in-0 web:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',
31
- className,
32
- )}
33
- >
34
- <Text className="text-sm text-popover-foreground native:text-base">{props.children}</Text>
35
- </Animated.View>
36
- </TooltipPrimitive.Overlay>
37
- </TooltipPrimitive.Portal>
38
- ),
39
- );
40
- TooltipContent.displayName = TooltipPrimitive.Content?.displayName || 'TooltipContent';
41
-
42
- const TooltipProvider = ({ children }: { children: React.ReactNode }) => <>{children}</>;
43
-
44
- export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -1,23 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "sourceMap": true,
9
- "strict": true,
10
- "esModuleInterop": true,
11
- "skipLibCheck": true,
12
- "forceConsistentCasingInFileNames": true,
13
- "jsx": "react-jsx",
14
- "outDir": "dist",
15
- "paths": {
16
- "@gv-tech/design-tokens": ["../design-tokens/src"],
17
- "@gv-tech/ui-core": ["../ui-core/src"],
18
- "@/*": ["./src/*"]
19
- },
20
- "types": ["vitest/globals", "@testing-library/jest-dom"]
21
- },
22
- "include": ["src"]
23
- }
@@ -1,17 +0,0 @@
1
- import react from '@vitejs/plugin-react-swc';
2
- import { resolve } from 'path';
3
- import { defineConfig } from 'vitest/config';
4
-
5
- export default defineConfig({
6
- plugins: [react()],
7
- test: {
8
- globals: true,
9
- environment: 'jsdom',
10
- setupFiles: [resolve(__dirname, '../../src/setupTests.ts')],
11
- },
12
- resolve: {
13
- alias: {
14
- 'react-native': resolve(__dirname, '../../apps/playground-web/src/lib/react-native-shim.js'),
15
- },
16
- },
17
- });
@@ -1,8 +0,0 @@
1
- # Changelog
2
-
3
- ## [0.1.0](https://github.com/Garcia-Ventures/gvtech-design/compare/ui-web-v0.0.1...ui-web-v0.1.0) (2026-02-20)
4
-
5
-
6
- ### Features
7
-
8
- * **universal:** pivot to monorepo architecture and stabilize react native support ([#63](https://github.com/Garcia-Ventures/gvtech-design/issues/63)) ([3458938](https://github.com/Garcia-Ventures/gvtech-design/commit/3458938c17bdfc7a7f5eea0053b7bf1786a571fa))
@@ -1,84 +0,0 @@
1
- {
2
- "name": "@gv-tech/ui-web",
3
- "version": "0.1.0",
4
- "description": "Web (DOM/Radix) implementations of the GV Tech design system components",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/Garcia-Ventures/gvtech-design.git",
8
- "directory": "packages/ui-web"
9
- },
10
- "license": "MIT",
11
- "author": "Eric N. Garcia <eng618@garciaericn.com>",
12
- "exports": {
13
- ".": {
14
- "types": "./src/index.ts",
15
- "default": "./src/index.ts"
16
- },
17
- "./*": {
18
- "types": "./src/*/index.ts",
19
- "default": "./src/*/index.ts"
20
- }
21
- },
22
- "main": "src/index.ts",
23
- "types": "src/index.ts",
24
- "scripts": {
25
- "build": "echo 'No build step — consumed as TS source by sibling packages'",
26
- "lint": "echo 'Linted from workspace root'",
27
- "test": "vitest run",
28
- "typecheck": "yarn tsc --noEmit"
29
- },
30
- "dependencies": {
31
- "@gv-tech/design-tokens": "workspace:*",
32
- "@gv-tech/ui-core": "workspace:*",
33
- "@hookform/resolvers": "^5.2.2",
34
- "@radix-ui/react-accordion": "^1.2.12",
35
- "@radix-ui/react-alert-dialog": "^1.1.15",
36
- "@radix-ui/react-aspect-ratio": "^1.1.8",
37
- "@radix-ui/react-avatar": "^1.1.11",
38
- "@radix-ui/react-checkbox": "^1.3.3",
39
- "@radix-ui/react-collapsible": "^1.1.12",
40
- "@radix-ui/react-context-menu": "^2.2.16",
41
- "@radix-ui/react-dialog": "^1.1.15",
42
- "@radix-ui/react-dropdown-menu": "^2.1.16",
43
- "@radix-ui/react-hover-card": "^1.1.15",
44
- "@radix-ui/react-label": "^2.1.8",
45
- "@radix-ui/react-menubar": "^1.1.16",
46
- "@radix-ui/react-navigation-menu": "^1.2.14",
47
- "@radix-ui/react-popover": "^1.1.15",
48
- "@radix-ui/react-progress": "^1.1.8",
49
- "@radix-ui/react-radio-group": "^1.3.8",
50
- "@radix-ui/react-scroll-area": "^1.2.10",
51
- "@radix-ui/react-select": "^2.2.6",
52
- "@radix-ui/react-separator": "^1.1.8",
53
- "@radix-ui/react-slider": "^1.3.6",
54
- "@radix-ui/react-slot": "^1.2.4",
55
- "@radix-ui/react-switch": "^1.2.6",
56
- "@radix-ui/react-tabs": "^1.1.13",
57
- "@radix-ui/react-toast": "^1.2.15",
58
- "@radix-ui/react-toggle": "^1.1.10",
59
- "@radix-ui/react-toggle-group": "^1.1.11",
60
- "@radix-ui/react-tooltip": "^1.2.8",
61
- "class-variance-authority": "^0.7.1",
62
- "clsx": "^2.1.1",
63
- "cmdk": "^1.1.1",
64
- "date-fns": "^4.1.0",
65
- "embla-carousel-react": "^8.6.0",
66
- "lucide-react": "^0.563.0",
67
- "react-day-picker": "^9.13.2",
68
- "react-hook-form": "^7.71.1",
69
- "react-resizable-panels": "^4.6.4",
70
- "recharts": "2.15.4",
71
- "sonner": "^2.0.7",
72
- "tailwind-merge": "^3.4.1",
73
- "vaul": "^1.1.2",
74
- "zod": "^4.3.6"
75
- },
76
- "peerDependencies": {
77
- "react": ">=18",
78
- "react-dom": ">=18"
79
- },
80
- "publishConfig": {
81
- "access": "public",
82
- "provenance": true
83
- }
84
- }
@@ -1,86 +0,0 @@
1
- import { render, screen, waitFor } from '@testing-library/react';
2
- import userEvent from '@testing-library/user-event';
3
- import { describe, expect, it } from 'vitest';
4
- import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './accordion';
5
-
6
- describe('Accordion', () => {
7
- it('renders correctly', () => {
8
- render(
9
- <Accordion type="single" collapsible>
10
- <AccordionItem value="item-1">
11
- <AccordionTrigger>Trigger 1</AccordionTrigger>
12
- <AccordionContent>Content 1</AccordionContent>
13
- </AccordionItem>
14
- </Accordion>,
15
- );
16
-
17
- expect(screen.getByText('Trigger 1')).toBeInTheDocument();
18
- // Content should not be visible initially
19
- expect(screen.queryByText('Content 1')).not.toBeInTheDocument();
20
- });
21
-
22
- it('expands when clicked', async () => {
23
- render(
24
- <Accordion type="single" collapsible>
25
- <AccordionItem value="item-1">
26
- <AccordionTrigger>Trigger 1</AccordionTrigger>
27
- <AccordionContent>Content 1</AccordionContent>
28
- </AccordionItem>
29
- </Accordion>,
30
- );
31
-
32
- const trigger = screen.getByText('Trigger 1');
33
- await userEvent.click(trigger);
34
-
35
- await waitFor(() => {
36
- expect(screen.getByText('Content 1')).toBeVisible();
37
- });
38
- });
39
-
40
- it('collapses when clicked again', async () => {
41
- render(
42
- <Accordion type="single" collapsible defaultValue="item-1">
43
- <AccordionItem value="item-1">
44
- <AccordionTrigger>Trigger 1</AccordionTrigger>
45
- <AccordionContent>Content 1</AccordionContent>
46
- </AccordionItem>
47
- </Accordion>,
48
- );
49
-
50
- // Initial state open
51
- expect(screen.getByText('Content 1')).toBeVisible();
52
-
53
- const trigger = screen.getByText('Trigger 1');
54
- await userEvent.click(trigger);
55
-
56
- await waitFor(() => {
57
- expect(screen.queryByText('Content 1')).not.toBeInTheDocument();
58
- });
59
- });
60
-
61
- it('handles single mode correctly', async () => {
62
- render(
63
- <Accordion type="single" collapsible>
64
- <AccordionItem value="item-1">
65
- <AccordionTrigger>Trigger 1</AccordionTrigger>
66
- <AccordionContent>Content 1</AccordionContent>
67
- </AccordionItem>
68
- <AccordionItem value="item-2">
69
- <AccordionTrigger>Trigger 2</AccordionTrigger>
70
- <AccordionContent>Content 2</AccordionContent>
71
- </AccordionItem>
72
- </Accordion>,
73
- );
74
-
75
- // Click item 1
76
- await userEvent.click(screen.getByText('Trigger 1'));
77
- await waitFor(() => expect(screen.getByText('Content 1')).toBeVisible());
78
-
79
- // Click item 2
80
- await userEvent.click(screen.getByText('Trigger 2'));
81
- await waitFor(() => expect(screen.getByText('Content 2')).toBeVisible());
82
-
83
- // Item 1 should be closed
84
- await waitFor(() => expect(screen.queryByText('Content 1')).not.toBeInTheDocument());
85
- });
86
- });
@@ -1,58 +0,0 @@
1
- import * as AccordionPrimitive from '@radix-ui/react-accordion';
2
- import { ChevronDown } from 'lucide-react';
3
- import * as React from 'react';
4
-
5
- import {
6
- AccordionBaseProps,
7
- AccordionContentBaseProps,
8
- AccordionItemBaseProps,
9
- AccordionTriggerBaseProps,
10
- } from '@gv-tech/ui-core';
11
- import { cn } from './lib/utils';
12
-
13
- const Accordion = AccordionPrimitive.Root;
14
-
15
- const AccordionItem = React.forwardRef<
16
- React.ElementRef<typeof AccordionPrimitive.Item>,
17
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> & AccordionItemBaseProps
18
- >(({ className, ...props }, ref) => (
19
- <AccordionPrimitive.Item ref={ref} className={cn('border-b', className)} {...props} />
20
- ));
21
- AccordionItem.displayName = 'AccordionItem';
22
-
23
- const AccordionTrigger = React.forwardRef<
24
- React.ElementRef<typeof AccordionPrimitive.Trigger>,
25
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> & AccordionTriggerBaseProps
26
- >(({ className, children, ...props }, ref) => (
27
- <AccordionPrimitive.Header className="flex">
28
- <AccordionPrimitive.Trigger
29
- ref={ref}
30
- className={cn(
31
- 'flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180',
32
- className,
33
- )}
34
- {...props}
35
- >
36
- {children}
37
- <ChevronDown className="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" />
38
- </AccordionPrimitive.Trigger>
39
- </AccordionPrimitive.Header>
40
- ));
41
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
42
-
43
- const AccordionContent = React.forwardRef<
44
- React.ElementRef<typeof AccordionPrimitive.Content>,
45
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> & AccordionContentBaseProps
46
- >(({ className, children, ...props }, ref) => (
47
- <AccordionPrimitive.Content
48
- ref={ref}
49
- className="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
50
- {...props}
51
- >
52
- <div className={cn('pb-4 pt-0', className)}>{children}</div>
53
- </AccordionPrimitive.Content>
54
- ));
55
- AccordionContent.displayName = AccordionPrimitive.Content.displayName;
56
-
57
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
58
- export type { AccordionBaseProps as AccordionProps };
@@ -1,91 +0,0 @@
1
- import { render, screen, waitFor } from '@testing-library/react';
2
- import userEvent from '@testing-library/user-event';
3
- import { describe, expect, it } from 'vitest';
4
- import {
5
- AlertDialog,
6
- AlertDialogAction,
7
- AlertDialogCancel,
8
- AlertDialogContent,
9
- AlertDialogDescription,
10
- AlertDialogFooter,
11
- AlertDialogHeader,
12
- AlertDialogTitle,
13
- AlertDialogTrigger,
14
- } from '.';
15
-
16
- describe('AlertDialog', () => {
17
- it('renders correctly', async () => {
18
- render(
19
- <AlertDialog>
20
- <AlertDialogTrigger>Open</AlertDialogTrigger>
21
- <AlertDialogContent>
22
- <AlertDialogHeader>
23
- <AlertDialogTitle>Are you sure?</AlertDialogTitle>
24
- <AlertDialogDescription>This action cannot be undone.</AlertDialogDescription>
25
- </AlertDialogHeader>
26
- <AlertDialogFooter>
27
- <AlertDialogCancel>Cancel</AlertDialogCancel>
28
- <AlertDialogAction>Continue</AlertDialogAction>
29
- </AlertDialogFooter>
30
- </AlertDialogContent>
31
- </AlertDialog>,
32
- );
33
-
34
- expect(screen.getByText('Open')).toBeInTheDocument();
35
- expect(screen.queryByText('Are you sure?')).not.toBeInTheDocument();
36
-
37
- await userEvent.click(screen.getByText('Open'));
38
-
39
- await waitFor(() => {
40
- expect(screen.getByRole('alertdialog')).toBeInTheDocument();
41
- expect(screen.getByText('Are you sure?')).toBeInTheDocument();
42
- expect(screen.getByText('This action cannot be undone.')).toBeInTheDocument();
43
- });
44
- });
45
-
46
- it('closes when cancel is clicked', async () => {
47
- render(
48
- <AlertDialog>
49
- <AlertDialogTrigger>Open</AlertDialogTrigger>
50
- <AlertDialogContent>
51
- <AlertDialogHeader>
52
- <AlertDialogTitle>Are you sure?</AlertDialogTitle>
53
- <AlertDialogDescription>This action cannot be undone.</AlertDialogDescription>
54
- </AlertDialogHeader>
55
- <AlertDialogFooter>
56
- <AlertDialogCancel>Cancel</AlertDialogCancel>
57
- </AlertDialogFooter>
58
- </AlertDialogContent>
59
- </AlertDialog>,
60
- );
61
-
62
- await userEvent.click(screen.getByText('Open'));
63
- await waitFor(() => expect(screen.getByRole('alertdialog')).toBeInTheDocument());
64
-
65
- await userEvent.click(screen.getByText('Cancel'));
66
- await waitFor(() => expect(screen.queryByRole('alertdialog')).not.toBeInTheDocument());
67
- });
68
-
69
- it('closes when action is clicked', async () => {
70
- render(
71
- <AlertDialog>
72
- <AlertDialogTrigger>Open</AlertDialogTrigger>
73
- <AlertDialogContent>
74
- <AlertDialogHeader>
75
- <AlertDialogTitle>Are you sure?</AlertDialogTitle>
76
- <AlertDialogDescription>This action cannot be undone.</AlertDialogDescription>
77
- </AlertDialogHeader>
78
- <AlertDialogFooter>
79
- <AlertDialogAction>Continue</AlertDialogAction>
80
- </AlertDialogFooter>
81
- </AlertDialogContent>
82
- </AlertDialog>,
83
- );
84
-
85
- await userEvent.click(screen.getByText('Open'));
86
- await waitFor(() => expect(screen.getByRole('alertdialog')).toBeInTheDocument());
87
-
88
- await userEvent.click(screen.getByText('Continue'));
89
- await waitFor(() => expect(screen.queryByRole('alertdialog')).not.toBeInTheDocument());
90
- });
91
- });