@openfin/fdc3-api 45.100.65 → 45.100.67

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.
@@ -42,6 +42,16 @@ declare type Accelerator = {
42
42
  zoom: boolean;
43
43
  };
44
44
 
45
+ /**
46
+ * @interface
47
+ * Shared context available to all aria label functions.
48
+ */
49
+ declare type AccessibilityContext = {
50
+ arrowNavigationEnabled: boolean;
51
+ deleteKeyCloseEnabled: boolean;
52
+ homeEndNavigationEnabled: boolean;
53
+ };
54
+
45
55
  /**
46
56
  * Generated when a View is added to a layout.
47
57
  * @interface
@@ -51,6 +61,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
51
61
  layoutIdentity: OpenFin.LayoutIdentity;
52
62
  };
53
63
 
64
+ /**
65
+ * @interface
66
+ * Context for add tab button aria-label functions.
67
+ */
68
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
69
+ tabCount: number;
70
+ };
71
+
54
72
  /**
55
73
  * Options to use when adding a view to a {@link TabStack}.
56
74
  *
@@ -1596,6 +1614,17 @@ declare type AppVersionRuntimeStatusEvent = {
1596
1614
 
1597
1615
  /* Excluded from this release type: AppVersionTypeFromIdEvent */
1598
1616
 
1617
+ /**
1618
+ * @interface
1619
+ * Custom aria-label providers for accessibility.
1620
+ */
1621
+ declare type AriaLabelOptions = {
1622
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1623
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1624
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1625
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1626
+ };
1627
+
1599
1628
  declare interface AuthorizationPayload {
1600
1629
  token: string;
1601
1630
  file: string;
@@ -3441,6 +3470,15 @@ declare type ClipboardPermissions = {
3441
3470
  */
3442
3471
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3443
3472
 
3473
+ /**
3474
+ * @interface
3475
+ * Context for close button aria-label functions.
3476
+ */
3477
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3478
+ title: string;
3479
+ isActive: boolean;
3480
+ };
3481
+
3444
3482
  /**
3445
3483
  * Generated when an application is closed.
3446
3484
  * @interface
@@ -4453,6 +4491,10 @@ declare type CreateLayoutOptions = {
4453
4491
  * @experimental
4454
4492
  */
4455
4493
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4494
+ /**
4495
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4496
+ */
4497
+ accessibilityOptions?: LayoutAccessibilityOptions;
4456
4498
  };
4457
4499
 
4458
4500
  /**
@@ -5136,7 +5178,7 @@ declare interface Environment {
5136
5178
  layoutAllowedInContext(fin: OpenFin.Fin<OpenFin.EntityType>): boolean;
5137
5179
  initLayoutManager(fin: OpenFin.Fin<OpenFin.EntityType>, wire: Transport, options: OpenFin.InitLayoutOptions): Promise<OpenFin.LayoutManager<OpenFin.LayoutSnapshot>>;
5138
5180
  applyLayoutSnapshot(fin: OpenFin.Fin<OpenFin.EntityType>, layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.InitLayoutOptions): Promise<void>;
5139
- createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<void>;
5181
+ createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<OpenFin.LayoutSyncApi>;
5140
5182
  destroyLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<void>;
5141
5183
  resolveLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<any>;
5142
5184
  initPlatform(fin: OpenFin.Fin<OpenFin.EntityType>, ...args: Parameters<OpenFin.Fin['Platform']['init']>): ReturnType<OpenFin.Fin['Platform']['init']>;
@@ -8734,6 +8776,14 @@ declare class Layout extends Base {
8734
8776
  closeView(viewIdentity: OpenFin.Identity): Promise<void>;
8735
8777
  }
8736
8778
 
8779
+ /**
8780
+ * @interface
8781
+ * Accessibility options for layout tab navigation and ARIA support.
8782
+ */
8783
+ declare type LayoutAccessibilityOptions = {
8784
+ viewTabOptions?: ViewTabAccessibilityOptions;
8785
+ };
8786
+
8737
8787
  /**
8738
8788
  * @interface
8739
8789
  */
