@react-spectrum/tabs 3.0.0-alpha.4 → 3.0.0-nightly-641446f65-240905
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/Tabs.main.js +405 -0
- package/dist/Tabs.main.js.map +1 -0
- package/dist/Tabs.mjs +398 -0
- package/dist/Tabs.module.js +398 -0
- package/dist/Tabs.module.js.map +1 -0
- package/dist/import.mjs +20 -0
- package/dist/main.js +19 -418
- package/dist/main.js.map +1 -1
- package/dist/module.js +14 -360
- package/dist/module.js.map +1 -1
- package/dist/tabs_vars_css.main.js +86 -0
- package/dist/tabs_vars_css.main.js.map +1 -0
- package/dist/tabs_vars_css.mjs +88 -0
- package/dist/tabs_vars_css.module.js +88 -0
- package/dist/tabs_vars_css.module.js.map +1 -0
- package/dist/types.d.ts +16 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/vars.8b47c0b1.css +590 -0
- package/dist/vars.8b47c0b1.css.map +1 -0
- package/package.json +26 -24
- package/src/Tabs.tsx +233 -184
- package/src/index.ts +2 -1
- package/LICENSE +0 -201
- package/dist/main.css +0 -2
- package/dist/main.css.map +0 -1
package/dist/main.js
CHANGED
|
@@ -1,427 +1,28 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
} = require("@react-stately/tabs");
|
|
1
|
+
var $e8d58e7e32285ba6$exports = require("./Tabs.main.js");
|
|
2
|
+
var $8zXxA$reactstatelycollections = require("@react-stately/collections");
|
|
4
3
|
|
|
5
|
-
var {
|
|
6
|
-
useTab,
|
|
7
|
-
useTabs
|
|
8
|
-
} = require("@react-aria/tabs");
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
useProviderProps
|
|
13
|
-
} = require("@react-spectrum/provider");
|
|
14
|
-
|
|
15
|
-
var {
|
|
16
|
-
useLocale
|
|
17
|
-
} = require("@react-aria/i18n");
|
|
18
|
-
|
|
19
|
-
var {
|
|
20
|
-
useHover
|
|
21
|
-
} = require("@react-aria/interactions");
|
|
22
|
-
|
|
23
|
-
var {
|
|
24
|
-
Text
|
|
25
|
-
} = require("@react-spectrum/text");
|
|
26
|
-
|
|
27
|
-
var _react2 = require("react");
|
|
28
|
-
|
|
29
|
-
var _react = $parcel$interopDefault(_react2);
|
|
30
|
-
|
|
31
|
-
var {
|
|
32
|
-
useCallback,
|
|
33
|
-
useEffect,
|
|
34
|
-
useRef,
|
|
35
|
-
useState
|
|
36
|
-
} = _react2;
|
|
37
|
-
|
|
38
|
-
var {
|
|
39
|
-
mergeProps,
|
|
40
|
-
useId,
|
|
41
|
-
useLayoutEffect,
|
|
42
|
-
useResizeObserver
|
|
43
|
-
} = require("@react-aria/utils");
|
|
44
|
-
|
|
45
|
-
var {
|
|
46
|
-
Item: _Item,
|
|
47
|
-
Picker
|
|
48
|
-
} = require("@react-spectrum/picker");
|
|
49
|
-
|
|
50
|
-
var {
|
|
51
|
-
FocusRing
|
|
52
|
-
} = require("@react-aria/focus");
|
|
53
|
-
|
|
54
|
-
var {
|
|
55
|
-
classNames,
|
|
56
|
-
SlotProvider,
|
|
57
|
-
unwrapDOMRef,
|
|
58
|
-
useDOMRef,
|
|
59
|
-
useStyleProps,
|
|
60
|
-
useValueEffect
|
|
61
|
-
} = require("@react-spectrum/utils");
|
|
62
|
-
|
|
63
|
-
var _babelRuntimeHelpersObjectWithoutPropertiesLoose = $parcel$interopDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
64
|
-
|
|
65
|
-
var _babelRuntimeHelpersExtends = $parcel$interopDefault(require("@babel/runtime/helpers/extends"));
|
|
66
|
-
|
|
67
|
-
var {
|
|
68
|
-
Item
|
|
69
|
-
} = require("@react-stately/collections");
|
|
70
|
-
|
|
71
|
-
exports.Item = Item;
|
|
72
|
-
|
|
73
|
-
require("./main.css");
|
|
74
|
-
|
|
75
|
-
function $parcel$interopDefault(a) {
|
|
76
|
-
return a && a.__esModule ? a.default : a;
|
|
5
|
+
function $parcel$export(e, n, v, s) {
|
|
6
|
+
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
77
7
|
}
|
|
78
8
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
$
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"spectrum-Tabs--quiet": "_spectrum-Tabs--quiet_0248f",
|
|
95
|
-
"spectrum-Tabs--vertical": "_spectrum-Tabs--vertical_0248f",
|
|
96
|
-
"spectrum-TabsPanel-collapseWrapper": "_spectrum-TabsPanel-collapseWrapper_0248f",
|
|
97
|
-
"spectrum-TabsPanel-tabs": "_spectrum-TabsPanel-tabs_0248f",
|
|
98
|
-
"spectrum-TabsPanel-tabpanel": "_spectrum-TabsPanel-tabpanel_0248f",
|
|
99
|
-
"focus-ring": "_focus-ring_0248f",
|
|
100
|
-
"is-hovered": "_is-hovered_0248f",
|
|
101
|
-
"is-selected": "_is-selected_0248f"
|
|
102
|
-
};
|
|
103
|
-
var $a221257d7bd2e9d0c131cda7c75f4f5$$interop$default = $parcel$interopDefault($a221257d7bd2e9d0c131cda7c75f4f5$exports);
|
|
104
|
-
|
|
105
|
-
function $a016f96d614f365ec6ad3cd2df19b52$var$Tabs(props, ref) {
|
|
106
|
-
props = useProviderProps(props);
|
|
107
|
-
|
|
108
|
-
let {
|
|
109
|
-
orientation = 'horizontal',
|
|
110
|
-
isDisabled,
|
|
111
|
-
isQuiet,
|
|
112
|
-
density = 'regular',
|
|
113
|
-
children
|
|
114
|
-
} = props,
|
|
115
|
-
otherProps = _babelRuntimeHelpersObjectWithoutPropertiesLoose(props, ["orientation", "isDisabled", "isQuiet", "density", "children"]);
|
|
116
|
-
|
|
117
|
-
let domRef = useDOMRef(ref);
|
|
118
|
-
let tablistRef = useRef();
|
|
119
|
-
let wrapperRef = useRef();
|
|
120
|
-
let state = useTabsState(props);
|
|
121
|
-
let {
|
|
122
|
-
direction
|
|
123
|
-
} = useLocale();
|
|
124
|
-
let {
|
|
125
|
-
styleProps
|
|
126
|
-
} = useStyleProps(otherProps);
|
|
127
|
-
let {
|
|
128
|
-
tabListProps,
|
|
129
|
-
tabPanelProps
|
|
130
|
-
} = useTabs(props, state, tablistRef);
|
|
131
|
-
let [collapse, setCollapse] = useValueEffect(false);
|
|
132
|
-
let [selectedTab, setSelectedTab] = useState();
|
|
133
|
-
useEffect(() => {
|
|
134
|
-
if (tablistRef.current) {
|
|
135
|
-
let selectedTab = tablistRef.current.querySelector("[data-key=\"" + state.selectedKey + "\"]");
|
|
136
|
-
|
|
137
|
-
if (selectedTab != null) {
|
|
138
|
-
setSelectedTab(selectedTab);
|
|
139
|
-
}
|
|
140
|
-
} // collapse is in the dep array so selectedTab can be updated for TabLine positioning
|
|
141
|
-
|
|
142
|
-
}, [children, state.selectedKey, collapse, tablistRef]);
|
|
143
|
-
let checkShouldCollapse = useCallback(() => {
|
|
144
|
-
let computeShouldCollapse = () => {
|
|
145
|
-
if (wrapperRef.current) {
|
|
146
|
-
let tabsComponent = wrapperRef.current;
|
|
147
|
-
let tabs = tablistRef.current.querySelectorAll('[role="tab"]');
|
|
148
|
-
let lastTab = tabs[tabs.length - 1];
|
|
149
|
-
let end = direction === 'rtl' ? 'left' : 'right';
|
|
150
|
-
let farEdgeTabList = tabsComponent.getBoundingClientRect()[end];
|
|
151
|
-
let farEdgeLastTab = lastTab == null ? void 0 : lastTab.getBoundingClientRect()[end];
|
|
152
|
-
let shouldCollapse = direction === 'rtl' ? farEdgeLastTab < farEdgeTabList : farEdgeTabList < farEdgeLastTab;
|
|
153
|
-
return shouldCollapse;
|
|
154
|
-
}
|
|
155
|
-
};
|
|
9
|
+
$parcel$export(module.exports, "TabList", () => $e8d58e7e32285ba6$exports.TabList);
|
|
10
|
+
$parcel$export(module.exports, "TabPanels", () => $e8d58e7e32285ba6$exports.TabPanels);
|
|
11
|
+
$parcel$export(module.exports, "Tabs", () => $e8d58e7e32285ba6$exports.Tabs);
|
|
12
|
+
$parcel$export(module.exports, "Item", () => $8zXxA$reactstatelycollections.Item);
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/ /// <reference types="css-module-types" />
|
|
156
24
|
|
|
157
|
-
if (orientation !== 'vertical') {
|
|
158
|
-
setCollapse(function* () {
|
|
159
|
-
// Make Tabs render in non-collapsed state
|
|
160
|
-
yield false; // Compute if Tabs should collapse and update
|
|
161
|
-
|
|
162
|
-
yield computeShouldCollapse();
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}, [tablistRef, wrapperRef, direction, orientation, setCollapse]);
|
|
166
|
-
useEffect(() => {
|
|
167
|
-
checkShouldCollapse();
|
|
168
|
-
}, [children, checkShouldCollapse]);
|
|
169
|
-
useResizeObserver({
|
|
170
|
-
ref: wrapperRef,
|
|
171
|
-
onResize: checkShouldCollapse
|
|
172
|
-
}); // When the tabs are collapsed, the tabPanel should be labelled by the Picker button element.
|
|
173
|
-
|
|
174
|
-
let collapsibleTabListId = useId();
|
|
175
|
-
|
|
176
|
-
if (collapse && orientation !== 'vertical') {
|
|
177
|
-
tabPanelProps['aria-labelledby'] = collapsibleTabListId;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
return /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersExtends({}, styleProps, {
|
|
181
|
-
ref: domRef,
|
|
182
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-TabsPanel', "spectrum-TabsPanel--" + orientation, styleProps.className)
|
|
183
|
-
}), orientation === 'vertical' && /*#__PURE__*/_react.createElement($a016f96d614f365ec6ad3cd2df19b52$var$TabList, _babelRuntimeHelpersExtends({}, tabListProps, {
|
|
184
|
-
ref: tablistRef,
|
|
185
|
-
orientation: orientation,
|
|
186
|
-
density: density,
|
|
187
|
-
isQuiet: isQuiet,
|
|
188
|
-
isDisabled: isDisabled,
|
|
189
|
-
state: state,
|
|
190
|
-
selectedTab: selectedTab
|
|
191
|
-
})), orientation !== 'vertical' && /*#__PURE__*/_react.createElement($a016f96d614f365ec6ad3cd2df19b52$var$CollapsibleTabList, _babelRuntimeHelpersExtends({}, props, {
|
|
192
|
-
id: collapsibleTabListId,
|
|
193
|
-
wrapperRef: wrapperRef,
|
|
194
|
-
collapse: collapse,
|
|
195
|
-
tabListProps: tabListProps,
|
|
196
|
-
state: state,
|
|
197
|
-
selectedTab: selectedTab,
|
|
198
|
-
ref: tablistRef
|
|
199
|
-
})), /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersExtends({}, tabPanelProps, {
|
|
200
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-TabsPanel-tabpanel')
|
|
201
|
-
}), state.selectedItem && state.selectedItem.props.children));
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function Tab(props) {
|
|
205
|
-
let {
|
|
206
|
-
item,
|
|
207
|
-
state,
|
|
208
|
-
isDisabled: propsDisabled
|
|
209
|
-
} = props;
|
|
210
|
-
let {
|
|
211
|
-
key,
|
|
212
|
-
rendered
|
|
213
|
-
} = item;
|
|
214
|
-
let isDisabled = propsDisabled || state.disabledKeys.has(key);
|
|
215
|
-
let ref = useRef();
|
|
216
|
-
let {
|
|
217
|
-
tabProps
|
|
218
|
-
} = useTab({
|
|
219
|
-
item,
|
|
220
|
-
isDisabled
|
|
221
|
-
}, state, ref);
|
|
222
|
-
let {
|
|
223
|
-
hoverProps,
|
|
224
|
-
isHovered
|
|
225
|
-
} = useHover(_babelRuntimeHelpersExtends({}, props));
|
|
226
|
-
let isSelected = state.selectedKey === key;
|
|
227
|
-
return /*#__PURE__*/_react.createElement(FocusRing, {
|
|
228
|
-
focusRingClass: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'focus-ring')
|
|
229
|
-
}, /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersExtends({}, mergeProps(tabProps, hoverProps), {
|
|
230
|
-
ref: ref,
|
|
231
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Tabs-item', {
|
|
232
|
-
'is-selected': isSelected,
|
|
233
|
-
'is-disabled': isDisabled,
|
|
234
|
-
'is-hovered': isHovered
|
|
235
|
-
})
|
|
236
|
-
}), /*#__PURE__*/_react.createElement(SlotProvider, {
|
|
237
|
-
slots: {
|
|
238
|
-
icon: {
|
|
239
|
-
size: 'S',
|
|
240
|
-
UNSAFE_className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Icon')
|
|
241
|
-
},
|
|
242
|
-
text: {
|
|
243
|
-
UNSAFE_className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Tabs-itemLabel')
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}, typeof rendered === 'string' ? /*#__PURE__*/_react.createElement(Text, null, rendered) : rendered)));
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
exports.Tab = Tab;
|
|
250
|
-
|
|
251
|
-
function $a016f96d614f365ec6ad3cd2df19b52$var$TabLine(props) {
|
|
252
|
-
let {
|
|
253
|
-
orientation,
|
|
254
|
-
// Is either the tab node (non-collapsed) or the picker node (collapsed)
|
|
255
|
-
selectedTab,
|
|
256
|
-
// selectedKey is provided so that the TabLine styles are updated when the TabPicker's width updates from a selection change
|
|
257
|
-
selectedKey
|
|
258
|
-
} = props;
|
|
259
|
-
let verticalSelectionIndicatorOffset = 12;
|
|
260
|
-
let {
|
|
261
|
-
direction
|
|
262
|
-
} = useLocale();
|
|
263
|
-
let {
|
|
264
|
-
scale
|
|
265
|
-
} = useProvider();
|
|
266
|
-
let [style, setStyle] = useState({
|
|
267
|
-
width: undefined,
|
|
268
|
-
height: undefined
|
|
269
|
-
});
|
|
270
|
-
useLayoutEffect(() => {
|
|
271
|
-
if (selectedTab) {
|
|
272
|
-
var _ref;
|
|
273
|
-
|
|
274
|
-
let styleObj = {
|
|
275
|
-
transform: undefined,
|
|
276
|
-
width: undefined,
|
|
277
|
-
height: undefined
|
|
278
|
-
}; // In RTL, calculate the transform from the right edge of the tablist so that resizing the window doesn't break the Tabline position due to offsetLeft changes
|
|
279
|
-
|
|
280
|
-
let offset = direction === 'rtl' ? -1 * (((_ref = selectedTab.offsetParent) == null ? void 0 : _ref.offsetWidth) - selectedTab.offsetWidth - selectedTab.offsetLeft) : selectedTab.offsetLeft;
|
|
281
|
-
styleObj.transform = orientation === 'vertical' ? "translateY(" + (selectedTab.offsetTop + verticalSelectionIndicatorOffset / 2) + "px)" : "translateX(" + offset + "px)";
|
|
282
|
-
|
|
283
|
-
if (orientation === 'horizontal') {
|
|
284
|
-
styleObj.width = selectedTab.offsetWidth + "px";
|
|
285
|
-
} else {
|
|
286
|
-
styleObj.height = selectedTab.offsetHeight - verticalSelectionIndicatorOffset + "px";
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
setStyle(styleObj);
|
|
290
|
-
}
|
|
291
|
-
}, [direction, setStyle, selectedTab, orientation, scale, verticalSelectionIndicatorOffset, selectedKey]);
|
|
292
|
-
return /*#__PURE__*/_react.createElement("div", {
|
|
293
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Tabs-selectionIndicator'),
|
|
294
|
-
role: "presentation",
|
|
295
|
-
style: style
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
const $a016f96d614f365ec6ad3cd2df19b52$var$CollapsibleTabList = _react.forwardRef(function (props, ref) {
|
|
300
|
-
let {
|
|
301
|
-
tabListProps,
|
|
302
|
-
density,
|
|
303
|
-
isQuiet,
|
|
304
|
-
isDisabled,
|
|
305
|
-
state,
|
|
306
|
-
selectedTab,
|
|
307
|
-
wrapperRef,
|
|
308
|
-
collapse
|
|
309
|
-
} = props;
|
|
310
|
-
let tabListclassName = classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-TabsPanel-tabs');
|
|
311
|
-
return /*#__PURE__*/_react.createElement("div", {
|
|
312
|
-
ref: wrapperRef,
|
|
313
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-TabsPanel-collapseWrapper')
|
|
314
|
-
}, collapse && /*#__PURE__*/_react.createElement($a016f96d614f365ec6ad3cd2df19b52$var$TabPicker, _babelRuntimeHelpersExtends({}, props, {
|
|
315
|
-
className: tabListclassName
|
|
316
|
-
})), !collapse && /*#__PURE__*/_react.createElement($a016f96d614f365ec6ad3cd2df19b52$var$TabList, _babelRuntimeHelpersExtends({}, tabListProps, {
|
|
317
|
-
density: density,
|
|
318
|
-
isQuiet: isQuiet,
|
|
319
|
-
isDisabled: isDisabled,
|
|
320
|
-
state: state,
|
|
321
|
-
selectedTab: selectedTab,
|
|
322
|
-
ref: ref,
|
|
323
|
-
orientation: "horizontal",
|
|
324
|
-
className: tabListclassName
|
|
325
|
-
})));
|
|
326
|
-
});
|
|
327
|
-
|
|
328
|
-
const $a016f96d614f365ec6ad3cd2df19b52$var$TabList = _react.forwardRef(function (props, ref) {
|
|
329
|
-
let {
|
|
330
|
-
isQuiet,
|
|
331
|
-
density,
|
|
332
|
-
state,
|
|
333
|
-
isDisabled,
|
|
334
|
-
orientation,
|
|
335
|
-
selectedTab,
|
|
336
|
-
className
|
|
337
|
-
} = props,
|
|
338
|
-
otherProps = _babelRuntimeHelpersObjectWithoutPropertiesLoose(props, ["isQuiet", "density", "state", "isDisabled", "orientation", "selectedTab", "className"]);
|
|
339
|
-
|
|
340
|
-
return /*#__PURE__*/_react.createElement("div", _babelRuntimeHelpersExtends({}, otherProps, {
|
|
341
|
-
ref: ref,
|
|
342
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Tabs', "spectrum-Tabs--" + orientation, {
|
|
343
|
-
'spectrum-Tabs--quiet': isQuiet,
|
|
344
|
-
['spectrum-Tabs--compact']: density === 'compact'
|
|
345
|
-
}, className)
|
|
346
|
-
}), [...state.collection].map(item => /*#__PURE__*/_react.createElement(Tab, {
|
|
347
|
-
key: item.key,
|
|
348
|
-
item: item,
|
|
349
|
-
state: state,
|
|
350
|
-
isDisabled: isDisabled,
|
|
351
|
-
orientation: orientation
|
|
352
|
-
})), /*#__PURE__*/_react.createElement($a016f96d614f365ec6ad3cd2df19b52$var$TabLine, {
|
|
353
|
-
orientation: orientation,
|
|
354
|
-
selectedTab: selectedTab
|
|
355
|
-
}));
|
|
356
|
-
});
|
|
357
|
-
|
|
358
|
-
function $a016f96d614f365ec6ad3cd2df19b52$var$TabPicker(props) {
|
|
359
|
-
let {
|
|
360
|
-
isDisabled,
|
|
361
|
-
isQuiet,
|
|
362
|
-
state,
|
|
363
|
-
'aria-labelledby': ariaLabeledBy,
|
|
364
|
-
'aria-label': ariaLabel,
|
|
365
|
-
density,
|
|
366
|
-
className,
|
|
367
|
-
id
|
|
368
|
-
} = props;
|
|
369
|
-
let ref = useRef();
|
|
370
|
-
let [pickerNode, setPickerNode] = useState(null);
|
|
371
|
-
useEffect(() => {
|
|
372
|
-
let node = unwrapDOMRef(ref);
|
|
373
|
-
setPickerNode(node.current);
|
|
374
|
-
}, [ref]);
|
|
375
|
-
let items = [...state.collection].map(item => ({
|
|
376
|
-
rendered: item.rendered,
|
|
377
|
-
textValue: item.textValue,
|
|
378
|
-
id: item.key
|
|
379
|
-
}));
|
|
380
|
-
let pickerProps = {
|
|
381
|
-
'aria-labelledby': ariaLabeledBy,
|
|
382
|
-
'aria-label': ariaLabel
|
|
383
|
-
}; // TODO: Figure out if tabListProps should go onto the div here, v2 doesn't do it
|
|
384
|
-
|
|
385
|
-
return /*#__PURE__*/_react.createElement("div", {
|
|
386
|
-
className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Tabs', 'spectrum-Tabs--horizontal', 'spectrum-Tabs--isCollapsed', {
|
|
387
|
-
'spectrum-Tabs--quiet': isQuiet,
|
|
388
|
-
['spectrum-Tabs--compact']: density === 'compact'
|
|
389
|
-
}, className)
|
|
390
|
-
}, /*#__PURE__*/_react.createElement(SlotProvider, {
|
|
391
|
-
slots: {
|
|
392
|
-
icon: {
|
|
393
|
-
size: 'S',
|
|
394
|
-
UNSAFE_className: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'spectrum-Icon')
|
|
395
|
-
},
|
|
396
|
-
button: {
|
|
397
|
-
focusRingClass: classNames($a221257d7bd2e9d0c131cda7c75f4f5$$interop$default, 'focus-ring')
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
}, /*#__PURE__*/_react.createElement(Picker, _babelRuntimeHelpersExtends({}, pickerProps, {
|
|
401
|
-
id: id,
|
|
402
|
-
items: items,
|
|
403
|
-
ref: ref,
|
|
404
|
-
isQuiet: true,
|
|
405
|
-
isDisabled: isDisabled,
|
|
406
|
-
selectedKey: state.selectedKey,
|
|
407
|
-
disabledKeys: state.disabledKeys,
|
|
408
|
-
onSelectionChange: state.setSelectedKey
|
|
409
|
-
}), item => /*#__PURE__*/_react.createElement(_Item, {
|
|
410
|
-
textValue: item.textValue
|
|
411
|
-
}, item.rendered)), pickerNode && /*#__PURE__*/_react.createElement($a016f96d614f365ec6ad3cd2df19b52$var$TabLine, {
|
|
412
|
-
orientation: "horizontal",
|
|
413
|
-
selectedTab: pickerNode,
|
|
414
|
-
selectedKey: state.selectedKey
|
|
415
|
-
})));
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Tabs organize content into multiple sections and allow users to navigate between them. The content under the set of tabs should be related and form a coherent unit.
|
|
419
|
-
*/
|
|
420
|
-
// forwardRef doesn't support generic parameters, so cast the result to the correct type
|
|
421
|
-
// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref
|
|
422
25
|
|
|
423
26
|
|
|
424
|
-
const Tabs = _react.forwardRef($a016f96d614f365ec6ad3cd2df19b52$var$Tabs);
|
|
425
27
|
|
|
426
|
-
exports.Tabs = Tabs;
|
|
427
28
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./node_modules/@adobe/spectrum-css-temp/components/tabs/vars.css","./packages/@react-spectrum/tabs/src/Tabs.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, unwrapDOMRef, useDOMRef, useStyleProps, useValueEffect} from '@react-spectrum/utils';\nimport {DOMProps, DOMRef, Node, Orientation} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {Item, Picker} from '@react-spectrum/picker';\nimport {mergeProps, useId, useLayoutEffect} from '@react-aria/utils';\nimport React, {HTMLAttributes, Key, MutableRefObject, ReactElement, useCallback, useEffect, useRef, useState} from 'react';\nimport {SingleSelectListState} from '@react-stately/list';\nimport {SpectrumPickerProps} from '@react-types/select';\nimport {SpectrumTabsProps} from '@react-types/tabs';\nimport styles from '@adobe/spectrum-css-temp/components/tabs/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\nimport {useProvider, useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\nimport {useTab, useTabs} from '@react-aria/tabs';\nimport {useTabsState} from '@react-stately/tabs';\n\nfunction Tabs<T extends object>(props: SpectrumTabsProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n orientation = 'horizontal' as Orientation,\n isDisabled,\n isQuiet,\n density = 'regular',\n children,\n ...otherProps\n } = props;\n\n let domRef = useDOMRef(ref);\n let tablistRef = useRef<HTMLDivElement>();\n let wrapperRef = useRef<HTMLDivElement>();\n let state = useTabsState(props);\n\n let {direction} = useLocale();\n let {styleProps} = useStyleProps(otherProps);\n let {tabListProps, tabPanelProps} = useTabs(props, state, tablistRef);\n let [collapse, setCollapse] = useValueEffect(false);\n let [selectedTab, setSelectedTab] = useState<HTMLElement>();\n\n useEffect(() => {\n if (tablistRef.current) {\n let selectedTab: HTMLElement = tablistRef.current.querySelector(`[data-key=\"${state.selectedKey}\"]`);\n\n if (selectedTab != null) {\n setSelectedTab(selectedTab);\n }\n }\n // collapse is in the dep array so selectedTab can be updated for TabLine positioning\n }, [children, state.selectedKey, collapse, tablistRef]);\n\n let checkShouldCollapse = useCallback(() => {\n let computeShouldCollapse = () => {\n if (wrapperRef.current) {\n let tabsComponent = wrapperRef.current;\n let tabs = tablistRef.current.querySelectorAll('[role=\"tab\"]');\n let lastTab = tabs[tabs.length - 1];\n\n let end = direction === 'rtl' ? 'left' : 'right';\n let farEdgeTabList = tabsComponent.getBoundingClientRect()[end];\n let farEdgeLastTab = lastTab?.getBoundingClientRect()[end];\n let shouldCollapse = direction === 'rtl' ? farEdgeLastTab < farEdgeTabList : farEdgeTabList < farEdgeLastTab;\n\n return shouldCollapse;\n }\n };\n\n if (orientation !== 'vertical') {\n setCollapse(function* () {\n // Make Tabs render in non-collapsed state\n yield false;\n\n // Compute if Tabs should collapse and update\n yield computeShouldCollapse();\n });\n }\n }, [tablistRef, wrapperRef, direction, orientation, setCollapse]);\n\n useEffect(() => {\n checkShouldCollapse();\n }, [children, checkShouldCollapse]);\n\n useResizeObserver({ref: wrapperRef, onResize: checkShouldCollapse});\n\n // When the tabs are collapsed, the tabPanel should be labelled by the Picker button element.\n let collapsibleTabListId = useId();\n if (collapse && orientation !== 'vertical') {\n tabPanelProps['aria-labelledby'] = collapsibleTabListId;\n }\n\n return (\n <div\n {...styleProps}\n ref={domRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel',\n `spectrum-TabsPanel--${orientation}`,\n styleProps.className\n )}>\n {orientation === 'vertical' &&\n <TabList\n {...tabListProps}\n ref={tablistRef}\n orientation={orientation}\n density={density}\n isQuiet={isQuiet}\n isDisabled={isDisabled}\n state={state}\n selectedTab={selectedTab} />\n }\n {orientation !== 'vertical' &&\n <CollapsibleTabList\n {...props}\n id={collapsibleTabListId}\n wrapperRef={wrapperRef}\n collapse={collapse}\n tabListProps={tabListProps}\n state={state}\n selectedTab={selectedTab}\n ref={tablistRef} />\n }\n <div {...tabPanelProps} className={classNames(styles, 'spectrum-TabsPanel-tabpanel')}>\n {state.selectedItem && state.selectedItem.props.children}\n </div>\n </div>\n );\n}\n\ninterface TabProps<T> extends DOMProps {\n item: Node<T>,\n state: SingleSelectListState<T>,\n isDisabled?: boolean,\n orientation?: Orientation\n}\n\nexport function Tab<T>(props: TabProps<T>) {\n let {item, state, isDisabled: propsDisabled} = props;\n let {key, rendered} = item;\n let isDisabled = propsDisabled || state.disabledKeys.has(key);\n\n let ref = useRef<HTMLDivElement>();\n let {tabProps} = useTab({item, isDisabled}, state, ref);\n\n let {hoverProps, isHovered} = useHover({\n ...props\n });\n let isSelected = state.selectedKey === key;\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(tabProps, hoverProps)}\n ref={ref}\n className={classNames(\n styles,\n 'spectrum-Tabs-item',\n {\n 'is-selected': isSelected,\n 'is-disabled': isDisabled,\n 'is-hovered': isHovered\n }\n )}>\n <SlotProvider\n slots={{\n icon: {\n size: 'S',\n UNSAFE_className: classNames(styles, 'spectrum-Icon')\n },\n text: {\n UNSAFE_className: classNames(styles, 'spectrum-Tabs-itemLabel')\n }\n }}>\n {typeof rendered === 'string'\n ? <Text>{rendered}</Text>\n : rendered}\n </SlotProvider>\n </div>\n </FocusRing>\n );\n}\n\ninterface TabLineProps {\n orientation?: Orientation,\n selectedTab?: HTMLElement,\n selectedKey?: Key\n}\n\nfunction TabLine(props: TabLineProps) {\n let {\n orientation,\n // Is either the tab node (non-collapsed) or the picker node (collapsed)\n selectedTab,\n // selectedKey is provided so that the TabLine styles are updated when the TabPicker's width updates from a selection change\n selectedKey\n } = props;\n\n let verticalSelectionIndicatorOffset = 12;\n let {direction} = useLocale();\n let {scale} = useProvider();\n\n let [style, setStyle] = useState({\n width: undefined,\n height: undefined\n });\n\n useLayoutEffect(() => {\n if (selectedTab) {\n let styleObj = {transform: undefined, width: undefined, height: undefined};\n // In RTL, calculate the transform from the right edge of the tablist so that resizing the window doesn't break the Tabline position due to offsetLeft changes\n let offset = direction === 'rtl' ? -1 * ((selectedTab.offsetParent as HTMLElement)?.offsetWidth - selectedTab.offsetWidth - selectedTab.offsetLeft) : selectedTab.offsetLeft;\n styleObj.transform = orientation === 'vertical'\n ? `translateY(${selectedTab.offsetTop + verticalSelectionIndicatorOffset / 2}px)`\n : `translateX(${offset}px)`;\n\n if (orientation === 'horizontal') {\n styleObj.width = `${selectedTab.offsetWidth}px`;\n } else {\n styleObj.height = `${selectedTab.offsetHeight - verticalSelectionIndicatorOffset}px`;\n }\n setStyle(styleObj);\n }\n\n }, [direction, setStyle, selectedTab, orientation, scale, verticalSelectionIndicatorOffset, selectedKey]);\n\n return <div className={classNames(styles, 'spectrum-Tabs-selectionIndicator')} role=\"presentation\" style={style} />;\n}\n\ninterface CollapsibleTabListProps<T> extends TabListProps<T>, TabPickerProps<T> {\n tabListProps?: HTMLAttributes<HTMLElement>,\n wrapperRef: MutableRefObject<HTMLDivElement>,\n collapse?: boolean,\n tabListclassName?: string\n}\n\nconst CollapsibleTabList = React.forwardRef(function <T> (props: CollapsibleTabListProps<T>, ref: MutableRefObject<HTMLDivElement>) {\n let {\n tabListProps,\n density,\n isQuiet,\n isDisabled,\n state,\n selectedTab,\n wrapperRef,\n collapse\n } = props;\n\n let tabListclassName = classNames(styles, 'spectrum-TabsPanel-tabs');\n\n return (\n <div\n ref={wrapperRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel-collapseWrapper'\n )}>\n {collapse && <TabPicker {...props} className={tabListclassName} />}\n {!collapse && (\n <TabList\n {...tabListProps}\n density={density}\n isQuiet={isQuiet}\n isDisabled={isDisabled}\n state={state}\n selectedTab={selectedTab}\n ref={ref}\n orientation=\"horizontal\"\n className={tabListclassName} />\n )}\n </div>\n );\n});\n\ninterface TabListProps<T> {\n isQuiet?: boolean,\n density?: 'compact' | 'regular',\n isDisabled?: boolean,\n orientation?: Orientation,\n state: SingleSelectListState<T>,\n selectedTab: HTMLElement,\n className?: string\n}\n\nconst TabList = React.forwardRef(function <T> (props: TabListProps<T>, ref: MutableRefObject<HTMLDivElement>) {\n let {\n isQuiet,\n density,\n state,\n isDisabled,\n orientation,\n selectedTab,\n className,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={classNames(\n styles,\n 'spectrum-Tabs',\n `spectrum-Tabs--${orientation}`,\n {\n 'spectrum-Tabs--quiet': isQuiet,\n ['spectrum-Tabs--compact']: density === 'compact'\n },\n className\n )}>\n {[...state.collection].map((item) => (\n <Tab key={item.key} item={item} state={state} isDisabled={isDisabled} orientation={orientation} />\n ))}\n <TabLine orientation={orientation} selectedTab={selectedTab} />\n </div>\n );\n});\n\ninterface TabPickerProps<T> extends SpectrumPickerProps<T> {\n density?: 'compact' | 'regular',\n state: SingleSelectListState<T>,\n className?: string\n}\n\nfunction TabPicker<T>(props: TabPickerProps<T>) {\n let {\n isDisabled,\n isQuiet,\n state,\n 'aria-labelledby': ariaLabeledBy,\n 'aria-label': ariaLabel,\n density,\n className,\n id\n } = props;\n\n let ref = useRef();\n let [pickerNode, setPickerNode] = useState(null);\n\n useEffect(() => {\n let node = unwrapDOMRef(ref);\n setPickerNode(node.current);\n }, [ref]);\n\n let items = [...state.collection].map((item) => ({\n rendered: item.rendered,\n textValue: item.textValue,\n id: item.key\n }));\n\n let pickerProps = {\n 'aria-labelledby': ariaLabeledBy,\n 'aria-label': ariaLabel\n };\n\n // TODO: Figure out if tabListProps should go onto the div here, v2 doesn't do it\n return (\n <div\n className={classNames(\n styles,\n 'spectrum-Tabs',\n 'spectrum-Tabs--horizontal',\n 'spectrum-Tabs--isCollapsed',\n {\n 'spectrum-Tabs--quiet': isQuiet,\n ['spectrum-Tabs--compact']: density === 'compact'\n },\n className\n )}>\n <SlotProvider\n slots={{\n icon: {\n size: 'S',\n UNSAFE_className: classNames(styles, 'spectrum-Icon')\n },\n button: {\n focusRingClass: classNames(styles, 'focus-ring')\n }\n }}>\n <Picker\n {...pickerProps}\n id={id}\n items={items}\n ref={ref}\n isQuiet\n isDisabled={isDisabled}\n selectedKey={state.selectedKey}\n disabledKeys={state.disabledKeys}\n onSelectionChange={state.setSelectedKey}>\n {item => <Item textValue={item.textValue}>{item.rendered}</Item>}\n </Picker>\n {pickerNode && <TabLine orientation=\"horizontal\" selectedTab={pickerNode} selectedKey={state.selectedKey} />}\n </SlotProvider>\n </div>\n );\n}\n\n/**\n * Tabs organize content into multiple sections and allow users to navigate between them. The content under the set of tabs should be related and form a coherent unit.\n */\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Tabs = React.forwardRef(Tabs) as <T>(props: SpectrumTabsProps<T> & {ref?: DOMRef<HTMLDivElement>}) => ReactElement;\nexport {_Tabs as Tabs};\n"],"names":["$parcel$interopDefault","a","__esModule","default","Tabs","props","ref","useProviderProps","orientation","isDisabled","isQuiet","density","children","otherProps","domRef","useDOMRef","tablistRef","useRef","wrapperRef","state","useTabsState","direction","useLocale","styleProps","useStyleProps","tabListProps","tabPanelProps","useTabs","collapse","setCollapse","useValueEffect","selectedTab","setSelectedTab","useState","useEffect","current","querySelector","selectedKey","checkShouldCollapse","useCallback","computeShouldCollapse","tabsComponent","tabs","querySelectorAll","lastTab","length","end","farEdgeTabList","getBoundingClientRect","farEdgeLastTab","shouldCollapse","useResizeObserver","onResize","collapsibleTabListId","useId","classNames","className","selectedItem","Tab","item","propsDisabled","key","rendered","disabledKeys","has","tabProps","useTab","hoverProps","isHovered","useHover","isSelected","mergeProps","icon","size","UNSAFE_className","text","TabLine","verticalSelectionIndicatorOffset","scale","useProvider","style","setStyle","width","undefined","height","useLayoutEffect","styleObj","transform","offset","offsetParent","offsetWidth","offsetLeft","offsetTop","offsetHeight","CollapsibleTabList","React","forwardRef","tabListclassName","TabList","collection","map","TabPicker","ariaLabeledBy","ariaLabel","id","pickerNode","setPickerNode","node","unwrapDOMRef","items","textValue","pickerProps","button","focusRingClass","setSelectedKey","_Tabs"],"version":3,"file":"main.js.map"}
|
|
1
|
+
{"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;CAUC,GAED,0CAA0C","sources":["packages/@react-spectrum/tabs/src/index.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/// <reference types=\"css-module-types\" />\n\nexport {TabList, TabPanels, Tabs} from './Tabs';\nexport {Item} from '@react-stately/collections';\nexport type {SpectrumTabsProps, SpectrumTabListProps, SpectrumTabPanelsProps} from '@react-types/tabs';\n"],"names":[],"version":3,"file":"main.js.map"}
|