@wix/himalaya-cli 0.1043.0 → 0.1045.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.
Binary file
@@ -83,7 +83,11 @@ family whose faces could not be fetched, which would otherwise ship as its fallb
83
83
  ### Token discipline — every value is a `TokenRef`, never a literal
84
84
  Colors, gradients, shadows, materials, motions are named tokens (`{ token: "accentPrimary" }`), never
85
85
  hex. `himi validate` rejects unknown names; a literal hex is a design smell even when it "works." Use the **semantic** roles for meaning:
86
- `success` / `warning` / `danger` for status, `textOnAccent` for text sitting on an accent surface.
86
+ `success` / `warning` / `danger` for status, `textOnAccent` for text sitting on an accent surface,
87
+ and `accentText` for accent-COLOURED text on the page (links, "See all"). `accentPrimary` is the
88
+ accent FILL; many brand accents fail 4.5:1 as text, so brand derivation writes a same-hue
89
+ `accentText` that passes, and secondary/tertiary/link/plain Button labels already use it. It is
90
+ optional: every renderer falls back to `accentPrimary` when a tokens.json has none.
87
91
 
88
92
  ### Copy is configuration — never hardcoded in the descriptor
89
93
  User-facing text is white-labelable **configuration**, exactly like a color token — a template/app
@@ -116,6 +116,22 @@ himi template publish --target bo # from the app dir
116
116
  himi template publish --dir <app> --source-dir <dir> --name <name> --target bo
