@wix/himalaya-cli 0.1307.0 → 0.1309.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 (93) hide show
  1. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/builder.d.ts +7 -0
  2. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/schema.d.ts +32 -0
  3. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/validator.d.ts +60 -0
  4. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/core.mjs +31 -0
  5. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/sdui.mjs +31 -0
  6. package/dist/cli.mjs +1333 -865
  7. package/dist/preview-assets.generated.bin +0 -0
  8. package/guides/app-config.md +2 -2
  9. package/guides/component-reference.json +2 -2
  10. package/guides/component-reference.md +10 -0
  11. package/guides/getting-started.md +40 -0
  12. package/guides/himi-skill.md +40 -0
  13. package/package.json +3 -2
  14. package/templates/beauty-salon/himalaya.content.json +86 -0
  15. package/templates/beauty-salon-owner/dev/index.ts +574 -181
  16. package/templates/beauty-salon-owner/himalaya.content.json +179 -0
  17. package/templates/beauty-salon-owner/tier5-src/_shared/aria-chat.ts +136 -12
  18. package/templates/beauty-salon-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  19. package/templates/beauty-salon-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  20. package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  21. package/templates/branded-lite/himalaya.content.json +254 -0
  22. package/templates/brandy/himalaya.content.json +18 -1
  23. package/templates/community-club/himalaya.content.json +68 -0
  24. package/templates/community-club-owner/dev/index.ts +574 -181
  25. package/templates/community-club-owner/himalaya.content.json +173 -0
  26. package/templates/community-club-owner/tier5-src/_shared/aria-chat.ts +136 -12
  27. package/templates/community-club-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  28. package/templates/community-club-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  29. package/templates/community-club-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  30. package/templates/events-meetups/himalaya.content.json +62 -0
  31. package/templates/events-meetups-owner/dev/index.ts +574 -181
  32. package/templates/events-meetups-owner/himalaya.content.json +155 -0
  33. package/templates/events-meetups-owner/tier5-src/_shared/aria-chat.ts +136 -12
  34. package/templates/events-meetups-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  35. package/templates/events-meetups-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  36. package/templates/events-meetups-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  37. package/templates/gym-fitness/himalaya.content.json +101 -0
  38. package/templates/gym-fitness-owner/dev/index.ts +574 -181
  39. package/templates/gym-fitness-owner/himalaya.content.json +188 -0
  40. package/templates/gym-fitness-owner/tier5-src/_shared/aria-chat.ts +136 -12
  41. package/templates/gym-fitness-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  42. package/templates/gym-fitness-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  43. package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  44. package/templates/himi-chat/himalaya.content.json +8 -0
  45. package/templates/nonprofit-cause/himalaya.content.json +74 -0
  46. package/templates/nonprofit-cause-owner/dev/index.ts +574 -181
  47. package/templates/nonprofit-cause-owner/himalaya.content.json +170 -0
  48. package/templates/nonprofit-cause-owner/tier5-src/_shared/aria-chat.ts +136 -12
  49. package/templates/nonprofit-cause-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  50. package/templates/nonprofit-cause-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  51. package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  52. package/templates/owner-lite/dev/index.ts +574 -181
  53. package/templates/owner-lite/himalaya.content.json +203 -0
  54. package/templates/owner-lite/tier5-src/_shared/aria-chat.ts +136 -12
  55. package/templates/owner-lite/tier5-src/_shared/aria-client-tools.ts +57 -9
  56. package/templates/owner-lite/tier5-src/_shared/aria-row-id.ts +14 -0
  57. package/templates/owner-lite/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  58. package/templates/podcast-creator/himalaya.content.json +71 -0
  59. package/templates/podcast-creator-owner/dev/index.ts +574 -181
  60. package/templates/podcast-creator-owner/himalaya.content.json +173 -0
  61. package/templates/podcast-creator-owner/tier5-src/_shared/aria-chat.ts +136 -12
  62. package/templates/podcast-creator-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  63. package/templates/podcast-creator-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  64. package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  65. package/templates/portfolio-creative/himalaya.content.json +80 -0
  66. package/templates/portfolio-creative-owner/dev/index.ts +574 -181
  67. package/templates/portfolio-creative-owner/himalaya.content.json +179 -0
  68. package/templates/portfolio-creative-owner/tier5-src/_shared/aria-chat.ts +136 -12
  69. package/templates/portfolio-creative-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  70. package/templates/portfolio-creative-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  71. package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  72. package/templates/restaurant/himalaya.content.json +65 -0
  73. package/templates/restaurant-owner/dev/index.ts +574 -181
  74. package/templates/restaurant-owner/himalaya.content.json +188 -0
  75. package/templates/restaurant-owner/tier5-src/_shared/aria-chat.ts +136 -12
  76. package/templates/restaurant-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  77. package/templates/restaurant-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  78. package/templates/restaurant-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  79. package/templates/retail-store/himalaya.content.json +62 -0
  80. package/templates/retail-store-owner/dev/index.ts +574 -181
  81. package/templates/retail-store-owner/himalaya.content.json +164 -0
  82. package/templates/retail-store-owner/tier5-src/_shared/aria-chat.ts +136 -12
  83. package/templates/retail-store-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  84. package/templates/retail-store-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  85. package/templates/retail-store-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
  86. package/templates/surface-showcase/himalaya.content.json +11 -0
  87. package/templates/yoga-studio/himalaya.content.json +80 -0
  88. package/templates/yoga-studio-owner/dev/index.ts +574 -181
  89. package/templates/yoga-studio-owner/himalaya.content.json +170 -0
  90. package/templates/yoga-studio-owner/tier5-src/_shared/aria-chat.ts +136 -12
  91. package/templates/yoga-studio-owner/tier5-src/_shared/aria-client-tools.ts +57 -9
  92. package/templates/yoga-studio-owner/tier5-src/_shared/aria-row-id.ts +14 -0
  93. package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-aria/index.ts +3 -0
