Skip to main content

Migration

Upgrading between Aidash Components major versions. Every breaking change is spelled out below with a before/after diff so you can jump straight to the ones that affect your app.

Semver
Aidash follows semantic versioning. Minor and patch releases are safe to upgrade without code changes — only major releases contain the changes below.

v0 → v1

The v1 release standardised prop names and moved to Tailwind CSS v4.

Prop rename: appearance → variant

Every component now uses variant for its visual style. appearance was a v0.9 experiment; v1 reverts to the industry-standard name.

Beforev0.9
tsx
<AidashButton appearance="primary">
  Save
</AidashButton>
Afterv1.0
tsx
<AidashButton variant="primary">
  Save
</AidashButton>

Tailwind CSS v3 → v4

v1 targets Tailwind CSS v4. Tokens move from tailwind.config.js into your global stylesheet via the @theme directive.

Beforetailwind.config.js
css
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: { 500: '#198CFF' }
      }
    }
  }
};
Afterapp/globals.css
css
@import "tailwindcss";

@theme {
  --color-brand-500: oklch(0.62 0.20 255);
}

v1 → v1.1

Non-breaking, but a couple of new props worth adopting.

Input: leading/trailing addons

Icon slots that used to require a wrapper are now first-class props.

BeforeWrapped
tsx
<div className="relative">
  <SearchIcon className="absolute left-3 top-1/2 -translate-y-1/2" />
  <AidashInput className="pl-9" />
</div>
AfterNative prop
tsx
<AidashInput
  leadingIcon={<SearchIcon />}
/>

v1.1 → v1.2

Charts, resizable panels, and a couple of API cleanups.

Dialog: onClose is now required

The default no-op made it too easy to ship dialogs that couldn't be dismissed.

BeforeSilent no-op
tsx
<AidashDialog open={open}>
  <p>Body</p>
</AidashDialog>
AfterExplicit
tsx
<AidashDialog
  open={open}
  onClose={() => setOpen(false)}
>
  <p>Body</p>
</AidashDialog>

Codemods

Automated migration scripts we ship with each major release. Run once and you're done.

Terminal
bash
# v0 → v1
pnpm dlx @aidash/codemod v0-to-v1 ./src

# v1 → v1.1
pnpm dlx @aidash/codemod appearance-to-variant ./src
Tip
Codemods use jscodeshift under the hood. Always review the diff before committing — a codemod can occasionally rewrite a false positive.

Also see