@wix/himalaya-cli 0.1035.0 → 0.1036.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 (234) hide show
  1. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/builder.d.ts +7 -1
  2. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/wix-sdk/events/src/display.d.ts +13 -1
  3. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-events.mjs +28 -6
  4. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-stores-collections.mjs +1 -1
  5. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-stores.mjs +7 -1
  6. package/dist/cli.mjs +23 -21
  7. package/dist/preview-assets.generated.bin +0 -0
  8. package/guides/sdk-reference.json +16 -4
  9. package/package.json +2 -2
  10. package/templates/beauty-salon/dev/index.ts +72 -175
  11. package/templates/beauty-salon/tier5-src/_shared/collection-contract.ts +16 -9
  12. package/templates/beauty-salon/tier5-src/_shared/collection-service.ts +19 -5
  13. package/templates/beauty-salon/tier5-src/_shared/engine-intl.ts +51 -0
  14. package/templates/beauty-salon/tier5-src/_shared/himi-restaurants.ts +4 -4
  15. package/templates/beauty-salon/tier5-src/_shared/owner-load-error.ts +49 -0
  16. package/templates/beauty-salon/tier5-src/_shared/wix-service-price.ts +1 -1
  17. package/templates/beauty-salon/tier5-src/himi-branded-lite-info/index.ts +5 -2
  18. package/templates/beauty-salon/tier5-src/himi-branded-lite-plans/index.ts +1 -1
  19. package/templates/beauty-salon/tier5-src/wix-spaces-collections/index.ts +1 -1
  20. package/templates/beauty-salon/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  21. package/templates/beauty-salon-owner/dev/index.ts +84 -599
  22. package/templates/beauty-salon-owner/tier5-src/_shared/aria-chat.ts +22 -6
  23. package/templates/beauty-salon-owner/tier5-src/_shared/collection-contract.ts +16 -9
  24. package/templates/beauty-salon-owner/tier5-src/_shared/collection-service.ts +19 -5
  25. package/templates/beauty-salon-owner/tier5-src/_shared/engine-intl.ts +51 -0
  26. package/templates/beauty-salon-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  27. package/templates/branded-lite/dev/index.ts +178 -264
  28. package/templates/branded-lite/tier5-src/_shared/collection-contract.ts +16 -9
  29. package/templates/branded-lite/tier5-src/_shared/collection-service.ts +19 -5
  30. package/templates/branded-lite/tier5-src/_shared/engine-intl.ts +51 -0
  31. package/templates/branded-lite/tier5-src/_shared/himi-restaurants.ts +4 -4
  32. package/templates/branded-lite/tier5-src/_shared/owner-load-error.ts +49 -0
  33. package/templates/branded-lite/tier5-src/_shared/wix-service-price.ts +1 -1
  34. package/templates/branded-lite/tier5-src/himi-branded-lite-cms/index.ts +5 -5
  35. package/templates/branded-lite/tier5-src/himi-branded-lite-coupons/index.ts +33 -7
  36. package/templates/branded-lite/tier5-src/himi-branded-lite-donations/index.ts +3 -3
  37. package/templates/branded-lite/tier5-src/himi-branded-lite-forms/index.ts +11 -10
  38. package/templates/branded-lite/tier5-src/himi-branded-lite-giftcards/index.ts +3 -3
  39. package/templates/branded-lite/tier5-src/himi-branded-lite-info/index.ts +5 -2
  40. package/templates/branded-lite/tier5-src/himi-branded-lite-invoices/index.ts +3 -3
  41. package/templates/branded-lite/tier5-src/himi-branded-lite-loyalty/index.ts +1 -1
  42. package/templates/branded-lite/tier5-src/himi-branded-lite-plans/index.ts +1 -1
  43. package/templates/branded-lite/tier5-src/himi-branded-lite-program/index.ts +1 -1
  44. package/templates/branded-lite/tier5-src/himi-branded-lite-reserve/index.ts +5 -3
  45. package/templates/branded-lite/tier5-src/himi-events-detail/index.ts +1 -1
  46. package/templates/branded-lite/tier5-src/himi-events-list/index.ts +20 -4
  47. package/templates/branded-lite/tier5-src/himi-events-my-events/index.ts +2 -2
  48. package/templates/branded-lite/tier5-src/wix-spaces-collections/index.ts +1 -1
  49. package/templates/branded-lite/tier5-src/wix-spaces-forum/index.ts +7 -1
  50. package/templates/branded-lite/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  51. package/templates/community-club/dev/index.ts +62 -81
  52. package/templates/community-club/tier5-src/_shared/collection-contract.ts +16 -9
  53. package/templates/community-club/tier5-src/_shared/collection-service.ts +19 -5
  54. package/templates/community-club/tier5-src/_shared/engine-intl.ts +51 -0
  55. package/templates/community-club/tier5-src/_shared/himi-restaurants.ts +4 -4
  56. package/templates/community-club/tier5-src/_shared/owner-load-error.ts +49 -0
  57. package/templates/community-club/tier5-src/_shared/wix-service-price.ts +1 -1
  58. package/templates/community-club/tier5-src/himi-branded-lite-cms/index.ts +5 -5
  59. package/templates/community-club/tier5-src/himi-branded-lite-info/index.ts +5 -2
  60. package/templates/community-club/tier5-src/himi-events-detail/index.ts +1 -1
  61. package/templates/community-club/tier5-src/himi-events-list/index.ts +20 -4
  62. package/templates/community-club/tier5-src/himi-events-my-events/index.ts +2 -2
  63. package/templates/community-club/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  64. package/templates/community-club-owner/dev/index.ts +84 -599
  65. package/templates/community-club-owner/tier5-src/_shared/aria-chat.ts +22 -6
  66. package/templates/community-club-owner/tier5-src/_shared/collection-contract.ts +16 -9
  67. package/templates/community-club-owner/tier5-src/_shared/collection-service.ts +19 -5
  68. package/templates/community-club-owner/tier5-src/_shared/engine-intl.ts +51 -0
  69. package/templates/community-club-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  70. package/templates/community-club-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
  71. package/templates/events-meetups/dev/index.ts +60 -79
  72. package/templates/events-meetups/tier5-src/_shared/collection-contract.ts +16 -9
  73. package/templates/events-meetups/tier5-src/_shared/collection-service.ts +19 -5
  74. package/templates/events-meetups/tier5-src/_shared/engine-intl.ts +51 -0
  75. package/templates/events-meetups/tier5-src/_shared/himi-restaurants.ts +4 -4
  76. package/templates/events-meetups/tier5-src/_shared/owner-load-error.ts +49 -0
  77. package/templates/events-meetups/tier5-src/_shared/wix-service-price.ts +1 -1
  78. package/templates/events-meetups/tier5-src/himi-branded-lite-info/index.ts +5 -2
  79. package/templates/events-meetups/tier5-src/himi-events-detail/index.ts +1 -1
  80. package/templates/events-meetups/tier5-src/himi-events-list/index.ts +20 -4
  81. package/templates/events-meetups/tier5-src/himi-events-my-events/index.ts +2 -2
  82. package/templates/events-meetups/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  83. package/templates/events-meetups-owner/dev/index.ts +84 -543
  84. package/templates/events-meetups-owner/tier5-src/_shared/aria-chat.ts +22 -6
  85. package/templates/events-meetups-owner/tier5-src/_shared/collection-contract.ts +16 -9
  86. package/templates/events-meetups-owner/tier5-src/_shared/collection-service.ts +19 -5
  87. package/templates/events-meetups-owner/tier5-src/_shared/engine-intl.ts +51 -0
  88. package/templates/events-meetups-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  89. package/templates/events-meetups-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
  90. package/templates/gym-fitness/dev/index.ts +73 -204
  91. package/templates/gym-fitness/tier5-src/_shared/collection-contract.ts +16 -9
  92. package/templates/gym-fitness/tier5-src/_shared/collection-service.ts +19 -5
  93. package/templates/gym-fitness/tier5-src/_shared/engine-intl.ts +51 -0
  94. package/templates/gym-fitness/tier5-src/_shared/himi-restaurants.ts +4 -4
  95. package/templates/gym-fitness/tier5-src/_shared/owner-load-error.ts +49 -0
  96. package/templates/gym-fitness/tier5-src/_shared/wix-service-price.ts +1 -1
  97. package/templates/gym-fitness/tier5-src/himi-branded-lite-info/index.ts +5 -2
  98. package/templates/gym-fitness/tier5-src/himi-branded-lite-plans/index.ts +1 -1
  99. package/templates/gym-fitness/tier5-src/himi-events-detail/index.ts +1 -1
  100. package/templates/gym-fitness/tier5-src/himi-events-list/index.ts +20 -4
  101. package/templates/gym-fitness/tier5-src/himi-events-my-events/index.ts +2 -2
  102. package/templates/gym-fitness/tier5-src/wix-spaces-collections/index.ts +1 -1
  103. package/templates/gym-fitness/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  104. package/templates/gym-fitness-owner/dev/index.ts +84 -627
  105. package/templates/gym-fitness-owner/tier5-src/_shared/aria-chat.ts +22 -6
  106. package/templates/gym-fitness-owner/tier5-src/_shared/collection-contract.ts +16 -9
  107. package/templates/gym-fitness-owner/tier5-src/_shared/collection-service.ts +19 -5
  108. package/templates/gym-fitness-owner/tier5-src/_shared/engine-intl.ts +51 -0
  109. package/templates/gym-fitness-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  110. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
  111. package/templates/himi-chat/tier5-src/_shared/owner-load-error.ts +49 -0
  112. package/templates/nonprofit-cause/dev/index.ts +71 -90
  113. package/templates/nonprofit-cause/tier5-src/_shared/collection-contract.ts +16 -9
  114. package/templates/nonprofit-cause/tier5-src/_shared/collection-service.ts +19 -5
  115. package/templates/nonprofit-cause/tier5-src/_shared/engine-intl.ts +51 -0
  116. package/templates/nonprofit-cause/tier5-src/_shared/himi-restaurants.ts +4 -4
  117. package/templates/nonprofit-cause/tier5-src/_shared/owner-load-error.ts +49 -0
  118. package/templates/nonprofit-cause/tier5-src/_shared/wix-service-price.ts +1 -1
  119. package/templates/nonprofit-cause/tier5-src/himi-branded-lite-info/index.ts +5 -2
  120. package/templates/nonprofit-cause/tier5-src/himi-branded-lite-plans/index.ts +1 -1
  121. package/templates/nonprofit-cause/tier5-src/himi-events-detail/index.ts +1 -1
  122. package/templates/nonprofit-cause/tier5-src/himi-events-list/index.ts +20 -4
  123. package/templates/nonprofit-cause/tier5-src/himi-events-my-events/index.ts +2 -2
  124. package/templates/nonprofit-cause/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  125. package/templates/nonprofit-cause-owner/dev/index.ts +84 -571
  126. package/templates/nonprofit-cause-owner/tier5-src/_shared/aria-chat.ts +22 -6
  127. package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-contract.ts +16 -9
  128. package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-service.ts +19 -5
  129. package/templates/nonprofit-cause-owner/tier5-src/_shared/engine-intl.ts +51 -0
  130. package/templates/nonprofit-cause-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  131. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
  132. package/templates/owner-lite/dev/index.ts +84 -627
  133. package/templates/owner-lite/tier5-src/_shared/aria-chat.ts +22 -6
  134. package/templates/owner-lite/tier5-src/_shared/collection-contract.ts +16 -9
  135. package/templates/owner-lite/tier5-src/_shared/collection-service.ts +19 -5
  136. package/templates/owner-lite/tier5-src/_shared/engine-intl.ts +51 -0
  137. package/templates/owner-lite/tier5-src/_shared/owner-load-error.ts +49 -0
  138. package/templates/owner-lite/tier5-src/himi-owner-lite-events/index.ts +1 -0
  139. package/templates/podcast-creator/dev/index.ts +71 -90
  140. package/templates/podcast-creator/tier5-src/_shared/collection-contract.ts +16 -9
  141. package/templates/podcast-creator/tier5-src/_shared/collection-service.ts +19 -5
  142. package/templates/podcast-creator/tier5-src/_shared/engine-intl.ts +51 -0
  143. package/templates/podcast-creator/tier5-src/_shared/himi-restaurants.ts +4 -4
  144. package/templates/podcast-creator/tier5-src/_shared/owner-load-error.ts +49 -0
  145. package/templates/podcast-creator/tier5-src/_shared/wix-service-price.ts +1 -1
  146. package/templates/podcast-creator/tier5-src/himi-branded-lite-info/index.ts +5 -2
  147. package/templates/podcast-creator/tier5-src/himi-branded-lite-plans/index.ts +1 -1
  148. package/templates/podcast-creator/tier5-src/himi-events-detail/index.ts +1 -1
  149. package/templates/podcast-creator/tier5-src/himi-events-list/index.ts +20 -4
  150. package/templates/podcast-creator/tier5-src/himi-events-my-events/index.ts +2 -2
  151. package/templates/podcast-creator/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  152. package/templates/podcast-creator-owner/dev/index.ts +84 -599
  153. package/templates/podcast-creator-owner/tier5-src/_shared/aria-chat.ts +22 -6
  154. package/templates/podcast-creator-owner/tier5-src/_shared/collection-contract.ts +16 -9
  155. package/templates/podcast-creator-owner/tier5-src/_shared/collection-service.ts +19 -5
  156. package/templates/podcast-creator-owner/tier5-src/_shared/engine-intl.ts +51 -0
  157. package/templates/podcast-creator-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  158. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
  159. package/templates/portfolio-creative/dev/index.ts +62 -137
  160. package/templates/portfolio-creative/tier5-src/_shared/collection-contract.ts +16 -9
  161. package/templates/portfolio-creative/tier5-src/_shared/collection-service.ts +19 -5
  162. package/templates/portfolio-creative/tier5-src/_shared/engine-intl.ts +51 -0
  163. package/templates/portfolio-creative/tier5-src/_shared/himi-restaurants.ts +4 -4
  164. package/templates/portfolio-creative/tier5-src/_shared/owner-load-error.ts +49 -0
  165. package/templates/portfolio-creative/tier5-src/_shared/wix-service-price.ts +1 -1
  166. package/templates/portfolio-creative/tier5-src/himi-branded-lite-info/index.ts +5 -2
  167. package/templates/portfolio-creative/tier5-src/himi-events-detail/index.ts +1 -1
  168. package/templates/portfolio-creative/tier5-src/himi-events-list/index.ts +20 -4
  169. package/templates/portfolio-creative/tier5-src/himi-events-my-events/index.ts +2 -2
  170. package/templates/portfolio-creative/tier5-src/wix-spaces-collections/index.ts +1 -1
  171. package/templates/portfolio-creative/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  172. package/templates/portfolio-creative-owner/dev/index.ts +84 -599
  173. package/templates/portfolio-creative-owner/tier5-src/_shared/aria-chat.ts +22 -6
  174. package/templates/portfolio-creative-owner/tier5-src/_shared/collection-contract.ts +16 -9
  175. package/templates/portfolio-creative-owner/tier5-src/_shared/collection-service.ts +19 -5
  176. package/templates/portfolio-creative-owner/tier5-src/_shared/engine-intl.ts +51 -0
  177. package/templates/portfolio-creative-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  178. package/templates/restaurant/dev/index.ts +124 -101
  179. package/templates/restaurant/tier5-src/_shared/collection-contract.ts +16 -9
  180. package/templates/restaurant/tier5-src/_shared/collection-service.ts +19 -5
  181. package/templates/restaurant/tier5-src/_shared/engine-intl.ts +51 -0
  182. package/templates/restaurant/tier5-src/_shared/himi-restaurants.ts +4 -4
  183. package/templates/restaurant/tier5-src/_shared/owner-load-error.ts +49 -0
  184. package/templates/restaurant/tier5-src/_shared/wix-service-price.ts +1 -1
  185. package/templates/restaurant/tier5-src/himi-branded-lite-info/index.ts +5 -2
  186. package/templates/restaurant/tier5-src/himi-branded-lite-reserve/index.ts +5 -3
  187. package/templates/restaurant/tier5-src/himi-events-detail/index.ts +1 -1
  188. package/templates/restaurant/tier5-src/himi-events-list/index.ts +20 -4
  189. package/templates/restaurant/tier5-src/himi-events-my-events/index.ts +2 -2
  190. package/templates/restaurant/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  191. package/templates/restaurant-owner/dev/index.ts +84 -627
  192. package/templates/restaurant-owner/tier5-src/_shared/aria-chat.ts +22 -6
  193. package/templates/restaurant-owner/tier5-src/_shared/collection-contract.ts +16 -9
  194. package/templates/restaurant-owner/tier5-src/_shared/collection-service.ts +19 -5
  195. package/templates/restaurant-owner/tier5-src/_shared/engine-intl.ts +51 -0
  196. package/templates/restaurant-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  197. package/templates/restaurant-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
  198. package/templates/retail-store/dev/index.ts +59 -106
  199. package/templates/retail-store/tier5-src/_shared/collection-contract.ts +16 -9
  200. package/templates/retail-store/tier5-src/_shared/collection-service.ts +19 -5
  201. package/templates/retail-store/tier5-src/_shared/engine-intl.ts +51 -0
  202. package/templates/retail-store/tier5-src/_shared/himi-restaurants.ts +4 -4
  203. package/templates/retail-store/tier5-src/_shared/owner-load-error.ts +49 -0
  204. package/templates/retail-store/tier5-src/_shared/wix-service-price.ts +1 -1
  205. package/templates/retail-store/tier5-src/himi-branded-lite-info/index.ts +5 -2
  206. package/templates/retail-store/tier5-src/wix-spaces-collections/index.ts +1 -1
  207. package/templates/retail-store/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  208. package/templates/retail-store-owner/dev/index.ts +84 -571
  209. package/templates/retail-store-owner/tier5-src/_shared/aria-chat.ts +22 -6
  210. package/templates/retail-store-owner/tier5-src/_shared/collection-contract.ts +16 -9
  211. package/templates/retail-store-owner/tier5-src/_shared/collection-service.ts +19 -5
  212. package/templates/retail-store-owner/tier5-src/_shared/engine-intl.ts +51 -0
  213. package/templates/retail-store-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  214. package/templates/yoga-studio/dev/index.ts +73 -148
  215. package/templates/yoga-studio/tier5-src/_shared/collection-contract.ts +16 -9
  216. package/templates/yoga-studio/tier5-src/_shared/collection-service.ts +19 -5
  217. package/templates/yoga-studio/tier5-src/_shared/engine-intl.ts +51 -0
  218. package/templates/yoga-studio/tier5-src/_shared/himi-restaurants.ts +4 -4
  219. package/templates/yoga-studio/tier5-src/_shared/owner-load-error.ts +49 -0
  220. package/templates/yoga-studio/tier5-src/_shared/wix-service-price.ts +1 -1
  221. package/templates/yoga-studio/tier5-src/himi-branded-lite-info/index.ts +5 -2
  222. package/templates/yoga-studio/tier5-src/himi-branded-lite-plans/index.ts +1 -1
  223. package/templates/yoga-studio/tier5-src/himi-branded-lite-program/index.ts +1 -1
  224. package/templates/yoga-studio/tier5-src/himi-events-detail/index.ts +1 -1
  225. package/templates/yoga-studio/tier5-src/himi-events-list/index.ts +20 -4
  226. package/templates/yoga-studio/tier5-src/himi-events-my-events/index.ts +2 -2
  227. package/templates/yoga-studio/tier5-src/wix-spaces-whats-new/index.ts +4 -4
  228. package/templates/yoga-studio-owner/dev/index.ts +84 -571
  229. package/templates/yoga-studio-owner/tier5-src/_shared/aria-chat.ts +22 -6
  230. package/templates/yoga-studio-owner/tier5-src/_shared/collection-contract.ts +16 -9
  231. package/templates/yoga-studio-owner/tier5-src/_shared/collection-service.ts +19 -5
  232. package/templates/yoga-studio-owner/tier5-src/_shared/engine-intl.ts +51 -0
  233. package/templates/yoga-studio-owner/tier5-src/_shared/owner-load-error.ts +49 -0
  234. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-events/index.ts +1 -0
