admin-ui-starter-kit 0.1.1 → 0.1.2

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.
@@ -784,6 +784,11 @@ from `admin-ui-starter-kit/base/display/metadata` so consumers do not need to
784
784
  load the broader `base/display` barrel. Never document file-level paths such as
785
785
  `admin-ui-starter-kit/base/display/metadata/metadata-list`.
786
786
 
787
+ The package `exports` map must list every public family as an exact key:
788
+ `./base/buttons`, `./features/comments`, `./layout/page`, etc. Do not use
789
+ wildcard exports such as `./base/*`, and do not use null wildcard blockers such
790
+ as `./base/*/*`; bundlers can treat those patterns inconsistently.
791
+
787
792
  Base UI-backed triggers use Base UI's `render` prop, not Radix's `asChild`.
788
793
  For dropdown menus, write:
789
794
 
@@ -41,6 +41,12 @@ Do not use or document broad `admin-ui-starter-kit/base`,
41
41
  They are intentionally not exported so optional peers stay isolated to the exact
42
42
  component family that needs them.
43
43
 
44
+ `package.json` must publish those component families as explicit exact keys,
45
+ not wildcard package exports. For example, publish `./base/buttons` and
46
+ `./features/comments`, not `./base/*` or `./features/*`. Do not use null
47
+ wildcard blockers such as `./base/*/*`; exact exports already keep undocumented
48
+ nested paths private and avoid bundler resolver drift.
49
+
44
50
  Most public boundaries are first-level families. A nested subfamily is public
45
51
  only when it has an explicit `package.json` export and `vite.lib.config.ts`
46
52
  entry. Current intentional nested subfamily:
package/AGENTS.md CHANGED
@@ -117,8 +117,11 @@ Hard rules (full detail in the skill):
117
117
 
118
118
  - **Entry**: `src/preview/PreviewApp.tsx` (showcase) and the public
119
119
  `package.json` `exports` map (`.`, `./ui-provider`,
120
- `./typography`, `./base/*`, `./composed/*`, `./features/*`,
121
- `./layout`, `./layout/*`, `./lib/strings`, `./lib/utils`).
120
+ `./typography`, exact `./base/<family>`, exact
121
+ `./composed/<family>`, exact `./features/<feature>`, `./layout`,
122
+ exact `./layout/<family>`, `./lib/strings`, `./lib/utils`).
123
+ The exports map must use exact keys, not wildcard/null blocker
124
+ patterns.
122
125
  - **`<UIProvider>`** (`@/lib/ui-provider`) — the **only** library-level
123
126
  provider. Holds opinionated display defaults (`money.defaultCurrency`,
124
127
  `dates.weekStartsOn`, `badge.defaultSize`, `card.defaultPadding`, …).
package/INTEGRATION.md CHANGED
@@ -40,6 +40,10 @@ Only documented nested subfamily entrypoints are public. For example,
40
40
  `admin-ui-starter-kit/base/display/metadata` so consumers do not need the
41
41
  broader `base/display` barrel or its optional peers.
42
42
 
43
+ The package publishes exact export keys, not wildcard package exports. If an
44
+ import path is not documented or listed in `package.json` `exports`, treat it as
45
+ private even when a declaration file happens to exist under `dist/`.
46
+
43
47
  The root entrypoint is intentionally small:
44
48
 
