@react-spectrum/tabs 3.2.2-nightly.3368 → 3.2.2-nightly.3378

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/main.js CHANGED
@@ -192,18 +192,15 @@ function $e8d58e7e32285ba6$var$Tabs(props, ref) {
192
192
  }
193
193
  // @private
194
194
  function $e8d58e7e32285ba6$var$Tab(props) {
195
- let { item: item , state: state , isDisabled: propsDisabled } = props;
195
+ let { item: item , state: state } = props;
196
196
  let { key: key , rendered: rendered } = item;
197
- let isDisabled = propsDisabled || state.disabledKeys.has(key);
198
197
  let ref = $8zXxA$react.useRef();
199
- let { tabProps: tabProps } = $8zXxA$reactariatabs.useTab({
200
- key: key,
201
- isDisabled: isDisabled
198
+ let { tabProps: tabProps , isSelected: isSelected , isDisabled: isDisabled } = $8zXxA$reactariatabs.useTab({
199
+ key: key
202
200
  }, state, ref);
203
201
  let { hoverProps: hoverProps , isHovered: isHovered } = $8zXxA$reactariainteractions.useHover({
204
202
  ...props
205
203
  });
206
- let isSelected = state.selectedKey === key;
207
204
  let domProps = $8zXxA$reactariautils.filterDOMProps(item.props);
208
205
  delete domProps.id;
209
206
  return(/*#__PURE__*/ ($parcel$interopDefault($8zXxA$react)).createElement($8zXxA$reactariafocus.FocusRing, {
@@ -271,7 +268,7 @@ function $e8d58e7e32285ba6$var$TabLine(props) {
271
268
  function $e8d58e7e32285ba6$export$e51a686c67fdaa2d(props) {
272
269
  const tabContext = $8zXxA$react.useContext($e8d58e7e32285ba6$var$TabContext);
273
270
  const { refs: refs , tabState: tabState , tabProps: tabProps , tabPanelProps: tabPanelProps } = tabContext;
274
- const { isQuiet: isQuiet , density: density , isDisabled: isDisabled , isEmphasized: isEmphasized , orientation: orientation } = tabProps;
271
+ const { isQuiet: isQuiet , density: density , isEmphasized: isEmphasized , orientation: orientation } = tabProps;
275
272
  const { selectedTab: selectedTab , collapsed: collapsed , setTabListState: setTabListState } = tabState;
276
273
  const { tablistRef: tablistRef , wrapperRef: wrapperRef } = refs;
277
274
  // Pass original Tab props but override children to create the collection.
@@ -322,7 +319,6 @@ function $e8d58e7e32285ba6$export$e51a686c67fdaa2d(props) {
322
319
  key: item.key,
323
320
  item: item,
324
321
  state: state,
325
- isDisabled: isDisabled,
326
322
  orientation: orientation
327
323
  })
328
324
  ), /*#__PURE__*/ ($parcel$interopDefault($8zXxA$react)).createElement($e8d58e7e32285ba6$var$TabLine, {
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEAA,GAAoC;AACpC,GAAgD;AAChD,GAA8C;AAC9C,GAA+B;AAC/B,GAAoC;AACpC,GAA6B;AAC7B,GAAyC;AACzC,GAA+B;AAC/B,GAAkD;AAClD,GAA2C;AAC3C,GAAwC;AACxC,GAA4C;AAC5C,GAAsC;AACtC,GAAyC;AACzC,GAAoD;AACpD,GAAyC;AACzC,GAA6C;AAC7C,GAA4B;AAC5B,GAA2C;AAC3C,GAA4B;AAC5B,GAA6B;AApB7B,wCAAoC,GAAG,CAA2B;AAClE,yCAAgD,GAAG,CAAuC;AAC1F,yCAA8C,GAAG,CAAqC;AACtF,yCAA+B,GAAG,CAAsB;AACxD,yCAAoC,GAAG,CAA2B;AAClE,yCAA6B,GAAG,CAAoB;AACpD,yCAAyC,GAAG,CAAgC;AAC5E,yCAA+B,GAAG,CAAsB;AACxD,yCAAkD,GAAG,CAAyC;AAC9F,yCAA2C,GAAG,CAAkC;AAChF,yCAAwC,GAAG,CAA+B;AAC1E,yCAA4C,GAAG,CAAmC;AAClF,yCAAsC,GAAG,CAA6B;AACtE,yCAAyC,GAAG,CAAgC;AAC5E,yCAAoD,GAAG,CAA2C;AAClG,yCAAyC,GAAG,CAAgC;AAC5E,yCAA6C,GAAG,CAAoC;AACpF,yCAA4B,GAAG,CAAmB;AAClD,yCAA2C,GAAG,CAAkC;AAChF,yCAA4B,GAAG,CAAmB;AAClD,yCAA6B,GAAG,CAAoB;;;;;;;;;;;AD6BpD,KAAK,CAAC,gCAAU,iBAAG,sCAAK,CAAC,aAAa,CAAmB,IAAI;SAEpD,0BAAI,CAAmB,KAA2B,EAAE,GAA2B,EAAE,CAAC;IACzF,KAAK,GAAG,6CAAgB,CAAC,KAAK;IAC9B,GAAG,CAAC,CAAC,cACH,WAAW,GAAG,CAAY,uBAC1B,OAAO,GAAG,CAAS,qBACnB,QAAQ,MACL,UAAU,CACf,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,MAAM,GAAG,mCAAS,CAAC,GAAG;IAC1B,GAAG,CAAC,UAAU,GAAG,mBAAM;IACvB,GAAG,CAAC,UAAU,GAAG,mBAAM;IAEvB,GAAG,CAAC,CAAC,YAAA,SAAS,EAAA,CAAC,GAAG,8BAAS;IAC3B,GAAG,CAAC,CAAC,aAAA,UAAU,EAAA,CAAC,GAAG,uCAAa,CAAC,UAAU;IAC3C,GAAG,EAAE,SAAS,EAAE,YAAY,IAAI,qBAAQ,CAAC,KAAK;IAC9C,GAAG,EAAE,YAAW,EAAE,cAAc,IAAI,qBAAQ;IAC5C,KAAK,EAAE,YAAY,EAAE,eAAe,IAAI,qBAAQ,CAAkB,IAAI;IAEtE,sBAAS,KAAO,CAAC;QACf,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,GAAgB,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,aAAZ,YAAY,KAAZ,IAAI,CAAJ,CAAyB,GAAzB,IAAI,CAAJ,CAAyB,GAAzB,YAAY,CAAE,WAAW,CAAC,EAAE;YAE1G,EAAE,EAAE,WAAW,IAAI,IAAI,EACrB,cAAc,CAAC,WAAW;QAE9B,CAAC;IACD,EAAqF,AAArF,mFAAqF;IACvF,CAAC,EAAE,CAAC;QAAA,QAAQ;QAAE,YAAY,aAAZ,YAAY,KAAZ,IAAI,CAAJ,CAAyB,GAAzB,IAAI,CAAJ,CAAyB,GAAzB,YAAY,CAAE,WAAW;QAAE,SAAS;QAAE,UAAU;IAAA,CAAC;IAE/D,GAAG,CAAC,mBAAmB,GAAG,wBAAW,KAAO,CAAC;QAC3C,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,WAAW,KAAK,CAAU,WAAE,CAAC;YACrD,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO;YACtC,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAc;YAC7D,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAElC,GAAG,CAAC,GAAG,GAAG,SAAS,KAAK,CAAK,OAAG,CAAM,QAAG,CAAO;YAChD,GAAG,CAAC,cAAc,GAAG,aAAa,CAAC,qBAAqB,GAAG,GAAG;YAC9D,GAAG,CAAC,cAAc,GAAG,OAAO,aAAP,OAAO,KAAP,IAAI,CAAJ,CAA8B,GAA9B,IAAI,CAAJ,CAA8B,GAA9B,OAAO,CAAE,qBAAqB,GAAG,GAAG;YACzD,GAAG,CAAC,cAAc,GAAG,SAAS,KAAK,CAAK,OAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;YAC5G,YAAY,CAAC,cAAc;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC;QAAA,UAAU;QAAE,UAAU;QAAE,SAAS;QAAE,WAAW;QAAE,YAAY;IAAA,CAAC;IAEjE,sBAAS,KAAO,CAAC;QACf,mBAAmB;IACrB,CAAC,EAAE,CAAC;QAAA,QAAQ;QAAE,mBAAmB;IAAA,CAAC;IAElC,uCAAiB,CAAC,CAAC;QAAA,GAAG,EAAE,UAAU;QAAE,QAAQ,EAAE,mBAAmB;IAAA,CAAC;IAElE,GAAG,CAAC,aAAa,GAAG,CAAC;QACnB,CAAiB,kBAAE,SAAS;IAC9B,CAAC;IAED,EAA6F,AAA7F,2FAA6F;IAC7F,GAAG,CAAC,oBAAoB,GAAG,2BAAK;IAChC,EAAE,EAAE,SAAS,IAAI,WAAW,KAAK,CAAU,WACzC,aAAa,CAAC,CAAiB,oBAAI,oBAAoB;IAEzD,MAAM,oEACH,gCAAU,CAAC,QAAQ;QAClB,KAAK,EAAE,CAAC;YACN,QAAQ,EAAE,CAAC;mBAAG,KAAK;6BAAE,WAAW;yBAAE,OAAO;YAAA,CAAC;YAC1C,QAAQ,EAAE,CAAC;8BAAA,YAAY;iCAAE,eAAe;6BAAE,YAAW;2BAAE,SAAS;YAAA,CAAC;YACjE,IAAI,EAAE,CAAC;4BAAA,UAAU;4BAAE,UAAU;YAAA,CAAC;2BAC9B,aAAa;QACf,CAAC;0EACA,CAAG;WACE,oCAAc,CAAC,UAAU;WACzB,UAAU;QACd,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,oCAAU,CACnB,gEAAM,EACN,CAAoB,sBACnB,oBAAoB,EAAE,WAAW,IAClC,UAAU,CAAC,SAAS;OAErB,KAAK,CAAC,QAAQ;AAIvB,CAAC;AASD,EAAW,AAAX,SAAW;SACF,yBAAG,CAAI,KAAkB,EAAE,CAAC;IACnC,GAAG,CAAC,CAAC,OAAA,IAAI,UAAE,KAAK,GAAE,UAAU,EAAE,aAAa,EAAA,CAAC,GAAG,KAAK;IACpD,GAAG,CAAC,CAAC,MAAA,GAAG,aAAE,QAAQ,EAAA,CAAC,GAAG,IAAI;IAC1B,GAAG,CAAC,UAAU,GAAG,aAAa,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG;IAE5D,GAAG,CAAC,GAAG,GAAG,mBAAM;IAChB,GAAG,CAAC,CAAC,WAAA,QAAQ,EAAA,CAAC,GAAG,2BAAM,CAAC,CAAC;aAAA,GAAG;oBAAE,UAAU;IAAA,CAAC,EAAE,KAAK,EAAE,GAAG;IAErD,GAAG,CAAC,CAAC,aAAA,UAAU,cAAE,SAAS,EAAA,CAAC,GAAG,qCAAQ,CAAC,CAAC;WACnC,KAAK;IACV,CAAC;IACD,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,KAAK,GAAG;IAC1C,GAAG,CAAC,QAAQ,GAAG,oCAAc,CAAC,IAAI,CAAC,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,EAAE;IAElB,MAAM,oEACH,+BAAS;QAAC,cAAc,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAY;0EACvD,CAAG;WACE,gCAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ;QAC7C,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,oCAAU,CACnB,gEAAM,EACN,CAAoB,qBACpB,CAAC;YACC,CAAa,cAAE,UAAU;YACzB,CAAa,cAAE,UAAU;YACzB,CAAY,aAAE,SAAS;QACzB,CAAC;0EAEF,sCAAY;QACX,KAAK,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,CAAG;gBACT,gBAAgB,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAe;YACtD,CAAC;YACD,IAAI,EAAE,CAAC;gBACL,gBAAgB,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAyB;YAChE,CAAC;QACH,CAAC;OACA,MAAM,CAAC,QAAQ,KAAK,CAAQ,6EACxB,6BAAI,QAAE,QAAQ,IACf,QAAQ;AAKtB,CAAC;AAQD,EAAW,AAAX,SAAW;SACF,6BAAO,CAAC,KAAmB,EAAE,CAAC;IACrC,GAAG,CAAC,CAAC,cACH,WAAW,gBACX,EAAwE,AAAxE,sEAAwE;IACxE,WAAW,gBACX,EAA4H,AAA5H,0HAA4H;IAC5H,WAAW,EACb,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,CAAC,YAAA,SAAS,EAAA,CAAC,GAAG,8BAAS;IAC3B,GAAG,CAAC,CAAC,QAAA,KAAK,EAAA,CAAC,GAAG,wCAAW;IAEzB,GAAG,EAAE,KAAK,EAAE,QAAQ,IAAI,qBAAQ,CAAC,CAAC;QAChC,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;IACnB,CAAC;IAED,qCAAe,KAAO,CAAC;QACrB,EAAE,EAAE,WAAW,EAAE,CAAC;gBAGyB,GAAyC;YAFlF,GAAG,CAAC,QAAQ,GAAG,CAAC;gBAAA,SAAS,EAAE,SAAS;gBAAE,KAAK,EAAE,SAAS;gBAAE,MAAM,EAAE,SAAS;YAAA,CAAC;YAC1E,EAA8J,AAA9J,4JAA8J;YAC9J,GAAG,CAAC,MAAM,GAAG,SAAS,KAAK,CAAK,OAAG,EAAE,MAAI,GAAyC,GAAxC,WAAW,CAAC,YAAY,cAAzB,GAAyC,KAAzC,IAAI,CAAJ,CAAsD,GAAtD,IAAI,CAAJ,CAAsD,GAAtD,GAAyC,CAAE,WAAW,IAAG,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU;YAC5K,QAAQ,CAAC,SAAS,GAAG,WAAW,KAAK,CAAU,aAC1C,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,KACtC,WAAW,EAAE,MAAM,CAAC,GAAG;YAE5B,EAAE,EAAE,WAAW,KAAK,CAAY,aAC9B,QAAQ,CAAC,KAAK,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE;iBAE9C,QAAQ,CAAC,MAAM,MAAM,WAAW,CAAC,YAAY,CAAC,EAAE;YAElD,QAAQ,CAAC,QAAQ;QACnB,CAAC;IAEH,CAAC,EAAE,CAAC;QAAA,SAAS;QAAE,QAAQ;QAAE,WAAW;QAAE,WAAW;QAAE,KAAK;QAAE,WAAW;IAAA,CAAC;IAEtE,MAAM,oEAAE,CAAG;QAAC,SAAS,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAkC;QAAG,IAAI,EAAC,CAAc;QAAC,KAAK,EAAE,KAAK;;AACjH,CAAC;SAMe,yCAAO,CAAI,KAA8B,EAAE,CAAC;IAC1D,KAAK,CAAC,UAAU,GAAG,uBAAU,CAAC,gCAAU;IACxC,KAAK,CAAC,CAAC,OAAA,IAAI,aAAE,QAAQ,aAAE,QAAQ,kBAAE,aAAa,EAAA,CAAC,GAAG,UAAU;IAC5D,KAAK,CAAC,CAAC,UAAA,OAAO,YAAE,OAAO,eAAE,UAAU,iBAAE,YAAY,gBAAE,WAAW,EAAA,CAAC,GAAG,QAAQ;IAC1E,KAAK,CAAC,CAAC,cAAA,WAAW,cAAE,SAAS,oBAAE,eAAe,EAAA,CAAC,GAAG,QAAQ;IAC1D,KAAK,CAAC,CAAC,aAAA,UAAU,eAAE,UAAU,EAAA,CAAC,GAAG,IAAI;IACrC,EAA0E,AAA1E,wEAA0E;IAC1E,KAAK,CAAC,KAAK,GAAG,uCAAe,CAAC,CAAC;WAAG,QAAQ;QAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAAA,CAAC;IAErE,GAAG,CAAC,CAAC,aAAA,UAAU,EAAA,CAAC,GAAG,uCAAa,CAAC,KAAK;IACtC,KAAK,CAAC,CAAC,eAAA,YAAY,EAAA,CAAC,GAAG,+BAAU,CAAC,CAAC;WAAG,QAAQ;WAAK,KAAK;IAAA,CAAC,EAAE,KAAK,EAAE,UAAU;IAE5E,sBAAS,KAAO,CAAC;QACf,EAA6D,AAA7D,2DAA6D;QAC7D,eAAe,CAAC,KAAK;IACrB,EAAuD,AAAvD,qDAAuD;IACzD,CAAC,EAAE,CAAC;QAAA,KAAK,CAAC,YAAY;QAAE,KAAK,CAAC,YAAY;QAAE,KAAK,CAAC,WAAW;QAAE,KAAK,CAAC,QAAQ;IAAA,CAAC;IAE9E,GAAG,CAAC,aAAa,GAAyB,SAAS,IAAI,WAAW,KAAK,CAAU,YAAG,CAAC;QAAA,QAAQ,EAAE,CAAkB;QAAE,QAAQ,EAAE,CAAQ;QAAE,UAAU,EAAE,CAAQ;QAAE,QAAQ,EAAE,CAAU;IAAA,CAAC,GAAG,CAAC;QAAA,QAAQ,EAAE,CAAkB;IAAA,CAAC;IACnN,GAAG,CAAC,eAAe,GAAG,WAAW,KAAK,CAAU,YAAG,UAAU,GAAG,CAAC;QAAA,KAAK,EAAE,aAAa;IAAA,CAAC;IAEtF,EAAE,EAAE,SAAS,IAAI,WAAW,KAAK,CAAU,WACzC,YAAY,CAAC,CAAa,gBAAI,IAAI;IAGpC,GAAG,CAAC,gBAAgB,GAAG,oCAAU,CAAC,gEAAM,EAAE,CAAyB;IACnE,KAAK,CAAC,UAAU,sEACb,CAAG;WACE,eAAe;WACf,YAAY;QAChB,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,oCAAU,CACnB,gEAAM,EACN,CAAe,iBACd,eAAe,EAAE,WAAW,IAC7B,gBAAgB,EAChB,CAAC;YACC,CAAsB,uBAAE,OAAO;YAC/B,CAA2B,4BAAE,YAAY;aACxC,CAAwB,0BAAG,OAAO,KAAK,CAAS;QACnD,CAAC,EACD,WAAW,KAAK,CAAU,aAAI,UAAU,CAAC,SAAS;OAGnD,CAAC;WAAG,KAAK,CAAC,UAAU;IAAA,CAAC,CAAC,GAAG,EAAE,IAAI,sEAC7B,yBAAG;YAAC,GAAG,EAAE,IAAI,CAAC,GAAG;YAAE,IAAI,EAAE,IAAI;YAAE,KAAK,EAAE,KAAK;YAAE,UAAU,EAAE,UAAU;YAAE,WAAW,EAAE,WAAW;;0EAE/F,6BAAO;QAAC,WAAW,EAAE,WAAW;QAAE,WAAW,EAAE,WAAW;;IAK/D,EAAE,EAAE,WAAW,KAAK,CAAU,WAC5B,MAAM,CAAC,UAAU;SAEjB,MAAM,oEACH,CAAG;WACE,UAAU;QACd,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,oCAAU,CACnB,gEAAM,EACN,CAAoC,qCACpC,UAAU,CAAC,SAAS;0EAErB,+BAAS;WAAK,KAAK;WAAM,QAAQ;QAAE,OAAO,EAAE,SAAS;QAAE,EAAE,EAAE,aAAa,CAAC,CAAiB;QAAG,KAAK,EAAE,KAAK;QAAE,SAAS,EAAE,gBAAgB;QACtI,UAAU;AAInB,CAAC;SAMe,yCAAS,CAAI,KAAgC,EAAE,CAAC;IAC9D,KAAK,CAAC,CAAC,WAAA,QAAQ,aAAE,QAAQ,EAAA,CAAC,GAAG,uBAAU,CAAC,gCAAU;IAClD,KAAK,CAAC,CAAC,eAAA,YAAY,EAAA,CAAC,GAAG,QAAQ;IAE/B,KAAK,CAAC,OAAO,IAAG,KAAK,GAAI,GAAG,CAAC,sCAAc,CAAC,KAAK;;IACjD,KAAK,CAAC,UAAU,GAAG,4CAAa,CAAC,CAAC;QAAA,KAAK,EAAE,QAAQ,CAAC,KAAK;WAAK,KAAK;IAAA,CAAC,EAAE,OAAO,EAAE,CAAC;QAAA,wBAAwB,EAAE,IAAI;IAAA,CAAC;IAC7G,KAAK,CAAC,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,IAAI,IAAI;IAEvF,MAAM,oEACH,8BAAQ;WAAK,KAAK;QAAE,GAAG,EAAE,YAAY,aAAZ,YAAY,KAAZ,IAAI,CAAJ,CAAyB,GAAzB,IAAI,CAAJ,CAAyB,GAAzB,YAAY,CAAE,WAAW;OAChD,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ;AAGlD,CAAC;AAED,EAAW,AAAX,SAAW;SACF,8BAAQ,CAAI,KAAgC,EAAE,CAAC;IACtD,KAAK,CAAC,CAAC,WAAA,QAAQ,GAAE,aAAa,EAAE,gBAAgB,EAAA,CAAC,GAAG,uBAAU,CAAC,gCAAU;IACzE,KAAK,CAAC,CAAC,eAAA,YAAY,EAAA,CAAC,GAAG,QAAQ;IAC/B,GAAG,CAAC,GAAG,GAAG,mBAAM;IAChB,KAAK,CAAC,CAAC,gBAAA,aAAa,EAAA,CAAC,GAAG,gCAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;IAC5D,GAAG,CAAC,CAAC,aAAA,UAAU,EAAA,CAAC,GAAG,uCAAa,CAAC,KAAK;IAEtC,EAAE,EAAE,gBAAgB,CAAC,CAAiB,mBACpC,aAAa,CAAC,CAAiB,oBAAI,gBAAgB,CAAC,CAAiB;IAGvE,MAAM,oEACH,+BAAS;QAAC,cAAc,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAY;0EACvD,CAAG;WAAK,UAAU;WAAM,aAAa;QAAE,GAAG,EAAE,GAAG;QAAE,SAAS,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAA6B,8BAAE,UAAU,CAAC,SAAS;OAChI,KAAK,CAAC,QAAQ;AAIvB,CAAC;SAUQ,+BAAS,CAAI,KAAwB,EAAE,CAAC;IAC/C,GAAG,CAAC,CAAC,aACH,UAAU,iBACV,YAAY,YACZ,OAAO,UACP,KAAK,GACL,CAAiB,kBAAE,aAAa,GAChC,CAAY,aAAE,SAAS,YACvB,OAAO,cACP,SAAS,OACT,EAAE,YACF,OAAO,EACT,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,GAAG,GAAG,mBAAM;IAChB,GAAG,EAAE,UAAU,EAAE,aAAa,IAAI,qBAAQ,CAAC,IAAI;IAE/C,sBAAS,KAAO,CAAC;QACf,GAAG,CAAC,IAAI,GAAG,sCAAY,CAAC,GAAG;QAC3B,aAAa,CAAC,IAAI,CAAC,OAAO;IAC5B,CAAC,EAAE,CAAC;QAAA,GAAG;IAAA,CAAC;IAER,GAAG,CAAC,KAAK,GAAG,CAAC;WAAG,KAAK,CAAC,UAAU;IAAA,CAAC,CAAC,GAAG,EAAE,IAAI,IAAM,CAAC;YAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,GAAG;QACd,CAAC;;IAED,GAAG,CAAC,WAAW,GAAG,CAAC;QACjB,CAAiB,kBAAE,aAAa;QAChC,CAAY,aAAE,SAAS;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,GAAyB,OAAO,GAAG,CAAC;IAAA,CAAC,GAAG,CAAC;QAAA,UAAU,EAAE,CAAQ;QAAE,QAAQ,EAAE,CAAU;IAAA,CAAC;IAE/F,EAAiF,AAAjF,+EAAiF;IACjF,MAAM,oEACH,CAAG;QACF,SAAS,EAAE,oCAAU,CACnB,gEAAM,EACN,CAAe,gBACf,CAA2B,4BAC3B,CAA4B,6BAC5B,CAAC;YACC,CAAsB,uBAAE,OAAO;aAC9B,CAAwB,0BAAG,OAAO,KAAK,CAAS;YACjD,CAA2B,4BAAE,YAAY;QAC3C,CAAC,EACD,SAAS;QAEX,KAAK,EAAE,KAAK;QACZ,CAAW,cAAE,OAAO,GAAG,SAAS,GAAG,IAAI;0EACtC,sCAAY;QACX,KAAK,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,CAAG;gBACT,gBAAgB,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAe;YACtD,CAAC;YACD,MAAM,EAAE,CAAC;gBACP,cAAc,EAAE,oCAAU,CAAC,gEAAM,EAAE,CAAY;YACjD,CAAC;QACH,CAAC;0EACA,iCAAM;WACD,WAAW;QACf,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,GAAG;QACR,OAAO,EAAP,IAAO;QACP,UAAU,GAAG,OAAO,IAAI,UAAU;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,iBAAiB,EAAE,KAAK,CAAC,cAAc;QACtC,IAAI,sEAAK,+BAAI;YAAC,SAAS,EAAE,IAAI,CAAC,SAAS;WAAG,IAAI,CAAC,QAAQ;OAEzD,UAAU,uEAAK,6BAAO;QAAC,WAAW,EAAC,CAAY;QAAC,WAAW,EAAE,UAAU;QAAE,WAAW,EAAE,KAAK,CAAC,WAAW;;AAIhH,CAAC;AAED,EAEG,AAFH;;CAEG,AAFH,EAEG,CACH,EAAwF,AAAxF,sFAAwF;AACxF,EAA2G,AAA3G,yGAA2G;AAC3G,KAAK,CAAC,yCAAK,iBAAG,sCAAK,CAAC,UAAU,CAAC,0BAAI","sources":["packages/@react-spectrum/tabs/src/index.ts","packages/@react-spectrum/tabs/src/Tabs.tsx","packages/@adobe/spectrum-css-temp/components/tabs/vars.css"],"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';\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} from '@react-spectrum/utils';\nimport {DOMProps, DOMRef, Node, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Item, Picker} from '@react-spectrum/picker';\nimport {ListCollection, SingleSelectListState} from '@react-stately/list';\nimport {mergeProps, useId, useLayoutEffect} from '@react-aria/utils';\nimport React, {Key, MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState} from 'react';\nimport {SpectrumPickerProps} from '@react-types/select';\nimport {SpectrumTabListProps, SpectrumTabPanelsProps, SpectrumTabsProps} from '@react-types/tabs';\nimport styles from '@adobe/spectrum-css-temp/components/tabs/vars.css';\nimport {TabListState, useTabListState} from '@react-stately/tabs';\nimport {Text} from '@react-spectrum/text';\nimport {useCollection} from '@react-stately/collections';\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, useTabList, useTabPanel} from '@react-aria/tabs';\n\ninterface TabsContext<T> {\n tabProps: SpectrumTabsProps<T>,\n tabState: {\n tabListState: TabListState<T>,\n setTabListState: (state: TabListState<T>) => void,\n selectedTab: HTMLElement,\n collapsed: boolean\n },\n refs: {\n wrapperRef: MutableRefObject<HTMLDivElement>,\n tablistRef: MutableRefObject<HTMLDivElement>\n },\n tabPanelProps: {\n 'aria-labelledby': string\n }\n}\n\nconst TabContext = React.createContext<TabsContext<any>>(null);\n\nfunction Tabs<T extends object>(props: SpectrumTabsProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n orientation = 'horizontal' as Orientation,\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\n let {direction} = useLocale();\n let {styleProps} = useStyleProps(otherProps);\n let [collapsed, setCollapsed] = useState(false);\n let [selectedTab, setSelectedTab] = useState<HTMLElement>();\n const [tabListState, setTabListState] = useState<TabListState<T>>(null);\n\n useEffect(() => {\n if (tablistRef.current) {\n let selectedTab: HTMLElement = tablistRef.current.querySelector(`[data-key=\"${tabListState?.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, tabListState?.selectedKey, collapsed, tablistRef]);\n\n let checkShouldCollapse = useCallback(() => {\n if (wrapperRef.current && orientation !== 'vertical') {\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 setCollapsed(shouldCollapse);\n }\n }, [tablistRef, wrapperRef, direction, orientation, setCollapsed]);\n\n useEffect(() => {\n checkShouldCollapse();\n }, [children, checkShouldCollapse]);\n\n useResizeObserver({ref: wrapperRef, onResize: checkShouldCollapse});\n\n let tabPanelProps = {\n 'aria-labelledby': undefined\n };\n\n // When the tabs are collapsed, the tabPanel should be labelled by the Picker button element.\n let collapsibleTabListId = useId();\n if (collapsed && orientation !== 'vertical') {\n tabPanelProps['aria-labelledby'] = collapsibleTabListId;\n }\n return (\n <TabContext.Provider\n value={{\n tabProps: {...props, orientation, density},\n tabState: {tabListState, setTabListState, selectedTab, collapsed},\n refs: {tablistRef, wrapperRef},\n tabPanelProps\n }}>\n <div\n {...filterDOMProps(otherProps)}\n {...styleProps}\n ref={domRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel',\n `spectrum-TabsPanel--${orientation}`,\n styleProps.className\n )}>\n {props.children}\n </div>\n </TabContext.Provider>\n );\n}\n\ninterface TabProps<T> extends DOMProps {\n item: Node<T>,\n state: SingleSelectListState<T>,\n isDisabled?: boolean,\n orientation?: Orientation\n}\n\n// @private\nfunction 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({key, isDisabled}, state, ref);\n\n let {hoverProps, isHovered} = useHover({\n ...props\n });\n let isSelected = state.selectedKey === key;\n let domProps = filterDOMProps(item.props);\n delete domProps.id;\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(tabProps, hoverProps, domProps)}\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\n// @private\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 {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}px)`\n : `translateX(${offset}px)`;\n\n if (orientation === 'horizontal') {\n styleObj.width = `${selectedTab.offsetWidth}px`;\n } else {\n styleObj.height = `${selectedTab.offsetHeight}px`;\n }\n setStyle(styleObj);\n }\n\n }, [direction, setStyle, selectedTab, orientation, scale, selectedKey]);\n\n return <div className={classNames(styles, 'spectrum-Tabs-selectionIndicator')} role=\"presentation\" style={style} />;\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The keys of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nexport function TabList<T>(props: SpectrumTabListProps<T>) {\n const tabContext = useContext(TabContext);\n const {refs, tabState, tabProps, tabPanelProps} = tabContext;\n const {isQuiet, density, isDisabled, isEmphasized, orientation} = tabProps;\n const {selectedTab, collapsed, setTabListState} = tabState;\n const {tablistRef, wrapperRef} = refs;\n // Pass original Tab props but override children to create the collection.\n const state = useTabListState({...tabProps, children: props.children});\n\n let {styleProps} = useStyleProps(props);\n const {tabListProps} = useTabList({...tabProps, ...props}, state, tablistRef);\n\n useEffect(() => {\n // Passing back to root as useTabPanel needs the TabListState\n setTabListState(state);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.disabledKeys, state.selectedItem, state.selectedKey, props.children]);\n\n let collapseStyle : React.CSSProperties = collapsed && orientation !== 'vertical' ? {maxWidth: 'calc(100% + 1px)', overflow: 'hidden', visibility: 'hidden', position: 'absolute'} : {maxWidth: 'calc(100% + 1px)'};\n let stylePropsFinal = orientation === 'vertical' ? styleProps : {style: collapseStyle};\n\n if (collapsed && orientation !== 'vertical') {\n tabListProps['aria-hidden'] = true;\n }\n\n let tabListclassName = classNames(styles, 'spectrum-TabsPanel-tabs');\n const tabContent = (\n <div\n {...stylePropsFinal}\n {...tabListProps}\n ref={tablistRef}\n className={classNames(\n styles,\n 'spectrum-Tabs',\n `spectrum-Tabs--${orientation}`,\n tabListclassName,\n {\n 'spectrum-Tabs--quiet': isQuiet,\n 'spectrum-Tabs--emphasized': isEmphasized,\n ['spectrum-Tabs--compact']: density === 'compact'\n },\n orientation === 'vertical' && styleProps.className\n )\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\n if (orientation === 'vertical') {\n return tabContent;\n } else {\n return (\n <div\n {...styleProps}\n ref={wrapperRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel-collapseWrapper',\n styleProps.className\n )}>\n <TabPicker {...props} {...tabProps} visible={collapsed} id={tabPanelProps['aria-labelledby']} state={state} className={tabListclassName} />\n {tabContent}\n </div>\n );\n }\n}\n\n/**\n * TabPanels is used within Tabs as a container for the content of each tab.\n * The keys of the items within the <TabPanels> must match up with a corresponding item inside the <TabList>.\n */\nexport function TabPanels<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabProps} = useContext(TabContext);\n const {tabListState} = tabState;\n\n const factory = nodes => new ListCollection(nodes);\n const collection = useCollection({items: tabProps.items, ...props}, factory, {suppressTextValueWarning: true});\n const selectedItem = tabListState ? collection.getItem(tabListState.selectedKey) : null;\n\n return (\n <TabPanel {...props} key={tabListState?.selectedKey}>\n {selectedItem && selectedItem.props.children}\n </TabPanel>\n );\n}\n\n// @private\nfunction TabPanel<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabPanelProps: ctxTabPanelProps} = useContext(TabContext);\n const {tabListState} = tabState;\n let ref = useRef();\n const {tabPanelProps} = useTabPanel(props, tabListState, ref);\n let {styleProps} = useStyleProps(props);\n\n if (ctxTabPanelProps['aria-labelledby']) {\n tabPanelProps['aria-labelledby'] = ctxTabPanelProps['aria-labelledby'];\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div {...styleProps} {...tabPanelProps} ref={ref} className={classNames(styles, 'spectrum-TabsPanel-tabpanel', styleProps.className)}>\n {props.children}\n </div>\n </FocusRing>\n );\n}\n\ninterface TabPickerProps<T> extends Omit<SpectrumPickerProps<T>, 'children'> {\n density?: 'compact' | 'regular',\n isEmphasized?: boolean,\n state: SingleSelectListState<T>,\n className?: string,\n visible: boolean\n}\n\nfunction TabPicker<T>(props: TabPickerProps<T>) {\n let {\n isDisabled,\n isEmphasized,\n isQuiet,\n state,\n 'aria-labelledby': ariaLabeledBy,\n 'aria-label': ariaLabel,\n density,\n className,\n id,\n visible\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 const style : React.CSSProperties = visible ? {} : {visibility: 'hidden', position: 'absolute'};\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 'spectrum-Tabs--emphasized': isEmphasized\n },\n className\n )}\n style={style}\n aria-hidden={visible ? undefined : true}>\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={!visible || 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","/*\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"],"names":[],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/tabs/src/index.ts","packages/@react-spectrum/tabs/src/Tabs.tsx","packages/@adobe/spectrum-css-temp/components/tabs/vars.css"],"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","/*\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} from '@react-spectrum/utils';\nimport {DOMProps, DOMRef, Node, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Item, Picker} from '@react-spectrum/picker';\nimport {ListCollection} from '@react-stately/list';\nimport {mergeProps, useId, useLayoutEffect} from '@react-aria/utils';\nimport React, {Key, MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState} from 'react';\nimport {SpectrumPickerProps} from '@react-types/select';\nimport {SpectrumTabListProps, SpectrumTabPanelsProps, SpectrumTabsProps} from '@react-types/tabs';\nimport styles from '@adobe/spectrum-css-temp/components/tabs/vars.css';\nimport {TabListState, useTabListState} from '@react-stately/tabs';\nimport {Text} from '@react-spectrum/text';\nimport {useCollection} from '@react-stately/collections';\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, useTabList, useTabPanel} from '@react-aria/tabs';\n\ninterface TabsContext<T> {\n tabProps: SpectrumTabsProps<T>,\n tabState: {\n tabListState: TabListState<T>,\n setTabListState: (state: TabListState<T>) => void,\n selectedTab: HTMLElement,\n collapsed: boolean\n },\n refs: {\n wrapperRef: MutableRefObject<HTMLDivElement>,\n tablistRef: MutableRefObject<HTMLDivElement>\n },\n tabPanelProps: {\n 'aria-labelledby': string\n }\n}\n\nconst TabContext = React.createContext<TabsContext<any>>(null);\n\nfunction Tabs<T extends object>(props: SpectrumTabsProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n orientation = 'horizontal' as Orientation,\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\n let {direction} = useLocale();\n let {styleProps} = useStyleProps(otherProps);\n let [collapsed, setCollapsed] = useState(false);\n let [selectedTab, setSelectedTab] = useState<HTMLElement>();\n const [tabListState, setTabListState] = useState<TabListState<T>>(null);\n\n useEffect(() => {\n if (tablistRef.current) {\n let selectedTab: HTMLElement = tablistRef.current.querySelector(`[data-key=\"${tabListState?.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, tabListState?.selectedKey, collapsed, tablistRef]);\n\n let checkShouldCollapse = useCallback(() => {\n if (wrapperRef.current && orientation !== 'vertical') {\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 setCollapsed(shouldCollapse);\n }\n }, [tablistRef, wrapperRef, direction, orientation, setCollapsed]);\n\n useEffect(() => {\n checkShouldCollapse();\n }, [children, checkShouldCollapse]);\n\n useResizeObserver({ref: wrapperRef, onResize: checkShouldCollapse});\n\n let tabPanelProps = {\n 'aria-labelledby': undefined\n };\n\n // When the tabs are collapsed, the tabPanel should be labelled by the Picker button element.\n let collapsibleTabListId = useId();\n if (collapsed && orientation !== 'vertical') {\n tabPanelProps['aria-labelledby'] = collapsibleTabListId;\n }\n return (\n <TabContext.Provider\n value={{\n tabProps: {...props, orientation, density},\n tabState: {tabListState, setTabListState, selectedTab, collapsed},\n refs: {tablistRef, wrapperRef},\n tabPanelProps\n }}>\n <div\n {...filterDOMProps(otherProps)}\n {...styleProps}\n ref={domRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel',\n `spectrum-TabsPanel--${orientation}`,\n styleProps.className\n )}>\n {props.children}\n </div>\n </TabContext.Provider>\n );\n}\n\ninterface TabProps<T> extends DOMProps {\n item: Node<T>,\n state: TabListState<T>,\n isDisabled?: boolean,\n orientation?: Orientation\n}\n\n// @private\nfunction Tab<T>(props: TabProps<T>) {\n let {item, state} = props;\n let {key, rendered} = item;\n\n let ref = useRef<HTMLDivElement>();\n let {tabProps, isSelected, isDisabled} = useTab({key}, state, ref);\n\n let {hoverProps, isHovered} = useHover({\n ...props\n });\n let domProps = filterDOMProps(item.props);\n delete domProps.id;\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(tabProps, hoverProps, domProps)}\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\n// @private\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 {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}px)`\n : `translateX(${offset}px)`;\n\n if (orientation === 'horizontal') {\n styleObj.width = `${selectedTab.offsetWidth}px`;\n } else {\n styleObj.height = `${selectedTab.offsetHeight}px`;\n }\n setStyle(styleObj);\n }\n\n }, [direction, setStyle, selectedTab, orientation, scale, selectedKey]);\n\n return <div className={classNames(styles, 'spectrum-Tabs-selectionIndicator')} role=\"presentation\" style={style} />;\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The keys of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nexport function TabList<T>(props: SpectrumTabListProps<T>) {\n const tabContext = useContext(TabContext);\n const {refs, tabState, tabProps, tabPanelProps} = tabContext;\n const {isQuiet, density, isEmphasized, orientation} = tabProps;\n const {selectedTab, collapsed, setTabListState} = tabState;\n const {tablistRef, wrapperRef} = refs;\n // Pass original Tab props but override children to create the collection.\n const state = useTabListState({...tabProps, children: props.children});\n\n let {styleProps} = useStyleProps(props);\n const {tabListProps} = useTabList({...tabProps, ...props}, state, tablistRef);\n\n useEffect(() => {\n // Passing back to root as useTabPanel needs the TabListState\n setTabListState(state);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.disabledKeys, state.selectedItem, state.selectedKey, props.children]);\n\n let collapseStyle : React.CSSProperties = collapsed && orientation !== 'vertical' ? {maxWidth: 'calc(100% + 1px)', overflow: 'hidden', visibility: 'hidden', position: 'absolute'} : {maxWidth: 'calc(100% + 1px)'};\n let stylePropsFinal = orientation === 'vertical' ? styleProps : {style: collapseStyle};\n\n if (collapsed && orientation !== 'vertical') {\n tabListProps['aria-hidden'] = true;\n }\n\n let tabListclassName = classNames(styles, 'spectrum-TabsPanel-tabs');\n const tabContent = (\n <div\n {...stylePropsFinal}\n {...tabListProps}\n ref={tablistRef}\n className={classNames(\n styles,\n 'spectrum-Tabs',\n `spectrum-Tabs--${orientation}`,\n tabListclassName,\n {\n 'spectrum-Tabs--quiet': isQuiet,\n 'spectrum-Tabs--emphasized': isEmphasized,\n ['spectrum-Tabs--compact']: density === 'compact'\n },\n orientation === 'vertical' && styleProps.className\n )\n }>\n {[...state.collection].map((item) => (\n <Tab key={item.key} item={item} state={state} orientation={orientation} />\n ))}\n <TabLine orientation={orientation} selectedTab={selectedTab} />\n </div>\n );\n\n\n if (orientation === 'vertical') {\n return tabContent;\n } else {\n return (\n <div\n {...styleProps}\n ref={wrapperRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel-collapseWrapper',\n styleProps.className\n )}>\n <TabPicker {...props} {...tabProps} visible={collapsed} id={tabPanelProps['aria-labelledby']} state={state} className={tabListclassName} />\n {tabContent}\n </div>\n );\n }\n}\n\n/**\n * TabPanels is used within Tabs as a container for the content of each tab.\n * The keys of the items within the <TabPanels> must match up with a corresponding item inside the <TabList>.\n */\nexport function TabPanels<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabProps} = useContext(TabContext);\n const {tabListState} = tabState;\n\n const factory = nodes => new ListCollection(nodes);\n const collection = useCollection({items: tabProps.items, ...props}, factory, {suppressTextValueWarning: true});\n const selectedItem = tabListState ? collection.getItem(tabListState.selectedKey) : null;\n\n return (\n <TabPanel {...props} key={tabListState?.selectedKey}>\n {selectedItem && selectedItem.props.children}\n </TabPanel>\n );\n}\n\n// @private\nfunction TabPanel<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabPanelProps: ctxTabPanelProps} = useContext(TabContext);\n const {tabListState} = tabState;\n let ref = useRef();\n const {tabPanelProps} = useTabPanel(props, tabListState, ref);\n let {styleProps} = useStyleProps(props);\n\n if (ctxTabPanelProps['aria-labelledby']) {\n tabPanelProps['aria-labelledby'] = ctxTabPanelProps['aria-labelledby'];\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div {...styleProps} {...tabPanelProps} ref={ref} className={classNames(styles, 'spectrum-TabsPanel-tabpanel', styleProps.className)}>\n {props.children}\n </div>\n </FocusRing>\n );\n}\n\ninterface TabPickerProps<T> extends Omit<SpectrumPickerProps<T>, 'children'> {\n density?: 'compact' | 'regular',\n isEmphasized?: boolean,\n state: TabListState<T>,\n className?: string,\n visible: boolean\n}\n\nfunction TabPicker<T>(props: TabPickerProps<T>) {\n let {\n isDisabled,\n isEmphasized,\n isQuiet,\n state,\n 'aria-labelledby': ariaLabeledBy,\n 'aria-label': ariaLabel,\n density,\n className,\n id,\n visible\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 const style : React.CSSProperties = visible ? {} : {visibility: 'hidden', position: 'absolute'};\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 'spectrum-Tabs--emphasized': isEmphasized\n },\n className\n )}\n style={style}\n aria-hidden={visible ? undefined : true}>\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={!visible || 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","/*\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"],"names":[],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -187,18 +187,15 @@ function $65ab70ddbed1564b$var$Tabs(props, ref) {
187
187
  }
188
188
  // @private
189
189
  function $65ab70ddbed1564b$var$Tab(props) {
190
- let { item: item , state: state , isDisabled: propsDisabled } = props;
190
+ let { item: item , state: state } = props;
191
191
  let { key: key , rendered: rendered } = item;
192
- let isDisabled = propsDisabled || state.disabledKeys.has(key);
193
192
  let ref = $cLzzU$useRef();
194
- let { tabProps: tabProps } = $cLzzU$useTab({
195
- key: key,
196
- isDisabled: isDisabled
193
+ let { tabProps: tabProps , isSelected: isSelected , isDisabled: isDisabled } = $cLzzU$useTab({
194
+ key: key
197
195
  }, state, ref);
198
196
  let { hoverProps: hoverProps , isHovered: isHovered } = $cLzzU$useHover({
199
197
  ...props
200
198
  });
201
- let isSelected = state.selectedKey === key;
202
199
  let domProps = $cLzzU$filterDOMProps(item.props);
203
200
  delete domProps.id;
204
201
  return(/*#__PURE__*/ $cLzzU$react.createElement($cLzzU$FocusRing, {
@@ -266,7 +263,7 @@ function $65ab70ddbed1564b$var$TabLine(props) {
266
263
  function $65ab70ddbed1564b$export$e51a686c67fdaa2d(props) {
267
264
  const tabContext = $cLzzU$useContext($65ab70ddbed1564b$var$TabContext);
268
265
  const { refs: refs , tabState: tabState , tabProps: tabProps , tabPanelProps: tabPanelProps } = tabContext;
269
- const { isQuiet: isQuiet , density: density , isDisabled: isDisabled , isEmphasized: isEmphasized , orientation: orientation } = tabProps;
266
+ const { isQuiet: isQuiet , density: density , isEmphasized: isEmphasized , orientation: orientation } = tabProps;
270
267
  const { selectedTab: selectedTab , collapsed: collapsed , setTabListState: setTabListState } = tabState;
271
268
  const { tablistRef: tablistRef , wrapperRef: wrapperRef } = refs;
272
269
  // Pass original Tab props but override children to create the collection.
@@ -317,7 +314,6 @@ function $65ab70ddbed1564b$export$e51a686c67fdaa2d(props) {
317
314
  key: item.key,
318
315
  item: item,
319
316
  state: state,
320
- isDisabled: isDisabled,
321
317
  orientation: orientation
322
318
  })
323
319
  ), /*#__PURE__*/ $cLzzU$react.createElement($65ab70ddbed1564b$var$TabLine, {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/tabs/src/index.ts","packages/@react-spectrum/tabs/src/Tabs.tsx","packages/@adobe/spectrum-css-temp/components/tabs/vars.css"],"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';\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} from '@react-spectrum/utils';\nimport {DOMProps, DOMRef, Node, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Item, Picker} from '@react-spectrum/picker';\nimport {ListCollection, SingleSelectListState} from '@react-stately/list';\nimport {mergeProps, useId, useLayoutEffect} from '@react-aria/utils';\nimport React, {Key, MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState} from 'react';\nimport {SpectrumPickerProps} from '@react-types/select';\nimport {SpectrumTabListProps, SpectrumTabPanelsProps, SpectrumTabsProps} from '@react-types/tabs';\nimport styles from '@adobe/spectrum-css-temp/components/tabs/vars.css';\nimport {TabListState, useTabListState} from '@react-stately/tabs';\nimport {Text} from '@react-spectrum/text';\nimport {useCollection} from '@react-stately/collections';\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, useTabList, useTabPanel} from '@react-aria/tabs';\n\ninterface TabsContext<T> {\n tabProps: SpectrumTabsProps<T>,\n tabState: {\n tabListState: TabListState<T>,\n setTabListState: (state: TabListState<T>) => void,\n selectedTab: HTMLElement,\n collapsed: boolean\n },\n refs: {\n wrapperRef: MutableRefObject<HTMLDivElement>,\n tablistRef: MutableRefObject<HTMLDivElement>\n },\n tabPanelProps: {\n 'aria-labelledby': string\n }\n}\n\nconst TabContext = React.createContext<TabsContext<any>>(null);\n\nfunction Tabs<T extends object>(props: SpectrumTabsProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n orientation = 'horizontal' as Orientation,\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\n let {direction} = useLocale();\n let {styleProps} = useStyleProps(otherProps);\n let [collapsed, setCollapsed] = useState(false);\n let [selectedTab, setSelectedTab] = useState<HTMLElement>();\n const [tabListState, setTabListState] = useState<TabListState<T>>(null);\n\n useEffect(() => {\n if (tablistRef.current) {\n let selectedTab: HTMLElement = tablistRef.current.querySelector(`[data-key=\"${tabListState?.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, tabListState?.selectedKey, collapsed, tablistRef]);\n\n let checkShouldCollapse = useCallback(() => {\n if (wrapperRef.current && orientation !== 'vertical') {\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 setCollapsed(shouldCollapse);\n }\n }, [tablistRef, wrapperRef, direction, orientation, setCollapsed]);\n\n useEffect(() => {\n checkShouldCollapse();\n }, [children, checkShouldCollapse]);\n\n useResizeObserver({ref: wrapperRef, onResize: checkShouldCollapse});\n\n let tabPanelProps = {\n 'aria-labelledby': undefined\n };\n\n // When the tabs are collapsed, the tabPanel should be labelled by the Picker button element.\n let collapsibleTabListId = useId();\n if (collapsed && orientation !== 'vertical') {\n tabPanelProps['aria-labelledby'] = collapsibleTabListId;\n }\n return (\n <TabContext.Provider\n value={{\n tabProps: {...props, orientation, density},\n tabState: {tabListState, setTabListState, selectedTab, collapsed},\n refs: {tablistRef, wrapperRef},\n tabPanelProps\n }}>\n <div\n {...filterDOMProps(otherProps)}\n {...styleProps}\n ref={domRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel',\n `spectrum-TabsPanel--${orientation}`,\n styleProps.className\n )}>\n {props.children}\n </div>\n </TabContext.Provider>\n );\n}\n\ninterface TabProps<T> extends DOMProps {\n item: Node<T>,\n state: SingleSelectListState<T>,\n isDisabled?: boolean,\n orientation?: Orientation\n}\n\n// @private\nfunction 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({key, isDisabled}, state, ref);\n\n let {hoverProps, isHovered} = useHover({\n ...props\n });\n let isSelected = state.selectedKey === key;\n let domProps = filterDOMProps(item.props);\n delete domProps.id;\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(tabProps, hoverProps, domProps)}\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\n// @private\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 {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}px)`\n : `translateX(${offset}px)`;\n\n if (orientation === 'horizontal') {\n styleObj.width = `${selectedTab.offsetWidth}px`;\n } else {\n styleObj.height = `${selectedTab.offsetHeight}px`;\n }\n setStyle(styleObj);\n }\n\n }, [direction, setStyle, selectedTab, orientation, scale, selectedKey]);\n\n return <div className={classNames(styles, 'spectrum-Tabs-selectionIndicator')} role=\"presentation\" style={style} />;\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The keys of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nexport function TabList<T>(props: SpectrumTabListProps<T>) {\n const tabContext = useContext(TabContext);\n const {refs, tabState, tabProps, tabPanelProps} = tabContext;\n const {isQuiet, density, isDisabled, isEmphasized, orientation} = tabProps;\n const {selectedTab, collapsed, setTabListState} = tabState;\n const {tablistRef, wrapperRef} = refs;\n // Pass original Tab props but override children to create the collection.\n const state = useTabListState({...tabProps, children: props.children});\n\n let {styleProps} = useStyleProps(props);\n const {tabListProps} = useTabList({...tabProps, ...props}, state, tablistRef);\n\n useEffect(() => {\n // Passing back to root as useTabPanel needs the TabListState\n setTabListState(state);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.disabledKeys, state.selectedItem, state.selectedKey, props.children]);\n\n let collapseStyle : React.CSSProperties = collapsed && orientation !== 'vertical' ? {maxWidth: 'calc(100% + 1px)', overflow: 'hidden', visibility: 'hidden', position: 'absolute'} : {maxWidth: 'calc(100% + 1px)'};\n let stylePropsFinal = orientation === 'vertical' ? styleProps : {style: collapseStyle};\n\n if (collapsed && orientation !== 'vertical') {\n tabListProps['aria-hidden'] = true;\n }\n\n let tabListclassName = classNames(styles, 'spectrum-TabsPanel-tabs');\n const tabContent = (\n <div\n {...stylePropsFinal}\n {...tabListProps}\n ref={tablistRef}\n className={classNames(\n styles,\n 'spectrum-Tabs',\n `spectrum-Tabs--${orientation}`,\n tabListclassName,\n {\n 'spectrum-Tabs--quiet': isQuiet,\n 'spectrum-Tabs--emphasized': isEmphasized,\n ['spectrum-Tabs--compact']: density === 'compact'\n },\n orientation === 'vertical' && styleProps.className\n )\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\n if (orientation === 'vertical') {\n return tabContent;\n } else {\n return (\n <div\n {...styleProps}\n ref={wrapperRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel-collapseWrapper',\n styleProps.className\n )}>\n <TabPicker {...props} {...tabProps} visible={collapsed} id={tabPanelProps['aria-labelledby']} state={state} className={tabListclassName} />\n {tabContent}\n </div>\n );\n }\n}\n\n/**\n * TabPanels is used within Tabs as a container for the content of each tab.\n * The keys of the items within the <TabPanels> must match up with a corresponding item inside the <TabList>.\n */\nexport function TabPanels<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabProps} = useContext(TabContext);\n const {tabListState} = tabState;\n\n const factory = nodes => new ListCollection(nodes);\n const collection = useCollection({items: tabProps.items, ...props}, factory, {suppressTextValueWarning: true});\n const selectedItem = tabListState ? collection.getItem(tabListState.selectedKey) : null;\n\n return (\n <TabPanel {...props} key={tabListState?.selectedKey}>\n {selectedItem && selectedItem.props.children}\n </TabPanel>\n );\n}\n\n// @private\nfunction TabPanel<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabPanelProps: ctxTabPanelProps} = useContext(TabContext);\n const {tabListState} = tabState;\n let ref = useRef();\n const {tabPanelProps} = useTabPanel(props, tabListState, ref);\n let {styleProps} = useStyleProps(props);\n\n if (ctxTabPanelProps['aria-labelledby']) {\n tabPanelProps['aria-labelledby'] = ctxTabPanelProps['aria-labelledby'];\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div {...styleProps} {...tabPanelProps} ref={ref} className={classNames(styles, 'spectrum-TabsPanel-tabpanel', styleProps.className)}>\n {props.children}\n </div>\n </FocusRing>\n );\n}\n\ninterface TabPickerProps<T> extends Omit<SpectrumPickerProps<T>, 'children'> {\n density?: 'compact' | 'regular',\n isEmphasized?: boolean,\n state: SingleSelectListState<T>,\n className?: string,\n visible: boolean\n}\n\nfunction TabPicker<T>(props: TabPickerProps<T>) {\n let {\n isDisabled,\n isEmphasized,\n isQuiet,\n state,\n 'aria-labelledby': ariaLabeledBy,\n 'aria-label': ariaLabel,\n density,\n className,\n id,\n visible\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 const style : React.CSSProperties = visible ? {} : {visibility: 'hidden', position: 'absolute'};\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 'spectrum-Tabs--emphasized': isEmphasized\n },\n className\n )}\n style={style}\n aria-hidden={visible ? undefined : true}>\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={!visible || 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","/*\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"],"names":[],"version":3,"file":"module.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEAA,GAAoC;AACpC,GAAgD;AAChD,GAA8C;AAC9C,GAA+B;AAC/B,GAAoC;AACpC,GAA6B;AAC7B,GAAyC;AACzC,GAA+B;AAC/B,GAAkD;AAClD,GAA2C;AAC3C,GAAwC;AACxC,GAA4C;AAC5C,GAAsC;AACtC,GAAyC;AACzC,GAAoD;AACpD,GAAyC;AACzC,GAA6C;AAC7C,GAA4B;AAC5B,GAA2C;AAC3C,GAA4B;AAC5B,GAA6B;AApB7B,wCAAoC,GAAG,CAA2B;AAClE,yCAAgD,GAAG,CAAuC;AAC1F,yCAA8C,GAAG,CAAqC;AACtF,yCAA+B,GAAG,CAAsB;AACxD,yCAAoC,GAAG,CAA2B;AAClE,yCAA6B,GAAG,CAAoB;AACpD,yCAAyC,GAAG,CAAgC;AAC5E,yCAA+B,GAAG,CAAsB;AACxD,yCAAkD,GAAG,CAAyC;AAC9F,yCAA2C,GAAG,CAAkC;AAChF,yCAAwC,GAAG,CAA+B;AAC1E,yCAA4C,GAAG,CAAmC;AAClF,yCAAsC,GAAG,CAA6B;AACtE,yCAAyC,GAAG,CAAgC;AAC5E,yCAAoD,GAAG,CAA2C;AAClG,yCAAyC,GAAG,CAAgC;AAC5E,yCAA6C,GAAG,CAAoC;AACpF,yCAA4B,GAAG,CAAmB;AAClD,yCAA2C,GAAG,CAAkC;AAChF,yCAA4B,GAAG,CAAmB;AAClD,yCAA6B,GAAG,CAAoB;;;;;;;;;;;AD6BpD,KAAK,CAAC,gCAAU,iBAAG,YAAK,CAAC,aAAa,CAAmB,IAAI;SAEpD,0BAAI,CAAmB,KAA2B,EAAE,GAA2B,EAAE,CAAC;IACzF,KAAK,GAAG,uBAAgB,CAAC,KAAK;IAC9B,GAAG,CAAC,CAAC,cACH,WAAW,GAAG,CAAY,uBAC1B,OAAO,GAAG,CAAS,qBACnB,QAAQ,MACL,UAAU,CACf,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,MAAM,GAAG,gBAAS,CAAC,GAAG;IAC1B,GAAG,CAAC,UAAU,GAAG,aAAM;IACvB,GAAG,CAAC,UAAU,GAAG,aAAM;IAEvB,GAAG,CAAC,CAAC,YAAA,SAAS,EAAA,CAAC,GAAG,gBAAS;IAC3B,GAAG,CAAC,CAAC,aAAA,UAAU,EAAA,CAAC,GAAG,oBAAa,CAAC,UAAU;IAC3C,GAAG,EAAE,SAAS,EAAE,YAAY,IAAI,eAAQ,CAAC,KAAK;IAC9C,GAAG,EAAE,YAAW,EAAE,cAAc,IAAI,eAAQ;IAC5C,KAAK,EAAE,YAAY,EAAE,eAAe,IAAI,eAAQ,CAAkB,IAAI;IAEtE,gBAAS,KAAO,CAAC;QACf,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,GAAgB,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,aAAZ,YAAY,KAAZ,IAAI,CAAJ,CAAyB,GAAzB,IAAI,CAAJ,CAAyB,GAAzB,YAAY,CAAE,WAAW,CAAC,EAAE;YAE1G,EAAE,EAAE,WAAW,IAAI,IAAI,EACrB,cAAc,CAAC,WAAW;QAE9B,CAAC;IACD,EAAqF,AAArF,mFAAqF;IACvF,CAAC,EAAE,CAAC;QAAA,QAAQ;QAAE,YAAY,aAAZ,YAAY,KAAZ,IAAI,CAAJ,CAAyB,GAAzB,IAAI,CAAJ,CAAyB,GAAzB,YAAY,CAAE,WAAW;QAAE,SAAS;QAAE,UAAU;IAAA,CAAC;IAE/D,GAAG,CAAC,mBAAmB,GAAG,kBAAW,KAAO,CAAC;QAC3C,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,WAAW,KAAK,CAAU,WAAE,CAAC;YACrD,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO;YACtC,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAc;YAC7D,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAElC,GAAG,CAAC,GAAG,GAAG,SAAS,KAAK,CAAK,OAAG,CAAM,QAAG,CAAO;YAChD,GAAG,CAAC,cAAc,GAAG,aAAa,CAAC,qBAAqB,GAAG,GAAG;YAC9D,GAAG,CAAC,cAAc,GAAG,OAAO,aAAP,OAAO,KAAP,IAAI,CAAJ,CAA8B,GAA9B,IAAI,CAAJ,CAA8B,GAA9B,OAAO,CAAE,qBAAqB,GAAG,GAAG;YACzD,GAAG,CAAC,cAAc,GAAG,SAAS,KAAK,CAAK,OAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;YAC5G,YAAY,CAAC,cAAc;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC;QAAA,UAAU;QAAE,UAAU;QAAE,SAAS;QAAE,WAAW;QAAE,YAAY;IAAA,CAAC;IAEjE,gBAAS,KAAO,CAAC;QACf,mBAAmB;IACrB,CAAC,EAAE,CAAC;QAAA,QAAQ;QAAE,mBAAmB;IAAA,CAAC;IAElC,wBAAiB,CAAC,CAAC;QAAA,GAAG,EAAE,UAAU;QAAE,QAAQ,EAAE,mBAAmB;IAAA,CAAC;IAElE,GAAG,CAAC,aAAa,GAAG,CAAC;QACnB,CAAiB,kBAAE,SAAS;IAC9B,CAAC;IAED,EAA6F,AAA7F,2FAA6F;IAC7F,GAAG,CAAC,oBAAoB,GAAG,YAAK;IAChC,EAAE,EAAE,SAAS,IAAI,WAAW,KAAK,CAAU,WACzC,aAAa,CAAC,CAAiB,oBAAI,oBAAoB;IAEzD,MAAM,0CACH,gCAAU,CAAC,QAAQ;QAClB,KAAK,EAAE,CAAC;YACN,QAAQ,EAAE,CAAC;mBAAG,KAAK;6BAAE,WAAW;yBAAE,OAAO;YAAA,CAAC;YAC1C,QAAQ,EAAE,CAAC;8BAAA,YAAY;iCAAE,eAAe;6BAAE,YAAW;2BAAE,SAAS;YAAA,CAAC;YACjE,IAAI,EAAE,CAAC;4BAAA,UAAU;4BAAE,UAAU;YAAA,CAAC;2BAC9B,aAAa;QACf,CAAC;gDACA,CAAG;WACE,qBAAc,CAAC,UAAU;WACzB,UAAU;QACd,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,iBAAU,CACnB,gEAAM,EACN,CAAoB,sBACnB,oBAAoB,EAAE,WAAW,IAClC,UAAU,CAAC,SAAS;OAErB,KAAK,CAAC,QAAQ;AAIvB,CAAC;AASD,EAAW,AAAX,SAAW;SACF,yBAAG,CAAI,KAAkB,EAAE,CAAC;IACnC,GAAG,CAAC,CAAC,OAAA,IAAI,UAAE,KAAK,EAAA,CAAC,GAAG,KAAK;IACzB,GAAG,CAAC,CAAC,MAAA,GAAG,aAAE,QAAQ,EAAA,CAAC,GAAG,IAAI;IAE1B,GAAG,CAAC,GAAG,GAAG,aAAM;IAChB,GAAG,CAAC,CAAC,WAAA,QAAQ,eAAE,UAAU,eAAE,UAAU,EAAA,CAAC,GAAG,aAAM,CAAC,CAAC;aAAA,GAAG;IAAA,CAAC,EAAE,KAAK,EAAE,GAAG;IAEjE,GAAG,CAAC,CAAC,aAAA,UAAU,cAAE,SAAS,EAAA,CAAC,GAAG,eAAQ,CAAC,CAAC;WACnC,KAAK;IACV,CAAC;IACD,GAAG,CAAC,QAAQ,GAAG,qBAAc,CAAC,IAAI,CAAC,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,EAAE;IAElB,MAAM,0CACH,gBAAS;QAAC,cAAc,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAY;gDACvD,CAAG;WACE,iBAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ;QAC7C,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,iBAAU,CACnB,gEAAM,EACN,CAAoB,qBACpB,CAAC;YACC,CAAa,cAAE,UAAU;YACzB,CAAa,cAAE,UAAU;YACzB,CAAY,aAAE,SAAS;QACzB,CAAC;gDAEF,mBAAY;QACX,KAAK,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,CAAG;gBACT,gBAAgB,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAe;YACtD,CAAC;YACD,IAAI,EAAE,CAAC;gBACL,gBAAgB,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAyB;YAChE,CAAC;QACH,CAAC;OACA,MAAM,CAAC,QAAQ,KAAK,CAAQ,mDACxB,WAAI,QAAE,QAAQ,IACf,QAAQ;AAKtB,CAAC;AAQD,EAAW,AAAX,SAAW;SACF,6BAAO,CAAC,KAAmB,EAAE,CAAC;IACrC,GAAG,CAAC,CAAC,cACH,WAAW,gBACX,EAAwE,AAAxE,sEAAwE;IACxE,WAAW,gBACX,EAA4H,AAA5H,0HAA4H;IAC5H,WAAW,EACb,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,CAAC,YAAA,SAAS,EAAA,CAAC,GAAG,gBAAS;IAC3B,GAAG,CAAC,CAAC,QAAA,KAAK,EAAA,CAAC,GAAG,kBAAW;IAEzB,GAAG,EAAE,KAAK,EAAE,QAAQ,IAAI,eAAQ,CAAC,CAAC;QAChC,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;IACnB,CAAC;IAED,sBAAe,KAAO,CAAC;QACrB,EAAE,EAAE,WAAW,EAAE,CAAC;gBAGyB,GAAyC;YAFlF,GAAG,CAAC,QAAQ,GAAG,CAAC;gBAAA,SAAS,EAAE,SAAS;gBAAE,KAAK,EAAE,SAAS;gBAAE,MAAM,EAAE,SAAS;YAAA,CAAC;YAC1E,EAA8J,AAA9J,4JAA8J;YAC9J,GAAG,CAAC,MAAM,GAAG,SAAS,KAAK,CAAK,OAAG,EAAE,MAAI,GAAyC,GAAxC,WAAW,CAAC,YAAY,cAAzB,GAAyC,KAAzC,IAAI,CAAJ,CAAsD,GAAtD,IAAI,CAAJ,CAAsD,GAAtD,GAAyC,CAAE,WAAW,IAAG,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU;YAC5K,QAAQ,CAAC,SAAS,GAAG,WAAW,KAAK,CAAU,aAC1C,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,KACtC,WAAW,EAAE,MAAM,CAAC,GAAG;YAE5B,EAAE,EAAE,WAAW,KAAK,CAAY,aAC9B,QAAQ,CAAC,KAAK,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE;iBAE9C,QAAQ,CAAC,MAAM,MAAM,WAAW,CAAC,YAAY,CAAC,EAAE;YAElD,QAAQ,CAAC,QAAQ;QACnB,CAAC;IAEH,CAAC,EAAE,CAAC;QAAA,SAAS;QAAE,QAAQ;QAAE,WAAW;QAAE,WAAW;QAAE,KAAK;QAAE,WAAW;IAAA,CAAC;IAEtE,MAAM,0CAAE,CAAG;QAAC,SAAS,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAkC;QAAG,IAAI,EAAC,CAAc;QAAC,KAAK,EAAE,KAAK;;AACjH,CAAC;SAMe,yCAAO,CAAI,KAA8B,EAAE,CAAC;IAC1D,KAAK,CAAC,UAAU,GAAG,iBAAU,CAAC,gCAAU;IACxC,KAAK,CAAC,CAAC,OAAA,IAAI,aAAE,QAAQ,aAAE,QAAQ,kBAAE,aAAa,EAAA,CAAC,GAAG,UAAU;IAC5D,KAAK,CAAC,CAAC,UAAA,OAAO,YAAE,OAAO,iBAAE,YAAY,gBAAE,WAAW,EAAA,CAAC,GAAG,QAAQ;IAC9D,KAAK,CAAC,CAAC,cAAA,WAAW,cAAE,SAAS,oBAAE,eAAe,EAAA,CAAC,GAAG,QAAQ;IAC1D,KAAK,CAAC,CAAC,aAAA,UAAU,eAAE,UAAU,EAAA,CAAC,GAAG,IAAI;IACrC,EAA0E,AAA1E,wEAA0E;IAC1E,KAAK,CAAC,KAAK,GAAG,sBAAe,CAAC,CAAC;WAAG,QAAQ;QAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAAA,CAAC;IAErE,GAAG,CAAC,CAAC,aAAA,UAAU,EAAA,CAAC,GAAG,oBAAa,CAAC,KAAK;IACtC,KAAK,CAAC,CAAC,eAAA,YAAY,EAAA,CAAC,GAAG,iBAAU,CAAC,CAAC;WAAG,QAAQ;WAAK,KAAK;IAAA,CAAC,EAAE,KAAK,EAAE,UAAU;IAE5E,gBAAS,KAAO,CAAC;QACf,EAA6D,AAA7D,2DAA6D;QAC7D,eAAe,CAAC,KAAK;IACrB,EAAuD,AAAvD,qDAAuD;IACzD,CAAC,EAAE,CAAC;QAAA,KAAK,CAAC,YAAY;QAAE,KAAK,CAAC,YAAY;QAAE,KAAK,CAAC,WAAW;QAAE,KAAK,CAAC,QAAQ;IAAA,CAAC;IAE9E,GAAG,CAAC,aAAa,GAAyB,SAAS,IAAI,WAAW,KAAK,CAAU,YAAG,CAAC;QAAA,QAAQ,EAAE,CAAkB;QAAE,QAAQ,EAAE,CAAQ;QAAE,UAAU,EAAE,CAAQ;QAAE,QAAQ,EAAE,CAAU;IAAA,CAAC,GAAG,CAAC;QAAA,QAAQ,EAAE,CAAkB;IAAA,CAAC;IACnN,GAAG,CAAC,eAAe,GAAG,WAAW,KAAK,CAAU,YAAG,UAAU,GAAG,CAAC;QAAA,KAAK,EAAE,aAAa;IAAA,CAAC;IAEtF,EAAE,EAAE,SAAS,IAAI,WAAW,KAAK,CAAU,WACzC,YAAY,CAAC,CAAa,gBAAI,IAAI;IAGpC,GAAG,CAAC,gBAAgB,GAAG,iBAAU,CAAC,gEAAM,EAAE,CAAyB;IACnE,KAAK,CAAC,UAAU,4CACb,CAAG;WACE,eAAe;WACf,YAAY;QAChB,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,iBAAU,CACnB,gEAAM,EACN,CAAe,iBACd,eAAe,EAAE,WAAW,IAC7B,gBAAgB,EAChB,CAAC;YACC,CAAsB,uBAAE,OAAO;YAC/B,CAA2B,4BAAE,YAAY;aACxC,CAAwB,0BAAG,OAAO,KAAK,CAAS;QACnD,CAAC,EACD,WAAW,KAAK,CAAU,aAAI,UAAU,CAAC,SAAS;OAGnD,CAAC;WAAG,KAAK,CAAC,UAAU;IAAA,CAAC,CAAC,GAAG,EAAE,IAAI,4CAC7B,yBAAG;YAAC,GAAG,EAAE,IAAI,CAAC,GAAG;YAAE,IAAI,EAAE,IAAI;YAAE,KAAK,EAAE,KAAK;YAAE,WAAW,EAAE,WAAW;;gDAEvE,6BAAO;QAAC,WAAW,EAAE,WAAW;QAAE,WAAW,EAAE,WAAW;;IAK/D,EAAE,EAAE,WAAW,KAAK,CAAU,WAC5B,MAAM,CAAC,UAAU;SAEjB,MAAM,0CACH,CAAG;WACE,UAAU;QACd,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,iBAAU,CACnB,gEAAM,EACN,CAAoC,qCACpC,UAAU,CAAC,SAAS;gDAErB,+BAAS;WAAK,KAAK;WAAM,QAAQ;QAAE,OAAO,EAAE,SAAS;QAAE,EAAE,EAAE,aAAa,CAAC,CAAiB;QAAG,KAAK,EAAE,KAAK;QAAE,SAAS,EAAE,gBAAgB;QACtI,UAAU;AAInB,CAAC;SAMe,yCAAS,CAAI,KAAgC,EAAE,CAAC;IAC9D,KAAK,CAAC,CAAC,WAAA,QAAQ,aAAE,QAAQ,EAAA,CAAC,GAAG,iBAAU,CAAC,gCAAU;IAClD,KAAK,CAAC,CAAC,eAAA,YAAY,EAAA,CAAC,GAAG,QAAQ;IAE/B,KAAK,CAAC,OAAO,IAAG,KAAK,GAAI,GAAG,CAAC,qBAAc,CAAC,KAAK;;IACjD,KAAK,CAAC,UAAU,GAAG,oBAAa,CAAC,CAAC;QAAA,KAAK,EAAE,QAAQ,CAAC,KAAK;WAAK,KAAK;IAAA,CAAC,EAAE,OAAO,EAAE,CAAC;QAAA,wBAAwB,EAAE,IAAI;IAAA,CAAC;IAC7G,KAAK,CAAC,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,IAAI,IAAI;IAEvF,MAAM,0CACH,8BAAQ;WAAK,KAAK;QAAE,GAAG,EAAE,YAAY,aAAZ,YAAY,KAAZ,IAAI,CAAJ,CAAyB,GAAzB,IAAI,CAAJ,CAAyB,GAAzB,YAAY,CAAE,WAAW;OAChD,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ;AAGlD,CAAC;AAED,EAAW,AAAX,SAAW;SACF,8BAAQ,CAAI,KAAgC,EAAE,CAAC;IACtD,KAAK,CAAC,CAAC,WAAA,QAAQ,GAAE,aAAa,EAAE,gBAAgB,EAAA,CAAC,GAAG,iBAAU,CAAC,gCAAU;IACzE,KAAK,CAAC,CAAC,eAAA,YAAY,EAAA,CAAC,GAAG,QAAQ;IAC/B,GAAG,CAAC,GAAG,GAAG,aAAM;IAChB,KAAK,CAAC,CAAC,gBAAA,aAAa,EAAA,CAAC,GAAG,kBAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;IAC5D,GAAG,CAAC,CAAC,aAAA,UAAU,EAAA,CAAC,GAAG,oBAAa,CAAC,KAAK;IAEtC,EAAE,EAAE,gBAAgB,CAAC,CAAiB,mBACpC,aAAa,CAAC,CAAiB,oBAAI,gBAAgB,CAAC,CAAiB;IAGvE,MAAM,0CACH,gBAAS;QAAC,cAAc,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAY;gDACvD,CAAG;WAAK,UAAU;WAAM,aAAa;QAAE,GAAG,EAAE,GAAG;QAAE,SAAS,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAA6B,8BAAE,UAAU,CAAC,SAAS;OAChI,KAAK,CAAC,QAAQ;AAIvB,CAAC;SAUQ,+BAAS,CAAI,KAAwB,EAAE,CAAC;IAC/C,GAAG,CAAC,CAAC,aACH,UAAU,iBACV,YAAY,YACZ,OAAO,UACP,KAAK,GACL,CAAiB,kBAAE,aAAa,GAChC,CAAY,aAAE,SAAS,YACvB,OAAO,cACP,SAAS,OACT,EAAE,YACF,OAAO,EACT,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,GAAG,GAAG,aAAM;IAChB,GAAG,EAAE,UAAU,EAAE,aAAa,IAAI,eAAQ,CAAC,IAAI;IAE/C,gBAAS,KAAO,CAAC;QACf,GAAG,CAAC,IAAI,GAAG,mBAAY,CAAC,GAAG;QAC3B,aAAa,CAAC,IAAI,CAAC,OAAO;IAC5B,CAAC,EAAE,CAAC;QAAA,GAAG;IAAA,CAAC;IAER,GAAG,CAAC,KAAK,GAAG,CAAC;WAAG,KAAK,CAAC,UAAU;IAAA,CAAC,CAAC,GAAG,EAAE,IAAI,IAAM,CAAC;YAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,GAAG;QACd,CAAC;;IAED,GAAG,CAAC,WAAW,GAAG,CAAC;QACjB,CAAiB,kBAAE,aAAa;QAChC,CAAY,aAAE,SAAS;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,GAAyB,OAAO,GAAG,CAAC;IAAA,CAAC,GAAG,CAAC;QAAA,UAAU,EAAE,CAAQ;QAAE,QAAQ,EAAE,CAAU;IAAA,CAAC;IAE/F,EAAiF,AAAjF,+EAAiF;IACjF,MAAM,0CACH,CAAG;QACF,SAAS,EAAE,iBAAU,CACnB,gEAAM,EACN,CAAe,gBACf,CAA2B,4BAC3B,CAA4B,6BAC5B,CAAC;YACC,CAAsB,uBAAE,OAAO;aAC9B,CAAwB,0BAAG,OAAO,KAAK,CAAS;YACjD,CAA2B,4BAAE,YAAY;QAC3C,CAAC,EACD,SAAS;QAEX,KAAK,EAAE,KAAK;QACZ,CAAW,cAAE,OAAO,GAAG,SAAS,GAAG,IAAI;gDACtC,mBAAY;QACX,KAAK,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;gBACL,IAAI,EAAE,CAAG;gBACT,gBAAgB,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAe;YACtD,CAAC;YACD,MAAM,EAAE,CAAC;gBACP,cAAc,EAAE,iBAAU,CAAC,gEAAM,EAAE,CAAY;YACjD,CAAC;QACH,CAAC;gDACA,aAAM;WACD,WAAW;QACf,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,GAAG;QACR,OAAO,EAAP,IAAO;QACP,UAAU,GAAG,OAAO,IAAI,UAAU;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,iBAAiB,EAAE,KAAK,CAAC,cAAc;QACtC,IAAI,4CAAK,WAAI;YAAC,SAAS,EAAE,IAAI,CAAC,SAAS;WAAG,IAAI,CAAC,QAAQ;OAEzD,UAAU,6CAAK,6BAAO;QAAC,WAAW,EAAC,CAAY;QAAC,WAAW,EAAE,UAAU;QAAE,WAAW,EAAE,KAAK,CAAC,WAAW;;AAIhH,CAAC;AAED,EAEG,AAFH;;CAEG,AAFH,EAEG,CACH,EAAwF,AAAxF,sFAAwF;AACxF,EAA2G,AAA3G,yGAA2G;AAC3G,KAAK,CAAC,yCAAK,iBAAG,YAAK,CAAC,UAAU,CAAC,0BAAI","sources":["packages/@react-spectrum/tabs/src/index.ts","packages/@react-spectrum/tabs/src/Tabs.tsx","packages/@adobe/spectrum-css-temp/components/tabs/vars.css"],"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","/*\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} from '@react-spectrum/utils';\nimport {DOMProps, DOMRef, Node, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Item, Picker} from '@react-spectrum/picker';\nimport {ListCollection} from '@react-stately/list';\nimport {mergeProps, useId, useLayoutEffect} from '@react-aria/utils';\nimport React, {Key, MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState} from 'react';\nimport {SpectrumPickerProps} from '@react-types/select';\nimport {SpectrumTabListProps, SpectrumTabPanelsProps, SpectrumTabsProps} from '@react-types/tabs';\nimport styles from '@adobe/spectrum-css-temp/components/tabs/vars.css';\nimport {TabListState, useTabListState} from '@react-stately/tabs';\nimport {Text} from '@react-spectrum/text';\nimport {useCollection} from '@react-stately/collections';\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, useTabList, useTabPanel} from '@react-aria/tabs';\n\ninterface TabsContext<T> {\n tabProps: SpectrumTabsProps<T>,\n tabState: {\n tabListState: TabListState<T>,\n setTabListState: (state: TabListState<T>) => void,\n selectedTab: HTMLElement,\n collapsed: boolean\n },\n refs: {\n wrapperRef: MutableRefObject<HTMLDivElement>,\n tablistRef: MutableRefObject<HTMLDivElement>\n },\n tabPanelProps: {\n 'aria-labelledby': string\n }\n}\n\nconst TabContext = React.createContext<TabsContext<any>>(null);\n\nfunction Tabs<T extends object>(props: SpectrumTabsProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n orientation = 'horizontal' as Orientation,\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\n let {direction} = useLocale();\n let {styleProps} = useStyleProps(otherProps);\n let [collapsed, setCollapsed] = useState(false);\n let [selectedTab, setSelectedTab] = useState<HTMLElement>();\n const [tabListState, setTabListState] = useState<TabListState<T>>(null);\n\n useEffect(() => {\n if (tablistRef.current) {\n let selectedTab: HTMLElement = tablistRef.current.querySelector(`[data-key=\"${tabListState?.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, tabListState?.selectedKey, collapsed, tablistRef]);\n\n let checkShouldCollapse = useCallback(() => {\n if (wrapperRef.current && orientation !== 'vertical') {\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 setCollapsed(shouldCollapse);\n }\n }, [tablistRef, wrapperRef, direction, orientation, setCollapsed]);\n\n useEffect(() => {\n checkShouldCollapse();\n }, [children, checkShouldCollapse]);\n\n useResizeObserver({ref: wrapperRef, onResize: checkShouldCollapse});\n\n let tabPanelProps = {\n 'aria-labelledby': undefined\n };\n\n // When the tabs are collapsed, the tabPanel should be labelled by the Picker button element.\n let collapsibleTabListId = useId();\n if (collapsed && orientation !== 'vertical') {\n tabPanelProps['aria-labelledby'] = collapsibleTabListId;\n }\n return (\n <TabContext.Provider\n value={{\n tabProps: {...props, orientation, density},\n tabState: {tabListState, setTabListState, selectedTab, collapsed},\n refs: {tablistRef, wrapperRef},\n tabPanelProps\n }}>\n <div\n {...filterDOMProps(otherProps)}\n {...styleProps}\n ref={domRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel',\n `spectrum-TabsPanel--${orientation}`,\n styleProps.className\n )}>\n {props.children}\n </div>\n </TabContext.Provider>\n );\n}\n\ninterface TabProps<T> extends DOMProps {\n item: Node<T>,\n state: TabListState<T>,\n isDisabled?: boolean,\n orientation?: Orientation\n}\n\n// @private\nfunction Tab<T>(props: TabProps<T>) {\n let {item, state} = props;\n let {key, rendered} = item;\n\n let ref = useRef<HTMLDivElement>();\n let {tabProps, isSelected, isDisabled} = useTab({key}, state, ref);\n\n let {hoverProps, isHovered} = useHover({\n ...props\n });\n let domProps = filterDOMProps(item.props);\n delete domProps.id;\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(tabProps, hoverProps, domProps)}\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\n// @private\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 {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}px)`\n : `translateX(${offset}px)`;\n\n if (orientation === 'horizontal') {\n styleObj.width = `${selectedTab.offsetWidth}px`;\n } else {\n styleObj.height = `${selectedTab.offsetHeight}px`;\n }\n setStyle(styleObj);\n }\n\n }, [direction, setStyle, selectedTab, orientation, scale, selectedKey]);\n\n return <div className={classNames(styles, 'spectrum-Tabs-selectionIndicator')} role=\"presentation\" style={style} />;\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The keys of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nexport function TabList<T>(props: SpectrumTabListProps<T>) {\n const tabContext = useContext(TabContext);\n const {refs, tabState, tabProps, tabPanelProps} = tabContext;\n const {isQuiet, density, isEmphasized, orientation} = tabProps;\n const {selectedTab, collapsed, setTabListState} = tabState;\n const {tablistRef, wrapperRef} = refs;\n // Pass original Tab props but override children to create the collection.\n const state = useTabListState({...tabProps, children: props.children});\n\n let {styleProps} = useStyleProps(props);\n const {tabListProps} = useTabList({...tabProps, ...props}, state, tablistRef);\n\n useEffect(() => {\n // Passing back to root as useTabPanel needs the TabListState\n setTabListState(state);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.disabledKeys, state.selectedItem, state.selectedKey, props.children]);\n\n let collapseStyle : React.CSSProperties = collapsed && orientation !== 'vertical' ? {maxWidth: 'calc(100% + 1px)', overflow: 'hidden', visibility: 'hidden', position: 'absolute'} : {maxWidth: 'calc(100% + 1px)'};\n let stylePropsFinal = orientation === 'vertical' ? styleProps : {style: collapseStyle};\n\n if (collapsed && orientation !== 'vertical') {\n tabListProps['aria-hidden'] = true;\n }\n\n let tabListclassName = classNames(styles, 'spectrum-TabsPanel-tabs');\n const tabContent = (\n <div\n {...stylePropsFinal}\n {...tabListProps}\n ref={tablistRef}\n className={classNames(\n styles,\n 'spectrum-Tabs',\n `spectrum-Tabs--${orientation}`,\n tabListclassName,\n {\n 'spectrum-Tabs--quiet': isQuiet,\n 'spectrum-Tabs--emphasized': isEmphasized,\n ['spectrum-Tabs--compact']: density === 'compact'\n },\n orientation === 'vertical' && styleProps.className\n )\n }>\n {[...state.collection].map((item) => (\n <Tab key={item.key} item={item} state={state} orientation={orientation} />\n ))}\n <TabLine orientation={orientation} selectedTab={selectedTab} />\n </div>\n );\n\n\n if (orientation === 'vertical') {\n return tabContent;\n } else {\n return (\n <div\n {...styleProps}\n ref={wrapperRef}\n className={classNames(\n styles,\n 'spectrum-TabsPanel-collapseWrapper',\n styleProps.className\n )}>\n <TabPicker {...props} {...tabProps} visible={collapsed} id={tabPanelProps['aria-labelledby']} state={state} className={tabListclassName} />\n {tabContent}\n </div>\n );\n }\n}\n\n/**\n * TabPanels is used within Tabs as a container for the content of each tab.\n * The keys of the items within the <TabPanels> must match up with a corresponding item inside the <TabList>.\n */\nexport function TabPanels<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabProps} = useContext(TabContext);\n const {tabListState} = tabState;\n\n const factory = nodes => new ListCollection(nodes);\n const collection = useCollection({items: tabProps.items, ...props}, factory, {suppressTextValueWarning: true});\n const selectedItem = tabListState ? collection.getItem(tabListState.selectedKey) : null;\n\n return (\n <TabPanel {...props} key={tabListState?.selectedKey}>\n {selectedItem && selectedItem.props.children}\n </TabPanel>\n );\n}\n\n// @private\nfunction TabPanel<T>(props: SpectrumTabPanelsProps<T>) {\n const {tabState, tabPanelProps: ctxTabPanelProps} = useContext(TabContext);\n const {tabListState} = tabState;\n let ref = useRef();\n const {tabPanelProps} = useTabPanel(props, tabListState, ref);\n let {styleProps} = useStyleProps(props);\n\n if (ctxTabPanelProps['aria-labelledby']) {\n tabPanelProps['aria-labelledby'] = ctxTabPanelProps['aria-labelledby'];\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div {...styleProps} {...tabPanelProps} ref={ref} className={classNames(styles, 'spectrum-TabsPanel-tabpanel', styleProps.className)}>\n {props.children}\n </div>\n </FocusRing>\n );\n}\n\ninterface TabPickerProps<T> extends Omit<SpectrumPickerProps<T>, 'children'> {\n density?: 'compact' | 'regular',\n isEmphasized?: boolean,\n state: TabListState<T>,\n className?: string,\n visible: boolean\n}\n\nfunction TabPicker<T>(props: TabPickerProps<T>) {\n let {\n isDisabled,\n isEmphasized,\n isQuiet,\n state,\n 'aria-labelledby': ariaLabeledBy,\n 'aria-label': ariaLabel,\n density,\n className,\n id,\n visible\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 const style : React.CSSProperties = visible ? {} : {visibility: 'hidden', position: 'absolute'};\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 'spectrum-Tabs--emphasized': isEmphasized\n },\n className\n )}\n style={style}\n aria-hidden={visible ? undefined : true}>\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={!visible || 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","/*\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"],"names":[],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -18,5 +18,6 @@ export const Tabs: <T>(props: SpectrumTabsProps<T> & {
18
18
  ref?: DOMRef<HTMLDivElement>;
19
19
  }) => ReactElement;
20
20
  export { Item } from '@react-stately/collections';
21
+ export type { SpectrumTabsProps, SpectrumTabListProps, SpectrumTabPanelsProps } from '@react-types/tabs';
21
22
 
22
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"mappings":";;;AA4OA;;;GAGG;AACH,wBAAwB,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,eAqExD;AAED;;;GAGG;AACH,0BAA0B,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,eAa5D;AA+GD;;GAEG;AAGH,OAAA,MAAM;UAA2E,OAAO,cAAc,CAAC;MAAM,YAAY,CAAC;AC7a1H,OAAO,EAAC,IAAI,EAAC,MAAM,4BAA4B,CAAC","sources":["packages/@react-spectrum/tabs/src/packages/@react-spectrum/tabs/src/Tabs.tsx","packages/@react-spectrum/tabs/src/packages/@react-spectrum/tabs/src/index.ts","packages/@react-spectrum/tabs/src/index.ts"],"sourcesContent":[null,null,"/*\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';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":";;;AA0OA;;;GAGG;AACH,wBAAwB,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,eAqExD;AAED;;;GAGG;AACH,0BAA0B,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,eAa5D;AA+GD;;GAEG;AAGH,OAAA,MAAM;UAA2E,OAAO,cAAc,CAAC;MAAM,YAAY,CAAC;AC3a1H,OAAO,EAAC,IAAI,EAAC,MAAM,4BAA4B,CAAC;AAChD,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC","sources":["packages/@react-spectrum/tabs/src/packages/@react-spectrum/tabs/src/Tabs.tsx","packages/@react-spectrum/tabs/src/packages/@react-spectrum/tabs/src/index.ts","packages/@react-spectrum/tabs/src/index.ts"],"sourcesContent":[null,null,"/*\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":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/tabs",
3
- "version": "3.2.2-nightly.3368+bc1e8f829",
3
+ "version": "3.2.2-nightly.3378+94b384518",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -32,26 +32,26 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.6.2",
35
- "@react-aria/focus": "3.0.0-nightly.1668+bc1e8f829",
36
- "@react-aria/i18n": "3.0.0-nightly.1668+bc1e8f829",
37
- "@react-aria/interactions": "3.0.0-nightly.1668+bc1e8f829",
38
- "@react-aria/tabs": "3.2.2-nightly.3368+bc1e8f829",
39
- "@react-aria/utils": "3.0.0-nightly.1668+bc1e8f829",
40
- "@react-spectrum/button": "3.0.0-nightly.1668+bc1e8f829",
41
- "@react-spectrum/menu": "3.7.2-nightly.3368+bc1e8f829",
42
- "@react-spectrum/picker": "3.6.2-nightly.3368+bc1e8f829",
43
- "@react-spectrum/text": "3.2.2-nightly.3368+bc1e8f829",
44
- "@react-spectrum/utils": "3.0.0-nightly.1668+bc1e8f829",
45
- "@react-stately/collections": "3.0.0-nightly.1668+bc1e8f829",
46
- "@react-stately/list": "3.5.2-nightly.3368+bc1e8f829",
47
- "@react-stately/tabs": "3.0.0-nightly.1668+bc1e8f829",
48
- "@react-types/select": "3.6.2-nightly.3368+bc1e8f829",
49
- "@react-types/shared": "3.0.0-nightly.1668+bc1e8f829",
50
- "@react-types/tabs": "3.1.2-nightly.3368+bc1e8f829",
51
- "@spectrum-icons/workflow": "3.0.0-nightly.1668+bc1e8f829"
35
+ "@react-aria/focus": "3.0.0-nightly.1678+94b384518",
36
+ "@react-aria/i18n": "3.0.0-nightly.1678+94b384518",
37
+ "@react-aria/interactions": "3.0.0-nightly.1678+94b384518",
38
+ "@react-aria/tabs": "3.2.2-nightly.3378+94b384518",
39
+ "@react-aria/utils": "3.0.0-nightly.1678+94b384518",
40
+ "@react-spectrum/button": "3.0.0-nightly.1678+94b384518",
41
+ "@react-spectrum/menu": "3.7.2-nightly.3378+94b384518",
42
+ "@react-spectrum/picker": "3.6.2-nightly.3378+94b384518",
43
+ "@react-spectrum/text": "3.2.2-nightly.3378+94b384518",
44
+ "@react-spectrum/utils": "3.0.0-nightly.1678+94b384518",
45
+ "@react-stately/collections": "3.0.0-nightly.1678+94b384518",
46
+ "@react-stately/list": "3.5.2-nightly.3378+94b384518",
47
+ "@react-stately/tabs": "3.0.0-nightly.1678+94b384518",
48
+ "@react-types/select": "3.6.2-nightly.3378+94b384518",
49
+ "@react-types/shared": "3.0.0-nightly.1678+94b384518",
50
+ "@react-types/tabs": "3.1.2-nightly.3378+94b384518",
51
+ "@spectrum-icons/workflow": "3.0.0-nightly.1678+94b384518"
52
52
  },
53
53
  "devDependencies": {
54
- "@adobe/spectrum-css-temp": "3.0.0-nightly.1668+bc1e8f829"
54
+ "@adobe/spectrum-css-temp": "3.0.0-nightly.1678+94b384518"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@react-spectrum/provider": "^3.0.0",
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "bc1e8f82922ee0e7d52602efa30ff76dbc4e4708"
64
+ "gitHead": "94b3845182bb0df861febcc8dea395f5d0c92e76"
65
65
  }
package/src/Tabs.tsx CHANGED
@@ -15,7 +15,7 @@ import {DOMProps, DOMRef, Node, Orientation} from '@react-types/shared';
15
15
  import {filterDOMProps} from '@react-aria/utils';
16
16
  import {FocusRing} from '@react-aria/focus';
17
17
  import {Item, Picker} from '@react-spectrum/picker';
18
- import {ListCollection, SingleSelectListState} from '@react-stately/list';
18
+ import {ListCollection} from '@react-stately/list';
19
19
  import {mergeProps, useId, useLayoutEffect} from '@react-aria/utils';
20
20
  import React, {Key, MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState} from 'react';
21
21
  import {SpectrumPickerProps} from '@react-types/select';
@@ -134,24 +134,22 @@ function Tabs<T extends object>(props: SpectrumTabsProps<T>, ref: DOMRef<HTMLDiv
134
134
 
135
135
  interface TabProps<T> extends DOMProps {
136
136
  item: Node<T>,
137
- state: SingleSelectListState<T>,
137
+ state: TabListState<T>,
138
138
  isDisabled?: boolean,
139
139
  orientation?: Orientation
140
140
  }
141
141
 
142
142
  // @private
143
143
  function Tab<T>(props: TabProps<T>) {
144
- let {item, state, isDisabled: propsDisabled} = props;
144
+ let {item, state} = props;
145
145
  let {key, rendered} = item;
146
- let isDisabled = propsDisabled || state.disabledKeys.has(key);
147
146
 
148
147
  let ref = useRef<HTMLDivElement>();
149
- let {tabProps} = useTab({key, isDisabled}, state, ref);
148
+ let {tabProps, isSelected, isDisabled} = useTab({key}, state, ref);
150
149
 
151
150
  let {hoverProps, isHovered} = useHover({
152
151
  ...props
153
152
  });
154
- let isSelected = state.selectedKey === key;
155
153
  let domProps = filterDOMProps(item.props);
156
154
  delete domProps.id;
157
155
 
@@ -241,7 +239,7 @@ function TabLine(props: TabLineProps) {
241
239
  export function TabList<T>(props: SpectrumTabListProps<T>) {
242
240
  const tabContext = useContext(TabContext);
243
241
  const {refs, tabState, tabProps, tabPanelProps} = tabContext;
244
- const {isQuiet, density, isDisabled, isEmphasized, orientation} = tabProps;
242
+ const {isQuiet, density, isEmphasized, orientation} = tabProps;
245
243
  const {selectedTab, collapsed, setTabListState} = tabState;
246
244
  const {tablistRef, wrapperRef} = refs;
247
245
  // Pass original Tab props but override children to create the collection.
@@ -283,7 +281,7 @@ export function TabList<T>(props: SpectrumTabListProps<T>) {
283
281
  )
284
282
  }>
285
283
  {[...state.collection].map((item) => (
286
- <Tab key={item.key} item={item} state={state} isDisabled={isDisabled} orientation={orientation} />
284
+ <Tab key={item.key} item={item} state={state} orientation={orientation} />
287
285
  ))}
288
286
  <TabLine orientation={orientation} selectedTab={selectedTab} />
289
287
  </div>
@@ -352,7 +350,7 @@ function TabPanel<T>(props: SpectrumTabPanelsProps<T>) {
352
350
  interface TabPickerProps<T> extends Omit<SpectrumPickerProps<T>, 'children'> {
353
351
  density?: 'compact' | 'regular',
354
352
  isEmphasized?: boolean,
355
- state: SingleSelectListState<T>,
353
+ state: TabListState<T>,
356
354
  className?: string,
357
355
  visible: boolean
358
356
  }
package/src/index.ts CHANGED
@@ -14,3 +14,4 @@
14
14
 
15
15
  export {TabList, TabPanels, Tabs} from './Tabs';
16
16
  export {Item} from '@react-stately/collections';
17
+ export type {SpectrumTabsProps, SpectrumTabListProps, SpectrumTabPanelsProps} from '@react-types/tabs';