@@ -9117,7 +9167,7 @@ declare class LayoutModule extends Base {
9117
9167
  * @returns
9118
9168
  */
9119
9169
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin.LayoutSnapshot>() => OpenFin.LayoutManager<UserSnapshotType>;
9120
- create: (options: OpenFin.CreateLayoutOptions) => Promise<void>;
9170
+ create: (options: OpenFin.CreateLayoutOptions) => Promise<OpenFin.LayoutSyncApi>;
9121
9171
  destroy: (layoutIdentity: OpenFin.LayoutIdentity) => Promise<void>;
9122
9172
  }
9123
9173
 
@@ -9319,6 +9369,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9319
9369
  type: 'layout-state-changed';
9320
9370
  };
9321
9371
 
9372
+ /**
9373
+ * @interface
9374
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9375
+ * Only available in the window context that owns the layout.
9376
+ */
9377
+ declare type LayoutSyncApi = {
9378
+ /**
9379
+ * Updates accessibility options at runtime without recreating the layout.
9380
+ * @param options Partial accessibility options to merge with existing options
9381
+ */
9382
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9383
+ };
9384
+
9322
9385
  /**
9323
9386
  * @interface
9324
9387
  */
@@ -10832,6 +10895,15 @@ declare namespace OpenFin {
10832
10895
  HeaderControlsContext,
10833
10896
  CreateLayoutOptions,
10834
10897
  MultiInstanceViewBehavior,
10898
+ LayoutAccessibilityOptions,
10899
+ ViewTabElements,
10900
+ ViewTabAccessibilityOptions,
10901
+ AccessibilityContext,
10902
+ TabAriaLabelContext,
10903
+ CloseButtonAriaLabelContext,
10904
+ AddTabButtonAriaLabelContext,
10905
+ AriaLabelOptions,
10906
+ LayoutSyncApi,
10835
10907
  PresetLayoutOptions_2 as PresetLayoutOptions,
10836
10908
  ResultBehavior,
10837
10909
  PopupBaseBehavior,
@@ -16975,6 +17047,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
16975
17047
  proceed: () => void;
16976
17048
  }) => void;
16977
17049
 
17050
+ /**
17051
+ * @interface
17052
+ * Context for tab aria-label functions.
17053
+ */
17054
+ declare type TabAriaLabelContext = AccessibilityContext & {
17055
+ title: string;
17056
+ isActive: boolean;
17057
+ tabIndex: number;
17058
+ tabCount: number;
17059
+ };
17060
+
16978
17061
  /**
16979
17062
  * Generated when a Layout Tab Component was closed.
16980
17063
  * @interface
@@ -18449,6 +18532,53 @@ declare interface ViewStatuses {
18449
18532
  viewsNotPreventingUnload: Identity_4[];
18450
18533
  }
18451
18534
 
18535
+ /**
18536
+ * @interface
18537
+ * Accessibility options for view tab navigation.
18538
+ */
18539
+ declare type ViewTabAccessibilityOptions = {
18540
+ /**
18541
+ * Controls which elements are reachable via Tab key navigation.
18542
+ * Uses roving tabindex pattern - only one element focusable at a time.
18543
+ * @default ['active-tab', 'add-tab-button']
18544
+ */
18545
+ tabNavigation?: ViewTabElements[];
18546
+ /**
18547
+ * Controls which elements are navigable via Arrow keys.
18548
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18549
+ */
18550
+ arrowNavigation?: ViewTabElements[];
18551
+ /**
18552
+ * Whether Delete/Backspace keys close the focused tab.
18553
+ * @default false
18554
+ */
18555
+ enableDeleteKeyClose?: boolean;
18556
+ /**
18557
+ * Whether Home/End keys jump to first/last navigable element.
18558
+ * @default false
18559
+ */
18560
+ enableHomeEndNavigation?: boolean;
18561
+ /**
18562
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18563
+ */
18564
+ ariaLabels?: AriaLabelOptions;
18565
+ /**
18566
+ * Whether to announce tab changes via aria-live.
18567
+ * @default true
18568
+ */
18569
+ announceTabChanges?: boolean;
18570
+ /**
18571
+ * Focus behavior when a tab is closed via keyboard.
18572
+ * @default 'next'
18573
+ */
18574
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18575
+ };
18576
+
18577
+ /**
18578
+ * Elements that can be navigated in view tabs.
18579
+ */
18580
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18581
+
18452
18582
  /**
18453
18583
  * View throttling state.
18454
18584
  *
@@ -42,6 +42,16 @@ declare type Accelerator = {
42
42
  zoom: boolean;
43
43
  };
44
44
 
45
+ /**
46
+ * @interface
47
+ * Shared context available to all aria label functions.
48
+ */
49
+ declare type AccessibilityContext = {
50
+ arrowNavigationEnabled: boolean;
51
+ deleteKeyCloseEnabled: boolean;
52
+ homeEndNavigationEnabled: boolean;
53
+ };
54
+
45
55
  /**
46
56
  * Generated when a View is added to a layout.
47
57
  * @interface
@@ -51,6 +61,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
51
61
  layoutIdentity: OpenFin.LayoutIdentity;
52
62
  };
53
63
 
64
+ /**
65
+ * @interface
66
+ * Context for add tab button aria-label functions.
67
+ */
68
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
69
+ tabCount: number;
70
+ };
71
+
54
72
  /**
55
73
  * Options to use when adding a view to a {@link TabStack}.
56
74
  *
@@ -1596,6 +1614,17 @@ declare type AppVersionRuntimeStatusEvent = {
1596
1614
 
1597
1615
  /* Excluded from this release type: AppVersionTypeFromIdEvent */