@@ -44,6 +44,11 @@ export interface ScreenDescriptor {
44
44
  /** RFC 0010 (top-bar amendment) — shell-owned top bar: trailing actions +
45
45
  * leading/style override. Mirror of TopBarConfig in core.proto. */
46
46
  topBar?: import("@wix/himalaya/core").TopBarConfig;
47
+ /** Sticky slots the host pins OUTSIDE the screen scroll (a toolbar above the
48
+ * payload; a composer / confirm bar below it). Mirror of
49
+ * ScreenDescriptor.sticky_header / sticky_footer in core.proto. */
50
+ stickyHeader?: Component;
51
+ stickyFooter?: Component;
47
52
  }
48
53
  /** Tier 3/4 + embeddable WebView behavior. Mirror of WebViewConfig in core.proto
49
54
  * (RFC 0038). All fields optional; zero values reproduce legacy behavior. */
@@ -605,7 +610,8 @@ export declare function stepper(props: {
605
610
  value: number;
606
611
  min?: number;
607
612
  max?: number;
608
- onChange?: ActionShape;
613
+ onChange?: ActionShape; /** `$service:` path the count follows (worker is the source of truth). */
614
+ valuePath?: string;
609
615
  }, opts?: {
610
616
  id?: string;
611
617
  }): Component;
