@wix/himalaya-cli 0.1478.0 → 0.1480.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.
Files changed (45) hide show
  1. package/dist/cli.mjs +454 -263
  2. package/dist/preview-assets.generated.bin +0 -0
  3. package/guides/component-reference.json +2 -25
  4. package/guides/component-reference.md +3 -9
  5. package/package.json +2 -2
  6. package/templates/beauty-salon/dev/index.ts +29 -229
  7. package/templates/beauty-salon/tier5-src/himi-booking-time/index.ts +69 -9
  8. package/templates/beauty-salon/tier5-src/himi-store-account/index.ts +6 -1
  9. package/templates/beauty-salon/tier5-src/wix-spaces-my-subscriptions/index.ts +2 -2
  10. package/templates/branded-lite/dev/index.ts +58 -364
  11. package/templates/branded-lite/tier5-src/himi-booking-time/index.ts +69 -9
  12. package/templates/branded-lite/tier5-src/himi-events-rsvp/index.ts +5 -0
  13. package/templates/branded-lite/tier5-src/himi-store-account/index.ts +6 -1
  14. package/templates/branded-lite/tier5-src/wix-spaces-my-subscriptions/index.ts +2 -2
  15. package/templates/community-club/dev/index.ts +26 -134
  16. package/templates/community-club/tier5-src/himi-events-rsvp/index.ts +5 -0
  17. package/templates/community-club/tier5-src/himi-store-account/index.ts +6 -1
  18. package/templates/events-meetups/dev/index.ts +26 -134
  19. package/templates/events-meetups/tier5-src/himi-events-rsvp/index.ts +5 -0
  20. package/templates/events-meetups/tier5-src/himi-store-account/index.ts +6 -1
  21. package/templates/gym-fitness/dev/index.ts +55 -363
  22. package/templates/gym-fitness/tier5-src/himi-booking-time/index.ts +69 -9
  23. package/templates/gym-fitness/tier5-src/himi-events-rsvp/index.ts +5 -0
  24. package/templates/gym-fitness/tier5-src/himi-store-account/index.ts +6 -1
  25. package/templates/gym-fitness/tier5-src/wix-spaces-my-subscriptions/index.ts +2 -2
  26. package/templates/nonprofit-cause/dev/index.ts +29 -136
  27. package/templates/nonprofit-cause/tier5-src/himi-events-rsvp/index.ts +5 -0
  28. package/templates/nonprofit-cause/tier5-src/himi-store-account/index.ts +6 -1
  29. package/templates/nonprofit-cause/tier5-src/wix-spaces-my-subscriptions/index.ts +2 -2
  30. package/templates/podcast-creator/dev/index.ts +29 -136
  31. package/templates/podcast-creator/tier5-src/himi-events-rsvp/index.ts +5 -0
  32. package/templates/podcast-creator/tier5-src/himi-store-account/index.ts +6 -1
  33. package/templates/podcast-creator/tier5-src/wix-spaces-my-subscriptions/index.ts +2 -2
  34. package/templates/portfolio-creative/dev/index.ts +26 -134
  35. package/templates/portfolio-creative/tier5-src/himi-events-rsvp/index.ts +5 -0
  36. package/templates/portfolio-creative/tier5-src/himi-store-account/index.ts +6 -1
  37. package/templates/restaurant/dev/index.ts +26 -134
  38. package/templates/restaurant/tier5-src/himi-events-rsvp/index.ts +5 -0
  39. package/templates/restaurant/tier5-src/himi-store-account/index.ts +6 -1
  40. package/templates/retail-store/tier5-src/himi-store-account/index.ts +6 -1
  41. package/templates/yoga-studio/dev/index.ts +55 -363
  42. package/templates/yoga-studio/tier5-src/himi-booking-time/index.ts +69 -9
  43. package/templates/yoga-studio/tier5-src/himi-events-rsvp/index.ts +5 -0
  44. package/templates/yoga-studio/tier5-src/himi-store-account/index.ts +6 -1
  45. package/templates/yoga-studio/tier5-src/wix-spaces-my-subscriptions/index.ts +2 -2