1598
1616
 
1617
+ /**
1618
+ * @interface
1619
+ * Custom aria-label providers for accessibility.
1620
+ */
1621
+ declare type AriaLabelOptions = {
1622
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1623
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1624
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1625
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1626
+ };
1627
+
1599
1628
  declare interface AuthorizationPayload {
1600
1629
  token: string;
1601
1630
  file: string;
@@ -3441,6 +3470,15 @@ declare type ClipboardPermissions = {
3441
3470
  */
3442
3471
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3443
3472
 
3473
+ /**
3474
+ * @interface
3475
+ * Context for close button aria-label functions.
3476
+ */
3477
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3478
+ title: string;
3479
+ isActive: boolean;
3480
+ };
3481
+
3444
3482
  /**
3445
3483
  * Generated when an application is closed.
3446
3484
  * @interface
@@ -4453,6 +4491,10 @@ declare type CreateLayoutOptions = {
4453
4491
  * @experimental
4454
4492
  */
4455
4493
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4494
+ /**
4495
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4496
+ */
4497
+ accessibilityOptions?: LayoutAccessibilityOptions;
4456
4498
  };
4457
4499
 
4458
4500
  /**
@@ -5136,7 +5178,7 @@ declare interface Environment {
5136
5178
  layoutAllowedInContext(fin: OpenFin.Fin<OpenFin.EntityType>): boolean;
5137
5179
  initLayoutManager(fin: OpenFin.Fin<OpenFin.EntityType>, wire: Transport, options: OpenFin.InitLayoutOptions): Promise<OpenFin.LayoutManager<OpenFin.LayoutSnapshot>>;
5138
5180
  applyLayoutSnapshot(fin: OpenFin.Fin<OpenFin.EntityType>, layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.InitLayoutOptions): Promise<void>;
5139
- createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<void>;
5181
+ createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<OpenFin.LayoutSyncApi>;
5140
5182
  destroyLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<void>;
5141
5183
  resolveLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<any>;
5142
5184
  initPlatform(fin: OpenFin.Fin<OpenFin.EntityType>, ...args: Parameters<OpenFin.Fin['Platform']['init']>): ReturnType<OpenFin.Fin['Platform']['init']>;
@@ -8734,6 +8776,14 @@ declare class Layout extends Base {
8734
8776
  closeView(viewIdentity: OpenFin.Identity): Promise<void>;
8735
8777
  }
8736
8778
 
8779
+ /**
8780
+ * @interface
8781
+ * Accessibility options for layout tab navigation and ARIA support.
8782
+ */
8783
+ declare type LayoutAccessibilityOptions = {
8784
+ viewTabOptions?: ViewTabAccessibilityOptions;
8785
+ };
8786
+
8737
8787
  /**
8738
8788
  * @interface
8739
8789
  */
@@ -9117,7 +9167,7 @@ declare class LayoutModule extends Base {
9117
9167
  * @returns
9118
9168
  */
9119
9169
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin.LayoutSnapshot>() => OpenFin.LayoutManager<UserSnapshotType>;
9120
- create: (options: OpenFin.CreateLayoutOptions) => Promise<void>;
9170
+ create: (options: OpenFin.CreateLayoutOptions) => Promise<OpenFin.LayoutSyncApi>;
9121
9171
  destroy: (layoutIdentity: OpenFin.LayoutIdentity) => Promise<void>;
9122
9172
  }
