delacour 0.1.0-alpha.3 → 0.1.0-alpha.5

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.
Files changed (3) hide show
  1. package/README.md +18 -11
  2. package/dist/index.js +4496 -2197
  3. package/package.json +2 -1
package/README.md CHANGED
@@ -5,10 +5,13 @@ repository — you own `button.tsx` and can edit it, rather than waiting for a
5
5
  release.
6
6
 
7
7
  ```bash
8
- bunx delacour@alpha init
9
8
  bunx delacour@alpha add button
10
9
  ```
11
10
 
11
+ That is the whole install. `add` sets the project up on its first run — config, Metro, the Tailwind
12
+ globs, the theme and the root provider — and then copies the component in. Reach for `init`
13
+ directly only to choose where the components live; see [Where components go](#where-components-go).
14
+
12
15
  ## Why not a component package
13
16
 
14
17
  Installing `@some/ui-kit` means every change to a button is someone else's
@@ -27,20 +30,22 @@ Unlike shadcn, the target is Expo, which changes real things:
27
30
  `node_modules` symlink a monorepo creates, and a missed glob strips every
28
31
  class from a release build without erroring.
29
32
  - **`delacour doctor`** checks all of it, plus New Architecture, path aliases,
30
- `GestureHandlerRootView`, whether anything actually imports the CSS entry, and duplicate copies
31
- of a native module.
33
+ `GestureHandlerRootView`, whether anything actually imports the CSS entry, a competing Tailwind
34
+ transform (NativeWind wraps Metro too), and duplicate copies of a native module.
32
35
 
33
36
  ## Commands
34
37
 
35
38
  | | |
36
39
  |---|---|
37
- | `init [components...]` | Write `native-components.json`, wire up Metro and the CSS entry, add the theme |
38
- | `add <components...>` | Copy components and everything they need, and say what to install |
40
+ | `add <components...>` | Copy components and everything they need, and say what to install. Sets the project up first if it has none |
41
+ | `init [components...]` | Do that setup deliberately — choose the source directory, or a shared package |
39
42
  | `list` / `search <q>` | Browse the registry |
40
43
  | `view <name>` | One item: its files, what it pulls in, what it installs |
41
44
  | `diff [name]` | What has changed upstream since you copied it |
42
45
  | `doctor` | Check this app is wired up correctly |
43
46
  | `info` | The resolved config and what was detected |
47
+ | `skills` | Install the agent skill into Claude Code, Cursor, OpenCode or Codex |
48
+ | `mcp` | Run as an MCP server, so an agent can browse and add components |
44
49
 
45
50
  Every registry-reading command takes `--registry <url>` (a URL,
46
51
  `github:owner/repo`, or a local path), `--ref <git-ref>`, `--offline`, and
@@ -153,7 +158,7 @@ a JS reload alone will red-box. `add` says so at the point it becomes true.
153
158
  ## Working on this package
154
159
 
155
160
  ```bash
156
- bun run registry:build # rebuild registry/ from packages/native-ui
161
+ bun run registry:build # rebuild registry/ from packages/react-native-ui
157
162
  bun test # unit + end-to-end against the local registry
158
163
  bun run verify:expo # scaffold a real Expo app, add everything, typecheck it
159
164
  bun run build # bundle dist/index.js
@@ -221,12 +226,14 @@ watching the check fire.
221
226
  `--all` adds components and what they pull in, so the run also names the standalone utilities
222
227
  explicitly — a verification pass has to cover the whole registry, not most of it.
223
228
 
224
- The registry is **derived** from `packages/native-ui/src` — one item per
229
+ The registry is **derived** from `packages/react-native-ui/src` — one item per
225
230
  component folder, dependencies read off the imports. There is no `registry.json`
226
231
  to maintain, and the builder throws rather than guessing: an unclassified npm
227
232
  import or a component folder without an `index.ts` fails the build.
228
233
 
229
- It writes three things: `registry.json` (the index), `r/<name>.json` (one item,
230
- naming its files) and `files/<namespace>/<target>` (the files themselves). An
231
- item references its files rather than inlining them, so a component's diff is
232
- the TypeScript that changed rather than a JSON string nobody can read.
234
+ It writes `registry.json` (the index), `r/<name>.json` (one item per component,
235
+ naming its files) and the three JSON schemas. It writes **no copy of the
236
+ source**: an item names the library's own file — `packages/react-native-ui/src/components/button/button.tsx` —
237
+ and the client fetches it at the same ref the item came from, so the two cannot
238
+ disagree. A component's diff is therefore the TypeScript that changed rather
239
+ than a JSON string nobody can read.