@wix/himalaya-cli 0.1196.0 → 0.1198.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/cli.mjs CHANGED
@@ -6818,7 +6818,6 @@ function walk(node, registry, path2, out2) {
6818
6818
  var SYSTEM_FONT_FAMILY, TONAL_ELEVATION_ALPHA, COLOR_TOKEN_PROPS, TYPOGRAPHY_TOKEN_PROPS;
6819
6819
  var init_tokens = __esm({
6820
6820
  "../../core/ts/src/tokens.ts"() {
6821
- "use strict";
6822
6821
  SYSTEM_FONT_FAMILY = "$system";
6823
6822
  TONAL_ELEVATION_ALPHA = [0, 0.05, 0.08, 0.11, 0.12, 0.14];
6824
6823
  COLOR_TOKEN_PROPS = {
@@ -6869,7 +6868,6 @@ function resolveTranslation(value, catalog, sourceCatalog) {
6869
6868
  var BINDING_SIGILS, BINDING_SIGIL_RE, TRANSLATION_PREFIX, TRANSLATION_KEY_RE;
6870
6869
  var init_bindings = __esm({
6871
6870
  "../../core/ts/src/bindings.ts"() {
6872
- "use strict";
6873
6871
  BINDING_SIGILS = ["service", "flag", "item", "t"];
6874
6872
  BINDING_SIGIL_RE = new RegExp(
6875
6873
  `^\\$(?:${BINDING_SIGILS.filter((s) => s !== "t").join("|")})\\b|^\\$t:`
@@ -33277,6 +33275,32 @@ var init_overlayModality = __esm({
33277
33275
  }
33278
33276
  });
33279
33277
 
33278
+ // ../../core/web-renderer/src/sheet.ts
33279
+ function sheetDetents(detents) {
33280
+ if (!Array.isArray(detents)) return [];
33281
+ const kept = detents.filter((d) => typeof d === "number" && d > 0 && d <= 1);
33282
+ return [...new Set(kept)].sort((a, b) => a - b);
33283
+ }
33284
+ function nextDetentIndex(index, count2) {
33285
+ return count2 <= 1 ? 0 : (index + 1) % count2;
33286
+ }
33287
+ function detentAfterDrag(index, count2, dy) {
33288
+ if (count2 <= 1 || Math.abs(dy) < DETENT_DRAG_THRESHOLD) return Math.max(0, Math.min(index, count2 - 1));
33289
+ return Math.max(0, Math.min(count2 - 1, index + (dy < 0 ? 1 : -1)));
33290
+ }
33291
+ function sheetEdge(edge) {
33292
+ return edge === "leading" || edge === "trailing" ? edge : "bottom";
33293
+ }
33294
+ var DETENT_DRAG_THRESHOLD, SIDE_SHEET_MAX_WIDTH, SIDE_SHEET_FRACTION, SIDE_SHEET_WIDTH_CSS;
33295
+ var init_sheet = __esm({
33296
+ "../../core/web-renderer/src/sheet.ts"() {
33297
+ DETENT_DRAG_THRESHOLD = 24;
33298
+ SIDE_SHEET_MAX_WIDTH = 320;
33299
+ SIDE_SHEET_FRACTION = 0.85;
33300
+ SIDE_SHEET_WIDTH_CSS = `min(${SIDE_SHEET_MAX_WIDTH}px, ${SIDE_SHEET_FRACTION * 100}%)`;
33301
+ }
33302
+ });
33303
+
33280
33304
  // ../../core/web-renderer/src/listGestures.tsx
33281
33305
  import { useRef, useState as useState2 } from "react";
33282
33306
  import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
@@ -36190,7 +36214,7 @@ function renderInner(node, ctx) {
36190
36214
  }
36191
36215
  }
36192
36216
  }
36193
- var useIsomorphicLayoutEffect, ResponsiveGrid, SPLIT_EXPANDED_MIN_WIDTH, SPLIT_COLUMN_GAP, ResponsiveSplitView, ABSOLUTE_URL_RE, appearKeyframesInjected, pressStylesInjected, FOCUS_RING_CSS, focusStylesInjected, HLIST_CHILD_CSS, hListStylesInjected, listAnimateRuntimeInstalled, transitionKeyframesInjected, countUpRuntimeInjected, MEASURE_PREFIX, measureRuntimeInjected, revealRuntimeInjected, vectorAnimStylesInjected, scrollProgressRuntimeInjected, confettiRuntimeInjected, lottieRuntimeInjected, riveRuntimeInjected, gradientKeyframesInjected, parallaxRuntimeInjected, spinKeyframesInjected, marqueeKeyframesInjected, alignItems, zJustifyItems, hAlignItems, bodyFont, kids2, rowKidCtx, rowKids, staggeredKids, asTextL10n, asBoundText, useBoundString, InterpolatedTextView, txt, selectFragmentCase, fragmentValueHash, fragmentSlotContent, FragmentSlotNode, RichContentEditorNode, WorkerSubtreeNode, RichContentNode, resolveItemDeep2, resolveSwipeActions, resolveModBindings, resolvedComponentId, directServiceBindings, ReactiveDirectScalars, HiddenGate, KEYBOARD_INPUT_MODES, AUTOCAPITALIZE_VALUES, ENTER_KEY_HINTS, AUTOGROW_CEILING, EditableField, MenuNode, LoadMoreSentinel, FieldErrorNode, FormView, MediaSlotProvider, MEDIA_ITEM_BINDABLE, MediaPlayerView, VideoNode, PdfViewNode, WebViewNode, InteractivePicker, InteractiveDatePicker, InteractiveSearchField, InteractiveStepper, SYNTHETIC_TAP_ROLE, SYNTHETIC_TABINDEX, INFERRED_DECORATIVE, SELF_RENDERED_LEAF, ROLE_WHEN_NAMED, AUTHORED_ROLE, PENDING_RANGE, RANGE_ROLES, NODE_A11Y_ATTRS, INTERACTIVE_ROLES, ALWAYS_INTERACTIVE_COMPONENT_TYPES, controlNode, ToggleNode, SliderNode, SelectionControlNode, TabsNode, SegmentedControlNode, DisclosureGroupNode, GridNode, SplitViewNode, TextNode, ImageNode, ANIMATION_LEAF, LottieNode, RiveNode, AvatarNode, IconNode, ButtonNode, OtpInputNode, ProgressBarNode, ACTIVITY_DEFAULT_NAME, ActivityIndicatorNode, NATIVELY_TABBABLE, BottomSheetNode, PRESENTED_OVERLAY_ATTR, PopoverNode, ChipsInputNode, ChipNode, TableNode, GaugeRing, GaugeNode, RATING_METRICS, ratingMetrics, RatingNode, AvatarStripNode, CHART_STROKE_CYCLE, chartStrokeAt, chartBarCenter, ChartNode, donutSliceOpacity, DonutChartNode, LegendMarker, LegendNode, cellAlign, DataTableNode, voiceNoteState, voiceNoteDelivery, VOICE_NOTE_DEFAULT_BARS, clampBarCount, VoiceNoteNode, TimelineNode, WheelPickerNode, ColorPickerNode, FilterChipsNode, TILE_PX, MAX_MERCATOR_LAT, DEFAULT_TILE_MAX_ZOOM, CIRCLE_SEGMENTS, METRES_PER_DEG_LAT, MARKER_HIT_RADIUS, SHAPE_HIT_RADIUS, MapNode, CollapsingHeaderNode, UnsupportedOnSurface, CALENDAR_DATE_ONLY_RE, CAL_DEFAULT_MAX_DOTS, CAL_AGENDA_INITIAL_DAYS, CAL_AGENDA_PAGE_DAYS, CAL_DEFAULT_SNAP_MINUTES, CAL_UNASSIGNED_LANE_ID, MonthCalendarNode, TimeGridNode, AgendaNode, ARIA_ROLE, initialFocusScheduled, PRESENTED_SCOPE, focusRoots, A11yHintDescription, WebRenderer;
36217
+ var useIsomorphicLayoutEffect, ResponsiveGrid, SPLIT_EXPANDED_MIN_WIDTH, SPLIT_COLUMN_GAP, ResponsiveSplitView, ABSOLUTE_URL_RE, appearKeyframesInjected, pressStylesInjected, FOCUS_RING_CSS, focusStylesInjected, HLIST_CHILD_CSS, hListStylesInjected, listAnimateRuntimeInstalled, transitionKeyframesInjected, countUpRuntimeInjected, MEASURE_PREFIX, measureRuntimeInjected, revealRuntimeInjected, vectorAnimStylesInjected, scrollProgressRuntimeInjected, confettiRuntimeInjected, lottieRuntimeInjected, riveRuntimeInjected, gradientKeyframesInjected, parallaxRuntimeInjected, spinKeyframesInjected, marqueeKeyframesInjected, alignItems, zJustifyItems, hAlignItems, bodyFont, kids2, rowKidCtx, rowKids, staggeredKids, asTextL10n, asBoundText, useBoundString, InterpolatedTextView, txt, selectFragmentCase, fragmentValueHash, fragmentSlotContent, FragmentSlotNode, RichContentEditorNode, WorkerSubtreeNode, RichContentNode, resolveItemDeep2, resolveSwipeActions, resolveModBindings, resolvedComponentId, directServiceBindings, withRootStyle, ReactiveDirectScalars, HiddenGate, KEYBOARD_INPUT_MODES, AUTOCAPITALIZE_VALUES, ENTER_KEY_HINTS, AUTOGROW_CEILING, EditableField, MenuNode, LoadMoreSentinel, FieldErrorNode, FormView, MediaSlotProvider, MEDIA_ITEM_BINDABLE, MediaPlayerView, VideoNode, PdfViewNode, WebViewNode, InteractivePicker, InteractiveDatePicker, InteractiveSearchField, InteractiveStepper, SYNTHETIC_TAP_ROLE, SYNTHETIC_TABINDEX, INFERRED_DECORATIVE, SELF_RENDERED_LEAF, ROLE_WHEN_NAMED, AUTHORED_ROLE, PENDING_RANGE, RANGE_ROLES, NODE_A11Y_ATTRS, INTERACTIVE_ROLES, ALWAYS_INTERACTIVE_COMPONENT_TYPES, controlNode, ToggleNode, SliderNode, SelectionControlNode, TabsNode, SegmentedControlNode, DisclosureGroupNode, GridNode, SplitViewNode, TextNode, ImageNode, ANIMATION_LEAF, LottieNode, RiveNode, AvatarNode, IconNode, ButtonNode, OtpInputNode, ProgressBarNode, ACTIVITY_DEFAULT_NAME, ActivityIndicatorNode, NATIVELY_TABBABLE, BottomSheetNode, PRESENTED_OVERLAY_ATTR, PopoverNode, ChipsInputNode, ChipNode, TableNode, GaugeRing, GaugeNode, RATING_METRICS, ratingMetrics, RatingNode, AvatarStripNode, CHART_STROKE_CYCLE, chartStrokeAt, chartBarCenter, ChartNode, donutSliceOpacity, DonutChartNode, LegendMarker, LegendNode, cellAlign, DataTableNode, voiceNoteState, voiceNoteDelivery, VOICE_NOTE_DEFAULT_BARS, clampBarCount, VoiceNoteNode, TimelineNode, WheelPickerNode, ColorPickerNode, FilterChipsNode, TILE_PX, MAX_MERCATOR_LAT, DEFAULT_TILE_MAX_ZOOM, CIRCLE_SEGMENTS, METRES_PER_DEG_LAT, MARKER_HIT_RADIUS, SHAPE_HIT_RADIUS, MapNode, CollapsingHeaderNode, UnsupportedOnSurface, CALENDAR_DATE_ONLY_RE, CAL_DEFAULT_MAX_DOTS, CAL_AGENDA_INITIAL_DAYS, CAL_AGENDA_PAGE_DAYS, CAL_DEFAULT_SNAP_MINUTES, CAL_UNASSIGNED_LANE_ID, MonthCalendarNode, TimeGridNode, AgendaNode, ARIA_ROLE, initialFocusScheduled, PRESENTED_SCOPE, focusRoots, A11yHintDescription, WebRenderer;
36194
36218
  var init_renderNode = __esm({
36195
36219
  "../../core/web-renderer/src/renderNode.tsx"() {
36196
36220
  "use strict";
@@ -36214,6 +36238,7 @@ var init_renderNode = __esm({
36214
36238
  init_controls();
36215
36239
  init_modalStack();
36216
36240
  init_overlayModality();
36241
+ init_sheet();
36217
36242
  init_listGestures();
36218
36243
  init_worker_subtree();
36219
36244
  init_preview_surfaces();
@@ -36572,12 +36597,22 @@ var init_renderNode = __esm({
36572
36597
  add(modifiers?.background);
36573
36598
  add(modifiers?.backgroundColorPath ?? modifiers?.background_color_path);
36574
36599
  add(modifiers?.border?.color);
36600
+ add(modifiers?.accessibilityLabel ?? modifiers?.accessibility_label);
36575
36601
  const props = node?.body?.props;
36576
36602
  add(props?.tint);
36577
36603
  add(props?.color);
36578
36604
  return [...out2];
36579
36605
  };
36580
- ReactiveDirectScalars = ({ node, ctx, bindings }) => {
36606
+ withRootStyle = (content, style) => {
36607
+ if (Array.isArray(content)) return content.map((child) => withRootStyle(child, style));
36608
+ if (!React7.isValidElement(content)) return content;
36609
+ if (content.type === React7.Fragment) {
36610
+ return React7.cloneElement(content, {}, React7.Children.map(content.props.children, (child) => withRootStyle(child, style)));
36611
+ }
36612
+ const element = content;
36613
+ return React7.cloneElement(element, { style: { ...element.props.style, ...style } });
36614
+ };
36615
+ ReactiveDirectScalars = ({ node, ctx, bindings, style }) => {
36581
36616
  const [, rerender] = React7.useState(0);
36582
36617
  const bindingKey = bindings.join("|");
36583
36618
  React7.useEffect(() => {
@@ -36585,7 +36620,8 @@ var init_renderNode = __esm({
36585
36620
  const unsubs = bindings.map((binding2) => ctx.provider.subscribe(servicePath(binding2), () => rerender((n) => n + 1)));
36586
36621
  return () => unsubs.forEach((unsubscribe) => unsubscribe());
36587
36622
  }, [ctx.provider, bindingKey]);
36588
- return /* @__PURE__ */ jsx8(Fragment4, { children: renderNodeInner(node, ctx) });
36623
+ const rendered = renderNodeInner(node, ctx);
36624
+ return /* @__PURE__ */ jsx8(Fragment4, { children: style ? withRootStyle(rendered, style) : rendered });
36589
36625
  };
36590
36626
  HiddenGate = ({ ctx, binding: binding2, children }) => {
36591
36627
  const v = useBoundValue(ctx, binding2);
@@ -38256,17 +38292,117 @@ var init_renderNode = __esm({
38256
38292
  const bound = useResolvedScalar(props.presentedPath, ctx);
38257
38293
  const gated = props.presentedPath != null || props.presented != null;
38258
38294
  const presented = props.presentedPath != null ? bound : props.presented;
38259
- const shown2 = !gated || presented === true || presented === "true";
38295
+ const gateOpen = !gated || presented === true || presented === "true";
38296
+ const [dismissed, setDismissed] = React7.useState(false);
38297
+ React7.useEffect(() => {
38298
+ if (!gateOpen) setDismissed(false);
38299
+ }, [gateOpen]);
38300
+ const shown2 = gateOpen && !dismissed;
38260
38301
  const modal = isOverlayModal("BottomSheet", props.modal);
38302
+ const dismissible = props.dismissible !== false;
38303
+ const edge = sheetEdge(props.edge);
38304
+ const detents = edge === "bottom" ? sheetDetents(props.detents) : [];
38305
+ const [detentIndex, setDetentIndex] = React7.useState(0);
38306
+ React7.useEffect(() => {
38307
+ if (!shown2) setDetentIndex(0);
38308
+ }, [shown2]);
38261
38309
  const dialogRef = React7.useRef(null);
38262
38310
  const trapTab = useModalOverlay(dialogRef, shown2 && modal);
38311
+ const latest = React7.useRef({ ctx, onDismiss: props.onDismiss });
38312
+ latest.current = { ctx, onDismiss: props.onDismiss };
38313
+ const closed = React7.useRef(false);
38314
+ React7.useEffect(() => {
38315
+ if (shown2) closed.current = false;
38316
+ }, [shown2]);
38317
+ const dismiss = React7.useCallback(() => {
38318
+ if (closed.current) return;
38319
+ closed.current = true;
38320
+ setDismissed(true);
38321
+ const { ctx: now, onDismiss } = latest.current;
38322
+ if (onDismiss != null) now.onAction?.(resolveItemDeep2(onDismiss, now));
38323
+ }, []);
38324
+ React7.useEffect(() => {
38325
+ if (!shown2 || !dismissible) return;
38326
+ const doc = dialogRef.current?.ownerDocument;
38327
+ if (!doc) return;
38328
+ const onKey = (e) => {
38329
+ const d = dialogRef.current;
38330
+ if (e.key !== "Escape" || !d || !isWithinTopModal(d)) return;
38331
+ if (d.querySelector(`[role="menu"], [${PRESENTED_OVERLAY_ATTR}]`) != null) return;
38332
+ e.stopPropagation();
38333
+ dismiss();
38334
+ };
38335
+ doc.addEventListener("keydown", onKey, true);
38336
+ return () => doc.removeEventListener("keydown", onKey, true);
38337
+ }, [shown2, dismissible, dismiss]);
38338
+ const drag = React7.useRef(null);
38263
38339
  if (!shown2) return null;
38264
- const grabber = props.showGrabber !== false;
38340
+ const grabber = props.showGrabber !== false && edge === "bottom";
38265
38341
  const sheet = idiomControls(ctx.idiom).sheet;
38266
- return /* @__PURE__ */ jsx8("div", { style: { position: "absolute", inset: 0, background: "rgba(0,0,0,.35)", zIndex: 50, display: "flex", flexDirection: "column", justifyContent: "flex-end", ...wrap }, children: /* @__PURE__ */ jsxs5("div", { ref: dialogRef, role: "dialog", "aria-modal": modal ? "true" : void 0, tabIndex: modal ? -1 : void 0, onKeyDown: modal ? trapTab : void 0, "aria-label": props.title != null ? sheetTitle : "Sheet", style: { width: "100%", background: C("surfacePrimary", "#fff"), borderRadius: `${sheet.cornerRadius}px ${sheet.cornerRadius}px 0 0`, boxShadow: "0 -4px 24px rgba(0,0,0,.12)", overflow: "hidden" }, children: [
38267
- grabber && /* @__PURE__ */ jsx8("div", { style: { display: "flex", justifyContent: "center", padding: "8px 0 4px" }, children: /* @__PURE__ */ jsx8("div", { style: { width: sheet.grabberWidth, height: sheet.grabberHeight, borderRadius: 999, background: C("surfaceTertiary", "#d8dce2") } }) }),
38268
- /* @__PURE__ */ jsx8("div", { style: { padding: "8px 16px 16px" }, children: props.content ? renderNode(props.content, ctx) : null })
38269
- ] }) });
38342
+ const r = `${sheet.cornerRadius}px`;
38343
+ const side2 = edge !== "bottom";
38344
+ const index = Math.min(detentIndex, Math.max(detents.length - 1, 0));
38345
+ const sized = detents.length ? { height: `${detents[index] * 100}%`, maxHeight: `${detents[detents.length - 1] * 100}%`, display: "flex", flexDirection: "column" } : {};
38346
+ const shape = side2 ? {
38347
+ width: SIDE_SHEET_WIDTH_CSS,
38348
+ height: "100%",
38349
+ display: "flex",
38350
+ flexDirection: "column",
38351
+ // Unoffset, so it falls toward the scrim whichever physical side RTL puts the panel on —
38352
+ // box-shadow has no logical form, and the half cast at the screen edge is off-screen anyway.
38353
+ boxShadow: "0 0 24px rgba(0,0,0,.12)",
38354
+ // Rounded on the side that faces the screen — logical corners, so RTL flips them too.
38355
+ ...edge === "leading" ? { borderStartEndRadius: r, borderEndEndRadius: r } : { borderStartStartRadius: r, borderEndStartRadius: r }
38356
+ } : { width: "100%", borderRadius: `${r} ${r} 0 0`, boxShadow: "0 -4px 24px rgba(0,0,0,.12)", ...sized };
38357
+ const handleBar = /* @__PURE__ */ jsx8("div", { style: { width: sheet.grabberWidth, height: sheet.grabberHeight, borderRadius: 999, background: C("surfaceTertiary", "#d8dce2") } });
38358
+ const handleBox = { display: "flex", justifyContent: "center", padding: "8px 0 4px", flexShrink: 0 };
38359
+ return /* @__PURE__ */ jsx8(
38360
+ "div",
38361
+ {
38362
+ "data-sheet-scrim": "",
38363
+ onClick: dismissible ? (e) => {
38364
+ if (drag.current?.moved) {
38365
+ drag.current = null;
38366
+ return;
38367
+ }
38368
+ if (e.target === e.currentTarget) dismiss();
38369
+ } : void 0,
38370
+ style: { position: "absolute", inset: 0, background: "rgba(0,0,0,.35)", zIndex: 50, display: "flex", ...side2 ? { flexDirection: "row", justifyContent: edge === "leading" ? "flex-start" : "flex-end" } : { flexDirection: "column", justifyContent: "flex-end" }, ...wrap },
38371
+ children: /* @__PURE__ */ jsxs5("div", { ref: dialogRef, role: "dialog", "data-sheet-edge": edge, "aria-modal": modal ? "true" : void 0, tabIndex: modal ? -1 : void 0, onKeyDown: modal ? trapTab : void 0, "aria-label": props.title != null ? sheetTitle : "Sheet", style: { background: C("surfacePrimary", "#fff"), overflow: "hidden", ...shape }, children: [
38372
+ grabber && (detents.length > 1 ? /* @__PURE__ */ jsx8(
38373
+ "button",
38374
+ {
38375
+ type: "button",
38376
+ "aria-label": "Resize sheet",
38377
+ "data-sheet-handle": "",
38378
+ onClick: () => {
38379
+ if (drag.current?.moved) {
38380
+ drag.current = null;
38381
+ return;
38382
+ }
38383
+ drag.current = null;
38384
+ setDetentIndex((i) => nextDetentIndex(i, detents.length));
38385
+ },
38386
+ onPointerDown: (e) => {
38387
+ drag.current = { y: e.clientY, moved: false };
38388
+ e.currentTarget.setPointerCapture?.(e.pointerId);
38389
+ },
38390
+ onPointerUp: (e) => {
38391
+ const d = drag.current;
38392
+ if (!d) return;
38393
+ const dy = e.clientY - d.y;
38394
+ if (Math.abs(dy) < DETENT_DRAG_THRESHOLD) return;
38395
+ d.moved = true;
38396
+ setDetentIndex(detentAfterDrag(index, detents.length, dy));
38397
+ },
38398
+ style: { ...handleBox, width: "100%", border: "none", background: "transparent", cursor: "ns-resize", touchAction: "none" },
38399
+ children: handleBar
38400
+ }
38401
+ ) : /* @__PURE__ */ jsx8("div", { style: handleBox, children: handleBar })),
38402
+ /* @__PURE__ */ jsx8("div", { style: { padding: side2 ? "16px" : "8px 16px 16px", ...side2 || detents.length ? { flex: 1, minHeight: 0, overflowY: "auto" } : {} }, children: props.content ? renderNode(props.content, ctx) : null })
38403
+ ] })
38404
+ }
38405
+ );
38270
38406
  });
38271
38407
  PRESENTED_OVERLAY_ATTR = "data-hm-presented-overlay";
38272
38408
  PopoverNode = withExtras("PopoverNode", ({ props, ctx, wrap }) => {
@@ -61232,21 +61368,21 @@ var init_preview_assets_generated = __esm({
61232
61368
  "../../packages/serve/src/preview-assets.generated.ts"() {
61233
61369
  init_preview_assets_format();
61234
61370
  PREVIEW_ASSET_MANIFEST = [
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" }
61371
+ { key: "assets/index-Bj2h2VLm.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1140295, sha256: "4501893b27a6121e14d79939efd53d5c88fd923cddab4314ecb5eb41de3233b9" },
61372
+ { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1140303, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
61373
+ { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1144913, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
61374
+ { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1633497, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
61375
+ { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1724421, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
61376
+ { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1815405, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
61377
+ { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1906385, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
61378
+ { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1997257, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
61379
+ { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 2088237, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
61380
+ { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2196873, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
61381
+ { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2305957, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
61382
+ { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2415005, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
61383
+ { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2522705, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
61384
+ { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2610813, length: 4947, sha256: "4bb31d3503d8874f0c8b90db2fafd58b0229ff64adeec94b2debf5ace8151c7a" },
61385
+ { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2615760, length: 17344, sha256: "d057298d75e7373e5e2c4d11b7d1bcbea88e03af555ba63d97641c78509c58e4" }
61250
61386
  ];
61251
61387
  }
61252
61388
  });
Binary file
@@ -13,7 +13,6 @@
13
13
  "Slider",
14
14
  "SelectionControl",
15
15
  "ActivityIndicator",
16
- "BottomSheet",
17
16
  "Menu",
18
17
  "Tooltip",
19
18
  "Popover",
@@ -770,42 +769,6 @@
770
769
  "bindings": [
771
770
  "presentedPath"
772
771
  ],
773
- "notImplemented": [
774
- {
775
- "props": [
776
- "edge"
777
- ],
778
- "platforms": [
779
- "ios"
780
- ],
781
- "severity": "category",
782
- "note": "`edge` (side sheet) is ignored — it always opens from the bottom."
783
- },
784
- {
785
- "props": [
786
- "detents",
787
- "edge"
788
- ],
789
- "platforms": [
790
- "android"
791
- ],
792
- "severity": "category",
793
- "note": "`detents` are ignored (opens full height). `edge` (side sheet) is ignored — it always opens from the bottom."
794
- },
795
- {
796
- "props": [
797
- "detents",
798
- "dismissible",
799
- "onDismiss",
800
- "edge"
801
- ],
802
- "platforms": [
803
- "web"
804
- ],
805
- "severity": "category",
806
- "note": "`detents` are ignored (opens full height). No scrim tap / Escape to close, so `onDismiss` never fires — for a dismissible sheet here, present the content as its own screen with `presentation: \"sheet\"` on the navigating `Action`. `edge` (side sheet) is ignored — it always opens from the bottom."
807
- }
808
- ],
809
772
  "propsSource": "export interface BottomSheetProps {\n /** Place the sheet as a root-payload sibling (normally the final child), not\n * inside the trigger row, so its presented overlay can cover the whole screen. */\n content?: Component;\n /** Fractional heights, e.g. [0.3, 0.9]. */\n detents?: number[];\n dismissible?: boolean;\n showGrabber?: boolean;\n onDismiss?: Action;\n presented?: boolean;\n /** \"$service:\" binding → bool (overrides `presented`). */\n presentedPath?: string;\n edge?: \"bottom\" | \"leading\" | \"trailing\";\n /** The overlay traps focus and hides the rest of the tree from AT while\n * presented (iOS `accessibilityViewIsModal`, Android `isTraversalGroup`, ARIA\n * `aria-modal`). TRI-STATE: absent takes this component's default (**true**), an\n * explicit `false` opts it out. */\n modal?: boolean;\n}"
810
773
  },
811
774
  {
@@ -116,9 +116,9 @@ 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: 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:
119
+ **Scope: 20 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
- - **`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`.
121
+ - **`category` (7: `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.
122
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 |
@@ -133,9 +133,6 @@ These props are accepted by the schema and pass validation, but the named platfo
133
133
  | `Slider` | `debounceMs` | ios, web | styling | `debounceMs` does not throttle onChange. |
134
134
  | `SelectionControl` | `groupId` | android, web | styling | Radios sharing a `groupId` are not mutually exclusive. |
135
135
  | `ActivityIndicator` | `ring` | ios, android, web | styling | The `ring` style is never selected (determinate vs indeterminate follows `value`). |
136
- | `BottomSheet` | `edge` | ios | category | `edge` (side sheet) is ignored — it always opens from the bottom. |
137
- | `BottomSheet` | `detents`, `edge` | android | category | `detents` are ignored (opens full height). `edge` (side sheet) is ignored — it always opens from the bottom. |
138
- | `BottomSheet` | `detents`, `dismissible`, `onDismiss`, `edge` | web | category | `detents` are ignored (opens full height). No scrim tap / Escape to close, so `onDismiss` never fires — for a dismissible sheet here, present the content as its own screen with `presentation: "sheet"` on the navigating `Action`. `edge` (side sheet) is ignored — it always opens from the bottom. |
139
136
  | `Menu` | `itemsPath` | ios | category | `itemsPath` does not bind items. |
140
137
  | `Menu` | `style`, `itemsPath` | android, web | category | `style` is ignored — `context`/`action_sheet` render as a dropdown. `itemsPath` does not bind items. |
141
138
  | `Tooltip` | `edge`, `trigger`, `onDismiss` | ios, android, web | category | Not an overlay — renders always-expanded inline; `edge`, `trigger` and dismissal are inert. |
@@ -1309,12 +1306,6 @@ export interface BottomSheetProps {
1309
1306
  }
1310
1307
  ```
1311
1308
 
1312
- > ⚠️ **Not implemented on ios:** `edge` — `edge` (side sheet) is ignored — it always opens from the bottom.
1313
-
1314
- > ⚠️ **Not implemented on android:** `detents`, `edge` — `detents` are ignored (opens full height). `edge` (side sheet) is ignored — it always opens from the bottom.
1315
-
1316
- > ⚠️ **Not implemented on web:** `detents`, `dismissible`, `onDismiss`, `edge` — `detents` are ignored (opens full height). No scrim tap / Escape to close, so `onDismiss` never fires — for a dismissible sheet here, present the content as its own screen with `presentation: "sheet"` on the navigating `Action`. `edge` (side sheet) is ignored — it always opens from the bottom.
1317
-
1318
1309
  #### Menu
1319
1310
 
1320
1311
  ```ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1196.0",
3
+ "version": "0.1198.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": "e95a1f768b7ab7776b103e30d88d9c746126ab8916e74519b48e3d94"
70
+ "falconPackageHash": "da789b2bd209029f397baa8fd5f1d53d0cd64549c3eb4006ffb204d0"
71
71
  }