feat: Add missing shadcn components and improve docs#32
Merged
stevethomas merged 10 commits intomainfrom Jan 19, 2026
Merged
Conversation
- Add Alert, Breadcrumb, Context Menu, Navigation Menu components - Add Sidebar component with mobile support - Add ResponsiveTable custom component with haptic feedback - Add composables: useMobileNavigation, useHapticFeedback - Improve landing page with feature cards and quick links - Enhance Button showcase with variants, sizes, icons, states - Add showcase pages for all new components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extract navigation config to separate module to preserve route hierarchy - Fix SidebarNavigation TypeScript types - Use collapsible="none" on Sidebar demo to prevent fixed positioning Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Sidebar component uses fixed positioning which conflicts with embedding it in the docs page layout. Replaced with documentation listing available components and link to shadcn/ui docs. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes TypeScript module resolution when using the package with projects that respect package.json exports. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Forms: - Calendar, Range Calendar (date selection) - Radio Group, Toggle, Toggle Group - Number Field, Pin Input, Tags Input - Field, Form (vee-validate integration), Input Group Components: - Aspect Ratio, Button Group, Hover Card - Kbd, Menubar, Scroll Area - Sonner (modern toast), Spinner, Item Page Layout: - Resizable (panels), Stepper, Chart (unovis integration) Also includes: - Showcase pages for all new components - Navigation and routing updates - Fixed CalendarHeading/RangeCalendarHeading slot bindings - Fixed Sonner export naming conflict - Added @types/d3-dispatch override for TS compatibility - Added skipLibCheck to tsconfig.json Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a custom DatePicker component that composes Calendar, Popover, and Button components. Features include: - v-model support for DateValue - Custom placeholder text - Disabled state - Custom class styling Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add DateFormatter for human-readable date display (e.g., "January 15, 2025") - Add layout="month-and-year" for month/year dropdown navigation - Auto-close popover when date is selected - Align popover to start Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix failing textarea tests (removed non-existent charLimit feature tests) - Update textarea showcase to remove invalid char-limit prop - Add smoke tests for 30 components missing test coverage: alert, aspect-ratio, breadcrumb, button-group, calendar, chart, context-menu, date-picker, field, form, hover-card, input-group, item, kbd, menubar, navigation-menu, number-field, pin-input, radio-group, range-calendar, resizable, scroll-area, separator, sidebar, sonner, spinner, stepper, tags-input, toggle, toggle-group Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove DatePicker component (using upstream Calendar instead) - Remove stale type definitions for deleted components - Fix build order: vite build before type-check so emptyOutDir works - Add dist/index-*.js to gitignore (docs app bundle) - Set emptyOutDir: true to prevent stale files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
| inheritAttrs: false, | ||
| }) | ||
|
|
||
| const { isMobile, state, openMobile, setOpenMobile } = useSidebar() |
There was a problem hiding this comment.
Bug: The Sidebar component unconditionally calls useSidebar(), which will throw an error if not wrapped in a SidebarProvider, even when collapsible="none" and the context is not used.
Severity: HIGH
Suggested Fix
The call to useSidebar() should be made conditional. It should only be executed when the collapsible prop is not equal to 'none', as the returned values are not used in that case. This will allow the component to be used in its static form without requiring a provider.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: src/components/sidebar/Sidebar.vue#L26
Potential issue: The `Sidebar` component calls the `useSidebar()` hook unconditionally
on line 26. This hook requires a `SidebarProvider` to be present in the parent component
tree and will throw an injection error if it's missing. However, when the component is
used with the prop `collapsible="none"`, it renders a static version that does not use
any of the values from the context. Therefore, any attempt to use `<Sidebar
collapsible="none">` without a `SidebarProvider` will cause the application to crash,
even though it should logically work as a standalone component in this configuration.
Did we get this right? 👍 / 👎 to inform future reviews.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds 23 additional shadcn-vue components to the Gooey component library, completing the coverage of components available in the official shadcn-vue registry.
New Components
Forms (11 components):
Components (10 components):
Page Layout (3 components):
Technical Changes
src/index.tsSonner)@types/d3-dispatchoverride for TypeScript compatibilityskipLibCheck: trueto tsconfig.jsonTest Coverage
Build Improvements
emptyOutDir: trueworks correctlydist/index-*.jsto gitignore (docs app bundle artifact)Not Available in Registry
Some components from the shadcn-vue docs sidebar are not yet available in the CLI registry:
Anything the reviewer needs to know
Test plan
npm run buildpassesnpm run lintpassesnpm run testpasses (88 tests)🤖 Generated with Claude Code