@openfin/core 45.100.64 → 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.
@@ -45,6 +45,16 @@ declare type Accelerator = {
45
45
  zoom: boolean;
46
46
  };
47
47
 
48
+ /**
49
+ * @interface
50
+ * Shared context available to all aria label functions.
51
+ */
52
+ declare type AccessibilityContext = {
53
+ arrowNavigationEnabled: boolean;
54
+ deleteKeyCloseEnabled: boolean;
55
+ homeEndNavigationEnabled: boolean;
56
+ };
57
+
48
58
  /**
49
59
  * Generated when a View is added to a layout.
50
60
  * @interface
@@ -54,6 +64,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
54
64
  layoutIdentity: OpenFin_2.LayoutIdentity;
55
65
  };
56
66
 
67
+ /**
68
+ * @interface
69
+ * Context for add tab button aria-label functions.
70
+ */
71
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
72
+ tabCount: number;
73
+ };
74
+
57
75
  /**
58
76
  * Options to use when adding a view to a {@link TabStack}.
59
77
  *
@@ -1599,6 +1617,17 @@ declare type AppVersionRuntimeStatusEvent = {
1599
1617
 
1600
1618
  /* Excluded from this release type: AppVersionTypeFromIdEvent */
1601
1619
 
1620
+ /**
1621
+ * @interface
1622
+ * Custom aria-label providers for accessibility.
1623
+ */
1624
+ declare type AriaLabelOptions = {
1625
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1626
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1627
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1628
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1629
+ };
1630
+
1602
1631
  declare interface AuthorizationPayload {
1603
1632
  token: string;
1604
1633
  file: string;
@@ -3444,6 +3473,15 @@ declare type ClipboardPermissions = {
3444
3473
  */
3445
3474
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3446
3475
 
3476
+ /**
3477
+ * @interface
3478
+ * Context for close button aria-label functions.
3479
+ */
3480
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3481
+ title: string;
3482
+ isActive: boolean;
3483
+ };
3484
+
3447
3485
  /**
3448
3486
  * Generated when an application is closed.
3449
3487
  * @interface
@@ -4456,6 +4494,10 @@ declare type CreateLayoutOptions = {
4456
4494
  * @experimental
4457
4495
  */
4458
4496
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4497
+ /**
4498
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4499
+ */
4500
+ accessibilityOptions?: LayoutAccessibilityOptions;
4459
4501
  };
4460
4502
 
4461
4503
  /**
@@ -5139,7 +5181,7 @@ declare interface Environment {
5139
5181
  layoutAllowedInContext(fin: OpenFin_2.Fin<OpenFin_2.EntityType>): boolean;
5140
5182
  initLayoutManager(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, wire: Transport, options: OpenFin_2.InitLayoutOptions): Promise<OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>>;
5141
5183
  applyLayoutSnapshot(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.InitLayoutOptions): Promise<void>;
5142
- createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<void>;
5184
+ createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<OpenFin_2.LayoutSyncApi>;
5143
5185
  destroyLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<void>;
5144
5186
  resolveLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<any>;
5145
5187
  initPlatform(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, ...args: Parameters<OpenFin_2.Fin['Platform']['init']>): ReturnType<OpenFin_2.Fin['Platform']['init']>;
@@ -8392,6 +8434,14 @@ declare class Layout extends Base {
8392
8434
  closeView(viewIdentity: OpenFin_2.Identity): Promise<void>;
8393
8435
  }
8394
8436
 
8437
+ /**
8438
+ * @interface
8439
+ * Accessibility options for layout tab navigation and ARIA support.
8440
+ */
8441
+ declare type LayoutAccessibilityOptions = {
8442
+ viewTabOptions?: ViewTabAccessibilityOptions;
8443
+ };
8444
+
8395
8445
  /**
8396
8446
  * @interface
8397
8447
  */
@@ -8775,7 +8825,7 @@ declare class LayoutModule extends Base {
8775
8825
  * @returns
8776
8826
  */
8777
8827
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin_2.LayoutSnapshot>() => OpenFin_2.LayoutManager<UserSnapshotType>;
8778
- create: (options: OpenFin_2.CreateLayoutOptions) => Promise<void>;
8828
+ create: (options: OpenFin_2.CreateLayoutOptions) => Promise<OpenFin_2.LayoutSyncApi>;
8779
8829
  destroy: (layoutIdentity: OpenFin_2.LayoutIdentity) => Promise<void>;
8780
8830
  }