9123
9173
 
@@ -9319,6 +9369,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9319
9369
  type: 'layout-state-changed';
9320
9370
  };
9321
9371
 
9372
+ /**
9373
+ * @interface
9374
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9375
+ * Only available in the window context that owns the layout.
9376
+ */
9377
+ declare type LayoutSyncApi = {
9378
+ /**
9379
+ * Updates accessibility options at runtime without recreating the layout.
9380
+ * @param options Partial accessibility options to merge with existing options
9381
+ */
9382
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9383
+ };
9384
+
9322
9385
  /**
9323
9386
  * @interface
9324
9387
  */
@@ -10832,6 +10895,15 @@ declare namespace OpenFin {
10832
10895
  HeaderControlsContext,
10833
10896
  CreateLayoutOptions,
10834
10897
  MultiInstanceViewBehavior,
10898
+ LayoutAccessibilityOptions,
10899
+ ViewTabElements,
10900
+ ViewTabAccessibilityOptions,
10901
+ AccessibilityContext,
10902
+ TabAriaLabelContext,
10903
+ CloseButtonAriaLabelContext,
10904
+ AddTabButtonAriaLabelContext,
10905
+ AriaLabelOptions,
10906
+ LayoutSyncApi,
10835
10907
  PresetLayoutOptions_2 as PresetLayoutOptions,
10836
10908
  ResultBehavior,
10837
10909
  PopupBaseBehavior,
@@ -16975,6 +17047,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
16975
17047
  proceed: () => void;
16976
17048
  }) => void;
16977
17049
 
17050
+ /**
17051
+ * @interface
17052
+ * Context for tab aria-label functions.
17053
+ */
17054
+ declare type TabAriaLabelContext = AccessibilityContext & {
17055
+ title: string;
17056
+ isActive: boolean;
17057
+ tabIndex: number;
17058
+ tabCount: number;
17059
+ };
17060
+
16978
17061
  /**
16979
17062
  * Generated when a Layout Tab Component was closed.
16980
17063
  * @interface
@@ -18449,6 +18532,53 @@ declare interface ViewStatuses {
18449
18532
  viewsNotPreventingUnload: Identity_4[];
18450
18533
  }
18451
18534
 
18535
+ /**
18536
+ * @interface
18537
+ * Accessibility options for view tab navigation.
18538
+ */
18539
+ declare type ViewTabAccessibilityOptions = {
18540
+ /**
18541
+ * Controls which elements are reachable via Tab key navigation.
18542
+ * Uses roving tabindex pattern - only one element focusable at a time.
18543
+ * @default ['active-tab', 'add-tab-button']
18544
+ */
18545
+ tabNavigation?: ViewTabElements[];
18546
+ /**
18547
+ * Controls which elements are navigable via Arrow keys.
18548
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18549
+ */
18550
+ arrowNavigation?: ViewTabElements[];
18551
+ /**
18552
+ * Whether Delete/Backspace keys close the focused tab.
18553
+ * @default false
18554
+ */
18555
+ enableDeleteKeyClose?: boolean;
18556
+ /**
18557
+ * Whether Home/End keys jump to first/last navigable element.
18558
+ * @default false
18559
+ */
18560
+ enableHomeEndNavigation?: boolean;
18561
+ /**
18562
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18563
+ */
18564
+ ariaLabels?: AriaLabelOptions;
18565
+ /**
18566
+ * Whether to announce tab changes via aria-live.
18567
+ * @default true
18568
+ */
18569
+ announceTabChanges?: boolean;
18570
+ /**
18571
+ * Focus behavior when a tab is closed via keyboard.
18572
+ * @default 'next'
18573
+ */
18574
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18575
+ };
18576
+
18577
+ /**
18578
+ * Elements that can be navigated in view tabs.
18579
+ */
18580
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18581
+
18452
18582
  /**
18453
18583
  * View throttling state.
18454
18584
  *
@@ -42,6 +42,16 @@ declare type Accelerator = {
42
42
  zoom: boolean;
43
43
  };
44
44
 
45
+ /**
46
+ * @interface
47
+ * Shared context available to all aria label functions.
48
+ */
49
+ declare type AccessibilityContext = {
50
+ arrowNavigationEnabled: boolean;
51
+ deleteKeyCloseEnabled: boolean;
52
+ homeEndNavigationEnabled: boolean;
53
+ };
54
+
45
55
  /**
46
56
  * Generated when a View is added to a layout.
47
57
  * @interface
@@ -51,6 +61,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
51
61
  layoutIdentity: OpenFin.LayoutIdentity;
52
62
  };
53
63
 
64
+ /**
65
+ * @interface
66
+ * Context for add tab button aria-label functions.
67
+ */
68
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
69
+ tabCount: number;
70
+ };
71
+
54
72
  /**
55
73
  * Options to use when adding a view to a {@link TabStack}.
56
74
  *
@@ -1596,6 +1614,17 @@ declare type AppVersionRuntimeStatusEvent = {
1596
1614
 
1597
1615
  /* Excluded from this release type: AppVersionTypeFromIdEvent */
