@wix/himalaya-cli 0.1573.0 → 0.1575.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 (112) hide show
  1. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/app-config.d.ts +16 -5
  2. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/define-app.d.ts +6 -0
  3. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/message-format.d.ts +59 -0
  4. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/telemetry/wix-bi/src/index.d.ts +15 -0
  5. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/telemetry/wix-bi/src/oneapp.d.ts +90 -0
  6. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/core.mjs +3 -3
  7. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/l10n.mjs +8 -3
  8. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/sdui.mjs +3 -3
  9. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-bi.mjs +165 -5
  10. package/dist/cli.mjs +5261 -2937
  11. package/dist/preview-assets.generated.bin +0 -0
  12. package/guides/designing-himi-screens.md +7 -1
  13. package/guides/hhp.md +2 -2
  14. package/guides/himi-json-output.md +53 -2
  15. package/guides/himi-mcp.md +1 -1
  16. package/guides/himi-test.md +3 -2
  17. package/guides/iap-products.md +1 -1
  18. package/guides/importing-oneapp-translations.md +115 -0
  19. package/guides/index.json +6 -0
  20. package/guides/one-app-section-mappings.md +16 -4
  21. package/guides/one-app-to-himi-app.md +167 -10
  22. package/guides/push-cli-onboarding.md +10 -0
  23. package/guides/qa-builds.md +21 -1
  24. package/guides/templates.md +3 -2
  25. package/guides/testing-himi-apps.md +1 -1
  26. package/package.json +3 -3
  27. package/templates/beauty-salon/dev/index.ts +96 -133
  28. package/templates/beauty-salon/tier5-src/_shared/exclusive-writes.ts +66 -0
  29. package/templates/beauty-salon/tier5-src/himi-branded-lite-cart/index.ts +18 -5
  30. package/templates/beauty-salon-owner/dev/index.ts +27 -6
  31. package/templates/beauty-salon-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  32. package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  33. package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  34. package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
  35. package/templates/branded-lite/dev/index.ts +136 -142
  36. package/templates/branded-lite/l10n/en.json +570 -0
  37. package/templates/branded-lite/l10n/he.json +200 -0
  38. package/templates/branded-lite/tier5-src/_shared/business-chat-copy.ts +40 -0
  39. package/templates/branded-lite/tier5-src/_shared/business-chat-message-model.ts +1 -1
  40. package/templates/branded-lite/tier5-src/_shared/business-chat-model.ts +3 -2
  41. package/templates/branded-lite/tier5-src/_shared/business-chat-presenter.ts +26 -21
  42. package/templates/branded-lite/tier5-src/_shared/exclusive-writes.ts +66 -0
  43. package/templates/branded-lite/tier5-src/business-chat/index.ts +184 -63
  44. package/templates/branded-lite/tier5-src/himi-branded-lite-cart/index.ts +18 -5
  45. package/templates/community-club/dev/index.ts +22 -6
  46. package/templates/community-club-owner/dev/index.ts +27 -6
  47. package/templates/community-club-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  48. package/templates/community-club-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  49. package/templates/community-club-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  50. package/templates/community-club-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  51. package/templates/events-meetups/dev/index.ts +22 -6
  52. package/templates/events-meetups-owner/dev/index.ts +25 -6
  53. package/templates/events-meetups-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  54. package/templates/events-meetups-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  55. package/templates/events-meetups-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  56. package/templates/gym-fitness/dev/index.ts +96 -133
  57. package/templates/gym-fitness/tier5-src/_shared/exclusive-writes.ts +66 -0
  58. package/templates/gym-fitness/tier5-src/himi-branded-lite-cart/index.ts +18 -5
  59. package/templates/gym-fitness-owner/dev/index.ts +28 -6
  60. package/templates/gym-fitness-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  61. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  62. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  63. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  64. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
  65. package/templates/himi-chat/dev/index.ts +22 -6
  66. package/templates/nonprofit-cause/dev/index.ts +22 -6
  67. package/templates/nonprofit-cause-owner/dev/index.ts +26 -6
  68. package/templates/nonprofit-cause-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  69. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  70. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  71. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
  72. package/templates/owner-lite/dev/index.ts +28 -6
  73. package/templates/owner-lite/tier5-src/_shared/exclusive-writes.ts +66 -0
  74. package/templates/owner-lite/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  75. package/templates/owner-lite/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  76. package/templates/owner-lite/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  77. package/templates/owner-lite/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
  78. package/templates/podcast-creator/dev/index.ts +22 -6
  79. package/templates/podcast-creator-owner/dev/index.ts +27 -6
  80. package/templates/podcast-creator-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  81. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  82. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  83. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  84. package/templates/portfolio-creative/dev/index.ts +96 -133
  85. package/templates/portfolio-creative/tier5-src/_shared/exclusive-writes.ts +66 -0
  86. package/templates/portfolio-creative/tier5-src/himi-branded-lite-cart/index.ts +18 -5
  87. package/templates/portfolio-creative-owner/dev/index.ts +27 -6
  88. package/templates/portfolio-creative-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  89. package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  90. package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  91. package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
  92. package/templates/restaurant/dev/index.ts +22 -6
  93. package/templates/restaurant-owner/dev/index.ts +28 -6
  94. package/templates/restaurant-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  95. package/templates/restaurant-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  96. package/templates/restaurant-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  97. package/templates/restaurant-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  98. package/templates/restaurant-owner/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
  99. package/templates/retail-store/dev/index.ts +96 -133
  100. package/templates/retail-store/tier5-src/_shared/exclusive-writes.ts +66 -0
  101. package/templates/retail-store/tier5-src/himi-branded-lite-cart/index.ts +18 -5
  102. package/templates/retail-store-owner/dev/index.ts +26 -6
  103. package/templates/retail-store-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  104. package/templates/retail-store-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  105. package/templates/retail-store-owner/tier5-src/himi-owner-lite-product-form/index.ts +5 -1
  106. package/templates/surface-showcase/dev/index.ts +22 -6
  107. package/templates/yoga-studio/dev/index.ts +22 -6
  108. package/templates/yoga-studio-owner/dev/index.ts +26 -6
  109. package/templates/yoga-studio-owner/tier5-src/_shared/exclusive-writes.ts +66 -0
  110. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-event-form/index.ts +5 -1
  111. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-post-form/index.ts +5 -1
  112. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-service-form/index.ts +5 -1
