mapples 0.2.0-beta.12 → 0.2.0-beta.14

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 (66) hide show
  1. package/README.md +1 -1
  2. package/dist/api/client.d.ts +16 -0
  3. package/dist/api/client.js +37 -0
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/project.d.ts +11 -0
  6. package/dist/api/project.js +29 -0
  7. package/dist/api/project.js.map +1 -0
  8. package/dist/commands/doctor.js +3 -1
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/impl/createImpl.js +34 -4
  11. package/dist/commands/impl/createImpl.js.map +1 -1
  12. package/dist/commands/impl/doctorImpl.js +17 -7
  13. package/dist/commands/impl/doctorImpl.js.map +1 -1
  14. package/dist/commands/impl/initImpl.js +40 -0
  15. package/dist/commands/impl/initImpl.js.map +1 -1
  16. package/dist/commands/impl/syncImpl.js +14 -1
  17. package/dist/commands/impl/syncImpl.js.map +1 -1
  18. package/dist/commands/init.js +1 -0
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/nav/navigatorTree.d.ts +36 -2
  21. package/dist/nav/navigatorTree.js +184 -42
  22. package/dist/nav/navigatorTree.js.map +1 -1
  23. package/dist/nav/routeTree.d.ts +2 -1
  24. package/dist/nav/routeTree.js +3 -3
  25. package/dist/nav/routeTree.js.map +1 -1
  26. package/dist/nav/screenOptions.d.ts +24 -0
  27. package/dist/nav/screenOptions.js +41 -13
  28. package/dist/nav/screenOptions.js.map +1 -1
  29. package/dist/packages/catalog.d.ts +20 -0
  30. package/dist/packages/catalog.js +94 -0
  31. package/dist/packages/catalog.js.map +1 -0
  32. package/dist/packages/resolve.d.ts +61 -0
  33. package/dist/packages/resolve.js +149 -0
  34. package/dist/packages/resolve.js.map +1 -0
  35. package/dist/runtime/runtimeFiles.d.ts +17 -0
  36. package/dist/runtime/runtimeFiles.js +183 -0
  37. package/dist/runtime/runtimeFiles.js.map +1 -0
  38. package/dist/services/appDeps.d.ts +41 -0
  39. package/dist/services/appDeps.js +152 -0
  40. package/dist/services/appDeps.js.map +1 -0
  41. package/dist/services/appPackages.d.ts +46 -0
  42. package/dist/services/appPackages.js +266 -0
  43. package/dist/services/appPackages.js.map +1 -0
  44. package/dist/services/doctorService.d.ts +28 -1
  45. package/dist/services/doctorService.js +217 -3
  46. package/dist/services/doctorService.js.map +1 -1
  47. package/dist/services/scaffold.d.ts +10 -1
  48. package/dist/services/scaffold.js +45 -5
  49. package/dist/services/scaffold.js.map +1 -1
  50. package/dist/services/syncEngine.js +23 -7
  51. package/dist/services/syncEngine.js.map +1 -1
  52. package/dist/version.d.ts +21 -0
  53. package/dist/version.js +40 -3
  54. package/dist/version.js.map +1 -1
  55. package/package.json +4 -4
  56. package/templates/agent/mapples.md +9 -4
  57. package/templates/agent/skills/mapples-conventions/SKILL.md +2 -2
  58. package/templates/agent/skills/mapples-design/SKILL.md +4 -4
  59. package/templates/agent/skills/mapples-design/reference/component-library.md +1 -1
  60. package/templates/agent/skills/mapples-design/reference/layout-contract.md +2 -3
  61. package/templates/agent/skills/mapples-design/reference/playbooks/onboarding-flow.md +1 -1
  62. package/templates/agent/skills/mapples-design/reference/playbooks/screen-flow-wiring.md +2 -5
  63. package/templates/agent/skills/mapples-design/reference/style-guides.md +2 -0
  64. package/templates/agent/skills/mapples-sync/SKILL.md +1 -0
  65. package/templates/gitignore +2 -0
  66. package/templates/package.json +27 -34
@@ -5,22 +5,19 @@ Wiring flows: every CTA connected, entries set, a walkable prototype.
5
5
 
6
6
  A project becomes a product when every path is walkable. After the screens exist, wire them — this is as much the design as the pixels.
7
7
 
