@wix/himalaya-cli 0.1022.0 → 0.1023.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.
@@ -349,7 +349,39 @@ export interface Modifiers {
349
349
  /** RFC 0058 §3.1 — additive state that a single role cannot carry. A node may
350
350
  * hold several. */
351
351
  accessibilityTraits?: AccessibilityTrait[];
352
- }
352
+ /** RFC 0058 §4 — explicit traversal index within the nearest focus group. Absent ⇒
353
+ * the arm's visual / DOM order. The lower index is reached FIRST, which is why iOS
354
+ * (whose `accessibilitySortPriority` is descending) negates it. */
355
+ focusOrder?: number;
356
+ /** RFC 0058 §4 — this node's subtree is ONE traversal scope: children are ordered
357
+ * relative to each other, then the group takes its parent's slot (iOS
358
+ * `shouldGroupAccessibilityChildren`, Android `isTraversalGroup`, ARIA grouping). */
359
+ focusGroup?: boolean;
360
+ /** RFC 0058 §4 — AT / keyboard focus lands here when the screen or a newly presented
361
+ * modal appears. At most one per focus scope. */
362
+ initialFocus?: boolean;
363
+ /** RFC 0058 §4 — a general live-region announcement, on any node and any transition.
364
+ * The generalization of `FragmentSlotCase.accessibilityAnnouncement`, which only ever
365
+ * fired on a fragment-slot case swap. */
366
+ announce?: LiveRegion;
367
+ }
368
+ /** RFC 0058 §4 — a screen-change / state-change announcement. `text` EMPTY means
369
+ * "announce this node's own resolved name + value", which is what makes a status line
370
+ * whose text just changed need no authoring at all. */
371
+ export interface LiveRegion {
372
+ /** Default `"polite"`. `"assertive"` interrupts, and is for errors and destructive
373
+ * confirmations — the wrong default everywhere else. */
374
+ politeness?: LiveRegionPoliteness;
375
+ /** Explicit text; empty/absent ⇒ the node's own resolved name + value. */
376
+ text?: string;
377
+ /** Default `"on_change"`. `"none"` is the deliberate opt-out — an enum rather than a
378
+ * flag pair precisely so a default of "on" can still be turned off. */
379
+ trigger?: LiveRegionTrigger;
380
+ }
381
+ /** RFC 0058 §4 — how hard an announcement pushes. */
382
+ export type LiveRegionPoliteness = "polite" | "assertive";
383
+ /** RFC 0058 §4 — when an announcement fires. */
384
+ export type LiveRegionTrigger = "on_change" | "on_appear" | "both" | "none";
353
385
  /** RFC 0058 §3.2 — the role AT announces for a node. The union of what iOS,
354
386
  * Android, web and React Native can express; an arm that cannot express a role
355
387
  * exactly falls back to the nearest one it has. */
@@ -1109,6 +1141,11 @@ export interface AlertDialogProps {
1109
1141
  confirmLabel?: string;
1110
1142
  /** #1059 — cancel button label; overridable. Default "Cancel". */
1111
1143
  cancelLabel?: string;
1144
+ /** RFC 0058 §4 — the overlay traps focus and hides the rest of the tree from AT while
1145
+ * presented (iOS `accessibilityViewIsModal`, Android `isTraversalGroup`, ARIA
1146
+ * `aria-modal`). TRI-STATE: absent takes this component's default (**true**), an
1147
+ * explicit `false` opts it out. */
1148
+ modal?: boolean;
1112
1149
  }
1113
1150
  export type TextMark = "bold" | "italic" | "underline" | "code" | "link";
