@react-spectrum/s2 3.0.0-nightly-101d0772b-250113 → 3.0.0-nightly-1b425caa2-250114

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.
Files changed (53) hide show
  1. package/dist/ActionBar.cjs +11 -8
  2. package/dist/ActionBar.cjs.map +1 -1
  3. package/dist/ActionBar.css +15 -32
  4. package/dist/ActionBar.css.map +1 -1
  5. package/dist/ActionBar.mjs +12 -9
  6. package/dist/ActionBar.mjs.map +1 -1
  7. package/dist/Modal.cjs +15 -21
  8. package/dist/Modal.cjs.map +1 -1
  9. package/dist/Modal.css +22 -46
  10. package/dist/Modal.css.map +1 -1
  11. package/dist/Modal.mjs +15 -21
  12. package/dist/Modal.mjs.map +1 -1
  13. package/dist/Popover.cjs +19 -37
  14. package/dist/Popover.cjs.map +1 -1
  15. package/dist/Popover.css +28 -99
  16. package/dist/Popover.css.map +1 -1
  17. package/dist/Popover.mjs +19 -37
  18. package/dist/Popover.mjs.map +1 -1
  19. package/dist/Tabs.cjs +177 -414
  20. package/dist/Tabs.cjs.map +1 -1
  21. package/dist/Tabs.css +120 -208
  22. package/dist/Tabs.css.map +1 -1
  23. package/dist/Tabs.mjs +179 -416
  24. package/dist/Tabs.mjs.map +1 -1
  25. package/dist/Tooltip.cjs +19 -16
  26. package/dist/Tooltip.cjs.map +1 -1
  27. package/dist/Tooltip.css +25 -40
  28. package/dist/Tooltip.css.map +1 -1
  29. package/dist/Tooltip.mjs +19 -16
  30. package/dist/Tooltip.mjs.map +1 -1
  31. package/dist/en-US.cjs +0 -1
  32. package/dist/en-US.cjs.map +1 -1
  33. package/dist/en-US.mjs +0 -1
  34. package/dist/en-US.mjs.map +1 -1
  35. package/dist/he-IL.cjs +0 -1
  36. package/dist/he-IL.cjs.map +1 -1
  37. package/dist/he-IL.mjs +0 -1
  38. package/dist/he-IL.mjs.map +1 -1
  39. package/dist/types.d.ts +7 -11
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +19 -19
  42. package/src/ActionBar.tsx +15 -18
  43. package/src/Modal.tsx +17 -44
  44. package/src/Popover.tsx +21 -89
  45. package/src/Tabs.tsx +156 -427
  46. package/src/Tooltip.tsx +25 -42
  47. package/dist/TabsPicker.cjs +0 -388
  48. package/dist/TabsPicker.cjs.map +0 -1
  49. package/dist/TabsPicker.css +0 -440
  50. package/dist/TabsPicker.css.map +0 -1
  51. package/dist/TabsPicker.mjs +0 -382
  52. package/dist/TabsPicker.mjs.map +0 -1
  53. package/src/TabsPicker.tsx +0 -341
package/dist/Tabs.mjs CHANGED
@@ -1,22 +1,15 @@
1
1
  import "./Tabs.css";
2
2
  import {centerBaseline as $1f4b04be3f24aae3$export$9d7e2342a7e53afa} from "./CenterBaseline.mjs";
3
3
  import {IconContext as $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed} from "../icons/Icon.mjs";
4
- import $8bRfI$intlStringsmjs from "./intlStrings.mjs";
5
- import {Picker as $0067ea932a992b6a$export$ba25329847403e11, PickerItem as $0067ea932a992b6a$export$d601881f38163e28} from "./TabsPicker.mjs";
6
4
  import {Text as $8e847109a6ab556d$export$5f1af8db9871e1d6, TextContext as $8e847109a6ab556d$export$9afb8bc826b033ea} from "./Content.mjs";
7
5
  import {useSpectrumContextProps as $5ce63c423902f47d$export$764f6146fadd77f7} from "../icons/useSpectrumContextProps.mjs";
8
- import {jsx as $8bRfI$jsx, jsxs as $8bRfI$jsxs, Fragment as $8bRfI$Fragment} from "react/jsx-runtime";
9
- import {createContext as $8bRfI$createContext, forwardRef as $8bRfI$forwardRef, useRef as $8bRfI$useRef, useContext as $8bRfI$useContext, useState as $8bRfI$useState, useMemo as $8bRfI$useMemo, useCallback as $8bRfI$useCallback, createElement as $8bRfI$createElement, useEffect as $8bRfI$useEffect, Fragment as $8bRfI$Fragment1} from "react";
10
- import {Provider as $8bRfI$Provider, Tabs as $8bRfI$Tabs, TabListStateContext as $8bRfI$TabListStateContext, TabList as $8bRfI$TabList, Tab as $8bRfI$Tab, TabPanel as $8bRfI$TabPanel, UNSTABLE_CollectionRendererContext as $8bRfI$UNSTABLE_CollectionRendererContext, UNSTABLE_DefaultCollectionRenderer as $8bRfI$UNSTABLE_DefaultCollectionRenderer} from "react-aria-components";
11
- import {useControlledState as $8bRfI$useControlledState} from "@react-stately/utils";
6
+ import {jsx as $8bRfI$jsx, jsxs as $8bRfI$jsxs} from "react/jsx-runtime";
7
+ import {TabPanel as $8bRfI$TabPanel, useSlottedContext as $8bRfI$useSlottedContext, Tab as $8bRfI$Tab, Provider as $8bRfI$Provider, TabListStateContext as $8bRfI$TabListStateContext, TabList as $8bRfI$TabList, Tabs as $8bRfI$Tabs} from "react-aria-components";
8
+ import {createContext as $8bRfI$createContext, useContext as $8bRfI$useContext, useState as $8bRfI$useState, useRef as $8bRfI$useRef, useEffect as $8bRfI$useEffect, useCallback as $8bRfI$useCallback, forwardRef as $8bRfI$forwardRef} from "react";
12
9
  import {useDOMRef as $8bRfI$useDOMRef} from "@react-spectrum/utils";