8781
8831
 
@@ -8977,6 +9027,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
8977
9027
  type: 'layout-state-changed';
8978
9028
  };
8979
9029
 
9030
+ /**
9031
+ * @interface
9032
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9033
+ * Only available in the window context that owns the layout.
9034
+ */
9035
+ declare type LayoutSyncApi = {
9036
+ /**
9037
+ * Updates accessibility options at runtime without recreating the layout.
9038
+ * @param options Partial accessibility options to merge with existing options
9039
+ */
9040
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9041
+ };
9042
+
8980
9043
  /**
8981
9044
  * @interface
8982
9045
  */
@@ -10490,6 +10553,15 @@ declare namespace OpenFin_2 {
10490
10553
  HeaderControlsContext,
10491
10554
  CreateLayoutOptions,
10492
10555
  MultiInstanceViewBehavior,
10556
+ LayoutAccessibilityOptions,
10557
+ ViewTabElements,
10558
+ ViewTabAccessibilityOptions,
10559
+ AccessibilityContext,
10560
+ TabAriaLabelContext,
10561
+ CloseButtonAriaLabelContext,
10562
+ AddTabButtonAriaLabelContext,
10563
+ AriaLabelOptions,
10564
+ LayoutSyncApi,
10493
10565
  PresetLayoutOptions_2 as PresetLayoutOptions,
10494
10566
  ResultBehavior,
10495
10567
  PopupBaseBehavior,
@@ -16635,6 +16707,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
16635
16707
  proceed: () => void;
16636
16708
  }) => void;
16637
16709
 
16710
+ /**
16711
+ * @interface
16712
+ * Context for tab aria-label functions.
16713
+ */
16714
+ declare type TabAriaLabelContext = AccessibilityContext & {
16715
+ title: string;
16716
+ isActive: boolean;
16717
+ tabIndex: number;
16718
+ tabCount: number;
16719
+ };
16720
+
16638
16721
  /**
16639
16722
  * Generated when a Layout Tab Component was closed.
16640
16723
  * @interface
@@ -18003,6 +18086,53 @@ declare interface ViewStatuses {
18003
18086
  viewsNotPreventingUnload: Identity_4[];
18004
18087
  }
18005
18088
 
18089
+ /**
18090
+ * @interface
18091
+ * Accessibility options for view tab navigation.
18092
+ */
18093
+ declare type ViewTabAccessibilityOptions = {
18094
+ /**
18095
+ * Controls which elements are reachable via Tab key navigation.
18096
+ * Uses roving tabindex pattern - only one element focusable at a time.
18097
+ * @default ['active-tab', 'add-tab-button']
18098
+ */
18099
+ tabNavigation?: ViewTabElements[];
18100
+ /**
18101
+ * Controls which elements are navigable via Arrow keys.
18102
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18103
+ */
18104
+ arrowNavigation?: ViewTabElements[];
18105
+ /**
18106
+ * Whether Delete/Backspace keys close the focused tab.
18107
+ * @default false
18108
+ */
18109
+ enableDeleteKeyClose?: boolean;
18110
+ /**
18111
+ * Whether Home/End keys jump to first/last navigable element.
18112
+ * @default false
18113
+ */
18114
+ enableHomeEndNavigation?: boolean;
18115
+ /**
18116
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18117
+ */
18118
+ ariaLabels?: AriaLabelOptions;
18119
+ /**
18120
+ * Whether to announce tab changes via aria-live.
18121
+ * @default true
18122
+ */
18123
+ announceTabChanges?: boolean;
18124
+ /**
18125
+ * Focus behavior when a tab is closed via keyboard.
18126
+ * @default 'next'
18127
+ */
18128
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18129
+ };
18130
+
18131
+ /**
18132
+ * Elements that can be navigated in view tabs.
18133
+ */
18134
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18135
+
18006
18136
  /**
18007
18137
  * View throttling state.
18008
18138
  *
@@ -45,6 +45,16 @@ declare type Accelerator = {
45
45
  zoom: boolean;
46
46
  };
47
47
 
48
+ /**
49
+ * @interface
50
+ * Shared context available to all aria label functions.
51
+ */
52
+ declare type AccessibilityContext = {
53
+ arrowNavigationEnabled: boolean;
54
+ deleteKeyCloseEnabled: boolean;
55
+ homeEndNavigationEnabled: boolean;
56
+ };
57
+
48
58
  /**
49
59
  * Generated when a View is added to a layout.
50
60
  * @interface
@@ -54,6 +64,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
54
64
  layoutIdentity: OpenFin_2.LayoutIdentity;
55
65
  };
56
66
 
67
+ /**
68
+ * @interface
69
+ * Context for add tab button aria-label functions.
70
+ */
71
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
72
+ tabCount: number;
73
+ };
74
+
57
75
  /**
58
76
  * Options to use when adding a view to a {@link TabStack}.
59
77
  *
@@ -1599,6 +1617,17 @@ declare type AppVersionRuntimeStatusEvent = {
1599
1617
 
1600
1618
  /* Excluded from this release type: AppVersionTypeFromIdEvent */
