@wix/himalaya-cli 0.1560.0 → 0.1561.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 (81) hide show
  1. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/builder.d.ts +3 -1
  2. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/schema.d.ts +2 -0
  3. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/wix-sdk/events/src/index.d.ts +60 -7
  4. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-events.mjs +11 -5
  5. package/dist/cli.mjs +51 -42
  6. package/dist/preview-assets.generated.bin +0 -0
  7. package/guides/component-reference.json +3 -2
  8. package/guides/component-reference.md +3 -1
  9. package/guides/sdk-reference.json +7 -7
  10. package/package.json +2 -2
  11. package/templates/beauty-salon/tier5-src/_shared/engine-intl.ts +18 -0
  12. package/templates/beauty-salon/tier5-src/_shared/himi-events.ts +7 -0
  13. package/templates/beauty-salon-owner/tier5-src/_shared/engine-intl.ts +18 -0
  14. package/templates/beauty-salon-owner/tier5-src/_shared/himi-events.ts +7 -0
  15. package/templates/branded-lite/dev/index.ts +2390 -851
  16. package/templates/branded-lite/himalaya.content.json +1 -1
  17. package/templates/branded-lite/tier5-src/_shared/engine-intl.ts +18 -0
  18. package/templates/branded-lite/tier5-src/_shared/himi-events.ts +7 -0
  19. package/templates/branded-lite/tier5-src/himi-events-detail/index.ts +803 -361
  20. package/templates/community-club/dev/index.ts +2387 -848
  21. package/templates/community-club/himalaya.content.json +1 -1
  22. package/templates/community-club/tier5-src/_shared/engine-intl.ts +18 -0
  23. package/templates/community-club/tier5-src/_shared/himi-events.ts +7 -0
  24. package/templates/community-club/tier5-src/himi-events-detail/index.ts +803 -361
  25. package/templates/community-club-owner/tier5-src/_shared/engine-intl.ts +18 -0
  26. package/templates/community-club-owner/tier5-src/_shared/himi-events.ts +7 -0
  27. package/templates/events-meetups/dev/index.ts +2387 -848
  28. package/templates/events-meetups/himalaya.content.json +1 -1
  29. package/templates/events-meetups/tier5-src/_shared/engine-intl.ts +18 -0
  30. package/templates/events-meetups/tier5-src/_shared/himi-events.ts +7 -0
  31. package/templates/events-meetups/tier5-src/himi-events-detail/index.ts +803 -361
  32. package/templates/events-meetups-owner/tier5-src/_shared/engine-intl.ts +18 -0
  33. package/templates/events-meetups-owner/tier5-src/_shared/himi-events.ts +7 -0
  34. package/templates/gym-fitness/dev/index.ts +2392 -853
  35. package/templates/gym-fitness/himalaya.content.json +1 -1
  36. package/templates/gym-fitness/tier5-src/_shared/engine-intl.ts +18 -0
  37. package/templates/gym-fitness/tier5-src/_shared/himi-events.ts +7 -0
  38. package/templates/gym-fitness/tier5-src/himi-events-detail/index.ts +803 -361
  39. package/templates/gym-fitness-owner/tier5-src/_shared/engine-intl.ts +18 -0
  40. package/templates/gym-fitness-owner/tier5-src/_shared/himi-events.ts +7 -0
  41. package/templates/nonprofit-cause/dev/index.ts +2387 -848
  42. package/templates/nonprofit-cause/himalaya.content.json +1 -1
  43. package/templates/nonprofit-cause/tier5-src/_shared/engine-intl.ts +18 -0
  44. package/templates/nonprofit-cause/tier5-src/_shared/himi-events.ts +7 -0
  45. package/templates/nonprofit-cause/tier5-src/himi-events-detail/index.ts +803 -361
  46. package/templates/nonprofit-cause-owner/tier5-src/_shared/engine-intl.ts +18 -0
  47. package/templates/nonprofit-cause-owner/tier5-src/_shared/himi-events.ts +7 -0
  48. package/templates/owner-lite/tier5-src/_shared/engine-intl.ts +18 -0
  49. package/templates/owner-lite/tier5-src/_shared/himi-events.ts +7 -0
  50. package/templates/podcast-creator/dev/index.ts +2388 -849
  51. package/templates/podcast-creator/himalaya.content.json +1 -1
  52. package/templates/podcast-creator/tier5-src/_shared/engine-intl.ts +18 -0
  53. package/templates/podcast-creator/tier5-src/_shared/himi-events.ts +7 -0
  54. package/templates/podcast-creator/tier5-src/himi-events-detail/index.ts +803 -361
  55. package/templates/podcast-creator-owner/tier5-src/_shared/engine-intl.ts +18 -0
  56. package/templates/podcast-creator-owner/tier5-src/_shared/himi-events.ts +7 -0
  57. package/templates/portfolio-creative/dev/index.ts +2375 -836
  58. package/templates/portfolio-creative/himalaya.content.json +1 -1
  59. package/templates/portfolio-creative/tier5-src/_shared/engine-intl.ts +18 -0
  60. package/templates/portfolio-creative/tier5-src/_shared/himi-events.ts +7 -0
  61. package/templates/portfolio-creative/tier5-src/himi-events-detail/index.ts +803 -361
  62. package/templates/portfolio-creative-owner/tier5-src/_shared/engine-intl.ts +18 -0
  63. package/templates/portfolio-creative-owner/tier5-src/_shared/himi-events.ts +7 -0
  64. package/templates/restaurant/dev/index.ts +2388 -849
  65. package/templates/restaurant/himalaya.content.json +1 -1
  66. package/templates/restaurant/tier5-src/_shared/engine-intl.ts +18 -0
  67. package/templates/restaurant/tier5-src/_shared/himi-events.ts +7 -0
  68. package/templates/restaurant/tier5-src/himi-events-detail/index.ts +803 -361
  69. package/templates/restaurant-owner/tier5-src/_shared/engine-intl.ts +18 -0
  70. package/templates/restaurant-owner/tier5-src/_shared/himi-events.ts +7 -0
  71. package/templates/retail-store/tier5-src/_shared/engine-intl.ts +18 -0
  72. package/templates/retail-store/tier5-src/_shared/himi-events.ts +7 -0
  73. package/templates/retail-store-owner/tier5-src/_shared/engine-intl.ts +18 -0
  74. package/templates/retail-store-owner/tier5-src/_shared/himi-events.ts +7 -0
  75. package/templates/yoga-studio/dev/index.ts +2403 -864
  76. package/templates/yoga-studio/himalaya.content.json +1 -1
  77. package/templates/yoga-studio/tier5-src/_shared/engine-intl.ts +18 -0
  78. package/templates/yoga-studio/tier5-src/_shared/himi-events.ts +7 -0
  79. package/templates/yoga-studio/tier5-src/himi-events-detail/index.ts +803 -361
  80. package/templates/yoga-studio-owner/tier5-src/_shared/engine-intl.ts +18 -0
  81. package/templates/yoga-studio-owner/tier5-src/_shared/himi-events.ts +7 -0
