@wix/himalaya-cli 0.1140.0 → 0.1141.0

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.
@@ -281,7 +281,7 @@ Concrete patterns lifted from real usage:
281
281
  - **Cell list** — `card([ vstack({ spacing: 0, alignment: "leading", children: [ …ListItem cells… ] }) ])`. `spacing: 0` because the cells own their own dividers/padding.
282
282
  - **Overlay** — `zstack({ alignment: "center", children: [ backdropImage(cornerRadius 12), withModifiers(label, { padding, background: { token: "accentPrimary" }, cornerRadius: 10 }) ] })`.
283
283
  - **Responsive** — `grid({ columns: 1, columnsMedium: 2, spacing: 12 })` for 1-up on phone / 2-up on tablet; `splitView({ primary, detail, primaryMaxWidth: 280 })` for master/detail that stacks on a phone; set `contentMaxWidth` in tokens so wide surfaces keep a readable column instead of running edge-to-edge.
284
- - **Centered separator, not a flanked divider** — the classic "—— or ——" needs each `divider()` to take equal remaining width, and the HStack row-share only kicks in for controls with an intrinsic fill. **Never put a bare `divider()` inside an HStack for a row that must render on Android**: iOS and web draw it as a thin vertical rule the height of the row, but Android still draws a horizontal rule that claims the row's full width and squeezes its siblings (a stat row's `12` wraps to `1`/`2`). For a stats row, separate the columns with `spacer()`s or spacing instead. Use a **centered caption** instead: `hstack({ children: [spacer(), text("or continue with", "caption", { color: "textSecondary" }), spacer()] })`, optionally over a single full-width `divider()`.
284
+ - **Centered separator, not a flanked divider** — the classic "—— or ——" needs each `divider()` to take equal remaining width, and the HStack row-share only kicks in for controls with an intrinsic fill. **A bare `divider()` inside an HStack is a column separator, not a flanking line**: iOS, macOS, Android and web draw it as a thin vertical rule the height of the row that takes no share of the width, which is right for a stats row (`12 | 340 | 87`) and wrong for "—— or ——" (React Native, opt-in, still draws a full-width bar there that squeezes its siblings, so on RN separate stat columns with spacing). For "—— or ——", use a **centered caption**: `hstack({ children: [spacer(), text("or continue with", "caption", { color: "textSecondary" }), spacer()] })`, optionally over a single full-width `divider()`.
285
285
 
286
286
  > **Intrinsic-fill controls grab the row.** `Button` and `TextField` have an intrinsic FILL, so the next four idioms are about NOT letting that surprise you (they were the papercuts every off-repo app hit):
287
287
 
@@ -122,6 +122,27 @@ placeholder copy, flow/state matrix, and compact/phone/expanded + device evidenc
122
122
  the app ready. Keep scenario switches out of customer UI. A labelled preview fallback is acceptable
123
123
  only when the host cannot perform the task and it cannot write customer data.
124
124
 
125
+ **Adopting a template, step by step.** A template proves a capability; it is not the customer's
126
+ product. Right after `init`:
127
+
128
+ 1. **Inventory what you inherited** before editing: its screens, local and remote data, auth,
129
+ capabilities, demo/fallback behaviour, and template-specific copy. Write it down — it is the
130
+ list the next steps work through.
131
+ 2. **Replace the template's identity**: its app name, addresses, sample content, and every
132
+ `YOUR_*` / `replace with` placeholder. A placeholder left in is shipped as copy —
133
+ `himi ux audit --strict` fails on one as `template-placeholder`.
134
+ 3. **Put each inherited risky flow in the acceptance matrix** — booking/cancellation, payments,
135
+ deletion, media, maps, entitlement — or remove it (`himi template trim`). A flow the plan does
136
+ not mention is a flow nobody approved.
137
+ 4. **Classify every control** as primary, secondary, destructive, or preview/fallback, and keep a
138
+ destructive or writing control only when the approved data-access matrix allows it.
139
+ 5. **Prove each adopted flow, not just each screen**: with fixtures or `dev/net-mocks.json`, prove
140
+ typed input → submit → the persisted result with a typed journey in `himi-test.json`
141
+ (`--deep` replays action chains but never types a field value), then prove the destination
142
+ and cancel/back recovery separately — a typed journey is screen-local and does not follow
143
+ navigation, so use a render of the destination or a device drive. A fresh-screen crawl alone
144
+ does not prove a flow.
145
+
125
146
  Before authoring a multi-screen mobile app, ensure the customer-approved `SPEC.md` and
126
147
  `MOBILE-UX.md` are in the content-package root. Use `himi docs <topic>` only after `himi docs`
127
148
  shows that topic for the installed CLI.
@@ -151,6 +151,27 @@ placeholder copy, flow/state matrix, and compact/phone/expanded + device evidenc
151
151
  the app ready. Keep scenario switches out of customer UI. A labelled preview fallback is acceptable
152
152
  only when the host cannot perform the task and it cannot write customer data.
153
153
 
154
+ **Adopting a template, step by step.** A template proves a capability; it is not the customer's
155
+ product. Right after `init`:
156
+
157
+ 1. **Inventory what you inherited** before editing: its screens, local and remote data, auth,
158
+ capabilities, demo/fallback behaviour, and template-specific copy. Write it down — it is the
159
+ list the next steps work through.
160
+ 2. **Replace the template's identity**: its app name, addresses, sample content, and every
161
+ `YOUR_*` / `replace with` placeholder. A placeholder left in is shipped as copy —
162
+ `himi ux audit --strict` fails on one as `template-placeholder`.
163
+ 3. **Put each inherited risky flow in the acceptance matrix** — booking/cancellation, payments,
164
+ deletion, media, maps, entitlement — or remove it (`himi template trim`). A flow the plan does
165
+ not mention is a flow nobody approved.
166
+ 4. **Classify every control** as primary, secondary, destructive, or preview/fallback, and keep a
167
+ destructive or writing control only when the approved data-access matrix allows it.
168
+ 5. **Prove each adopted flow, not just each screen**: with fixtures or `dev/net-mocks.json`, prove
169
+ typed input → submit → the persisted result with a typed journey in `himi-test.json`
170
+ (`--deep` replays action chains but never types a field value), then prove the destination
171
+ and cancel/back recovery separately — a typed journey is screen-local and does not follow
172
+ navigation, so use a render of the destination or a device drive. A fresh-screen crawl alone
173
+ does not prove a flow.
174
+
154
175
  Before authoring a multi-screen mobile app, ensure the customer-approved `SPEC.md` and
155
176
  `MOBILE-UX.md` are in the content-package root. Use `himi docs <topic>` only after `himi docs`
156
177
  shows that topic for the installed CLI.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1140.0",
3
+ "version": "0.1141.0",
4
4
  "type": "module",
5
5
  "description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
6
6
  "keywords": [
@@ -67,5 +67,5 @@
67
67
  "artifactId": "himalaya-cli"
68
68
  }
69
69
  },
70
- "falconPackageHash": "42a37432b11097784e0389ac94c65fc4c19358634b3ea5270db5cd25"
70
+ "falconPackageHash": "b820f4eed1d9ed9b0d30bcf1f8cb0b2c3355091ccb6fc9701db1bb4b"
71
71
  }