mapples 0.2.0-beta.5 → 0.2.0-beta.7
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 +42 -0
- package/dist/api/agent.d.ts +84 -0
- package/dist/api/agent.js +92 -0
- package/dist/api/agent.js.map +1 -0
- package/dist/api/client.d.ts +3 -0
- package/dist/api/client.js +2 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/commit.js +1 -0
- package/dist/api/commit.js.map +1 -1
- package/dist/api/errors.js +4 -2
- package/dist/api/errors.js.map +1 -1
- package/dist/api/objects.d.ts +12 -0
- package/dist/api/objects.js +2 -0
- package/dist/api/objects.js.map +1 -1
- package/dist/commands/agent.d.ts +2 -0
- package/dist/commands/agent.js +76 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/create.js +1 -0
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/impl/adoptImpl.js +3 -0
- package/dist/commands/impl/adoptImpl.js.map +1 -1
- package/dist/commands/impl/agentImpl.d.ts +10 -0
- package/dist/commands/impl/agentImpl.js +349 -0
- package/dist/commands/impl/agentImpl.js.map +1 -0
- package/dist/commands/impl/createImpl.js +19 -0
- package/dist/commands/impl/createImpl.js.map +1 -1
- package/dist/commands/impl/initImpl.js +19 -0
- package/dist/commands/impl/initImpl.js.map +1 -1
- package/dist/commands/impl/syncImpl.js +9 -3
- package/dist/commands/impl/syncImpl.js.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/project/agentState.d.ts +24 -0
- package/dist/project/agentState.js +42 -0
- package/dist/project/agentState.js.map +1 -0
- package/dist/project/secret.d.ts +6 -2
- package/dist/project/secret.js +11 -5
- package/dist/project/secret.js.map +1 -1
- package/dist/services/agentInstall.d.ts +35 -0
- package/dist/services/agentInstall.js +180 -0
- package/dist/services/agentInstall.js.map +1 -0
- package/dist/services/agentLease.d.ts +2 -0
- package/dist/services/agentLease.js +32 -0
- package/dist/services/agentLease.js.map +1 -0
- package/dist/services/clientFactory.d.ts +2 -0
- package/dist/services/clientFactory.js +16 -1
- package/dist/services/clientFactory.js.map +1 -1
- package/dist/services/scaffold.js +4 -0
- package/dist/services/scaffold.js.map +1 -1
- package/dist/services/syncEngine.js +51 -18
- package/dist/services/syncEngine.js.map +1 -1
- package/dist/style/theme.js +17 -1
- package/dist/style/theme.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
- package/templates/app.json +0 -1
- package/templates/claude/CLAUDE.md +7 -0
- package/templates/claude/mapples.md +118 -0
- package/templates/claude/mcp.json +11 -0
- package/templates/claude/skills/mapples-conventions/SKILL.md +136 -0
- package/templates/claude/skills/mapples-design/SKILL.md +218 -0
- package/templates/claude/skills/mapples-design/reference/component-library.md +128 -0
- package/templates/claude/skills/mapples-design/reference/design-tokens.md +132 -0
- package/templates/claude/skills/mapples-design/reference/layout-contract.md +227 -0
- package/templates/claude/skills/mapples-design/reference/lint-checklist.md +51 -0
- package/templates/claude/skills/mapples-design/reference/plan.md +95 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/empty-states.md +14 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/forms-and-auth.md +22 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/home-dashboard.md +14 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/list-and-detail.md +18 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/microcopy.md +20 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/navigation-chrome.md +21 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/onboarding-flow.md +15 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/screen-flow-wiring.md +37 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/settings-profile.md +16 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/stats-and-progress.md +17 -0
- package/templates/claude/skills/mapples-design/reference/playbooks/visual-hierarchy.md +18 -0
- package/templates/claude/skills/mapples-design/reference/style-guides.md +92 -0
- package/templates/claude/skills/mapples-sync/SKILL.md +93 -0
- package/templates/gitignore +2 -0
- package/templates/package.json +12 -10
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
|
|
2
|
+
# Visual hierarchy
|
|
3
|
+
|
|
4
|
+
Cross-screen craft: one focal point, the type ladder, grouping, squint-test review.
|
|
5
|
+
|
|
6
|
+
A screen reads in ONE glance-order: focal point → supporting context → actions. Design that order deliberately; never let it emerge by accident.
|
|
7
|
+
|
|
8
|
+
The focal point: exactly one per screen — the Headline, the hero photo, or the big number. Everything else steps down. Two elements fighting for attention (two Headlines, a hero photo AND a huge stat) is the most common failure: pick one, demote the other a full ladder step.
|
|
9
|
+
|
|
10
|
+
The type ladder is strict: Headline (page title / hero claim, once) → Subtitle (section titles) → Body (reading text) → Label (row titles, buttons) → Caption (meta, secondary) → Overline (section eyebrows, uppercase). Never skip sideways — a section title is always Subtitle, a row title always Label, on every screen of the app. Emphasis inside a level comes from color (`theme.text.primary` vs secondary vs tertiary), not from inventing new sizes.
|
|
11
|
+
|
|
12
|
+
Grouping is proximity before boxes: related items sit close (gap 4–8), groups separate wide (24–32). Reach for a card or divider only when spacing alone cannot carry the grouping. Within a group, align to ONE left edge; icon centers align to the text they accompany.
|
|
13
|
+
|
|
14
|
+
Weight discipline: at most two font weights visible per screen region. Color accents (`theme.primary.main`) mark interactive or key items ONLY — an accent on decoration teaches users to ignore it.
|
|
15
|
+
|
|
16
|
+
The squint test (run it on every re-read of a finished file): blur your eyes at the screen as the phone would draw it. You should still see WHERE to look first and WHAT is tappable. If everything blurs into even gray noise, the hierarchy is flat — raise the focal point, quiet the rest. If one block screams that is not the primary action, swap emphasis.
|
|
17
|
+
|
|
18
|
+
Pitfalls: three or more text sizes inside one card; every row shouting in bold; accents on more than ~10 percent of the screen; centered text mixed with left-aligned text in the same block.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
|
|
2
|
+
# Style guides (phase 1)
|
|
3
|
+
|
|
4
|
+
Ported from the Creator's design setup (`service--mapples-ai` `design/generate.ts`): first art
|
|
5
|
+
directions, then one compact style guide per direction. The user picks one; the full token set
|
|
6
|
+
(phase 2) realizes exactly that guide.
|
|
7
|
+
|
|
8
|
+
## 1. Art directions
|
|
9
|
+
|
|
10
|
+
Act as a creative director choosing art directions for this mobile app's design system.
|
|
11
|
+
|
|
12
|
+
Propose exactly **3** art directions FOR THIS PRODUCT — grounded in its domain, audience and
|
|
13
|
+
mood, never a generic template menu. Make them genuinely different from each other: vary palette
|
|
14
|
+
temperature, typography class (serif / geometric sans / humanist sans / rounded / mono accents),
|
|
15
|
+
shape language (sharp ↔ pill), and density (airy ↔ compact). Each direction: a short evocative
|
|
16
|
+
name (2–40 chars, e.g. "Neon Court") and one tight clause (≤ 25 words) of concrete visual moves:
|
|
17
|
+
palette temperature, typography class, shape language, density.
|
|
18
|
+
|
|
19
|
+
## 2. Style guide per direction
|
|
20
|
+
|
|
21
|
+
Act as a senior product designer sketching a compact style guide for this mobile app, for ONE
|
|
22
|
+
direction at a time. Make it unmistakably different from the other directions and from a
|
|
23
|
+
default blue Material palette.
|
|
24
|
+
|
|
25
|
+
Rules:
|
|
26
|
+
|
|
27
|
+
- Colors are hex. The preview maps are BOTH light and dark; dark is a real dark design (dark
|
|
28
|
+
surfaces, lighter text), not an inversion. `text` must have ≥ 4.5:1 contrast against
|
|
29
|
+
`background`; `onPrimary` against `primary` likewise.
|
|
30
|
+
- Fonts come ONLY from the bundled library (family + weight). Pick pairings that fit the
|
|
31
|
+
direction; body fonts must be sans or a highly legible serif.
|
|
32
|
+
- `iconFamily` comes ONLY from the icon library. Pick the pack whose stroke weight and shape
|
|
33
|
+
language match the direction (thin strokes for airy directions, solid glyphs for bold ones).
|
|
34
|
+
- `instructions` are the seed for the FULL design system generated later: palette logic,
|
|
35
|
+
typography roles, shape language (including the elevation language — soft shadows vs flat
|
|
36
|
+
borders/contrasting surfaces, with flat a first-class choice — and radius feel), spacing feel,
|
|
37
|
+
component character, one explicit don't. Concrete, 60–100 words, no marketing language.
|
|
38
|
+
|
|
39
|
+
Shape of one guide (write it into `design.md` when chosen):
|
|
40
|
+
|
|
41
|
+
```md
|
|
42
|
+
### <Name> — <direction in a few words>
|
|
43
|
+
Rationale: <one sentence why it fits the product>
|
|
44
|
+
Preview light: background #… card #… text #… textMuted #… primary #… onPrimary #… accent #…
|
|
45
|
+
Preview dark: background #… card #… text #… textMuted #… primary #… onPrimary #… accent #…
|
|
46
|
+
Radius: <0–32> · Fonts: headline <Family Weight> / body <Family Weight> / button <Family Weight>
|
|
47
|
+
Icon family: <key>
|
|
48
|
+
Instructions: <60–100 words>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Font library
|
|
52
|
+
|
|
53
|
+
`"<Family>-<Weight>"` is the registered React Native family name (`Manrope-SemiBold`). Weights:
|
|
54
|
+
Regular, Medium, SemiBold, Bold unless noted.
|
|
55
|
+
|
|
56
|
+
| Family | Category | Character | Pairs with |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| Inter | sans | neutral, highly legible UI sans | Playfair Display, Fraunces, IBM Plex Mono |
|
|
59
|
+
| Manrope | sans | modern geometric, friendly tech | Fraunces, Inter, IBM Plex Mono |
|
|
60
|
+
| DM Sans (`DMSans`) | sans | low-contrast geometric, calm product UI | Playfair Display, Fraunces |
|
|
61
|
+
| Plus Jakarta Sans (`PlusJakartaSans`) | sans | rounded geometric, startup/fintech | Inter, Fraunces |
|
|
62
|
+
| Poppins | sans | round geometric, playful consumer apps | Nunito, Inter |
|
|
63
|
+
| Nunito | sans | soft rounded terminals, approachable | Poppins, Outfit |
|
|
64
|
+
| Space Grotesk (`SpaceGrotesk`) | sans | quirky technical grotesk, dev tools | Inter, IBM Plex Mono |
|
|
65
|
+
| Sora | sans | wide geometric display sans, bold headlines | Inter, DM Sans |
|
|
66
|
+
| Outfit | sans | clean geometric display, fashion/lifestyle | DM Sans, Nunito |
|
|
67
|
+
| Playfair Display (`PlayfairDisplay`) | serif — Regular/SemiBold/Bold | high-contrast editorial serif for headlines | Inter, DM Sans |
|
|
68
|
+
| Fraunces | serif — Regular/SemiBold/Bold | soft wonky serif, warm and characterful | Manrope, Inter, DM Sans |
|
|
69
|
+
| IBM Plex Mono (`IBMPlexMono`) | mono — Regular/Medium | monospace for code, data and labels | Inter, Space Grotesk |
|
|
70
|
+
|
|
71
|
+
## Icon library
|
|
72
|
+
|
|
73
|
+
| Key | Character |
|
|
74
|
+
| --- | --- |
|
|
75
|
+
| ionicons | iOS-flavored rounded glyphs with filled and -outline pairs; safe modern default |
|
|
76
|
+
| material-icons | Google Material: solid, geometric, compact |
|
|
77
|
+
| material-design-icons | community Material superset; huge coverage, filled and outline variants |
|
|
78
|
+
| feather | thin 2px stroke outlines; minimal and airy |
|
|
79
|
+
| lucide | Feather's successor; consistent strokes, wide coverage |
|
|
80
|
+
| ant-design | clean enterprise outlines; restrained and precise |
|
|
81
|
+
| entypo | thick rounded solid glyphs; friendly and bold |
|
|
82
|
+
| octicons | GitHub's set; crisp outlines tuned for small sizes |
|
|
83
|
+
| fontawesome5-solid | Font Awesome 5 solid: heavy filled, classic |
|
|
84
|
+
| fontawesome6-solid | Font Awesome 6 solid: heavy filled, modern |
|
|
85
|
+
| simple-line-icons | ultra-light elegant line icons |
|
|
86
|
+
|
|
87
|
+
The icon family is a project setting in Creator; from code, `Icon iconName="…"` uses the glyph
|
|
88
|
+
names of that family (ionicons names like `home-outline`, `search`, `chevron-forward` when in
|
|
89
|
+
doubt). An unknown name renders as a broken glyph — prefer a common name over a guessed one.
|
|
90
|
+
|
|
91
|
+
> Not ported (Creator-only): the streaming preview cards, the `repairViolations` pass and the
|
|
92
|
+
> four-guide generation count (three here, so the table fits a chat reply).
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mapples-sync
|
|
3
|
+
description: Running `npx -y mapples@__CLI_VERSION__ sync` from an agent — the --yes --json invocation, the JSON report fields, exit codes 0/1/2/3/4, and what to do on conflicts, deprecated files, NON_LITERAL_PROP warnings, read-scoped keys and offline runs. Use before and after every sync in a Mapples-linked app.
|
|
4
|
+
---
|
|
5
|
+
<!-- GENERATED by Mapples __CLI_VERSION__ — re-run npx -y mapples@__CLI_VERSION__ agent install --force to refresh -->
|
|
6
|
+
# npx -y mapples@__CLI_VERSION__ sync
|
|
7
|
+
|
|
8
|
+
`npx -y mapples@__CLI_VERSION__ sync` is the only way changes reach Creator. Run it from the app root as
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx -y mapples@__CLI_VERSION__ sync --yes --json
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
- `--yes` accepts every adoption proposal (new route files, pages, components) without a prompt —
|
|
15
|
+
required, because you have no TTY. Add `--no-adopt` to push edits to managed files only and
|
|
16
|
+
leave new files untouched (e.g. a helper you do not want on the canvas yet).
|
|
17
|
+
- `--json` prints one JSON report and nothing else. Always parse it; never rely on the exit
|
|
18
|
+
code alone.
|
|
19
|
+
- Always run the CLI exactly as written here, pinned to the version that generated these skills:
|
|
20
|
+
`npx -y mapples@__CLI_VERSION__ …`. Never a bare `mapples` and never an unpinned `npx mapples` — npm's
|
|
21
|
+
`latest` tag can be an older CLI without these commands, and a fallback silently runs it.
|
|
22
|
+
|
|
23
|
+
## What one run does
|
|
24
|
+
|
|
25
|
+
1. Adopts new files (`--yes`): react-native primitives become `@mapples/ui` elements with
|
|
26
|
+
`styled` props; a new file under the routes dir joins the navigator of its directory (a new
|
|
27
|
+
`(group)/` with a generated-header `_layout.tsx` becomes its own navigator).
|
|
28
|
+
2. Extracts every managed file; elements without `$sid` are tagged and the file is rewritten.
|
|
29
|
+
3. Pulls Creator's changes since the last sync, 3-way merges per element and prop, writes remote
|
|
30
|
+
changes into your files surgically.
|
|
31
|
+
4. Pushes your edits as JPATCH transactions (retrying on 409), updates `.mapples/head`,
|
|
32
|
+
`pages.json`, `components.json`, `base/`.
|
|
33
|
+
|
|
34
|
+
## The report
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"pulledOps": 0, "pushedOps": 42, "head": "b3:…", "offline": false, "exitCode": 0,
|
|
39
|
+
"files": [{ "file": "app/index.tsx", "action": "updated", "detail": "tagged 12 new element(s)" }],
|
|
40
|
+
"conflicts": [{ "file": "app/index.tsx", "sid": "nd_…", "reason": "same-prop", "props": ["text"], "deprecatedTo": "app/_depr_20260916120000_index.tsx.old", "detail": "…" }],
|
|
41
|
+
"warnings": [{ "file": "app/index.tsx", "kind": "NON_LITERAL_PROP", "sid": "nd_…", "prop": "text", "detail": "…" }],
|
|
42
|
+
"dropped": [{ "index": 3, "id": "nd_…", "reason": "…", "op": { "op": "update", "entity": "RenderNode" } }],
|
|
43
|
+
"serverWarnings": ["CHILDREN_REBASED …"],
|
|
44
|
+
"notes": ["navigation: app/(main)/ had no navigator — created tabs navigator “Main” on “Root” (kind read from its _layout.tsx)"]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
| Field | Read it as |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| `files[].action` | `created` / `updated` / `regenerated` (from Creator after a conflict) / `deprecated` (your version moved to `_depr_…`) |
|
|
51
|
+
| `conflicts[]` | both sides changed the same prop or one deleted what the other edited — the file was deprecated and regenerated |
|
|
52
|
+
| `warnings[]` | lossy steps: `NON_LITERAL_PROP` (an expression prop stays code-only), `UNKNOWN_ELEMENT_WITH_SID`, … |
|
|
53
|
+
| `dropped[]` | ops the server skipped (target gone) — the change did not land |
|
|
54
|
+
| `serverWarnings[]` | e.g. `CHILDREN_REBASED`: the server reordered children after a concurrent edit |
|
|
55
|
+
| `offline` | true = nothing reached the server; ops parked in `.mapples/outbox/` and drained next run |
|
|
56
|
+
| `notes[]` | navigator creation, agent-lease heartbeat misses, rebases |
|
|
57
|
+
|
|
58
|
+
## Exit codes
|
|
59
|
+
|
|
60
|
+
| Code | Meaning | Do |
|
|
61
|
+
| --- | --- | --- |
|
|
62
|
+
| 0 | synced | read `pushedOps`, `files`, `warnings` |
|
|
63
|
+
| 1 | error (bad key, malformed file, server refusal) | read stderr; fix the cause; never retry blindly |
|
|
64
|
+
| 2 | synced **with conflicts** | for every `conflicts[]` entry: diff `deprecatedTo` against the regenerated file, re-apply your intent onto the new file, sync again |
|
|
65
|
+
| 3 | agent lease gone (from `npx -y mapples@__CLI_VERSION__ agent …`) | stop working, tell the user Creator disconnected the agent |
|
|
66
|
+
| 4 | project busy (from `npx -y mapples@__CLI_VERSION__ agent start`) | another agent session holds the project — ask before `--takeover` |
|
|
67
|
+
|
|
68
|
+
## After a sync
|
|
69
|
+
|
|
70
|
+
- **Re-read every file the report lists** before editing it again — `$sid`s were added, Creator's
|
|
71
|
+
edits were written in, the marker may have moved.
|
|
72
|
+
- `NON_LITERAL_PROP` on something you meant to be a literal: replace the expression with the
|
|
73
|
+
literal value (`text={title}` → `text="Today"`), sync again.
|
|
74
|
+
- A `deprecated` file with no conflict entry means the CLI had to own that position (a layout
|
|
75
|
+
you wrote without the generated header): let the generated file stand.
|
|
76
|
+
- `pushedOps: 0` after you changed a managed file means the extraction saw nothing: check that
|
|
77
|
+
the elements are Mapples imports with literal props, and that the file has no syntax error
|
|
78
|
+
(the report lists `SYNTAX_ERROR` warnings).
|
|
79
|
+
- `offline: true`: run again once online; do not edit `.mapples/outbox/`.
|
|
80
|
+
|
|
81
|
+
## Errors you may see
|
|
82
|
+
|
|
83
|
+
- `push rejected: API key is read-scoped …` — the `MAPPLES_SECRET` / `.mapples/secret` key can
|
|
84
|
+
only read. Ask the user for a read & write key (Creator → Project → Settings → API keys) and
|
|
85
|
+
to restart with `MAPPLES_SECRET=<key> claude`; do not edit `.mapples/secret` yourself.
|
|
86
|
+
- `no .mapples/config.json` — you are not in the app root, or the app is not linked; do not run
|
|
87
|
+
`npx -y mapples@__CLI_VERSION__ init` on your own — ask.
|
|
88
|
+
- `HEAD_MISMATCH … could not be committed after 5 rebases` — Creator is being edited at the same
|
|
89
|
+
time; wait a moment and sync again.
|
|
90
|
+
|
|
91
|
+
Never delete `.mapples/head`, `.mapples/base/`, `.mapples/pages.json` or `.mapples/components.json`
|
|
92
|
+
to "fix" a sync — that discards the merge base and turns the next run into a cold bootstrap that
|
|
93
|
+
can deprecate every file.
|
package/templates/gitignore
CHANGED
package/templates/package.json
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@mapples/action": "^1.1.2",
|
|
14
|
+
"@mapples/components": "^1.2.1",
|
|
14
15
|
"@mapples/form": "^1.2.0",
|
|
15
16
|
"@mapples/inlang": "^1.2.0",
|
|
16
17
|
"@mapples/render": "^1.2.0",
|
|
@@ -34,16 +35,17 @@
|
|
|
34
35
|
"@react-native-vector-icons/octicons": "^21.1.0",
|
|
35
36
|
"@react-native-vector-icons/simple-line-icons": "^13.1.0",
|
|
36
37
|
"@react-native-vector-icons/zocial": "^13.1.0",
|
|
37
|
-
"expo": "~57.0.
|
|
38
|
-
"expo-constants": "~57.0.
|
|
39
|
-
"expo-font": "~57.0.
|
|
40
|
-
"expo-
|
|
41
|
-
"expo-
|
|
42
|
-
"expo-
|
|
43
|
-
"expo-
|
|
38
|
+
"expo": "~57.0.23",
|
|
39
|
+
"expo-constants": "~57.0.18",
|
|
40
|
+
"expo-font": "~57.0.4",
|
|
41
|
+
"expo-image": "~57.0.5",
|
|
42
|
+
"expo-linear-gradient": "~57.0.2",
|
|
43
|
+
"expo-linking": "~57.0.10",
|
|
44
|
+
"expo-router": "~57.0.21",
|
|
45
|
+
"expo-splash-screen": "~57.0.9",
|
|
44
46
|
"expo-status-bar": "~57.0.1",
|
|
45
|
-
"expo-system-ui": "~57.0.
|
|
46
|
-
"expo-web-browser": "~57.0.
|
|
47
|
+
"expo-system-ui": "~57.0.4",
|
|
48
|
+
"expo-web-browser": "~57.0.3",
|
|
47
49
|
"jsbarcode": "^3.12.3",
|
|
48
50
|
"react": "19.2.3",
|
|
49
51
|
"react-dom": "19.2.3",
|
|
@@ -53,7 +55,7 @@
|
|
|
53
55
|
"react-native-reanimated": "4.5.1",
|
|
54
56
|
"react-native-safe-area-context": "~5.7.0",
|
|
55
57
|
"react-native-screens": "~4.26.0",
|
|
56
|
-
"react-native-svg": "15.15.
|
|
58
|
+
"react-native-svg": "15.15.4",
|
|
57
59
|
"react-native-web": "~0.21.0",
|
|
58
60
|
"react-native-worklets": "0.10.1"
|
|
59
61
|
},
|