@@ -9,7 +9,7 @@ interface S {
9
9
  status: "loading" | "ready";
10
10
  orders: Row[];
11
11
  emptyText: string;
12
- /** When true, descriptor hides the guest-only "Go to Account" CTA (hiddenWhen). */
12
+ /** When true, descriptor hides the guest-only "Sign in" CTA (hiddenWhen). */
13
13
  hideAccountCta: boolean;
14
14
  }
15
15
 
@@ -19,7 +19,7 @@ function norm(o: WixPlanOrder): Row {
19
19
  }
20
20
 
21
21
  const EMPTY_MEMBER = "No subscriptions yet";
22
- const EMPTY_GUEST = "Sign in from Account to see subscriptions you’ve joined — we don’t invent sample memberships.";
22
+ const EMPTY_GUEST = "Sign in to see the subscriptions you’ve joined — we don’t invent sample memberships.";
23
23
  const EMPTY_FORBIDDEN = "No subscriptions for this member yet.";
24
24
 
25
25
  /** The signed-in member's email, or "" for anyone else. A visitor's identity is
@@ -20327,140 +20327,6 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
20327
20327
  }
20328
20328
  }
20329
20329
  },
20330
- {
20331
- "id": "himi_rsvp.signin_card",
20332
- "body": {
20333
- "package": "himalaya",
20334
- "type": "VStack",
20335
- "props": {
20336
- "spacing": 12,
20337
- "alignment": "leading",
20338
- "children": [
20339
- {
20340
- "id": "",
20341
- "body": {
20342
- "package": "himalaya",
20343
- "type": "HStack",
20344
- "props": {
20345
- "spacing": 10,
20346
- "children": [
20347
- {
20348
- "id": "",
20349
- "body": {
20350
- "package": "himalaya",
20351
- "type": "Icon",
20352
- "props": {
20353
- "name": "person",
20354
- "size": 18,
20355
- "tint": "accentPrimary"
20356
- }
20357
- },
20358
- "modifiers": {
20359
- "accessibilityRole": "decorative"
20360
- }
20361
- },
20362
- {
20363
- "id": "",
20364
- "body": {
20365
- "package": "himalaya",
20366
- "type": "Text",
20367
- "props": {
20368
- "text": "Sign in to RSVP",
20369
- "style": "bodyEmphasis"
20370
- }
20371
- }
20372
- }
20373
- ]
20374
- }
20375
- }
20376
- },
20377
- {
20378
- "id": "",
20379
- "body": {
20380
- "package": "himalaya",
20381
- "type": "Text",
20382
- "props": {
20383
- "text": "Events can be browsed as a guest. RSVP is saved to your member identity.",
20384
- "style": "body",
20385
- "color": "textSecondary"
20386
- }
20387
- }
20388
- },
20389
- {
20390
- "id": "himi_rsvp.email",
20391
- "body": {
20392
- "package": "himalaya",
20393
- "type": "TextField",
20394
- "props": {
20395
- "placeholder": "Email",
20396
- "value": "",
20397
- "keyboard": "email",
20398
- "autoCapitalization": "none",
20399
- "onChange": {
20400
- "actionId": "tier5.himiEventsRsvp.setEmail"
20401
- }
20402
- }
20403
- }
20404
- },
20405
- {
20406
- "id": "himi_rsvp.password",
20407
- "body": {
20408
- "package": "himalaya",
20409
- "type": "TextField",
20410
- "props": {
20411
- "placeholder": "Password",
20412
- "valuePath": "$service:himiEventsRsvp.password",
20413
- "secure": true,
20414
- "autoCapitalization": "none",
20415
- "onChange": {
20416
- "actionId": "tier5.himiEventsRsvp.setPassword"
20417
- }
20418
- }
20419
- }
20420
- },
20421
- {
20422
- "id": "himi_rsvp.signin",
20423
- "body": {
20424
- "package": "himalaya",
20425
- "type": "Button",
20426
- "props": {
20427
- "title": "Sign in",
20428
- "style": "primary",
20429
- "fullWidth": true,
20430
- "action": {
20431
- "actionId": "tier5.himiEventsRsvp.signIn"
20432
- }
20433
- }
20434
- },
20435
- "modifiers": {
20436
- "cornerRadius": 8,
20437
- "pressFeedback": "scale",
20438
- "haptic": "medium"
20439
- }
20440
- }
20441
- ]
20442
- }
20443
- },
20444
- "modifiers": {
20445
- "background": {
20446
- "token": "surfaceElevated"
20447
- },
20448
- "border": {
20449
- "width": 1,
20450
- "color": {
20451
- "token": "border"
20452
- }
20453
- },
20454
- "cornerRadius": 8,
20455
- "padding": {
20456
- "leading": 14,
20457
- "trailing": 14,
20458
- "top": 14,
20459
- "bottom": 14
20460
- },
20461
- "hiddenPath": "$service:himiEventsRsvp.isMember"
20462
- }
20463
- },
20464
20330
  {
20465
20331
  "id": "himi_rsvp.member_card",
20466
20332
  "body": {
@@ -20576,6 +20442,32 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
20576
20442
  "hiddenPath": "$service:himiEventsRsvp.noSuccess"
20577
20443
  }
20578
20444
  },
20445
+ {
20446
+ "id": "himi_rsvp.confirm_sign_in",
20447
+ "body": {
20448
+ "package": "himalaya",
20449
+ "type": "Button",
20450
+ "props": {
20451
+ "title": "Confirm RSVP",
20452
+ "style": "primary",
20453
+ "fullWidth": true,
20454
+ "action": {
20455
+ "actionId": "himi.open",
20456
+ "params": {
20457
+ "screenId": "himi_sign_in",
20458
+ "mode": "signin",
20459
+ "intent": "rsvp"
20460
+ }
20461
+ }
20462
+ }
20463
+ },
20464
+ "modifiers": {
20465
+ "cornerRadius": 8,
20466
+ "pressFeedback": "scale",
20467
+ "haptic": "medium",
20468
+ "hiddenPath": "$service:himiEventsRsvp.hideGuestRsvp"
20469
+ }
20470
+ },
20579
20471
  {
20580
20472
  "id": "himi_rsvp.confirm",
20581
20473
  "body": {
@@ -35,6 +35,9 @@ interface S {
35
35
  noSuccess: boolean;
36
36
  canRsvp: boolean;
37
37
  cannotRsvp: boolean;
38
+ /** Hides a guest's RSVP button, which opens a sign-in screen: shown only for a guest with
39
+ * an event to RSVP to, as `cannotRsvp` requires an event for a member's. */
40
+ hideGuestRsvp: boolean;
38
41
  errored: boolean;