1601
1619
 
1620
+ /**
1621
+ * @interface
1622
+ * Custom aria-label providers for accessibility.
1623
+ */
1624
+ declare type AriaLabelOptions = {
1625
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1626
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1627
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1628
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1629
+ };
1630
+
1602
1631
  declare interface AuthorizationPayload {
1603
1632
  token: string;
1604
1633
  file: string;
@@ -3444,6 +3473,15 @@ declare type ClipboardPermissions = {
3444
3473
  */
3445
3474
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3446
3475
 
3476
+ /**
3477
+ * @interface
3478
+ * Context for close button aria-label functions.
3479
+ */
3480
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3481
+ title: string;
3482
+ isActive: boolean;
3483
+ };
3484
+
3447
3485
  /**
3448
3486
  * Generated when an application is closed.
3449
3487
  * @interface
@@ -4456,6 +4494,10 @@ declare type CreateLayoutOptions = {
4456
4494
  * @experimental
4457
4495
  */
4458
4496
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4497
+ /**
4498
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4499
+ */
4500
+ accessibilityOptions?: LayoutAccessibilityOptions;
4459
4501
  };
4460
4502
 
4461
4503
  /**
@@ -5139,7 +5181,7 @@ declare interface Environment {
5139
5181
  layoutAllowedInContext(fin: OpenFin_2.Fin<OpenFin_2.EntityType>): boolean;
5140
5182
  initLayoutManager(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, wire: Transport, options: OpenFin_2.InitLayoutOptions): Promise<OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>>;
5141
5183
  applyLayoutSnapshot(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.InitLayoutOptions): Promise<void>;
5142
- createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<void>;
5184
+ createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<OpenFin_2.LayoutSyncApi>;
5143
5185
  destroyLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<void>;
5144
5186
  resolveLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<any>;
5145
5187
  initPlatform(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, ...args: Parameters<OpenFin_2.Fin['Platform']['init']>): ReturnType<OpenFin_2.Fin['Platform']['init']>;
@@ -8392,6 +8434,14 @@ declare class Layout extends Base {
8392
8434
  closeView(viewIdentity: OpenFin_2.Identity): Promise<void>;
8393
8435
  }
8394
8436
 
8437
+ /**
8438
+ * @interface
8439
+ * Accessibility options for layout tab navigation and ARIA support.
8440
+ */
8441
+ declare type LayoutAccessibilityOptions = {
8442
+ viewTabOptions?: ViewTabAccessibilityOptions;
8443
+ };
8444
+
8395
8445
  /**
8396
8446
  * @interface
8397
8447
  */
@@ -8775,7 +8825,7 @@ declare class LayoutModule extends Base {
8775
8825
  * @returns
8776
8826
  */
8777
8827
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin_2.LayoutSnapshot>() => OpenFin_2.LayoutManager<UserSnapshotType>;
8778
- create: (options: OpenFin_2.CreateLayoutOptions) => Promise<void>;
8828
+ create: (options: OpenFin_2.CreateLayoutOptions) => Promise<OpenFin_2.LayoutSyncApi>;
8779
8829
  destroy: (layoutIdentity: OpenFin_2.LayoutIdentity) => Promise<void>;
8780
8830
  }
8781
8831
 
@@ -8977,6 +9027,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
8977
9027
  type: 'layout-state-changed';
8978
9028
  };
8979
9029
 