13
- import {useLayoutEffect as $8bRfI$useLayoutEffect, useResizeObserver as $8bRfI$useResizeObserver, useEffectEvent as $8bRfI$useEffectEvent} from "@react-aria/utils";
14
- import {useLocale as $8bRfI$useLocale, useLocalizedStringFormatter as $8bRfI$useLocalizedStringFormatter} from "@react-aria/i18n";
10
+ import {useLayoutEffect as $8bRfI$useLayoutEffect} from "@react-aria/utils";
11
+ import {useLocale as $8bRfI$useLocale} from "@react-aria/i18n";
15
12
 
16
-
17
- function $parcel$interopDefault(a) {
18
- return a && a.__esModule ? a.default : a;
19
- }
20
13
  /*
21
14
  * Copyright 2024 Adobe. All rights reserved.
22
15
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -37,92 +30,135 @@ function $parcel$interopDefault(a) {
37
30
 
38
31
 
39
32
 
40
-
41
-
42
-
43
33
  const $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f = /*#__PURE__*/ (0, $8bRfI$createContext)(null);
44
- const $79e2b4a1b34d1592$var$InternalTabsContext = /*#__PURE__*/ (0, $8bRfI$createContext)({
45
- onFocus: ()=>{}
46
- });
47
- const $79e2b4a1b34d1592$var$tabs = function anonymous(props, overrides) {
34
+ const $79e2b4a1b34d1592$var$tabPanel = function anonymous(props, overrides) {
48
35
  let rules = " .";
49
36
  let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|__a|_9|h|_6|_5|__B|__d|__e|__b|__c|V|__R|Y|_a|W|X|l|q|r|k|o|p)[^\s]+/g) || [];
50
37
  rules += matches.join('');
38
+ let $A = false;
39
+ let $__a = false;
40
+ let $h = false;
41
+ let $o = false;
42
+ let $q = false;
43
+ for (let p of matches){
44
+ if (/^\s*A/.test(p)) $A = true;
45
+ if (/^\s*__a/.test(p)) $__a = true;
46
+ if (/^\s*h/.test(p)) $h = true;
47
+ if (/^\s*o/.test(p)) $o = true;
48
+ if (/^\s*q/.test(p)) $q = true;
49
+ }
50
+ if (!$A) rules += ' Ac';
51
+ rules += ' an';
52
+ if (!$__a) rules += ' __a-3t1y';
53
+ if (!$h) rules += ' h-3hmsa';
54
+ if (!$o) rules += ' oo';
55
+ if (!$q) rules += ' qo';
56
+ return rules;
57
+ };
58
+ function $79e2b4a1b34d1592$export$3d96ec278d3efce4(props) {
59
+ return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$TabPanel), {
60
+ ...props,
61
+ style: props.UNSAFE_style,
62
+ className: (props.UNSAFE_className || '') + $79e2b4a1b34d1592$var$tabPanel(null, props.styles)
63
+ });
64
+ }
65
+ const $79e2b4a1b34d1592$var$tab = function anonymous(props, overrides) {
66
+ let rules = " .";
67
+ let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|__a|_9|h|_6|_5|__B|__d|__e|__b|__c|V|__R|Y|_a|W|X|l|q|r)[^\s]+/g) || [];
68
+ rules += matches.join('');
69
+ let $V = false;
51
70
  let $_9 = false;
52
- for (let p of matches)if (/^\s*_9/.test(p)) $_9 = true;
71
+ for (let p of matches){
72
+ if (/^\s*V/.test(p)) $V = true;
73
+ if (/^\s*_9/.test(p)) $_9 = true;
74
+ }
75
+ if (props.isFocusVisible) rules += ' _Mb';
76
+ else rules += ' _Ma';
77
+ rules += ' da_____M';
78
+ rules += ' dx';
79
+ rules += ' _Oc';
80
+ rules += ' _N-3t1z';
53
81
  rules += ' _0d';