1598
1616
 
1617
+ /**
1618
+ * @interface
1619
+ * Custom aria-label providers for accessibility.
1620
+ */
1621
+ declare type AriaLabelOptions = {
1622
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1623
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1624
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1625
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1626
+ };
1627
+
1599
1628
  declare interface AuthorizationPayload {
1600
1629
  token: string;
1601
1630
  file: string;
@@ -3441,6 +3470,15 @@ declare type ClipboardPermissions = {
3441
3470
  */
3442
3471
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3443
3472
 
3473
+ /**
3474
+ * @interface
3475
+ * Context for close button aria-label functions.
3476
+ */
3477
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3478
+ title: string;
3479
+ isActive: boolean;
3480
+ };
3481
+
3444
3482
  /**
3445
3483
  * Generated when an application is closed.
3446
3484
  * @interface
@@ -4453,6 +4491,10 @@ declare type CreateLayoutOptions = {
4453
4491
  * @experimental
4454
4492
  */
4455
4493
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4494
+ /**
4495
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4496
+ */
4497
+ accessibilityOptions?: LayoutAccessibilityOptions;
4456
4498
  };
4457
4499
 
4458
4500
  /**
@@ -5136,7 +5178,7 @@ declare interface Environment {
5136
5178
  layoutAllowedInContext(fin: OpenFin.Fin<OpenFin.EntityType>): boolean;
5137
5179
  initLayoutManager(fin: OpenFin.Fin<OpenFin.EntityType>, wire: Transport, options: OpenFin.InitLayoutOptions): Promise<OpenFin.LayoutManager<OpenFin.LayoutSnapshot>>;
5138
5180
  applyLayoutSnapshot(fin: OpenFin.Fin<OpenFin.EntityType>, layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.InitLayoutOptions): Promise<void>;
5139
- createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<void>;
5181
+ createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<OpenFin.LayoutSyncApi>;
5140
5182
  destroyLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<void>;
5141
5183
  resolveLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<any>;
5142
5184
  initPlatform(fin: OpenFin.Fin<OpenFin.EntityType>, ...args: Parameters<OpenFin.Fin['Platform']['init']>): ReturnType<OpenFin.Fin['Platform']['init']>;
@@ -8734,6 +8776,14 @@ declare class Layout extends Base {
8734
8776
  closeView(viewIdentity: OpenFin.Identity): Promise<void>;
8735
8777
  }
8736
8778
 
8779
+ /**
8780
+ * @interface
8781
+ * Accessibility options for layout tab navigation and ARIA support.
8782
+ */
8783
+ declare type LayoutAccessibilityOptions = {
8784
+ viewTabOptions?: ViewTabAccessibilityOptions;
8785
+ };
8786
+
8737
8787
  /**
8738
8788
  * @interface
8739
8789
  */
@@ -9117,7 +9167,7 @@ declare class LayoutModule extends Base {
9117
9167
  * @returns
9118
9168
  */
9119
9169
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin.LayoutSnapshot>() => OpenFin.LayoutManager<UserSnapshotType>;
9120
- create: (options: OpenFin.CreateLayoutOptions) => Promise<void>;
9170
+ create: (options: OpenFin.CreateLayoutOptions) => Promise<OpenFin.LayoutSyncApi>;
9121
9171
  destroy: (layoutIdentity: OpenFin.LayoutIdentity) => Promise<void>;
9122
9172
  }
