@atlaskit/tabs 18.3.5 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/components/tab-list.js +6 -5
  3. package/dist/cjs/components/tab-panel.js +3 -2
  4. package/dist/cjs/components/tab.js +3 -2
  5. package/dist/cjs/components/tabs.js +5 -4
  6. package/dist/cjs/index.js +4 -3
  7. package/dist/cjs/internal/tab-context.js +10 -0
  8. package/dist/cjs/internal/tab-list-context.js +10 -0
  9. package/dist/cjs/internal/tab-panel-context.js +10 -0
  10. package/dist/cjs/use-tab-list.js +20 -0
  11. package/dist/cjs/use-tab-panel.js +20 -0
  12. package/dist/cjs/use-tab.js +20 -0
  13. package/dist/es2019/components/tab-list.js +3 -3
  14. package/dist/es2019/components/tab-panel.js +2 -1
  15. package/dist/es2019/components/tab.js +2 -1
  16. package/dist/es2019/components/tabs.js +3 -2
  17. package/dist/es2019/index.js +2 -1
  18. package/dist/es2019/internal/tab-context.js +3 -0
  19. package/dist/es2019/internal/tab-list-context.js +3 -0
  20. package/dist/es2019/internal/{context.js → tab-panel-context.js} +0 -2
  21. package/dist/es2019/use-tab-list.js +15 -0
  22. package/dist/es2019/use-tab-panel.js +15 -0
  23. package/dist/es2019/use-tab.js +15 -0
  24. package/dist/esm/components/tab-list.js +3 -3
  25. package/dist/esm/components/tab-panel.js +2 -1
  26. package/dist/esm/components/tab.js +2 -1
  27. package/dist/esm/components/tabs.js +3 -2
  28. package/dist/esm/index.js +2 -1
  29. package/dist/esm/internal/tab-context.js +3 -0
  30. package/dist/esm/internal/tab-list-context.js +3 -0
  31. package/dist/esm/internal/tab-panel-context.js +3 -0
  32. package/dist/esm/use-tab-list.js +15 -0
  33. package/dist/esm/use-tab-panel.js +15 -0
  34. package/dist/esm/use-tab.js +15 -0
  35. package/dist/types/index.d.ts +2 -1
  36. package/dist/types/internal/tab-context.d.ts +2 -0
  37. package/dist/types/internal/tab-list-context.d.ts +2 -0
  38. package/dist/types/internal/tab-panel-context.d.ts +2 -0
  39. package/dist/types/use-tab-list.d.ts +4 -0
  40. package/dist/types/use-tab-panel.d.ts +4 -0
  41. package/dist/types/use-tab.d.ts +4 -0
  42. package/dist/types-ts4.5/index.d.ts +2 -1
  43. package/dist/types-ts4.5/internal/tab-context.d.ts +2 -0
  44. package/dist/types-ts4.5/internal/tab-list-context.d.ts +2 -0
  45. package/dist/types-ts4.5/internal/tab-panel-context.d.ts +2 -0
  46. package/dist/types-ts4.5/use-tab-list.d.ts +4 -0
  47. package/dist/types-ts4.5/use-tab-panel.d.ts +4 -0
  48. package/dist/types-ts4.5/use-tab.d.ts +4 -0
  49. package/package.json +7 -6
  50. package/tabs.docs.tsx +51 -0
  51. package/dist/cjs/hooks.js +0 -29
  52. package/dist/cjs/internal/context.js +0 -12
  53. package/dist/es2019/hooks.js +0 -23
  54. package/dist/esm/hooks.js +0 -23
  55. package/dist/esm/internal/context.js +0 -5
  56. package/dist/types/hooks.d.ts +0 -3
  57. package/dist/types/internal/context.d.ts +0 -4
  58. package/dist/types-ts4.5/hooks.d.ts +0 -3
  59. package/dist/types-ts4.5/internal/context.d.ts +0 -4
  60. package/hooks/package.json +0 -17
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/tabs
2
2
 
3
+ ## 19.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`38f89455de21d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/38f89455de21d) -
8
+ Removes `@atlaskit/tabs/hooks` entrypoint from public API. Use the hook exports from
9
+ `@atlaskit/tabs` directly.
10
+
11
+ Removes redundant utility files, split-out multi-export modules and restructures internal files.
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+
3
17
  ## 18.3.5
4
18
 
5
19
  ### Patch Changes
