@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.
- package/CHANGELOG.md +15 -0
- package/package.json +5 -2
- package/.agent/skills/dogfood-components/SKILL.md +0 -34
- package/.agent/skills/maintain-component/SKILL.md +0 -77
- package/.agent/workflows/native-playground.md +0 -93
- package/.github/CODEOWNERS +0 -2
- package/.github/CONTRIBUTING.md +0 -42
- package/.github/FUNDING.yml +0 -4
- package/.github/PULL_REQUEST_TEMPLATE/build.md +0 -5
- package/.github/PULL_REQUEST_TEMPLATE/standard.md +0 -3
- package/.github/RELEASING.md +0 -37
- package/.github/copilot-instructions.md +0 -61
- package/.github/workflows/ci.yml +0 -91
- package/.github/workflows/codeql-analysis.yml +0 -34
- package/.github/workflows/release-please.yml +0 -79
- package/.husky/pre-commit +0 -1
- package/.prettierignore +0 -3
- package/.release-please-manifest.json +0 -9
- package/.tool-versions +0 -1
- package/.vscode/launch.json +0 -22
- package/.vscode/mcp.json +0 -8
- package/.vscode/settings.json +0 -30
- package/.yarnrc.yml +0 -7
- package/SECURITY.md +0 -9
- package/apps/.gitkeep +0 -0
- package/apps/native-playground/CHANGELOG.md +0 -8
- package/apps/native-playground/app.json +0 -37
- package/apps/native-playground/assets/fonts/.gitkeep +0 -0
- package/apps/native-playground/assets/images/adaptive-icon.png +0 -0
- package/apps/native-playground/assets/images/favicon.png +0 -0
- package/apps/native-playground/assets/images/icon.png +0 -0
- package/apps/native-playground/assets/images/splash-icon.png +0 -0
- package/apps/native-playground/babel.config.js +0 -6
- package/apps/native-playground/eas.json +0 -25
- package/apps/native-playground/index.js +0 -8
- package/apps/native-playground/metro.config.js +0 -26
- package/apps/native-playground/nativewind-env.d.ts +0 -1
- package/apps/native-playground/package.json +0 -23
- package/apps/native-playground/project.json +0 -15
- package/apps/native-playground/src/app/App.tsx +0 -842
- package/apps/native-playground/src/global.css +0 -49
- package/apps/native-playground/tailwind.config.js +0 -49
- package/apps/native-playground/tsconfig.app.json +0 -24
- package/apps/native-playground/tsconfig.json +0 -23
- package/apps/native-playground/tsconfig.spec.json +0 -24
- package/apps/playground-web/CHANGELOG.md +0 -8
- package/apps/playground-web/index.html +0 -13
- package/apps/playground-web/package.json +0 -31
- package/apps/playground-web/public/favicon.png +0 -0
- package/apps/playground-web/public/index.demo.html +0 -40
- package/apps/playground-web/public/logo192.png +0 -0
- package/apps/playground-web/public/logo512.png +0 -0
- package/apps/playground-web/public/manifest.json +0 -25
- package/apps/playground-web/public/robots.txt +0 -2
- package/apps/playground-web/src/App.tsx +0 -179
- package/apps/playground-web/src/components/docs/CodeBlock.tsx +0 -34
- package/apps/playground-web/src/components/docs/CombinedDocsLayout.tsx +0 -103
- package/apps/playground-web/src/components/docs/ComponentShowcase.tsx +0 -96
- package/apps/playground-web/src/components/docs/ErrorBoundary.tsx +0 -55
- package/apps/playground-web/src/components/docs/Footer.tsx +0 -146
- package/apps/playground-web/src/components/docs/PropsTable.tsx +0 -43
- package/apps/playground-web/src/components/docs/Search.tsx +0 -75
- package/apps/playground-web/src/components/docs/Sidebar.tsx +0 -77
- package/apps/playground-web/src/components/docs/ThemeToggle.tsx +0 -19
- package/apps/playground-web/src/components/docs/index.ts +0 -9
- package/apps/playground-web/src/config/docs.ts +0 -293
- package/apps/playground-web/src/globals.css +0 -148
- package/apps/playground-web/src/hooks/useDocMetadata.ts +0 -34
- package/apps/playground-web/src/hooks/usePackageManager.tsx +0 -42
- package/apps/playground-web/src/lib/react-native-shim.js +0 -34
- package/apps/playground-web/src/main.tsx +0 -11
- package/apps/playground-web/src/pages/index.ts +0 -4
- package/apps/playground-web/src/pages/native/AccordionDocs.tsx +0 -85
- package/apps/playground-web/src/pages/native/AlertDialogDocs.tsx +0 -128
- package/apps/playground-web/src/pages/native/AlertDocs.tsx +0 -89
- package/apps/playground-web/src/pages/native/AspectRatioDocs.tsx +0 -52
- package/apps/playground-web/src/pages/native/AvatarDocs.tsx +0 -92
- package/apps/playground-web/src/pages/native/BadgeDocs.tsx +0 -63
- package/apps/playground-web/src/pages/native/BreadcrumbDocs.tsx +0 -71
- package/apps/playground-web/src/pages/native/ButtonDocs.tsx +0 -103
- package/apps/playground-web/src/pages/native/CalendarDocs.tsx +0 -74
- package/apps/playground-web/src/pages/native/CardDocs.tsx +0 -75
- package/apps/playground-web/src/pages/native/CarouselDocs.tsx +0 -113
- package/apps/playground-web/src/pages/native/ChartDocs.tsx +0 -115
- package/apps/playground-web/src/pages/native/CheckboxDocs.tsx +0 -38
- package/apps/playground-web/src/pages/native/CollapsibleDocs.tsx +0 -89
- package/apps/playground-web/src/pages/native/CommandDocs.tsx +0 -170
- package/apps/playground-web/src/pages/native/ContextMenuDocs.tsx +0 -121
- package/apps/playground-web/src/pages/native/DialogDocs.tsx +0 -132
- package/apps/playground-web/src/pages/native/DrawerDocs.tsx +0 -158
- package/apps/playground-web/src/pages/native/DropdownMenuDocs.tsx +0 -168
- package/apps/playground-web/src/pages/native/HoverCardDocs.tsx +0 -119
- package/apps/playground-web/src/pages/native/InputDocs.tsx +0 -86
- package/apps/playground-web/src/pages/native/LabelDocs.tsx +0 -55
- package/apps/playground-web/src/pages/native/MenubarDocs.tsx +0 -197
- package/apps/playground-web/src/pages/native/NavigationMenuDocs.tsx +0 -190
- package/apps/playground-web/src/pages/native/PaginationDocs.tsx +0 -70
- package/apps/playground-web/src/pages/native/PopoverDocs.tsx +0 -156
- package/apps/playground-web/src/pages/native/ProgressDocs.tsx +0 -61
- package/apps/playground-web/src/pages/native/RadioGroupDocs.tsx +0 -125
- package/apps/playground-web/src/pages/native/ResizableDocs.tsx +0 -118
- package/apps/playground-web/src/pages/native/ScrollAreaDocs.tsx +0 -92
- package/apps/playground-web/src/pages/native/SearchDocs.tsx +0 -150
- package/apps/playground-web/src/pages/native/SelectDocs.tsx +0 -141
- package/apps/playground-web/src/pages/native/SeparatorDocs.tsx +0 -72
- package/apps/playground-web/src/pages/native/SheetDocs.tsx +0 -140
- package/apps/playground-web/src/pages/native/SkeletonDocs.tsx +0 -44
- package/apps/playground-web/src/pages/native/SliderDocs.tsx +0 -118
- package/apps/playground-web/src/pages/native/SonnerDocs.tsx +0 -111
- package/apps/playground-web/src/pages/native/SwitchDocs.tsx +0 -87
- package/apps/playground-web/src/pages/native/TableDocs.tsx +0 -67
- package/apps/playground-web/src/pages/native/TabsDocs.tsx +0 -175
- package/apps/playground-web/src/pages/native/TextareaDocs.tsx +0 -61
- package/apps/playground-web/src/pages/native/ThemeToggleDocs.tsx +0 -288
- package/apps/playground-web/src/pages/native/ToastDocs.tsx +0 -124
- package/apps/playground-web/src/pages/native/ToggleDocs.tsx +0 -81
- package/apps/playground-web/src/pages/native/ToggleGroupDocs.tsx +0 -128
- package/apps/playground-web/src/pages/native/TooltipDocs.tsx +0 -140
- package/apps/playground-web/src/pages/native/index.ts +0 -47
- package/apps/playground-web/src/pages/shared/ColorTokensDocs.tsx +0 -234
- package/apps/playground-web/src/pages/shared/GettingStarted.tsx +0 -413
- package/apps/playground-web/src/pages/web/AccordionDocs.tsx +0 -194
- package/apps/playground-web/src/pages/web/AlertDialogDocs.tsx +0 -157
- package/apps/playground-web/src/pages/web/AlertDocs.tsx +0 -110
- package/apps/playground-web/src/pages/web/AspectRatioDocs.tsx +0 -94
- package/apps/playground-web/src/pages/web/AvatarDocs.tsx +0 -81
- package/apps/playground-web/src/pages/web/BadgeDocs.tsx +0 -66
- package/apps/playground-web/src/pages/web/BreadcrumbDocs.tsx +0 -93
- package/apps/playground-web/src/pages/web/ButtonDocs.tsx +0 -129
- package/apps/playground-web/src/pages/web/CalendarDocs.tsx +0 -78
- package/apps/playground-web/src/pages/web/CardDocs.tsx +0 -115
- package/apps/playground-web/src/pages/web/CarouselDocs.tsx +0 -176
- package/apps/playground-web/src/pages/web/ChartDocs.tsx +0 -151
- package/apps/playground-web/src/pages/web/CheckboxDocs.tsx +0 -95
- package/apps/playground-web/src/pages/web/CollapsibleDocs.tsx +0 -111
- package/apps/playground-web/src/pages/web/CommandDocs.tsx +0 -219
- package/apps/playground-web/src/pages/web/ContextMenuDocs.tsx +0 -164
- package/apps/playground-web/src/pages/web/DialogDocs.tsx +0 -175
- package/apps/playground-web/src/pages/web/DrawerDocs.tsx +0 -283
- package/apps/playground-web/src/pages/web/DropdownMenuDocs.tsx +0 -319
- package/apps/playground-web/src/pages/web/FormDocs.tsx +0 -175
- package/apps/playground-web/src/pages/web/HoverCardDocs.tsx +0 -151
- package/apps/playground-web/src/pages/web/InputDocs.tsx +0 -118
- package/apps/playground-web/src/pages/web/LabelDocs.tsx +0 -59
- package/apps/playground-web/src/pages/web/MenubarDocs.tsx +0 -296
- package/apps/playground-web/src/pages/web/NavigationMenuDocs.tsx +0 -263
- package/apps/playground-web/src/pages/web/PaginationDocs.tsx +0 -102
- package/apps/playground-web/src/pages/web/PopoverDocs.tsx +0 -189
- package/apps/playground-web/src/pages/web/ProgressDocs.tsx +0 -70
- package/apps/playground-web/src/pages/web/RadioGroupDocs.tsx +0 -137
- package/apps/playground-web/src/pages/web/ResizableDocs.tsx +0 -143
- package/apps/playground-web/src/pages/web/ScrollAreaDocs.tsx +0 -107
- package/apps/playground-web/src/pages/web/SearchDocs.tsx +0 -203
- package/apps/playground-web/src/pages/web/SelectDocs.tsx +0 -164
- package/apps/playground-web/src/pages/web/SeparatorDocs.tsx +0 -88
- package/apps/playground-web/src/pages/web/SheetDocs.tsx +0 -186
- package/apps/playground-web/src/pages/web/SkeletonDocs.tsx +0 -53
- package/apps/playground-web/src/pages/web/SliderDocs.tsx +0 -119
- package/apps/playground-web/src/pages/web/SonnerDocs.tsx +0 -126
- package/apps/playground-web/src/pages/web/SwitchDocs.tsx +0 -91
- package/apps/playground-web/src/pages/web/TableDocs.tsx +0 -148
- package/apps/playground-web/src/pages/web/TabsDocs.tsx +0 -241
- package/apps/playground-web/src/pages/web/TextareaDocs.tsx +0 -65
- package/apps/playground-web/src/pages/web/ThemeToggleDocs.tsx +0 -303
- package/apps/playground-web/src/pages/web/ToastDocs.tsx +0 -149
- package/apps/playground-web/src/pages/web/ToggleDocs.tsx +0 -85
- package/apps/playground-web/src/pages/web/ToggleGroupDocs.tsx +0 -140
- package/apps/playground-web/src/pages/web/TooltipDocs.tsx +0 -150
- package/apps/playground-web/src/pages/web/index.ts +0 -47
- package/apps/playground-web/src/routes/doc-routes.tsx +0 -363
- package/apps/playground-web/tailwind.config.js +0 -47
- package/apps/playground-web/tsconfig.app.json +0 -16
- package/apps/playground-web/tsconfig.json +0 -4
- package/apps/playground-web/tsconfig.node.json +0 -13
- package/apps/playground-web/vite.config.ts +0 -41
- package/components.json +0 -20
- package/docs/architecture-pivot.md +0 -165
- package/docs/native-setup-decision.md +0 -57
- package/docs/phase-1-tracker.md +0 -144
- package/docs/release-tooling-evaluation.md +0 -67
- package/docs/universal-implementation.md +0 -195
- package/docs/update-plan.md +0 -268
- package/eslint.config.mjs +0 -13
- package/nx.json +0 -50
- package/packages/.gitkeep +0 -0
- package/packages/design-tokens/CHANGELOG.md +0 -8
- package/packages/design-tokens/package.json +0 -20
- package/packages/design-tokens/src/index.ts +0 -35
- package/packages/design-tokens/src/palette.ts +0 -36
- package/packages/design-tokens/src/radii.ts +0 -26
- package/packages/design-tokens/src/shadows.ts +0 -16
- package/packages/design-tokens/src/spacing.ts +0 -33
- package/packages/design-tokens/src/theme.ts +0 -54
- package/packages/design-tokens/src/typography.ts +0 -36
- package/packages/design-tokens/tsconfig.json +0 -17
- package/packages/ui-core/CHANGELOG.md +0 -8
- package/packages/ui-core/package.json +0 -40
- package/packages/ui-core/src/contracts/accordion.ts +0 -23
- package/packages/ui-core/src/contracts/alert-dialog.ts +0 -48
- package/packages/ui-core/src/contracts/alert.ts +0 -17
- package/packages/ui-core/src/contracts/aspect-ratio.ts +0 -7
- package/packages/ui-core/src/contracts/avatar.ts +0 -17
- package/packages/ui-core/src/contracts/badge.ts +0 -7
- package/packages/ui-core/src/contracts/breadcrumb.ts +0 -37
- package/packages/ui-core/src/contracts/button.ts +0 -17
- package/packages/ui-core/src/contracts/calendar.ts +0 -4
- package/packages/ui-core/src/contracts/card.ts +0 -11
- package/packages/ui-core/src/contracts/carousel.ts +0 -29
- package/packages/ui-core/src/contracts/chart.ts +0 -31
- package/packages/ui-core/src/contracts/checkbox.ts +0 -11
- package/packages/ui-core/src/contracts/collapsible.ts +0 -21
- package/packages/ui-core/src/contracts/command.ts +0 -43
- package/packages/ui-core/src/contracts/context-menu.ts +0 -78
- package/packages/ui-core/src/contracts/dialog.ts +0 -29
- package/packages/ui-core/src/contracts/drawer.ts +0 -39
- package/packages/ui-core/src/contracts/dropdown-menu.ts +0 -87
- package/packages/ui-core/src/contracts/form.ts +0 -29
- package/packages/ui-core/src/contracts/hover-card.ts +0 -21
- package/packages/ui-core/src/contracts/input.ts +0 -11
- package/packages/ui-core/src/contracts/label.ts +0 -7
- package/packages/ui-core/src/contracts/menubar.ts +0 -86
- package/packages/ui-core/src/contracts/navigation-menu.ts +0 -55
- package/packages/ui-core/src/contracts/pagination.ts +0 -38
- package/packages/ui-core/src/contracts/popover.ts +0 -28
- package/packages/ui-core/src/contracts/progress.ts +0 -4
- package/packages/ui-core/src/contracts/radio.ts +0 -16
- package/packages/ui-core/src/contracts/resizable.ts +0 -36
- package/packages/ui-core/src/contracts/scroll-area.ts +0 -15
- package/packages/ui-core/src/contracts/search.ts +0 -13
- package/packages/ui-core/src/contracts/select.ts +0 -64
- package/packages/ui-core/src/contracts/separator.ts +0 -5
- package/packages/ui-core/src/contracts/sheet.ts +0 -58
- package/packages/ui-core/src/contracts/skeleton.ts +0 -6
- package/packages/ui-core/src/contracts/slider.ts +0 -15
- package/packages/ui-core/src/contracts/sonner.ts +0 -15
- package/packages/ui-core/src/contracts/switch.ts +0 -11
- package/packages/ui-core/src/contracts/table.ts +0 -41
- package/packages/ui-core/src/contracts/tabs.ts +0 -31
- package/packages/ui-core/src/contracts/text.ts +0 -12
- package/packages/ui-core/src/contracts/textarea.ts +0 -7
- package/packages/ui-core/src/contracts/theme-provider.ts +0 -14
- package/packages/ui-core/src/contracts/theme-toggle.ts +0 -15
- package/packages/ui-core/src/contracts/toast.ts +0 -15
- package/packages/ui-core/src/contracts/toaster.ts +0 -3
- package/packages/ui-core/src/contracts/toggle-group.ts +0 -23
- package/packages/ui-core/src/contracts/toggle.ts +0 -49
- package/packages/ui-core/src/contracts/tooltip.ts +0 -28
- package/packages/ui-core/src/index.ts +0 -327
- package/packages/ui-core/tsconfig.json +0 -18
- package/packages/ui-native/CHANGELOG.md +0 -8
- package/packages/ui-native/package.json +0 -76
- package/packages/ui-native/src/accordion.tsx +0 -93
- package/packages/ui-native/src/alert-dialog.tsx +0 -123
- package/packages/ui-native/src/alert.tsx +0 -50
- package/packages/ui-native/src/aspect-ratio.tsx +0 -9
- package/packages/ui-native/src/avatar.tsx +0 -38
- package/packages/ui-native/src/badge.tsx +0 -51
- package/packages/ui-native/src/breadcrumb.tsx +0 -9
- package/packages/ui-native/src/button.test.tsx +0 -27
- package/packages/ui-native/src/button.tsx +0 -75
- package/packages/ui-native/src/calendar.tsx +0 -9
- package/packages/ui-native/src/card.test.tsx +0 -33
- package/packages/ui-native/src/card.tsx +0 -56
- package/packages/ui-native/src/carousel.tsx +0 -9
- package/packages/ui-native/src/chart.tsx +0 -9
- package/packages/ui-native/src/checkbox.test.tsx +0 -58
- package/packages/ui-native/src/checkbox.tsx +0 -31
- package/packages/ui-native/src/collapsible.test.tsx +0 -50
- package/packages/ui-native/src/collapsible.tsx +0 -15
- package/packages/ui-native/src/command.tsx +0 -9
- package/packages/ui-native/src/context-menu.tsx +0 -9
- package/packages/ui-native/src/dialog.test.tsx +0 -91
- package/packages/ui-native/src/dialog.tsx +0 -121
- package/packages/ui-native/src/drawer.tsx +0 -9
- package/packages/ui-native/src/dropdown-menu.tsx +0 -9
- package/packages/ui-native/src/form.tsx +0 -9
- package/packages/ui-native/src/hover-card.tsx +0 -9
- package/packages/ui-native/src/index.ts +0 -209
- package/packages/ui-native/src/input.test.tsx +0 -27
- package/packages/ui-native/src/input.tsx +0 -27
- package/packages/ui-native/src/label.tsx +0 -29
- package/packages/ui-native/src/lib/render-native.tsx +0 -17
- package/packages/ui-native/src/lib/utils.ts +0 -6
- package/packages/ui-native/src/menubar.tsx +0 -9
- package/packages/ui-native/src/nativewind-env.d.ts +0 -1
- package/packages/ui-native/src/navigation-menu.tsx +0 -9
- package/packages/ui-native/src/pagination.tsx +0 -9
- package/packages/ui-native/src/popover.tsx +0 -9
- package/packages/ui-native/src/progress.tsx +0 -9
- package/packages/ui-native/src/radio-group.test.tsx +0 -77
- package/packages/ui-native/src/radio-group.tsx +0 -42
- package/packages/ui-native/src/resizable.tsx +0 -25
- package/packages/ui-native/src/scroll-area.tsx +0 -9
- package/packages/ui-native/src/search.tsx +0 -17
- package/packages/ui-native/src/select.tsx +0 -229
- package/packages/ui-native/src/separator.tsx +0 -20
- package/packages/ui-native/src/sheet.test.tsx +0 -93
- package/packages/ui-native/src/sheet.tsx +0 -127
- package/packages/ui-native/src/skeleton.test.tsx +0 -29
- package/packages/ui-native/src/skeleton.tsx +0 -31
- package/packages/ui-native/src/slider.tsx +0 -9
- package/packages/ui-native/src/sonner.tsx +0 -9
- package/packages/ui-native/src/switch.tsx +0 -34
- package/packages/ui-native/src/table.tsx +0 -73
- package/packages/ui-native/src/tabs.tsx +0 -74
- package/packages/ui-native/src/text.test.tsx +0 -24
- package/packages/ui-native/src/text.tsx +0 -43
- package/packages/ui-native/src/textarea.test.tsx +0 -27
- package/packages/ui-native/src/textarea.tsx +0 -29
- package/packages/ui-native/src/theme-provider.tsx +0 -6
- package/packages/ui-native/src/theme-toggle.tsx +0 -11
- package/packages/ui-native/src/toast.test.tsx +0 -61
- package/packages/ui-native/src/toast.tsx +0 -88
- package/packages/ui-native/src/toaster.tsx +0 -9
- package/packages/ui-native/src/toggle-group.tsx +0 -78
- package/packages/ui-native/src/toggle.tsx +0 -35
- package/packages/ui-native/src/tooltip.tsx +0 -44
- package/packages/ui-native/tsconfig.json +0 -23
- package/packages/ui-native/vite.config.ts +0 -17
- package/packages/ui-web/CHANGELOG.md +0 -8
- package/packages/ui-web/package.json +0 -84
- package/packages/ui-web/src/accordion.test.tsx +0 -86
- package/packages/ui-web/src/accordion.tsx +0 -58
- package/packages/ui-web/src/alert-dialog.test.tsx +0 -91
- package/packages/ui-web/src/alert-dialog.tsx +0 -121
- package/packages/ui-web/src/alert.test.tsx +0 -47
- package/packages/ui-web/src/alert.tsx +0 -49
- package/packages/ui-web/src/aspect-ratio.test.tsx +0 -34
- package/packages/ui-web/src/aspect-ratio.tsx +0 -7
- package/packages/ui-web/src/avatar.test.tsx +0 -33
- package/packages/ui-web/src/avatar.tsx +0 -40
- package/packages/ui-web/src/badge.test.tsx +0 -24
- package/packages/ui-web/src/badge.tsx +0 -34
- package/packages/ui-web/src/breadcrumb.tsx +0 -105
- package/packages/ui-web/src/button.test.tsx +0 -62
- package/packages/ui-web/src/button.tsx +0 -47
- package/packages/ui-web/src/calendar.test.tsx +0 -23
- package/packages/ui-web/src/calendar.tsx +0 -163
- package/packages/ui-web/src/card.test.tsx +0 -35
- package/packages/ui-web/src/card.tsx +0 -46
- package/packages/ui-web/src/carousel.test.tsx +0 -37
- package/packages/ui-web/src/carousel.tsx +0 -234
- package/packages/ui-web/src/chart.test.tsx +0 -62
- package/packages/ui-web/src/chart.tsx +0 -296
- package/packages/ui-web/src/checkbox.test.tsx +0 -30
- package/packages/ui-web/src/checkbox.tsx +0 -31
- package/packages/ui-web/src/collapsible.test.tsx +0 -51
- package/packages/ui-web/src/collapsible.tsx +0 -15
- package/packages/ui-web/src/command.test.tsx +0 -79
- package/packages/ui-web/src/command.tsx +0 -154
- package/packages/ui-web/src/context-menu.test.tsx +0 -37
- package/packages/ui-web/src/context-menu.tsx +0 -208
- package/packages/ui-web/src/dialog.test.tsx +0 -66
- package/packages/ui-web/src/dialog.tsx +0 -95
- package/packages/ui-web/src/drawer.test.tsx +0 -68
- package/packages/ui-web/src/drawer.tsx +0 -110
- package/packages/ui-web/src/dropdown-menu.test.tsx +0 -93
- package/packages/ui-web/src/dropdown-menu.tsx +0 -212
- package/packages/ui-web/src/form.test.tsx +0 -84
- package/packages/ui-web/src/form.tsx +0 -160
- package/packages/ui-web/src/hooks/use-theme.ts +0 -15
- package/packages/ui-web/src/hooks/use-toast.ts +0 -189
- package/packages/ui-web/src/hover-card.test.tsx +0 -48
- package/packages/ui-web/src/hover-card.tsx +0 -35
- package/packages/ui-web/src/index.ts +0 -474
- package/packages/ui-web/src/input.test.tsx +0 -33
- package/packages/ui-web/src/input.tsx +0 -23
- package/packages/ui-web/src/label.test.tsx +0 -27
- package/packages/ui-web/src/label.tsx +0 -21
- package/packages/ui-web/src/lib/utils.ts +0 -6
- package/packages/ui-web/src/menubar.test.tsx +0 -92
- package/packages/ui-web/src/menubar.tsx +0 -244
- package/packages/ui-web/src/navigation-menu.test.tsx +0 -53
- package/packages/ui-web/src/navigation-menu.tsx +0 -143
- package/packages/ui-web/src/pagination.test.tsx +0 -57
- package/packages/ui-web/src/pagination.tsx +0 -107
- package/packages/ui-web/src/popover.test.tsx +0 -31
- package/packages/ui-web/src/popover.tsx +0 -45
- package/packages/ui-web/src/progress.test.tsx +0 -18
- package/packages/ui-web/src/progress.tsx +0 -28
- package/packages/ui-web/src/radio-group.test.tsx +0 -39
- package/packages/ui-web/src/radio-group.tsx +0 -41
- package/packages/ui-web/src/resizable.test.tsx +0 -23
- package/packages/ui-web/src/resizable.tsx +0 -59
- package/packages/ui-web/src/scroll-area.test.tsx +0 -15
- package/packages/ui-web/src/scroll-area.tsx +0 -42
- package/packages/ui-web/src/search.test.tsx +0 -81
- package/packages/ui-web/src/search.tsx +0 -87
- package/packages/ui-web/src/select.test.tsx +0 -42
- package/packages/ui-web/src/select.tsx +0 -169
- package/packages/ui-web/src/separator.test.tsx +0 -16
- package/packages/ui-web/src/separator.tsx +0 -24
- package/packages/ui-web/src/setupTests.ts +0 -114
- package/packages/ui-web/src/sheet.test.tsx +0 -48
- package/packages/ui-web/src/sheet.tsx +0 -136
- package/packages/ui-web/src/skeleton.test.tsx +0 -13
- package/packages/ui-web/src/skeleton.tsx +0 -10
- package/packages/ui-web/src/slider.test.tsx +0 -18
- package/packages/ui-web/src/slider.tsx +0 -27
- package/packages/ui-web/src/sonner.test.tsx +0 -13
- package/packages/ui-web/src/sonner.tsx +0 -32
- package/packages/ui-web/src/switch.test.tsx +0 -22
- package/packages/ui-web/src/switch.tsx +0 -31
- package/packages/ui-web/src/table.test.tsx +0 -29
- package/packages/ui-web/src/table.tsx +0 -104
- package/packages/ui-web/src/tabs.test.tsx +0 -43
- package/packages/ui-web/src/tabs.tsx +0 -62
- package/packages/ui-web/src/text.test.tsx +0 -34
- package/packages/ui-web/src/text.tsx +0 -55
- package/packages/ui-web/src/textarea.test.tsx +0 -21
- package/packages/ui-web/src/textarea.tsx +0 -25
- package/packages/ui-web/src/theme-provider.tsx +0 -15
- package/packages/ui-web/src/theme-toggle.test.tsx +0 -49
- package/packages/ui-web/src/theme-toggle.tsx +0 -92
- package/packages/ui-web/src/toast.test.tsx +0 -42
- package/packages/ui-web/src/toast.tsx +0 -111
- package/packages/ui-web/src/toaster.tsx +0 -27
- package/packages/ui-web/src/toggle-group.test.tsx +0 -40
- package/packages/ui-web/src/toggle-group.tsx +0 -55
- package/packages/ui-web/src/toggle.test.tsx +0 -21
- package/packages/ui-web/src/toggle.tsx +0 -24
- package/packages/ui-web/src/tooltip.tsx +0 -51
- package/packages/ui-web/tsconfig.json +0 -24
- package/packages/ui-web/vite.config.ts +0 -21
- package/postcss.config.mjs +0 -5
- package/release-please-config.json +0 -60
- package/scripts/build-registry.ts +0 -80
- package/scripts/sync-tokens.ts +0 -86
- package/scripts/validate.ts +0 -74
- package/src/globals.css +0 -146
- package/src/index.ts +0 -4
- package/src/setupTests.ts +0 -47
- package/src/types/nativewind.d.ts +0 -19
- package/tailwind.config.js +0 -48
- package/tsconfig.build.json +0 -22
- package/tsconfig.json +0 -30
- package/tsconfig.node.json +0 -11
- package/vite.config.ts +0 -106
- package/vitest.config.ts +0 -23
- package/wrangler.toml +0 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.5.2](https://github.com/Garcia-Ventures/gvtech-design/compare/design-system-v2.5.1...design-system-v2.5.2) (2026-02-20)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **ci:** migrate npm publish flags to package.json publishConfig and use yarn npm publish. ([df8f11e](https://github.com/Garcia-Ventures/gvtech-design/commit/df8f11e64eb6fb2b56f5f84b095f0332ee087ab9))
|
|
9
|
+
|
|
10
|
+
## [2.5.1](https://github.com/Garcia-Ventures/gvtech-design/compare/design-system-v2.5.0...design-system-v2.5.1) (2026-02-20)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* force release ([b28668d](https://github.com/Garcia-Ventures/gvtech-design/commit/b28668da1f27650c46983f01cd95794361572960))
|
|
16
|
+
* format ([152e9f7](https://github.com/Garcia-Ventures/gvtech-design/commit/152e9f77b236393ce2ac6e33e8c6a61a4af482c2))
|
|
17
|
+
|
|
3
18
|
## [2.5.0](https://github.com/Garcia-Ventures/gvtech-design/compare/design-system-v2.4.0...design-system-v2.5.0) (2026-02-20)
|
|
4
19
|
|
|
5
20
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gv-tech/design-system",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "Garcia Ventures react design system",
|
|
5
5
|
"repository": "git@github.com:Garcia-Ventures/gvtech-design.git",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
"module": "dist/index.es.js",
|
|
30
30
|
"types": "dist/index.d.ts",
|
|
31
31
|
"style": "dist/design-system.css",
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
],
|
|
32
35
|
"workspaces": [
|
|
33
36
|
"packages/*",
|
|
34
37
|
"apps/*"
|
|
@@ -167,4 +170,4 @@
|
|
|
167
170
|
"access": "public",
|
|
168
171
|
"provenance": true
|
|
169
172
|
}
|
|
170
|
-
}
|
|
173
|
+
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dogfood-components
|
|
3
|
-
description: Guidelines for using library components within the documentation site itself to ensure consistency and showcase real-world usage.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Dogfooding Components Skill
|
|
7
|
-
|
|
8
|
-
Use this skill whenever you are modifying the documentation site structure, headers, or layout. The goal is to maximize the use of our own UI components within the documentation logic itself (dogfooding).
|
|
9
|
-
|
|
10
|
-
## Workflow
|
|
11
|
-
|
|
12
|
-
### 1. Analysis
|
|
13
|
-
|
|
14
|
-
- **Identify Ad-hoc UI**: Look for custom HTML or static elements in the docs site (`src/App.tsx`, `src/components/docs/CombinedDocsLayout.tsx`, `src/pages/`) that replicate component functionality.
|
|
15
|
-
- **Check Library availability**: Verify if a corresponding component exists in `@gv-tech/ui-web` (e.g., Breadcrumbs, Tabs, Alerts, Badges).
|
|
16
|
-
|
|
17
|
-
### 2. Implementation
|
|
18
|
-
|
|
19
|
-
- **Prioritize Library Components**: Replace custom implementations with components from `@gv-tech/ui-web`.
|
|
20
|
-
- **Pass Real State**: Connect these components to the documentation's state (e.g., using `activeItem` with `Breadcrumb` or `Tabs`).
|
|
21
|
-
- **Consistent Styling**: Use the same variants and props that we recommend to our users.
|
|
22
|
-
|
|
23
|
-
### 3. Validation
|
|
24
|
-
|
|
25
|
-
- **Functional Check**: Ensure the component behaves correctly within the documentation context (e.g., navigation links work).
|
|
26
|
-
- **Visual Check**: Verify the component renders with the correct theme and layout in the docs.
|
|
27
|
-
|
|
28
|
-
## Checklist
|
|
29
|
-
|
|
30
|
-
- [ ] Identified custom UI elements that can be replaced.
|
|
31
|
-
- [ ] Used components from `@gv-tech/ui-web` instead of ad-hoc HTML/CSS.
|
|
32
|
-
- [ ] Component is correctly wired to relevant documentation state.
|
|
33
|
-
- [ ] Verified that navigation and interaction remains functional.
|
|
34
|
-
- [ ] `yarn validate` passes successfully.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maintain-component
|
|
3
|
-
description: Guidelines for creating or updating UI components, ensuring tests and documentation stay in sync.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Component Maintenance Skill
|
|
7
|
-
|
|
8
|
-
Use this skill whenever you are tasked with creating a new UI component or modifying an existing one in the `gvtech-design` library. All components must follow the monorepo-based architecture to support Web, React Native, and shared contracts.
|
|
9
|
-
|
|
10
|
-
## Architecture Standards
|
|
11
|
-
|
|
12
|
-
Components are split across three primary packages:
|
|
13
|
-
|
|
14
|
-
1. **`@gv-tech/ui-core`**: Shared contracts/interfaces.
|
|
15
|
-
- Location: `packages/ui-core/src/contracts/[name].ts`
|
|
16
|
-
- Role: Defines the "Truth" of what a component's API should be.
|
|
17
|
-
2. **`@gv-tech/ui-web`**: Web (DOM/Radix) implementation.
|
|
18
|
-
- Location: `packages/ui-web/src/[name].tsx`
|
|
19
|
-
- Tests: `packages/ui-web/src/[name].test.tsx`
|
|
20
|
-
3. **`@gv-tech/ui-native`**: React Native (NativeWind) implementation.
|
|
21
|
-
- Location: `packages/ui-native/src/[name].tsx`
|
|
22
|
-
|
|
23
|
-
## Workflow
|
|
24
|
-
|
|
25
|
-
### 1. Contract Definition (Core)
|
|
26
|
-
|
|
27
|
-
- Always start by defining or updating the base props in `packages/ui-core/src/contracts/[name].ts`.
|
|
28
|
-
- Export these props from `packages/ui-core/src/index.ts`.
|
|
29
|
-
- **CRITICAL**: Use specific types. Avoid `any`. Use `unknown` or specific interfaces for extension.
|
|
30
|
-
|
|
31
|
-
### 2. Platform Implementation
|
|
32
|
-
|
|
33
|
-
- **Web**:
|
|
34
|
-
- Build the implementation in `packages/ui-web/src/[name].tsx`.
|
|
35
|
-
- Import contracts from `@gv-tech/ui-core`.
|
|
36
|
-
- Import internal utilities (like `cn`) from `./lib/utils` (relative).
|
|
37
|
-
- Export the component and its types from `packages/ui-web/src/index.ts`.
|
|
38
|
-
- **Native**:
|
|
39
|
-
- Build the implementation in `packages/ui-native/src/[name].tsx`.
|
|
40
|
-
- If not yet implemented, provide a "Not implemented" shim.
|
|
41
|
-
- Import internal utilities from `./lib/utils` (relative).
|
|
42
|
-
- Export the component from `packages/ui-native/src/index.ts`.
|
|
43
|
-
|
|
44
|
-
### 3. Documentation & Registry
|
|
45
|
-
|
|
46
|
-
- **Documentation Implementation**:
|
|
47
|
-
- Create/Update web-specific docs in `src/pages/web/[ComponentName]Docs.tsx`.
|
|
48
|
-
- Create/Update native-specific docs in `src/pages/native/[ComponentName]Docs.tsx`.
|
|
49
|
-
- **Structure**: Documentation files should **not** use `ComponentSection` (this is now handled by the layout). They should return a React Fragment `<>...</>` containing `ComponentShowcase` and implementations.
|
|
50
|
-
- **Register in App.tsx**:
|
|
51
|
-
- Add the new route to `src/App.tsx`.
|
|
52
|
-
- Use `<CombinedDocsLayout />` and pass the `title`, `description`, `web`, and `native` implementations as props.
|
|
53
|
-
- **Context**: Ensure `PropsTable` matches the `ui-core` contract and covers both platforms if they differ.
|
|
54
|
-
- **Registry**: Run `yarn build:registry` to update the component JSON files in `public/registry`.
|
|
55
|
-
|
|
56
|
-
### 4. Verification
|
|
57
|
-
|
|
58
|
-
- **Full Suite**: Run `yarn validate` from the root. This runs:
|
|
59
|
-
- `sync-tokens`: Ensures design tokens are updated.
|
|
60
|
-
- `lint`: Checks project-wide ESLint (no `any`, no unused vars).
|
|
61
|
-
- `tsc`: Verifies TypeScript types across all workspaces.
|
|
62
|
-
- `test`: Runs Vitest across all packages.
|
|
63
|
-
- `build`: Verifies Vite/Nx build status.
|
|
64
|
-
|
|
65
|
-
## Checklist
|
|
66
|
-
|
|
67
|
-
- [ ] Contract updated in `packages/ui-core/src/contracts/`.
|
|
68
|
-
- [ ] Props exported from `packages/ui-core/src/index.ts`.
|
|
69
|
-
- [ ] Web implementation updated in `packages/ui-web/src/`.
|
|
70
|
-
- [ ] Native implementation/shim updated in `packages/ui-native/src/`.
|
|
71
|
-
- [ ] Exported via `index.ts` in respective packages.
|
|
72
|
-
- [ ] Web docs updated in `src/pages/web/` (without `ComponentSection`).
|
|
73
|
-
- [ ] Native docs updated in `src/pages/native/` (without `ComponentSection`).
|
|
74
|
-
- [ ] Route registered in `src/App.tsx` using `CombinedDocsLayout` with `title` and `description`.
|
|
75
|
-
- [ ] `yarn build:registry` run to update public registry.
|
|
76
|
-
- [ ] `yarn validate` passes successfully (Green state).
|
|
77
|
-
- [ ] **Strict**: No `any` types used in new/modified code.
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Running the native playground on an Android emulator
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Native Playground — Local Development
|
|
6
|
-
|
|
7
|
-
This workflow starts the Expo dev server for `apps/native-playground` and connects it to a local Android emulator.
|
|
8
|
-
|
|
9
|
-
## Prerequisites
|
|
10
|
-
|
|
11
|
-
- Android Studio installed (at `/snap/bin/android-studio`)
|
|
12
|
-
- At least one AVD configured. Available AVDs:
|
|
13
|
-
- `Pixel_9` (recommended)
|
|
14
|
-
- `Medium_Phone_API_36.0`
|
|
15
|
-
- Yarn dependencies installed (`yarn install` from repo root)
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Step 1: Boot the Android Emulator
|
|
20
|
-
|
|
21
|
-
Open a terminal and start the emulator (leave it running in the background):
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
$ANDROID_HOME/emulator/emulator -avd Pixel_9 &
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Wait for the emulator to fully boot to the home screen (~30–60 seconds).
|
|
28
|
-
|
|
29
|
-
> **Tip:** You can also launch the emulator from Android Studio → Device Manager → ▶ Run.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Step 2: Start the Expo Dev Server
|
|
34
|
-
|
|
35
|
-
// turbo
|
|
36
|
-
From the **monorepo root**, run:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
yarn native:android
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
This runs `npx nx run native-playground:start --android`, which:
|
|
43
|
-
|
|
44
|
-
1. Starts the Metro bundler (NativeWind + Nx monorepo-aware)
|
|
45
|
-
2. Detects the running emulator
|
|
46
|
-
3. Installs Expo Go (or the dev client) on the emulator automatically
|
|
47
|
-
4. Opens the playground app
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Alternative Commands
|
|
52
|
-
|
|
53
|
-
| Command | Description |
|
|
54
|
-
| ------------------------------------------ | ------------------------------------------------------------------ |
|
|
55
|
-
| `yarn native` | Start Expo with interactive picker (QR + emulator options) |
|
|
56
|
-
| `yarn native:android` | Start and immediately open on Android emulator |
|
|
57
|
-
| `yarn native:clear` | Start Android with cleared Metro cache (fixes stale bundle issues) |
|
|
58
|
-
| `npx nx run native-playground:run-android` | Full native build (slower, no Expo Go) |
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Monorepo Hot Reload
|
|
63
|
-
|
|
64
|
-
Changes to `packages/ui-native` will automatically hot-reload in the emulator because `metro.config.js` uses `withNxMetro`, which watches all monorepo workspace packages.
|
|
65
|
-
|
|
66
|
-
If hot reload stops working, run `yarn native:clear` to reset the bundler cache.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Troubleshooting
|
|
71
|
-
|
|
72
|
-
**Emulator not detected:**
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
adb devices # should list the emulator
|
|
76
|
-
adb kill-server && adb start-server # restart ADB if needed
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Metro can't resolve monorepo packages:**
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
yarn install # re-link workspace packages
|
|
83
|
-
yarn native:clear # clear bundler cache
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**`ANDROID_HOME` not set:**
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
export ANDROID_HOME=$HOME/Android/Sdk
|
|
90
|
-
export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Add these to your `~/.zshrc` for persistence.
|
package/.github/CODEOWNERS
DELETED
package/.github/CONTRIBUTING.md
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Contributing Guidelines
|
|
2
|
-
|
|
3
|
-
This project uses **Vite** for development, builds, and as a component playground.
|
|
4
|
-
|
|
5
|
-
## Available Scripts
|
|
6
|
-
|
|
7
|
-
In the project directory, you can run:
|
|
8
|
-
|
|
9
|
-
### `yarn dev`
|
|
10
|
-
|
|
11
|
-
Runs the Vite development server for local development.
|
|
12
|
-
|
|
13
|
-
Local: [http://localhost:5173](http://localhost:5173)
|
|
14
|
-
|
|
15
|
-
Live: [https://gvtech-design.pages.dev/](https://gvtech-design.pages.dev/)
|
|
16
|
-
|
|
17
|
-
The page will reload if you make edits, and HMR will update components instantly. You will also see any lint errors in the console.
|
|
18
|
-
|
|
19
|
-
### `yarn test`
|
|
20
|
-
|
|
21
|
-
Runs the test suite using **Vitest** (configured in `vitest.config.ts`). For interactive watch mode run `yarn test` locally; for CI the project uses `yarn test:ci`.
|
|
22
|
-
|
|
23
|
-
See the Vitest docs for more information: <https://vitest.dev/guide/>.
|
|
24
|
-
|
|
25
|
-
### `yarn build`
|
|
26
|
-
|
|
27
|
-
Builds the library and the component registry using Vite.
|
|
28
|
-
|
|
29
|
-
### `yarn build:site`
|
|
30
|
-
|
|
31
|
-
Builds the playground site as a production-ready application.
|
|
32
|
-
|
|
33
|
-
### Build configuration
|
|
34
|
-
|
|
35
|
-
This project uses Vite for development and builds. If you need to customize build behavior, edit `vite.config.ts` or add Vite plugins. This project does not use `react-scripts` or `eject`.
|
|
36
|
-
|
|
37
|
-
## Learn More
|
|
38
|
-
|
|
39
|
-
- Vite docs: <https://vitejs.dev/> (build, config and plugins)
|
|
40
|
-
- Vitest docs: <https://vitest.dev/> (testing guide)
|
|
41
|
-
|
|
42
|
-
To customize build behavior, edit `vite.config.ts` or add Vite plugins. For component details and testing examples, check the `src` directory.
|
package/.github/FUNDING.yml
DELETED
package/.github/RELEASING.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Releasing & Publishing 🔁
|
|
2
|
-
|
|
3
|
-
This document explains how releases and publishing are handled for this repository and how to test or modify the release flow.
|
|
4
|
-
|
|
5
|
-
## Release Please (automated Release PRs)
|
|
6
|
-
|
|
7
|
-
**Overview**
|
|
8
|
-
|
|
9
|
-
- We use `googleapis/release-please-action` to create Release PRs and tags based on Conventional Commits.
|
|
10
|
-
|
|
11
|
-
**One-time setup**
|
|
12
|
-
|
|
13
|
-
1. Create a **Personal Access Token (PAT)** with `repo` (write) permissions and a short expiration.
|
|
14
|
-
2. Add the PAT as a repository secret named `RELEASE_PLEASE_TOKEN` (Repository → Settings → Secrets and variables → Actions → New repository secret).
|
|
15
|
-
3. Confirm branch protection rules allow the PAT or the actor to create tags/releases, or allow the bot account to bypass restrictions where necessary.
|
|
16
|
-
|
|
17
|
-
**Testing**
|
|
18
|
-
|
|
19
|
-
- Trigger the action manually: GitHub → Actions → _Release Please_ → _Run workflow_ → choose `main` and run.
|
|
20
|
-
- A Release PR (usually titled `chore(release): release X.Y.Z`) should be created. Review the changelog and changes in the PR.
|
|
21
|
-
- Merge the PR into `main` to create a tag/release. If using a PAT (not `GITHUB_TOKEN`), downstream workflows triggered by `release` events should run normally.
|
|
22
|
-
|
|
23
|
-
**Notes**
|
|
24
|
-
|
|
25
|
-
- Make sure your commits follow **Conventional Commits** to get meaningful changelogs and correct SemVer bumps.
|
|
26
|
-
- If release PRs are not being created, confirm that the `RELEASE_PLEASE_TOKEN` is present and has proper repository permissions.
|
|
27
|
-
|
|
28
|
-
## Publishing to npm (current process)
|
|
29
|
-
|
|
30
|
-
- The CI publish step currently expects `NPM_TOKEN` as a repository secret (Stored in repository secrets as `NPM_TOKEN`).
|
|
31
|
-
- Publishing is currently automated via GitHub Actions using the `@gv-tech` scope.
|
|
32
|
-
|
|
33
|
-
## Troubleshooting & Tips
|
|
34
|
-
|
|
35
|
-
- **Release PR not generated**: Confirm commits use Conventional Commit messages, check action logs, and ensure the PAT is set.
|
|
36
|
-
- **Downstream workflows not running on release**: Ensure releases/tags are created with a PAT (not `GITHUB_TOKEN`), otherwise they won't trigger other workflows.
|
|
37
|
-
- **Scoped package publishing**: If you plan to publish to a scope (e.g., `@gvtech`), update `package.json.name` and set `publishConfig.access` to `public` for public scoped packages.
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# GVTech Design System - AI Coding Guidelines
|
|
2
|
-
|
|
3
|
-
## Architecture Overview
|
|
4
|
-
|
|
5
|
-
This is a React component library built with **TypeScript**, **Tailwind CSS**, and **Radix UI**, using **Vite** for development and bundling. It provides a comprehensive set of accessible UI components based on the shadcn/ui pattern.
|
|
6
|
-
|
|
7
|
-
**Key Structure:**
|
|
8
|
-
|
|
9
|
-
- `src/components/ui/` - Core UI components (primitive components)
|
|
10
|
-
- `src/lib/utils.ts` - Shared utilities (e.g., `cn` for Tailwind merging)
|
|
11
|
-
- `src/index.ts` - Library entry point exporting public components
|
|
12
|
-
- `src/App.tsx` - Playground application used for development and documentation
|
|
13
|
-
|
|
14
|
-
**Build System:**
|
|
15
|
-
|
|
16
|
-
- Vite library build outputs ES modules and CommonJS.
|
|
17
|
-
- Externalizes **React** and **React DOM**.
|
|
18
|
-
- Use `yarn build` to build both the library and the component registry.
|
|
19
|
-
- Use `yarn build:site` to build the playground/documentation site.
|
|
20
|
-
|
|
21
|
-
## Component Patterns
|
|
22
|
-
|
|
23
|
-
**Styling:** Use **Tailwind CSS** utility classes. For complex conditional classes, use the `cn()` utility.
|
|
24
|
-
|
|
25
|
-
```tsx
|
|
26
|
-
import { cn } from '@/lib/utils';
|
|
27
|
-
|
|
28
|
-
export function MyComponent({ className, ...props }) {
|
|
29
|
-
return <div className={cn('bg-background text-foreground p-4', className)} {...props} />;
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**Props & Types:**
|
|
34
|
-
|
|
35
|
-
- Use TypeScript `interface` or `type` for component props.
|
|
36
|
-
- Extend standard HTML attributes where appropriate (e.g., `React.ButtonHTMLAttributes<HTMLButtonElement>`).
|
|
37
|
-
- Use `React.forwardRef` for components that need to expose their underlying DOM element.
|
|
38
|
-
|
|
39
|
-
## Development Workflow
|
|
40
|
-
|
|
41
|
-
- **Local dev:** `yarn dev` (runs the Vite playground site)
|
|
42
|
-
- **Build lib:** `yarn build` (outputs to `dist/` and `public/registry/`)
|
|
43
|
-
- **Build site:** `yarn build:site` (outputs to `dist-site/`)
|
|
44
|
-
- **Test:** `yarn test` (Vitest with jsdom)
|
|
45
|
-
- **Lint:** `yarn lint` (ESLint)
|
|
46
|
-
- **Format:** `yarn format` (Prettier)
|
|
47
|
-
|
|
48
|
-
**Testing Setup:**
|
|
49
|
-
|
|
50
|
-
- Uses `@testing-library/react` and `@testing-library/jest-dom`.
|
|
51
|
-
- Tests are co-located with components: `{component}.test.tsx`.
|
|
52
|
-
- Run `yarn test:ci` for CI environments.
|
|
53
|
-
|
|
54
|
-
## Integration Points
|
|
55
|
-
|
|
56
|
-
- **Vite:** Handles development, site building, and library bundling.
|
|
57
|
-
- **Cloudflare Pages:** Primary deployment target for the playground site: [https://gvtech-design.pages.dev/](https://gvtech-design.pages.dev/) (configured via `wrangler.toml`).
|
|
58
|
-
- **ESLint + Prettier:** Code quality and formatting.
|
|
59
|
-
- **Husky:** Git hooks for pre-commit checks.
|
|
60
|
-
|
|
61
|
-
Reference existing components in `src/components/ui/` for implementation patterns.
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on: [push, pull_request]
|
|
4
|
-
|
|
5
|
-
jobs:
|
|
6
|
-
fossa-scan:
|
|
7
|
-
runs-on: ubuntu-latest
|
|
8
|
-
steps:
|
|
9
|
-
- name: "Checkout Code"
|
|
10
|
-
uses: actions/checkout@v6
|
|
11
|
-
|
|
12
|
-
- name: "Run FOSSA Scan"
|
|
13
|
-
uses: fossas/fossa-action@main # Use a specific version if locking is preferred
|
|
14
|
-
with:
|
|
15
|
-
api-key: ${{ secrets.FOSSA_API_KEY }}
|
|
16
|
-
|
|
17
|
-
test:
|
|
18
|
-
runs-on: ubuntu-latest
|
|
19
|
-
strategy:
|
|
20
|
-
matrix:
|
|
21
|
-
node: ["22", "24"]
|
|
22
|
-
steps:
|
|
23
|
-
- uses: actions/checkout@v6
|
|
24
|
-
- name: Use Node.js ${{ matrix.node }}
|
|
25
|
-
uses: actions/setup-node@v6
|
|
26
|
-
with:
|
|
27
|
-
node-version: ${{ matrix.node }}
|
|
28
|
-
cache: "yarn"
|
|
29
|
-
|
|
30
|
-
- name: Cache Yarn (optional extra)
|
|
31
|
-
uses: actions/cache@v4
|
|
32
|
-
with:
|
|
33
|
-
path: |
|
|
34
|
-
.yarn/cache
|
|
35
|
-
.yarn/unplugged
|
|
36
|
-
.yarn/build-state.yml
|
|
37
|
-
.yarn/install-state.gz
|
|
38
|
-
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
39
|
-
restore-keys: |
|
|
40
|
-
${{ runner.os }}-yarn-
|
|
41
|
-
|
|
42
|
-
- name: Install dependencies
|
|
43
|
-
run: yarn install
|
|
44
|
-
|
|
45
|
-
- name: Restore Nx Cache
|
|
46
|
-
uses: actions/cache@v4
|
|
47
|
-
with:
|
|
48
|
-
path: .nx/cache
|
|
49
|
-
key: ${{ runner.os }}-nx-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}-${{ github.sha }}
|
|
50
|
-
restore-keys: |
|
|
51
|
-
${{ runner.os }}-nx-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}-
|
|
52
|
-
${{ runner.os }}-nx-${{ matrix.node }}-
|
|
53
|
-
|
|
54
|
-
- name: Format
|
|
55
|
-
run: yarn format:ci
|
|
56
|
-
|
|
57
|
-
- name: Lint
|
|
58
|
-
run: yarn lint
|
|
59
|
-
|
|
60
|
-
- name: Run Tests
|
|
61
|
-
run: yarn test:ci
|
|
62
|
-
|
|
63
|
-
build:
|
|
64
|
-
runs-on: ubuntu-latest
|
|
65
|
-
needs: [test]
|
|
66
|
-
steps:
|
|
67
|
-
- uses: actions/checkout@v6
|
|
68
|
-
|
|
69
|
-
- name: Use Node.js 24
|
|
70
|
-
uses: actions/setup-node@v6
|
|
71
|
-
with:
|
|
72
|
-
node-version: 24
|
|
73
|
-
cache: "yarn"
|
|
74
|
-
|
|
75
|
-
- name: Install dependencies
|
|
76
|
-
run: yarn install --immutable
|
|
77
|
-
|
|
78
|
-
- name: Restore Nx Cache
|
|
79
|
-
uses: actions/cache@v4
|
|
80
|
-
with:
|
|
81
|
-
path: .nx/cache
|
|
82
|
-
key: ${{ runner.os }}-nx-24-${{ hashFiles('yarn.lock') }}-${{ github.sha }}
|
|
83
|
-
restore-keys: |
|
|
84
|
-
${{ runner.os }}-nx-24-${{ hashFiles('yarn.lock') }}-
|
|
85
|
-
${{ runner.os }}-nx-24-
|
|
86
|
-
|
|
87
|
-
- name: Build Library
|
|
88
|
-
run: yarn build
|
|
89
|
-
|
|
90
|
-
- name: Build Site
|
|
91
|
-
run: yarn build:site
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
name: "CodeQL"
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
schedule:
|
|
9
|
-
- cron: "34 7 * * 4"
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
analyze:
|
|
13
|
-
name: Analyze
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
|
|
16
|
-
strategy:
|
|
17
|
-
fail-fast: false
|
|
18
|
-
matrix:
|
|
19
|
-
language: ["javascript"]
|
|
20
|
-
|
|
21
|
-
steps:
|
|
22
|
-
- name: Checkout repository
|
|
23
|
-
uses: actions/checkout@v4
|
|
24
|
-
|
|
25
|
-
- name: Initialize CodeQL
|
|
26
|
-
uses: github/codeql-action/init@v2
|
|
27
|
-
with:
|
|
28
|
-
languages: ${{ matrix.language }}
|
|
29
|
-
|
|
30
|
-
- name: Autobuild
|
|
31
|
-
uses: github/codeql-action/autobuild@v2
|
|
32
|
-
|
|
33
|
-
- name: Perform CodeQL Analysis
|
|
34
|
-
uses: github/codeql-action/analyze@v2
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
name: Release Please
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
workflow_dispatch:
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
id-token: write # For OIDC trusted publishing
|
|
10
|
-
contents: write # For tags and releases
|
|
11
|
-
pull-requests: write # For creating release PRs
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
release:
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
steps:
|
|
17
|
-
- name: Checkout
|
|
18
|
-
uses: actions/checkout@v6
|
|
19
|
-
|
|
20
|
-
- name: Run release-please
|
|
21
|
-
id: release
|
|
22
|
-
uses: googleapis/release-please-action@v4.4
|
|
23
|
-
with:
|
|
24
|
-
manifest-file: .release-please-manifest.json
|
|
25
|
-
config-file: release-please-config.json
|
|
26
|
-
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
|
|
27
|
-
|
|
28
|
-
- name: Show notice
|
|
29
|
-
run: echo "If a release PR is created, review and merge it to create a tag/release."
|
|
30
|
-
|
|
31
|
-
- name: Checkout Code
|
|
32
|
-
if: ${{ steps.release.outputs.releases_created }}
|
|
33
|
-
uses: actions/checkout@v6
|
|
34
|
-
|
|
35
|
-
- name: Use Node.js 24
|
|
36
|
-
if: ${{ steps.release.outputs.releases_created }}
|
|
37
|
-
uses: actions/setup-node@v6
|
|
38
|
-
with:
|
|
39
|
-
node-version: 24
|
|
40
|
-
registry-url: "https://registry.npmjs.org"
|
|
41
|
-
cache: "yarn"
|
|
42
|
-
|
|
43
|
-
- name: Install dependencies
|
|
44
|
-
if: ${{ steps.release.outputs.releases_created }}
|
|
45
|
-
run: yarn install --immutable
|
|
46
|
-
|
|
47
|
-
- name: Build
|
|
48
|
-
if: ${{ steps.release.outputs.releases_created }}
|
|
49
|
-
run: yarn build
|
|
50
|
-
|
|
51
|
-
- name: Publish to npm
|
|
52
|
-
if: ${{ steps.release.outputs.releases_created }}
|
|
53
|
-
env:
|
|
54
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
55
|
-
run: |
|
|
56
|
-
# Iterate over each released package path
|
|
57
|
-
echo '${{ steps.release.outputs.paths_released }}' | jq -r '.[]' | while read -r path; do
|
|
58
|
-
echo "--- Publishing package at: $path ---"
|
|
59
|
-
cd "$path"
|
|
60
|
-
|
|
61
|
-
# Skip if the package is private
|
|
62
|
-
if jq -e '.private == true' package.json > /dev/null; then
|
|
63
|
-
echo "Skipping private package: $(jq -r '.name' package.json)"
|
|
64
|
-
cd - > /dev/null
|
|
65
|
-
continue
|
|
66
|
-
fi
|
|
67
|
-
|
|
68
|
-
# Build the package if a build script exists
|
|
69
|
-
if jq -e '.scripts.build' package.json > /dev/null; then
|
|
70
|
-
echo "Building $(jq -r '.name' package.json)..."
|
|
71
|
-
yarn build
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
# Publish to npm
|
|
75
|
-
echo "Publishing $(jq -r '.name' package.json)..."
|
|
76
|
-
npm publish --provenance --access public
|
|
77
|
-
|
|
78
|
-
cd - > /dev/null
|
|
79
|
-
done
|
package/.husky/pre-commit
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
npx lint-staged
|
package/.prettierignore
DELETED
package/.tool-versions
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
nodejs 24.13.1
|
package/.vscode/launch.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Use IntelliSense to learn about possible attributes.
|
|
3
|
-
// Hover to view descriptions of existing attributes.
|
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"configurations": [
|
|
7
|
-
{
|
|
8
|
-
"type": "chrome",
|
|
9
|
-
"request": "launch",
|
|
10
|
-
"name": "React app",
|
|
11
|
-
"url": "http://localhost:3000",
|
|
12
|
-
"webRoot": "${workspaceFolder}"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"type": "chrome",
|
|
16
|
-
"request": "launch",
|
|
17
|
-
"name": "Storybook",
|
|
18
|
-
"url": "http://localhost:6006",
|
|
19
|
-
"webRoot": "${workspaceFolder}"
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|