39
42
  notErrored: boolean;
40
43
  isLoading: boolean;
@@ -74,6 +77,7 @@ function derive(s: S): S {
74
77
  notMember: !s.isMember,
75
78
  canRsvp,
76
79
  cannotRsvp: !canRsvp,
80
+ hideGuestRsvp: s.isMember || !hasEvent,
77
81
  noSuccess: !hasSuccess,
78
82
  notErrored: !s.errored,
79
83
  noEmpty: s.status === "loading" || s.errored || hasEvent,
@@ -144,6 +148,7 @@ const svc = defineService<S, {
144
148
  noSuccess: true,
145
149
  canRsvp: false,
146
150
  cannotRsvp: true,
151
+ hideGuestRsvp: true,
147
152
  errored: false,
148
153
  notErrored: true,
149
154
  isLoading: true,
@@ -365,6 +365,11 @@ function authHeadline(s: S, isRegistering: boolean, isRecovering: boolean): { au
365
365
  authTitle: copyParam("storeAccount.authTitleRsvp", "Sign in to RSVP"),
366
366
  authBody: copyParam("storeAccount.authBodyRsvp", "Sign in to RSVP, then we’ll bring you back."),
367
367
  };
368
+ case "book":
369
+ return {
370
+ authTitle: copyParam("storeAccount.authTitleBook", "Sign in to book"),
371
+ authBody: copyParam("storeAccount.authBodyBook", "Sign in to book this time, then we’ll bring you back."),
372
+ };
368
373
  case "post":
369
374
  return {
370
375
  authTitle: copyParam("storeAccount.authTitlePost", "Sign in to post"),
@@ -392,7 +397,7 @@ interface S extends IapRestoreFields {
392
397
  noMemberImage: boolean;
393
398
  authTitle: string;
394
399
  authBody: string;
395
- /** Mid-flow gate intent (`join_group` | `rsvp` | `post` | ""). */
400
+ /** Mid-flow gate intent (`join_group` | `rsvp` | `book` | `post` | ""). */
396
401
  authIntent: string;
397
402
  authContextName: string;
398
403
  returnScreenId: string;
@@ -18289,140 +18289,6 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
18289
18289
  }
18290
18290
  }
18291
18291
  },
18292
- {
18293
- "id": "himi_rsvp.signin_card",
18294
- "body": {
18295
- "package": "himalaya",
18296
- "type": "VStack",
18297
- "props": {
18298
- "spacing": 12,
18299
- "alignment": "leading",
18300
- "children": [
18301
- {
18302
- "id": "",
18303
- "body": {
18304
- "package": "himalaya",
18305
- "type": "HStack",
18306
- "props": {
18307
- "spacing": 10,
18308
- "children": [
18309
- {
18310
- "id": "",
18311
- "body": {
18312
- "package": "himalaya",
18313
- "type": "Icon",
18314
- "props": {
18315
- "name": "person",
18316
- "size": 18,
18317
- "tint": "accentPrimary"
18318
- }
18319
- },
18320
- "modifiers": {
18321
- "accessibilityRole": "decorative"
18322
- }
18323
- },
18324
- {
18325
- "id": "",
18326
- "body": {
18327
- "package": "himalaya",
18328
- "type": "Text",
18329
- "props": {
18330
- "text": "Sign in to RSVP",
18331
- "style": "bodyEmphasis"
18332
- }
18333
- }
18334
- }
18335
- ]
18336
- }
18337
- }
18338
- },
18339
- {
18340
- "id": "",
18341
- "body": {
18342
- "package": "himalaya",
18343
- "type": "Text",
18344
- "props": {
18345
- "text": "Events can be browsed as a guest. RSVP is saved to your member identity.",
18346
- "style": "body",
18347
- "color": "textSecondary"
18348
- }
18349
- }
18350
- },
18351
- {
18352
- "id": "himi_rsvp.email",
18353
- "body": {
18354
- "package": "himalaya",
18355
- "type": "TextField",
18356
- "props": {
18357
- "placeholder": "Email",
18358
- "value": "",
18359
- "keyboard": "email",
18360
- "autoCapitalization": "none",
18361
- "onChange": {
18362
- "actionId": "tier5.himiEventsRsvp.setEmail"
18363
- }
18364
- }
18365
- }
18366
- },
18367
- {
18368
- "id": "himi_rsvp.password",
18369
- "body": {
18370
- "package": "himalaya",
18371
- "type": "TextField",
18372
- "props": {
18373
- "placeholder": "Password",
18374
- "valuePath": "$service:himiEventsRsvp.password",
18375
- "secure": true,
18376
- "autoCapitalization": "none",
18377
- "onChange": {
18378
- "actionId": "tier5.himiEventsRsvp.setPassword"
18379
- }
18380
- }
18381
- }
18382
- },
18383
- {
18384
- "id": "himi_rsvp.signin",
18385
- "body": {
18386
- "package": "himalaya",
18387
- "type": "Button",
18388
- "props": {
18389
- "title": "Sign in",
18390
- "style": "primary",
18391
- "fullWidth": true,
18392
- "action": {
18393
- "actionId": "tier5.himiEventsRsvp.signIn"
18394
- }
18395
- }
18396
- },
18397
- "modifiers": {
18398
- "cornerRadius": 8,
18399
- "pressFeedback": "scale",
18400
- "haptic": "medium"
18401
- }
18402
- }
18403
- ]
18404
- }
18405
- },
18406
- "modifiers": {
18407
- "background": {
18408
- "token": "surfaceElevated"
18409
- },
18410
- "border": {
18411
- "width": 1,
18412
- "color": {
18413
- "token": "border"
18414
- }
18415
- },
18416
- "cornerRadius": 8,
18417
- "padding": {
18418
- "leading": 14,
18419
- "trailing": 14,
18420
- "top": 14,
18421
- "bottom": 14
18422
- },
18423
- "hiddenPath": "$service:himiEventsRsvp.isMember"
18424
- }
18425
- },
18426
18292
  {
18427
18293
  "id": "himi_rsvp.member_card",
18428
18294
  "body": {
@@ -18538,6 +18404,32 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
18538
18404
  "hiddenPath": "$service:himiEventsRsvp.noSuccess"
18539
18405
  }
18540
18406
  },
18407
+ {
18408
+ "id": "himi_rsvp.confirm_sign_in",
18409
+ "body": {
18410
+ "package": "himalaya",
18411
+ "type": "Button",
18412
+ "props": {
18413
+ "title": "Confirm RSVP",
18414
+ "style": "primary",
18415
+ "fullWidth": true,
18416
+ "action": {
18417
+ "actionId": "himi.open",
18418
+ "params": {
18419
+ "screenId": "himi_sign_in",
18420
+ "mode": "signin",
18421
+ "intent": "rsvp"
18422
+ }
18423
+ }
18424
+ }
18425
+ },
18426
+ "modifiers": {
18427
+ "cornerRadius": 8,
18428
+ "pressFeedback": "scale",
18429
+ "haptic": "medium",
18430
+ "hiddenPath": "$service:himiEventsRsvp.hideGuestRsvp"
18431
+ }
18432
+ },
18541
18433
  {
18542
18434
  "id": "himi_rsvp.confirm",
18543
18435
  "body": {
@@ -35,6 +35,9 @@ interface S {
35
35
  noSuccess: boolean;
36
36
  canRsvp: boolean;
37
37
  cannotRsvp: boolean;
38
+ /** Hides a guest's RSVP button, which opens a sign-in screen: shown only for a guest with
39
+ * an event to RSVP to, as `cannotRsvp` requires an event for a member's. */
40
+ hideGuestRsvp: boolean;
38
41
  errored: boolean;
39
42
  notErrored: boolean;
40
43
  isLoading: boolean;
@@ -74,6 +77,7 @@ function derive(s: S): S {
74
77
  notMember: !s.isMember,
75
78
  canRsvp,
76
79
  cannotRsvp: !canRsvp,
80
+ hideGuestRsvp: s.isMember || !hasEvent,
77
81
  noSuccess: !hasSuccess,
78
82
  notErrored: !s.errored,
79
83
  noEmpty: s.status === "loading" || s.errored || hasEvent,
@@ -144,6 +148,7 @@ const svc = defineService<S, {
144
148
  noSuccess: true,
145
149
  canRsvp: false,
146
150
  cannotRsvp: true,
151
+ hideGuestRsvp: true,
147
152
  errored: false,
148
153
  notErrored: true,
149
154
  isLoading: true,
@@ -365,6 +365,11 @@ function authHeadline(s: S, isRegistering: boolean, isRecovering: boolean): { au
365
365
  authTitle: copyParam("storeAccount.authTitleRsvp", "Sign in to RSVP"),
366
366
  authBody: copyParam("storeAccount.authBodyRsvp", "Sign in to RSVP, then we’ll bring you back."),
367
367
  };
368
+ case "book":
369
+ return {
370
+ authTitle: copyParam("storeAccount.authTitleBook", "Sign in to book"),
371
+ authBody: copyParam("storeAccount.authBodyBook", "Sign in to book this time, then we’ll bring you back."),
372
+ };
368
373
  case "post":
369
374
  return {
370
375
  authTitle: copyParam("storeAccount.authTitlePost", "Sign in to post"),
@@ -392,7 +397,7 @@ interface S extends IapRestoreFields {
392
397
  noMemberImage: boolean;
393
398
  authTitle: string;
394
399
  authBody: string;
395
- /** Mid-flow gate intent (`join_group` | `rsvp` | `post` | ""). */
400
+ /** Mid-flow gate intent (`join_group` | `rsvp` | `book` | `post` | ""). */
396
401
  authIntent: string;
397
402
  authContextName: string;
398
403
  returnScreenId: string;