9123
9173
 
@@ -9319,6 +9369,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9319
9369
  type: 'layout-state-changed';
9320
9370
  };
9321
9371
 
9372
+ /**
9373
+ * @interface
9374
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9375
+ * Only available in the window context that owns the layout.
9376
+ */
9377
+ declare type LayoutSyncApi = {
9378
+ /**
9379
+ * Updates accessibility options at runtime without recreating the layout.
9380
+ * @param options Partial accessibility options to merge with existing options
9381
+ */
9382
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9383
+ };
9384
+
9322
9385
  /**
9323
9386
  * @interface
9324
9387
  */
@@ -10832,6 +10895,15 @@ declare namespace OpenFin {
10832
10895
  HeaderControlsContext,
10833
10896
  CreateLayoutOptions,
10834
10897
  MultiInstanceViewBehavior,
10898
+ LayoutAccessibilityOptions,
10899
+ ViewTabElements,
10900
+ ViewTabAccessibilityOptions,
10901
+ AccessibilityContext,
10902
+ TabAriaLabelContext,
10903
+ CloseButtonAriaLabelContext,
10904
+ AddTabButtonAriaLabelContext,
10905
+ AriaLabelOptions,
10906
+ LayoutSyncApi,
10835
10907
  PresetLayoutOptions_2 as PresetLayoutOptions,
10836
10908
  ResultBehavior,
10837
10909
  PopupBaseBehavior,
@@ -16975,6 +17047,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
16975
17047
  proceed: () => void;
16976
17048
  }) => void;
16977
17049
 
17050
+ /**
17051
+ * @interface
17052
+ * Context for tab aria-label functions.
17053
+ */
17054
+ declare type TabAriaLabelContext = AccessibilityContext & {
17055
+ title: string;
17056
+ isActive: boolean;
17057
+ tabIndex: number;
17058
+ tabCount: number;
17059
+ };
17060
+
16978
17061
  /**
16979
17062
  * Generated when a Layout Tab Component was closed.
16980
17063
  * @interface
@@ -18449,6 +18532,53 @@ declare interface ViewStatuses {
18449
18532
  viewsNotPreventingUnload: Identity_4[];
18450
18533
  }
18451
18534
 
18535
+ /**
18536
+ * @interface
18537
+ * Accessibility options for view tab navigation.
18538
+ */
18539
+ declare type ViewTabAccessibilityOptions = {
18540
+ /**
18541
+ * Controls which elements are reachable via Tab key navigation.
18542
+ * Uses roving tabindex pattern - only one element focusable at a time.
18543
+ * @default ['active-tab', 'add-tab-button']
18544
+ */
18545
+ tabNavigation?: ViewTabElements[];
18546
+ /**
18547
+ * Controls which elements are navigable via Arrow keys.
18548
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18549
+ */
18550
+ arrowNavigation?: ViewTabElements[];
18551
+ /**
18552
+ * Whether Delete/Backspace keys close the focused tab.
18553
+ * @default false
18554
+ */
18555
+ enableDeleteKeyClose?: boolean;
18556
+ /**
18557
+ * Whether Home/End keys jump to first/last navigable element.
18558
+ * @default false
18559
+ */
18560
+ enableHomeEndNavigation?: boolean;
18561
+ /**
18562
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18563
+ */
18564
+ ariaLabels?: AriaLabelOptions;
18565
+ /**
18566
+ * Whether to announce tab changes via aria-live.
18567
+ * @default true
18568
+ */
18569
+ announceTabChanges?: boolean;
18570
+ /**
18571
+ * Focus behavior when a tab is closed via keyboard.
18572
+ * @default 'next'
18573
+ */
18574
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18575
+ };
18576
+
18577
+ /**
18578
+ * Elements that can be navigated in view tabs.
18579
+ */
18580
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18581
+
18452
18582
  /**
18453
18583
  * View throttling state.
18454
18584
  *
package/out/fdc3-api.d.ts CHANGED
@@ -42,6 +42,16 @@ declare type Accelerator = {
42
42
  zoom: boolean;
43
43
  };
44
44
 
45
+ /**
46
+ * @interface
47
+ * Shared context available to all aria label functions.
48
+ */
49
+ declare type AccessibilityContext = {
50
+ arrowNavigationEnabled: boolean;
51
+ deleteKeyCloseEnabled: boolean;
52
+ homeEndNavigationEnabled: boolean;
53
+ };
54
+
45
55
  /**
46
56
  * Generated when a View is added to a layout.
47
57
  * @interface
@@ -51,6 +61,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
51
61
  layoutIdentity: OpenFin.LayoutIdentity;
52
62
  };
53
63
 
64
+ /**
65
+ * @interface
66
+ * Context for add tab button aria-label functions.
67
+ */
68
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
69
+ tabCount: number;
70
+ };
71
+
54
72
  /**
55
73
  * Options to use when adding a view to a {@link TabStack}.
56
74
  *
@@ -1610,6 +1628,17 @@ declare type AppVersionTypeFromIdEvent<T extends IdEventType> = Extract<AppVersi
1610
1628
  type: WithoutId<T>;
1611
1629
  }>;
1612
1630
 
1631
+ /**
1632
+ * @interface
1633
+ * Custom aria-label providers for accessibility.
1634
+ */
1635
+ declare type AriaLabelOptions = {
1636
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1637
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1638
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1639
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1640
+ };
1641
+
1613
1642
  declare interface AuthorizationPayload {
1614
1643
  token: string;
1615
1644
  file: string;
@@ -3497,6 +3526,15 @@ declare type ClipboardPermissions = {
3497
3526
  */
3498
3527
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3499
3528
 
3529
+ /**
3530
+ * @interface
3531
+ * Context for close button aria-label functions.
3532
+ */
3533
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3534
+ title: string;
3535
+ isActive: boolean;
3536
+ };
3537
+
3500
3538
  /**
3501
3539
  * Generated when an application is closed.
3502
3540
  * @interface
@@ -4512,6 +4550,10 @@ declare type CreateLayoutOptions = {
4512
4550
  * @experimental
4513
4551
  */
4514
4552
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4553
+ /**
4554
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4555
+ */
4556
+ accessibilityOptions?: LayoutAccessibilityOptions;
4515
4557
  };