@@ -1,6 +1,7 @@
1
- /* tab-list.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* tab-list.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  "use strict";
3
3
 
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
@@ -11,8 +12,8 @@ var _react = _interopRequireWildcard(require("react"));
11
12
  var React = _react;
12
13
  var _runtime = require("@compiled/react/runtime");
13
14
  var _colors = require("@atlaskit/theme/colors");
14
- var _hooks = require("../hooks");
15
- var _context = require("../internal/context");
15
+ var _tabContext = require("../internal/tab-context");
16
+ var _useTabList2 = _interopRequireDefault(require("../use-tab-list"));
16
17
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
17
18
  var baseStyles = null;
18
19
  var tabListStyles = null;
@@ -28,7 +29,7 @@ var tabListStyles = null;
28
29
  */
29
30
  var TabList = function TabList(_ref) {
30
31
  var children = _ref.children;
31
- var _useTabList = (0, _hooks.useTabList)(),
32
+ var _useTabList = (0, _useTabList2.default)(),
32
33
  tabsId = _useTabList.tabsId,
33
34
  selected = _useTabList.selected,
34
35
  onChange = _useTabList.onChange;
@@ -77,7 +78,7 @@ var TabList = function TabList(_ref) {
77
78
  var tab = _ref2.tab,
78
79
  isSelected = _ref2.isSelected,
79
80
  index = _ref2.index;
80
- return /*#__PURE__*/React.createElement(_context.TabContext.Provider, {
81
+ return /*#__PURE__*/React.createElement(_tabContext.TabContext.Provider, {
81
82
  value: {
82
83
  onClick: function onClick() {
83
84
  return onChange(index);
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
@@ -7,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
7
8
  exports.default = void 0;
8
9
  var _react = _interopRequireWildcard(require("react"));
9
10
  var _compiled = require("@atlaskit/primitives/compiled");
10
- var _hooks = require("../hooks");
11
+ var _useTabPanel2 = _interopRequireDefault(require("../use-tab-panel"));
11
12
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
12
13
  // Note this is not being memoized as children is an unstable reference
13
14
  /**
@@ -22,7 +23,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
22
23
  var TabPanel = function TabPanel(_ref) {
23
24
  var children = _ref.children,
24
25
  testId = _ref.testId;
25
- var _useTabPanel = (0, _hooks.useTabPanel)(),
26
+ var _useTabPanel = (0, _useTabPanel2.default)(),
26
27
  role = _useTabPanel.role,
27
28
  id = _useTabPanel.id,
28
29
  hidden = _useTabPanel.hidden,
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
@@ -7,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
7
8
  exports.default = void 0;
8
9
  var _react = _interopRequireWildcard(require("react"));
9
10
  var _compiled = require("@atlaskit/primitives/compiled");
10
- var _hooks = require("../hooks");
11
+ var _useTab2 = _interopRequireDefault(require("../use-tab"));
11
12
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
12
13
  /**
13
14
  * __Tab__
@@ -21,7 +22,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
21
22
  var Tab = /*#__PURE__*/(0, _react.forwardRef)(function Tab(_ref, ref) {
22
23
  var children = _ref.children,
23
24
  testId = _ref.testId;
24
- var _useTab = (0, _hooks.useTab)(),
25
+ var _useTab = (0, _useTab2.default)(),
25
26
  onClick = _useTab.onClick,
26
27
  id = _useTab.id,
27
28
  ariaControls = _useTab['aria-controls'],
@@ -1,4 +1,4 @@
1
- /* tabs.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* tabs.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  "use strict";
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -15,7 +15,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
15
15
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
17
  var _usePlatformLeafEventHandler = require("@atlaskit/analytics-next/usePlatformLeafEventHandler");
18
- var _context = require("../internal/context");
18
+ var _tabListContext = require("../internal/tab-list-context");
19
+ var _tabPanelContext = require("../internal/tab-panel-context");
19
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
21
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -33,7 +34,7 @@ var getTabPanelWithContext = function getTabPanelWithContext(_ref) {
33
34
  tabsId = _ref.tabsId;
34
35
  return (
35
36
  // Ensure tabPanel exists in case it has been removed
36
- tabPanel && /*#__PURE__*/React.createElement(_context.TabPanelContext.Provider, {
37
+ tabPanel && /*#__PURE__*/React.createElement(_tabPanelContext.TabPanelContext.Provider, {
37
38
  value: {
38
39
  role: 'tabpanel',
39
40
  id: "".concat(tabsId, "-").concat(index, "-tab"),
@@ -114,7 +115,7 @@ var Tabs = function Tabs(props) {
114
115
  return /*#__PURE__*/React.createElement("div", {
115
116
  "data-testid": testId,
116
117
  className: (0, _runtime.ax)(["_1e0c1txw _p12f1osq _1tkeidpf _i0dl1osq _2lx21bp4 _16jlkb7n", "_1c3y1txw _ftfaidpf _18i0kb7n _185bglyw"])
117
- }, /*#__PURE__*/React.createElement(_context.TabListContext.Provider, {
118
+ }, /*#__PURE__*/React.createElement(_tabListContext.TabListContext.Provider, {
118
119
  value: {
119
120
  selected: selected,
120
121
  onChange: onChangeAnalytics,
package/dist/cjs/index.js CHANGED
@@ -31,17 +31,18 @@ Object.defineProperty(exports, "default", {
31
31
  Object.defineProperty(exports, "useTab", {
32
32
  enumerable: true,
33
33
  get: function get() {
34
- return _hooks.useTab;
34
+ return _useTab.default;
35
35
  }
36
36
  });
37
37
  Object.defineProperty(exports, "useTabPanel", {
38
38
  enumerable: true,
39
39
  get: function get() {
40
- return _hooks.useTabPanel;
40
+ return _useTabPanel.default;
41
41
  }
42
42
  });
43
43
  var _tabs = _interopRequireDefault(require("./components/tabs"));
44
44
  var _tabPanel = _interopRequireDefault(require("./components/tab-panel"));
45
45
  var _tab = _interopRequireDefault(require("./components/tab"));
46
46
  var _tabList = _interopRequireDefault(require("./components/tab-list"));
47
- var _hooks = require("./hooks");
47
+ var _useTab = _interopRequireDefault(require("./use-tab"));
48
+ var _useTabPanel = _interopRequireDefault(require("./use-tab-panel"));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TabContext = void 0;
7
+ var _react = require("react");
8
+ /* eslint-disable @repo/internal/react/require-jsdoc */
9
+
10
+ var TabContext = exports.TabContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TabListContext = void 0;
7
+ var _react = require("react");
8
+ /* eslint-disable @repo/internal/react/require-jsdoc */
9
+
10
+ var TabListContext = exports.TabListContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TabPanelContext = void 0;
7
+ var _react = require("react");
8
+ /* eslint-disable @repo/internal/react/require-jsdoc */
9
+
10
+ var TabPanelContext = exports.TabPanelContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useTabList;
7
+ var _react = require("react");
8
+ var _tabListContext = require("./internal/tab-list-context");
9
+ // TODO: Fill in the hook {description}.
10
+ /**
11
+ * {description}.
12
+ */
13
+ function useTabList() {
14
+ var tabListData = (0, _react.useContext)(_tabListContext.TabListContext);
15
+ if (tabListData === null || typeof tabListData === 'undefined') {
16
+ throw Error('@atlaskit/tabs: A TabList must have a Tabs parent.');
17
+ }
18
+ return tabListData;
19
+ }
20
+ ;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useTabPanel;
7
+ var _react = require("react");
8
+ var _tabPanelContext = require("./internal/tab-panel-context");
9
+ // TODO: Fill in the hook {description}.
10
+ /**
11
+ * {description}.
12
+ */
13
+ function useTabPanel() {
14
+ var tabPanelData = (0, _react.useContext)(_tabPanelContext.TabPanelContext);
15
+ if (tabPanelData === null || typeof tabPanelData === 'undefined') {
16
+ throw Error('@atlaskit/tabs: A TabPanel must have a Tabs parent.');
17
+ }
18
+ return tabPanelData;
19
+ }
20
+ ;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useTab;
7
+ var _react = require("react");
8
+ var _tabContext = require("./internal/tab-context");
9
+ // TODO: Fill in the hook {description}.
10
+ /**
11
+ * {description}.
12
+ */
13
+ function useTab() {
14
+ var tabData = (0, _react.useContext)(_tabContext.TabContext);
15
+ if (tabData == null || typeof tabData === 'undefined') {
16
+ throw Error('@atlaskit/tabs: A Tab must have a TabList parent.');
17
+ }
18
+ return tabData;
19
+ }
20
+ ;
@@ -1,11 +1,11 @@
1
- /* tab-list.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* tab-list.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  import "./tab-list.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { Children, createRef, useCallback } from 'react';
6
6
  import { B400, B500, N30, N500 } from '@atlaskit/theme/colors';
7
- import { useTabList } from '../hooks';
8
- import { TabContext } from '../internal/context';
7
+ import { TabContext } from '../internal/tab-context';
8
+ import useTabList from '../use-tab-list';
9
9
  const baseStyles = null;
10
10
  const tabListStyles = null;
11
11
 
@@ -1,6 +1,7 @@
1
1
  import React, { Fragment } from 'react';
2
2
  import { Focusable } from '@atlaskit/primitives/compiled';
3
- import { useTabPanel } from '../hooks';
3
+ import useTabPanel from '../use-tab-panel';
4
+
4
5
  // Note this is not being memoized as children is an unstable reference
5
6
  /**
6
7
  * __TabPanel__
@@ -1,6 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { Focusable, Text } from '@atlaskit/primitives/compiled';
3
- import { useTab } from '../hooks';
3
+ import useTab from '../use-tab';
4
+
4
5
  /**
5
6
  * __Tab__
6
7
  *
@@ -1,10 +1,11 @@
1
- /* tabs.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* tabs.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  import "./tabs.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { Children, Fragment, useCallback, useRef, useState } from 'react';
6
6
  import { usePlatformLeafEventHandler } from '@atlaskit/analytics-next/usePlatformLeafEventHandler';
7
- import { TabListContext, TabPanelContext } from '../internal/context';
7
+ import { TabListContext } from '../internal/tab-list-context';
8
+ import { TabPanelContext } from '../internal/tab-panel-context';
8
9
  const baseStyles = null;
9
10
  const tabsStyles = null;
10
11
  const analyticsAttributes = {
@@ -2,4 +2,5 @@ export { default } from './components/tabs';
2
2
  export { default as TabPanel } from './components/tab-panel';
3
3
  export { default as Tab } from './components/tab';
4
4
  export { default as TabList } from './components/tab-list';
5
- export { useTab, useTabPanel } from './hooks';
5
+ export { default as useTab } from './use-tab';
6
+ export { default as useTabPanel } from './use-tab-panel';
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @repo/internal/react/require-jsdoc */
2
+ import { createContext } from 'react';
3
+ export const TabContext = /*#__PURE__*/createContext(null);
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @repo/internal/react/require-jsdoc */
2
+ import { createContext } from 'react';
3
+ export const TabListContext = /*#__PURE__*/createContext(null);
@@ -1,5 +1,3 @@
1
1
  /* eslint-disable @repo/internal/react/require-jsdoc */
2
2
  import { createContext } from 'react';
3
- export const TabContext = /*#__PURE__*/createContext(null);
4
- export const TabListContext = /*#__PURE__*/createContext(null);
5
3
  export const TabPanelContext = /*#__PURE__*/createContext(null);
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { TabListContext } from './internal/tab-list-context';
3
+
4
+ // TODO: Fill in the hook {description}.
5
+ /**
6
+ * {description}.
7
+ */
8
+ export default function useTabList() {
9
+ const tabListData = useContext(TabListContext);
10
+ if (tabListData === null || typeof tabListData === 'undefined') {
11
+ throw Error('@atlaskit/tabs: A TabList must have a Tabs parent.');
12
+ }
13
+ return tabListData;
14
+ }
15
+ ;
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { TabPanelContext } from './internal/tab-panel-context';
3
+
4
+ // TODO: Fill in the hook {description}.
5
+ /**
6
+ * {description}.
7
+ */
8
+ export default function useTabPanel() {
9
+ const tabPanelData = useContext(TabPanelContext);
10
+ if (tabPanelData === null || typeof tabPanelData === 'undefined') {
11
+ throw Error('@atlaskit/tabs: A TabPanel must have a Tabs parent.');
12
+ }
13
+ return tabPanelData;
14
+ }
15
+ ;
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { TabContext } from './internal/tab-context';
3
+
4
+ // TODO: Fill in the hook {description}.
5
+ /**
6
+ * {description}.
7
+ */
8
+ export default function useTab() {
9
+ const tabData = useContext(TabContext);
10
+ if (tabData == null || typeof tabData === 'undefined') {
11
+ throw Error('@atlaskit/tabs: A Tab must have a TabList parent.');
12
+ }
13
+ return tabData;
14
+ }
15
+ ;
@@ -1,11 +1,11 @@
1
- /* tab-list.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* tab-list.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  import "./tab-list.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { Children, createRef, useCallback } from 'react';
6
6
  import { B400, B500, N30, N500 } from '@atlaskit/theme/colors';
7
- import { useTabList } from '../hooks';
8
- import { TabContext } from '../internal/context';
7
+ import { TabContext } from '../internal/tab-context';
8
+ import useTabList from '../use-tab-list';
9
9
  var baseStyles = null;
10
10
  var tabListStyles = null;
11
11
 
@@ -1,6 +1,7 @@
1
1
  import React, { Fragment } from 'react';
2
2
  import { Focusable } from '@atlaskit/primitives/compiled';
3
- import { useTabPanel } from '../hooks';
3
+ import useTabPanel from '../use-tab-panel';
4
+
4
5
  // Note this is not being memoized as children is an unstable reference
5
6
  /**
6
7
  * __TabPanel__
@@ -1,6 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { Focusable, Text } from '@atlaskit/primitives/compiled';
3
- import { useTab } from '../hooks';
3
+ import useTab from '../use-tab';
4
+
4
5
  /**
5
6
  * __Tab__
6
7
  *
@@ -1,4 +1,4 @@
1
- /* tabs.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* tabs.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _toArray from "@babel/runtime/helpers/toArray";
4
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
@@ -9,7 +9,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
9
9
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
10
  import { Children, Fragment, useCallback, useRef, useState } from 'react';
11
11
  import { usePlatformLeafEventHandler } from '@atlaskit/analytics-next/usePlatformLeafEventHandler';
12
- import { TabListContext, TabPanelContext } from '../internal/context';
12
+ import { TabListContext } from '../internal/tab-list-context';
13
+ import { TabPanelContext } from '../internal/tab-panel-context';
13
14
  var baseStyles = null;
14
15
  var tabsStyles = null;
15
16
  var analyticsAttributes = {
package/dist/esm/index.js CHANGED
@@ -2,4 +2,5 @@ export { default } from './components/tabs';
2
2
  export { default as TabPanel } from './components/tab-panel';
3
3
  export { default as Tab } from './components/tab';
4
4
  export { default as TabList } from './components/tab-list';
5
- export { useTab, useTabPanel } from './hooks';
5
+ export { default as useTab } from './use-tab';
6
+ export { default as useTabPanel } from './use-tab-panel';
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @repo/internal/react/require-jsdoc */
2
+ import { createContext } from 'react';
3
+ export var TabContext = /*#__PURE__*/createContext(null);
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @repo/internal/react/require-jsdoc */
2
+ import { createContext } from 'react';
3
+ export var TabListContext = /*#__PURE__*/createContext(null);
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @repo/internal/react/require-jsdoc */
2
+ import { createContext } from 'react';
3
+ export var TabPanelContext = /*#__PURE__*/createContext(null);
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { TabListContext } from './internal/tab-list-context';
3
+
4
+ // TODO: Fill in the hook {description}.
5
+ /**
6
+ * {description}.
7
+ */
8
+ export default function useTabList() {
9
+ var tabListData = useContext(TabListContext);
10
+ if (tabListData === null || typeof tabListData === 'undefined') {
11
+ throw Error('@atlaskit/tabs: A TabList must have a Tabs parent.');
12
+ }
13
+ return tabListData;
14
+ }
15
+ ;
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { TabPanelContext } from './internal/tab-panel-context';
3
+
4
+ // TODO: Fill in the hook {description}.
5
+ /**
6
+ * {description}.
7
+ */
8
+ export default function useTabPanel() {
9
+ var tabPanelData = useContext(TabPanelContext);
10
+ if (tabPanelData === null || typeof tabPanelData === 'undefined') {
11
+ throw Error('@atlaskit/tabs: A TabPanel must have a Tabs parent.');
12
+ }
13
+ return tabPanelData;
14
+ }
15
+ ;
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { TabContext } from './internal/tab-context';
3
+
4
+ // TODO: Fill in the hook {description}.
5
+ /**
6
+ * {description}.
7
+ */
8
+ export default function useTab() {
9
+ var tabData = useContext(TabContext);
10
+ if (tabData == null || typeof tabData === 'undefined') {
11
+ throw Error('@atlaskit/tabs: A Tab must have a TabList parent.');
12
+ }
13
+ return tabData;
14
+ }
15
+ ;
@@ -3,4 +3,5 @@ export { default as TabPanel } from './components/tab-panel';
3
3
  export { default as Tab } from './components/tab';
4
4
  export { default as TabList } from './components/tab-list';
5
5
  export type { TabProps, TabPanelProps, TabsProps, TabListProps, TabAttributesType, TabListAttributesType, TabPanelAttributesType, TabData, } from './types';
6
- export { useTab, useTabPanel } from './hooks';
6
+ export { default as useTab } from './use-tab';
7
+ export { default as useTabPanel } from './use-tab-panel';
@@ -0,0 +1,2 @@
1
+ import { type TabAttributesType } from '../types';
2
+ export declare const TabContext: import('react').Context<TabAttributesType | null>;
@@ -0,0 +1,2 @@
1
+ import { type TabListAttributesType } from '../types';
2
+ export declare const TabListContext: import('react').Context<TabListAttributesType | null>;
@@ -0,0 +1,2 @@
1
+ import { type TabPanelAttributesType } from '../types';
2
+ export declare const TabPanelContext: import('react').Context<TabPanelAttributesType | null>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {description}.
3
+ */
4
+ export default function useTabList(): import('./types').TabListAttributesType;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {description}.
3
+ */
4
+ export default function useTabPanel(): import('./types').TabPanelAttributesType;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {description}.
3
+ */
4
+ export default function useTab(): import('./types').TabAttributesType;
@@ -3,4 +3,5 @@ export { default as TabPanel } from './components/tab-panel';
3
3
  export { default as Tab } from './components/tab';
4
4
  export { default as TabList } from './components/tab-list';
5
5
  export type { TabProps, TabPanelProps, TabsProps, TabListProps, TabAttributesType, TabListAttributesType, TabPanelAttributesType, TabData, } from './types';
6
- export { useTab, useTabPanel } from './hooks';
6
+ export { default as useTab } from './use-tab';
7
+ export { default as useTabPanel } from './use-tab-panel';
@@ -0,0 +1,2 @@
1
+ import { type TabAttributesType } from '../types';
2
+ export declare const TabContext: import('react').Context<TabAttributesType | null>;
@@ -0,0 +1,2 @@
1
+ import { type TabListAttributesType } from '../types';
2
+ export declare const TabListContext: import('react').Context<TabListAttributesType | null>;
@@ -0,0 +1,2 @@
1
+ import { type TabPanelAttributesType } from '../types';
2
+ export declare const TabPanelContext: import('react').Context<TabPanelAttributesType | null>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {description}.
3
+ */
4
+ export default function useTabList(): import('./types').TabListAttributesType;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {description}.
3
+ */
4
+ export default function useTabPanel(): import('./types').TabPanelAttributesType;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {description}.
3
+ */
4
+ export default function useTab(): import('./types').TabAttributesType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/tabs",
3
- "version": "18.3.5",
3
+ "version": "19.0.0",
4
4
  "description": "Tabs are used to organize content by grouping similar information on the same page.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -36,9 +36,9 @@
36
36
  "@atlaskit/platform-feature-flags": "^1.1.0",
37
37
  "@atlaskit/primitives": "^18.0.0",
38
38
  "@atlaskit/theme": "^22.0.0",
39
- "@atlaskit/tokens": "^11.0.0",
39
+ "@atlaskit/tokens": "^11.1.0",
40
40
  "@babel/runtime": "^7.0.0",
41
- "@compiled/react": "^0.18.6"
41
+ "@compiled/react": "^0.20.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "react": "^18.2.0"
@@ -50,14 +50,15 @@
50
50
  "@af/visual-regression": "workspace:^",
51
51
  "@atlaskit/button": "^23.10.0",
52
52
  "@atlaskit/css": "^0.19.0",
53
- "@atlaskit/docs": "^11.5.0",
54
- "@atlaskit/ds-lib": "^5.3.0",
53
+ "@atlaskit/docs": "^11.7.0",
54
+ "@atlaskit/ds-lib": "^6.0.0",
55
55
  "@atlaskit/link": "^3.3.0",
56
56
  "@atlaskit/section-message": "^8.12.0",
57
57
  "@atlaskit/spinner": "^19.0.0",
58
- "@atlaskit/tooltip": "^20.14.0",
58
+ "@atlaskit/tooltip": "^21.0.0",
59
59
  "@atlaskit/visually-hidden": "^3.0.0",
60
60
  "@atlassian/ssr-tests": "workspace:^",
61
+ "@atlassian/structured-docs-types": "workspace:^",
61
62
  "@testing-library/react": "^16.3.0",
62
63
  "@testing-library/user-event": "^14.4.3",
63
64
  "react-dom": "^18.2.0",
package/tabs.docs.tsx ADDED
@@ -0,0 +1,51 @@
1
+ import path from 'path';
2
+
3
+ import type { ComponentStructuredContentSource } from '@atlassian/structured-docs-types';
4
+
5
+ const documentation: ComponentStructuredContentSource[] = [
6
+ {
7
+ name: 'Tabs',
8
+ description:
9
+ 'Tabs are used to organize content by grouping similar information on the same page.',
10
+ status: 'general-availability',
11
+ import: {
12
+ name: 'Tabs',
13
+ package: '@atlaskit/tabs',
14
+ type: 'default',
15
+ packagePath: path.resolve(__dirname),
16
+ packageJson: require('./package.json'),
17
+ },
18
+ usageGuidelines: [
19
+ 'Use to organize related content on the same page without navigating away',
20
+ 'Use for concise content or content users access regularly',
21
+ 'Limit the number of tabs to avoid overcrowding',
22
+ 'Keep tab labels concise and descriptive',
23
+ 'Use consistent tab ordering and grouping',
24
+ 'Consider responsive behavior for many tabs',
25
+ ],
26
+ contentGuidelines: [
27
+ 'Write clear, descriptive tab labels',
28
+ 'Group related content logically',
29
+ 'Use consistent naming conventions',
30
+ 'Ensure tab content is relevant and complete',
31
+ ],
32
+ accessibilityGuidelines: [
33
+ 'Ensure proper keyboard navigation between tabs',
34
+ 'Use appropriate ARIA attributes for tab panels',
35
+ 'Provide clear focus indicators',
36
+ 'Announce tab changes to screen readers',
37
+ 'Ensure tab content is accessible',
38
+ ],
39
+ examples: [
40
+ {
41
+ name: 'Tabs',
42
+ description: 'Tabs example',
43
+ source: path.resolve(__dirname, './examples/ai/tabs.tsx'),
44
+ },
45
+ ],
46
+ keywords: ['tabs', 'navigation', 'content', 'organization', 'grouping'],
47
+ categories: ['navigation'],
48
+ },
49
+ ];
50
+
51
+ export default documentation;
package/dist/cjs/hooks.js DELETED
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useTabPanel = exports.useTabList = exports.useTab = void 0;
7
- var _react = require("react");
8
- var _context = require("./internal/context");
9
- var useTab = exports.useTab = function useTab() {
10
- var tabData = (0, _react.useContext)(_context.TabContext);
11
- if (tabData == null || typeof tabData === 'undefined') {
12
- throw Error('@atlaskit/tabs: A Tab must have a TabList parent.');
13
- }
14
- return tabData;
15
- };
16
- var useTabList = exports.useTabList = function useTabList() {
17
- var tabListData = (0, _react.useContext)(_context.TabListContext);
18
- if (tabListData === null || typeof tabListData === 'undefined') {
19
- throw Error('@atlaskit/tabs: A TabList must have a Tabs parent.');
20
- }
21
- return tabListData;
22
- };
23
- var useTabPanel = exports.useTabPanel = function useTabPanel() {
24
- var tabPanelData = (0, _react.useContext)(_context.TabPanelContext);
25
- if (tabPanelData === null || typeof tabPanelData === 'undefined') {
26
- throw Error('@atlaskit/tabs: A TabPanel must have a Tabs parent.');
27
- }
28
- return tabPanelData;
29
- };
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TabPanelContext = exports.TabListContext = exports.TabContext = void 0;
7
- var _react = require("react");
8
- /* eslint-disable @repo/internal/react/require-jsdoc */
9
-
10
- var TabContext = exports.TabContext = /*#__PURE__*/(0, _react.createContext)(null);
11
- var TabListContext = exports.TabListContext = /*#__PURE__*/(0, _react.createContext)(null);
12
- var TabPanelContext = exports.TabPanelContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -1,23 +0,0 @@
1
- import { useContext } from 'react';
2
- import { TabContext, TabListContext, TabPanelContext } from './internal/context';
3
- export const useTab = () => {
4
- const tabData = useContext(TabContext);
5
- if (tabData == null || typeof tabData === 'undefined') {
6
- throw Error('@atlaskit/tabs: A Tab must have a TabList parent.');
7
- }
8
- return tabData;
9
- };
10
- export const useTabList = () => {
11
- const tabListData = useContext(TabListContext);
12
- if (tabListData === null || typeof tabListData === 'undefined') {
13
- throw Error('@atlaskit/tabs: A TabList must have a Tabs parent.');
14
- }
15
- return tabListData;
16
- };
17
- export const useTabPanel = () => {
18
- const tabPanelData = useContext(TabPanelContext);
19
- if (tabPanelData === null || typeof tabPanelData === 'undefined') {
20
- throw Error('@atlaskit/tabs: A TabPanel must have a Tabs parent.');
21
- }
22
- return tabPanelData;
23
- };
package/dist/esm/hooks.js DELETED
@@ -1,23 +0,0 @@
1
- import { useContext } from 'react';
2
- import { TabContext, TabListContext, TabPanelContext } from './internal/context';
3
- export var useTab = function useTab() {
4
- var tabData = useContext(TabContext);
5
- if (tabData == null || typeof tabData === 'undefined') {
6
- throw Error('@atlaskit/tabs: A Tab must have a TabList parent.');
7
- }
8
- return tabData;
9
- };
10
- export var useTabList = function useTabList() {
11
- var tabListData = useContext(TabListContext);
12
- if (tabListData === null || typeof tabListData === 'undefined') {
13
- throw Error('@atlaskit/tabs: A TabList must have a Tabs parent.');
14
- }
15
- return tabListData;
16
- };
17
- export var useTabPanel = function useTabPanel() {
18
- var tabPanelData = useContext(TabPanelContext);
19
- if (tabPanelData === null || typeof tabPanelData === 'undefined') {
20
- throw Error('@atlaskit/tabs: A TabPanel must have a Tabs parent.');
21
- }
22
- return tabPanelData;
23
- };
@@ -1,5 +0,0 @@
1
- /* eslint-disable @repo/internal/react/require-jsdoc */
2
- import { createContext } from 'react';
3
- export var TabContext = /*#__PURE__*/createContext(null);
4
- export var TabListContext = /*#__PURE__*/createContext(null);
5
- export var TabPanelContext = /*#__PURE__*/createContext(null);
@@ -1,3 +0,0 @@
1
- export declare const useTab: () => import('./types').TabAttributesType;
2
- export declare const useTabList: () => import('./types').TabListAttributesType;
3
- export declare const useTabPanel: () => import('./types').TabPanelAttributesType;
@@ -1,4 +0,0 @@
1
- import { type TabAttributesType, type TabListAttributesType, type TabPanelAttributesType } from '../types';
2
- export declare const TabContext: import('react').Context<TabAttributesType | null>;
3
- export declare const TabListContext: import('react').Context<TabListAttributesType | null>;
4
- export declare const TabPanelContext: import('react').Context<TabPanelAttributesType | null>;
@@ -1,3 +0,0 @@
1
- export declare const useTab: () => import('./types').TabAttributesType;
2
- export declare const useTabList: () => import('./types').TabListAttributesType;
3
- export declare const useTabPanel: () => import('./types').TabPanelAttributesType;
@@ -1,4 +0,0 @@
1
- import { type TabAttributesType, type TabListAttributesType, type TabPanelAttributesType } from '../types';
2
- export declare const TabContext: import('react').Context<TabAttributesType | null>;
3
- export declare const TabListContext: import('react').Context<TabListAttributesType | null>;
4
- export declare const TabPanelContext: import('react').Context<TabPanelAttributesType | null>;
@@ -1,17 +0,0 @@
1
- {
2
- "name": "@atlaskit/tabs/hooks",
3
- "main": "../dist/cjs/hooks.js",
4
- "module": "../dist/esm/hooks.js",
5
- "module:es2019": "../dist/es2019/hooks.js",
6
- "sideEffects": [
7
- "**/*.compiled.css"
8
- ],
9
- "types": "../dist/types/hooks.d.ts",
10
- "typesVersions": {
11
- ">=4.5 <5.9": {
12
- "*": [
13
- "../dist/types-ts4.5/hooks.d.ts"
14
- ]
15
- }
16
- }
17
- }