@spartan-ng/cli 0.0.1-alpha.704 → 0.0.1-alpha.705

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/README.md CHANGED
@@ -1,11 +1,123 @@
1
- # cli
1
+ # @spartan-ng/cli
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ [![npm version](https://img.shields.io/npm/v/@spartan-ng/cli.svg?style=flat-square)](https://www.npmjs.com/package/@spartan-ng/cli)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@spartan-ng/cli.svg?style=flat-square)](https://www.npmjs.com/package/@spartan-ng/cli)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
6
+ [![Discord](https://img.shields.io/discord/1145806472172380160?style=flat-square&label=discord&logo=discord&logoColor=white&color=7289DA)](https://discord.gg/EqHnxQ4uQr)
4
7
 
5
- ## Building
8
+ [Website](https://spartan.ng) • [Documentation](https://www.spartan.ng/documentation/cli) • [Components](https://www.spartan.ng/components) • [GitHub](https://github.com/spartan-ng/spartan)
6
9
 
7
- Run `nx build cli` to build the library.
10
+ > The official CLI for [spartan/ui](https://spartan.ng). Add accessible, beautifully styled Angular components to any project with one command.
8
11
 
9
- ## Running unit tests
12
+ `@spartan-ng/cli` is an [Nx plugin](https://nx.dev) and [Angular schematic](https://angular.io/guide/schematics) that wires up the spartan/ui two-layer architecture for you: the **brain** primitives are installed from npm and the **helm** styles are copied into your codebase where you own them. Works with both Angular CLI projects and Nx workspaces - no extra configuration required.
10
13
 
11
- Run `nx test cli` to execute the unit tests via [Jest](https://jestjs.io).
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install -D @spartan-ng/cli
18
+ # or
19
+ pnpm add -D @spartan-ng/cli
20
+ # or
21
+ yarn add -D @spartan-ng/cli
22
+ ```
23
+
24
+ > **Prerequisite:** spartan/ui requires Tailwind CSS. If you haven't set it up yet, follow the [official Angular installation guide](https://tailwindcss.com/docs/installation/framework-guides/angular) first.
25
+
26
+ ## Quick Start
27
+
28
+ ```bash
29
+ # 1. Initialize spartan in your project (theme, dependencies, Tailwind preset)
30
+ ng g @spartan-ng/cli:init
31
+ # Nx: npx nx g @spartan-ng/cli:init
32
+
33
+ # 2. Add the components you need (interactive picker)
34
+ ng g @spartan-ng/cli:ui
35
+ # Nx: npx nx g @spartan-ng/cli:ui
36
+
37
+ # 3. Add a single component by name
38
+ ng g @spartan-ng/cli:ui button
39
+ ```
40
+
41
+ The CLI installs the relevant `@spartan-ng/brain` entry points as npm dependencies and copies the helm component code straight into your project so you can edit every style.
42
+
43
+ ## Generators
44
+
45
+ ### Setup
46
+
47
+ | Generator | Description |
48
+ | ------------- | ------------------------------------------------------------------------------------------ |
49
+ | `init` | Initialize a spartan/ui project - adds dependencies, the Tailwind preset, and the theme. |
50
+ | `ui` | Add one, many, or all spartan/ui primitives to your project. |
51
+ | `ui-theme` | Generate the theme CSS variables and Tailwind setup interactively. |
52
+ | `healthcheck` | Scan your workspace for outdated patterns and (optionally) auto-fix them with `--autoFix`. |
53
+
54
+ ### Migrations
55
+
56
+ The CLI ships with a suite of generators that automate breaking changes between spartan releases. They keep upgrades to a single command.
57
+
58
+ <details>
59
+ <summary>View all migration generators</summary>
60
+
61
+ | Generator | Description |
62
+ | ------------------------------------ | -------------------------------------------------------------------------------------------- |
63
+ | `migrate-brain-accordion-trigger` | Wrap brain accordion triggers in a heading element. |
64
+ | `migrate-brain-imports` | Move brain imports to their secondary entry points. |
65
+ | `migrate-brn-checkbox-changed-event` | Rename `changed` to `checkedChange` on `brn-checkbox`. |
66
+ | `migrate-brn-switch-changed-event` | Rename `changed` to `checkedChange` on `brn-switch`. |
67
+ | `migrate-core` | Migrate the legacy `core` library to the `@spartan-ng/brain/core` entry point. |
68
+ | `migrate-date-picker` | Rename `changed` to `dateChange` on `hlm-date-picker`. |
69
+ | `migrate-helm-imports` | Move helm imports to the new entry-point structure. |
70
+ | `migrate-helm-libraries` | Update helm libraries to their latest versions. |
71
+ | `migrate-hlm` | Move `hlm` from `@spartan-ng/brain` to `@spartan-ng/helm/utils`. |
72
+ | `migrate-input-id` | Rename the `id` input on helm inputs to `inputId`. |
73
+ | `migrate-icon` | Migrate `hlm-icon` to `ng-icon`. |
74
+ | `migrate-module-imports` | Replace `NgModule`-style imports with `const` array imports. |
75
+ | `migrate-naming-conventions` | Update legacy naming conventions to the latest standards. |
76
+ | `migrate-progress` | Migrate `brn-progress` to `hlm-progress`. |
77
+ | `migrate-radio` | Migrate `brn-radio` to `hlm-radio`. |
78
+ | `migrate-scroll-area` | Migrate `hlm-scroll-area` to `ngx-scrollbar`. |
79
+ | `migrate-select` | Migrate `brn-select` / `hlm-select` to `openChange` and active descendants. |
80
+ | `migrate-separator` | Migrate `brn-separator` to `hlm-separator`. |
81
+ | `migrate-toggle-group` | Move `brn-toggle-group` from `@spartan-ng/brain/toggle` to `@spartan-ng/brain/toggle-group`. |
82
+
83
+ </details>
84
+
85
+ Run any migration with:
86
+
87
+ ```bash
88
+ ng g @spartan-ng/cli:<migration-name>
89
+ # Nx: npx nx g @spartan-ng/cli:<migration-name>
90
+ ```
91
+
92
+ ## What the CLI does
93
+
94
+ When you add a component, the CLI:
95
+
96
+ - **Installs the brain primitive** - adds the right `@spartan-ng/brain` secondary entry point to your `package.json`.
97
+ - **Copies the helm styles** - drops the styled component into your project so you can edit it freely.
98
+ - **Wires up imports** - updates your workspace configuration so the new components resolve out of the box.
99
+ - **Creates libraries (Nx)** - optionally generates buildable Nx libraries for clean code organization.
100
+
101
+ ## Supported Components
102
+
103
+ The `ui` generator can scaffold any of the spartan/ui primitives, including accordion, alert, alert-dialog, aspect-ratio, autocomplete, avatar, badge, breadcrumb, button, button-group, calendar, card, carousel, checkbox, collapsible, combobox, command, context-menu, date-picker, dialog, dropdown-menu, empty, field, hover-card, icon, input, input-group, input-otp, item, kbd, label, menubar, native-select, navigation-menu, pagination, popover, progress, radio-group, resizable, scroll-area, select, separator, sheet, sidebar, skeleton, slider, sonner, spinner, switch, table, tabs, textarea, toggle, toggle-group, tooltip, typography, and utils.
104
+
105
+ See the [components gallery](https://www.spartan.ng/components) for live examples.
106
+
107
+ ## Documentation
108
+
109
+ - [CLI documentation](https://www.spartan.ng/documentation/cli)
110
+ - [Installation guide](https://www.spartan.ng/documentation/installation)
111
+ - [Theming](https://www.spartan.ng/documentation/theming)
112
+ - [Components](https://www.spartan.ng/components)
113
+
114
+ ## Community
115
+
116
+ - [Discord](https://discord.gg/EqHnxQ4uQr)
117
+ - [GitHub](https://github.com/spartan-ng/spartan)
118
+ - [Twitter / X](https://twitter.com/goetzrobin)
119
+ - [Sponsor the project](https://github.com/sponsors/goetzrobin)
120
+
121
+ ## License
122
+
123
+ MIT © [goetzrobin](https://github.com/goetzrobin) and the [spartan contributors](https://github.com/spartan-ng/spartan/graphs/contributors)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spartan-ng/cli",
3
- "version": "0.0.1-alpha.704",
3
+ "version": "0.0.1-alpha.705",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/spartan-ng/spartan"
@@ -25,7 +25,7 @@
25
25
  "tailwind-merge": "^3.3.1",
26
26
  "ts-morph": "25.0.1",
27
27
  "typescript": ">=5.0.0",
28
- "zod": "3.23.8"
28
+ "zod": "^3.25.76"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "tslib": "^2.3.0"
@@ -3,7 +3,7 @@
3
3
  "name": "accordion",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=20.0.0 <22.0.0",
6
- "@spartan-ng/brain": "0.0.1-alpha.704",
6
+ "@spartan-ng/brain": "0.0.1-alpha.705",
7
7
  "@ng-icons/core": ">=32.0.0 <34.0.0",
8
8
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
9
9
  "clsx": "^2.1.1"
@@ -20,7 +20,7 @@
20
20
  "name": "alert-dialog",
21
21
  "peerDependencies": {
22
22
  "@angular/core": ">=20.0.0 <22.0.0",
23
- "@spartan-ng/brain": "0.0.1-alpha.704",
23
+ "@spartan-ng/brain": "0.0.1-alpha.705",
24
24
  "clsx": "^2.1.1"
25
25
  }
26
26
  },
@@ -36,7 +36,7 @@
36
36
  "peerDependencies": {
37
37
  "@angular/core": ">=20.0.0 <22.0.0",
38
38
  "@angular/forms": ">=20.0.0 <22.0.0",
39
- "@spartan-ng/brain": "0.0.1-alpha.704",
39
+ "@spartan-ng/brain": "0.0.1-alpha.705",
40
40
  "@angular/cdk": ">=20.0.0 <22.0.0",
41
41
  "@ng-icons/core": ">=32.0.0 <34.0.0",
42
42
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
@@ -46,7 +46,7 @@
46
46
  "name": "avatar",
47
47
  "peerDependencies": {
48
48
  "@angular/core": ">=20.0.0 <22.0.0",
49
- "@spartan-ng/brain": "0.0.1-alpha.704"
49
+ "@spartan-ng/brain": "0.0.1-alpha.705"
50
50
  }
51
51
  },
52
52
  "badge": {
@@ -70,7 +70,7 @@
70
70
  "name": "button",
71
71
  "peerDependencies": {
72
72
  "@angular/core": ">=20.0.0 <22.0.0",
73
- "@spartan-ng/brain": "0.0.1-alpha.704",
73
+ "@spartan-ng/brain": "0.0.1-alpha.705",
74
74
  "class-variance-authority": "^0.7.0",
75
75
  "clsx": "^2.1.1"
76
76
  }
@@ -79,7 +79,7 @@
79
79
  "name": "button-group",
80
80
  "peerDependencies": {
81
81
  "@angular/core": ">=20.0.0 <22.0.0",
82
- "@spartan-ng/brain": "0.0.1-alpha.704",
82
+ "@spartan-ng/brain": "0.0.1-alpha.705",
83
83
  "class-variance-authority": "^0.7.0"
84
84
  }
85
85
  },
@@ -91,7 +91,7 @@
91
91
  "@angular/core": ">=20.0.0 <22.0.0",
92
92
  "@ng-icons/core": ">=32.0.0 <34.0.0",
93
93
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
94
- "@spartan-ng/brain": "0.0.1-alpha.704",
94
+ "@spartan-ng/brain": "0.0.1-alpha.705",
95
95
  "clsx": "^2.1.1"
96
96
  }
97
97
  },
@@ -119,7 +119,7 @@
119
119
  "@angular/cdk": ">=20.0.0 <22.0.0",
120
120
  "@ng-icons/core": ">=32.0.0 <34.0.0",
121
121
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
122
- "@spartan-ng/brain": "0.0.1-alpha.704",
122
+ "@spartan-ng/brain": "0.0.1-alpha.705",
123
123
  "clsx": "^2.1.1"
124
124
  }
125
125
  },
@@ -127,7 +127,7 @@
127
127
  "name": "collapsible",
128
128
  "peerDependencies": {
129
129
  "@angular/core": ">=20.0.0 <22.0.0",
130
- "@spartan-ng/brain": "0.0.1-alpha.704"
130
+ "@spartan-ng/brain": "0.0.1-alpha.705"
131
131
  }
132
132
  },
133
133
  "combobox": {
@@ -135,7 +135,7 @@
135
135
  "peerDependencies": {
136
136
  "@angular/core": ">=20.0.0 <22.0.0",
137
137
  "@angular/forms": ">=20.0.0 <22.0.0",
138
- "@spartan-ng/brain": "0.0.1-alpha.704",
138
+ "@spartan-ng/brain": "0.0.1-alpha.705",
139
139
  "@angular/cdk": ">=20.0.0 <22.0.0",
140
140
  "@ng-icons/core": ">=32.0.0 <34.0.0",
141
141
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -147,7 +147,7 @@
147
147
  "peerDependencies": {
148
148
  "@angular/cdk": ">=20.0.0 <22.0.0",
149
149
  "@angular/core": ">=20.0.0 <22.0.0",
150
- "@spartan-ng/brain": "0.0.1-alpha.704",
150
+ "@spartan-ng/brain": "0.0.1-alpha.705",
151
151
  "clsx": "^2.1.1",
152
152
  "@ng-icons/core": ">=32.0.0 <34.0.0",
153
153
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
@@ -157,7 +157,7 @@
157
157
  "name": "context-menu",
158
158
  "peerDependencies": {
159
159
  "@angular/core": ">=20.0.0 <22.0.0",
160
- "@spartan-ng/brain": "0.0.1-alpha.704",
160
+ "@spartan-ng/brain": "0.0.1-alpha.705",
161
161
  "@angular/cdk": ">=20.0.0 <22.0.0",
162
162
  "rxjs": "^7.8.0"
163
163
  }
@@ -170,7 +170,7 @@
170
170
  "@angular/cdk": ">=20.0.0 <22.0.0",
171
171
  "@ng-icons/core": ">=32.0.0 <34.0.0",
172
172
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
173
- "@spartan-ng/brain": "0.0.1-alpha.704",
173
+ "@spartan-ng/brain": "0.0.1-alpha.705",
174
174
  "clsx": "^2.1.1"
175
175
  }
176
176
  },
@@ -178,7 +178,7 @@
178
178
  "name": "dialog",
179
179
  "peerDependencies": {
180
180
  "@angular/core": ">=20.0.0 <22.0.0",
181
- "@spartan-ng/brain": "0.0.1-alpha.704",
181
+ "@spartan-ng/brain": "0.0.1-alpha.705",
182
182
  "@angular/cdk": ">=20.0.0 <22.0.0",
183
183
  "@angular/common": ">=20.0.0 <22.0.0",
184
184
  "@ng-icons/core": ">=32.0.0 <34.0.0",
@@ -194,7 +194,7 @@
194
194
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
195
195
  "@angular/cdk": ">=20.0.0 <22.0.0",
196
196
  "rxjs": "^7.8.0",
197
- "@spartan-ng/brain": "0.0.1-alpha.704"
197
+ "@spartan-ng/brain": "0.0.1-alpha.705"
198
198
  }
199
199
  },
200
200
  "empty": {
@@ -208,7 +208,7 @@
208
208
  "name": "field",
209
209
  "peerDependencies": {
210
210
  "@angular/core": ">=20.0.0 <22.0.0",
211
- "@spartan-ng/brain": "0.0.1-alpha.704",
211
+ "@spartan-ng/brain": "0.0.1-alpha.705",
212
212
  "@angular/cdk": ">=20.0.0 <22.0.0",
213
213
  "class-variance-authority": "^0.7.0"
214
214
  }
@@ -217,7 +217,7 @@
217
217
  "name": "hover-card",
218
218
  "peerDependencies": {
219
219
  "@angular/core": ">=20.0.0 <22.0.0",
220
- "@spartan-ng/brain": "0.0.1-alpha.704"
220
+ "@spartan-ng/brain": "0.0.1-alpha.705"
221
221
  }
222
222
  },
223
223
  "icon": {
@@ -233,7 +233,7 @@
233
233
  "peerDependencies": {
234
234
  "@angular/core": ">=20.0.0 <22.0.0",
235
235
  "@angular/forms": ">=20.0.0 <22.0.0",
236
- "@spartan-ng/brain": "0.0.1-alpha.704"
236
+ "@spartan-ng/brain": "0.0.1-alpha.705"
237
237
  }
238
238
  },
239
239
  "input-group": {
@@ -250,7 +250,7 @@
250
250
  "@ng-icons/core": ">=32.0.0 <34.0.0",
251
251
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
252
252
  "@angular/cdk": ">=20.0.0 <22.0.0",
253
- "@spartan-ng/brain": "0.0.1-alpha.704"
253
+ "@spartan-ng/brain": "0.0.1-alpha.705"
254
254
  }
255
255
  },
256
256
  "item": {
@@ -258,7 +258,7 @@
258
258
  "peerDependencies": {
259
259
  "@angular/core": ">=20.0.0 <22.0.0",
260
260
  "class-variance-authority": "^0.7.0",
261
- "@spartan-ng/brain": "0.0.1-alpha.704"
261
+ "@spartan-ng/brain": "0.0.1-alpha.705"
262
262
  }
263
263
  },
264
264
  "kbd": {
@@ -271,14 +271,14 @@
271
271
  "name": "label",
272
272
  "peerDependencies": {
273
273
  "@angular/core": ">=20.0.0 <22.0.0",
274
- "@spartan-ng/brain": "0.0.1-alpha.704"
274
+ "@spartan-ng/brain": "0.0.1-alpha.705"
275
275
  }
276
276
  },
277
277
  "menubar": {
278
278
  "name": "menubar",
279
279
  "peerDependencies": {
280
280
  "@angular/core": ">=20.0.0 <22.0.0",
281
- "@spartan-ng/brain": "0.0.1-alpha.704",
281
+ "@spartan-ng/brain": "0.0.1-alpha.705",
282
282
  "@angular/cdk": ">=20.0.0 <22.0.0",
283
283
  "rxjs": "^7.8.0"
284
284
  }
@@ -291,7 +291,7 @@
291
291
  "@angular/forms": ">=20.0.0 <22.0.0",
292
292
  "@ng-icons/core": ">=32.0.0 <34.0.0",
293
293
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
294
- "@spartan-ng/brain": "0.0.1-alpha.704",
294
+ "@spartan-ng/brain": "0.0.1-alpha.705",
295
295
  "clsx": "^2.1.1"
296
296
  }
297
297
  },
@@ -299,7 +299,7 @@
299
299
  "name": "navigation-menu",
300
300
  "peerDependencies": {
301
301
  "@angular/core": ">=20.0.0 <22.0.0",
302
- "@spartan-ng/brain": "0.0.1-alpha.704"
302
+ "@spartan-ng/brain": "0.0.1-alpha.705"
303
303
  }
304
304
  },
305
305
  "pagination": {
@@ -318,14 +318,14 @@
318
318
  "name": "popover",
319
319
  "peerDependencies": {
320
320
  "@angular/core": ">=20.0.0 <22.0.0",
321
- "@spartan-ng/brain": "0.0.1-alpha.704"
321
+ "@spartan-ng/brain": "0.0.1-alpha.705"
322
322
  }
323
323
  },
324
324
  "progress": {
325
325
  "name": "progress",
326
326
  "peerDependencies": {
327
327
  "@angular/core": ">=20.0.0 <22.0.0",
328
- "@spartan-ng/brain": "0.0.1-alpha.704"
328
+ "@spartan-ng/brain": "0.0.1-alpha.705"
329
329
  }
330
330
  },
331
331
  "radio-group": {
@@ -333,7 +333,7 @@
333
333
  "peerDependencies": {
334
334
  "@angular/core": ">=20.0.0 <22.0.0",
335
335
  "@angular/forms": ">=20.0.0 <22.0.0",
336
- "@spartan-ng/brain": "0.0.1-alpha.704",
336
+ "@spartan-ng/brain": "0.0.1-alpha.705",
337
337
  "clsx": "^2.1.1",
338
338
  "@angular/cdk": ">=20.0.0 <22.0.0",
339
339
  "@angular/common": ">=20.0.0 <22.0.0"
@@ -343,7 +343,7 @@
343
343
  "name": "resizable",
344
344
  "peerDependencies": {
345
345
  "@angular/core": ">=20.0.0 <22.0.0",
346
- "@spartan-ng/brain": "0.0.1-alpha.704"
346
+ "@spartan-ng/brain": "0.0.1-alpha.705"
347
347
  }
348
348
  },
349
349
  "scroll-area": {
@@ -358,7 +358,7 @@
358
358
  "@angular/core": ">=20.0.0 <22.0.0",
359
359
  "@angular/forms": ">=20.0.0 <22.0.0",
360
360
  "@angular/cdk": ">=20.0.0 <22.0.0",
361
- "@spartan-ng/brain": "0.0.1-alpha.704",
361
+ "@spartan-ng/brain": "0.0.1-alpha.705",
362
362
  "@ng-icons/core": ">=32.0.0 <34.0.0",
363
363
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
364
364
  "clsx": "^2.1.1"
@@ -368,14 +368,14 @@
368
368
  "name": "separator",
369
369
  "peerDependencies": {
370
370
  "@angular/core": ">=20.0.0 <22.0.0",
371
- "@spartan-ng/brain": "0.0.1-alpha.704"
371
+ "@spartan-ng/brain": "0.0.1-alpha.705"
372
372
  }
373
373
  },
374
374
  "sheet": {
375
375
  "name": "sheet",
376
376
  "peerDependencies": {
377
377
  "@angular/core": ">=20.0.0 <22.0.0",
378
- "@spartan-ng/brain": "0.0.1-alpha.704",
378
+ "@spartan-ng/brain": "0.0.1-alpha.705",
379
379
  "@angular/cdk": ">=20.0.0 <22.0.0",
380
380
  "@ng-icons/core": ">=32.0.0 <34.0.0",
381
381
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -388,7 +388,7 @@
388
388
  "peerDependencies": {
389
389
  "@angular/core": ">=20.0.0 <22.0.0",
390
390
  "@angular/cdk": ">=20.0.0 <22.0.0",
391
- "@spartan-ng/brain": "0.0.1-alpha.704",
391
+ "@spartan-ng/brain": "0.0.1-alpha.705",
392
392
  "class-variance-authority": "^0.7.0",
393
393
  "@ng-icons/core": ">=32.0.0 <34.0.0",
394
394
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -407,7 +407,7 @@
407
407
  "peerDependencies": {
408
408
  "@angular/core": ">=20.0.0 <22.0.0",
409
409
  "@angular/forms": ">=20.0.0 <22.0.0",
410
- "@spartan-ng/brain": "0.0.1-alpha.704"
410
+ "@spartan-ng/brain": "0.0.1-alpha.705"
411
411
  }
412
412
  },
413
413
  "sonner": {
@@ -417,7 +417,7 @@
417
417
  "@angular/core": ">=20.0.0 <22.0.0",
418
418
  "@ng-icons/core": ">=32.0.0 <34.0.0",
419
419
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
420
- "@spartan-ng/brain": "0.0.1-alpha.704",
420
+ "@spartan-ng/brain": "0.0.1-alpha.705",
421
421
  "clsx": "^2.1.1"
422
422
  }
423
423
  },
@@ -435,7 +435,7 @@
435
435
  "@angular/core": ">=20.0.0 <22.0.0",
436
436
  "@angular/cdk": ">=20.0.0 <22.0.0",
437
437
  "@angular/forms": ">=20.0.0 <22.0.0",
438
- "@spartan-ng/brain": "0.0.1-alpha.704",
438
+ "@spartan-ng/brain": "0.0.1-alpha.705",
439
439
  "clsx": "^2.1.1"
440
440
  }
441
441
  },
@@ -449,7 +449,7 @@
449
449
  "name": "tabs",
450
450
  "peerDependencies": {
451
451
  "@angular/core": ">=20.0.0 <22.0.0",
452
- "@spartan-ng/brain": "0.0.1-alpha.704",
452
+ "@spartan-ng/brain": "0.0.1-alpha.705",
453
453
  "class-variance-authority": "^0.7.0",
454
454
  "@angular/cdk": ">=20.0.0 <22.0.0",
455
455
  "@ng-icons/core": ">=32.0.0 <34.0.0",
@@ -463,14 +463,14 @@
463
463
  "peerDependencies": {
464
464
  "@angular/core": ">=20.0.0 <22.0.0",
465
465
  "@angular/forms": ">=20.0.0 <22.0.0",
466
- "@spartan-ng/brain": "0.0.1-alpha.704"
466
+ "@spartan-ng/brain": "0.0.1-alpha.705"
467
467
  }
468
468
  },
469
469
  "toggle": {
470
470
  "name": "toggle",
471
471
  "peerDependencies": {
472
472
  "@angular/core": ">=20.0.0 <22.0.0",
473
- "@spartan-ng/brain": "0.0.1-alpha.704",
473
+ "@spartan-ng/brain": "0.0.1-alpha.705",
474
474
  "class-variance-authority": "^0.7.0"
475
475
  }
476
476
  },
@@ -478,7 +478,7 @@
478
478
  "name": "toggle-group",
479
479
  "peerDependencies": {
480
480
  "@angular/core": ">=20.0.0 <22.0.0",
481
- "@spartan-ng/brain": "0.0.1-alpha.704",
481
+ "@spartan-ng/brain": "0.0.1-alpha.705",
482
482
  "@angular/cdk": ">=20.0.0 <22.0.0"
483
483
  }
484
484
  },
@@ -486,7 +486,7 @@
486
486
  "name": "tooltip",
487
487
  "peerDependencies": {
488
488
  "@angular/core": ">=20.0.0 <22.0.0",
489
- "@spartan-ng/brain": "0.0.1-alpha.704",
489
+ "@spartan-ng/brain": "0.0.1-alpha.705",
490
490
  "class-variance-authority": "^0.7.0"
491
491
  }
492
492
  },
@@ -94,7 +94,7 @@ export declare const rawConfigSchema: z.ZodObject<{
94
94
  headers?: Record<string, string>;
95
95
  }>;
96
96
  }>;
97
- export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
97
+ export declare const configSchema: z.ZodObject<{
98
98
  $schema: z.ZodOptional<z.ZodString>;
99
99
  style: z.ZodString;
100
100
  tailwind: z.ZodObject<{
@@ -130,7 +130,7 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
130
130
  url?: string;
131
131
  headers?: Record<string, string>;
132
132
  }>]>>>;
133
- }, {
133
+ } & {
134
134
  resolvedPaths: z.ZodObject<{
135
135
  cwd: z.ZodString;
136
136
  tailwindConfig: z.ZodString;
@@ -159,7 +159,7 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
159
159
  lib?: string;
160
160
  hooks?: string;
161
161
  }>;
162
- }>, "strict", z.ZodTypeAny, {
162
+ }, "strict", z.ZodTypeAny, {
163
163
  $schema?: string;
164
164
  style?: string;
165
165
  tailwind?: {
@@ -212,7 +212,7 @@ export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
212
212
  hooks?: string;
213
213
  };
214
214
  }>;
215
- export declare const workspaceConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<z.objectUtil.extendShape<{
215
+ export declare const workspaceConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
216
216
  $schema: z.ZodOptional<z.ZodString>;
217
217
  style: z.ZodString;
218
218
  tailwind: z.ZodObject<{
@@ -248,7 +248,7 @@ export declare const workspaceConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject
248
248
  url?: string;
249
249
  headers?: Record<string, string>;
250
250
  }>]>>>;
251
- }, {
251
+ } & {
252
252
  resolvedPaths: z.ZodObject<{
253
253
  cwd: z.ZodString;
254
254
  tailwindConfig: z.ZodString;
@@ -277,7 +277,7 @@ export declare const workspaceConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject
277
277
  lib?: string;
278
278
  hooks?: string;
279
279
  }>;
280
- }>, "strict", z.ZodTypeAny, {
280
+ }, "strict", z.ZodTypeAny, {
281
281
  $schema?: string;
282
282
  style?: string;
283
283
  tailwind?: {
@@ -521,7 +521,7 @@ export declare const registryItemCommonSchema: z.ZodObject<{
521
521
  dark?: Record<string, string>;
522
522
  };
523
523
  }>;
524
- export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
524
+ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
525
525
  name: z.ZodString;
526
526
  title: z.ZodOptional<z.ZodString>;
527
527
  description: z.ZodOptional<z.ZodString>;
@@ -571,7 +571,7 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
571
571
  light?: Record<string, string>;
572
572
  dark?: Record<string, string>;
573
573
  }>>;
574
- }, {
574
+ } & {
575
575
  type: z.ZodLiteral<"registry:base">;
576
576
  config: z.ZodOptional<z.ZodObject<{
577
577
  $schema: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -642,7 +642,7 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
642
642
  headers?: Record<string, string>;
643
643
  }>;
644
644
  }>>;
645
- }>, "strip", z.ZodTypeAny, {
645
+ }, "strip", z.ZodTypeAny, {
646
646
  type?: "registry:base";
647
647
  name?: string;
648
648
  config?: {
@@ -722,7 +722,7 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
722
722
  light?: Record<string, string>;
723
723
  dark?: Record<string, string>;
724
724
  };
725
- }>, z.ZodObject<z.objectUtil.extendShape<{
725
+ }>, z.ZodObject<{
726
726
  name: z.ZodString;
727
727
  title: z.ZodOptional<z.ZodString>;
728
728
  description: z.ZodOptional<z.ZodString>;
@@ -772,7 +772,7 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
772
772
  light?: Record<string, string>;
773
773
  dark?: Record<string, string>;
774
774
  }>>;
775
- }, {
775
+ } & {
776
776
  type: z.ZodLiteral<"registry:font">;
777
777
  font: z.ZodObject<{
778
778
  family: z.ZodString;
@@ -796,7 +796,7 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
796
796
  weight?: string[];
797
797
  subsets?: string[];
798
798
  }>;
799
- }>, "strip", z.ZodTypeAny, {
799
+ }, "strip", z.ZodTypeAny, {
800
800
  type?: "registry:font";
801
801
  name?: string;
802
802
  title?: string;
@@ -858,7 +858,7 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
858
858
  weight?: string[];
859
859
  subsets?: string[];
860
860
  };
861
- }>, z.ZodObject<z.objectUtil.extendShape<{
861
+ }>, z.ZodObject<{
862
862
  name: z.ZodString;
863
863
  title: z.ZodOptional<z.ZodString>;
864
864
  description: z.ZodOptional<z.ZodString>;
@@ -908,9 +908,9 @@ export declare const registryItemSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
908
908
  light?: Record<string, string>;
909
909
  dark?: Record<string, string>;
910
910
  }>>;
911
- }, {
911
+ } & {
912
912
  type: z.ZodEnum<["registry:lib", "registry:block", "registry:component", "registry:ui", "registry:hook", "registry:page", "registry:file", "registry:theme", "registry:style", "registry:item", "registry:example", "registry:internal"]>;
913
- }>, "strip", z.ZodTypeAny, {
913
+ }, "strip", z.ZodTypeAny, {
914
914
  type?: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:page" | "registry:file" | "registry:theme" | "registry:style" | "registry:item" | "registry:example" | "registry:internal";
915
915
  name?: string;
916
916
  title?: string;
@@ -967,7 +967,7 @@ export type RegistryFontItem = Extract<RegistryItem, {
967
967
  export declare const registrySchema: z.ZodObject<{
968
968
  name: z.ZodString;
969
969
  homepage: z.ZodString;
970
- items: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
970
+ items: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
971
971
  name: z.ZodString;
972
972
  title: z.ZodOptional<z.ZodString>;
973
973
  description: z.ZodOptional<z.ZodString>;
@@ -1017,7 +1017,7 @@ export declare const registrySchema: z.ZodObject<{
1017
1017
  light?: Record<string, string>;
1018
1018
  dark?: Record<string, string>;
1019
1019
  }>>;
1020
- }, {
1020
+ } & {
1021
1021
  type: z.ZodLiteral<"registry:base">;
1022
1022
  config: z.ZodOptional<z.ZodObject<{
1023
1023
  $schema: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -1088,7 +1088,7 @@ export declare const registrySchema: z.ZodObject<{
1088
1088
  headers?: Record<string, string>;
1089
1089
  }>;
1090
1090
  }>>;
1091
- }>, "strip", z.ZodTypeAny, {
1091
+ }, "strip", z.ZodTypeAny, {
1092
1092
  type?: "registry:base";
1093
1093
  name?: string;
1094
1094
  config?: {
@@ -1168,7 +1168,7 @@ export declare const registrySchema: z.ZodObject<{
1168
1168
  light?: Record<string, string>;
1169
1169
  dark?: Record<string, string>;
1170
1170
  };
1171
- }>, z.ZodObject<z.objectUtil.extendShape<{
1171
+ }>, z.ZodObject<{
1172
1172
  name: z.ZodString;
1173
1173
  title: z.ZodOptional<z.ZodString>;
1174
1174
  description: z.ZodOptional<z.ZodString>;
@@ -1218,7 +1218,7 @@ export declare const registrySchema: z.ZodObject<{
1218
1218
  light?: Record<string, string>;
1219
1219
  dark?: Record<string, string>;
1220
1220
  }>>;
1221
- }, {
1221
+ } & {
1222
1222
  type: z.ZodLiteral<"registry:font">;
1223
1223
  font: z.ZodObject<{
1224
1224
  family: z.ZodString;
@@ -1242,7 +1242,7 @@ export declare const registrySchema: z.ZodObject<{
1242
1242
  weight?: string[];
1243
1243
  subsets?: string[];
1244
1244
  }>;
1245
- }>, "strip", z.ZodTypeAny, {
1245
+ }, "strip", z.ZodTypeAny, {
1246
1246
  type?: "registry:font";
1247
1247
  name?: string;
1248
1248
  title?: string;
@@ -1304,7 +1304,7 @@ export declare const registrySchema: z.ZodObject<{
1304
1304
  weight?: string[];
1305
1305
  subsets?: string[];
1306
1306
  };
1307
- }>, z.ZodObject<z.objectUtil.extendShape<{
1307
+ }>, z.ZodObject<{
1308
1308
  name: z.ZodString;
1309
1309
  title: z.ZodOptional<z.ZodString>;
1310
1310
  description: z.ZodOptional<z.ZodString>;
@@ -1354,9 +1354,9 @@ export declare const registrySchema: z.ZodObject<{
1354
1354
  light?: Record<string, string>;
1355
1355
  dark?: Record<string, string>;
1356
1356
  }>>;
1357
- }, {
1357
+ } & {
1358
1358
  type: z.ZodEnum<["registry:lib", "registry:block", "registry:component", "registry:ui", "registry:hook", "registry:page", "registry:file", "registry:theme", "registry:style", "registry:item", "registry:example", "registry:internal"]>;
1359
- }>, "strip", z.ZodTypeAny, {
1359
+ }, "strip", z.ZodTypeAny, {
1360
1360
  type?: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:page" | "registry:file" | "registry:theme" | "registry:style" | "registry:item" | "registry:example" | "registry:internal";
1361
1361
  name?: string;
1362
1362
  title?: string;
@@ -1601,7 +1601,7 @@ export declare const registrySchema: z.ZodObject<{
1601
1601
  })[];
1602
1602
  }>;
1603
1603
  export type Registry = z.infer<typeof registrySchema>;
1604
- export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
1604
+ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1605
1605
  name: z.ZodString;
1606
1606
  title: z.ZodOptional<z.ZodString>;
1607
1607
  description: z.ZodOptional<z.ZodString>;
@@ -1651,7 +1651,7 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1651
1651
  light?: Record<string, string>;
1652
1652
  dark?: Record<string, string>;
1653
1653
  }>>;
1654
- }, {
1654
+ } & {
1655
1655
  type: z.ZodLiteral<"registry:base">;
1656
1656
  config: z.ZodOptional<z.ZodObject<{
1657
1657
  $schema: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -1722,7 +1722,7 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1722
1722
  headers?: Record<string, string>;
1723
1723
  }>;
1724
1724
  }>>;
1725
- }>, "strip", z.ZodTypeAny, {
1725
+ }, "strip", z.ZodTypeAny, {
1726
1726
  type?: "registry:base";
1727
1727
  name?: string;
1728
1728
  config?: {
@@ -1802,7 +1802,7 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1802
1802
  light?: Record<string, string>;
1803
1803
  dark?: Record<string, string>;
1804
1804
  };
1805
- }>, z.ZodObject<z.objectUtil.extendShape<{
1805
+ }>, z.ZodObject<{
1806
1806
  name: z.ZodString;
1807
1807
  title: z.ZodOptional<z.ZodString>;
1808
1808
  description: z.ZodOptional<z.ZodString>;
@@ -1852,7 +1852,7 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1852
1852
  light?: Record<string, string>;
1853
1853
  dark?: Record<string, string>;
1854
1854
  }>>;
1855
- }, {
1855
+ } & {
1856
1856
  type: z.ZodLiteral<"registry:font">;
1857
1857
  font: z.ZodObject<{
1858
1858
  family: z.ZodString;
@@ -1876,7 +1876,7 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1876
1876
  weight?: string[];
1877
1877
  subsets?: string[];
1878
1878
  }>;
1879
- }>, "strip", z.ZodTypeAny, {
1879
+ }, "strip", z.ZodTypeAny, {
1880
1880
  type?: "registry:font";
1881
1881
  name?: string;
1882
1882
  title?: string;
@@ -1938,7 +1938,7 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1938
1938
  weight?: string[];
1939
1939
  subsets?: string[];
1940
1940
  };
1941
- }>, z.ZodObject<z.objectUtil.extendShape<{
1941
+ }>, z.ZodObject<{
1942
1942
  name: z.ZodString;
1943
1943
  title: z.ZodOptional<z.ZodString>;
1944
1944
  description: z.ZodOptional<z.ZodString>;
@@ -1988,9 +1988,9 @@ export declare const registryIndexSchema: z.ZodArray<z.ZodDiscriminatedUnion<"ty
1988
1988
  light?: Record<string, string>;
1989
1989
  dark?: Record<string, string>;
1990
1990
  }>>;
1991
- }, {
1991
+ } & {
1992
1992
  type: z.ZodEnum<["registry:lib", "registry:block", "registry:component", "registry:ui", "registry:hook", "registry:page", "registry:file", "registry:theme", "registry:style", "registry:item", "registry:example", "registry:internal"]>;
1993
- }>, "strip", z.ZodTypeAny, {
1993
+ }, "strip", z.ZodTypeAny, {
1994
1994
  type?: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:page" | "registry:file" | "registry:theme" | "registry:style" | "registry:item" | "registry:example" | "registry:internal";
1995
1995
  name?: string;
1996
1996
  title?: string;