9030
+ /**
9031
+ * @interface
9032
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9033
+ * Only available in the window context that owns the layout.
9034
+ */
9035
+ declare type LayoutSyncApi = {
9036
+ /**
9037
+ * Updates accessibility options at runtime without recreating the layout.
9038
+ * @param options Partial accessibility options to merge with existing options
9039
+ */
9040
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9041
+ };
9042
+
8980
9043
  /**
8981
9044
  * @interface
8982
9045
  */
@@ -10490,6 +10553,15 @@ declare namespace OpenFin_2 {
10490
10553
  HeaderControlsContext,
10491
10554
  CreateLayoutOptions,
10492
10555
  MultiInstanceViewBehavior,
10556
+ LayoutAccessibilityOptions,
10557
+ ViewTabElements,
10558
+ ViewTabAccessibilityOptions,
10559
+ AccessibilityContext,
10560
+ TabAriaLabelContext,
10561
+ CloseButtonAriaLabelContext,
10562
+ AddTabButtonAriaLabelContext,
10563
+ AriaLabelOptions,
10564
+ LayoutSyncApi,
10493
10565
  PresetLayoutOptions_2 as PresetLayoutOptions,
10494
10566
  ResultBehavior,
10495
10567
  PopupBaseBehavior,
@@ -16635,6 +16707,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
16635
16707
  proceed: () => void;
16636
16708
  }) => void;
16637
16709
 
16710
+ /**
16711
+ * @interface
16712
+ * Context for tab aria-label functions.
16713
+ */
16714
+ declare type TabAriaLabelContext = AccessibilityContext & {
16715
+ title: string;
16716
+ isActive: boolean;
16717
+ tabIndex: number;
16718
+ tabCount: number;
16719
+ };
16720
+
16638
16721
  /**
16639
16722
  * Generated when a Layout Tab Component was closed.
16640
16723
  * @interface
@@ -18003,6 +18086,53 @@ declare interface ViewStatuses {
18003
18086
  viewsNotPreventingUnload: Identity_4[];
18004
18087
  }
18005
18088
 
18089
+ /**
18090
+ * @interface
18091
+ * Accessibility options for view tab navigation.
18092
+ */
18093
+ declare type ViewTabAccessibilityOptions = {
18094
+ /**
18095
+ * Controls which elements are reachable via Tab key navigation.
18096
+ * Uses roving tabindex pattern - only one element focusable at a time.
18097
+ * @default ['active-tab', 'add-tab-button']
18098
+ */
18099
+ tabNavigation?: ViewTabElements[];
18100
+ /**
18101
+ * Controls which elements are navigable via Arrow keys.
18102
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18103
+ */
18104
+ arrowNavigation?: ViewTabElements[];
18105
+ /**
18106
+ * Whether Delete/Backspace keys close the focused tab.
18107
+ * @default false
18108
+ */
18109
+ enableDeleteKeyClose?: boolean;
18110
+ /**
18111
+ * Whether Home/End keys jump to first/last navigable element.
18112
+ * @default false
18113
+ */
18114
+ enableHomeEndNavigation?: boolean;
18115
+ /**
18116
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18117
+ */
18118
+ ariaLabels?: AriaLabelOptions;
18119
+ /**
18120
+ * Whether to announce tab changes via aria-live.
18121
+ * @default true
18122
+ */
18123
+ announceTabChanges?: boolean;
18124
+ /**
18125
+ * Focus behavior when a tab is closed via keyboard.
18126
+ * @default 'next'
18127
+ */
18128
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18129
+ };
18130
+
18131
+ /**
18132
+ * Elements that can be navigated in view tabs.
18133
+ */
18134
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18135
+
18006
18136
  /**
18007
18137
  * View throttling state.
18008
18138
  *
@@ -45,6 +45,16 @@ declare type Accelerator = {
45
45
  zoom: boolean;
46
46
  };
47
47
 
48
+ /**
49
+ * @interface
50
+ * Shared context available to all aria label functions.
51
+ */
52
+ declare type AccessibilityContext = {
53
+ arrowNavigationEnabled: boolean;
54
+ deleteKeyCloseEnabled: boolean;
55
+ homeEndNavigationEnabled: boolean;
56
+ };
57
+
48
58
  /**
49
59
  * Generated when a View is added to a layout.
50
60
  * @interface
@@ -54,6 +64,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
54
64
  layoutIdentity: OpenFin_2.LayoutIdentity;
55
65
  };
56
66
 
67
+ /**
68
+ * @interface
69
+ * Context for add tab button aria-label functions.
70
+ */
71
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
72
+ tabCount: number;
73
+ };
74
+
57
75
  /**
58
76
  * Options to use when adding a view to a {@link TabStack}.
59
77
  *
@@ -1599,6 +1617,17 @@ declare type AppVersionRuntimeStatusEvent = {
1599
1617
 
1600
1618
  /* Excluded from this release type: AppVersionTypeFromIdEvent */