117
117
  ```
118
118
 
119
+ A **template tree that still carries the `__HIMI_APP_NAME__` placeholder** (a generated
120
+ template, as `himi init` receives it) publishes with `--dir` alone:
121
+
122
+ ```sh
123
+ himi template publish --dir <template-dir> --target bo
124
+ ```
125
+
126
+ Its `himalaya.content.json` name is the placeholder, so the template name comes from the
127
+ **directory name**, and the preview is built from a substituted copy titled with the template's
128
+ own `title`. Pass `--name` only to publish under a different name. Every name, given or
129
+ derived, must be a lowercase kebab id short enough to fit once `himi-template-` is prefixed; a
130
+ name that fails is refused before anything is built.
131
+
132
+ A published template does not follow its source: after changing a template, publish it again so
133
+ `himi template list --remote` and `himi init … --remote` serve the new version.
134
+
119
135
  `publish` builds a previewable release from the app and attaches the editable scaffold source,
120
136
  sentinel-izing identity so it re-parameterizes on the next `himi init`. It then appears in
121
137
  `himi template list --remote` and is scaffoldable with `himi init … --remote`. (Only the app
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1043.0",
3
+ "version": "0.1045.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": "a5e6e48bed44a158e954ca18b52ebff9ef438aac9078851aa8034c92"
68
+ "falconPackageHash": "0a575418cdf281d15de4e62af6654a6d47a91cf26467dad0a437484b"
69
69
  }
@@ -126,6 +126,14 @@ elevation subtle (≤ 2:1 vs the page, dark arms stepping *lighter* as elevation
126
126
  rises); accents ≥ 3:1 on the page with textOnAccent ≥ 4.5:1; semantic colors
127
127
  ≥ 3:1 on the page and on their own surfaces.
128
128
 
129
+ `accentText` (#3275) is deliberately NOT in the ladder. It is the accent's text
130
+ arm, which non-filled button labels paint and which falls back to `accentPrimary`
131
+ when absent. Brand application derives it per arm: the brand itself when it already
132
+ clears 4.5:1 on `surfacePrimary`, else the smallest same-hue step that does
133
+ (`deriveAccentText` in `core/ts/src/brand-color-math.ts`). A kit never has to ship
134
+ it, and `core/ts/tests/brand-tokens.test.ts` checks that every kit × brand result
135
+ clears 4.5:1.
136
+
129
137
  Deliberate judgment calls (the 2026-07 color reconsideration):
130
138
 
131
139
  - **playful** — the hot-pink `textPrimary` failed 7:1 everywhere; legibility
@@ -94,6 +94,11 @@
94
94
  "light": "#E3E3DF",
95
95
  "dark": "#262626",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#9C5853",
100
+ "dark": "#BA837E",
101
+ "highContrast": "#CA9E9B"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#F6E9E7",
92
92
  "dark": "#241312"
93
+ },
94
+ "accentText": {
95
+ "light": "#8E3D6B",
96
+ "dark": "#B47D9C",
97
+ "highContrast": "#C49AB2"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -98,6 +98,11 @@
98
98
  "pushShadow": {
99
99
  "light": "#D61F6E",
100
100
  "dark": "#7E1044"
101
+ },
102
+ "accentText": {
103
+ "light": "#6C3FC4",
104
+ "dark": "#9E80D8",
105
+ "highContrast": "#B39BE0"
101
106
  }
102
107
  },
103
108
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "pushShadow": {
95
95
  "light": "#D61F6E",
96
96
  "dark": "#7E1044"
97
+ },
98
+ "accentText": {
99
+ "light": "#4C4BC4",
100
+ "dark": "#8787D7",
101
+ "highContrast": "#A2A1E0"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#DCE2F5",
95
95
  "dark": "#262C42",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#5B3E96",
100
+ "dark": "#9987BE",
101
+ "highContrast": "#B0A2CD"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#FBE5E7",
92
92
  "dark": "#2B131A"
93
+ },
94
+ "accentText": {
95
+ "light": "#1A6BA1",
96
+ "dark": "#5594BE",
97
+ "highContrast": "#7FAECE"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#000000",
95
95
  "dark": "#FFFFFF",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#A84A29",
100
+ "dark": "#CF7A5D",
101
+ "highContrast": "#DA9982"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#FFD6D6",
92
92
  "dark": "#291111"
93
+ },
94
+ "accentText": {
95
+ "light": "#B43F0F",
96
+ "dark": "#DE6D3F",
97
+ "highContrast": "#E69371"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#CAC4D0",
95
95
  "dark": "#49454F",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#0F6B5C",
100
+ "dark": "#5E9C92",
101
+ "highContrast": "#82B2AA"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#F9DEDC",
92
92
  "dark": "#33191E"
93
+ },
94
+ "accentText": {
95
+ "light": "#2B7349",
96
+ "dark": "#5F9A77",
97
+ "highContrast": "#82B195"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#262B36",
95
95
  "dark": "#262B36",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#8B6FFF",
100
+ "dark": "#957CFF",
101
+ "highContrast": "#AE9AFF"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#221214",
92
92
  "dark": "#221214"
93
+ },
94
+ "accentText": {
95
+ "light": "#9474E1",
96
+ "dark": "#9A7CE2",
97
+ "highContrast": "#B49DEA"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#E3E3DF",
95
95
  "dark": "#262626",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#AE501F",
100
+ "dark": "#C57F5A",
101
+ "highContrast": "#D39E82"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#F6E9E7",
92
92
  "dark": "#241312"
93
+ },
94
+ "accentText": {
95
+ "light": "#945639",
96
+ "dark": "#B4836C",
97
+ "highContrast": "#C49D8A"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#262B36",
95
95
  "dark": "#262B36",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#C36E65",
100
+ "dark": "#C87B74",
101
+ "highContrast": "#D49892"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -98,6 +98,11 @@
98
98
  "glossBottom": {
99
99
  "light": "#AEB6C0",
100
100
  "dark": "#1B1F26"
101
+ },
102
+ "accentText": {
103
+ "light": "#922637",
104
+ "dark": "#D1929B",
105
+ "highContrast": "#D499A2"
101
106
  }
102
107
  },
103
108
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#CAC4D0",
95
95
  "dark": "#49454F",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#AB512B",
100
+ "dark": "#C67E5F",
101
+ "highContrast": "#D29981"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#FEF2F2",
92
92
  "dark": "#241214"
93
+ },
94
+ "accentText": {
95
+ "light": "#16697A",
96
+ "dark": "#5F98A4",
97
+ "highContrast": "#86B1BA"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -102,6 +102,11 @@
102
102
  "neumoDark": {
103
103
  "light": "#AEB5C0",
104
104
  "dark": "#17191D"
105
+ },
106
+ "accentText": {
107
+ "light": "#566856",
108
+ "dark": "#92A093",
109
+ "highContrast": "#9FABA0"
105
110
  }
106
111
  },
107
112
  "spacing": {
@@ -98,6 +98,11 @@
98
98
  "neumoDark": {
99
99
  "light": "#AEB5C0",
100
100
  "dark": "#17191D"
101
+ },
102
+ "accentText": {
103
+ "light": "#536A47",
104
+ "dark": "#8CA380",
105
+ "highContrast": "#9CB092"
101
106
  }
102
107
  },
103
108
  "spacing": {