@wix/himalaya-cli 0.1194.0 → 0.1196.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.
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/builder.d.ts +1 -0
- package/dist/cli.mjs +99 -21
- package/dist/preview-assets.generated.bin +0 -0
- package/guides/component-reference.json +4 -47
- package/guides/component-reference.md +4 -16
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -32680,7 +32680,7 @@ function resolveRowAction(action, ctx) {
|
|
|
32680
32680
|
params: Object.fromEntries(Object.entries(params).map(([k, v]) => [k, typeof v === "number" || typeof v === "boolean" ? String(v) : v]))
|
|
32681
32681
|
};
|
|
32682
32682
|
}
|
|
32683
|
-
var useResolvedId, FONT, rowShareFloor, A11ySwitch, A11Y_PART, A11ySlider, A11ySelectionControl, actOf, withSelection, resolveItemDeep, A11yTabs, A11ySegmented, disclosureSeq, A11yDisclosure;
|
|
32683
|
+
var useResolvedId, FONT, rowShareFloor, A11ySwitch, A11Y_PART, A11ySlider, A11ySelectionControl, actOf, withSelection, resolveItemDeep, tabsActiveColorName, swipeTabPage, A11yTabs, A11ySegmented, disclosureSeq, A11yDisclosure;
|
|
32684
32684
|
var init_controls = __esm({
|
|
32685
32685
|
"../../core/web-renderer/src/a11y/controls.tsx"() {
|
|
32686
32686
|
"use strict";
|
|
@@ -32978,14 +32978,33 @@ var init_controls = __esm({
|
|
|
32978
32978
|
}
|
|
32979
32979
|
return value;
|
|
32980
32980
|
};
|
|
32981
|
-
|
|
32981
|
+
tabsActiveColorName = (raw, bound) => {
|
|
32982
|
+
const name = typeof raw === "string" && isBinding(raw) ? bound : raw;
|
|
32983
|
+
return typeof name === "string" && name.trim() ? name.trim() : void 0;
|
|
32984
|
+
};
|
|
32985
|
+
swipeTabPage = (pages, tabId) => {
|
|
32986
|
+
const cases = Array.isArray(pages?.cases) ? pages.cases : [];
|
|
32987
|
+
const dflt = pages?.defaultCase ?? pages?.default_case;
|
|
32988
|
+
return (cases.find((c) => c?.id === tabId) ?? cases.find((c) => c?.id === dflt))?.content;
|
|
32989
|
+
};
|
|
32990
|
+
A11yTabs = ({ props, ctx, wrap, renderChild }) => {
|
|
32982
32991
|
const C = ctx.color;
|
|
32983
32992
|
const optionsPath = props.optionsPath ?? props.options_path;
|
|
32984
32993
|
const boundTabs = useBoundValue(ctx, typeof optionsPath === "string" && isBinding(optionsPath) ? optionsPath : "");
|
|
32994
|
+
const activeColorPath = props.activeColorPath ?? props.active_color_path;
|
|
32995
|
+
const boundActive = useBoundValue(ctx, typeof activeColorPath === "string" && isBinding(activeColorPath) ? activeColorPath : "");
|
|
32996
|
+
const activeName = tabsActiveColorName(activeColorPath, boundActive);
|
|
32985
32997
|
const selectedId = useResolvedId(props.selectedId, ctx);
|
|
32986
32998
|
const tabs = Array.isArray(boundTabs) && boundTabs.length ? boundTabs : Array.isArray(props.tabs) ? props.tabs : [];
|
|
32987
|
-
const
|
|
32999
|
+
const pages = props.style === "swipe" ? props.swipePages : void 0;
|
|
33000
|
+
const [local, setLocal] = React4.useState(void 0);
|
|
33001
|
+
React4.useEffect(() => {
|
|
33002
|
+
setLocal(void 0);
|
|
33003
|
+
}, [selectedId]);
|
|
33004
|
+
const current = local != null && tabs.some((t) => t.id === local) ? local : selectedId;
|
|
33005
|
+
const selIdx = Math.max(0, tabs.findIndex((t) => t.id === (current ?? tabs[0]?.id)));
|
|
32988
33006
|
const select = (i) => {
|
|
33007
|
+
if (pages) setLocal(tabs[i]?.id);
|
|
32989
33008
|
const act = actOf(tabs[i], props.onChange ?? props.onSelect);
|
|
32990
33009
|
if (ctx.onAction && act) ctx.onAction(withSelection(act, { selectedId: String(tabs[i]?.id ?? i) }));
|
|
32991
33010
|
};
|
|
@@ -32999,7 +33018,28 @@ var init_controls = __esm({
|
|
|
32999
33018
|
e.preventDefault();
|
|
33000
33019
|
if (ni !== selIdx) select(ni);
|
|
33001
33020
|
};
|
|
33002
|
-
|
|
33021
|
+
const pagerRef = React4.useRef(null);
|
|
33022
|
+
const settle = React4.useRef(void 0);
|
|
33023
|
+
React4.useEffect(() => {
|
|
33024
|
+
const el = pagerRef.current;
|
|
33025
|
+
if (!el || !el.clientWidth) return;
|
|
33026
|
+
const x = selIdx * el.clientWidth;
|
|
33027
|
+
if (Math.abs(el.scrollLeft - x) > 1) el.scrollTo?.({ left: x, behavior: "smooth" });
|
|
33028
|
+
}, [selIdx, pages]);
|
|
33029
|
+
React4.useEffect(() => () => clearTimeout(settle.current), []);
|
|
33030
|
+
const onPagerScroll = () => {
|
|
33031
|
+
clearTimeout(settle.current);
|
|
33032
|
+
settle.current = setTimeout(() => {
|
|
33033
|
+
const el = pagerRef.current;
|
|
33034
|
+
if (!el || !el.clientWidth) return;
|
|
33035
|
+
const i = Math.round(el.scrollLeft / el.clientWidth);
|
|
33036
|
+
if (i >= 0 && i < tabs.length && i !== selIdx) select(i);
|
|
33037
|
+
}, 120);
|
|
33038
|
+
};
|
|
33039
|
+
const accent = C("accentPrimary", "#116DFF");
|
|
33040
|
+
const activeTint = activeName ? C(activeName, accent) : accent;
|
|
33041
|
+
const activeLabel = activeName ? C(activeName, accentTextColor(ctx)) : accentTextColor(ctx);
|
|
33042
|
+
const strip3 = /* @__PURE__ */ jsx5("div", { role: "tablist", onKeyDown, style: { display: "flex", gap: 18, borderBottom: `1px solid ${C("border", "#ddd")}`, width: "100%", ...pages ? {} : wrap }, children: tabs.map((t, i) => {
|
|
33003
33043
|
const on3 = i === selIdx;
|
|
33004
33044
|
return /* @__PURE__ */ jsxs2(
|
|
33005
33045
|
"button",
|
|
@@ -33009,7 +33049,7 @@ var init_controls = __esm({
|
|
|
33009
33049
|
"aria-selected": on3,
|
|
33010
33050
|
tabIndex: on3 ? 0 : -1,
|
|
33011
33051
|
onClick: () => select(i),
|
|
33012
|
-
style: { all: "unset", display: "flex", gap: 6, alignItems: "center", minWidth: 44, minHeight: 44, padding: "10px 0", fontFamily: FONT(ctx), fontWeight: 600, fontSize: pxToRem(14), cursor: "pointer", color: on3 ?
|
|
33052
|
+
style: { all: "unset", display: "flex", gap: 6, alignItems: "center", minWidth: 44, minHeight: 44, padding: "10px 0", fontFamily: FONT(ctx), fontWeight: 600, fontSize: pxToRem(14), cursor: "pointer", color: on3 ? activeLabel : C("textSecondary", "#777"), borderBottom: on3 ? `2px solid ${activeTint}` : "2px solid transparent", marginBottom: -1 },
|
|
33013
33053
|
children: [
|
|
33014
33054
|
asText2(t.label),
|
|
33015
33055
|
t.badge && /* @__PURE__ */ jsx5("span", { "aria-hidden": true, style: { fontSize: pxToRem(10), fontWeight: 700, background: C("surfaceTertiary", "#eee"), color: C("textSecondary", "#666"), padding: "1px 6px", borderRadius: 999 }, children: t.badge })
|
|
@@ -33018,6 +33058,27 @@ var init_controls = __esm({
|
|
|
33018
33058
|
t.id ?? i
|
|
33019
33059
|
);
|
|
33020
33060
|
}) });
|
|
33061
|
+
if (!pages) return strip3;
|
|
33062
|
+
return /* @__PURE__ */ jsxs2("div", { style: { display: "flex", flexDirection: "column", width: "100%", ...wrap }, children: [
|
|
33063
|
+
strip3,
|
|
33064
|
+
/* @__PURE__ */ jsx5(
|
|
33065
|
+
"div",
|
|
33066
|
+
{
|
|
33067
|
+
ref: pagerRef,
|
|
33068
|
+
"data-part": "pager",
|
|
33069
|
+
onScroll: onPagerScroll,
|
|
33070
|
+
style: { display: "flex", overflowX: "auto", scrollSnapType: "x mandatory", scrollbarWidth: "none", overscrollBehaviorX: "contain", width: "100%" },
|
|
33071
|
+
children: tabs.map((t, i) => {
|
|
33072
|
+
const content = swipeTabPage(pages, t.id);
|
|
33073
|
+
return (
|
|
33074
|
+
// An off-screen page is `inert`, not just `aria-hidden`: its controls must leave the
|
|
33075
|
+
// tab order too, or Tab focuses a hidden control (axe `aria-hidden-focus`).
|
|
33076
|
+
/* @__PURE__ */ jsx5("div", { role: "tabpanel", "aria-hidden": i !== selIdx, ...i !== selIdx ? { inert: "" } : {}, style: { flex: "0 0 100%", minWidth: 0, scrollSnapAlign: "start", scrollSnapStop: "always", boxSizing: "border-box" }, children: content ? renderChild(content) : null }, t.id ?? i)
|
|
33077
|
+
);
|
|
33078
|
+
})
|
|
33079
|
+
}
|
|
33080
|
+
)
|
|
33081
|
+
] });
|
|
33021
33082
|
};
|
|
33022
33083
|
A11ySegmented = ({ props, ctx, wrap }) => {
|
|
33023
33084
|
const C = ctx.color;
|
|
@@ -34214,6 +34275,23 @@ function ensureMarqueeKeyframes() {
|
|
|
34214
34275
|
el.textContent = "@keyframes himalaya-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}";
|
|
34215
34276
|
document.head.appendChild(el);
|
|
34216
34277
|
}
|
|
34278
|
+
function swipeTabsAdoption(children) {
|
|
34279
|
+
if (!Array.isArray(children)) return children;
|
|
34280
|
+
const out2 = [];
|
|
34281
|
+
for (let i = 0; i < children.length; i++) {
|
|
34282
|
+
const node = children[i];
|
|
34283
|
+
const next = children[i + 1];
|
|
34284
|
+
const n = node && typeof node === "object" ? normalize(node) : void 0;
|
|
34285
|
+
if (n?.type === "Tabs" && n.props?.style === "swipe" && next && typeof next === "object" && normalize(next).type === "FragmentSlot") {
|
|
34286
|
+
const props = { ...n.props, swipePages: normalize(next).props };
|
|
34287
|
+
out2.push(node.body ? { ...node, body: { ...node.body, props } } : { ...node, props });
|
|
34288
|
+
i++;
|
|
34289
|
+
continue;
|
|
34290
|
+
}
|
|
34291
|
+
out2.push(node);
|
|
34292
|
+
}
|
|
34293
|
+
return out2;
|
|
34294
|
+
}
|
|
34217
34295
|
function wantsRowStretch(node) {
|
|
34218
34296
|
const { type, props } = normalize(node);
|
|
34219
34297
|
if (type === "Toggle") return true;
|
|
@@ -35517,7 +35595,7 @@ function renderInner(node, ctx) {
|
|
|
35517
35595
|
switch (type) {
|
|
35518
35596
|
// ───────────── layout ─────────────
|
|
35519
35597
|
case "VStack":
|
|
35520
|
-
return /* @__PURE__ */ jsx8("div", { style: { display: "flex", flexDirection: "column", gap: gap(props.spacing), alignItems: alignItems(props.alignment), alignSelf: "stretch", ...wrap }, children: kids2(props.children, ctx) });
|
|
35598
|
+
return /* @__PURE__ */ jsx8("div", { style: { display: "flex", flexDirection: "column", gap: gap(props.spacing), alignItems: alignItems(props.alignment), alignSelf: "stretch", ...wrap }, children: kids2(swipeTabsAdoption(props.children), ctx) });
|
|
35521
35599
|
case "HStack": {
|
|
35522
35600
|
const rowFills = Array.isArray(props.children) && props.children.some((c) => {
|
|
35523
35601
|
const n = normalize(c);
|
|
@@ -61154,21 +61232,21 @@ var init_preview_assets_generated = __esm({
|
|
|
61154
61232
|
"../../packages/serve/src/preview-assets.generated.ts"() {
|
|
61155
61233
|
init_preview_assets_format();
|
|
61156
61234
|
PREVIEW_ASSET_MANIFEST = [
|
|
61157
|
-
{ key: "assets/index-
|
|
61158
|
-
{ key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset:
|
|
61159
|
-
{ key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset:
|
|
61160
|
-
{ key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset:
|
|
61161
|
-
{ key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset:
|
|
61162
|
-
{ key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset:
|
|
61163
|
-
{ key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset:
|
|
61164
|
-
{ key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset:
|
|
61165
|
-
{ key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset:
|
|
61166
|
-
{ key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset:
|
|
61167
|
-
{ key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset:
|
|
61168
|
-
{ key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset:
|
|
61169
|
-
{ key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset:
|
|
61170
|
-
{ key: "index.html", contentType: "text/html; charset=utf-8", offset:
|
|
61171
|
-
{ key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset:
|
|
61235
|
+
{ key: "assets/index-DguBaniI.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1137597, sha256: "22b20d33f0bdfb014b6ca6594cfd8ad3a6b5a2d152b0e36b077aaf85eeff679e" },
|
|
61236
|
+
{ key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1137605, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
|
|
61237
|
+
{ key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1142215, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
|
|
61238
|
+
{ key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1630799, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
|
|
61239
|
+
{ key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1721723, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
|
|
61240
|
+
{ key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1812707, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
|
|
61241
|
+
{ key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1903687, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
|
|
61242
|
+
{ key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1994559, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
|
|
61243
|
+
{ key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 2085539, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
|
|
61244
|
+
{ key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2194175, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
|
|
61245
|
+
{ key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2303259, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
|
|
61246
|
+
{ key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2412307, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
|
|
61247
|
+
{ key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2520007, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
|
|
61248
|
+
{ key: "index.html", contentType: "text/html; charset=utf-8", offset: 2608115, length: 4947, sha256: "585aea745576a63c4e6115d570ec4eb9d9facbf7fdb3cdce22246b5880cd0ca6" },
|
|
61249
|
+
{ key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2613062, length: 17344, sha256: "d057298d75e7373e5e2c4d11b7d1bcbea88e03af555ba63d97641c78509c58e4" }
|
|
61172
61250
|
];
|
|
61173
61251
|
}
|
|
61174
61252
|
});
|
|
Binary file
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
"componentCount": 84,
|
|
6
6
|
"notImplementedComponents": [
|
|
7
7
|
"Text",
|
|
8
|
-
"Picker",
|
|
9
|
-
"Tabs",
|
|
10
8
|
"Carousel",
|
|
11
9
|
"CollapsingHeader",
|
|
12
10
|
"Banner",
|
|
@@ -322,7 +320,9 @@
|
|
|
322
320
|
"name": "Picker",
|
|
323
321
|
"category": "Form primitives",
|
|
324
322
|
"propsType": "PickerProps",
|
|
325
|
-
"bindings": [
|
|
323
|
+
"bindings": [
|
|
324
|
+
"optionsPath"
|
|
325
|
+
],
|
|
326
326
|
"dispatches": [
|
|
327
327
|
{
|
|
328
328
|
"callback": "onChange",
|
|
@@ -341,17 +341,6 @@
|
|
|
341
341
|
]
|
|
342
342
|
}
|
|
343
343
|
],
|
|
344
|
-
"notImplemented": {
|
|
345
|
-
"props": [
|
|
346
|
-
"optionsPath",
|
|
347
|
-
"placeholder"
|
|
348
|
-
],
|
|
349
|
-
"platforms": [
|
|
350
|
-
"ios"
|
|
351
|
-
],
|
|
352
|
-
"severity": "styling",
|
|
353
|
-
"note": "Standalone Picker: `optionsPath` does not bind (it does inside a FormField); `placeholder` is only the accessible name, never shown."
|
|
354
|
-
},
|
|
355
344
|
"propsSource": "export interface PickerProps {\n options: PickerOption[];\n selectedId?: string;\n onChange?: Action;\n placeholder?: string;\n /** \"$service:\" sentinel → worker array of {id,label}; `options` is the fallback. */\n optionsPath?: string;\n}"
|
|
356
345
|
},
|
|
357
346
|
{
|
|
@@ -475,6 +464,7 @@
|
|
|
475
464
|
"propsType": "TabsProps",
|
|
476
465
|
"bindings": [
|
|
477
466
|
"optionsPath",
|
|
467
|
+
"activeColorPath",
|
|
478
468
|
"selectedId"
|
|
479
469
|
],
|
|
480
470
|
"dispatches": [
|
|
@@ -484,39 +474,6 @@
|
|
|
484
474
|
"encoding": "string"
|
|
485
475
|
}
|
|
486
476
|
],
|
|
487
|
-
"notImplemented": [
|
|
488
|
-
{
|
|
489
|
-
"props": [
|
|
490
|
-
"style"
|
|
491
|
-
],
|
|
492
|
-
"platforms": [
|
|
493
|
-
"ios"
|
|
494
|
-
],
|
|
495
|
-
"severity": "styling",
|
|
496
|
-
"note": "`style: \"swipe\"` renders as plain top tabs."
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
"props": [
|
|
500
|
-
"activeColorPath"
|
|
501
|
-
],
|
|
502
|
-
"platforms": [
|
|
503
|
-
"android"
|
|
504
|
-
],
|
|
505
|
-
"severity": "styling",
|
|
506
|
-
"note": "`activeColorPath` does not tint the active tab."
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
"props": [
|
|
510
|
-
"activeColorPath",
|
|
511
|
-
"style"
|
|
512
|
-
],
|
|
513
|
-
"platforms": [
|
|
514
|
-
"web"
|
|
515
|
-
],
|
|
516
|
-
"severity": "styling",
|
|
517
|
-
"note": "`activeColorPath` does not tint the active tab. `style: \"swipe\"` renders as plain top tabs."
|
|
518
|
-
}
|
|
519
|
-
],
|
|
520
477
|
"propsSource": "export interface TabsProps {\n tabs: TabItem[];\n /** Literal id, or a binding-aware `$service:`/`$item.` live selection. */\n selectedId: string;\n onChange?: Action;\n style?: \"top\" | \"swipe\";\n /** `$service:` binding → a live tabs array (overrides `tabs`). */\n optionsPath?: string;\n /** `$service:` binding → a token name for the active-tab color. */\n activeColorPath?: string;\n}"
|
|
521
478
|
},
|
|
522
479
|
{
|
|
@@ -51,7 +51,7 @@ See also **[Modifiers](#modifiers)** (the `modifiers` block) and **[Actions](#ac
|
|
|
51
51
|
| `Form` | Form primitives | — |
|
|
52
52
|
| `FormField` | Form primitives | — |
|
|
53
53
|
| `FieldError` | Form primitives | `textPath` |
|
|
54
|
-
| `Picker` | Form primitives |
|
|
54
|
+
| `Picker` | Form primitives | `optionsPath` |
|
|
55
55
|
| `DatePicker` | Form primitives | `valuePath` |
|
|
56
56
|
| `StatefulSection` | State envelopes | — |
|
|
57
57
|
| `Skeleton` | State envelopes | — |
|
|
@@ -59,7 +59,7 @@ See also **[Modifiers](#modifiers)** (the `modifiers` block) and **[Actions](#ac
|
|
|
59
59
|
| `WorkerSubtree` | Bounded worker-authored component tree | `treeJsonPath` |
|
|
60
60
|
| `SearchField` | Search & filter | — |
|
|
61
61
|
| `FilterChips` | Search & filter | `optionsPath`, `selectedIds` |
|
|
62
|
-
| `Tabs` | Navigation primitives | `optionsPath`, `selectedId` |
|
|
62
|
+
| `Tabs` | Navigation primitives | `optionsPath`, `activeColorPath`, `selectedId` |
|
|
63
63
|
| `SegmentedControl` | Navigation primitives | `optionsPath`, `selectedId` |
|
|
64
64
|
| `Carousel` | Navigation primitives | `itemsPath` |
|
|
65
65
|
| `Pager` | Navigation primitives | — |
|
|
@@ -116,18 +116,14 @@ See also **[Modifiers](#modifiers)** (the `modifiers` block) and **[Actions](#ac
|
|
|
116
116
|
|
|
117
117
|
These props are accepted by the schema and pass validation, but the named platform's renderer never reads them — they silently do nothing (no warning, no log). Prefer a prop NOT listed here, or drive the behaviour from a worker.
|
|
118
118
|
|
|
119
|
-
**Scope:
|
|
119
|
+
**Scope: 21 of 84 components, all of them web / android / ios-only** — every other component/platform pair reads every prop it decodes. The list splits in two, and the halves mean different things:
|
|
120
120
|
|
|
121
121
|
- **`category` (8: `BottomSheet`, `Menu`, `Tooltip`, `Popover`, `ChipsInput`, `OtpInput`, `MediaPlayer`, `TimeGrid`)** — the prop changes the component's *kind*. These genuinely are **not implemented**: an overlay renders always-visible inline, so the component does not do the job its name implies. Check the row's note for a working alternative — for a dismissible sheet it is `presentation: "sheet"` on the navigating `Action`, not `BottomSheet`.
|
|
122
|
-
- **`styling` (
|
|
122
|
+
- **`styling` (13: `Text`, `Carousel`, `CollapsingHeader`, `Banner`, `Snackbar`, `WebView`, `Slider`, `SelectionControl`, `ActivityIndicator`, `Map`, `Video`, `PdfView`, `Agenda`)** — the component itself **works**; only the listed prop is inert. `Slider` on iOS is a working slider whose `debounceMs` does not throttle — not a broken `Slider`. Use the component; just do not depend on that one prop.
|
|
123
123
|
|
|
124
124
|
| Component | Unread props | Platform | Kind | Note |
|
|
125
125
|
|---|---|---|---|---|
|
|
126
126
|
| `Text` | `textDirection`, `animateReveal` | web | styling | `textDirection` sets no `dir`. `animateReveal` does not animate. |
|
|
127
|
-
| `Picker` | `optionsPath`, `placeholder` | ios | styling | Standalone Picker: `optionsPath` does not bind (it does inside a FormField); `placeholder` is only the accessible name, never shown. |
|
|
128
|
-
| `Tabs` | `style` | ios | styling | `style: "swipe"` renders as plain top tabs. |
|
|
129
|
-
| `Tabs` | `activeColorPath` | android | styling | `activeColorPath` does not tint the active tab. |
|
|
130
|
-
| `Tabs` | `activeColorPath`, `style` | web | styling | `activeColorPath` does not tint the active tab. `style: "swipe"` renders as plain top tabs. |
|
|
131
127
|
| `Carousel` | `autoplayIntervalMs` | android, web | styling | No autoplay. |
|
|
132
128
|
| `CollapsingHeader` | `imageAsset`, `collapsedHeight`, `parallaxFactor` | web | styling | A static hero: `imageAsset`, `collapsedHeight` and `parallaxFactor` are inert (only `imageUrl` is read). |
|
|
133
129
|
| `CollapsingHeader` | `imageAsset` | android | styling | `imageAsset` (a baked asset name) is not resolved — only `imageUrl` paints the hero. |
|
|
@@ -813,8 +809,6 @@ export interface PickerProps {
|
|
|
813
809
|
}
|
|
814
810
|
```
|
|
815
811
|
|
|
816
|
-
> ⚠️ **Implemented, but these props are inert on ios:** `optionsPath`, `placeholder` — Standalone Picker: `optionsPath` does not bind (it does inside a FormField); `placeholder` is only the accessible name, never shown.
|
|
817
|
-
|
|
818
812
|
**Dispatches** — see [What a control sends](#what-a-control-sends-action-payloads):
|
|
819
813
|
|
|
820
814
|
| callback | key | type |
|
|
@@ -971,12 +965,6 @@ export interface TabsProps {
|
|
|
971
965
|
}
|
|
972
966
|
```
|
|
973
967
|
|
|
974
|
-
> ⚠️ **Implemented, but these props are inert on ios:** `style` — `style: "swipe"` renders as plain top tabs.
|
|
975
|
-
|
|
976
|
-
> ⚠️ **Implemented, but these props are inert on android:** `activeColorPath` — `activeColorPath` does not tint the active tab.
|
|
977
|
-
|
|
978
|
-
> ⚠️ **Implemented, but these props are inert on web:** `activeColorPath`, `style` — `activeColorPath` does not tint the active tab. `style: "swipe"` renders as plain top tabs.
|
|
979
|
-
|
|
980
968
|
**Dispatches** — see [What a control sends](#what-a-control-sends-action-payloads):
|
|
981
969
|
|
|
982
970
|
| callback | key | type |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1196.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": [
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"artifactId": "himalaya-cli"
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
|
-
"falconPackageHash": "
|
|
70
|
+
"falconPackageHash": "e95a1f768b7ab7776b103e30d88d9c746126ab8916e74519b48e3d94"
|
|
71
71
|
}
|