mui-to-shadcn 0.2.0 → 0.4.0

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 CHANGED
@@ -4,6 +4,31 @@ All notable changes to this project are documented here. This project adheres to
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.4.0] - 2026-06-23
8
+
9
+ Makes `--setup` actually finish on a real MUI project. Previously `shadcn init` aborted on its Tailwind preflight (an MUI/Emotion app has no Tailwind), and the init command used a flag the CLI does not accept.
10
+
11
+ ### Added
12
+
13
+ - **Interactive wizard.** Running `npx mui-to-shadcn` with no path in a terminal now starts a guided flow: it asks for the target folder, what to do (full setup / convert only / preview), the base (Radix vs Base UI), the shadcn style and whether to write the `MIGRATION.md` handoff — with links to the docs — then shows a full review (resolved preset, package manager, components, Tailwind actions, every command) and only runs after you confirm. Press Enter to accept the sensible defaults at each step. Built on `@clack/prompts`.
14
+ - **Selectable shadcn style.** `--style vega|nova|maia|lyra|mira` (default `vega`, the classic look) chooses the visual style; the setup passes `--preset {base}-{style}` (e.g. `radix-vega`) to `shadcn init`. `--preset <name|code>` takes a named preset or a [ui.shadcn.com](https://ui.shadcn.com/create) code verbatim, overriding base+style.
15
+ - **Automatic Tailwind CSS v4 setup in `--setup`.** When a project has no Tailwind at all — the normal state of an MUI app — the setup now installs `tailwindcss`/`@tailwindcss/postcss`, adds `@import "tailwindcss"` to the global stylesheet (an existing `globals.css`/`index.css`, or a new one under the detected `app`/`src` directory), and creates `postcss.config.mjs`. This runs before `shadcn init` so its Tailwind preflight passes. Next.js and Vite are detected; an existing PostCSS config is never overwritten (a note is printed instead). Skip it with `--skip-tailwind`. A project that already ships Tailwind is left untouched.
16
+ - **MIGRATION.md is now part of `--setup` and the wizard.** The `MIGRATION.md` LLM handoff (added in 0.3.0) is written automatically at the end of a setup/wizard run whenever manual work remains — no separate `--md` step needed. Opt out with `--skip-md`.
17
+
18
+ ### Fixed
19
+
20
+ - **`shadcn init` is now non-interactive and selects the right primitives.** The init step used `--base radix|base`, which the shadcn CLI does not accept (it left init prompting for a preset). It now passes a real preset (`--preset radix-vega` / `base-vega`, or whatever `--style` resolves to), the documented way to choose Radix vs. Base UI.
21
+ - **`Button component={CustomLink}` keeps the component.** The polymorphic `component` (e.g. a Next.js/i18n `Link`) is now used as the `asChild` wrapper — `<Button asChild><CustomLink href=…>…</CustomLink></Button>` — instead of being replaced with a bare `<a>` (which dropped the component and left its import unused). String tags (`component="a"`) and a plain `href` still produce an anchor; a dynamic `component` expression is flagged for manual handling.
22
+ - **`Dialog` drops MUI-only `slotProps`/`slots`/`PaperProps`** instead of leaving them on the shadcn `Dialog` (which rejects them), with a note to move paper styling to `className` on `DialogContent`.
23
+ - **`Dialog` imports only the parts it emits.** `DialogHeader`/`DialogDescription` are no longer imported when the source has no matching content, removing unused imports from the output.
24
+
25
+ ## [0.3.0] - 2026-06-18
26
+
27
+ ### Added
28
+
29
+ - **`--md` flag** — writes a `MIGRATION.md` handoff so the LLM of your choice (Claude, ChatGPT, Cursor, …) can finish what the codemod cannot do on its own. It lists, per file, every **Open / broken** item (file · line · component · what's needed, with the recipe inline) and a **Review** list of auto-changes to verify, behind a short context block addressed directly to the assistant (target stack, Radix vs Base UI, Tailwind v4, controlled-value rules). Works in both dry-run and `--write`; the CLI hints to use `--md` whenever manual work remains. Manual components are no longer echoed into the Review section.
30
+ - Programmatic `buildMigrationDoc` (with `FileReport` / `MigrationDocInput` types), re-exported from the package entry, so the same report can be produced from the API.
31
+
7
32
  ## [0.2.0] - 2026-06-17
8
33
 
9
34
  Driven by a real-world audit (2289 files): converts the most common remaining manual components. Catalogue grows to 115 (99 full, 7 in parent, 4 partial, 5 manual).
package/README.de.md CHANGED
@@ -10,10 +10,19 @@ npm install
10
10
 
11
11
  ## Nutzung
12
12
 
13
+ Am einfachsten ohne Argumente in einem Terminal — der geführte Assistent fragt Ziel, Basis (Radix/Base UI), shadcn-Stil und das MIGRATION.md-Handoff ab, zeigt eine vollständige Zusammenfassung und startet erst nach Bestätigung:
14
+
15
+ ```
16
+ npx mui-to-shadcn
17
+ ```
18
+
19
+ Oder direkt per Flags:
20
+
13
21
  ```
14
- npm run migrate -- <pfad> --report # Probelauf, schreibt nichts, listet benoetigte shadcn-Komponenten
15
- npm run migrate -- <pfad> --write # schreibt Aenderungen in die Dateien
16
- npm run migrate -- <pfad> --skip-sx # ueberspringt den sx/System-Props-Pass
22
+ npm run migrate -- <pfad> --report # Probelauf, schreibt nichts, listet benötigte shadcn-Komponenten
23
+ npm run migrate -- <pfad> --write # schreibt Änderungen in die Dateien
24
+ npm run migrate -- <pfad> --md # schreibt MIGRATION.md (LLM-Handoff für die restliche Handarbeit)
25
+ npm run migrate -- <pfad> --skip-sx # überspringt den sx/System-Props-Pass
17
26
  ```
18
27
 
19
28
  `<pfad>` kann eine einzelne Datei oder ein Verzeichnis sein (rekursiv `**/*.{ts,tsx}`, ohne node_modules).
@@ -21,18 +30,22 @@ npm run migrate -- <pfad> --skip-sx # ueberspringt den sx/System-Props-Pass
21
30
  ### Vollautomatik: --setup
22
31
 
23
32
  ```
24
- npm run migrate -- <pfad> --setup [--base radix|base] [--pm pnpm|npm|yarn|bun] [--dry-run]
33
+ npm run migrate -- <pfad> --setup [--base radix|base] [--style vega|nova|maia|lyra|mira] [--preset <name|code>] [--pm pnpm|npm|yarn|bun] [--skip-tailwind] [--dry-run]
25
34
  ```
26
35
 
27
- `--setup` fuehrt im Projektverzeichnis nacheinander aus:
36
+ `--setup` führt im Projektverzeichnis nacheinander aus:
37
+
38
+ 1. ermittelt in einem Probelauf alle benötigten shadcn-Komponenten
39
+ 2. richtet Tailwind CSS v4 ein, falls es fehlt — installiert `tailwindcss`/`@tailwindcss/postcss`, ergänzt `@import "tailwindcss"` im globalen Stylesheet und legt `postcss.config.mjs` an (mit `--skip-tailwind` überspringbar)
40
+ 3. `shadcn init --preset {radix|base}-{vega|nova|maia|lyra|mira}` (nur wenn keine components.json existiert)
41
+ 4. `shadcn add <alle benötigten Komponenten>`
42
+ 5. schreibt die konvertierten Dateien
43
+ 6. `prettier --write`
44
+ 7. schreibt `MIGRATION.md` — das LLM-Handoff für die verbleibende Handarbeit (mit `--skip-md` überspringbar)
28
45
 
29
- 1. ermittelt in einem Probelauf alle benoetigten shadcn-Komponenten
30
- 2. `shadcn init --base <radix|base>` (nur wenn keine components.json existiert)
31
- 3. `shadcn add <alle benoetigten Komponenten>`
32
- 4. schreibt die konvertierten Dateien
33
- 5. `prettier --write`
46
+ Schritt 2 ist nötig, weil `shadcn init` auf einem Projekt ohne Tailwind mit `TAILWIND_NOT_CONFIGURED` abbricht — der übliche Zustand einer MUI/Emotion-App. Eingerichtet wird nur, wenn gar kein Tailwind vorhanden ist; ein Projekt mit bestehendem Tailwind bleibt unangetastet. Next.js und Vite werden automatisch erkannt (bei Vite wird das offizielle `@tailwindcss/vite`-Plugin als Alternative genannt).
34
47
 
35
- Der Paketmanager wird aus der Lockfile erkannt (oder per `--pm` gesetzt). `--base base` waehlt Base UI, `--base radix` (Default) waehlt Radix. Mit `--dry-run` werden nur die geplanten Befehle ausgegeben, nichts ausgefuehrt.
48
+ Der Paketmanager wird aus der Lockfile erkannt (oder per `--pm` gesetzt). `--base base` wählt Base UI, `--base radix` (Default) wählt Radix. `--style` wählt den shadcn-Stil (Default `vega`; siehe [ui.shadcn.com/create](https://ui.shadcn.com/create)), `--preset <name|code>` setzt einen Preset-Namen oder Code direkt und übersteuert `--base`/`--style`. Mit `--dry-run` werden nur die geplanten Befehle ausgegeben, nichts ausgeführt.
36
49
 
37
50
  ```
38
51
  npm test # Tests
@@ -41,16 +54,16 @@ npm run typecheck # tsc --noEmit
41
54
 
42
55
  ## Radix oder Base UI
43
56
 
44
- Die erzeugte JSX-Ausgabe nutzt die oeffentliche shadcn-API (`@/components/ui/*`, onValueChange, type single/multiple, AccordionItem). Diese API ist bei Radix und Base UI identisch; nur die Primitive darunter unterscheiden sich. Ausnahmen bei Base UI: kein `asChild` (render-Prop), `checked` strikt boolean, `value` bei Slider/Select strikt Array. Mit `--base base` wird `asChild` nicht emittiert und ein Hinweis ausgegeben.
57
+ Die erzeugte JSX-Ausgabe nutzt die öffentliche shadcn-API (`@/components/ui/*`, onValueChange, type single/multiple, AccordionItem). Diese API ist bei Radix und Base UI identisch; nur die Primitive darunter unterscheiden sich. Ausnahmen bei Base UI: kein `asChild` (render-Prop), `checked` strikt boolean, `value` bei Slider/Select strikt Array. Mit `--base base` wird `asChild` nicht emittiert und ein Hinweis ausgegeben.
45
58
 
46
- ## Zwei Paesse
59
+ ## Zwei Pässe
47
60
 
48
61
  1. **Komponenten-Mapping**: MUI-Komponenten werden strukturell zu shadcn umgebaut, Importe umgeschrieben.
49
62
  2. **sx / System-Props**: `sx={{ ... }}` und MUI-Shorthand-Props (m, p, display, gap, width, color, ...) werden zu Tailwind-Klassen. MUI-Spacing (8px) wird auf die Tailwind-Skala (4px) umgerechnet (z. B. `p: 2` -> `p-4`). Box/Stack/Grid/Container werden zu `div` mit passenden Klassen.
50
63
 
51
- ## Vollstaendig konvertierte Komponenten
64
+ ## Vollständig konvertierte Komponenten
52
65
 
53
- Vollstaendige, stets aktuelle Statusuebersicht (89 voll, 8 im Elternelement, 4 teilweise, 5 manuell): [docs/COMPONENTS.md](./docs/COMPONENTS.md) (neu erzeugen mit `npm run docs`).
66
+ Vollständige, stets aktuelle Statusübersicht (89 voll, 8 im Elternelement, 4 teilweise, 5 manuell): [docs/COMPONENTS.md](./docs/COMPONENTS.md) (neu erzeugen mit `npm run docs`).
54
67
 
55
68
  Button, IconButton, Checkbox, Switch, Slider, RadioGroup (+ FormControlLabel/Radio), TextField (-> Label + Input/Textarea), Select (+ MenuItem), TextareaAutosize, Divider, LinearProgress, Skeleton, Paper, Card-Familie, Alert (+ AlertTitle), Link, Typography, Avatar, Chip (-> Badge), Tooltip, Tabs (+ Tab), Accordion-Familie, Dialog-Familie, ToggleButtonGroup (+ ToggleButton), Drawer (-> Sheet), Breadcrumbs, Table-Familie, Box/Stack/Grid/Container.
56
69
 
@@ -62,17 +75,38 @@ Komponenten mit grundlegend anderem Paradigma oder ohne shadcn-Pendant: DataGrid
62
75
 
63
76
  Auch mit `--setup` bleibt prinzipbedingt Handarbeit, weil sie Absicht erfordert:
64
77
 
65
- - **Handler-Signaturen**: onChange wird zu onValueChange/onCheckedChange/onValueChange; der Callback erhaelt jetzt einen Wert/boolean/Array statt eines Events. Code wie `e.target.value` oder `e.target.checked` muss angepasst werden.
78
+ - **Handler-Signaturen**: onChange wird zu onValueChange/onCheckedChange/onValueChange; der Callback erhält jetzt einen Wert/boolean/Array statt eines Events. Code wie `e.target.value` oder `e.target.checked` muss angepasst werden.
66
79
  - **Komponenten ohne Pendant** (siehe Liste oben) manuell umbauen.
67
- - **MUI entfernen**: ThemeProvider, CssBaseline, createTheme, Emotion-Cache sowie `@mui/*`- und `@emotion/*`-Abhaengigkeiten, sobald alles migriert ist.
68
- - **Base UI** (falls gewaehlt): `asChild` durch render-Prop ersetzen, strikte boolean/Array-Props.
69
- - **Layout und Optik**: Grid wird best-effort konvertiert; Whitespace verschachtelter Bloecke ist nicht perfekt. Nach der Migration pruefen.
80
+ - **MUI entfernen**: ThemeProvider, CssBaseline, createTheme, Emotion-Cache sowie `@mui/*`- und `@emotion/*`-Abhängigkeiten, sobald alles migriert ist.
81
+ - **Base UI** (falls gewählt): `asChild` durch render-Prop ersetzen, strikte boolean/Array-Props.
82
+ - **Layout und Optik**: Grid wird best-effort konvertiert; Whitespace verschachtelter Blöcke ist nicht perfekt. Nach der Migration prüfen.
70
83
 
71
- Die Ausgabe ist gueltiges TSX. Prettier/ESLint werden von `--setup` bereits ausgefuehrt; ohne `--setup`:
84
+ Die Ausgabe ist gültiges TSX. Prettier/ESLint werden von `--setup` bereits ausgeführt; ohne `--setup`:
72
85
 
73
86
  ```
74
87
  npx prettier --write <pfad>
75
88
  npx eslint --fix <pfad>
76
89
  ```
77
90
 
78
- Der Report zeigt geaenderte Handler-Signaturen und alle manuell zu pruefenden Stellen.
91
+ Der Report zeigt geänderte Handler-Signaturen und alle manuell zu prüfenden Stellen.
92
+
93
+ ## Mit einem LLM abschließen
94
+
95
+ Den mechanischen Teil erledigt das Tool; der Rest braucht Urteilsvermögen. `--setup` und der Assistent schreiben automatisch eine **`MIGRATION.md`**, sobald Handarbeit übrig bleibt (mit `--skip-md` abschaltbar); beim reinen Codemod-Lauf erzeugt sie `--md`. Ein kompakter Handoff für das LLM deiner Wahl (Claude, ChatGPT, Cursor, …):
96
+
97
+ ```
98
+ npx mui-to-shadcn src --write --md # oder einfach `npx mui-to-shadcn` → der Assistent macht es
99
+ ```
100
+
101
+ `MIGRATION.md` enthält genau das, was ein Assistent braucht — nicht mehr und nicht weniger:
102
+
103
+ - einen kurzen **Auftrag** direkt an den Assistenten (Zielstack, Radix vs. Base UI, kein `@mui/*` reimportieren, Verhalten beibehalten);
104
+ - die zu installierenden **shadcn-Komponenten**;
105
+ - **Open / broken** — jede Komponente, die das Tool offen gelassen hat, gruppiert nach Datei mit Zeile, Komponente und konkretem Rezept (z. B. `Autocomplete` → Combobox);
106
+ - **Review** — automatische Änderungen, die man prüfen sollte (umbenannte Handler, Single-Select `Select`, …).
107
+
108
+ Dann übergeben, z. B.:
109
+
110
+ > Lies `MIGRATION.md` und erledige jede dort aufgeführte Aufgabe. Behalte das bestehende Verhalten bei.
111
+
112
+ Nur Dateien mit offener Arbeit erscheinen, die Datei bleibt also auch bei großen Codebasen klein.
package/README.md CHANGED
@@ -20,7 +20,13 @@ Several passes over your `.ts`/`.tsx` files, designed to leave as little manual
20
20
 
21
21
  ## Quick start
22
22
 
23
- Run it without installing:
23
+ The simplest way is the guided wizard — run it with no arguments and it walks you through the few decisions (target, Radix vs Base UI, shadcn style, and the `MIGRATION.md` LLM handoff), shows a full review, and only runs once you confirm:
24
+
25
+ ```bash
26
+ npx mui-to-shadcn
27
+ ```
28
+
29
+ Prefer flags? Run it directly without installing:
24
30
 
25
31
  ```bash
26
32
  # dry run, prints the changes and the shadcn components it needs
@@ -28,39 +34,53 @@ npx mui-to-shadcn src --report
28
34
 
29
35
  # write the changes
30
36
  npx mui-to-shadcn src --write
37
+
38
+ # write the changes, plus a MIGRATION.md handoff for an LLM to finish the rest
39
+ npx mui-to-shadcn src --write --md
31
40
  ```
32
41
 
33
42
  Or as a one-command setup in your project (installs the shadcn components, then migrates):
34
43
 
35
44
  ```bash
36
- npx mui-to-shadcn src --setup --base radix # or --base base for Base UI
45
+ npx mui-to-shadcn src --setup --base radix --style vega # base: radix|base, style: vega|nova|maia|lyra|mira
37
46
  ```
38
47
 
39
48
  `--setup` will, in your project directory:
40
49
 
41
50
  1. collect every shadcn component the migration needs,
42
- 2. run `shadcn init` (only if there is no `components.json`),
43
- 3. run `shadcn add <components>`,
44
- 4. write the converted files,
45
- 5. run `prettier --write`.
51
+ 2. set up Tailwind CSS v4 if it is missing — install `tailwindcss`/`@tailwindcss/postcss`, add `@import "tailwindcss"` to your global stylesheet, and create `postcss.config.mjs` (skip with `--skip-tailwind`),
52
+ 3. run `shadcn init` (only if there is no `components.json`),
53
+ 4. run `shadcn add <components>`,
54
+ 5. write the converted files,
55
+ 6. run `prettier --write`,
56
+ 7. write `MIGRATION.md` — the LLM handoff for whatever needs manual work (skip with `--skip-md`).
57
+
58
+ Step 2 exists because `shadcn init` aborts with `TAILWIND_NOT_CONFIGURED` on a project that has no Tailwind — the normal state of an MUI/Emotion app. The setup only touches projects with no Tailwind at all; one that already ships Tailwind is left untouched. Next.js and Vite are detected automatically (for Vite the official `@tailwindcss/vite` plugin is noted as an alternative).
46
59
 
47
60
  The package manager is detected from your lockfile (override with `--pm pnpm|npm|yarn|bun`). Use `--dry-run` to print the planned commands without running anything.
48
61
 
49
62
  ## CLI
50
63
 
51
64
  ```
52
- mui-to-shadcn <path...> [options]
65
+ mui-to-shadcn [path...] [options]
66
+
67
+ (no path, in a terminal) start the interactive wizard
53
68
 
54
69
  --write write changes (default is a dry run)
55
70
  --report print every warning and manual item
71
+ --md write MIGRATION.md — an LLM-ready handoff for the remaining manual work
56
72
  --skip-sx skip the sx / system-props pass
57
73
  --setup install shadcn components and run the full pipeline
58
74
  --base <b> radix (default) or base (Base UI)
75
+ --style <s> vega (default) | nova | maia | lyra | mira
76
+ --preset <p> a preset name or ui.shadcn.com code; overrides --base/--style
59
77
  --pm <m> pnpm | npm | yarn | bun (otherwise auto-detected)
78
+ --skip-tailwind with --setup: do not set up Tailwind CSS automatically
79
+ --skip-md with --setup: do not write MIGRATION.md
60
80
  --dry-run with --setup: print planned commands only
61
81
  ```
62
82
 
63
- `<path>` can be a file or a directory (globbed as `**/*.{ts,tsx}`, excluding node_modules).
83
+ `<path>` can be a file or a directory (globbed as `**/*.{ts,tsx}`, excluding node_modules). The shadcn styles (`vega`/`nova`/`maia`/`lyra`/`mira`) are described at [ui.shadcn.com/create](https://ui.shadcn.com/create); the setup passes `--preset {base}-{style}` (e.g. `radix-vega`) to `shadcn init`.
64
84
 
65
85
  ## Programmatic API
66
86
 
@@ -74,6 +94,8 @@ const result = runMigration(file, { base: "radix" });
74
94
  console.log(result.text, result.warnings, result.manual, result.components);
75
95
  ```
76
96
 
97
+ `buildMigrationDoc({ files, components, base, version, generatedAt })` is also exported, if you want to generate the same `MIGRATION.md` report from your own tooling.
98
+
77
99
  ## Component support
78
100
 
79
101
  115 MUI components are catalogued. As of the current version: **99 fully converted**, **7 converted inside their parent**, **4 partial**, **5 left manual** with a note. The full, always-current table is generated from the registry:
@@ -99,9 +121,30 @@ Even with `--setup`, some work needs human judgement:
99
121
 
100
122
  Radix or Base UI: the generated JSX uses the public shadcn API (`@/components/ui/*`, `onValueChange`, `type single/multiple`, `AccordionItem`), which is identical across both; only the underlying primitives differ.
101
123
 
124
+ ## Finish with an LLM
125
+
126
+ The codemod does the mechanical part; the rest needs judgement. `--setup` and the wizard write a **`MIGRATION.md`** automatically when any manual work remains (opt out with `--skip-md`); on the plain codemod run, add `--md` to produce it. It's a focused handoff you can give to the LLM of your choice (Claude, ChatGPT, Cursor, …):
127
+
128
+ ```bash
129
+ npx mui-to-shadcn src --write --md # or just `npx mui-to-shadcn` → the wizard does it for you
130
+ ```
131
+
132
+ `MIGRATION.md` holds exactly what an assistant needs, and no more:
133
+
134
+ - a short **task brief** written to the assistant (target stack, Radix vs Base UI rules, "don't reintroduce `@mui/*`", keep behavior identical);
135
+ - the **shadcn components to install**;
136
+ - **Open / broken** — every component the codemod left for you, grouped by file with the line, the component, and a concrete recipe (e.g. `Autocomplete` → Combobox, `DataGrid` → TanStack Table);
137
+ - **Review** — auto-changes worth a second look (renamed handlers, single-select `Select`, …).
138
+
139
+ Then hand it over, for example:
140
+
141
+ > Read `MIGRATION.md` and complete every task it lists. Keep the existing behavior.
142
+
143
+ Only files with remaining work appear, so the report stays small even on large codebases.
144
+
102
145
  ## Compatibility
103
146
 
104
- Targets shadcn CLI v4 (`shadcn init`/`add`, `--base radix|base`) and Tailwind CSS v4 (v4 shadow scale, container widths). Icons require [lucide-react](https://lucide.dev) (shadcn installs it). Output is valid TSX; run Prettier/ESLint afterwards (done automatically by `--setup`).
147
+ Targets shadcn CLI v4 (`shadcn init`/`add`; `--base` and `--style` map to the `{base}-{style}` preset, e.g. `radix-vega`) and Tailwind CSS v4 (v4 shadow scale, container widths). Icons require [lucide-react](https://lucide.dev) (shadcn installs it). Output is valid TSX; run Prettier/ESLint afterwards (done automatically by `--setup`).
105
148
 
106
149
  ## Contributing
107
150
 
package/dist/cli.js CHANGED
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { parseArgs } from "node:util";
3
3
  import { writeFileSync } from "node:fs";
4
- import { relative } from "node:path";
4
+ import { relative, join } from "node:path";
5
+ import { createRequire } from "node:module";
5
6
  import { Project } from "ts-morph";
6
7
  import { runMigration } from "./run.js";
7
8
  import { collectSourceFiles } from "./paths.js";
8
9
  import { runSetup } from "./setup.js";
10
+ import { buildMigrationDoc } from "./migration-doc.js";
9
11
  function parseBase(value) {
10
12
  return value === "base" ? "base" : "radix";
11
13
  }
@@ -14,21 +16,51 @@ function parsePackageManager(value) {
14
16
  return value;
15
17
  return undefined;
16
18
  }
17
- function main() {
19
+ const KNOWN_STYLES = new Set(["vega", "nova", "maia", "lyra", "mira"]);
20
+ function parseStyle(value) {
21
+ if (value && KNOWN_STYLES.has(value))
22
+ return value;
23
+ // Unknown but explicit styles are passed through (forward-compatible); default is vega.
24
+ return value?.trim() || "vega";
25
+ }
26
+ function readVersion() {
27
+ try {
28
+ const pkg = createRequire(import.meta.url)("../package.json");
29
+ return pkg.version ?? "";
30
+ }
31
+ catch {
32
+ return "";
33
+ }
34
+ }
35
+ async function main() {
18
36
  const { values, positionals } = parseArgs({
19
37
  allowPositionals: true,
20
38
  options: {
21
39
  write: { type: "boolean", default: false },
22
40
  report: { type: "boolean", default: false },
41
+ md: { type: "boolean", default: false },
23
42
  "skip-sx": { type: "boolean", default: false },
24
43
  setup: { type: "boolean", default: false },
44
+ "skip-tailwind": { type: "boolean", default: false },
45
+ "skip-md": { type: "boolean", default: false },
25
46
  "dry-run": { type: "boolean", default: false },
26
47
  base: { type: "string" },
48
+ style: { type: "string" },
49
+ preset: { type: "string" },
27
50
  pm: { type: "string" },
28
51
  },
29
52
  });
30
53
  if (positionals.length === 0) {
31
- console.error("Usage: mui-to-shadcn <path...> [--write] [--report] [--skip-sx] [--setup [--base radix|base] [--pm pnpm|npm|yarn|bun] [--dry-run]]");
54
+ // Bare `npx mui-to-shadcn` on a terminal launches the guided wizard.
55
+ if (process.stdin.isTTY && process.stdout.isTTY) {
56
+ const { runWizard } = await import("./wizard.js");
57
+ process.exit(await runWizard(process.cwd()));
58
+ }
59
+ console.error("Usage: mui-to-shadcn <path...> [--write] [--report] [--md] [--skip-sx]\n" +
60
+ " [--setup [--base radix|base] [--style vega|nova|maia|lyra|mira] [--preset <name|code>]\n" +
61
+ " [--pm pnpm|npm|yarn|bun] [--skip-tailwind] [--skip-md] [--dry-run]]\n" +
62
+ "\n" +
63
+ "Run with no path in a terminal to start the interactive wizard.");
32
64
  process.exit(1);
33
65
  }
34
66
  const applySx = values["skip-sx"] !== true;
@@ -37,9 +69,13 @@ function main() {
37
69
  const status = runSetup({
38
70
  target: positionals,
39
71
  base,
72
+ style: parseStyle(values.style),
73
+ preset: values.preset?.trim() || undefined,
40
74
  packageManager: parsePackageManager(values.pm),
41
75
  dryRun: values["dry-run"] === true,
42
76
  skipSx: !applySx,
77
+ skipTailwind: values["skip-tailwind"] === true,
78
+ writeMd: values["skip-md"] !== true,
43
79
  cwd: process.cwd(),
44
80
  });
45
81
  process.exit(status);
@@ -55,10 +91,12 @@ function main() {
55
91
  }
56
92
  const write = values.write === true;
57
93
  const report = values.report === true;
94
+ const md = values.md === true;
58
95
  let changedCount = 0;
59
96
  let warningCount = 0;
60
97
  const manualTotals = new Map();
61
98
  const components = new Set();
99
+ const reports = [];
62
100
  for (const file of files) {
63
101
  const result = runMigration(file, { sx: applySx, base });
64
102
  const rel = relative(process.cwd(), file.getFilePath());
@@ -68,6 +106,9 @@ function main() {
68
106
  for (const hit of result.manual) {
69
107
  manualTotals.set(hit.component, (manualTotals.get(hit.component) ?? 0) + 1);
70
108
  }
109
+ if (result.manual.length || result.warnings.length) {
110
+ reports.push({ file: rel, manual: result.manual, warnings: result.warnings });
111
+ }
71
112
  if (result.changed) {
72
113
  changedCount += 1;
73
114
  if (write) {
@@ -106,9 +147,32 @@ function main() {
106
147
  for (const [name, count] of sorted)
107
148
  console.log(` ${name}: ${count}`);
108
149
  }
150
+ if (md) {
151
+ const doc = buildMigrationDoc({
152
+ files: reports,
153
+ components: componentList,
154
+ base,
155
+ version: readVersion(),
156
+ generatedAt: new Date().toISOString().slice(0, 10),
157
+ });
158
+ writeFileSync(join(process.cwd(), "MIGRATION.md"), doc);
159
+ const taskTotal = reports.reduce((sum, r) => sum + r.manual.length, 0);
160
+ const reviewTotal = reports.reduce((sum, r) => sum + r.warnings.length, 0);
161
+ console.log("");
162
+ console.log(`Wrote MIGRATION.md (${taskTotal} task${taskTotal === 1 ? "" : "s"}, ` +
163
+ `${reviewTotal} review note${reviewTotal === 1 ? "" : "s"} across ` +
164
+ `${reports.length} file${reports.length === 1 ? "" : "s"}).`);
165
+ console.log('Hand it to the LLM of your choice: "Read MIGRATION.md and complete the migration tasks it lists."');
166
+ }
167
+ else if (warningCount > 0 || manualTotals.size > 0) {
168
+ console.log("Write an LLM-ready handoff with --md (MIGRATION.md).");
169
+ }
109
170
  if (!report && (warningCount > 0 || manualTotals.size > 0)) {
110
171
  console.log("Show details with --report");
111
172
  }
112
173
  }
113
- main();
174
+ main().catch((error) => {
175
+ console.error(error);
176
+ process.exit(1);
177
+ });
114
178
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB;IACpD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC7F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvE,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,wFAAwF;IACxF,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;AACjC,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAyB,CAAC;QACtF,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE;YACP,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACvC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1C,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACpD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,qEAAqE;QACrE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,KAAK,CACX,0EAA0E;YACxE,iGAAiG;YACjG,uFAAuF;YACvF,IAAI;YACJ,iEAAiE,CACpE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAA0B,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,MAAM,EAAE,WAAW;YACnB,IAAI;YACJ,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAA2B,CAAC;YACrD,MAAM,EAAG,MAAM,CAAC,MAA6B,EAAE,IAAI,EAAE,IAAI,SAAS;YAClE,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAwB,CAAC;YACpE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI;YAClC,MAAM,EAAE,CAAC,OAAO;YAChB,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK,IAAI;YAC9C,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI;YACnC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,2BAA2B,EAAE,IAAI;QACjC,qBAAqB,EAAE,KAAK;KAC7B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAE9B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,IAAI,CAAC,CAAC;YAClB,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;YAC5E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,YAAY,6BAA6B,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,EAAE,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,aAAa,CAAC,MAAM,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,+DAA+D,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,iBAAiB,CAAC;YAC5B,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,aAAa;YACzB,IAAI;YACJ,OAAO,EAAE,WAAW,EAAE;YACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,uBAAuB,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;YACpE,GAAG,WAAW,eAAe,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU;YACnE,GAAG,OAAO,CAAC,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAC/D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mGAAmG,CAAC,CAAC;IACnH,CAAC;SAAM,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"composites.d.ts","sourceRoot":"","sources":["../src/composites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoC,kBAAkB,EAAmB,MAAM,YAAY,CAAC;AA6ExG,eAAO,MAAM,mBAAmB,EAAE,kBA6CjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,kBAkB7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA2BjC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBAkC3B,CAAC;AAWF,eAAO,MAAM,eAAe,EAAE,kBAkE7B,CAAC;AAeF,eAAO,MAAM,kBAAkB,EAAE,kBA4BhC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}
1
+ {"version":3,"file":"composites.d.ts","sourceRoot":"","sources":["../src/composites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoC,kBAAkB,EAAmB,MAAM,YAAY,CAAC;AA4FxG,eAAO,MAAM,mBAAmB,EAAE,kBA6CjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,kBAkB7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA2BjC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBAkC3B,CAAC;AAWF,eAAO,MAAM,eAAe,EAAE,kBAyE7B,CAAC;AAeF,eAAO,MAAM,kBAAkB,EAAE,kBA4BhC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}
@@ -3,6 +3,21 @@ import { resolveButtonVariant } from "./resolvers.js";
3
3
  function findAttribute(context, name) {
4
4
  return context.element.attributes.find((attribute) => attribute.name === name);
5
5
  }
6
+ // The JSX tag to use for a polymorphic `component` prop: a string literal ("a", "span"),
7
+ // or a component identifier / dotted member ({NextLink}, {motion.a}). Anything more dynamic
8
+ // (a call, a ternary) can't be turned into a tag, so this returns null.
9
+ function polymorphicTag(value) {
10
+ if (!value)
11
+ return null;
12
+ if (value.kind === "string") {
13
+ return /^[A-Za-z][\w-]*$/.test(value.value) ? value.value : null;
14
+ }
15
+ if (value.kind === "expression") {
16
+ const expression = value.expression.trim();
17
+ return /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*$/.test(expression) ? expression : null;
18
+ }
19
+ return null;
20
+ }
6
21
  function renderRemainingAttributes(context, consumed) {
7
22
  const parts = [];
8
23
  for (const attribute of context.element.attributes) {
@@ -247,13 +262,17 @@ export const buttonTransform = (context) => {
247
262
  if (findAttribute(context, "fullWidth"))
248
263
  classes.push("w-full");
249
264
  const hrefAttribute = findAttribute(context, "href");
250
- let asChild = false;
251
- if (hrefAttribute)
252
- asChild = true;
253
- if (findAttribute(context, "component")) {
254
- asChild = true;
255
- context.warn("Button component -> asChild; wrap the polymorphic element as the single child");
265
+ const componentAttribute = findAttribute(context, "component");
266
+ // Wrap with the polymorphic component when given (e.g. component={NextLink}), else an
267
+ // anchor when there's only an href. A dynamic component can't become a tag, so warn.
268
+ const wrapperTag = polymorphicTag(componentAttribute?.value) ?? (hrefAttribute ? "a" : null);
269
+ if (componentAttribute && wrapperTag !== "a") {
270
+ context.warn("Button component -> asChild; the element is wrapped as the single child");
256
271
  }
272
+ else if (componentAttribute) {
273
+ context.warn("Button component is dynamic; wrap it as the single asChild child manually");
274
+ }
275
+ const asChild = wrapperTag !== null;
257
276
  if (asChild)
258
277
  leading.push("asChild");
259
278
  const startIcon = findAttribute(context, "startIcon");
@@ -262,8 +281,10 @@ export const buttonTransform = (context) => {
262
281
  let children = [startIcon ? iconChild(startIcon.value) : "", inner, endIcon ? iconChild(endIcon.value) : ""]
263
282
  .filter(Boolean)
264
283
  .join(" ");
265
- if (hrefAttribute)
266
- children = `<a href=${renderAttributeValue(hrefAttribute.value)}>${children}</a>`;
284
+ if (wrapperTag) {
285
+ const hrefText = hrefAttribute ? ` href=${renderAttributeValue(hrefAttribute.value)}` : "";
286
+ children = `<${wrapperTag}${hrefText}>${children}</${wrapperTag}>`;
287
+ }
267
288
  const classText = buildClassName(context, consumed, classes);
268
289
  const remaining = renderRemainingAttributes(context, consumed);
269
290
  const leadText = leading.length ? " " + leading.join(" ") : "";
@@ -1 +1 @@
1
- {"version":3,"file":"composites.js","sourceRoot":"","sources":["../src/composites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composites.js","sourceRoot":"","sources":["../src/composites.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../src/containers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EAId,MAAM,YAAY,CAAC;AAgGpB,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA8C1E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA2C7E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA0DxE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAgD9E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA2D1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA6B/E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAuB1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoC/E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAa7E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoB3E;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAmEhC,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA2DxE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAqC3E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoCzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA+B5E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,aAAa,EAAE,CAa7F;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAMrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,kBAenC,CAAC;AASF,eAAO,MAAM,yBAAyB,EAAE,kBAgBvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAwBjC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAmBzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAc5E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoE9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,aAAa,EAAE,CAatH;AAED,eAAO,MAAM,eAAe,EAAE,kBAiB7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAMhC,CAAC;AA0DF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA8BpF;AAWD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAwB5E"}
1
+ {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../src/containers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EAId,MAAM,YAAY,CAAC;AAgGpB,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA8C1E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA2C7E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA0DxE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAgD9E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAqE1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA6B/E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAuB1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoC/E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAa7E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoB3E;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAmEhC,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA2DxE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAqC3E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoCzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA+B5E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,aAAa,EAAE,CAa7F;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAMrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,kBAenC,CAAC;AASF,eAAO,MAAM,yBAAyB,EAAE,kBAgBvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAwBjC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAmBzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAc5E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAoE9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,aAAa,EAAE,CAatH;AAED,eAAO,MAAM,eAAe,EAAE,kBAiB7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAMhC,CAAC;AA0DF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA8BpF;AAWD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAwB5E"}