@wix/himalaya-cli 0.1538.0 → 0.1540.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 (151) hide show
  1. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/builder.d.ts +5 -0
  2. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/sdk/state/src/index.d.ts +7 -0
  3. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/schema.d.ts +7 -0
  4. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/wix-sdk/stores-v1/src/display.d.ts +4 -0
  5. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/state.mjs +23 -0
  6. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-events.mjs +1 -0
  7. package/dist/cli.mjs +2184 -1825
  8. package/dist/preview-assets.generated.bin +0 -0
  9. package/guides/component-reference.json +29 -42
  10. package/guides/component-reference.md +67 -14
  11. package/guides/dynamic-list.service.ts +7 -1
  12. package/guides/form-submit.service.ts +7 -1
  13. package/guides/himi-json-output.md +7 -0
  14. package/guides/index.json +2 -2
  15. package/guides/recipe-four-state.md +10 -1
  16. package/guides/recipe-search.md +9 -7
  17. package/guides/release-notes.md +17 -0
  18. package/guides/sdk-reference.json +966 -46
  19. package/guides/search-list.service.ts +7 -1
  20. package/guides/templates.md +19 -0
  21. package/package.json +2 -2
  22. package/stdlib/design-kits/dark-luxe.json +4 -0
  23. package/templates/beauty-salon/dev/index.ts +5021 -4164
  24. package/templates/beauty-salon/tier5-src/_shared/collection-contract.ts +9 -3
  25. package/templates/beauty-salon/tier5-src/_shared/collection-service.ts +6 -3
  26. package/templates/beauty-salon/tier5-src/_shared/engine-intl.ts +5 -2
  27. package/templates/beauty-salon/tier5-src/_shared/himi-store-categories.ts +18 -12
  28. package/templates/beauty-salon/tier5-src/_shared/store-order-presentation.ts +56 -0
  29. package/templates/beauty-salon/tier5-src/_shared/wix-service-price.ts +4 -2
  30. package/templates/beauty-salon/tier5-src/himi-branded-lite-category/index.ts +196 -0
  31. package/templates/beauty-salon/tier5-src/himi-branded-lite-order/index.ts +29 -6
  32. package/templates/beauty-salon/tier5-src/himi-branded-lite-orders/index.ts +58 -5
  33. package/templates/beauty-salon/tier5-src/wix-spaces-collections/index.ts +37 -88
  34. package/templates/beauty-salon-owner/tier5-src/_shared/collection-contract.ts +9 -3
  35. package/templates/beauty-salon-owner/tier5-src/_shared/collection-service.ts +6 -3
  36. package/templates/beauty-salon-owner/tier5-src/_shared/engine-intl.ts +5 -2
  37. package/templates/branded-lite/dev/index.ts +4933 -4079
  38. package/templates/branded-lite/tier5-src/_shared/collection-contract.ts +9 -3
  39. package/templates/branded-lite/tier5-src/_shared/collection-service.ts +6 -3
  40. package/templates/branded-lite/tier5-src/_shared/engine-intl.ts +5 -2
  41. package/templates/branded-lite/tier5-src/_shared/himi-store-categories.ts +18 -12
  42. package/templates/branded-lite/tier5-src/_shared/store-order-presentation.ts +56 -0
  43. package/templates/branded-lite/tier5-src/_shared/wix-service-price.ts +4 -2
  44. package/templates/branded-lite/tier5-src/himi-branded-lite-category/index.ts +196 -0
  45. package/templates/branded-lite/tier5-src/himi-branded-lite-order/index.ts +29 -6
  46. package/templates/branded-lite/tier5-src/himi-branded-lite-orders/index.ts +58 -5
  47. package/templates/branded-lite/tier5-src/wix-spaces-collections/index.ts +37 -88
  48. package/templates/branded-lite/tokens.json +1 -1
  49. package/templates/brandy/tokens.json +1 -1
  50. package/templates/community-club/tier5-src/_shared/collection-contract.ts +9 -3
  51. package/templates/community-club/tier5-src/_shared/collection-service.ts +6 -3
  52. package/templates/community-club/tier5-src/_shared/engine-intl.ts +5 -2
  53. package/templates/community-club/tier5-src/_shared/himi-store-categories.ts +18 -12
  54. package/templates/community-club/tier5-src/_shared/wix-service-price.ts +4 -2
  55. package/templates/community-club-owner/tier5-src/_shared/collection-contract.ts +9 -3
  56. package/templates/community-club-owner/tier5-src/_shared/collection-service.ts +6 -3
  57. package/templates/community-club-owner/tier5-src/_shared/engine-intl.ts +5 -2
  58. package/templates/events-meetups/tier5-src/_shared/collection-contract.ts +9 -3
  59. package/templates/events-meetups/tier5-src/_shared/collection-service.ts +6 -3
  60. package/templates/events-meetups/tier5-src/_shared/engine-intl.ts +5 -2
  61. package/templates/events-meetups/tier5-src/_shared/himi-store-categories.ts +18 -12
  62. package/templates/events-meetups/tier5-src/_shared/wix-service-price.ts +4 -2
  63. package/templates/events-meetups-owner/tier5-src/_shared/collection-contract.ts +9 -3
  64. package/templates/events-meetups-owner/tier5-src/_shared/collection-service.ts +6 -3
  65. package/templates/events-meetups-owner/tier5-src/_shared/engine-intl.ts +5 -2
  66. package/templates/gym-fitness/dev/index.ts +5018 -4161
  67. package/templates/gym-fitness/tier5-src/_shared/collection-contract.ts +9 -3
  68. package/templates/gym-fitness/tier5-src/_shared/collection-service.ts +6 -3
  69. package/templates/gym-fitness/tier5-src/_shared/engine-intl.ts +5 -2
  70. package/templates/gym-fitness/tier5-src/_shared/himi-store-categories.ts +18 -12
  71. package/templates/gym-fitness/tier5-src/_shared/store-order-presentation.ts +56 -0
  72. package/templates/gym-fitness/tier5-src/_shared/wix-service-price.ts +4 -2
  73. package/templates/gym-fitness/tier5-src/himi-branded-lite-category/index.ts +196 -0
  74. package/templates/gym-fitness/tier5-src/himi-branded-lite-order/index.ts +29 -6
  75. package/templates/gym-fitness/tier5-src/himi-branded-lite-orders/index.ts +58 -5
  76. package/templates/gym-fitness/tier5-src/wix-spaces-collections/index.ts +37 -88
  77. package/templates/gym-fitness-owner/tier5-src/_shared/collection-contract.ts +9 -3
  78. package/templates/gym-fitness-owner/tier5-src/_shared/collection-service.ts +6 -3
  79. package/templates/gym-fitness-owner/tier5-src/_shared/engine-intl.ts +5 -2
  80. package/templates/nonprofit-cause/tier5-src/_shared/collection-contract.ts +9 -3
  81. package/templates/nonprofit-cause/tier5-src/_shared/collection-service.ts +6 -3
  82. package/templates/nonprofit-cause/tier5-src/_shared/engine-intl.ts +5 -2
  83. package/templates/nonprofit-cause/tier5-src/_shared/himi-store-categories.ts +18 -12
  84. package/templates/nonprofit-cause/tier5-src/_shared/wix-service-price.ts +4 -2
  85. package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-contract.ts +9 -3
  86. package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-service.ts +6 -3
  87. package/templates/nonprofit-cause-owner/tier5-src/_shared/engine-intl.ts +5 -2
  88. package/templates/owner-lite/tier5-src/_shared/collection-contract.ts +9 -3
  89. package/templates/owner-lite/tier5-src/_shared/collection-service.ts +6 -3
  90. package/templates/owner-lite/tier5-src/_shared/engine-intl.ts +5 -2
  91. package/templates/podcast-creator/tier5-src/_shared/collection-contract.ts +9 -3
  92. package/templates/podcast-creator/tier5-src/_shared/collection-service.ts +6 -3
  93. package/templates/podcast-creator/tier5-src/_shared/engine-intl.ts +5 -2
  94. package/templates/podcast-creator/tier5-src/_shared/himi-store-categories.ts +18 -12
  95. package/templates/podcast-creator/tier5-src/_shared/wix-service-price.ts +4 -2
  96. package/templates/podcast-creator/tokens.json +4 -4
  97. package/templates/podcast-creator-owner/tier5-src/_shared/collection-contract.ts +9 -3
  98. package/templates/podcast-creator-owner/tier5-src/_shared/collection-service.ts +6 -3
  99. package/templates/podcast-creator-owner/tier5-src/_shared/engine-intl.ts +5 -2
  100. package/templates/podcast-creator-owner/tokens.json +4 -4
  101. package/templates/portfolio-creative/dev/index.ts +5017 -4157
  102. package/templates/portfolio-creative/tier5-src/_shared/collection-contract.ts +9 -3
  103. package/templates/portfolio-creative/tier5-src/_shared/collection-service.ts +6 -3
  104. package/templates/portfolio-creative/tier5-src/_shared/engine-intl.ts +5 -2
  105. package/templates/portfolio-creative/tier5-src/_shared/himi-store-categories.ts +18 -12
  106. package/templates/portfolio-creative/tier5-src/_shared/store-order-presentation.ts +56 -0
  107. package/templates/portfolio-creative/tier5-src/_shared/wix-service-price.ts +4 -2
  108. package/templates/portfolio-creative/tier5-src/himi-branded-lite-category/index.ts +196 -0
  109. package/templates/portfolio-creative/tier5-src/himi-branded-lite-order/index.ts +29 -6
  110. package/templates/portfolio-creative/tier5-src/himi-branded-lite-orders/index.ts +58 -5
  111. package/templates/portfolio-creative/tier5-src/wix-spaces-collections/index.ts +37 -88
  112. package/templates/portfolio-creative-owner/tier5-src/_shared/collection-contract.ts +9 -3
  113. package/templates/portfolio-creative-owner/tier5-src/_shared/collection-service.ts +6 -3
  114. package/templates/portfolio-creative-owner/tier5-src/_shared/engine-intl.ts +5 -2
  115. package/templates/restaurant/tier5-src/_shared/collection-contract.ts +9 -3
  116. package/templates/restaurant/tier5-src/_shared/collection-service.ts +6 -3
  117. package/templates/restaurant/tier5-src/_shared/engine-intl.ts +5 -2
  118. package/templates/restaurant/tier5-src/_shared/himi-store-categories.ts +18 -12
  119. package/templates/restaurant/tier5-src/_shared/wix-service-price.ts +4 -2
  120. package/templates/restaurant/tokens.json +4 -4
  121. package/templates/restaurant-owner/tier5-src/_shared/collection-contract.ts +9 -3
  122. package/templates/restaurant-owner/tier5-src/_shared/collection-service.ts +6 -3
  123. package/templates/restaurant-owner/tier5-src/_shared/engine-intl.ts +5 -2
  124. package/templates/retail-store/dev/index.ts +5159 -4302
  125. package/templates/retail-store/tier5-src/_shared/collection-contract.ts +9 -3
  126. package/templates/retail-store/tier5-src/_shared/collection-service.ts +6 -3
  127. package/templates/retail-store/tier5-src/_shared/engine-intl.ts +5 -2
  128. package/templates/retail-store/tier5-src/_shared/himi-store-categories.ts +18 -12
  129. package/templates/retail-store/tier5-src/_shared/store-order-presentation.ts +56 -0
  130. package/templates/retail-store/tier5-src/_shared/wix-service-price.ts +4 -2
  131. package/templates/retail-store/tier5-src/himi-branded-lite-category/index.ts +196 -0
  132. package/templates/retail-store/tier5-src/himi-branded-lite-order/index.ts +29 -6
  133. package/templates/retail-store/tier5-src/himi-branded-lite-orders/index.ts +58 -5
  134. package/templates/retail-store/tier5-src/wix-spaces-collections/index.ts +37 -88
  135. package/templates/retail-store-owner/tier5-src/_shared/collection-contract.ts +9 -3
  136. package/templates/retail-store-owner/tier5-src/_shared/collection-service.ts +6 -3
  137. package/templates/retail-store-owner/tier5-src/_shared/engine-intl.ts +5 -2
  138. package/templates/yoga-studio/dev/index.ts +0 -3
  139. package/templates/yoga-studio/tier5-src/_shared/collection-contract.ts +9 -3
  140. package/templates/yoga-studio/tier5-src/_shared/collection-service.ts +6 -3
  141. package/templates/yoga-studio/tier5-src/_shared/engine-intl.ts +5 -2
  142. package/templates/yoga-studio/tier5-src/_shared/himi-store-categories.ts +18 -12
  143. package/templates/yoga-studio/tier5-src/_shared/wix-service-price.ts +4 -2
  144. package/templates/yoga-studio-owner/tier5-src/_shared/collection-contract.ts +9 -3
  145. package/templates/yoga-studio-owner/tier5-src/_shared/collection-service.ts +6 -3
  146. package/templates/yoga-studio-owner/tier5-src/_shared/engine-intl.ts +5 -2
  147. package/templates/beauty-salon/tier5-src/wix-spaces-collection-detail/index.ts +0 -170
  148. package/templates/branded-lite/tier5-src/wix-spaces-collection-detail/index.ts +0 -170
  149. package/templates/gym-fitness/tier5-src/wix-spaces-collection-detail/index.ts +0 -170
  150. package/templates/portfolio-creative/tier5-src/wix-spaces-collection-detail/index.ts +0 -170
  151. package/templates/retail-store/tier5-src/wix-spaces-collection-detail/index.ts +0 -170
