@tamagui/tabs-headless 2.7.7 → 3.0.0-beta.643.1

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.
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
  export type TabsActivationMode = 'automatic' | 'manual';
3
3
  export type TabsOrientation = 'horizontal' | 'vertical';
4
4
  export type Direction = 'ltr' | 'rtl';
5
+ export declare function makeTriggerId(baseId: string, value: string): string;
6
+ export declare function makeContentId(baseId: string, value: string): string;
5
7
  export interface UseTabsProps {
6
8
  /** The value for the selected tab, if controlled */
7
9
  value?: string;
@@ -10,120 +12,97 @@ export interface UseTabsProps {
10
12
  /** A function called when a new tab is selected */
11
13
  onValueChange?: (value: string) => void;
12
14
  /**
13
- * The orientation the tabs are layed out.
14
- * Mainly so arrow navigation is done accordingly (left & right vs. up & down)
15
+ * The orientation the tabs are laid out.
15
16
  * @defaultValue horizontal
16
17
  */
17
18
  orientation?: TabsOrientation;
18
- /**
19
- * The direction of navigation between toolbar items.
20
- */
19
+ /** The direction of navigation between tab triggers. */
21
20
  dir?: Direction;
22
21
  /**
23
- * Whether a tab is activated automatically (on focus) or manually (on click/enter).
22
+ * Whether a tab is activated automatically (on focus) or manually (on press/enter).
23
+ * Automatic activation is web-only; native always activates manually.
24
24
  * @defaultValue automatic
25
25
  */
26
26
  activationMode?: TabsActivationMode;
27
- /**
28
- * Whether keyboard navigation should loop from last to first and vice versa.
29
- * @defaultValue true
30
- */
31
- loop?: boolean;
32
27
  }
33
- export interface UseTabsReturn {
34
- /** The currently selected tab value */
28
+ export declare function useTabs(props?: UseTabsProps): {
35
29
  value: string;
36
- /** Function to change the selected tab */
37
- setValue: (value: string) => void;
38
- /** The resolved text direction */
39
- direction: Direction;
40
- /** Props to spread on the tabs container element */
30
+ setValue: import("@tamagui/use-controllable-state").ControllableStateSetter<string, import("@tamagui/web").TamaguiChangeEventDetails>;
31
+ baseId: string;
32
+ direction: "ltr" | "rtl";
33
+ orientation: TabsOrientation;
34
+ activationMode: TabsActivationMode;
35
+ triggersCount: number;
36
+ registerTrigger: () => void;
37
+ unregisterTrigger: () => void;
41
38
  tabsProps: {
42
39
  'data-orientation': TabsOrientation;
43
- dir: Direction;
44
40
  };
45
- /** Props to spread on the tab list element */
41
+ };
42
+ export interface UseTabsListProps {
43
+ orientation?: TabsOrientation;
44
+ /** Disables every trigger in the list. */
45
+ disabled?: boolean;
46
+ }
47
+ export declare function useTabsList(props: UseTabsListProps): {
46
48
  listProps: {
47
49
  role: 'tablist';
48
50
  'aria-orientation': TabsOrientation;
51
+ 'aria-disabled': true | undefined;
52
+ 'data-orientation': TabsOrientation;
53
+ 'data-disabled': "" | undefined;
49
54
  };
50
- /** Function to get props for a tab trigger */
51
- getTabProps: (tabValue: string, disabled?: boolean) => TabTriggerProps;
52
- /** Function to get props for a tab content panel */
53
- getContentProps: (tabValue: string) => TabContentProps;
54
- /** Context value to provide to child components */
55
- contextValue: TabsContextValue;
56
- }
57
- export interface TabTriggerProps {
58
- role: 'tab';
59
- id: string;
60
- 'aria-selected': boolean;
61
- 'aria-controls': string;
62
- 'data-state': 'active' | 'inactive';
63
- 'data-disabled'?: '';
64
- disabled?: boolean;
65
- tabIndex: number;
66
- onKeyDown: (event: React.KeyboardEvent) => void;
67
- onClick: (event: React.MouseEvent) => void;
68
- onFocus: (event: React.FocusEvent) => void;
69
- }
70
- export interface TabContentProps {
71
- role: 'tabpanel';
72
- id: string;
73
- 'aria-labelledby': string;
74
- 'data-state': 'active' | 'inactive';
75
- 'data-orientation': TabsOrientation;
76
- hidden: boolean;
77
- tabIndex: 0;
78
- }
79
- export interface TabsContextValue {
80
- baseId: string;
81
- value: string;
82
- setValue: (value: string) => void;
83
- orientation: TabsOrientation;
84
- direction: Direction;
85
- activationMode: TabsActivationMode;
86
- loop: boolean;
87
- }
88
- export declare function useTabs(props?: UseTabsProps): UseTabsReturn;
89
- export declare const TabsProvider: React.Provider<TabsContextValue | null>;
90
- export declare function useTabsContext(): TabsContextValue;
55
+ };
56
+ /** the fields the primary-pointer check reads off a web press event */
57
+ export type TabPressEvent = {
58
+ button?: number;
59
+ ctrlKey?: boolean;
60
+ };
91
61
  export interface UseTabProps {
62
+ baseId: string;
63
+ /** The value this trigger selects. */
92
64
  value: string;
65
+ /** The currently selected value. */
66
+ selectedValue?: string;
93
67
  disabled?: boolean;
94
- onPress?: (event: any) => void;
95
- onKeyDown?: (event: React.KeyboardEvent) => void;
96
- onFocus?: (event: React.FocusEvent) => void;
68
+ activationMode?: TabsActivationMode;
69
+ onChange: (value: string) => void;
97
70
  }
98
71
  export declare function useTab(props: UseTabProps): {
99
72
  isSelected: boolean;
73
+ triggerId: string;
74
+ contentId: string;
100
75
  tabProps: {
101
- disabled: boolean | undefined;
102
- tabIndex: number;
103
- onKeyDown: import("@tamagui/helpers").EventHandler<React.KeyboardEvent<Element>> | undefined;
104
- onPress: import("@tamagui/helpers").EventHandler<any> | undefined;
105
- onFocus: import("@tamagui/helpers").EventHandler<React.FocusEvent<Element, Element>> | undefined;
106
- 'data-disabled'?: "" | undefined;
107
- ref: React.RefObject<HTMLElement | null>;
108
- role: "tab";
76
+ role: 'tab';
109
77
  id: string;
110
78
  'aria-selected': boolean;
111
79
  'aria-controls': string;
112
- 'data-state': string;
80
+ 'data-state': "active" | "inactive";
81
+ 'data-disabled': "" | undefined;
82
+ disabled: boolean;
83
+ onPress: (event?: TabPressEvent) => void;
84
+ onKeyDown?: ((event: React.KeyboardEvent) => void) | undefined;
85
+ onFocus?: (() => void) | undefined;
113
86
  };
114
87
  };
115
88
  export interface UseTabContentProps {
89
+ baseId: string;
90
+ /** The value that selects this content. */
116
91
  value: string;
92
+ /** The currently selected value. */
93
+ selectedValue?: string;
94
+ orientation?: TabsOrientation;
95
+ /** Mounts the content even when its value is not selected. */
117
96
  forceMount?: boolean;
118
97
  }
119
98
  export declare function useTabContent(props: UseTabContentProps): {
120
99
  isSelected: boolean;
121
100
  shouldMount: boolean;
122
101
  contentProps: {
123
- role: "tabpanel";
102
+ role: 'tabpanel';
124
103
  id: string;
125
104
  'aria-labelledby': string;
126
- 'data-state': string;
105
+ 'data-state': "active" | "inactive";
127
106
  'data-orientation': TabsOrientation;
128
107
  hidden: boolean;
129
108
  tabIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useTabs.d.ts","sourceRoot":"","sources":["../src/useTabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTabs.d.ts","sourceRoot":"","sources":["../src/useTabs.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,CAAA;AACvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAA;AACvD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;AAIrC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAE1D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAE1D;AAMD,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,wDAAwD;IACxD,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAA;CACpC;AAED,wBAAgB,OAAO,CAAC,KAAK,GAAE,YAAiB;;;;;;;;;;;QAyC1C,kBAAkB;;EAGvB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB;IAI/C,SAAS;QACP,IAAI,EAAE,SAAS;QACf,kBAAkB;QAClB,eAAe;QACf,kBAAkB;QAClB,eAAe;;EAGpB;AAMD,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW;;;;;cAmB7B,KAAK;;;;;;;0BAOO,aAAa;6BASV,KAAK,CAAC,aAAa;;;EAc7C;AAMD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB;;;;QAUjD,IAAI,EAAE,UAAU;QAChB,EAAE;QACF,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;QAClB,MAAM;QACN,QAAQ;;EAGb"}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}