1601
1619
 
1620
+ /**
1621
+ * @interface
1622
+ * Custom aria-label providers for accessibility.
1623
+ */
1624
+ declare type AriaLabelOptions = {
1625
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1626
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1627
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1628
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1629
+ };
1630
+
1602
1631
  declare interface AuthorizationPayload {
1603
1632
  token: string;
1604
1633
  file: string;
@@ -3444,6 +3473,15 @@ declare type ClipboardPermissions = {
3444
3473
  */
3445
3474
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3446
3475
 
3476
+ /**
3477
+ * @interface
3478
+ * Context for close button aria-label functions.
3479
+ */
3480
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3481
+ title: string;
3482
+ isActive: boolean;
3483
+ };
3484
+
3447
3485
  /**
3448
3486
  * Generated when an application is closed.
3449
3487
  * @interface
@@ -4456,6 +4494,10 @@ declare type CreateLayoutOptions = {
4456
4494
  * @experimental
4457
4495
  */
4458
4496
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4497
+ /**
4498
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4499
+ */
4500
+ accessibilityOptions?: LayoutAccessibilityOptions;
4459
4501
  };
4460
4502
 
4461
4503
  /**
@@ -5139,7 +5181,7 @@ declare interface Environment {
5139
5181
  layoutAllowedInContext(fin: OpenFin_2.Fin<OpenFin_2.EntityType>): boolean;
5140
5182
  initLayoutManager(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, wire: Transport, options: OpenFin_2.InitLayoutOptions): Promise<OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>>;
5141
5183
  applyLayoutSnapshot(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.InitLayoutOptions): Promise<void>;
5142
- createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<void>;
5184
+ createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<OpenFin_2.LayoutSyncApi>;
5143
5185
  destroyLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<void>;
5144
5186
  resolveLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<any>;
5145
5187
  initPlatform(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, ...args: Parameters<OpenFin_2.Fin['Platform']['init']>): ReturnType<OpenFin_2.Fin['Platform']['init']>;
@@ -8392,6 +8434,14 @@ declare class Layout extends Base {
8392
8434
  closeView(viewIdentity: OpenFin_2.Identity): Promise<void>;
8393
8435
  }
8394
8436
 
8437
+ /**
8438
+ * @interface
8439
+ * Accessibility options for layout tab navigation and ARIA support.
8440
+ */
8441
+ declare type LayoutAccessibilityOptions = {
8442
+ viewTabOptions?: ViewTabAccessibilityOptions;
8443
+ };
8444
+
8395
8445
  /**
8396
8446
  * @interface
8397
8447
  */
@@ -8775,7 +8825,7 @@ declare class LayoutModule extends Base {
8775
8825
  * @returns
8776
8826
  */
8777
8827
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin_2.LayoutSnapshot>() => OpenFin_2.LayoutManager<UserSnapshotType>;
8778
- create: (options: OpenFin_2.CreateLayoutOptions) => Promise<void>;
8828
+ create: (options: OpenFin_2.CreateLayoutOptions) => Promise<OpenFin_2.LayoutSyncApi>;
8779
8829
  destroy: (layoutIdentity: OpenFin_2.LayoutIdentity) => Promise<void>;
8780
8830
  }
8781
8831
 
@@ -8977,6 +9027,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
8977
9027
  type: 'layout-state-changed';
8978
9028
  };
8979
9029
 
9030
+ /**
9031
+ * @interface
9032
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9033
+ * Only available in the window context that owns the layout.
9034
+ */
9035
+ declare type LayoutSyncApi = {
9036
+ /**
9037
+ * Updates accessibility options at runtime without recreating the layout.
9038
+ * @param options Partial accessibility options to merge with existing options
9039
+ */
9040
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9041
+ };
9042
+
8980
9043
  /**
8981
9044
  * @interface
8982
9045
  */