@@ -674,6 +674,8 @@ export interface TextFieldShape {
674
674
  errorPath?: string;
675
675
  /** Literal error, for a server-rendered screen with no worker to bind. */
676
676
  errorText?: string;
677
+ /** `onChange` fires after this many ms of idle typing; 0 or unset = every change. */
678
+ debounceMs?: number;
677
679
  }
678
680
  export declare function form(props: {
679
681
  id: string;
@@ -853,7 +855,10 @@ export declare function searchField(props: {
853
855
  value?: string;
854
856
  onChange?: ActionShape;
855
857
  onSubmit?: ActionShape;
858
+ /** 0 or less (or unset) = 250 ms. */
856
859
  debounceMs?: number;
860
+ /** "$service:" binding → a focus TOKEN (`textField` `focusPath` semantics). */
861
+ focusPath?: string;
857
862
  }, opts?: {
858
863
  id?: string;
859
864
  }): Component;
@@ -300,4 +300,11 @@ export declare const app: {
300
300
  dispatch(action: string, args?: unknown): Promise<unknown>;
301
301
  };
302
302
  export { validate, isValid as isValidValue, validators, validateAll, type ValidationFailure, type ValidationFailureRule, } from "@wix/himalaya/core/validation";
303
+ export type LoadErrorKind = "offline" | "server" | "permission" | "signIn" | "membership";
304
+ /**
305
+ * Classify a failed load. `authState` is what the app knows about the session: a 401 or
306
+ * 403 means "sign in" or "no permission" depending on it. Anything unrecognised is
307
+ * `"server"` — a bug or a malformed row is not the user's connection.
308
+ */
309
+ export declare function classifyLoadError(e: unknown, authState?: "signedIn" | "signedOut" | "unknown"): LoadErrorKind;
303
310
  export { connectivity, requireConnectivity } from './connectivity.js';
@@ -863,6 +863,9 @@ export interface TextFieldProps {
863
863
  errorText?: string;
864
864
  /** Opt-in accessible show/hide button. Only applies to secure fields; initially masked. */
865
865
  visibilityToggle?: boolean;
866
+ /** `onChange` fires after this many ms of idle typing. 0 or unset = every change.
867
+ * A submit fires a pending debounced `onChange` first (RFC 0010 "Native top-bar search"). */
868
+ debounceMs?: number;
866
869
  }
867
870
  export interface ToggleProps {
868
871
  label?: string;
@@ -1194,7 +1197,11 @@ export interface SearchFieldProps {
1194
1197
  value?: string;
1195
1198
  onChange?: Action;
1196
1199
  onSubmit?: Action;
1200
+ /** `onChange` fires after this many ms of idle typing; 0 or less (or unset) = 250 ms.
1201
+ * A submit fires a pending debounced `onChange` first. */
1197
1202
  debounceMs?: number;
1203
+ /** `$service:` binding → a focus TOKEN; `TextFieldProps.focusPath` semantics. */
1204
+ focusPath?: string;
1198
1205
  }
1199
1206
  export interface FilterChip {
1200
1207
  id: string;
@@ -27,6 +27,10 @@ export declare function mediaSlotUrl(value: WixMediaSlot | undefined, size?: Wix
27
27
  export interface StoreProduct {
28
28
  id?: string;
29
29
  productType?: string;
30
+ inventory?: {
31
+ availabilityStatus?: string;
32
+ preorderStatus?: string;
33
+ };
30
34
  name?: string;
31
35
  slug?: string;
32
36
  description?: string;
@@ -338,8 +338,31 @@ var app = {
338
338
  return Promise.resolve().then(() => checkAppTarget("action", action)).then((a) => callAppBridge("__himalaya_app_dispatch", `app.dispatch("${a}")`, [a, argsJson]));
339
339
  }
340
340
  };
341
+ var LOAD_STATUS = /\b(?:HTTP|Wix) (\d{3})\b/;
342
+ var LOAD_TRANSPORT = /(?:UnknownHost|Connect|NoRouteToHost|SSLHandshake)Exception|Unable to resolve host|Connection (?:refused|reset)|Network is unreachable|Software caused connection abort|ECONNRESET|EPIPE|Broken pipe|stream was reset|unexpected end of stream|Failed to fetch|NetworkError|^(?:TypeError: )?Load failed$|net::ERR_|^[a-z0-9-]+(?:\.[a-z0-9-]+)+$/i;
343
+ var LOAD_SIGNED_OUT = /wixApi not enabled|session unavailable|PRINCIPAL_CHANGED|not signed in|siteNotPermitted\(requested: "account"|site account is not the bound site|webwix_owner_no_session/i;
344
+ var LOAD_NOT_MEMBER = /\bNotSiteMember\b|\bnot a member of site\b/i;
345
+ var LOAD_URL_ERROR = /NSURLErrorDomain\D*?(-?\d{3,5})/;
346
+ var LOAD_URL_OFFLINE = /* @__PURE__ */ new Set([-1009, -1005, -1004, -1003, -1006, -1020]);
347
+ function classifyLoadError(e, authState = "unknown") {
348
+ const msg = String(e?.message ?? e ?? "");
349
+ const code = String(e?.code ?? /"(?:code|error)"\s*:\s*"([^"]+)"/.exec(msg)?.[1] ?? "");
350
+ const status = Number(LOAD_STATUS.exec(msg)?.[1] ?? 0);
351
+ if (code === "AccountSessionExpired" || code === "webwix_account_signed_out" || LOAD_SIGNED_OUT.test(msg)) return "signIn";
352
+ if (code === "NotSiteMember" || LOAD_NOT_MEMBER.test(msg)) return "membership";
353
+ if (status === 401) return authState === "signedIn" ? "permission" : "signIn";
354
+ if (status === 403) return authState === "signedOut" ? "signIn" : "permission";
355
+ if (code === "offline_write_blocked") return "offline";
356
+ const detail = msg.includes("webwix_direct_failed") ? /"detail"\s*:\s*"([^"]+)"/.exec(msg)?.[1] ?? msg : msg;
357
+ if (status && detail === msg) return "server";
358
+ const urlCode = LOAD_URL_ERROR.exec(detail)?.[1];
359
+ if (urlCode !== void 0) return LOAD_URL_OFFLINE.has(Number(urlCode)) ? "offline" : "server";
360
+ if (LOAD_TRANSPORT.test(detail)) return "offline";
361
+ return "server";
362
+ }
341
363
  export {
342
364
  app,
365
+ classifyLoadError,
343
366
  connectivity,
344
367
  defineService,
345
368
  encodeSubtree,
@@ -130,6 +130,7 @@ function mapSearchQuery(value) {
130
130
  }
131
131
  function eventMapUrl(e) {
132
132
  const loc = e.location;
133
+ if (loc?.type === "ONLINE") return "";
133
134
  const geo = loc?.coordinates ?? loc?.location;
134
135
  const lat = geo?.latitude ?? geo?.lat;
135
136
  const lng = geo?.longitude ?? geo?.lng;