admin-ui-starter-kit 0.1.1 → 0.1.3

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
@@ -99,6 +99,11 @@ exactly your tool.**
99
99
  For a full framework and bundler setup walkthrough, see
100
100
  [INTEGRATION.md](INTEGRATION.md).
101
101
 
102
+ Migrating an app that already copied an older local UI tree? Start with
103
+ [MIGRATION.md](MIGRATION.md), then use
104
+ [COMPONENT_SELECTION.md](COMPONENT_SELECTION.md) to choose exact package
105
+ entrypoints.
106
+
102
107
  ### 1. Add the package
103
108
 
104
109
  ```bash
@@ -164,23 +169,37 @@ import { UIProvider } from 'admin-ui-starter-kit/ui-provider';
164
169
 
165
170
  The provider is locked at first mount; pass everything once at the root.
166
171
 
167
- ### 6. Install the AI agent skill (optional)
172
+ ### 6. Install the AI agent skills (optional)
173
+
174
+ This package ships AI skills for Claude Code and other agents:
168
175
 
169
- This package ships a `component-library-rules` skill for Claude Code and other
170
- AI agents. After installing the package:
176
+ - `component-library-rules` maintainer rules for editing this library.
177
+ - `admin-ui-consumer-migration` consumer-app migration rules and guardrails.
178
+
179
+ After installing the package:
171
180
 
172
181
  ```bash
173
182
  npx admin-ui-starter-kit-install-skill
174
183
  ```
175
184
 
176
- Copies the skill into your project's `.claude/skills/component-library-rules/`
177
- and `.agents/skills/component-library-rules/`. Run again to update after a
178
- package upgrade.
185
+ Copies both skills into your project's `.claude/skills/` and
186
+ `.agents/skills/`. Run again to update after a package upgrade.
179
187
 
180
188
  Flags:
189
+ - `--skill=all|component-library-rules|admin-ui-consumer-migration` (default `all`)
181
190
  - `--target=claude|agents|both` (default `both`) — pick which directory to install into.
182
191
  - `--force` — overwrite without prompting.
183
192
 
193
+ For migration checks in a consuming app:
194
+
195
+ ```bash
196
+ npx admin-ui-starter-kit-audit
197
+ npx admin-ui-starter-kit-audit --fix
198
+ ```
199
+
200
+ The audit rejects stale copied imports, invalid package subpaths, and local
201
+ files that only re-export package components.
202
+
184
203
  ---
185
204
 
186
205
  ## Browse the component showcase
@@ -283,22 +302,25 @@ utilities with optional peers:
283
302
  import { MetadataList } from 'admin-ui-starter-kit/base/display/metadata';
284
303
  ```
285
304
 
286
- Safe public entrypoints:
305
+ Safe public entrypoint shapes:
287
306
  - `admin-ui-starter-kit` — provider, strings helpers, and `cn` only.
288
307
  - `admin-ui-starter-kit/ui-provider`
289
308
  - `admin-ui-starter-kit/typography`
290
- - `admin-ui-starter-kit/base/*`
309
+ - `admin-ui-starter-kit/base/buttons`, `admin-ui-starter-kit/base/item`, etc.
291
310
  - `admin-ui-starter-kit/base/display/metadata`
292
- - `admin-ui-starter-kit/composed/*`
293
- - `admin-ui-starter-kit/features/*`
294
- - `admin-ui-starter-kit/layout` and `admin-ui-starter-kit/layout/*`
311
+ - `admin-ui-starter-kit/composed/cards`, `admin-ui-starter-kit/composed/analytics`, etc.
312
+ - `admin-ui-starter-kit/features/comments`, `admin-ui-starter-kit/features/filters`, etc.
313
+ - `admin-ui-starter-kit/layout` and exact layout families such as `admin-ui-starter-kit/layout/page`
295
314
  - `admin-ui-starter-kit/lib/strings`
296
315
  - `admin-ui-starter-kit/lib/utils`
297
316
 
298
317
  Avoid broad component imports such as `admin-ui-starter-kit/base`,