82
+ if (props.isDisabled) rules += ' aa_____O';
83
+ else if (props.isSelected) rules += ' aa_____M';
84
+ if (props.isDisabled) rules += ' aj';
85
+ else if (props.isHovered) {
86
+ if (props.isPressed) rules += ' an';
87
+ else if (props.isFocusVisible) rules += ' an';
88
+ else if (props.isHovered) rules += ' an';
89
+ else rules += ' am';
90
+ } else if (props.isSelected) {
91
+ if (props.isPressed) rules += ' ao';
92
+ else if (props.isFocusVisible) rules += ' ao';
93
+ else rules += ' an';
94
+ } else {
95
+ if (props.isPressed) rules += ' an';
96
+ else if (props.isFocusVisible) rules += ' an';
97
+ else rules += ' am';
98
+ }
99
+ rules += ' _wb';
100
+ rules += ' _xb';
101
+ rules += ' _yb';
102
+ rules += ' _zb';
103
+ rules += ' ibH';
104
+ rules += ' iG';
105
+ rules += ' jbH';
106
+ rules += ' jG';
107
+ if (props.density === "regular") rules += ' k_a';
108
+ else if (props.density === "compact") rules += ' kU';
109
+ rules += ' _2c';
110
+ if (!$V) rules += ' Vc';
111
+ rules += ' __Ib';
54
112
  if (!$_9) rules += ' _9-3t1x';
55
- rules += ' _d-bc1l9oh';
56
- rules += ' _d-1uotwbwg';
57
- rules += ' _d-eo0c6sf';
58
- rules += ' _d-enzzrge';
59
- rules += ' _d-enzykdd';
60
- rules += ' _d-enzwzjc';
61
- rules += ' _d-enzrfpb';
62
- rules += ' _da';
63
- rules += ' _ebf';
64
- rules += ' _ee';
65
- rules += ' _fb';
66
- rules += ' _g-1x99dlob';
67
- rules += ' _ga';
68
- rules += ' an';
69
- if (props.orientation === "horizontal") rules += ' _7b';
113
+ rules += ' _Pa';
114
+ rules += ' _R-375x7f';
115
+ rules += ' _Sa';
70
116
  return rules;
71
117
  };
72
- const $79e2b4a1b34d1592$export$b2539bed5023c21c = /*#__PURE__*/ (0, $8bRfI$forwardRef)(function Tabs(props, ref) {
73
- [props, ref] = (0, $5ce63c423902f47d$export$764f6146fadd77f7)(props, ref, $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f);
74
- let { density: density = 'regular', isDisabled: isDisabled, disabledKeys: disabledKeys, orientation: orientation = 'horizontal', labelBehavior: labelBehavior = 'show' } = props;
75
- let domRef = (0, $8bRfI$useDOMRef)(ref);
76
- let [value, setValue] = (0, $8bRfI$useControlledState)(props.selectedKey, props.defaultSelectedKey ?? null, props.onSelectionChange);
77
- let pickerRef = (0, $8bRfI$useRef)(null);
78
- return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Provider), {
79
- values: [
80
- [
81
- $79e2b4a1b34d1592$var$InternalTabsContext,
82
- {
83
- density: density,
84
- isDisabled: isDisabled,
85
- orientation: orientation,
86
- disabledKeys: disabledKeys,
87
- selectedKey: value,
88
- onSelectionChange: setValue,
89
- labelBehavior: labelBehavior,
90
- onFocus: ()=>pickerRef.current?.focus(),
91
- pickerRef: pickerRef
92
- }
93
- ]
94
- ],
95
- children: /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$CollapsingCollection, {
96
- containerRef: domRef,
97
- children: /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Tabs), {
98
- ...props,
99
- ref: domRef,
100
- selectedKey: value,
101
- onSelectionChange: setValue,
102
- style: props.UNSAFE_style,
103
- className: (renderProps)=>(props.UNSAFE_className || '') + $79e2b4a1b34d1592$var$tabs({
104
- ...renderProps
105
- }, props.styles),
118
+ const $79e2b4a1b34d1592$var$icon = " . _9-3t1x -rwx0fg_e-b";
119
+ function $79e2b4a1b34d1592$export$3e41faf802a29e71(props) {
120
+ let { density: density } = (0, $8bRfI$useSlottedContext)($79e2b4a1b34d1592$export$cfa7aa87c26e7d1f) ?? {};
121
+ return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Tab), {
122
+ ...props,
123
+ style: props.UNSAFE_style,
124
+ className: (renderProps)=>(props.UNSAFE_className || '') + $79e2b4a1b34d1592$var$tab({
125
+ ...renderProps,
126
+ density: density
127
+ }, props.styles),
128
+ children: /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Provider), {
129
+ values: [
130
+ [
131
+ (0, $8e847109a6ab556d$export$9afb8bc826b033ea),
132
+ {
133
+ styles: " . __B-3t1y"
134
+ }
135
+ ],
136
+ [
137
+ (0, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed),
138
+ {
139
+ render: (0, $1f4b04be3f24aae3$export$9d7e2342a7e53afa)({
140
+ slot: 'icon',
141
+ styles: " . __B-3t1x"
142
+ }),
143
+ styles: $79e2b4a1b34d1592$var$icon
144
+ }
145
+ ]
146
+ ],
147
+ children: typeof props.children === 'string' ? /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8e847109a6ab556d$export$5f1af8db9871e1d6), {
106
148
  children: props.children
107
- })
149
+ }) : props.children
108
150
  })
