Skip to content

v2.0.0

Choose a tag to compare

@stevethomas stevethomas released this 20 Jan 04:39
· 31 commits to main since this release
c7571a4

Gooey v2.0.0

This is a major release that modernizes the Gooey component library with significant dependency upgrades, Tailwind CSS v4 support, and migration to reka-ui (the new upstream for shadcn-vue).

⚠️ Breaking Changes

radix-vue → reka-ui Migration

All components have been migrated from radix-vue to reka-ui, which is the new upstream dependency for shadcn-vue. This change aligns Gooey with the official shadcn-vue project direction.

Toast Component Removed

The Toast component has been removed in favor of Sonner, following the official shadcn-vue deprecation. Consumers using Toast should migrate to either:

  • Sonner - Modern toast notifications (shadcn-vue standard)
  • Flasher - Gooey's custom flash message component

Sonner CSS Import Required

Apps using Sonner or Flasher must now import the bundled CSS:

@import "@codinglabsau/gooey/style.css";

Dependencies Removed

  • @inertiajs/vue3 - No longer a dependency
  • @radix-icons/vue - Replaced with lucide-vue-next equivalents

ESLint Configuration

Migrated from .eslintrc.cjs to ESLint 9's flat config format (eslint.config.ts)


🚀 New Features

Tailwind CSS v4 Support

Gooey now supports both Tailwind CSS v3 and v4 with versioned presets:

For Tailwind v3:

// tailwind.config.js
const gooey = require('@codinglabsau/gooey/presets/v3')
module.exports = gooey.preset

For Tailwind v4:

/* app.css */
@import "tailwindcss";
@import "@codinglabsau/gooey/presets/v4/preset.css";

23 New Components

Added comprehensive coverage of shadcn-vue components:

Form Components:

  • Calendar, Range Calendar
  • Radio Group
  • Toggle, Toggle Group
  • Number Field
  • Pin Input
  • Tags Input
  • Field, Form (vee-validate integration)
  • Input Group

UI Components:

  • Aspect Ratio
  • Button Group
  • Hover Card
  • Kbd (keyboard shortcuts)
  • Menubar
  • Scroll Area
  • Sonner (toast notifications)
  • Spinner

Layout Components:

  • Resizable panels
  • Stepper (multi-step processes)
  • Chart (unovis integration)
  • Collapsible Two Column Layout

Collapsible Two Column Layout

New layout component with collapsible sidebar support for dashboard-style interfaces.


📦 Dependency Upgrades

Package From To
vue-use/core 9.13.0 14.1.0
typescript 4.9.5 5.9.3
vite 5.x 7.3.1
@vitejs/plugin-vue 5.x 6.0.3
cypress 14.5.4 15.9.0
tailwind-merge 2.6.0 3.4.0
prettier 2.8.8 3.8.0
eslint 8.x 9.x
lucide-vue-next 0.439.0 latest

🔧 Improvements

  • Type generation fixed: Build now properly generates TypeScript declarations in dist/types/
  • Sonner CSS bundled: vue-sonner/style.css automatically included - no manual import needed
  • Flasher standalone: Now uses vue-sonner directly without modifying Sonner component
  • xs button size: Re-added the xs variant that was removed in earlier shadcn-vue updates
  • Vite config: Converted vite.config.js to TypeScript (vite.config.ts)
  • Test coverage: All 64+ components now have test coverage (88+ tests)
  • Prettier Tailwind plugin: Added prettier-plugin-tailwindcss for automatic class ordering

📖 Migration Guide

From Toast to Sonner

Before (v1.x):

<script setup>
import { Toaster, useToast } from '@codinglabsau/gooey'
const { toast } = useToast()
toast({ title: 'Hello' })
</script>

After (v2.0):

<script setup>
import { Toaster } from '@codinglabsau/gooey'
import { toast } from 'vue-sonner'
toast('Hello')
</script>

Import the Required CSS

Add to your main stylesheet:

@import "@codinglabsau/gooey/style.css";

What's Changed

Full Changelog: v1.15.0...v2.0.0