4516
4558
 
4517
4559
  /**
@@ -5200,7 +5242,7 @@ declare interface Environment {
5200
5242
  layoutAllowedInContext(fin: OpenFin.Fin<OpenFin.EntityType>): boolean;
5201
5243
  initLayoutManager(fin: OpenFin.Fin<OpenFin.EntityType>, wire: Transport, options: OpenFin.InitLayoutOptions): Promise<OpenFin.LayoutManager<OpenFin.LayoutSnapshot>>;
5202
5244
  applyLayoutSnapshot(fin: OpenFin.Fin<OpenFin.EntityType>, layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.InitLayoutOptions): Promise<void>;
5203
- createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<void>;
5245
+ createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<OpenFin.LayoutSyncApi>;
5204
5246
  destroyLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<void>;
5205
5247
  resolveLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, layoutIdentity: OpenFin.LayoutIdentity): Promise<any>;
5206
5248
  initPlatform(fin: OpenFin.Fin<OpenFin.EntityType>, ...args: Parameters<OpenFin.Fin['Platform']['init']>): ReturnType<OpenFin.Fin['Platform']['init']>;
@@ -8860,6 +8902,14 @@ declare class Layout extends Base {
8860
8902
  closeView(viewIdentity: OpenFin.Identity): Promise<void>;
8861
8903
  }
8862
8904
 
8905
+ /**
8906
+ * @interface
8907
+ * Accessibility options for layout tab navigation and ARIA support.
8908
+ */
8909
+ declare type LayoutAccessibilityOptions = {
8910
+ viewTabOptions?: ViewTabAccessibilityOptions;
8911
+ };
8912
+
8863
8913
  /**
8864
8914
  * @interface
8865
8915
  */
@@ -9243,7 +9293,7 @@ declare class LayoutModule extends Base {
9243
9293
  * @returns
9244
9294
  */
9245
9295
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin.LayoutSnapshot>() => OpenFin.LayoutManager<UserSnapshotType>;
9246
- create: (options: OpenFin.CreateLayoutOptions) => Promise<void>;
9296
+ create: (options: OpenFin.CreateLayoutOptions) => Promise<OpenFin.LayoutSyncApi>;
9247
9297
  destroy: (layoutIdentity: OpenFin.LayoutIdentity) => Promise<void>;
9248
9298
  }