8
- How a connection is written (both halves, on the element's primary event):
8
+ How a connection is written (on the element's primary event):
9
9
 
10
10
  ```tsx
11
- import { router } from 'expo-router';
12
- // …
13
11
  <Button
14
12
  label="Add to order"
15
13
  variant="filled"
16
14
  size="lg"
17
15
  fullWidth
18
- onPress={() => router.push('/(main)/cart')}
19
16
  $actions={{ onPress: { type: 'mapples:navigate', staticData: { pageUuid: '<uuid>' } } }}
20
17
  />
21
18
  ```
22
19
 
23
- `$actions` is the Creator connection (the storyboard arrow); `onPress` is the runtime handler. The `pageUuid` is the `uuid` field of `.mapples/base/pages/<pageId>.json`, where `<pageId>` is the key in `.mapples/pages.json` whose `file` is the target route file. Rows use `ListItem`'s `onPress`, cards `MediaCard`'s / `Card`'s `onPress`.
20
+ `$actions` is the Creator connection (the storyboard arrow) AND the app's handler: the built app runs it the way Creator's Play does (guards, replace-on-sign-in and params included). Never add a `router.push` `onPress` next to it — the action replaces a code handler for the same event and the app warns about the duplicate. The `pageUuid` is the `uuid` field of `.mapples/base/pages/<pageId>.json`, where `<pageId>` is the key in `.mapples/pages.json` whose `file` is the target route file. Rows use `ListItem`'s `onPress`, cards `MediaCard`'s / `Card`'s `onPress`.
24
21
 
25
22
  The contract:
26
23
  - Every PRIMARY `Button` navigates to a real page: onboarding Continue → next screen, Get started → auth or home, list row / card → its detail, detail CTA → the flow it starts (cart, booking, player). No dead primary buttons, ever.
@@ -87,6 +87,8 @@ Regular, Medium, SemiBold, Bold unless noted.
87
87
  The icon family is a project setting in Creator; from code, `Icon iconName="…"` uses the glyph
88
88
  names of that family (ionicons names like `home-outline`, `search`, `chevron-forward` when in
89
89
  doubt). An unknown name renders as a broken glyph — prefer a common name over a guessed one.
90
+ The app ships only the chosen family's `@react-native-vector-icons/*` pack, which
91
+ `npx -y mapples@__CLI_VERSION__ sync` adds once the family is set — never install packs by hand.
90
92
 
91
93
  > Not ported (Creator-only): the streaming preview cards, the `repairViolations` pass and the
92
94
  > four-guide generation count (three here, so the table fits a chat reply).
@@ -54,6 +54,7 @@ npx -y mapples@__CLI_VERSION__ sync --yes --json
54
54
  | `serverWarnings[]` | e.g. `CHILDREN_REBASED`: the server reordered children after a concurrent edit |
55
55
  | `offline` | true = nothing reached the server; ops parked in `.mapples/outbox/` and drained next run |
56
56
  | `notes[]` | navigator creation, agent-lease heartbeat misses, rebases |
57
+ | `packages` | the app's dependencies follow the Creator project (icon pack of the project's icon family, QRCode/BarCode/Gradient/Video packages): `added` / `removed` changed package.json, `pluginsAdded` app.json; `installNeeded: true` means run `packages.packageManager` install (and rebuild the dev client for a native package) before starting the app. `removable` entries are left for the user. Never add or remove these packages by hand to fix a render error — sync again |
57
58
 
58
59
  ## Exit codes
59
60
 
@@ -9,3 +9,5 @@ web-build/
9
9
  .mapples/secret
10
10
  # agent-session lease state — local only
11
11
  .mapples/agent.json
12
+ # build-time secrets for the Creator API requests (EXPO_PUBLIC_MAPPLES_SECRET_*) — never commit
13
+ .env*.local
@@ -10,60 +10,53 @@
10
10
  "sync": "mapples sync"
11
11
  },