@@ -10490,6 +10553,15 @@ declare namespace OpenFin_2 {
10490
10553
  HeaderControlsContext,
10491
10554
  CreateLayoutOptions,
10492
10555
  MultiInstanceViewBehavior,
10556
+ LayoutAccessibilityOptions,
10557
+ ViewTabElements,
10558
+ ViewTabAccessibilityOptions,
10559
+ AccessibilityContext,
10560
+ TabAriaLabelContext,
10561
+ CloseButtonAriaLabelContext,
10562
+ AddTabButtonAriaLabelContext,
10563
+ AriaLabelOptions,
10564
+ LayoutSyncApi,
10493
10565
  PresetLayoutOptions_2 as PresetLayoutOptions,
10494
10566
  ResultBehavior,
10495
10567
  PopupBaseBehavior,
@@ -16635,6 +16707,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
16635
16707
  proceed: () => void;
16636
16708
  }) => void;
16637
16709
 
16710
+ /**
16711
+ * @interface
16712
+ * Context for tab aria-label functions.
16713
+ */
16714
+ declare type TabAriaLabelContext = AccessibilityContext & {
16715
+ title: string;
16716
+ isActive: boolean;
16717
+ tabIndex: number;
16718
+ tabCount: number;
16719
+ };
16720
+
16638
16721
  /**
16639
16722
  * Generated when a Layout Tab Component was closed.
16640
16723
  * @interface
@@ -18003,6 +18086,53 @@ declare interface ViewStatuses {
18003
18086
  viewsNotPreventingUnload: Identity_4[];
18004
18087
  }
18005
18088
 
18089
+ /**
18090
+ * @interface
18091
+ * Accessibility options for view tab navigation.
18092
+ */
18093
+ declare type ViewTabAccessibilityOptions = {
18094
+ /**
18095
+ * Controls which elements are reachable via Tab key navigation.
18096
+ * Uses roving tabindex pattern - only one element focusable at a time.
18097
+ * @default ['active-tab', 'add-tab-button']
18098
+ */
18099
+ tabNavigation?: ViewTabElements[];
18100
+ /**
18101
+ * Controls which elements are navigable via Arrow keys.
18102
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18103
+ */
18104
+ arrowNavigation?: ViewTabElements[];
18105
+ /**
18106
+ * Whether Delete/Backspace keys close the focused tab.
18107
+ * @default false
18108
+ */
18109
+ enableDeleteKeyClose?: boolean;
18110
+ /**
18111
+ * Whether Home/End keys jump to first/last navigable element.
18112
+ * @default false
18113
+ */
18114
+ enableHomeEndNavigation?: boolean;
18115
+ /**
18116
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18117
+ */
18118
+ ariaLabels?: AriaLabelOptions;
18119
+ /**
18120
+ * Whether to announce tab changes via aria-live.
18121
+ * @default true
18122
+ */
18123
+ announceTabChanges?: boolean;
18124
+ /**
18125
+ * Focus behavior when a tab is closed via keyboard.
18126
+ * @default 'next'
18127
+ */
18128
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18129
+ };
18130
+
18131
+ /**
18132
+ * Elements that can be navigated in view tabs.
18133
+ */
18134
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18135
+
18006
18136
  /**
18007
18137
  * View throttling state.
18008
18138
  *
package/out/stub.d.ts CHANGED
@@ -45,6 +45,16 @@ declare type Accelerator = {
45
45
  zoom: boolean;
46
46
  };
47
47
 
48
+ /**
49
+ * @interface
50
+ * Shared context available to all aria label functions.
51
+ */
52
+ declare type AccessibilityContext = {
53
+ arrowNavigationEnabled: boolean;
54
+ deleteKeyCloseEnabled: boolean;
55
+ homeEndNavigationEnabled: boolean;
56
+ };
57
+
48
58
  /**
49
59
  * Generated when a View is added to a layout.
50
60
  * @interface
@@ -54,6 +64,14 @@ declare type AddedToLayoutEvent = BaseEvent_4 & {
54
64
  layoutIdentity: OpenFin_2.LayoutIdentity;
55
65
  };
56
66
 
67
+ /**
68
+ * @interface
69
+ * Context for add tab button aria-label functions.
70
+ */
71
+ declare type AddTabButtonAriaLabelContext = AccessibilityContext & {
72
+ tabCount: number;
73
+ };
74
+
57
75
  /**
58
76
  * Options to use when adding a view to a {@link TabStack}.
59
77
  *
@@ -1613,6 +1631,17 @@ declare type AppVersionTypeFromIdEvent<T extends IdEventType> = Extract<AppVersi
1613
1631
  type: WithoutId<T>;
1614
1632
  }>;
1615
1633
 
1634
+ /**
1635
+ * @interface
1636
+ * Custom aria-label providers for accessibility.
1637
+ */
1638
+ declare type AriaLabelOptions = {
1639
+ activeTab?: string | ((ctx: TabAriaLabelContext) => string);
1640
+ inactiveTab?: string | ((ctx: TabAriaLabelContext) => string);
1641
+ closeButton?: string | ((ctx: CloseButtonAriaLabelContext) => string);
1642
+ addTabButton?: string | ((ctx: AddTabButtonAriaLabelContext) => string);
1643
+ };
1644
+
1616
1645
  declare interface AuthorizationPayload {
1617
1646
  token: string;
1618
1647
  file: string;
@@ -3500,6 +3529,15 @@ declare type ClipboardPermissions = {
3500
3529
  */
3501
3530
  declare type ClipboardSelectionType = 'clipboard' | 'selection';
3502
3531
 
3532
+ /**
3533
+ * @interface
3534
+ * Context for close button aria-label functions.
3535
+ */
3536
+ declare type CloseButtonAriaLabelContext = AccessibilityContext & {
3537
+ title: string;
3538
+ isActive: boolean;
3539
+ };
3540
+
3503
3541
  /**
3504
3542
  * Generated when an application is closed.
3505
3543
  * @interface
@@ -4515,6 +4553,10 @@ declare type CreateLayoutOptions = {
4515
4553
  * @experimental
4516
4554
  */
4517
4555
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4556
+ /**
4557
+ * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4558
+ */
4559
+ accessibilityOptions?: LayoutAccessibilityOptions;
4518
4560
  };
4519
4561
 
4520
4562
  /**
@@ -5203,7 +5245,7 @@ declare interface Environment {
5203
5245
  layoutAllowedInContext(fin: OpenFin_2.Fin<OpenFin_2.EntityType>): boolean;
5204
5246
  initLayoutManager(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, wire: Transport, options: OpenFin_2.InitLayoutOptions): Promise<OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>>;
5205
5247
  applyLayoutSnapshot(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.InitLayoutOptions): Promise<void>;
5206
- createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<void>;
5248
+ createLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, options: OpenFin_2.CreateLayoutOptions): Promise<OpenFin_2.LayoutSyncApi>;
5207
5249
  destroyLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<void>;
5208
5250
  resolveLayout(layoutManager: OpenFin_2.LayoutManager<OpenFin_2.LayoutSnapshot>, layoutIdentity: OpenFin_2.LayoutIdentity): Promise<any>;
5209
5251
  initPlatform(fin: OpenFin_2.Fin<OpenFin_2.EntityType>, ...args: Parameters<OpenFin_2.Fin['Platform']['init']>): ReturnType<OpenFin_2.Fin['Platform']['init']>;
@@ -8518,6 +8560,14 @@ declare class Layout extends Base {
8518
8560
  closeView(viewIdentity: OpenFin_2.Identity): Promise<void>;
8519
8561
  }
8520
8562
 
8563
+ /**
8564
+ * @interface
8565
+ * Accessibility options for layout tab navigation and ARIA support.
8566
+ */
8567
+ declare type LayoutAccessibilityOptions = {
8568
+ viewTabOptions?: ViewTabAccessibilityOptions;
8569
+ };
8570
+
8521
8571
  /**
8522
8572
  * @interface
8523
8573
  */
@@ -8901,7 +8951,7 @@ declare class LayoutModule extends Base {
8901
8951
  * @returns
8902
8952
  */
8903
8953
  getCurrentLayoutManagerSync: <UserSnapshotType extends OpenFin_2.LayoutSnapshot>() => OpenFin_2.LayoutManager<UserSnapshotType>;
8904
- create: (options: OpenFin_2.CreateLayoutOptions) => Promise<void>;
8954
+ create: (options: OpenFin_2.CreateLayoutOptions) => Promise<OpenFin_2.LayoutSyncApi>;
8905
8955
  destroy: (layoutIdentity: OpenFin_2.LayoutIdentity) => Promise<void>;
8906
8956
  }
8907
8957
 
@@ -9286,6 +9336,19 @@ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9286
9336
  type: 'layout-state-changed';
9287
9337
  };