45
49
  ```tsx
package/PUBLISHING.md CHANGED
@@ -112,8 +112,8 @@ You cannot delete or overwrite a published version. Always dry-run first.
112
112
  | --- | --- |
113
113
  | `npm publish` says "private package" | Remove `"private": true` from `package.json` |
114
114
  | `npm publish` says "name not available" | Someone took the name; pick a new one |
115
- | Consumers report "module not found" for `admin-ui-starter-kit/foo` | Add `./foo` to the `exports` map AND `vite.lib.config.ts` entries; rebuild and republish |
116
- | Consumers report "module not found" for a nested component path | Only explicitly exported nested subfamilies are public. Add an exact `exports` entry plus `vite.lib.config.ts` entry, or document the first-level family import. |
115
+ | Consumers report "module not found" for `admin-ui-starter-kit/foo` | Add an exact `./foo` entry to the `exports` map AND `vite.lib.config.ts`; rebuild and republish |
116
+ | Consumers report "module not found" for a nested component path | Only explicitly exported nested subfamilies are public. Add an exact `exports` entry plus `vite.lib.config.ts` entry, or document the first-level family import. Do not add wildcard or null-blocker exports. |
117
117
  | Consumers must upgrade `lucide-react` | Expected for apps still on lucide v0; this package has a lucide v1 peer. |
118
118
  | Published bundle has stale code | Confirm `prepublishOnly` ran; check `dist/` mtime; bump patch and republish |
119
119
  | `peer dep warning: <pkg> not installed` for an optional peer | Verify the entry is in `peerDependenciesMeta.optional` block; consumer can ignore |
package/README.md CHANGED
@@ -283,22 +283,25 @@ utilities with optional peers:
283
283
  import { MetadataList } from 'admin-ui-starter-kit/base/display/metadata';
284
284
  ```
285
285
 
286
- Safe public entrypoints:
286
+ Safe public entrypoint shapes:
287
287
  - `admin-ui-starter-kit` — provider, strings helpers, and `cn` only.
288
288
  - `admin-ui-starter-kit/ui-provider`
289
289
  - `admin-ui-starter-kit/typography`
290
- - `admin-ui-starter-kit/base/*`
290
+ - `admin-ui-starter-kit/base/buttons`, `admin-ui-starter-kit/base/item`, etc.
291
291
  - `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/*`
292
+ - `admin-ui-starter-kit/composed/cards`, `admin-ui-starter-kit/composed/analytics`, etc.
293
+ - `admin-ui-starter-kit/features/comments`, `admin-ui-starter-kit/features/filters`, etc.
294
+ - `admin-ui-starter-kit/layout` and exact layout families such as `admin-ui-starter-kit/layout/page`
295
295
  - `admin-ui-starter-kit/lib/strings`
296
296
  - `admin-ui-starter-kit/lib/utils`
297
297
 
298
298
  Avoid broad component imports such as `admin-ui-starter-kit/base`,
299
299
  `admin-ui-starter-kit/composed`, or `admin-ui-starter-kit/features`; they are
300
300
  intentionally not exported. Use the exact family subpath so missing optional
301
- peers fail only when you import the feature that needs them.
301
+ peers fail only when you import the feature that needs them. The package
302
+ `exports` map lists each public family as an exact key; wildcard exports and
303
+ null wildcard blockers are intentionally avoided because bundlers handle them
304
+ inconsistently.
302
305
 
303
306
  Dropdown menus use Base UI's `render` prop for custom triggers, not Radix's