299
318
  `admin-ui-starter-kit/composed`, or `admin-ui-starter-kit/features`; they are
300
319
  intentionally not exported. Use the exact family subpath so missing optional
301
- peers fail only when you import the feature that needs them.
320
+ peers fail only when you import the feature that needs them. The package
321
+ `exports` map lists each public family as an exact key; wildcard exports and
322
+ null wildcard blockers are intentionally avoided because bundlers handle them
323
+ inconsistently.
302
324
 
303
325
  Dropdown menus use Base UI's `render` prop for custom triggers, not Radix's
304
326
  `asChild` prop:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "admin-ui-starter-kit",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Opinionated React component kit for admin panels and SaaS dashboards, built on top of shadcn/ui + Tailwind CSS v4. Callback-driven, framework-agnostic, i18n-ready.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -29,6 +29,8 @@
29
29
  "files": [
30
30
  "dist",
31
31
  "README.md",
32
+ "MIGRATION.md",
33
+ "COMPONENT_SELECTION.md",
32
34
  "INTEGRATION.md",
33
35
  "CHANGELOG.md",
34
36
  "CONTRIBUTING.md",
@@ -39,10 +41,13 @@
39
41
  "CLAUDE.md",
40
42
  "AGENTS.md",
41
43
  ".agents/skills/component-library-rules",
44
+ ".agents/skills/admin-ui-consumer-migration",
45
+ "scripts/audit-consumer.mjs",
42
46
  "scripts/install-skill.mjs",
43
47
  "scripts/serve-showcase.mjs"
44
48
  ],
45
49
  "bin": {
50
+ "admin-ui-starter-kit-audit": "./scripts/audit-consumer.mjs",
46
51
  "admin-ui-starter-kit-install-skill": "./scripts/install-skill.mjs",
47
52
  "admin-ui-starter-kit-showcase": "./scripts/serve-showcase.mjs"
48
53
  },
@@ -91,39 +96,265 @@
91
96
  "import": "./dist/components/typography/index.js",
92
97
  "require": "./dist/components/typography/index.cjs"
93
98
  },
99
+ "./base/accordion": {
100
+ "types": "./dist/components/base/accordion/index.d.ts",
101
+ "import": "./dist/components/base/accordion/index.js",
102
+ "require": "./dist/components/base/accordion/index.cjs"
103
+ },
104
+ "./base/badge": {
105
+ "types": "./dist/components/base/badge/index.d.ts",
106
+ "import": "./dist/components/base/badge/index.js",
107
+ "require": "./dist/components/base/badge/index.cjs"
108
+ },
109
+ "./base/buttons": {
110
+ "types": "./dist/components/base/buttons/index.d.ts",
111
+ "import": "./dist/components/base/buttons/index.js",
112
+ "require": "./dist/components/base/buttons/index.cjs"
113
+ },
114
+ "./base/cards": {
115
+ "types": "./dist/components/base/cards/index.d.ts",
116
+ "import": "./dist/components/base/cards/index.js",
117
+ "require": "./dist/components/base/cards/index.cjs"
118
+ },
119
+ "./base/combobox": {
120
+ "types": "./dist/components/base/combobox/index.d.ts",
121
+ "import": "./dist/components/base/combobox/index.js",
122
+ "require": "./dist/components/base/combobox/index.cjs"
123
+ },
124
+ "./base/command": {
125
+ "types": "./dist/components/base/command/index.d.ts",
126
+ "import": "./dist/components/base/command/index.js",
127
+ "require": "./dist/components/base/command/index.cjs"
128
+ },
129
+ "./base/copyable": {
130
+ "types": "./dist/components/base/copyable/index.d.ts",
131
+ "import": "./dist/components/base/copyable/index.js",
132
+ "require": "./dist/components/base/copyable/index.cjs"
133
+ },
134
+ "./base/currency": {
135
+ "types": "./dist/components/base/currency/index.d.ts",
136
+ "import": "./dist/components/base/currency/index.js",
137
+ "require": "./dist/components/base/currency/index.cjs"
138
+ },
139
+ "./base/date-pickers": {
140
+ "types": "./dist/components/base/date-pickers/index.d.ts",
141
+ "import": "./dist/components/base/date-pickers/index.js",
142
+ "require": "./dist/components/base/date-pickers/index.cjs"
143
+ },
144
+ "./base/display": {
145
+ "types": "./dist/components/base/display/index.d.ts",
146
+ "import": "./dist/components/base/display/index.js",
147
+ "require": "./dist/components/base/display/index.cjs"
148
+ },
94
149
  "./base/display/metadata": {
95
150
  "types": "./dist/components/base/display/metadata/index.d.ts",
96
151
  "import": "./dist/components/base/display/metadata/index.js",
97
152
  "require": "./dist/components/base/display/metadata/index.cjs"
98
153
  },