109
151
  });
110
- });
152
+ }
111
153
  const $79e2b4a1b34d1592$var$tablist = function anonymous(props) {
112
154
  let rules = " .";
113
155
  rules += ' _0d';
114
156
  if (props.orientation === "horizontal") {
115
- if (props.labelBehavior === "hide") {
116
- if (props.density === "regular") rules += ' ih';
117
- else if (props.density === "compact") rules += ' if';
118
- } else if (props.density === "regular") rules += ' ij';
157
+ if (props.density === "regular") rules += ' ij';
119
158
  else if (props.density === "compact") rules += ' ih';
120
159
  }
121
160
  if (props.orientation === "horizontal") {
122
- if (props.labelBehavior === "hide") {
123
- if (props.density === "regular") rules += ' jh';
124
- else if (props.density === "compact") rules += ' jf';
125
- } else if (props.density === "regular") rules += ' jj';
161
+ if (props.density === "regular") rules += ' jj';
126
162
  else if (props.density === "compact") rules += ' jh';
127
163
  }
128
164
  if (props.orientation === "vertical") rules += ' _7b';
@@ -133,32 +169,18 @@ const $79e2b4a1b34d1592$var$tablist = function anonymous(props) {
133
169
  return rules;
134
170
  };
135
171
  function $79e2b4a1b34d1592$export$e51a686c67fdaa2d(props1) {
136
- let { density: density, isDisabled: isDisabled, disabledKeys: disabledKeys, orientation: orientation, labelBehavior: labelBehavior, onFocus: onFocus } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$InternalTabsContext) ?? {};
137
- let { showItems: showItems } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$CollapseContext) ?? {};
172
+ let { density: density, isDisabled: isDisabled, disabledKeys: disabledKeys, orientation: orientation } = (0, $8bRfI$useSlottedContext)($79e2b4a1b34d1592$export$cfa7aa87c26e7d1f) ?? {};
138
173
  let state = (0, $8bRfI$useContext)((0, $8bRfI$TabListStateContext));
139
174
  let [selectedTab, setSelectedTab] = (0, $8bRfI$useState)(undefined);
140
175
  let tablistRef = (0, $8bRfI$useRef)(null);