@@ -16938,39 +16938,28 @@ const SCREENS = runtimeSetting({
16938
16938
  "id": "himi_cart.qty_minus",
16939
16939
  "body": {
16940
16940
  "package": "himalaya",
16941
- "type": "ZStack",
16941
+ "type": "Button",
16942
16942
  "props": {
16943
- "alignment": "center",
16944
- "children": [
16945
- {
16946
- "id": "",
16947
- "body": {
16948
- "package": "himalaya",
16949
- "type": "Icon",
16950
- "props": {
16951
- "name": "minus",
16952
- "size": 24,
16953
- "tint": "textPrimary"
16954
- }
16955
- },
16956
- "modifiers": {
16957
- "accessibilityRole": "decorative"
16958
- }
16943
+ "title": "Decrease quantity",
16944
+ "action": {
16945
+ "actionId": "tier5.himiStoreCart.decrement",
16946
+ "params": {
16947
+ "id": "$item.id"
16959
16948
  }
16960
- ]
16949
+ },
16950
+ "style": "tertiary",
16951
+ "iconOnly": true,
16952
+ "leadingIcon": "minus",
16953
+ "cornerRadius": 22,
16954
+ "minHeight": 44,
16955
+ "disabledPath": "$service:himiStoreCart.writeBusy"
16961
16956
  }
16962
16957
  },
16963
16958
  "modifiers": {
16964
16959
  "width": 44,
16965
16960
  "height": 44,
16966
- "onTap": {
16967
- "actionId": "tier5.himiStoreCart.decrement",
16968
- "params": {
16969
- "id": "$item.id"
16970
- }
16971
- },
16972
- "accessibilityRole": "button",
16973
16961
  "accessibilityLabel": "Decrease quantity",
16962
+ "accessibilityRole": "button",
16974
16963
  "haptic": "light"
16975
16964
  }
16976
16965
  },
@@ -16993,39 +16982,28 @@ const SCREENS = runtimeSetting({
16993
16982
  "id": "himi_cart.qty_plus",
16994
16983
  "body": {
16995
16984
  "package": "himalaya",
16996
- "type": "ZStack",
16985
+ "type": "Button",
16997
16986
  "props": {
16998
- "alignment": "center",
16999
- "children": [
17000
- {
17001
- "id": "",
17002
- "body": {
17003
- "package": "himalaya",
17004
- "type": "Icon",
17005
- "props": {
17006
- "name": "plus",
17007
- "size": 24,
17008
- "tint": "textPrimary"
17009
- }
17010
- },
17011
- "modifiers": {
17012
- "accessibilityRole": "decorative"
17013
- }
16987
+ "title": "Increase quantity",
16988
+ "action": {
16989
+ "actionId": "tier5.himiStoreCart.increment",
16990
+ "params": {
16991
+ "id": "$item.id"
17014
16992
  }
17015
- ]
16993
+ },
16994
+ "style": "tertiary",
16995
+ "iconOnly": true,
16996
+ "leadingIcon": "plus",
16997
+ "cornerRadius": 22,
16998
+ "minHeight": 44,
16999
+ "disabledPath": "$service:himiStoreCart.writeBusy"
17016
17000
  }
17017
17001
  },
17018
17002
  "modifiers": {
17019
17003
  "width": 44,
17020
17004
  "height": 44,
17021
- "onTap": {
17022
- "actionId": "tier5.himiStoreCart.increment",
17023
- "params": {
17024
- "id": "$item.id"
17025
- }
17026
- },
17027
- "accessibilityRole": "button",
17028
17005
  "accessibilityLabel": "Increase quantity",
17006
+ "accessibilityRole": "button",
17029
17007
  "haptic": "light"
17030
17008
  }
17031
17009
  },
@@ -17041,39 +17019,28 @@ const SCREENS = runtimeSetting({
17041
17019
  "id": "himi_cart.save_filled",
17042
17020
  "body": {
17043
17021
  "package": "himalaya",
17044
- "type": "ZStack",
17022
+ "type": "Button",
17045
17023
  "props": {
17046
- "alignment": "center",
17047
- "children": [
17048
- {
17049
- "id": "",
17050
- "body": {
17051
- "package": "himalaya",
17052
- "type": "Icon",
17053
- "props": {
17054
- "name": "heart_fill",
17055
- "size": 24,
17056
- "tint": "textPrimary"
17057
- }
17058
- },
17059
- "modifiers": {
17060
- "accessibilityRole": "decorative"
17061
- }
17024
+ "title": "Remove from wishlist",
17025
+ "action": {
17026
+ "actionId": "tier5.himiStoreCart.save",
17027
+ "params": {
17028
+ "id": "$item.id"
17062
17029
  }
17063
- ]
17030
+ },
17031
+ "style": "tertiary",
17032
+ "iconOnly": true,
17033
+ "leadingIcon": "heart_fill",
17034
+ "cornerRadius": 22,
17035
+ "minHeight": 44,
17036
+ "disabledPath": "$service:himiStoreCart.writeBusy"
17064
17037
  }
17065
17038
  },
17066
17039
  "modifiers": {
17067
17040
  "width": 44,
17068
17041
  "height": 44,
17069
- "onTap": {
17070
- "actionId": "tier5.himiStoreCart.save",
17071
- "params": {
17072
- "id": "$item.id"
17073
- }
17074
- },
17075
- "accessibilityRole": "button",
17076
17042
  "accessibilityLabel": "Remove from wishlist",
17043
+ "accessibilityRole": "button",
17077
17044
  "haptic": "light",
17078
17045
  "hiddenPath": "$item.notSaved"
17079
17046
  }
@@ -17082,39 +17049,28 @@ const SCREENS = runtimeSetting({
17082
17049
  "id": "himi_cart.save",
17083
17050
  "body": {
17084
17051
  "package": "himalaya",
17085
- "type": "ZStack",
17052
+ "type": "Button",
17086
17053
  "props": {
17087
- "alignment": "center",
17088
- "children": [
17089
- {
17090
- "id": "",
17091
- "body": {
17092
- "package": "himalaya",
17093
- "type": "Icon",
17094
- "props": {
17095
- "name": "heart",
17096
- "size": 24,
17097
- "tint": "textPrimary"
17098
- }
17099
- },
17100
- "modifiers": {
17101
- "accessibilityRole": "decorative"
17102
- }
17054
+ "title": "Add to wishlist",
17055
+ "action": {
17056
+ "actionId": "tier5.himiStoreCart.save",
17057
+ "params": {
17058
+ "id": "$item.id"
17103
17059
  }
17104
- ]
17060
+ },
17061
+ "style": "tertiary",
17062
+ "iconOnly": true,
17063
+ "leadingIcon": "heart",
17064
+ "cornerRadius": 22,
17065
+ "minHeight": 44,
17066
+ "disabledPath": "$service:himiStoreCart.writeBusy"
17105
17067
  }
17106
17068
  },
17107
17069
  "modifiers": {
17108
17070
  "width": 44,
17109
17071
  "height": 44,
17110
- "onTap": {
17111
- "actionId": "tier5.himiStoreCart.save",
17112
- "params": {
17113
- "id": "$item.id"
17114
- }
17115
- },
17116
- "accessibilityRole": "button",
17117
17072
  "accessibilityLabel": "Add to wishlist",
17073
+ "accessibilityRole": "button",
17118
17074
  "haptic": "light",
17119
17075
  "hiddenPath": "$item.saved"
17120
17076
  }
@@ -17123,39 +17079,28 @@ const SCREENS = runtimeSetting({
17123
17079
  "id": "himi_cart.remove",
17124
17080
  "body": {
17125
17081
  "package": "himalaya",
17126
- "type": "ZStack",
17082
+ "type": "Button",
17127
17083
  "props": {
17128
- "alignment": "center",
17129
- "children": [
17130
- {
17131
- "id": "",
17132
- "body": {
17133
- "package": "himalaya",
17134
- "type": "Icon",
17135
- "props": {
17136
- "name": "trash",
17137
- "size": 24,
17138
- "tint": "textPrimary"
17139
- }
17140
- },
17141
- "modifiers": {
17142
- "accessibilityRole": "decorative"
17143
- }
17084
+ "title": "Remove from cart",
17085
+ "action": {
17086
+ "actionId": "tier5.himiStoreCart.remove",
17087
+ "params": {
17088
+ "id": "$item.id"
17144
17089
  }
17145
- ]
17090
+ },
17091
+ "style": "tertiary",
17092
+ "iconOnly": true,
17093
+ "leadingIcon": "trash",
17094
+ "cornerRadius": 22,
17095
+ "minHeight": 44,
17096
+ "disabledPath": "$service:himiStoreCart.writeBusy"
17146
17097
  }
17147
17098
  },
17148
17099
  "modifiers": {
17149
17100
  "width": 44,
17150
17101
  "height": 44,
17151
- "onTap": {
17152
- "actionId": "tier5.himiStoreCart.remove",
17153
- "params": {
17154
- "id": "$item.id"
17155
- }
17156
- },
17157
- "accessibilityRole": "button",
17158
17102
  "accessibilityLabel": "Remove from cart",
17103
+ "accessibilityRole": "button",
17159
17104
  "haptic": "light"
17160
17105
  }
17161
17106
  }
@@ -17404,7 +17349,7 @@ const SCREENS = runtimeSetting({
17404
17349
  "action": {
17405
17350
  "actionId": "tier5.himiStoreCart.applyPromo"
17406
17351
  },
17407
- "disabledPath": "$service:himiStoreCart.promoBusy"
17352
+ "disabledPath": "$service:himiStoreCart.writeBusy"
17408
17353
  }
17409
17354
  },
17410
17355
  "modifiers": {
@@ -17461,7 +17406,8 @@ const SCREENS = runtimeSetting({
17461
17406
  "iconOnly": true,
17462
17407
  "leadingIcon": "close",
17463
17408
  "cornerRadius": 22,
17464
- "minHeight": 44
17409
+ "minHeight": 44,
17410
+ "disabledPath": "$service:himiStoreCart.writeBusy"
17465
17411
  }
17466
17412
  },
17467
17413
  "modifiers": {
@@ -17595,6 +17541,7 @@ const SCREENS = runtimeSetting({
17595
17541
  "title": "Checkout",
17596
17542
  "style": "primary",
17597
17543
  "fullWidth": true,
17544
+ "disabledPath": "$service:himiStoreCart.writeBusy",
17598
17545
  "action": {
17599
17546
  "actionId": "tier5.himiStoreCart.checkout"
17600
17547
  }
@@ -86187,7 +86134,7 @@ const SCREENS = runtimeSetting({
86187
86134
  "package": "himalaya",
86188
86135
  "type": "Text",
86189
86136
  "props": {
86190
- "text": "Loading…",
86137
+ "text": "$t:common.detailLoadingText",
86191
86138
  "style": "body",
86192
86139
  "color": "textSecondary",
86193
86140
  "collapseWhenEmpty": true,
@@ -86279,7 +86226,7 @@ const SCREENS = runtimeSetting({
86279
86226
  "package": "himalaya",
86280
86227
  "type": "Button",
86281
86228
  "props": {
86282
- "title": "Sign in",
86229
+ "title": "$t:account.signInCta",
86283
86230
  "leadingIcon": "person",
86284
86231
  "style": "primary",
86285
86232
  "size": "md",
@@ -86306,7 +86253,7 @@ const SCREENS = runtimeSetting({
86306
86253
  "package": "himalaya",
86307
86254
  "type": "Button",
86308
86255
  "props": {
86309
- "title": "Try again",
86256
+ "title": "$t:common.retryCta",
86310
86257
  "action": {
86311
86258
  "actionId": "tier5.businessChat.init"
86312
86259
  },
@@ -86341,8 +86288,8 @@ const SCREENS = runtimeSetting({
86341
86288
  "package": "himalaya",
86342
86289
  "type": "EmptyState",
86343
86290
  "props": {
86344
- "title": "No messages yet",
86345
- "subtitle": "Send a message to start the conversation.",
86291
+ "title": "$t:businessChat.emptyTitle",
86292
+ "subtitle": "$t:chatThread.emptySubtitle",
86346
86293
  "icon": "chat"
86347
86294
  }
86348
86295
  },
@@ -86967,7 +86914,7 @@ const SCREENS = runtimeSetting({
86967
86914
  "package": "himalaya",
86968
86915
  "type": "Text",
86969
86916
  "props": {
86970
- "text": "Coupon code",
86917
+ "text": "$t:chatThread.couponLabel",
86971
86918
  "style": "caption",
86972
86919
  "color": "textSecondary",
86973
86920
  "collapseWhenEmpty": true,
@@ -87452,6 +87399,37 @@ const SCREENS = runtimeSetting({
87452
87399
  "onAppear": {
87453
87400
  "actionId": "tier5.businessChat.init",
87454
87401
  "params": {
87402
+ "businessChat.emptyTitle": "$t:businessChat.emptyTitle",
87403
+ "businessChat.sending": "$t:businessChat.sending",
87404
+ "businessChat.unconfirmed": "$t:businessChat.unconfirmed",
87405
+ "businessChat.sessionChanged": "$t:businessChat.sessionChanged",
87406
+ "businessChat.hostUnavailable": "$t:businessChat.hostUnavailable",
87407
+ "businessChat.sendFailed": "$t:businessChat.sendFailed",
87408
+ "businessChat.openFailed": "$t:businessChat.openFailed",
87409
+ "businessChat.loadFailed": "$t:businessChat.loadFailed",
87410
+ "businessChat.signInPrompt": "$t:businessChat.signInPrompt",
87411
+ "businessChat.rejected": "$t:businessChat.rejected",
87412
+ "businessChat.checkDelivery": "$t:businessChat.checkDelivery",
87413
+ "businessChat.suggestionSent": "$t:businessChat.suggestionSent",
87414
+ "businessChat.suggestionRejected": "$t:businessChat.suggestionRejected",
87415
+ "businessChat.suggestionUnconfirmed": "$t:businessChat.suggestionUnconfirmed",
87416
+ "businessChat.productImage": "$t:businessChat.productImage",
87417
+ "businessChat.connecting": "$t:businessChat.connecting",
87418
+ "businessChat.reconnecting": "$t:businessChat.reconnecting",
87419
+ "businessChat.liveSessionUnavailable": "$t:businessChat.liveSessionUnavailable",
87420
+ "businessChat.liveHostUnavailable": "$t:businessChat.liveHostUnavailable",
87421
+ "businessChat.liveSetupFailed": "$t:businessChat.liveSetupFailed",
87422
+ "businessChat.liveAuthFailed": "$t:businessChat.liveAuthFailed",
87423
+ "businessChat.liveInterrupted": "$t:businessChat.liveInterrupted",
87424
+ "businessChat.liveUnreadable": "$t:businessChat.liveUnreadable",
87425
+ "businessChat.livePaused": "$t:businessChat.livePaused",
87426
+ "businessChat.liveUnavailable": "$t:businessChat.liveUnavailable",
87427
+ "businessChat.openLink": "$t:businessChat.openLink",
87428
+ "businessChat.today": "$t:businessChat.today",
87429
+ "businessChat.yesterday": "$t:businessChat.yesterday",
87430
+ "businessChat.aiAssistant": "$t:businessChat.aiAssistant",
87431
+ "businessChat.staffResponse": "$t:businessChat.staffResponse",
87432
+ "businessChat.imageAttachment": "$t:businessChat.imageAttachment",
87455
87433
  "displayName": "__HIMI_APP_NAME__",
87456
87434
  "siteUrl": "__HIMI_MEMBER_SITE_URL__",
87457
87435
  "productScreen": "himi_product",
@@ -87709,7 +87687,7 @@ const SCREENS = runtimeSetting({
87709
87687
  "onChange": {
87710
87688
  "actionId": "tier5.businessChat.setDraft"
87711
87689
  },
87712
- "placeholder": "Type your message…",
87690
+ "placeholder": "$t:chatThread.composerPlaceholder",
87713
87691
  "maxLength": 4000,
87714
87692
  "multilineMaxLines": 5,
87715
87693
  "borderless": true
@@ -87718,7 +87696,7 @@ const SCREENS = runtimeSetting({
87718
87696
  "modifiers": {
87719
87697
  "weight": 1,
87720
87698
  "fillMaxWidth": true,
87721
- "accessibilityLabel": "Type your message",
87699
+ "accessibilityLabel": "$t:chatThread.composerLabel",
87722
87700
  "padding": {
87723
87701
  "leading": 12,
87724
87702
  "trailing": 10,
@@ -87785,7 +87763,7 @@ const SCREENS = runtimeSetting({
87785
87763
  "background": {
87786
87764
  "token": "accentPrimary"
87787
87765
  },
87788
- "accessibilityLabel": "Send",
87766
+ "accessibilityLabel": "$t:chatThread.sendCta",
87789
87767
  "onTap": {
87790
87768
  "actionId": "tier5.businessChat.send"
87791
87769
  },
@@ -104655,15 +104633,31 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
104655
104633
 
104656
104634
  // Live seed-id enumeration: a published release serves only EXACT screens, so
104657
104635
  // `himi push` bakes each templated detail route's CURRENT catalog ids as exact
104658
- // screens via `seedIds`. Anonymous visitor rung against this app's own clientId;
104659
- // best-effort (offline build → no baked details, preview still live-resolves).
104636
+ // screens via `seedIds`. Anonymous visitor rung against this app's own clientId — or,
104637
+ // for an app bound through the One App visitor identity (`visitorSource: "one-app"`,
104638
+ // no client), that site's One App visitor instance. Best-effort (offline build → no
104639
+ // baked details, preview still live-resolves).
104640
+ async function liveSeedToken(WIX: string): Promise<string | undefined> {
104641
+ const auth = (config as { auth?: { config?: { clientId?: string; visitorSource?: string; metaSiteId?: string } } }).auth?.config;
104642
+ // A One App binding boots as the site's One App visitor, so the seed reads as that visitor too —
104643
+ // even beside a member-login clientId, and never repointed by a stray local WIX_CLIENT_ID.
104644
+ const oneApp = auth?.visitorSource === "one-app";
104645
+ const clientId = oneApp ? "" : process.env.WIX_CLIENT_ID ?? auth?.clientId ?? "";
104646
+ if (clientId && !clientId.startsWith("YOUR_")) {
104647
+ const mint = await fetch(WIX + "/oauth2/token", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ clientId, grantType: "anonymous" }) });
104648
+ return ((await mint.json()) as { access_token?: string }).access_token;
104649
+ }
104650
+ const msid = oneApp ? auth?.metaSiteId ?? "" : "";
104651
+ if (!/^[0-9a-fA-F-]{10,64}$/.test(msid)) return undefined;
104652
+ const mint = await fetch(`https://apps.wix.com/_api/one-app-session-web/v3/businesses/${msid}/signed-instance?signed_instance_type=Visitor`, { headers: { Accept: "application/json" }, redirect: "error" });
104653
+ const visitor = (await mint.json()) as { signedInstance?: string; signedInstanceType?: string };
104654
+ return visitor.signedInstanceType === "Visitor" ? visitor.signedInstance : undefined;
104655
+ }
104656
+
104660
104657
  async function liveSeedIds(spec: LiveSeed): Promise<string[]> {
104661
104658
  try {
104662
104659
  const WIX = "https://www.wixapis.com";
104663
- const clientId = process.env.WIX_CLIENT_ID ?? (config as { auth?: { config?: { clientId?: string } } }).auth?.config?.clientId ?? "";
104664
- if (!clientId || clientId.startsWith("YOUR_")) return [];
104665
- const mint = await fetch(WIX + "/oauth2/token", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ clientId, grantType: "anonymous" }) });
104666
- const token = ((await mint.json()) as { access_token?: string }).access_token;
104660
+ const token = await liveSeedToken(WIX);
104667
104661
  if (!token) return [];
104668
104662
  const res = await fetch(WIX + spec.path, { method: "POST", headers: { Authorization: token, "Content-Type": "application/json" }, body: JSON.stringify(spec.body) });
104669
104663
  const json = (await res.json()) as Record<string, unknown>;