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.
- package/README.md +18 -11
- package/dist/index.js +4496 -2197
- 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,
|
|
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
|
-
| `
|
|
38
|
-
| `
|
|
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
|
|
230
|
-
naming its files) and
|
|
231
|
-
|
|
232
|
-
the
|
|
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.
|