@@ -486,3 +486,21 @@ export function zoneOffsetAt(at: number, timeZone: string): number {
486
486
  }
487
487
  return NaN;
488
488
  }
489
+
490
+ /** Long zone label plus its short offset, e.g. "Israel Standard Time (GMT+2)". An engine
491
+ * without ECMA-402 has no zone database, so callers omit the supplementary label there. */
492
+ export function formatTimeZoneLabel(date: Date, timeZone: string, locale = "en"): string {
493
+ if (hasIntl()) {
494
+ if (!timeZone) return "";
495
+ try {
496
+ const parts = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: "long" }).formatToParts(date);
497
+ const name = parts.find((part) => part.type === "timeZoneName")?.value || timeZone;
498
+ const offset = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: "shortOffset" })
499
+ .formatToParts(date).find((part) => part.type === "timeZoneName")?.value;
500
+ return offset ? `${name} (${offset.replace(/:00$/, "")})` : name;
501
+ } catch {
502
+ return timeZone;
503
+ }
504
+ }
505
+ return "";
506
+ }
@@ -56,3 +56,10 @@ export function rememberRsvp(eventId: string): void {
56
56
  const next = [eventId, ...ids.filter((id) => id !== eventId)].slice(0, 50);
57
57
  try { storage()?.setItem(RSVP_KEY, JSON.stringify(next)); } catch { /* best-effort */ }
58
58
  }