141
176
  (0, $8bRfI$useLayoutEffect)(()=>{
142
- if (tablistRef?.current && showItems) {
177
+ if (tablistRef?.current) {
143
178
  let tab = tablistRef.current.querySelector('[role=tab][data-selected=true]');
144
179
  if (tab != null) setSelectedTab(tab);
145
- } else if (tablistRef?.current) {
146
- let picker = tablistRef.current.querySelector('button');
147
- if (picker != null) setSelectedTab(picker);
148
180
  }
149
181
  }, [
150
182
  tablistRef,
151
- state?.selectedItem?.key,
152
- showItems
153
- ]);
154
- let prevFocused = (0, $8bRfI$useRef)(false);
155
- (0, $8bRfI$useLayoutEffect)(()=>{
156
- if (!showItems && !prevFocused.current && state?.selectionManager.isFocused) onFocus();
157
- prevFocused.current = state?.selectionManager.isFocused;
158
- }, [
159
- state?.selectionManager.isFocused,
160
- state?.selectionManager.focusedKey,
161
- showItems
183
+ state?.selectedItem?.key
162
184
  ]);
163
185
  return /*#__PURE__*/ (0, $8bRfI$jsxs)("div", {
164
186
  style: props1.UNSAFE_style,
@@ -172,7 +194,7 @@ function $79e2b4a1b34d1592$export$e51a686c67fdaa2d(props1) {
172
194
  return rules;
173
195
  }(null, props1.styles),
174
196
  children: [
175
- showItems && orientation === 'vertical' && /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$TabLine, {
197
+ orientation === 'vertical' && /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$TabLine, {
176
198
  disabledKeys: disabledKeys,
177
199
  isDisabled: isDisabled,
178
200
  selectedTab: selectedTab,
@@ -184,12 +206,10 @@ function $79e2b4a1b34d1592$export$e51a686c67fdaa2d(props1) {
184
206
  ref: tablistRef,
185
207
  className: (renderProps)=>$79e2b4a1b34d1592$var$tablist({
186
208
  ...renderProps,
187
- labelBehavior: labelBehavior,
188
209
  density: density
189
210
  })
190
211
  }),
191
212
  orientation === 'horizontal' && /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$TabLine, {
192
- showItems: showItems,
193
213
  disabledKeys: disabledKeys,
194
214
  isDisabled: isDisabled,
195
215
  selectedTab: selectedTab,
@@ -199,6 +219,21 @@ function $79e2b4a1b34d1592$export$e51a686c67fdaa2d(props1) {
199
219
  ]
200
220
  });
201
221
  }
222
+ function $79e2b4a1b34d1592$var$isAllTabsDisabled(collection, disabledKeys) {
223
+ let testKey = null;
224
+ if (collection && collection.size > 0) {
225
+ testKey = collection.getFirstKey();
226
+ let index = 0;
227
+ while(testKey && index < collection.size){
228
+ // We have to check if the item in the collection has a key in disabledKeys or has the isDisabled prop set directly on it
229
+ if (!disabledKeys.has(testKey) && !collection.getItem(testKey)?.props?.isDisabled) return false;
230
+ testKey = collection.getKeyAfter(testKey);
231
+ index++;
232
+ }
233
+ return true;
234
+ }
235
+ return false;
236
+ }
202
237
  const $79e2b4a1b34d1592$var$selectedIndicator = function anonymous(props) {
203
238
  let rules = " .";
204
239
  rules += ' Va';
@@ -227,12 +262,16 @@ function $79e2b4a1b34d1592$var$TabLine(props) {
227
262
  let { disabledKeys: disabledKeys, isDisabled: isTabsDisabled, selectedTab: selectedTab, orientation: orientation, density: density } = props;
228
263
  let { direction: direction } = (0, $8bRfI$useLocale)();
229
264
  let state = (0, $8bRfI$useContext)((0, $8bRfI$TabListStateContext));
230
- let isDisabled = (0, $8bRfI$useMemo)(()=>{
231
- return isTabsDisabled || $79e2b4a1b34d1592$var$isAllTabsDisabled(state?.collection, disabledKeys ? new Set(disabledKeys) : new Set());
265
+ // We want to add disabled styling to the selection indicator only if all the Tabs are disabled
266
+ let [isDisabled, setIsDisabled] = (0, $8bRfI$useState)(false);
267
+ (0, $8bRfI$useEffect)(()=>{
268
+ let isDisabled = isTabsDisabled || $79e2b4a1b34d1592$var$isAllTabsDisabled(state?.collection || null, disabledKeys ? new Set(disabledKeys) : new Set(null));
269
+ setIsDisabled(isDisabled);
232
270
  }, [
233
271
  state?.collection,
234
272
  disabledKeys,
235
- isTabsDisabled
273
+ isTabsDisabled,
274
+ setIsDisabled
236
275
  ]);
237
276
  let [style, setStyle] = (0, $8bRfI$useState)({
238
277
  transform: undefined,
@@ -264,17 +303,10 @@ function $79e2b4a1b34d1592$var$TabLine(props) {
264
303
  }, [
265
304
  onResize,
266
305
  state?.selectedItem?.key,
306
+ direction,
307
+ orientation,
267
308
  density
268
309
  ]);
269
- let ref = (0, $8bRfI$useRef)(selectedTab);
270
- // assign ref before the useResizeObserver useEffect runs
271
- (0, $8bRfI$useLayoutEffect)(()=>{
272
- ref.current = selectedTab;
273
- });
274
- (0, $8bRfI$useResizeObserver)({
275
- ref: ref,
276
- onResize: onResize
277
- });
278
310
  return /*#__PURE__*/ (0, $8bRfI$jsx)("div", {
279
311
  style: {
280
312
  ...style
@@ -285,323 +317,54 @@ function $79e2b4a1b34d1592$var$TabLine(props) {
285
317
  })
286
318
  });
287
319
  }
288
- const $79e2b4a1b34d1592$var$tab = function anonymous(props, overrides) {
320
+ const $79e2b4a1b34d1592$var$tabs = function anonymous(props, overrides) {
289
321
  let rules = " .";
290
- let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|__a|_9|h|_6|_5|__B|__d|__e|__b|__c|V|__R|Y|_a|W|X|l|q|r)[^\s]+/g) || [];
322
+ let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|__a|_9|h|_6|_5|__B|__d|__e|__b|__c|V|__R|Y|_a|W|X|l|q|r|k|o|p)[^\s]+/g) || [];
291
323
  rules += matches.join('');
292
- let $V = false;
293
324
  let $_9 = false;
294
- for (let p of matches){
295
- if (/^\s*V/.test(p)) $V = true;
296
- if (/^\s*_9/.test(p)) $_9 = true;
297
- }
298
- if (props.isFocusVisible) rules += ' _Mb';
299
- else rules += ' _Ma';
300
- rules += ' da_____M';
301
- rules += ' dx';
302
- rules += ' _Oc';
303
- rules += ' _N-3t1z';
325
+ for (let p of matches)if (/^\s*_9/.test(p)) $_9 = true;
304
326
  rules += ' _0d';
305
- if (props.isDisabled) rules += ' aa_____O';
306
- else if (props.isSelected) rules += ' aa_____M';
307
- if (props.isDisabled) rules += ' aj';
308
- else if (props.isHovered) {
309
- if (props.isPressed) rules += ' an';
310
- else if (props.isFocusVisible) rules += ' an';
311
- else if (props.isHovered) rules += ' an';
312
- else rules += ' am';
313
- } else if (props.isSelected) {
314
- if (props.isPressed) rules += ' ao';
315
- else if (props.isFocusVisible) rules += ' ao';
316
- else rules += ' an';
317
- } else {
318
- if (props.isPressed) rules += ' an';
319
- else if (props.isFocusVisible) rules += ' an';
320
- else rules += ' am';
321
- }
322
- rules += ' _wb';
323
- rules += ' _xb';
324
- rules += ' _yb';
325
- rules += ' _zb';
326
- rules += ' ibH';
327
- rules += ' iG';
328
- rules += ' jbH';
329
- rules += ' jG';
330
- if (props.density === "regular") rules += ' k_a';
331
- else if (props.density === "compact") rules += ' kU';
332
- rules += ' _2c';
333
- if (!$V) rules += ' Vc';
334
- rules += ' __Ib';
335
327
  if (!$_9) rules += ' _9-3t1x';
336
- rules += ' _Pa';
337
- rules += ' _R-375x7f';
338
- rules += ' _Sa';
339
- if (props.labelBehavior === "hide") rules += ' C-ve8p9e';
340
- if (props.labelBehavior === "hide") rules += ' D-ve8p9e';
341
- return rules;
342
- };
343
- const $79e2b4a1b34d1592$var$icon = " . _0a _9-3t1x -rwx0fg_e-b";
344
- function $79e2b4a1b34d1592$export$3e41faf802a29e71(props1) {
345
- let { density: density, labelBehavior: labelBehavior } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$InternalTabsContext) ?? {};
346
- return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Tab), {
347
- ...props1,
348
- // @ts-ignore
349
- originalProps: props1,
350
- style: props1.UNSAFE_style,
351
- className: (renderProps)=>(props1.UNSAFE_className || '') + $79e2b4a1b34d1592$var$tab({
352
- ...renderProps,
353
- density: density,
354
- labelBehavior: labelBehavior
355
- }, props1.styles),
356
- children: ({ isMenu: // @ts-ignore
357
- isMenu })=>{
358
- if (isMenu) return props1.children;
359
- else return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Provider), {
360
- values: [
361
- [
362
- (0, $8e847109a6ab556d$export$9afb8bc826b033ea),
363
- {
364
- styles: function anonymous(props) {
365
- let rules = " .";
366
- rules += ' __B-3t1y';
367
- if (props.labelBehavior === "hide") rules += ' _0j';
368
- return rules;
369
- }({
370
- labelBehavior: labelBehavior
371
- })
372
- }
373
- ],
374
- [
375
- (0, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed),
376
- {
377
- render: (0, $1f4b04be3f24aae3$export$9d7e2342a7e53afa)({
378
- slot: 'icon',
379
- styles: " . __B-3t1x"
380
- }),
381
- styles: $79e2b4a1b34d1592$var$icon
382
- }
383
- ]
384
- ],
385
- children: typeof props1.children === 'string' ? /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8e847109a6ab556d$export$5f1af8db9871e1d6), {
386
- children: props1.children
387
- }) : props1.children
388
- });
389
- }
390
- });
391
- }
392
- const $79e2b4a1b34d1592$var$tabPanel = function anonymous(props, overrides) {
393
- let rules = " .";
394
- let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|__a|_9|h|_6|_5|__B|__d|__e|__b|__c|V|__R|Y|_a|W|X|l|q|r|k|o|p)[^\s]+/g) || [];
395
- rules += matches.join('');
396
- let $A = false;
397
- let $__a = false;
398
- let $h = false;
399
- let $o = false;
400
- let $q = false;
401
- for (let p of matches){
402
- if (/^\s*A/.test(p)) $A = true;
403
- if (/^\s*__a/.test(p)) $__a = true;
404
- if (/^\s*h/.test(p)) $h = true;
405
- if (/^\s*o/.test(p)) $o = true;
406
- if (/^\s*q/.test(p)) $q = true;
407
- }
408
- if (!$A) rules += ' Ac';
409
- rules += ' an';
410
- if (!$__a) rules += ' __a-3t1y';
411
- if (!$h) rules += ' h-3hmsa';
412
- if (!$o) rules += ' oo';
413
- if (!$q) rules += ' qo';
328
+ rules += ' _d-bc1l9oh';
329
+ rules += ' _d-1uotwbwg';
330
+ rules += ' _d-eo0c6sf';
331
+ rules += ' _d-enzzrge';
332
+ rules += ' _d-enzykdd';
333
+ rules += ' _d-enzwzjc';
334
+ rules += ' _d-enzrfpb';
335
+ rules += ' _da';
336
+ rules += ' _fb';
337
+ if (props.orientation === "horizontal") rules += ' _7b';
414
338
  return rules;