@@ -6,6 +6,8 @@ export interface EventRow {
6
6
  day: string;
7
7
  month: string;
8
8
  dateLine: string;
9
+ /** "Past" once the event has finished, else "". */
10
+ statusLabel: string;
9
11
  location: string;
10
12
  status: string;
11
13
  image: string;
@@ -30,6 +32,16 @@ export declare function eventAddress(e: WixEvent): string;
30
32
  export declare function eventMapUrl(e: WixEvent): string;
31
33
  export declare function eventStartMillis(e: WixEvent): number | undefined;
32
34
  export declare function eventEndMillis(e: WixEvent): number | undefined;
33
- export declare function eventWhen(e: WixEvent): string;
35
+ /** The event's date line. The year is written only when it is not the current year, so a
36
+ * past-year event can no longer pass for an upcoming one ("Sat, Jul 18"). `now` is injectable
37
+ * for tests; it defaults to the wall clock. */
38
+ export declare function eventWhen(e: WixEvent, now?: number): string;
39
+ /** Has the event finished? Its end when it has one, else its start. */
40
+ export declare function eventIsPast(e: WixEvent, now?: number): boolean;
41
+ /** One-argument on purpose: callers write `.map(normalizeEvent)`, which would pass the array
42
+ * index as a second argument. Use {@link normalizeEventAt} to pin the clock. */
34
43
  export declare function normalizeEvent(e: WixEvent): EventRow;
44
+ /** {@link normalizeEvent} against an explicit clock (epoch ms): `now` decides whether the date
45
+ * line carries the year and whether `statusLabel` reads "Past". Pure — no API call, any scope. */
46
+ export declare function normalizeEventAt(e: WixEvent, now: number): EventRow;
35
47
  export declare function eventDescription(e: WixEvent): string;
@@ -185,21 +185,38 @@ function clockTime(d) {
185
185
  const minute = d.getMinutes();
186
186
  return `${hour}:${minute < 10 ? `0${minute}` : minute} ${h < 12 ? "AM" : "PM"}`;
187
187
  }
188
- function eventWhen(e) {
188
+ function clockParts(d) {
189
+ const clean = clockTime(d).replace(/[  ]/g, " ");
190
+ const m = /^(.*?)\s*([AP]M)$/i.exec(clean);
191
+ return m ? { time: m[1], meridiem: m[2] } : { time: clean, meridiem: "" };
192
+ }
193
+ function clockRange(s, e) {
194
+ const a = clockParts(s);
195
+ const b = clockParts(e);
196
+ const same = !!a.meridiem && a.meridiem === b.meridiem && e.getTime() - s.getTime() < 12 * 3600 * 1e3;
197
+ return `${same ? a.time : clockTime(s)} \u2013 ${clockTime(e)}`;
198
+ }
199
+ function eventWhen(e, now = Date.now()) {
189
200
  const start = startDateOf(e);
190
201
  const end = endDateOf(e);
191
202
  if (!start) return titleCase(e.eventStatus) || "Date to be announced";
192
203
  const s = new Date(start);
193
204
  if (Number.isNaN(s.getTime())) return "Date to be announced";
194
- const date = weekdayMonthDay(s);
205
+ const date = s.getFullYear() === new Date(now).getFullYear() ? weekdayMonthDay(s) : `${weekdayMonthDay(s)}, ${s.getFullYear()}`;
195
206
  const time = clockTime(s);
196
207
  if (!end) return `${date} at ${time}`;
197
208
  const eDate = new Date(end);
198
- if (Number.isNaN(eDate.getTime())) return `${date} at ${time}`;
199
- const endTime = clockTime(eDate);
200
- return `${date} \xB7 ${time}-${endTime}`;
209
+ if (Number.isNaN(eDate.getTime()) || eDate.getTime() <= s.getTime()) return `${date} at ${time}`;
210
+ return `${date} \xB7 ${clockRange(s, eDate)}`;
211
+ }
212
+ function eventIsPast(e, now = Date.now()) {
213
+ const ms = eventEndMillis(e) ?? eventStartMillis(e);
214
+ return ms != null && ms < now;
201
215
  }
202
216
  function normalizeEvent(e) {
217
+ return normalizeEventAt(e, Date.now());
218
+ }
219
+ function normalizeEventAt(e, now) {
203
220
  const id = e.id || e.title || "event";
204
221
  const title = e.title || "Event";
205
222
  const start = startDateOf(e);
@@ -210,7 +227,10 @@ function normalizeEvent(e) {
210
227
  title,
211
228
  day: date && !Number.isNaN(date.getTime()) ? String(date.getDate()) : title.slice(0, 1).toUpperCase(),
212
229
  month: date && !Number.isNaN(date.getTime()) ? date.toLocaleString("en-US", { month: "short" }).toUpperCase() : "",
213
- dateLine: eventWhen(e),
230
+ dateLine: eventWhen(e, now),
231
+ // "Past" for a finished event, "" otherwise — the shared collection row prints it in the
232
+ // meta line, so an event from last month no longer reads as current.
233
+ statusLabel: eventIsPast(e, now) ? "Past" : "",
214
234
  location: eventLocation(e),
215
235
  status: titleCase(e.eventStatus) || titleCase(e.status),
216
236
  image,
@@ -370,6 +390,7 @@ export {
370
390
  eventDescription,
371
391
  eventEndMillis,
372
392
  eventImage,
393
+ eventIsPast,
373
394
  eventLocation,
374
395
  eventMapUrl,
375
396
  eventStartMillis,
@@ -378,6 +399,7 @@ export {
378
399
  getEventGuestList,
379
400
  getEventsOrder,
380
401
  normalizeEvent,
402
+ normalizeEventAt,
381
403
  queryAvailableTickets,
382
404
  queryEvents,
383
405
  startDateOf,
@@ -95,7 +95,7 @@ function getStoreCategory(categoryId) {
95
95
  }
96
96
  function categoryCount(c) {
97
97
  const n = c.itemCounter;
98
- return n != null ? `${n} ${n === 1 ? "product" : "products"}` : "";
98
+ return n != null && n > 0 ? `${n} ${n === 1 ? "product" : "products"}` : "";
99
99
  }
100
100
  function categoryImage(c, size = WIX_LIST_IMAGE) {
101
101
  return wixMediaUrl(c.image?.url || "", size);
@@ -557,12 +557,18 @@ function fallbackMoney(num, code) {
557
557
  const symbol = CURRENCY_SYMBOL[code];
558
558
  return symbol ? `${sign}${symbol}${body}` : `${sign}${code}\xA0${body}`;
559
559
  }
560
+ function symbolFirst(formatted) {
561
+ const raw = formatted.replace(/[‎‏]/g, "").trim();
562
+ const m = /^(-?)(\d{1,3}(?:,\d{3})*(?:\.\d+)?|\d+(?:\.\d+)?)[\s  ]*(\S+)$/.exec(raw);
563
+ if (!m || !Object.values(CURRENCY_SYMBOL).includes(m[3])) return raw;
564
+ return `${m[1]}${m[3]}${m[2]}`;
565
+ }
560
566
  function productCurrency(p) {
561
567
  return p.currency || p.priceData?.currency || p.price?.currency || p.actualPriceRange?.minValue?.currency || "";
562
568
  }
563
569
  function productPrice(p) {
564
570
  const preformatted = p.priceData?.formatted?.price || p.price?.formatted?.price || p.actualPriceRange?.minValue?.formattedAmount;
565
- if (preformatted) return preformatted;
571
+ if (preformatted) return symbolFirst(preformatted);
566
572
  const amount = p.priceData?.price != null ? p.priceData.price : p.price?.price != null ? p.price.price : p.actualPriceRange?.minValue?.amount ?? "";
567
573
  if (amount === "" || amount == null) return "";
568
574
  return formatMoney(amount, productCurrency(p));
package/dist/cli.mjs CHANGED
@@ -20137,7 +20137,6 @@ function shouldRevealError(args) {
20137
20137
  var EMAIL_RE, URL_HOST_RE, INTEGER_RE, NUMBER_RE;
20138
20138
  var init_validation = __esm({
20139
20139
  "../../core/ts/src/validation.ts"() {
20140
- "use strict";
20141
20140
  EMAIL_RE = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}$/;
20142
20141
  URL_HOST_RE = /^[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(:[0-9]+)?$/;
20143
20142
  INTEGER_RE = /^[+-]?[0-9]+$/;
@@ -23724,7 +23723,6 @@ function validateWorkerSubtree(raw, slotId, policy, actionCatalog) {
23724
23723
  var WORKER_SUBTREE_CEILINGS, ID_PART, ACTION_ID;
23725
23724
  var init_worker_subtree = __esm({
23726
23725
  "../../core/ts/src/worker-subtree.ts"() {
23727
- "use strict";
23728
23726
  init_worker_subtree_safe_types_generated();
23729
23727
  WORKER_SUBTREE_CEILINGS = Object.freeze({
23730
23728
  maxEncodedBytes: 65536,
@@ -24817,9 +24815,13 @@ function parseLocalDate(when) {
24817
24815
  const d = when instanceof Date ? new Date(when.getTime()) : new Date(when);
24818
24816
  return isNaN(d.getTime()) ? null : d;
24819
24817
  }
24820
- function localHHMM(d) {
24821
- const p = (n) => String(n).padStart(2, "0");
24822
- return `${p(d.getHours())}:${p(d.getMinutes())}`;
24818
+ function localTimeLabel(d) {
24819
+ try {
24820
+ return d.toLocaleTimeString(void 0, { hour: "numeric", minute: "2-digit" }).replace(/[\u202F\u00A0]/g, " ");
24821
+ } catch {
24822
+ const p = (n) => String(n).padStart(2, "0");
24823
+ return `${p(d.getHours())}:${p(d.getMinutes())}`;
24824
+ }
24823
24825
  }
24824
24826
  function localDayKey(when) {
24825
24827
  const d = parseLocalDate(when);
@@ -29476,7 +29478,7 @@ var init_renderNode = __esm({
29476
29478
  /* @__PURE__ */ jsx6("div", { style: { position: sticky ? "sticky" : "static", top: 0, zIndex: 1, background: C("surfacePrimary", "#fff"), fontFamily: bodyFont(ctx), fontSize: 12, fontWeight: 700, textTransform: "uppercase", letterSpacing: 0.4, color: C("textSecondary", "#888"), padding: "8px 4px" }, children: dayHeaderLabel(g.key) }),
29477
29479
  g.items.map((ev, i) => {
29478
29480
  const start = parseLocalDate(ev.start);
29479
- const timeStr = ev.allDay === true ? "All day" : start ? localHHMM(start) : "";
29481
+ const timeStr = ev.allDay === true ? "All day" : start ? localTimeLabel(start) : "";
29480
29482
  const tappable = !!(ev?.onTap || props.onSelectEvent);
29481
29483
  if (props.eventTemplate) {
29482
29484
  const itemCtx = { ...ctx, itemScope: calEventScope(ev, i) };
@@ -49577,21 +49579,21 @@ var init_preview_assets_generated = __esm({
49577
49579
  "../../packages/serve/src/preview-assets.generated.ts"() {
49578
49580
  init_preview_assets_format();
49579
49581
  PREVIEW_ASSET_MANIFEST = [
49580
- { key: "assets/index-CfirOMcp.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1050991, sha256: "438f0a1b7a2d194f1eb7e5132d7d0bddc5ca326a63eb4ccebd18c1f9229ff89a" },
49581
- { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1050999, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
49582
- { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1055609, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
49583
- { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1544193, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
49584
- { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1635117, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
49585
- { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1726101, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
49586
- { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1817081, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
49587
- { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1907953, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
49588
- { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1998933, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
49589
- { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2107569, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
49590
- { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2216653, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
49591
- { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2325701, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
49592
- { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2433401, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
49593
- { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2521509, length: 4947, sha256: "1d5a5f1bb450a129547b3dade7581d17dcb6474051a1124b92b69d51def5446e" },
49594
- { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2526456, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
49582
+ { key: "assets/index-BWCUbjcx.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1051200, sha256: "bc39b1298d3c675988ae421ad8950e8ef46a46b6e8e3644aaea24e6ab1a1cd21" },
49583
+ { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1051208, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
49584
+ { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1055818, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
49585
+ { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1544402, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
49586
+ { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1635326, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
49587
+ { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1726310, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
49588
+ { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1817290, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
49589
+ { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1908162, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
49590
+ { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1999142, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
49591
+ { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2107778, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
49592
+ { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2216862, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
49593
+ { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2325910, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
49594
+ { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2433610, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
49595
+ { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2521718, length: 4947, sha256: "3d489aa5d99040dfa05a2175da5de975b1ebdd9f6d855c5609074cbc2c592d27" },
49596
+ { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2526665, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
49595
49597
  ];
49596
49598
  }
49597
49599
  });
Binary file
@@ -14603,7 +14603,7 @@
14603
14603
  "name": "EventRow",
14604
14604
  "kind": "interface",
14605
14605
  "jsdoc": "",
14606
- "decl": "export interface EventRow {\n id: string;\n title: string;\n day: string;\n month: string;\n dateLine: string;\n location: string;\n status: string;\n image: string;\n hasImage: boolean;\n noImage: boolean;\n detailScreenId: string;\n}"
14606
+ "decl": "export interface EventRow {\n id: string;\n title: string;\n day: string;\n month: string;\n dateLine: string;\n /** \"Past\" once the event has finished, else \"\". */\n statusLabel: string;\n location: string;\n status: string;\n image: string;\n hasImage: boolean;\n noImage: boolean;\n detailScreenId: string;\n}"
14607
14607
  },
14608
14608
  {
14609
14609
  "name": "titleCase",
@@ -14662,15 +14662,27 @@
14662
14662
  {
14663
14663
  "name": "eventWhen",
14664
14664
  "kind": "function",
14665
- "jsdoc": "",
14666
- "decl": "export function eventWhen(e: WixEvent): string;"
14665
+ "jsdoc": "/** The event's date line. The year is written only when it is not the current year, so a\n * past-year event can no longer pass for an upcoming one (\"Sat, Jul 18\"). `now` is injectable\n * for tests; it defaults to the wall clock. */",
14666
+ "decl": "export function eventWhen(e: WixEvent, now: number = Date.now()): string;"
14667
+ },
14668
+ {
14669
+ "name": "eventIsPast",
14670
+ "kind": "function",
14671
+ "jsdoc": "/** Has the event finished? Its end when it has one, else its start. */",
14672
+ "decl": "export function eventIsPast(e: WixEvent, now: number = Date.now()): boolean;"
14667
14673
  },
14668
14674
  {
14669
14675
  "name": "normalizeEvent",
14670
14676
  "kind": "function",
14671
- "jsdoc": "",
14677
+ "jsdoc": "/** One-argument on purpose: callers write `.map(normalizeEvent)`, which would pass the array\n * index as a second argument. Use {@link normalizeEventAt} to pin the clock. */",
14672
14678
  "decl": "export function normalizeEvent(e: WixEvent): EventRow;"
14673
14679
  },
14680
+ {
14681
+ "name": "normalizeEventAt",
14682
+ "kind": "function",
14683
+ "jsdoc": "/** {@link normalizeEvent} against an explicit clock (epoch ms): `now` decides whether the date\n * line carries the year and whether `statusLabel` reads \"Past\". Pure — no API call, any scope. */",
14684
+ "decl": "export function normalizeEventAt(e: WixEvent, now: number): EventRow;"
14685
+ },
14674
14686
  {
14675
14687
  "name": "eventDescription",
14676
14688
  "kind": "function",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1035.0",
3
+ "version": "0.1036.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": [
@@ -65,5 +65,5 @@
65
65
  "artifactId": "himalaya-cli"
66
66
  }
67
67
  },
68
- "falconPackageHash": "a1f78ccbd699eee4485119c69175cd6331ff4eb0fb6f23f06086d17a"
68
+ "falconPackageHash": "4823bad3388426fd2f4488b8d0571503d30ba55aafb5a033ecbdfac6"
69
69
  }