59
+
60
+ /** Remove a locally confirmed RSVP after Wix confirms its cancellation. */
61
+ export function forgetRsvp(eventId: string): void {
62
+ if (!eventId) return;
63
+ const next = confirmedRsvpIds().filter((id) => id !== eventId);
64
+ try { storage()?.setItem(RSVP_KEY, JSON.stringify(next)); } catch { /* best-effort */ }
65
+ }
@@ -486,3 +486,21 @@ export function zoneOffsetAt(at: number, timeZone: string): number {
486
486
  }
487
487
  return NaN;
488
488
  }
489
+
490
+ /** Long zone label plus its short offset, e.g. "Israel Standard Time (GMT+2)". An engine
491
+ * without ECMA-402 has no zone database, so callers omit the supplementary label there. */
492
+ export function formatTimeZoneLabel(date: Date, timeZone: string, locale = "en"): string {
493
+ if (hasIntl()) {
494
+ if (!timeZone) return "";
495
+ try {
496
+ const parts = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: "long" }).formatToParts(date);
497
+ const name = parts.find((part) => part.type === "timeZoneName")?.value || timeZone;
498
+ const offset = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: "shortOffset" })
499
+ .formatToParts(date).find((part) => part.type === "timeZoneName")?.value;
500
+ return offset ? `${name} (${offset.replace(/:00$/, "")})` : name;
501
+ } catch {
502
+ return timeZone;
503
+ }
504
+ }
505
+ return "";
506
+ }
@@ -56,3 +56,10 @@ export function rememberRsvp(eventId: string): void {
56
56
  const next = [eventId, ...ids.filter((id) => id !== eventId)].slice(0, 50);
57
57
  try { storage()?.setItem(RSVP_KEY, JSON.stringify(next)); } catch { /* best-effort */ }
58
58
  }
59
+
60
+ /** Remove a locally confirmed RSVP after Wix confirms its cancellation. */
61
+ export function forgetRsvp(eventId: string): void {
62
+ if (!eventId) return;
63
+ const next = confirmedRsvpIds().filter((id) => id !== eventId);
64
+ try { storage()?.setItem(RSVP_KEY, JSON.stringify(next)); } catch { /* best-effort */ }
65
+ }
@@ -486,3 +486,21 @@ export function zoneOffsetAt(at: number, timeZone: string): number {
486
486
  }
487
487
  return NaN;
488
488
  }
489
+
490
+ /** Long zone label plus its short offset, e.g. "Israel Standard Time (GMT+2)". An engine
491
+ * without ECMA-402 has no zone database, so callers omit the supplementary label there. */
492
+ export function formatTimeZoneLabel(date: Date, timeZone: string, locale = "en"): string {
493
+ if (hasIntl()) {
494
+ if (!timeZone) return "";
495
+ try {
496
+ const parts = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: "long" }).formatToParts(date);
497
+ const name = parts.find((part) => part.type === "timeZoneName")?.value || timeZone;
498
+ const offset = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: "shortOffset" })
499
+ .formatToParts(date).find((part) => part.type === "timeZoneName")?.value;
500
+ return offset ? `${name} (${offset.replace(/:00$/, "")})` : name;
501
+ } catch {
502
+ return timeZone;
503
+ }
504
+ }
505
+ return "";
506
+ }
@@ -56,3 +56,10 @@ export function rememberRsvp(eventId: string): void {
56
56
  const next = [eventId, ...ids.filter((id) => id !== eventId)].slice(0, 50);
57
57
  try { storage()?.setItem(RSVP_KEY, JSON.stringify(next)); } catch { /* best-effort */ }
58
58
  }
59
+
60
+ /** Remove a locally confirmed RSVP after Wix confirms its cancellation. */
61
+ export function forgetRsvp(eventId: string): void {
62
+ if (!eventId) return;
63
+ const next = confirmedRsvpIds().filter((id) => id !== eventId);
64
+ try { storage()?.setItem(RSVP_KEY, JSON.stringify(next)); } catch { /* best-effort */ }
65
+ }