@tamagui/tabs-headless 2.0.0-rc.3 → 2.0.0-rc.31

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/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./useTabs";
1
+ export * from "./useTabs.mjs";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
package/dist/jsx/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./useTabs";
1
+ export * from "./useTabs.mjs";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/tabs-headless",
3
- "version": "2.0.0-rc.3",
3
+ "version": "2.0.0-rc.31",
4
4
  "source": "src/index.ts",
5
5
  "files": [
6
6
  "src",
@@ -16,15 +16,12 @@
16
16
  "./package.json": "./package.json",
17
17
  ".": {
18
18
  "types": "./types/index.d.ts",
19
- "react-native": {
20
- "module": "./dist/esm/index.native.js",
21
- "import": "./dist/esm/index.native.js",
22
- "require": "./dist/cjs/index.native.js"
23
- },
19
+ "react-native": "./dist/esm/index.native.js",
20
+ "browser": "./dist/esm/index.mjs",
24
21
  "module": "./dist/esm/index.mjs",
25
22
  "import": "./dist/esm/index.mjs",
26
23
  "require": "./dist/cjs/index.cjs",
27
- "default": "./dist/cjs/index.native.js"
24
+ "default": "./dist/esm/index.mjs"
28
25
  }
29
26
  },
30
27
  "publishConfig": {
@@ -37,12 +34,12 @@
37
34
  "clean:build": "tamagui-build clean:build"
38
35
  },
39
36
  "dependencies": {
40
- "@tamagui/helpers": "2.0.0-rc.3",
41
- "@tamagui/use-controllable-state": "2.0.0-rc.3",
42
- "@tamagui/use-direction": "2.0.0-rc.3"
37
+ "@tamagui/helpers": "2.0.0-rc.31",
38
+ "@tamagui/use-controllable-state": "2.0.0-rc.31",
39
+ "@tamagui/use-direction": "2.0.0-rc.31"
43
40
  },
44
41
  "devDependencies": {
45
- "@tamagui/build": "2.0.0-rc.3",
42
+ "@tamagui/build": "2.0.0-rc.31",
46
43
  "react": ">=19"
47
44
  },