9288
9338
 
9339
+ /**
9340
+ * @interface
9341
+ * Sync API returned from Layout.create() for operations that don't require IPC.
9342
+ * Only available in the window context that owns the layout.
9343
+ */
9344
+ declare type LayoutSyncApi = {
9345
+ /**
9346
+ * Updates accessibility options at runtime without recreating the layout.
9347
+ * @param options Partial accessibility options to merge with existing options
9348
+ */
9349
+ updateAccessibilityOptions(options: Partial<LayoutAccessibilityOptions>): void;
9350
+ };
9351
+
9289
9352
  /**
9290
9353
  * @interface
9291
9354
  */
@@ -10824,6 +10887,15 @@ declare namespace OpenFin_2 {
10824
10887
  HeaderControlsContext,
10825
10888
  CreateLayoutOptions,
10826
10889
  MultiInstanceViewBehavior,
10890
+ LayoutAccessibilityOptions,
10891
+ ViewTabElements,
10892
+ ViewTabAccessibilityOptions,
10893
+ AccessibilityContext,
10894
+ TabAriaLabelContext,
10895
+ CloseButtonAriaLabelContext,
10896
+ AddTabButtonAriaLabelContext,
10897
+ AriaLabelOptions,
10898
+ LayoutSyncApi,
10827
10899
  PresetLayoutOptions_2 as PresetLayoutOptions,
10828
10900
  ResultBehavior,
10829
10901
  PopupBaseBehavior,
@@ -17064,6 +17136,17 @@ declare type SystemShutdownHandler = (shutdownEvent: {
17064
17136
  proceed: () => void;
17065
17137
  }) => void;
17066
17138
 
17139
+ /**
17140
+ * @interface
17141
+ * Context for tab aria-label functions.
17142
+ */
17143
+ declare type TabAriaLabelContext = AccessibilityContext & {
17144
+ title: string;
17145
+ isActive: boolean;
17146
+ tabIndex: number;
17147
+ tabCount: number;
17148
+ };
17149
+
17067
17150
  /**
17068
17151
  * Generated when a Layout Tab Component was closed.
17069
17152
  * @interface
@@ -18470,6 +18553,53 @@ declare interface ViewStatuses {
18470
18553
  viewsNotPreventingUnload: Identity_4[];
18471
18554
  }
18472
18555
 
18556
+ /**
18557
+ * @interface
18558
+ * Accessibility options for view tab navigation.
18559
+ */
18560
+ declare type ViewTabAccessibilityOptions = {
18561
+ /**
18562
+ * Controls which elements are reachable via Tab key navigation.
18563
+ * Uses roving tabindex pattern - only one element focusable at a time.
18564
+ * @default ['active-tab', 'add-tab-button']
18565
+ */
18566
+ tabNavigation?: ViewTabElements[];
18567
+ /**
18568
+ * Controls which elements are navigable via Arrow keys.
18569
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
18570
+ */
18571
+ arrowNavigation?: ViewTabElements[];
18572
+ /**
18573
+ * Whether Delete/Backspace keys close the focused tab.
18574
+ * @default false
18575
+ */
18576
+ enableDeleteKeyClose?: boolean;
18577
+ /**
18578
+ * Whether Home/End keys jump to first/last navigable element.
18579
+ * @default false
18580
+ */
18581
+ enableHomeEndNavigation?: boolean;
18582
+ /**
18583
+ * Custom aria-label providers. Can be a static string or a function receiving context.
18584
+ */
18585
+ ariaLabels?: AriaLabelOptions;
18586
+ /**
18587
+ * Whether to announce tab changes via aria-live.
18588
+ * @default true
18589
+ */
18590
+ announceTabChanges?: boolean;
18591
+ /**
18592
+ * Focus behavior when a tab is closed via keyboard.
18593
+ * @default 'next'
18594
+ */
18595
+ focusOnCloseStrategy?: 'next' | 'previous' | 'active';
18596
+ };
18597
+
18598
+ /**
18599
+ * Elements that can be navigated in view tabs.
18600
+ */
18601
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
18602
+
18473
18603
  /**
18474
18604
  * View throttling state.
18475
18605
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/core",
3
- "version": "45.100.64",
3
+ "version": "45.100.67",
4
4
  "description": "The core renderer entry point of OpenFin",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "out/stub.js",