415
339
  };
416
- function $79e2b4a1b34d1592$export$3d96ec278d3efce4(props) {
417
- return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$TabPanel), {
340
+ const $79e2b4a1b34d1592$export$b2539bed5023c21c = /*#__PURE__*/ (0, $8bRfI$forwardRef)(function Tabs(props, ref) {
341
+ [props, ref] = (0, $5ce63c423902f47d$export$764f6146fadd77f7)(props, ref, $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f);
342
+ let { density: density = 'regular', isDisabled: isDisabled, disabledKeys: disabledKeys, orientation: orientation = 'horizontal' } = props;
343
+ let domRef = (0, $8bRfI$useDOMRef)(ref);
344
+ return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Tabs), {
418
345
  ...props,
346
+ ref: domRef,
419
347
  style: props.UNSAFE_style,
420
- className: (props.UNSAFE_className || '') + $79e2b4a1b34d1592$var$tabPanel(null, props.styles)
421
- });
422
- }
423
- function $79e2b4a1b34d1592$var$isAllTabsDisabled(collection, disabledKeys) {
424
- let testKey = null;
425
- if (collection && collection.size > 0) {
426
- testKey = collection.getFirstKey();
427
- let index = 0;
428
- while(testKey && index < collection.size){
429
- // We have to check if the item in the collection has a key in disabledKeys or has the isDisabled prop set directly on it
430
- if (!disabledKeys.has(testKey) && !collection.getItem(testKey)?.props?.isDisabled) return false;
431
- testKey = collection.getKeyAfter(testKey);
432
- index++;
433
- }
434
- return true;
435
- }
436
- return false;
437
- }
438
- let $79e2b4a1b34d1592$var$HiddenTabs = function(props) {
439
- let { listRef: listRef, items: items, size: size, density: density } = props;
440
- return /*#__PURE__*/ (0, $8bRfI$jsx)("div", {
441
- // @ts-ignore
442
- inert: "true",
443
- ref: listRef,
444
- className: " . _0-17zqamw _7-17zqamw i-17zqamw j-17zqamw _8-17zqamw Va Ya _aa Wa Xa __Fb __wb __xb _L-3t1x",
445
- children: items.map((item)=>{
446
- // pull off individual props as an allow list, don't want refs or other props getting through
447
- return /*#__PURE__*/ (0, $8bRfI$jsx)("div", {
448
- "data-hidden-tab": true,
449
- style: item.props.UNSAFE_style,
450
- className: item.props.className({
451
- size: size,
452
- density: density
453
- }),
454
- children: item.props.children({
455
- size: size,
456
- density: density
457
- })
458
- }, item.key);
459
- })
460
- });
461
- };
462
- let $79e2b4a1b34d1592$var$TabsMenu = (props1)=>{
463
- let stringFormatter = (0, $8bRfI$useLocalizedStringFormatter)((0, ($parcel$interopDefault($8bRfI$intlStringsmjs))), '@react-spectrum/s2');
464
- let { items: items } = props1;
465
- let { density: density, onSelectionChange: onSelectionChange, selectedKey: selectedKey, isDisabled: isDisabled, disabledKeys: disabledKeys, pickerRef: pickerRef, labelBehavior: labelBehavior } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$InternalTabsContext);
466
- let state = (0, $8bRfI$useContext)((0, $8bRfI$TabListStateContext));
467
- let allKeysDisabled = (0, $8bRfI$useMemo)(()=>{
468
- return $79e2b4a1b34d1592$var$isAllTabsDisabled(state?.collection, disabledKeys ? new Set(disabledKeys) : new Set());
469
- }, [
470
- state?.collection,
471
- disabledKeys
472
- ]);
473
- return /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$UNSTABLE_CollectionRendererContext).Provider, {
474
- value: (0, $8bRfI$UNSTABLE_DefaultCollectionRenderer),
475
- children: /*#__PURE__*/ (0, $8bRfI$jsx)("div", {
476
- className: function anonymous(props) {
477
- let rules = " .";
478
- rules += ' _0d';
479
- rules += ' _2c';
480
- if (props.density === "regular") rules += ' k_a';
481
- else if (props.density === "compact") rules += ' kU';
482
- return rules;
483
- }({
484
- density: density
485
- }),
486
- children: /*#__PURE__*/ (0, $8bRfI$jsx)((0, $0067ea932a992b6a$export$ba25329847403e11), {
487
- ref: pickerRef ? pickerRef : undefined,
488
- isDisabled: isDisabled || allKeysDisabled,
489
- density: density,
490
- labelBehavior: labelBehavior,
491
- items: items,
492
- disabledKeys: disabledKeys,
493
- selectedKey: selectedKey,
494
- onSelectionChange: onSelectionChange,
495
- "aria-label": stringFormatter.format('tabs.selectorLabel'),
496
- children: (item)=>{
497
- // need to determine the best way to handle icon only -> icon and text
498
- // good enough to aria-label the picker item?
499
- return /*#__PURE__*/ (0, $8bRfI$createElement)((0, $0067ea932a992b6a$export$d601881f38163e28), {
500
- ...item.props.originalProps,
501
- isDisabled: isDisabled || allKeysDisabled,
502
- key: item.key
503
- }, item.props.children({
348
+ className: (renderProps)=>(props.UNSAFE_className || '') + $79e2b4a1b34d1592$var$tabs({
349
+ ...renderProps
350
+ }, props.styles),
351
+ children: /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Provider), {
352
+ values: [
353
+ [
354
+ $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f,
355
+ {
504
356
  density: density,
505
- isMenu: true
506
- }));
507
- }
508
- })
357
+ isDisabled: isDisabled,
358
+ disabledKeys: disabledKeys,
359
+ orientation: orientation
360
+ }
361
+ ]
362
+ ],
363
+ children: props.children
509
364
  })
510
365
  });