9249
9299
 
@@ -9628,6 +9678,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9628
9678
  type: 'layout-state-changed';
9629
9679
  };
9630
9680
 
9681
+ /**
9682
+ * @interface
9683
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9684
+ * Only available in the window context that owns the layout.
9685
+ */
9686
+ declare type LayoutSyncApi = {
9687
+ /**
9688
+ * Updates accessibility options at runtime without recreating the layout.
9689
+ * @param options Partial accessibility options to merge with existing options
9690
+ */
9691
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9692
+ };
9693
+
9631
9694
  /**
9632
9695
  * @interface
9633
9696
  */
@@ -11166,6 +11229,15 @@ declare namespace OpenFin {
11166
11229
  HeaderControlsContext,
11167
11230
  CreateLayoutOptions,
11168
11231
  MultiInstanceViewBehavior,
11232
+ LayoutAccessibilityOptions,
11233
+ ViewTabElements,
11234
+ ViewTabAccessibilityOptions,
11235
+ AccessibilityContext,
11236
+ TabAriaLabelContext,
11237
+ CloseButtonAriaLabelContext,
11238
+ AddTabButtonAriaLabelContext,
11239
+ AriaLabelOptions,
11240
+ LayoutSyncApi,
11169
11241
  PresetLayoutOptions_2 as PresetLayoutOptions,
11170
11242
  ResultBehavior,
11171
11243
  PopupBaseBehavior,
@@ -17404,6 +17476,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
17404
17476
  proceed: () => void;
17405
17477
  }) => void;
17406
17478
 
17479
+ /**
17480
+ * @interface
17481
+ * Context for tab aria-label functions.
17482
+ */
17483
+ declare type TabAriaLabelContext = AccessibilityContext & {
17484
+ title: string;
17485
+ isActive: boolean;
17486
+ tabIndex: number;
17487
+ tabCount: number;
17488
+ };
17489
+
17407
17490
  /**
17408
17491
  * Generated when a Layout Tab Component was closed.
17409
17492
  * @interface
@@ -18916,6 +18999,53 @@ declare interface ViewStatuses {
18916
18999
  viewsNotPreventingUnload: Identity_4[];
18917
19000
  }
18918
19001
 
19002
+ /**
19003
+ * @interface
19004
+ * Accessibility options for view tab navigation.
19005
+ */
19006
+ declare type ViewTabAccessibilityOptions = {
19007
+ /**
19008
+ * Controls which elements are reachable via Tab key navigation.
19009
+ * Uses roving tabindex pattern - only one element focusable at a time.
19010
+ * @default ['active-tab', 'add-tab-button']
19011
+ */
19012
+ tabNavigation?: ViewTabElements[];
19013
+ /**
19014
+ * Controls which elements are navigable via Arrow keys.
19015
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
19016
+ */
19017
+ arrowNavigation?: ViewTabElements[];
19018
+ /**
19019
+ * Whether Delete/Backspace keys close the focused tab.
19020
+ * @default false
19021
+ */
19022
+ enableDeleteKeyClose?: boolean;
19023
+ /**
19024
+ * Whether Home/End keys jump to first/last navigable element.
19025
+ * @default false
19026
+ */
19027
+ enableHomeEndNavigation?: boolean;
19028
+ /**
19029
+ * Custom aria-label providers. Can be a static string or a function receiving context.
19030
+ */
19031
+ ariaLabels?: AriaLabelOptions;
19032
+ /**
19033
+ * Whether to announce tab changes via aria-live.
19034
+ * @default true
19035
+ */
19036
+ announceTabChanges?: boolean;
19037
+ /**
19038
+ * Focus behavior when a tab is closed via keyboard.
19039
+ * @default 'next'
19040
+ */
19041
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
19042
+ };
19043
+
19044
+ /**
19045
+ * Elements that can be navigated in view tabs.
19046
+ */
19047
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
19048
+
18919
19049
  /**
18920
19050
  * View throttling state.
18921
19051
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/fdc3-api",
3
- "version": "45.100.65",
3
+ "version": "45.100.67",
4
4
  "description": "OpenFin fdc3 module utilities and types.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,