48
45
  "peerDependencies": {
package/dist/cjs/index.js DELETED
@@ -1,15 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from == "object" || typeof from == "function")
7
- for (let key of __getOwnPropNames(from))
8
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
9
- return to;
10
- }, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
11
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
12
- var index_exports = {};
13
- module.exports = __toCommonJS(index_exports);
14
- __reExport(index_exports, require("./useTabs"), module.exports);
15
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,sBAAd;",
5
- "names": []
6
- }
@@ -1,210 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
- var useTabs_exports = {};
24
- __export(useTabs_exports, {
25
- TabsProvider: () => TabsProvider,
26
- useTab: () => useTab,
27
- useTabContent: () => useTabContent,
28
- useTabs: () => useTabs,
29
- useTabsContext: () => useTabsContext
30
- });
31
- module.exports = __toCommonJS(useTabs_exports);
32
- var import_helpers = require("@tamagui/helpers"), import_use_controllable_state = require("@tamagui/use-controllable-state"), import_use_direction = require("@tamagui/use-direction"), React = __toESM(require("react"), 1), import_react = require("react");
33
- function useTabs(props = {}) {
34
- const {
35
- value: valueProp,
36
- onValueChange,
37
- defaultValue = "",
38
- orientation = "horizontal",
39
- dir,
40
- activationMode = "automatic",
41
- loop = !0
42
- } = props, direction = (0, import_use_direction.useDirection)(dir), baseId = (0, import_react.useId)(), [value, setValue] = (0, import_use_controllable_state.useControllableState)({
43
- prop: valueProp,
44
- onChange: onValueChange,
45
- defaultProp: defaultValue
46
- }), tabRefs = (0, import_react.useRef)(/* @__PURE__ */ new Map()), [tabValues, setTabValues] = (0, import_react.useState)([]), registerTab = (0, import_react.useCallback)((tabValue, element) => {
47
- element ? (tabRefs.current.set(tabValue, element), setTabValues((prev) => prev.includes(tabValue) ? prev : [...prev, tabValue])) : (tabRefs.current.delete(tabValue), setTabValues((prev) => prev.filter((v) => v !== tabValue)));
48
- }, []), focusTab = (0, import_react.useCallback)((tabValue) => {
49
- tabRefs.current.get(tabValue)?.focus();
50
- }, []), getNextTab = (0, import_react.useCallback)(
51
- (currentValue, direction2) => {
52
- const currentIndex = tabValues.indexOf(currentValue);
53
- if (currentIndex === -1) return null;
54
- let nextIndex = currentIndex + direction2;
55
- if (loop)
56
- nextIndex = (nextIndex + tabValues.length) % tabValues.length;
57
- else if (nextIndex < 0 || nextIndex >= tabValues.length) return null;
58
- return tabValues[nextIndex] ?? null;
59
- },
60
- [tabValues, loop]
61
- ), handleKeyDown = (0, import_react.useCallback)(
62
- (tabValue) => (event) => {
63
- const isHorizontal = orientation === "horizontal", isRtl = direction === "rtl";
64
- let nextTab = null;
65
- switch (event.key) {
66
- case "ArrowRight":
67
- isHorizontal && (nextTab = getNextTab(tabValue, isRtl ? -1 : 1));
68
- break;
69
- case "ArrowLeft":
70
- isHorizontal && (nextTab = getNextTab(tabValue, isRtl ? 1 : -1));
71
- break;
72
- case "ArrowDown":
73
- isHorizontal || (nextTab = getNextTab(tabValue, 1));
74
- break;
75
- case "ArrowUp":
76
- isHorizontal || (nextTab = getNextTab(tabValue, -1));
77
- break;
78
- case "Home":
79
- nextTab = tabValues[0] ?? null;
80
- break;
81
- case "End":
82
- nextTab = tabValues[tabValues.length - 1] ?? null;
83
- break;
84
- case " ":
85
- case "Enter":
86
- activationMode === "manual" && (setValue(tabValue), event.preventDefault());
87
- return;
88
- }
89
- nextTab && (event.preventDefault(), focusTab(nextTab), activationMode === "automatic" && setValue(nextTab));
90
- },
91
- [orientation, direction, getNextTab, tabValues, activationMode, setValue, focusTab]
92
- ), getTabProps = (0, import_react.useCallback)(
93
- (tabValue, disabled) => {
94
- const isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue);
95
- return {
96
- role: "tab",
97
- id: triggerId,
98
- "aria-selected": isSelected,
99
- "aria-controls": contentId,
100
- "data-state": isSelected ? "active" : "inactive",
101
- ...disabled && { "data-disabled": "" },
102
- disabled,
103
- tabIndex: isSelected ? 0 : -1,
104
- onKeyDown: disabled ? () => {
105
- } : handleKeyDown(tabValue),
106
- onClick: (event) => {
107
- !disabled && !isSelected && setValue(tabValue);
108
- },
109
- onFocus: (event) => {
110
- registerTab(tabValue, event.currentTarget), !disabled && !isSelected && activationMode === "automatic" && setValue(tabValue);
111
- }
112
- };
113
- },
114
- [value, baseId, handleKeyDown, setValue, activationMode, registerTab]
115
- ), getContentProps = (0, import_react.useCallback)(
116
- (tabValue) => {
117
- const isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue);
118
- return {
119
- role: "tabpanel",
120
- id: makeContentId(baseId, tabValue),
121
- "aria-labelledby": triggerId,
122
- "data-state": isSelected ? "active" : "inactive",
123
- "data-orientation": orientation,
124
- hidden: !isSelected,
125
- tabIndex: 0
126
- };
127
- },
128
- [value, baseId, orientation]
129
- );
130
- return {
131
- value,
132
- setValue,
133
- direction,
134
- tabsProps: {
135
- "data-orientation": orientation,
136
- dir: direction
137
- },
138
- listProps: {
139
- role: "tablist",
140
- "aria-orientation": orientation
141
- },
142
- getTabProps,
143
- getContentProps,
144
- contextValue: {
145
- baseId,
146
- value,
147
- setValue,
148
- orientation,
149
- direction,
150
- activationMode,
151
- loop
152
- }
153
- };
154
- }
155
- const TabsContext = React.createContext(null), TabsProvider = TabsContext.Provider;
156
- function useTabsContext() {
157
- const context = React.useContext(TabsContext);
158
- if (!context)
159
- throw new Error("useTabsContext must be used within a TabsProvider");
160
- return context;
161
- }
162
- function useTab(props) {
163
- const { value: tabValue, disabled, onPress, onKeyDown, onFocus } = props, context = useTabsContext(), { value, setValue, baseId, activationMode, orientation, direction, loop } = context, isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue), ref = (0, import_react.useRef)(null);
164
- return {
165
- isSelected,
166
- tabProps: {
167
- ref,
168
- role: "tab",
169
- id: triggerId,
170
- "aria-selected": isSelected,
171
- "aria-controls": contentId,
172
- "data-state": isSelected ? "active" : "inactive",
173
- ...disabled && { "data-disabled": "" },
174
- disabled,
175
- tabIndex: isSelected ? 0 : -1,
176
- onKeyDown: (0, import_helpers.composeEventHandlers)(onKeyDown, (event) => {
177
- disabled || [" ", "Enter"].includes(event.key) && (setValue(tabValue), event.preventDefault());
178
- }),
179
- onPress: (0, import_helpers.composeEventHandlers)(onPress, () => {
180
- !disabled && !isSelected && setValue(tabValue);
181
- }),
182
- onFocus: (0, import_helpers.composeEventHandlers)(onFocus, () => {
183
- !disabled && !isSelected && activationMode === "automatic" && setValue(tabValue);
184
- })
185
- }
186
- };
187
- }
188
- function useTabContent(props) {
189
- const { value: tabValue, forceMount } = props, context = useTabsContext(), { value, baseId, orientation } = context, isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue);
190
- return {
191
- isSelected,
192
- shouldMount: forceMount || isSelected,
193
- contentProps: {
194
- role: "tabpanel",
195
- id: contentId,
196
- "aria-labelledby": triggerId,
197
- "data-state": isSelected ? "active" : "inactive",
198
- "data-orientation": orientation,
199
- hidden: !isSelected,
200
- tabIndex: 0
201
- }
202
- };
203
- }
204
- function makeTriggerId(baseId, value) {
205
- return `${baseId}-trigger-${value}`;
206
- }
207
- function makeContentId(baseId, value) {
208
- return `${baseId}-content-${value}`;
209
- }
210
- //# sourceMappingURL=useTabs.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useTabs.tsx"],
4
- "mappings": "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",
5
- "names": ["direction"]
6
- }
@@ -1,190 +0,0 @@
1
- import { composeEventHandlers } from "@tamagui/helpers";
2
- import { useControllableState } from "@tamagui/use-controllable-state";
3
- import { useDirection } from "@tamagui/use-direction";
4
- import * as React from "react";
5
- import { useCallback, useId, useRef, useState } from "react";
6
- function useTabs(props = {}) {
7
- const {
8
- value: valueProp,
9
- onValueChange,
10
- defaultValue = "",
11
- orientation = "horizontal",
12
- dir,
13
- activationMode = "automatic",
14
- loop = !0
15
- } = props, direction = useDirection(dir), baseId = useId(), [value, setValue] = useControllableState({
16
- prop: valueProp,
17
- onChange: onValueChange,
18
- defaultProp: defaultValue
19
- }), tabRefs = useRef(/* @__PURE__ */ new Map()), [tabValues, setTabValues] = useState([]), registerTab = useCallback((tabValue, element) => {
20
- element ? (tabRefs.current.set(tabValue, element), setTabValues((prev) => prev.includes(tabValue) ? prev : [...prev, tabValue])) : (tabRefs.current.delete(tabValue), setTabValues((prev) => prev.filter((v) => v !== tabValue)));
21
- }, []), focusTab = useCallback((tabValue) => {
22
- tabRefs.current.get(tabValue)?.focus();
23
- }, []), getNextTab = useCallback(
24
- (currentValue, direction2) => {
25
- const currentIndex = tabValues.indexOf(currentValue);
26
- if (currentIndex === -1) return null;
27
- let nextIndex = currentIndex + direction2;
28
- if (loop)
29
- nextIndex = (nextIndex + tabValues.length) % tabValues.length;
30
- else if (nextIndex < 0 || nextIndex >= tabValues.length) return null;
31
- return tabValues[nextIndex] ?? null;
32
- },
33
- [tabValues, loop]
34
- ), handleKeyDown = useCallback(
35
- (tabValue) => (event) => {
36
- const isHorizontal = orientation === "horizontal", isRtl = direction === "rtl";
37
- let nextTab = null;
38
- switch (event.key) {
39
- case "ArrowRight":
40
- isHorizontal && (nextTab = getNextTab(tabValue, isRtl ? -1 : 1));
41
- break;
42
- case "ArrowLeft":
43
- isHorizontal && (nextTab = getNextTab(tabValue, isRtl ? 1 : -1));
44
- break;
45
- case "ArrowDown":
46
- isHorizontal || (nextTab = getNextTab(tabValue, 1));
47
- break;
48
- case "ArrowUp":
49
- isHorizontal || (nextTab = getNextTab(tabValue, -1));
50
- break;
51
- case "Home":
52
- nextTab = tabValues[0] ?? null;
53
- break;
54
- case "End":
55
- nextTab = tabValues[tabValues.length - 1] ?? null;
56
- break;
57
- case " ":
58
- case "Enter":
59
- activationMode === "manual" && (setValue(tabValue), event.preventDefault());
60
- return;
61
- }
62
- nextTab && (event.preventDefault(), focusTab(nextTab), activationMode === "automatic" && setValue(nextTab));
63
- },
64
- [orientation, direction, getNextTab, tabValues, activationMode, setValue, focusTab]
65
- ), getTabProps = useCallback(
66
- (tabValue, disabled) => {
67
- const isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue);
68
- return {
69
- role: "tab",
70
- id: triggerId,
71
- "aria-selected": isSelected,
72
- "aria-controls": contentId,
73
- "data-state": isSelected ? "active" : "inactive",
74
- ...disabled && { "data-disabled": "" },
75
- disabled,
76
- tabIndex: isSelected ? 0 : -1,
77
- onKeyDown: disabled ? () => {
78
- } : handleKeyDown(tabValue),
79
- onClick: (event) => {
80
- !disabled && !isSelected && setValue(tabValue);
81
- },
82
- onFocus: (event) => {
83
- registerTab(tabValue, event.currentTarget), !disabled && !isSelected && activationMode === "automatic" && setValue(tabValue);
84
- }
85
- };
86
- },
87
- [value, baseId, handleKeyDown, setValue, activationMode, registerTab]
88
- ), getContentProps = useCallback(
89
- (tabValue) => {
90
- const isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue);
91
- return {
92
- role: "tabpanel",
93
- id: makeContentId(baseId, tabValue),
94
- "aria-labelledby": triggerId,
95
- "data-state": isSelected ? "active" : "inactive",
96
- "data-orientation": orientation,
97
- hidden: !isSelected,
98
- tabIndex: 0
99
- };
100
- },
101
- [value, baseId, orientation]
102
- );
103
- return {
104
- value,
105
- setValue,
106
- direction,
107
- tabsProps: {
108
- "data-orientation": orientation,
109
- dir: direction
110
- },
111
- listProps: {
112
- role: "tablist",
113
- "aria-orientation": orientation
114
- },
115
- getTabProps,
116
- getContentProps,
117
- contextValue: {
118
- baseId,
119
- value,
120
- setValue,
121
- orientation,
122
- direction,
123
- activationMode,
124
- loop
125
- }
126
- };
127
- }
128
- const TabsContext = React.createContext(null), TabsProvider = TabsContext.Provider;
129
- function useTabsContext() {
130
- const context = React.useContext(TabsContext);
131
- if (!context)
132
- throw new Error("useTabsContext must be used within a TabsProvider");
133
- return context;
134
- }
135
- function useTab(props) {
136
- const { value: tabValue, disabled, onPress, onKeyDown, onFocus } = props, context = useTabsContext(), { value, setValue, baseId, activationMode, orientation, direction, loop } = context, isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue), ref = useRef(null);
137
- return {
138
- isSelected,
139
- tabProps: {
140
- ref,
141
- role: "tab",
142
- id: triggerId,
143
- "aria-selected": isSelected,
144
- "aria-controls": contentId,
145
- "data-state": isSelected ? "active" : "inactive",
146
- ...disabled && { "data-disabled": "" },
147
- disabled,
148
- tabIndex: isSelected ? 0 : -1,
149
- onKeyDown: composeEventHandlers(onKeyDown, (event) => {
150
- disabled || [" ", "Enter"].includes(event.key) && (setValue(tabValue), event.preventDefault());
151
- }),
152
- onPress: composeEventHandlers(onPress, () => {
153
- !disabled && !isSelected && setValue(tabValue);
154
- }),
155
- onFocus: composeEventHandlers(onFocus, () => {
156
- !disabled && !isSelected && activationMode === "automatic" && setValue(tabValue);
157
- })
158
- }
159
- };
160
- }
161
- function useTabContent(props) {
162
- const { value: tabValue, forceMount } = props, context = useTabsContext(), { value, baseId, orientation } = context, isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue);
163
- return {
164
- isSelected,
165
- shouldMount: forceMount || isSelected,
166
- contentProps: {
167
- role: "tabpanel",
168
- id: contentId,
169
- "aria-labelledby": triggerId,
170
- "data-state": isSelected ? "active" : "inactive",
171
- "data-orientation": orientation,
172
- hidden: !isSelected,
173
- tabIndex: 0
174
- }
175
- };
176
- }
177
- function makeTriggerId(baseId, value) {
178
- return `${baseId}-trigger-${value}`;
179
- }
180
- function makeContentId(baseId, value) {
181
- return `${baseId}-content-${value}`;
182
- }
183
- export {
184
- TabsProvider,
185
- useTab,
186
- useTabContent,
187
- useTabs,
188
- useTabsContext
189
- };
190
- //# sourceMappingURL=useTabs.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useTabs.tsx"],
4
- "mappings": "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",
5
- "names": ["direction"]
6
- }
@@ -1,190 +0,0 @@
1
- import { composeEventHandlers } from "@tamagui/helpers";
2
- import { useControllableState } from "@tamagui/use-controllable-state";
3
- import { useDirection } from "@tamagui/use-direction";
4
- import * as React from "react";
5
- import { useCallback, useId, useRef, useState } from "react";
6
- function useTabs(props = {}) {
7
- const {
8
- value: valueProp,
9
- onValueChange,
10
- defaultValue = "",
11
- orientation = "horizontal",
12
- dir,
13
- activationMode = "automatic",
14
- loop = !0
15
- } = props, direction = useDirection(dir), baseId = useId(), [value, setValue] = useControllableState({
16
- prop: valueProp,
17
- onChange: onValueChange,
18
- defaultProp: defaultValue
19
- }), tabRefs = useRef(/* @__PURE__ */ new Map()), [tabValues, setTabValues] = useState([]), registerTab = useCallback((tabValue, element) => {
20
- element ? (tabRefs.current.set(tabValue, element), setTabValues((prev) => prev.includes(tabValue) ? prev : [...prev, tabValue])) : (tabRefs.current.delete(tabValue), setTabValues((prev) => prev.filter((v) => v !== tabValue)));
21
- }, []), focusTab = useCallback((tabValue) => {
22
- tabRefs.current.get(tabValue)?.focus();
23
- }, []), getNextTab = useCallback(
24
- (currentValue, direction2) => {
25
- const currentIndex = tabValues.indexOf(currentValue);
26
- if (currentIndex === -1) return null;
27
- let nextIndex = currentIndex + direction2;
28
- if (loop)
29
- nextIndex = (nextIndex + tabValues.length) % tabValues.length;
30
- else if (nextIndex < 0 || nextIndex >= tabValues.length) return null;
31
- return tabValues[nextIndex] ?? null;
32
- },
33
- [tabValues, loop]
34
- ), handleKeyDown = useCallback(
35
- (tabValue) => (event) => {
36
- const isHorizontal = orientation === "horizontal", isRtl = direction === "rtl";
37
- let nextTab = null;
38
- switch (event.key) {
39
- case "ArrowRight":
40
- isHorizontal && (nextTab = getNextTab(tabValue, isRtl ? -1 : 1));
41
- break;
42
- case "ArrowLeft":
43
- isHorizontal && (nextTab = getNextTab(tabValue, isRtl ? 1 : -1));
44
- break;
45
- case "ArrowDown":
46
- isHorizontal || (nextTab = getNextTab(tabValue, 1));
47
- break;
48
- case "ArrowUp":
49
- isHorizontal || (nextTab = getNextTab(tabValue, -1));
50
- break;
51
- case "Home":
52
- nextTab = tabValues[0] ?? null;
53
- break;
54
- case "End":
55
- nextTab = tabValues[tabValues.length - 1] ?? null;
56
- break;
57
- case " ":
58
- case "Enter":
59
- activationMode === "manual" && (setValue(tabValue), event.preventDefault());
60
- return;
61
- }
62
- nextTab && (event.preventDefault(), focusTab(nextTab), activationMode === "automatic" && setValue(nextTab));
63
- },
64
- [orientation, direction, getNextTab, tabValues, activationMode, setValue, focusTab]
65
- ), getTabProps = useCallback(
66
- (tabValue, disabled) => {
67
- const isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue);
68
- return {
69
- role: "tab",
70
- id: triggerId,
71
- "aria-selected": isSelected,
72
- "aria-controls": contentId,
73
- "data-state": isSelected ? "active" : "inactive",
74
- ...disabled && { "data-disabled": "" },
75
- disabled,
76
- tabIndex: isSelected ? 0 : -1,
77
- onKeyDown: disabled ? () => {
78
- } : handleKeyDown(tabValue),
79
- onClick: (event) => {
80
- !disabled && !isSelected && setValue(tabValue);
81
- },
82
- onFocus: (event) => {
83
- registerTab(tabValue, event.currentTarget), !disabled && !isSelected && activationMode === "automatic" && setValue(tabValue);
84
- }
85
- };
86
- },
87
- [value, baseId, handleKeyDown, setValue, activationMode, registerTab]
88
- ), getContentProps = useCallback(
89
- (tabValue) => {
90
- const isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue);
91
- return {
92
- role: "tabpanel",
93
- id: makeContentId(baseId, tabValue),
94
- "aria-labelledby": triggerId,
95
- "data-state": isSelected ? "active" : "inactive",
96
- "data-orientation": orientation,
97
- hidden: !isSelected,
98
- tabIndex: 0
99
- };
100
- },
101
- [value, baseId, orientation]
102
- );
103
- return {
104
- value,
105
- setValue,
106
- direction,
107
- tabsProps: {
108
- "data-orientation": orientation,
109
- dir: direction
110
- },
111
- listProps: {
112
- role: "tablist",
113
- "aria-orientation": orientation
114
- },
115
- getTabProps,
116
- getContentProps,
117
- contextValue: {
118
- baseId,
119
- value,
120
- setValue,
121
- orientation,
122
- direction,
123
- activationMode,
124
- loop
125
- }
126
- };
127
- }
128
- const TabsContext = React.createContext(null), TabsProvider = TabsContext.Provider;
129
- function useTabsContext() {
130
- const context = React.useContext(TabsContext);
131
- if (!context)
132
- throw new Error("useTabsContext must be used within a TabsProvider");
133
- return context;
134
- }
135
- function useTab(props) {
136
- const { value: tabValue, disabled, onPress, onKeyDown, onFocus } = props, context = useTabsContext(), { value, setValue, baseId, activationMode, orientation, direction, loop } = context, isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue), ref = useRef(null);
137
- return {
138
- isSelected,
139
- tabProps: {
140
- ref,
141
- role: "tab",
142
- id: triggerId,
143
- "aria-selected": isSelected,
144
- "aria-controls": contentId,
145
- "data-state": isSelected ? "active" : "inactive",
146
- ...disabled && { "data-disabled": "" },
147
- disabled,
148
- tabIndex: isSelected ? 0 : -1,
149
- onKeyDown: composeEventHandlers(onKeyDown, (event) => {
150
- disabled || [" ", "Enter"].includes(event.key) && (setValue(tabValue), event.preventDefault());
151
- }),
152
- onPress: composeEventHandlers(onPress, () => {
153
- !disabled && !isSelected && setValue(tabValue);
154
- }),
155
- onFocus: composeEventHandlers(onFocus, () => {
156
- !disabled && !isSelected && activationMode === "automatic" && setValue(tabValue);
157
- })
158
- }
159
- };
160
- }
161
- function useTabContent(props) {
162
- const { value: tabValue, forceMount } = props, context = useTabsContext(), { value, baseId, orientation } = context, isSelected = value === tabValue, triggerId = makeTriggerId(baseId, tabValue), contentId = makeContentId(baseId, tabValue);
163
- return {
164
- isSelected,
165
- shouldMount: forceMount || isSelected,
166
- contentProps: {
167
- role: "tabpanel",
168
- id: contentId,
169
- "aria-labelledby": triggerId,
170
- "data-state": isSelected ? "active" : "inactive",
171
- "data-orientation": orientation,
172
- hidden: !isSelected,
173
- tabIndex: 0
174
- }
175
- };
176
- }
177
- function makeTriggerId(baseId, value) {
178
- return `${baseId}-trigger-${value}`;
179
- }
180
- function makeContentId(baseId, value) {
181
- return `${baseId}-content-${value}`;
182
- }
183
- export {
184
- TabsProvider,
185
- useTab,
186
- useTabContent,
187
- useTabs,
188
- useTabsContext
189
- };
190
- //# sourceMappingURL=useTabs.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useTabs.tsx"],
4
- "mappings": "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",
5
- "names": ["direction"]
6
- }