12
12
  "dependencies": {
13
- "@mapples/action": "^1.1.2",
14
- "@mapples/app": "^1.6.0-beta.0",
15
- "@mapples/components": "^1.2.1",
16
- "@mapples/form": "^1.2.0",
17
- "@mapples/inlang": "^1.2.0",
18
- "@mapples/render": "^1.2.0",
19
- "@mapples/state": "^1.2.0",
20
- "@mapples/style": "^1.2.0",
21
- "@mapples/types": "^1.2.0",
22
- "@mapples/ui": "^1.1.3",
23
- "@react-native-vector-icons/ant-design": "^13.1.0",
24
- "@react-native-vector-icons/entypo": "^13.1.0",
25
- "@react-native-vector-icons/evil-icons": "^13.1.0",
26
- "@react-native-vector-icons/feather": "^13.1.0",
27
- "@react-native-vector-icons/fontawesome": "^13.1.0",
28
- "@react-native-vector-icons/fontawesome5": "^13.1.0",
29
- "@react-native-vector-icons/fontawesome6": "^13.1.0",
30
- "@react-native-vector-icons/fontisto": "^13.1.0",
31
- "@react-native-vector-icons/foundation": "^13.1.0",
32
- "@react-native-vector-icons/ionicons": "^13.1.0",
33
- "@react-native-vector-icons/lucide": "^13.1.0",
34
- "@react-native-vector-icons/material-design-icons": "^13.1.0",
35
- "@react-native-vector-icons/material-icons": "^13.1.0",
36
- "@react-native-vector-icons/octicons": "^21.1.0",
37
- "@react-native-vector-icons/simple-line-icons": "^13.1.0",
38
- "@react-native-vector-icons/zocial": "^13.1.0",
39
- "expo": "~57.0.23",
40
- "expo-constants": "~57.0.18",
13
+ "@expo/ui": "~57.0.21",
14
+ "@mapples/action": "__MAPPLES_RUNTIME__",
15
+ "@mapples/app": "__MAPPLES_RUNTIME__",
16
+ "@mapples/components": "__MAPPLES_RUNTIME__",
17
+ "@mapples/fonts": "__MAPPLES_RUNTIME__",
18
+ "@mapples/form": "__MAPPLES_RUNTIME__",
19
+ "@mapples/inlang": "__MAPPLES_RUNTIME__",
20
+ "@mapples/navigation": "__MAPPLES_RUNTIME__",
21
+ "@mapples/render": "__MAPPLES_RUNTIME__",
22
+ "@mapples/request": "__MAPPLES_RUNTIME__",
23
+ "@mapples/state": "__MAPPLES_RUNTIME__",
24
+ "@mapples/style": "__MAPPLES_RUNTIME__",
25
+ "@mapples/types": "__MAPPLES_RUNTIME__",
26
+ "@mapples/ui": "__MAPPLES_RUNTIME__",
27
+ "expo": "~57.0.26",
28
+ "expo-constants": "~57.0.20",
29
+ "expo-dev-client": "~57.0.19",
30
+ "expo-device": "~57.0.2",
41
31
  "expo-font": "~57.0.4",
32
+ "expo-glass-effect": "~57.0.4",
42
33
  "expo-image": "~57.0.5",
43
- "expo-linear-gradient": "~57.0.2",
44
- "expo-linking": "~57.0.10",
45
- "expo-router": "~57.0.21",
34
+ "expo-linking": "~57.0.11",
35
+ "expo-router": "~57.0.24",
46
36
  "expo-splash-screen": "~57.0.9",
47
37
  "expo-status-bar": "~57.0.1",
38
+ "expo-symbols": "~57.0.3",
48
39
  "expo-system-ui": "~57.0.4",
49
40
  "expo-web-browser": "~57.0.3",
50
- "jsbarcode": "^3.12.3",
41
+ "lodash": "^4.18.0",
51
42
  "react": "19.2.3",
52
43
  "react-dom": "19.2.3",
53
44
  "react-native": "0.86.3",
54
45
  "react-native-gesture-handler": "~2.32.0",
55
- "react-native-qrcode-svg": "^6.3.22",
56
46
  "react-native-reanimated": "4.5.1",
57
47
  "react-native-safe-area-context": "~5.7.0",
58
48
  "react-native-screens": "~4.26.0",
59
49
  "react-native-svg": "15.15.4",
60
50
  "react-native-web": "~0.21.0",
61
- "react-native-worklets": "0.10.1"
51
+ "react-native-worklets": "0.10.1",
52
+ "rxjs": "^7.8.1",
53
+ "yup": "^1.6.0"
62
54
  },
63
55
  "devDependencies": {
64
56
  "@babel/core": "^7.26.0",
65
57
  "@types/react": "~19.2.2",
66
58
  "babel-plugin-mapples-sid": "__CLI_VERSION__",
59
+ "babel-preset-expo": "~57.0.13",
67
60
  "mapples": "__CLI_VERSION__",
68
61
  "typescript": "~6.0.3"
69
62
  },