99
- "./base/*/*": null,
100
- "./base/*": {
101
- "types": "./dist/components/base/*/index.d.ts",
102
- "import": "./dist/components/base/*/index.js",
103
- "require": "./dist/components/base/*/index.cjs"
104
- },
105
- "./composed/*/*": null,
106
- "./composed/*": {
107
- "types": "./dist/components/composed/*/index.d.ts",
108
- "import": "./dist/components/composed/*/index.js",
109
- "require": "./dist/components/composed/*/index.cjs"
110
- },
111
- "./features/*/*": null,
112
- "./features/*": {
113
- "types": "./dist/components/features/*/index.d.ts",
114
- "import": "./dist/components/features/*/index.js",
115
- "require": "./dist/components/features/*/index.cjs"
154
+ "./base/event-calendar": {
155
+ "types": "./dist/components/base/event-calendar/index.d.ts",
156
+ "import": "./dist/components/base/event-calendar/index.js",
157
+ "require": "./dist/components/base/event-calendar/index.cjs"
158
+ },
159
+ "./base/forms": {
160
+ "types": "./dist/components/base/forms/index.d.ts",
161
+ "import": "./dist/components/base/forms/index.js",
162
+ "require": "./dist/components/base/forms/index.cjs"
163
+ },
164
+ "./base/item": {
165
+ "types": "./dist/components/base/item/index.d.ts",
166
+ "import": "./dist/components/base/item/index.js",
167
+ "require": "./dist/components/base/item/index.cjs"
168
+ },
169
+ "./base/map": {
170
+ "types": "./dist/components/base/map/index.d.ts",
171
+ "import": "./dist/components/base/map/index.js",
172
+ "require": "./dist/components/base/map/index.cjs"
173
+ },
174
+ "./base/navigation": {
175
+ "types": "./dist/components/base/navigation/index.d.ts",
176
+ "import": "./dist/components/base/navigation/index.js",
177
+ "require": "./dist/components/base/navigation/index.cjs"
178
+ },
179
+ "./base/popover": {
180
+ "types": "./dist/components/base/popover/index.d.ts",
181
+ "import": "./dist/components/base/popover/index.js",
182
+ "require": "./dist/components/base/popover/index.cjs"
183
+ },
184
+ "./base/popover-menu": {
185
+ "types": "./dist/components/base/popover-menu/index.d.ts",
186
+ "import": "./dist/components/base/popover-menu/index.js",
187
+ "require": "./dist/components/base/popover-menu/index.cjs"
188
+ },
189
+ "./base/sheet": {
190
+ "types": "./dist/components/base/sheet/index.d.ts",
191
+ "import": "./dist/components/base/sheet/index.js",
192
+ "require": "./dist/components/base/sheet/index.cjs"
193
+ },
194
+ "./base/sidebar": {
195
+ "types": "./dist/components/base/sidebar/index.d.ts",
196
+ "import": "./dist/components/base/sidebar/index.js",
197
+ "require": "./dist/components/base/sidebar/index.cjs"
198
+ },
199
+ "./base/spinner": {
200
+ "types": "./dist/components/base/spinner/index.d.ts",
201
+ "import": "./dist/components/base/spinner/index.js",
202
+ "require": "./dist/components/base/spinner/index.cjs"
203
+ },
204
+ "./base/table": {
205
+ "types": "./dist/components/base/table/index.d.ts",
206
+ "import": "./dist/components/base/table/index.js",
207
+ "require": "./dist/components/base/table/index.cjs"
208
+ },
209
+ "./base/toaster": {
210
+ "types": "./dist/components/base/toaster/index.d.ts",
211
+ "import": "./dist/components/base/toaster/index.js",
212
+ "require": "./dist/components/base/toaster/index.cjs"
213
+ },
214
+ "./composed/admin": {
215
+ "types": "./dist/components/composed/admin/index.d.ts",
216
+ "import": "./dist/components/composed/admin/index.js",
217
+ "require": "./dist/components/composed/admin/index.cjs"
218
+ },
219
+ "./composed/ai": {
220
+ "types": "./dist/components/composed/ai/index.d.ts",
221
+ "import": "./dist/components/composed/ai/index.js",
222
+ "require": "./dist/components/composed/ai/index.cjs"
223
+ },
224
+ "./composed/analytics": {
225
+ "types": "./dist/components/composed/analytics/index.d.ts",
226
+ "import": "./dist/components/composed/analytics/index.js",
227
+ "require": "./dist/components/composed/analytics/index.cjs"
228
+ },
229
+ "./composed/cards": {
230
+ "types": "./dist/components/composed/cards/index.d.ts",
231
+ "import": "./dist/components/composed/cards/index.js",
232
+ "require": "./dist/components/composed/cards/index.cjs"
233
+ },
234
+ "./composed/commerce": {
235
+ "types": "./dist/components/composed/commerce/index.d.ts",
236
+ "import": "./dist/components/composed/commerce/index.js",
237
+ "require": "./dist/components/composed/commerce/index.cjs"
238
+ },
239
+ "./composed/dark-surfaces": {
240
+ "types": "./dist/components/composed/dark-surfaces/index.d.ts",
241
+ "import": "./dist/components/composed/dark-surfaces/index.js",
242
+ "require": "./dist/components/composed/dark-surfaces/index.cjs"
243
+ },
244
+ "./composed/data-display": {
245
+ "types": "./dist/components/composed/data-display/index.d.ts",
246
+ "import": "./dist/components/composed/data-display/index.js",
247
+ "require": "./dist/components/composed/data-display/index.cjs"
248
+ },
249
+ "./composed/navigation": {
250
+ "types": "./dist/components/composed/navigation/index.d.ts",
251
+ "import": "./dist/components/composed/navigation/index.js",
252
+ "require": "./dist/components/composed/navigation/index.cjs"
253
+ },
254
+ "./composed/onboarding": {
255
+ "types": "./dist/components/composed/onboarding/index.d.ts",
256
+ "import": "./dist/components/composed/onboarding/index.js",
257
+ "require": "./dist/components/composed/onboarding/index.cjs"
258
+ },
259
+ "./composed/timelines": {
260
+ "types": "./dist/components/composed/timelines/index.d.ts",
261
+ "import": "./dist/components/composed/timelines/index.js",
262
+ "require": "./dist/components/composed/timelines/index.cjs"
263
+ },
264
+ "./features/activities": {
265
+ "types": "./dist/components/features/activities/index.d.ts",
266
+ "import": "./dist/components/features/activities/index.js",
267
+ "require": "./dist/components/features/activities/index.cjs"
268
+ },
269
+ "./features/ai-chat": {
270
+ "types": "./dist/components/features/ai-chat/index.d.ts",
271
+ "import": "./dist/components/features/ai-chat/index.js",
272
+ "require": "./dist/components/features/ai-chat/index.cjs"
273
+ },
274
+ "./features/card": {
275
+ "types": "./dist/components/features/card/index.d.ts",
276
+ "import": "./dist/components/features/card/index.js",
277
+ "require": "./dist/components/features/card/index.cjs"
278
+ },
279
+ "./features/comments": {
280
+ "types": "./dist/components/features/comments/index.d.ts",
281
+ "import": "./dist/components/features/comments/index.js",
282
+ "require": "./dist/components/features/comments/index.cjs"
283
+ },
284
+ "./features/event-log": {
285
+ "types": "./dist/components/features/event-log/index.d.ts",
286
+ "import": "./dist/components/features/event-log/index.js",
287
+ "require": "./dist/components/features/event-log/index.cjs"
288
+ },
289
+ "./features/filters": {
290
+ "types": "./dist/components/features/filters/index.d.ts",
291
+ "import": "./dist/components/features/filters/index.js",
292
+ "require": "./dist/components/features/filters/index.cjs"
293
+ },
294
+ "./features/global-search": {
295
+ "types": "./dist/components/features/global-search/index.d.ts",
296
+ "import": "./dist/components/features/global-search/index.js",
297
+ "require": "./dist/components/features/global-search/index.cjs"
298
+ },
299
+ "./features/kanban": {
300
+ "types": "./dist/components/features/kanban/index.d.ts",
301
+ "import": "./dist/components/features/kanban/index.js",
302
+ "require": "./dist/components/features/kanban/index.cjs"
303
+ },
304
+ "./features/mentions": {
305
+ "types": "./dist/components/features/mentions/index.d.ts",
306
+ "import": "./dist/components/features/mentions/index.js",
307
+ "require": "./dist/components/features/mentions/index.cjs"
308
+ },
309
+ "./features/overlays": {
310
+ "types": "./dist/components/features/overlays/index.d.ts",
311
+ "import": "./dist/components/features/overlays/index.js",
312
+ "require": "./dist/components/features/overlays/index.cjs"
313
+ },
314
+ "./features/rich-text-editor": {
315
+ "types": "./dist/components/features/rich-text-editor/index.d.ts",
316
+ "import": "./dist/components/features/rich-text-editor/index.js",
317
+ "require": "./dist/components/features/rich-text-editor/index.cjs"
318
+ },
319
+ "./features/suggestions": {
320
+ "types": "./dist/components/features/suggestions/index.d.ts",
321
+ "import": "./dist/components/features/suggestions/index.js",
322
+ "require": "./dist/components/features/suggestions/index.cjs"
323
+ },
324
+ "./features/sync": {
325
+ "types": "./dist/components/features/sync/index.d.ts",
326
+ "import": "./dist/components/features/sync/index.js",
327
+ "require": "./dist/components/features/sync/index.cjs"
116
328
  },
117
329
  "./layout": {
118
330
  "types": "./dist/components/layout/index.d.ts",
119
331
  "import": "./dist/components/layout/index.js",
120
332
  "require": "./dist/components/layout/index.cjs"
121
333
  },
122
- "./layout/*/*": null,
123
- "./layout/*": {
124
- "types": "./dist/components/layout/*/index.d.ts",
125
- "import": "./dist/components/layout/*/index.js",
126
- "require": "./dist/components/layout/*/index.cjs"
334
+ "./layout/containers": {
335
+ "types": "./dist/components/layout/containers/index.d.ts",
336
+ "import": "./dist/components/layout/containers/index.js",
337
+ "require": "./dist/components/layout/containers/index.cjs"
338
+ },
339
+ "./layout/page": {
340
+ "types": "./dist/components/layout/page/index.d.ts",
341
+ "import": "./dist/components/layout/page/index.js",
342
+ "require": "./dist/components/layout/page/index.cjs"
343
+ },
344
+ "./layout/header": {
345
+ "types": "./dist/components/layout/header/index.d.ts",
346
+ "import": "./dist/components/layout/header/index.js",
347
+ "require": "./dist/components/layout/header/index.cjs"
348
+ },
349
+ "./layout/sidebar": {
350
+ "types": "./dist/components/layout/sidebar/index.d.ts",
351
+ "import": "./dist/components/layout/sidebar/index.js",
352
+ "require": "./dist/components/layout/sidebar/index.cjs"
353
+ },
354
+ "./layout/hooks": {
355
+ "types": "./dist/components/layout/hooks/index.d.ts",
356
+ "import": "./dist/components/layout/hooks/index.js",
357
+ "require": "./dist/components/layout/hooks/index.cjs"
127
358
  },
128
359
  "./lib/strings": {
129
360
  "types": "./dist/lib/strings.d.ts",