304
307
  `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.2",
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",
@@ -91,39 +91,265 @@
91
91
  "import": "./dist/components/typography/index.js",
92
92
  "require": "./dist/components/typography/index.cjs"
93
93
  },
94
+ "./base/accordion": {
95
+ "types": "./dist/components/base/accordion/index.d.ts",
96
+ "import": "./dist/components/base/accordion/index.js",
97
+ "require": "./dist/components/base/accordion/index.cjs"
98
+ },
99
+ "./base/badge": {
100
+ "types": "./dist/components/base/badge/index.d.ts",
101
+ "import": "./dist/components/base/badge/index.js",
102
+ "require": "./dist/components/base/badge/index.cjs"
103
+ },
104
+ "./base/buttons": {
105
+ "types": "./dist/components/base/buttons/index.d.ts",
106
+ "import": "./dist/components/base/buttons/index.js",
107
+ "require": "./dist/components/base/buttons/index.cjs"
108
+ },
109
+ "./base/cards": {
110
+ "types": "./dist/components/base/cards/index.d.ts",
111
+ "import": "./dist/components/base/cards/index.js",
112
+ "require": "./dist/components/base/cards/index.cjs"
113
+ },
114
+ "./base/combobox": {
115
+ "types": "./dist/components/base/combobox/index.d.ts",
116
+ "import": "./dist/components/base/combobox/index.js",
117
+ "require": "./dist/components/base/combobox/index.cjs"
118
+ },
119
+ "./base/command": {
120
+ "types": "./dist/components/base/command/index.d.ts",
121
+ "import": "./dist/components/base/command/index.js",
122
+ "require": "./dist/components/base/command/index.cjs"
123
+ },
124
+ "./base/copyable": {
125
+ "types": "./dist/components/base/copyable/index.d.ts",
126
+ "import": "./dist/components/base/copyable/index.js",
127
+ "require": "./dist/components/base/copyable/index.cjs"
128
+ },
129
+ "./base/currency": {
130
+ "types": "./dist/components/base/currency/index.d.ts",
131
+ "import": "./dist/components/base/currency/index.js",
132
+ "require": "./dist/components/base/currency/index.cjs"
133
+ },
134
+ "./base/date-pickers": {
135
+ "types": "./dist/components/base/date-pickers/index.d.ts",
136
+ "import": "./dist/components/base/date-pickers/index.js",
137
+ "require": "./dist/components/base/date-pickers/index.cjs"
138
+ },
139
+ "./base/display": {
140
+ "types": "./dist/components/base/display/index.d.ts",
141
+ "import": "./dist/components/base/display/index.js",
142
+ "require": "./dist/components/base/display/index.cjs"
143
+ },
94
144
  "./base/display/metadata": {
95
145
  "types": "./dist/components/base/display/metadata/index.d.ts",
96
146
  "import": "./dist/components/base/display/metadata/index.js",
97
147
  "require": "./dist/components/base/display/metadata/index.cjs"
98
148
  },
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"
149
+ "./base/event-calendar": {
150
+ "types": "./dist/components/base/event-calendar/index.d.ts",
151
+ "import": "./dist/components/base/event-calendar/index.js",
152
+ "require": "./dist/components/base/event-calendar/index.cjs"
153
+ },
154
+ "./base/forms": {
155
+ "types": "./dist/components/base/forms/index.d.ts",
156
+ "import": "./dist/components/base/forms/index.js",
157
+ "require": "./dist/components/base/forms/index.cjs"
158
+ },
159
+ "./base/item": {
160
+ "types": "./dist/components/base/item/index.d.ts",
161
+ "import": "./dist/components/base/item/index.js",
162
+ "require": "./dist/components/base/item/index.cjs"
163
+ },
164
+ "./base/map": {
165
+ "types": "./dist/components/base/map/index.d.ts",
166
+ "import": "./dist/components/base/map/index.js",
167
+ "require": "./dist/components/base/map/index.cjs"
168
+ },
169
+ "./base/navigation": {
170
+ "types": "./dist/components/base/navigation/index.d.ts",
171
+ "import": "./dist/components/base/navigation/index.js",
172
+ "require": "./dist/components/base/navigation/index.cjs"
173
+ },
174
+ "./base/popover": {
175
+ "types": "./dist/components/base/popover/index.d.ts",
176
+ "import": "./dist/components/base/popover/index.js",
177
+ "require": "./dist/components/base/popover/index.cjs"
178
+ },
179
+ "./base/popover-menu": {
180
+ "types": "./dist/components/base/popover-menu/index.d.ts",
181
+ "import": "./dist/components/base/popover-menu/index.js",
182
+ "require": "./dist/components/base/popover-menu/index.cjs"
183
+ },
184
+ "./base/sheet": {
185
+ "types": "./dist/components/base/sheet/index.d.ts",
186
+ "import": "./dist/components/base/sheet/index.js",
187
+ "require": "./dist/components/base/sheet/index.cjs"
188
+ },
189
+ "./base/sidebar": {
190
+ "types": "./dist/components/base/sidebar/index.d.ts",
191
+ "import": "./dist/components/base/sidebar/index.js",
192
+ "require": "./dist/components/base/sidebar/index.cjs"
193
+ },
194
+ "./base/spinner": {
195
+ "types": "./dist/components/base/spinner/index.d.ts",
196
+ "import": "./dist/components/base/spinner/index.js",
197
+ "require": "./dist/components/base/spinner/index.cjs"
198
+ },
199
+ "./base/table": {
200
+ "types": "./dist/components/base/table/index.d.ts",
201
+ "import": "./dist/components/base/table/index.js",
202
+ "require": "./dist/components/base/table/index.cjs"
203
+ },
204
+ "./base/toaster": {
205
+ "types": "./dist/components/base/toaster/index.d.ts",
206
+ "import": "./dist/components/base/toaster/index.js",
207
+ "require": "./dist/components/base/toaster/index.cjs"
208
+ },
209
+ "./composed/admin": {
210
+ "types": "./dist/components/composed/admin/index.d.ts",
211
+ "import": "./dist/components/composed/admin/index.js",
212
+ "require": "./dist/components/composed/admin/index.cjs"
213
+ },
214
+ "./composed/ai": {
215
+ "types": "./dist/components/composed/ai/index.d.ts",
216
+ "import": "./dist/components/composed/ai/index.js",
217
+ "require": "./dist/components/composed/ai/index.cjs"
218
+ },
219
+ "./composed/analytics": {
220
+ "types": "./dist/components/composed/analytics/index.d.ts",
221
+ "import": "./dist/components/composed/analytics/index.js",
222
+ "require": "./dist/components/composed/analytics/index.cjs"
223
+ },
224
+ "./composed/cards": {
225
+ "types": "./dist/components/composed/cards/index.d.ts",
226
+ "import": "./dist/components/composed/cards/index.js",
227
+ "require": "./dist/components/composed/cards/index.cjs"
228
+ },
229
+ "./composed/commerce": {
230
+ "types": "./dist/components/composed/commerce/index.d.ts",
231
+ "import": "./dist/components/composed/commerce/index.js",
232
+ "require": "./dist/components/composed/commerce/index.cjs"
233
+ },
234
+ "./composed/dark-surfaces": {
235
+ "types": "./dist/components/composed/dark-surfaces/index.d.ts",
236
+ "import": "./dist/components/composed/dark-surfaces/index.js",
237
+ "require": "./dist/components/composed/dark-surfaces/index.cjs"
238
+ },
239
+ "./composed/data-display": {
240
+ "types": "./dist/components/composed/data-display/index.d.ts",
241
+ "import": "./dist/components/composed/data-display/index.js",
242
+ "require": "./dist/components/composed/data-display/index.cjs"
243
+ },
244
+ "./composed/navigation": {
245
+ "types": "./dist/components/composed/navigation/index.d.ts",
246
+ "import": "./dist/components/composed/navigation/index.js",
247
+ "require": "./dist/components/composed/navigation/index.cjs"
248
+ },
249
+ "./composed/onboarding": {
250
+ "types": "./dist/components/composed/onboarding/index.d.ts",
251
+ "import": "./dist/components/composed/onboarding/index.js",
252
+ "require": "./dist/components/composed/onboarding/index.cjs"
253
+ },
254
+ "./composed/timelines": {
255
+ "types": "./dist/components/composed/timelines/index.d.ts",
256
+ "import": "./dist/components/composed/timelines/index.js",
257
+ "require": "./dist/components/composed/timelines/index.cjs"
258
+ },
259
+ "./features/activities": {
260
+ "types": "./dist/components/features/activities/index.d.ts",
261
+ "import": "./dist/components/features/activities/index.js",
262
+ "require": "./dist/components/features/activities/index.cjs"
263
+ },
264
+ "./features/ai-chat": {
265
+ "types": "./dist/components/features/ai-chat/index.d.ts",
266
+ "import": "./dist/components/features/ai-chat/index.js",
267
+ "require": "./dist/components/features/ai-chat/index.cjs"
268
+ },
269
+ "./features/card": {
270
+ "types": "./dist/components/features/card/index.d.ts",
271
+ "import": "./dist/components/features/card/index.js",
272
+ "require": "./dist/components/features/card/index.cjs"
273
+ },
274
+ "./features/comments": {
275
+ "types": "./dist/components/features/comments/index.d.ts",
276
+ "import": "./dist/components/features/comments/index.js",
277
+ "require": "./dist/components/features/comments/index.cjs"
278
+ },
279
+ "./features/event-log": {
280
+ "types": "./dist/components/features/event-log/index.d.ts",
281
+ "import": "./dist/components/features/event-log/index.js",
282
+ "require": "./dist/components/features/event-log/index.cjs"
283
+ },
284
+ "./features/filters": {
285
+ "types": "./dist/components/features/filters/index.d.ts",
286
+ "import": "./dist/components/features/filters/index.js",
287
+ "require": "./dist/components/features/filters/index.cjs"
288
+ },
289
+ "./features/global-search": {
290
+ "types": "./dist/components/features/global-search/index.d.ts",
291
+ "import": "./dist/components/features/global-search/index.js",
292
+ "require": "./dist/components/features/global-search/index.cjs"
293
+ },
294
+ "./features/kanban": {
295
+ "types": "./dist/components/features/kanban/index.d.ts",
296
+ "import": "./dist/components/features/kanban/index.js",
297
+ "require": "./dist/components/features/kanban/index.cjs"
298
+ },
299
+ "./features/mentions": {
300
+ "types": "./dist/components/features/mentions/index.d.ts",
301
+ "import": "./dist/components/features/mentions/index.js",
302
+ "require": "./dist/components/features/mentions/index.cjs"
303
+ },
304
+ "./features/overlays": {
305
+ "types": "./dist/components/features/overlays/index.d.ts",
306
+ "import": "./dist/components/features/overlays/index.js",
307
+ "require": "./dist/components/features/overlays/index.cjs"
308
+ },
309
+ "./features/rich-text-editor": {
310
+ "types": "./dist/components/features/rich-text-editor/index.d.ts",
311
+ "import": "./dist/components/features/rich-text-editor/index.js",
312
+ "require": "./dist/components/features/rich-text-editor/index.cjs"
313
+ },
314
+ "./features/suggestions": {
315
+ "types": "./dist/components/features/suggestions/index.d.ts",
316
+ "import": "./dist/components/features/suggestions/index.js",
317
+ "require": "./dist/components/features/suggestions/index.cjs"
318
+ },
319
+ "./features/sync": {
320
+ "types": "./dist/components/features/sync/index.d.ts",
321
+ "import": "./dist/components/features/sync/index.js",
322
+ "require": "./dist/components/features/sync/index.cjs"
116
323
  },
117
324
  "./layout": {
118
325
  "types": "./dist/components/layout/index.d.ts",
119
326
  "import": "./dist/components/layout/index.js",
120
327
  "require": "./dist/components/layout/index.cjs"
121
328
  },
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"
329
+ "./layout/containers": {
330
+ "types": "./dist/components/layout/containers/index.d.ts",
331
+ "import": "./dist/components/layout/containers/index.js",
332
+ "require": "./dist/components/layout/containers/index.cjs"
333
+ },
334
+ "./layout/page": {
335
+ "types": "./dist/components/layout/page/index.d.ts",
336
+ "import": "./dist/components/layout/page/index.js",
337
+ "require": "./dist/components/layout/page/index.cjs"
338
+ },
339
+ "./layout/header": {
340
+ "types": "./dist/components/layout/header/index.d.ts",
341
+ "import": "./dist/components/layout/header/index.js",
342
+ "require": "./dist/components/layout/header/index.cjs"
343
+ },
344
+ "./layout/sidebar": {
345
+ "types": "./dist/components/layout/sidebar/index.d.ts",
346
+ "import": "./dist/components/layout/sidebar/index.js",
347
+ "require": "./dist/components/layout/sidebar/index.cjs"
348
+ },
349
+ "./layout/hooks": {
350
+ "types": "./dist/components/layout/hooks/index.d.ts",
351
+ "import": "./dist/components/layout/hooks/index.js",
352
+ "require": "./dist/components/layout/hooks/index.cjs"
127
353
  },
128
354
  "./lib/strings": {
129
355
  "types": "./dist/lib/strings.d.ts",