511
- };
512
- // Context for passing the count for the custom renderer
513
- let $79e2b4a1b34d1592$var$CollapseContext = /*#__PURE__*/ (0, $8bRfI$createContext)(null);
514
- function $79e2b4a1b34d1592$var$CollapsingCollection({ children: children, containerRef: containerRef }) {
515
- let [showItems, _setShowItems] = (0, $8bRfI$useState)(true);
516
- let { orientation: orientation } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$InternalTabsContext);
517
- let setShowItems = (0, $8bRfI$useCallback)((value)=>{
518
- if (orientation === 'vertical') // if orientation is vertical, we always show the items
519
- _setShowItems(true);
520
- else _setShowItems(value);
521
- }, [
522
- orientation
523
- ]);
524
- let ctx = (0, $8bRfI$useMemo)(()=>({
525
- containerRef: containerRef,
526
- showItems: orientation === 'vertical' ? true : showItems,
527
- setShowItems: setShowItems
528
- }), [
529
- containerRef,
530
- showItems,
531
- setShowItems
532
- ]);
533
- return /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$CollapseContext.Provider, {
534
- value: ctx,
535
- children: /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$UNSTABLE_CollectionRendererContext).Provider, {
536
- value: $79e2b4a1b34d1592$var$CollapsingCollectionRenderer,
537
- children: children
538
- })
539
- });
540
- }
541
- let $79e2b4a1b34d1592$var$CollapsingCollectionRenderer = {
542
- CollectionRoot ({ collection: collection }) {
543
- return $79e2b4a1b34d1592$var$useCollectionRender(collection);
544
- },
545
- CollectionBranch ({ collection: collection }) {
546
- return $79e2b4a1b34d1592$var$useCollectionRender(collection);
547
- }
548
- };
549
- let $79e2b4a1b34d1592$var$useCollectionRender = (collection)=>{
550
- let { containerRef: containerRef, showItems: showItems, setShowItems: setShowItems } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$CollapseContext) ?? {};
551
- let { density: density = 'regular', orientation: orientation = 'horizontal', onSelectionChange: onSelectionChange } = (0, $8bRfI$useContext)($79e2b4a1b34d1592$var$InternalTabsContext);
552
- let { direction: direction } = (0, $8bRfI$useLocale)();
553
- let children = (0, $8bRfI$useMemo)(()=>{
554
- let result = [];
555
- for (let key of collection.getKeys())result.push(collection.getItem(key));
556
- return result;
557
- }, [
558
- collection
559
- ]);
560
- let listRef = (0, $8bRfI$useRef)(null);
561
- let updateOverflow = (0, $8bRfI$useEffectEvent)(()=>{
562
- if (orientation === 'vertical' || !listRef.current || !containerRef?.current) return;
563
- let container = listRef.current;
564
- let containerRect = container.getBoundingClientRect();
565
- let tabs = container.querySelectorAll('[data-hidden-tab]');
566
- let lastTab = tabs[tabs.length - 1];
567
- let lastTabRect = lastTab.getBoundingClientRect();
568
- if (direction === 'ltr') setShowItems?.(lastTabRect.right <= containerRect.right);
569
- else setShowItems?.(lastTabRect.left >= containerRect.left);
570
- });
571
- (0, $8bRfI$useResizeObserver)({
572
- ref: containerRef,
573
- onResize: updateOverflow
574
- });
575
- (0, $8bRfI$useLayoutEffect)(()=>{
576
- if (collection.size > 0) queueMicrotask(updateOverflow);
577
- }, [
578
- collection.size,
579
- updateOverflow
580
- ]);
581
- (0, $8bRfI$useEffect)(()=>{
582
- // Recalculate visible tags when fonts are loaded.
583
- document.fonts?.ready.then(()=>updateOverflow());
584
- // eslint-disable-next-line react-hooks/exhaustive-deps
585
- }, []);
586
- return /*#__PURE__*/ (0, $8bRfI$jsxs)((0, $8bRfI$Fragment), {
587
- children: [
588
- /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$HiddenTabs, {
589
- items: children,
590
- density: density,
591
- listRef: listRef
592
- }),
593
- showItems ? children.map((node)=>/*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Fragment1), {
594
- children: node.render?.(node)
595
- }, node.key)) : /*#__PURE__*/ (0, $8bRfI$jsx)((0, $8bRfI$Fragment), {
596
- children: /*#__PURE__*/ (0, $8bRfI$jsx)($79e2b4a1b34d1592$var$TabsMenu, {
597
- items: children,
598
- onSelectionChange: onSelectionChange
599
- })
600
- })
601
- ]
602
- });
603
- };
366
+ });
604
367
 
605
368
 
606
- export {$79e2b4a1b34d1592$export$cfa7aa87c26e7d1f as TabsContext, $79e2b4a1b34d1592$export$b2539bed5023c21c as Tabs, $79e2b4a1b34d1592$export$e51a686c67fdaa2d as TabList, $79e2b4a1b34d1592$export$3e41faf802a29e71 as Tab, $79e2b4a1b34d1592$export$3d96ec278d3efce4 as TabPanel};
369
+ export {$79e2b4a1b34d1592$export$cfa7aa87c26e7d1f as TabsContext, $79e2b4a1b34d1592$export$3d96ec278d3efce4 as TabPanel, $79e2b4a1b34d1592$export$3e41faf802a29e71 as Tab, $79e2b4a1b34d1592$export$e51a686c67fdaa2d as TabList, $79e2b4a1b34d1592$export$b2539bed5023c21c as Tabs};
607
370
  //# sourceMappingURL=Tabs.mjs.map