@@ -50,6 +50,9 @@ export interface ScreenDescriptor {
50
50
  * ScreenDescriptor.sticky_header / sticky_footer in core.proto. */
51
51
  stickyHeader?: Component;
52
52
  stickyFooter?: Component;
53
+ /** RFC 0069 — the chat transcript scroll policy. Mirror of
54
+ * ScreenDescriptor.transcript_scroll in core.proto. */
55
+ transcriptScroll?: import("@wix/himalaya/core").TranscriptScroll;
53
56
  }
54
57
  /** Tier 3/4 + embeddable WebView behavior. Mirror of WebViewConfig in core.proto
55
58
  * (RFC 0038). All fields optional; zero values reproduce legacy behavior. */
@@ -148,8 +151,12 @@ export declare function vstack(props: {
148
151
  }, opts?: {
149
152
  id?: string;
150
153
  }): Component;
154
+ /** `alignment` is the HStack's CROSS axis — vertical — and is worth setting whenever the
155
+ * children differ in height: unset is centre on iOS but TOP on Android
156
+ * (`toComposeVertical`), which put the Aria header's History label above its pencil. */
151
157
  export declare function hstack(props: {
152
158
  spacing?: number;
159
+ alignment?: "leading" | "center" | "trailing";
153
160
  children: Component[];
154
161
  }, opts?: {
155
162
  id?: string;
@@ -364,6 +364,21 @@ export interface Modifiers {
364
364
  * The generalization of `FragmentSlotCase.accessibilityAnnouncement`, which only ever
365
365
  * fired on a fragment-slot case swap. */
366
366
  announce?: LiveRegion;
367
+ /** RFC 0069 — a recurring, finite, transform-only motion on a decorative node: a
368
+ * living character's idle `hop`, a `blink`, a working `breathe`. Never changes the
369
+ * node's layout footprint. Stopped by reduced motion unless `respectReducedMotion`
370
+ * is false. */
371
+ ambientMotion?: AmbientMotion;
372
+ }
373
+ /** RFC 0069 — `Modifiers.ambientMotion`. */
374
+ export interface AmbientMotion {
375
+ /** `"hop"` | `"blink"` | `"breathe"`; anything else renders no motion. */
376
+ kind?: string;
377
+ /** hop/blink: the shortest rest between two reactions (defaults 3000 / 2200);
378
+ * breathe: the half-period (default 550). */
379
+ minGapMs?: number;
380
+ /** hop/blink: the longest rest (defaults 7000 / 5500). Ignored by breathe. */
381
+ maxGapMs?: number;
367
382
  }
368
383
  /** RFC 0058 §4 — a screen-change / state-change announcement. `text` EMPTY means
369
384
  * "announce this node's own resolved name + value", which is what makes a status line
@@ -3176,6 +3191,18 @@ export interface WebViewProps {
3176
3191
  config?: WebViewConfig;
3177
3192
  capabilitiesRequired?: string[];
3178
3193
  }
3194
+ /** RFC 0069 — `ScreenDescriptor.transcriptScroll`. */
3195
+ export interface TranscriptScroll {
3196
+ /** `$service:` path to a SEND TOKEN. Each new non-empty value is a send; an
3197
+ * empty one resets the policy (a new conversation rests at the top). */
3198
+ sendPath: string;
3199
+ /** `$service:` path to the id of the component to pin. It may change while
3200
+ * the pin is held (an optimistic row replaced by the server's copy) without
3201
+ * starting a new pin. Empty = follow the tail with nothing pinned. */
3202
+ anchorPath?: string;
3203
+ /** Accessible name of the jump-to-latest control. Default "Jump to latest". */
3204
+ jumpLabel?: string;
3205
+ }
3179
3206
  export interface ScreenDescriptor {
3180
3207
  screenId: string;
3181
3208
  renderer: RendererKind;
@@ -3194,6 +3221,11 @@ export interface ScreenDescriptor {
3194
3221
  * up (a chat transcript). Tapping it animates back to the bottom. Absent/false =
3195
3222
  * a normal top-anchored scroll. Honored by the app host (Router). */
3196
3223
  scrollToBottom?: boolean;
3224
+ /** RFC 0069 — the chat transcript scroll policy. On a send the host pins the
3225
+ * named component near the top and reserves the space the reply grows into;
3226
+ * when the reply outgrows it the host follows the tail. A drag pauses
3227
+ * following, and only then is a jump-to-latest control shown. */
3228
+ transcriptScroll?: TranscriptScroll;
3197
3229
  /** Present when `renderer` is `webview_native_bridge` or `webview_ds`. */
3198
3230
  url?: string;
3199
3231
  capabilitiesRequired?: string[];
@@ -6,6 +6,14 @@ export declare const screenDescriptorSchema: {
6
6
  readonly type: "object";
7
7
  readonly additionalProperties: false;
8
8
  readonly required: readonly ["screenId", "renderer", "schemaVersion"];
9
+ readonly not: {
10
+ readonly required: readonly ["transcriptScroll", "scrollToBottom"];
11
+ readonly properties: {
12
+ readonly scrollToBottom: {
13
+ readonly const: true;
14
+ };
15
+ };
16
+ };
9
17
  readonly properties: {
10
18
  readonly screenId: {
11
19
  readonly type: "string";
@@ -30,6 +38,24 @@ export declare const screenDescriptorSchema: {
30
38
  readonly scrollToBottom: {
31
39
  readonly type: "boolean";
32
40
  };
41
+ readonly transcriptScroll: {
42
+ readonly type: "object";
43
+ readonly additionalProperties: false;
44
+ readonly required: readonly ["sendPath"];
45
+ readonly properties: {
46
+ readonly sendPath: {
47
+ readonly type: "string";
48
+ readonly pattern: "^\\$service:";
49
+ };
50
+ readonly anchorPath: {
51
+ readonly type: "string";
52
+ readonly pattern: "^$|^\\$service:";
53
+ };
54
+ readonly jumpLabel: {
55
+ readonly type: "string";
56
+ };
57
+ };
58
+ };
33
59
  readonly url: {
34
60
  readonly type: "string";
35
61
  readonly format: "uri";
@@ -650,6 +676,23 @@ export declare const screenDescriptorSchema: {
650
676
  };
651
677
  };
652
678
  };
679
+ readonly ambientMotion: {
680
+ readonly type: "object";
681
+ readonly additionalProperties: false;
682
+ readonly properties: {
683
+ readonly kind: {
684
+ readonly type: "string";
685
+ };
686
+ readonly minGapMs: {
687
+ readonly type: "integer";
688
+ readonly minimum: 0;
689
+ };
690
+ readonly maxGapMs: {
691
+ readonly type: "integer";
692
+ readonly minimum: 0;
693
+ };
694
+ };
695
+ };
653
696
  readonly boxShadow: {
654
697
  readonly type: "object";
655
698
  readonly additionalProperties: false;
@@ -1621,6 +1664,23 @@ export declare const widgetSnapshotSchema: {
1621
1664
  };
1622
1665
  };
1623
1666
  };
1667
+ readonly ambientMotion: {
1668
+ readonly type: "object";
1669
+ readonly additionalProperties: false;
1670
+ readonly properties: {
1671
+ readonly kind: {
1672
+ readonly type: "string";
1673
+ };
1674
+ readonly minGapMs: {
1675
+ readonly type: "integer";
1676
+ readonly minimum: 0;
1677
+ };
1678
+ readonly maxGapMs: {
1679
+ readonly type: "integer";
1680
+ readonly minimum: 0;
1681
+ };
1682
+ };
1683
+ };
1624
1684
  readonly boxShadow: {
1625
1685
  readonly type: "object";
1626
1686
  readonly additionalProperties: false;
@@ -8082,6 +8082,12 @@ var screenDescriptorSchema = {
8082
8082
  type: "object",
8083
8083
  additionalProperties: false,
8084
8084
  required: ["screenId", "renderer", "schemaVersion"],
8085
+ // RFC 0069 replaces the legacy policy; combining both selects different
8086
+ // host implementations, so reject that ambiguous descriptor.
8087
+ not: {
8088
+ required: ["transcriptScroll", "scrollToBottom"],
8089
+ properties: { scrollToBottom: { const: true } }
8090
+ },
8085
8091
  properties: {
8086
8092
  screenId: { type: "string", minLength: 1 },
8087
8093
  renderer: {
@@ -8097,6 +8103,19 @@ var screenDescriptorSchema = {
8097
8103
  // Chat-transcript scroll: host pins the scroll to the bottom with a
8098
8104
  // floating "jump to latest" affordance. Absent/false = top-anchored.
8099
8105
  scrollToBottom: { type: "boolean" },
8106
+ // RFC 0069 — the chat transcript scroll policy (pin the sent turn, follow the
8107
+ // reply). Both paths are `$service:` sentinels: a literal token could never
8108
+ // change, so the policy would never fire.
8109
+ transcriptScroll: {
8110
+ type: "object",
8111
+ additionalProperties: false,
8112
+ required: ["sendPath"],
8113
+ properties: {
8114
+ sendPath: { type: "string", pattern: "^\\$service:" },
8115
+ anchorPath: { type: "string", pattern: "^$|^\\$service:" },
8116
+ jumpLabel: { type: "string" }
8117
+ }
8118
+ },
8100
8119
  url: { type: "string", format: "uri" },
8101
8120
  capabilitiesRequired: {
8102
8121
  type: "array",
@@ -8511,6 +8530,18 @@ var screenDescriptorSchema = {
8511
8530
  trigger: { type: "string", enum: ["on_change", "on_appear", "both", "none"] }
8512
8531
  }
8513
8532
  },
8533
+ // RFC 0069 — recurring, finite, transform-only motion on a decorative node. `kind`
8534
+ // is an open string: an unknown kind renders no motion, so an older validator must
8535
+ // not reject a newer one.
8536
+ ambientMotion: {
8537
+ type: "object",
8538
+ additionalProperties: false,
8539
+ properties: {
8540
+ kind: { type: "string" },
8541
+ minGapMs: { type: "integer", minimum: 0 },
8542
+ maxGapMs: { type: "integer", minimum: 0 }
8543
+ }
8544
+ },
8514
8545
  // #1052 — explicit drop shadow (colour token + radius + offset), alongside the `shadow` token form.
8515
8546
  boxShadow: {
8516
8547
  type: "object",
@@ -6961,6 +6961,12 @@ var screenDescriptorSchema = {
6961
6961
  type: "object",
6962
6962
  additionalProperties: false,
6963
6963
  required: ["screenId", "renderer", "schemaVersion"],
6964
+ // RFC 0069 replaces the legacy policy; combining both selects different
6965
+ // host implementations, so reject that ambiguous descriptor.
6966
+ not: {
6967
+ required: ["transcriptScroll", "scrollToBottom"],
6968
+ properties: { scrollToBottom: { const: true } }
6969
+ },
6964
6970
  properties: {
6965
6971
  screenId: { type: "string", minLength: 1 },
6966
6972
  renderer: {
@@ -6976,6 +6982,19 @@ var screenDescriptorSchema = {
6976
6982
  // Chat-transcript scroll: host pins the scroll to the bottom with a
6977
6983
  // floating "jump to latest" affordance. Absent/false = top-anchored.
6978
6984
  scrollToBottom: { type: "boolean" },
6985
+ // RFC 0069 — the chat transcript scroll policy (pin the sent turn, follow the
6986
+ // reply). Both paths are `$service:` sentinels: a literal token could never
6987
+ // change, so the policy would never fire.
6988
+ transcriptScroll: {
6989
+ type: "object",
6990
+ additionalProperties: false,
6991
+ required: ["sendPath"],
6992
+ properties: {
6993
+ sendPath: { type: "string", pattern: "^\\$service:" },
6994
+ anchorPath: { type: "string", pattern: "^$|^\\$service:" },
6995
+ jumpLabel: { type: "string" }
6996
+ }
6997
+ },
6979
6998
  url: { type: "string", format: "uri" },
6980
6999
  capabilitiesRequired: {
6981
7000
  type: "array",
@@ -7390,6 +7409,18 @@ var screenDescriptorSchema = {
7390
7409
  trigger: { type: "string", enum: ["on_change", "on_appear", "both", "none"] }
7391
7410
  }
7392
7411
  },
7412
+ // RFC 0069 — recurring, finite, transform-only motion on a decorative node. `kind`
7413
+ // is an open string: an unknown kind renders no motion, so an older validator must
7414
+ // not reject a newer one.
7415
+ ambientMotion: {
7416
+ type: "object",
7417
+ additionalProperties: false,
7418
+ properties: {
7419
+ kind: { type: "string" },
7420
+ minGapMs: { type: "integer", minimum: 0 },
7421
+ maxGapMs: { type: "integer", minimum: 0 }
7422
+ }
7423
+ },
7393
7424
  // #1052 — explicit drop shadow (colour token + radius + offset), alongside the `shadow` token form.
7394
7425
  boxShadow: {
7395
7426
  type: "object",