1114
1151
  export interface TextRun {
@@ -1195,6 +1232,11 @@ export interface BottomSheetProps {
1195
1232
  /** "$service:" binding → bool (overrides `presented`). */
1196
1233
  presentedPath?: string;
1197
1234
  edge?: "bottom" | "leading" | "trailing";
1235
+ /** RFC 0058 §4 — the overlay traps focus and hides the rest of the tree from AT while
1236
+ * presented (iOS `accessibilityViewIsModal`, Android `isTraversalGroup`, ARIA
1237
+ * `aria-modal`). TRI-STATE: absent takes this component's default (**true**), an
1238
+ * explicit `false` opts it out. */
1239
+ modal?: boolean;
1198
1240
  }
1199
1241
  export interface MenuItem {
1200
1242
  id: string;
@@ -1210,6 +1252,11 @@ export interface MenuProps {
1210
1252
  style?: "dropdown" | "context" | "action_sheet";
1211
1253
  /** "$service:" binding → MenuItem[]. */
1212
1254
  itemsPath?: string;
1255
+ /** RFC 0058 §4 — the overlay traps focus and hides the rest of the tree from AT while
1256
+ * presented (iOS `accessibilityViewIsModal`, Android `isTraversalGroup`, ARIA
1257
+ * `aria-modal`). TRI-STATE: absent keeps today's NON-modal behaviour (flipping this
1258
+ * component's default to modal is #2900); `true` opts in, an explicit `false` stays out. */
1259
+ modal?: boolean;
1213
1260
  }
1214
1261
  export interface TooltipProps {
1215
1262
  anchor?: Component;
@@ -1227,6 +1274,11 @@ export interface PopoverProps {
1227
1274
  presented?: boolean;
1228
1275
  presentedPath?: string;
1229
1276
  onDismiss?: Action;
1277
+ /** RFC 0058 §4 — the overlay traps focus and hides the rest of the tree from AT while
1278
+ * presented (iOS `accessibilityViewIsModal`, Android `isTraversalGroup`, ARIA
1279
+ * `aria-modal`). TRI-STATE: absent keeps today's NON-modal behaviour (flipping this
1280
+ * component's default to modal is #2900); `true` opts in, an explicit `false` stays out. */
1281
+ modal?: boolean;
1230
1282
  }
1231
1283
  export interface ChipProps {
1232
1284
  label?: string;
@@ -624,6 +624,32 @@ export declare const screenDescriptorSchema: {
624
624
  readonly enum: readonly ["selected", "disabled", "updates_frequently", "plays_sound", "starts_media"];
625
625
  };
626
626
  };
627
+ readonly focusOrder: {
628
+ readonly type: "integer";
629
+ };
630
+ readonly focusGroup: {
631
+ readonly type: "boolean";
632
+ };
633
+ readonly initialFocus: {
634
+ readonly type: "boolean";
635
+ };
636
+ readonly announce: {
637
+ readonly type: "object";
638
+ readonly additionalProperties: false;
639
+ readonly properties: {
640
+ readonly politeness: {
641
+ readonly type: "string";
642
+ readonly enum: readonly ["polite", "assertive"];
643
+ };
644
+ readonly text: {
645
+ readonly type: "string";
646
+ };
647
+ readonly trigger: {
648
+ readonly type: "string";
649
+ readonly enum: readonly ["on_change", "on_appear", "both", "none"];
650
+ };
651
+ };
652
+ };
627
653
  readonly boxShadow: {
628
654
  readonly type: "object";
629
655
  readonly additionalProperties: false;
@@ -1541,6 +1567,32 @@ export declare const widgetSnapshotSchema: {
1541
1567
  readonly enum: readonly ["selected", "disabled", "updates_frequently", "plays_sound", "starts_media"];
1542
1568
  };
1543
1569
  };
1570
+ readonly focusOrder: {
1571
+ readonly type: "integer";
1572
+ };
1573
+ readonly focusGroup: {
1574
+ readonly type: "boolean";
1575
+ };
1576
+ readonly initialFocus: {
1577
+ readonly type: "boolean";
1578
+ };
1579
+ readonly announce: {
1580
+ readonly type: "object";
1581
+ readonly additionalProperties: false;
1582
+ readonly properties: {
1583
+ readonly politeness: {
1584
+ readonly type: "string";
1585
+ readonly enum: readonly ["polite", "assertive"];
1586
+ };
1587
+ readonly text: {
1588
+ readonly type: "string";
1589
+ };
1590
+ readonly trigger: {
1591
+ readonly type: "string";
1592
+ readonly enum: readonly ["on_change", "on_appear", "both", "none"];
1593
+ };
1594
+ };
1595
+ };
1544
1596
  readonly boxShadow: {
1545
1597
  readonly type: "object";
1546
1598
  readonly additionalProperties: false;
@@ -8323,6 +8323,22 @@ var screenDescriptorSchema = {
8323
8323
  enum: ["selected", "disabled", "updates_frequently", "plays_sound", "starts_media"]
8324
8324
  }
8325
8325
  },
8326
+ // RFC 0058 §4 — focus and announcement (core.proto Modifiers 70–73). `modifiers`
8327
+ // is `additionalProperties: false`, so a descriptor carrying one of these would be
8328
+ // REJECTED on every arm at once until the validator knows it — which makes this
8329
+ // part of the vocabulary rather than a downstream consumer of it.
8330
+ focusOrder: { type: "integer" },
8331
+ focusGroup: { type: "boolean" },
8332
+ initialFocus: { type: "boolean" },
8333
+ announce: {
8334
+ type: "object",
8335
+ additionalProperties: false,
8336
+ properties: {
8337
+ politeness: { type: "string", enum: ["polite", "assertive"] },
8338
+ text: { type: "string" },
8339
+ trigger: { type: "string", enum: ["on_change", "on_appear", "both", "none"] }
8340
+ }
8341
+ },
8326
8342
  // #1052 — explicit drop shadow (colour token + radius + offset), alongside the `shadow` token form.
8327
8343
  boxShadow: {
8328
8344
  type: "object",
@@ -7369,6 +7369,22 @@ var screenDescriptorSchema = {
7369
7369
  enum: ["selected", "disabled", "updates_frequently", "plays_sound", "starts_media"]
7370
7370
  }
7371
7371
  },
7372
+ // RFC 0058 §4 — focus and announcement (core.proto Modifiers 70–73). `modifiers`
7373
+ // is `additionalProperties: false`, so a descriptor carrying one of these would be
7374
+ // REJECTED on every arm at once until the validator knows it — which makes this
7375
+ // part of the vocabulary rather than a downstream consumer of it.
7376
+ focusOrder: { type: "integer" },
7377
+ focusGroup: { type: "boolean" },
7378
+ initialFocus: { type: "boolean" },
7379
+ announce: {
7380
+ type: "object",
7381
+ additionalProperties: false,
7382
+ properties: {
7383
+ politeness: { type: "string", enum: ["polite", "assertive"] },
7384
+ text: { type: "string" },
7385
+ trigger: { type: "string", enum: ["on_change", "on_appear", "both", "none"] }
7386
+ }
7387
+ },
7372
7388
  // #1052 — explicit drop shadow (colour token + radius + offset), alongside the `shadow` token form.
7373
7389
  boxShadow: {
7374
7390
  type: "object",