@splunk/react-ui 5.0.0-beta.3 → 5.0.0-beta.5

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 (181) hide show
  1. package/Accordion.js +185 -243
  2. package/Animation.js +2 -2
  3. package/Button.js +4 -2
  4. package/ButtonSimple.js +47 -41
  5. package/CHANGELOG.md +15 -2
  6. package/CHANGELOG.v5.mdx +73 -0
  7. package/Calendar.js +352 -469
  8. package/Card.js +163 -162
  9. package/Chip.js +171 -356
  10. package/Clickable.js +79 -76
  11. package/Code.js +19 -12
  12. package/Color.js +32 -32
  13. package/ComboBox.js +9 -7
  14. package/Date.js +160 -184
  15. package/DualListbox.js +549 -612
  16. package/File.js +546 -408
  17. package/FormRows.js +170 -157
  18. package/Image.js +124 -251
  19. package/JSONTree.js +496 -521
  20. package/Layer.js +162 -97
  21. package/Layout.d.ts +2 -0
  22. package/Link.js +20 -13
  23. package/MIGRATION.v5.mdx +48 -1
  24. package/Markdown.js +1 -1
  25. package/Menu.js +1 -1
  26. package/Message.js +132 -177
  27. package/MessageBar.js +121 -290
  28. package/Modal.js +2 -2
  29. package/ModalLayer.js +12 -12
  30. package/Multiselect.js +1982 -2334
  31. package/NonInteractiveCheckbox.js +29 -117
  32. package/Number.js +114 -114
  33. package/Popover.js +328 -326
  34. package/Progress.js +68 -54
  35. package/RadioBar.js +139 -136
  36. package/RadioList.js +67 -65
  37. package/Resize.js +377 -265
  38. package/ResultsMenu.js +573 -661
  39. package/Scroll.js +2 -2
  40. package/ScrollContainerContext.js +13 -9
  41. package/Search.js +1 -1
  42. package/Select.js +364 -361
  43. package/SidePanel.js +17 -21
  44. package/Slider.js +494 -372
  45. package/SlidingPanels.js +100 -102
  46. package/SplitButton.js +39 -25
  47. package/StepBar.js +3 -3
  48. package/Switch.js +136 -129
  49. package/TabBar.js +598 -466
  50. package/TabLayout.js +34 -34
  51. package/Table.js +1648 -1479
  52. package/Text.js +51 -50
  53. package/TextArea.js +280 -154
  54. package/Tooltip.js +413 -563
  55. package/TransitionOpen.js +2 -2
  56. package/Tree.js +2 -2
  57. package/Typography.js +30 -28
  58. package/WaitSpinner.js +6 -11
  59. package/cypress/support/commands.ts +14 -4
  60. package/cypress/support/index.d.ts +1 -1
  61. package/package.json +9 -11
  62. package/stubs-splunkui.d.ts +0 -4
  63. package/types/src/Accordion/Accordion.d.ts +14 -21
  64. package/types/src/Accordion/AccordionContext.d.ts +0 -1
  65. package/types/src/Animation/Animation.d.ts +2 -3
  66. package/types/src/AnimationToggle/docs/examples/Provider.d.ts +2 -2
  67. package/types/src/AnimationToggle/docs/examples/ToggleComponent.d.ts +2 -2
  68. package/types/src/AnimationToggle/useAnimationToggle.d.ts +1 -1
  69. package/types/src/Button/Button.d.ts +1 -1
  70. package/types/src/ButtonGroup/ButtonGroupContext.d.ts +0 -1
  71. package/types/src/ButtonSimple/ButtonSimple.d.ts +1 -3
  72. package/types/src/ButtonSimple/mixin.d.ts +1 -1
  73. package/types/src/Calendar/Calendar.d.ts +2 -2
  74. package/types/src/Calendar/{DateTable.d.ts → DateGrid.d.ts} +9 -9
  75. package/types/src/Calendar/Day.d.ts +8 -4
  76. package/types/src/Card/Card.d.ts +3 -1
  77. package/types/src/Card/Header.d.ts +2 -0
  78. package/types/src/Card/docs/examples/HeadingTitle.d.ts +3 -0
  79. package/types/src/CardLayout/CardLayoutContext.d.ts +0 -1
  80. package/types/src/CardLayout/docs/examples/Interactive.d.ts +2 -2
  81. package/types/src/Clickable/Clickable.d.ts +12 -4
  82. package/types/src/CollapsiblePanel/SingleOpenPanelGroupContext.d.ts +0 -1
  83. package/types/src/ComboBox/ComboBox.d.ts +3 -3
  84. package/types/src/ControlGroup/docs/examples/CustomizedLabelTarget.d.ts +2 -2
  85. package/types/src/Date/docs/examples/Controlled.d.ts +2 -2
  86. package/types/src/Date/docs/examples/HighlightToday.d.ts +2 -2
  87. package/types/src/DefinitionList/DefinitionListContext.d.ts +0 -1
  88. package/types/src/DualListbox/DualListbox.d.ts +5 -1
  89. package/types/src/File/File.d.ts +4 -4
  90. package/types/src/File/FileContext.d.ts +0 -1
  91. package/types/src/File/Item.d.ts +11 -3
  92. package/types/src/File/ItemIcon.d.ts +2 -1
  93. package/types/src/File/docs/examples/Disabled.d.ts +2 -2
  94. package/types/src/File/docs/examples/DropAnywhere.d.ts +2 -2
  95. package/types/src/File/docs/examples/Multi.d.ts +2 -2
  96. package/types/src/File/docs/examples/Single.d.ts +2 -2
  97. package/types/src/FormRows/FormRows.d.ts +4 -4
  98. package/types/src/FormRows/FormRowsContext.d.ts +1 -2
  99. package/types/src/FormRows/SortableRow.d.ts +1 -1
  100. package/types/src/FormRows/docs/examples/Basic.d.ts +2 -2
  101. package/types/src/FormRows/docs/examples/Header.d.ts +2 -2
  102. package/types/src/FormRows/docs/examples/Menu.d.ts +2 -2
  103. package/types/src/FormRows/docs/examples/ReorderOnly.d.ts +2 -2
  104. package/types/src/Image/Image.d.ts +1 -4
  105. package/types/src/JSONTree/docs/examples/Events.d.ts +2 -2
  106. package/types/src/Layout/Layout.d.ts +1 -0
  107. package/types/src/Link/Link.d.ts +4 -0
  108. package/types/src/Link/icons/External.d.ts +1 -2
  109. package/types/src/Menu/Divider.d.ts +1 -1
  110. package/types/src/Menu/MenuContext.d.ts +0 -1
  111. package/types/src/Message/Message.d.ts +1 -1
  112. package/types/src/MessageBar/MessageBar.d.ts +6 -2
  113. package/types/src/Modal/ModalContext.d.ts +0 -1
  114. package/types/src/Multiselect/Compact.d.ts +46 -21
  115. package/types/src/Multiselect/Multiselect.d.ts +69 -36
  116. package/types/src/Multiselect/Normal.d.ts +45 -62
  117. package/types/src/Multiselect/Option.d.ts +42 -18
  118. package/types/src/Multiselect/docs/examples/Children.d.ts +2 -9
  119. package/types/src/Multiselect/docs/examples/Controlled.d.ts +2 -9
  120. package/types/src/Multiselect/docs/examples/CustomizeSelected.d.ts +2 -9
  121. package/types/src/Multiselect/docs/examples/Disabled.d.ts +2 -9
  122. package/types/src/Multiselect/docs/examples/Error.d.ts +2 -9
  123. package/types/src/Multiselect/docs/examples/Fetching.d.ts +2 -22
  124. package/types/src/Multiselect/docs/examples/Headings.d.ts +2 -1
  125. package/types/src/Multiselect/docs/examples/LoadMoreOnScrollBottom.d.ts +2 -25
  126. package/types/src/Multiselect/docs/examples/NewValues.d.ts +2 -9
  127. package/types/src/Multiselect/docs/examples/TabInput.d.ts +2 -9
  128. package/types/src/NonInteractiveCheckbox/NonInteractiveCheckbox.d.ts +8 -7
  129. package/types/src/Number/docs/examples/Basic.d.ts +2 -2
  130. package/types/src/Number/docs/examples/Limits.d.ts +2 -2
  131. package/types/src/Number/docs/examples/Locale.d.ts +2 -2
  132. package/types/src/Popover/Popover.d.ts +1 -1
  133. package/types/src/Popover/PopoverMenuContext.d.ts +0 -1
  134. package/types/src/RadioBar/RadioBar.d.ts +1 -1
  135. package/types/src/RadioBar/RadioBarContext.d.ts +0 -1
  136. package/types/src/RadioList/RadioListContext.d.ts +0 -1
  137. package/types/src/ResultsMenu/ResultsMenu.d.ts +23 -34
  138. package/types/src/Scroll/Inner.d.ts +1 -1
  139. package/types/src/Scroll/docs/examples/Controlled.d.ts +2 -2
  140. package/types/src/Search/Search.d.ts +2 -2
  141. package/types/src/Select/SelectBase.d.ts +4 -4
  142. package/types/src/Slider/docs/examples/Controlled.d.ts +2 -2
  143. package/types/src/Slider/docs/examples/CustomLabels.d.ts +2 -2
  144. package/types/src/Slider/getStepMarksBackground.d.ts +8 -0
  145. package/types/src/SlidingPanels/Panel.d.ts +2 -2
  146. package/types/src/SlidingPanels/SlidingPanels.d.ts +2 -2
  147. package/types/src/SlidingPanels/docs/examples/Basic.d.ts +2 -2
  148. package/types/src/SlidingPanels/docs/examples/Dropdown.d.ts +2 -2
  149. package/types/src/SplitButton/Item.d.ts +15 -2
  150. package/types/src/StepBar/Step.d.ts +1 -1
  151. package/types/src/StepBar/StepBar.d.ts +1 -1
  152. package/types/src/StepBar/StepBarContext.d.ts +0 -1
  153. package/types/src/Switch/docs/examples/Basic.d.ts +2 -2
  154. package/types/src/Switch/docs/examples/Disabled.d.ts +2 -2
  155. package/types/src/TabBar/Tab.d.ts +12 -5
  156. package/types/src/TabBar/TabBar.d.ts +11 -7
  157. package/types/src/TabBar/TabBarContext.d.ts +8 -3
  158. package/types/src/TabLayout/TabLayout.d.ts +8 -5
  159. package/types/src/Table/Head.d.ts +4 -15
  160. package/types/src/Table/HeadCell.d.ts +23 -25
  161. package/types/src/Table/HeadDropdownCell.d.ts +23 -26
  162. package/types/src/Table/HeadInner.d.ts +4 -10
  163. package/types/src/Table/Row.d.ts +6 -6
  164. package/types/src/Table/Table.d.ts +3 -8
  165. package/types/src/Table/TableContext.d.ts +0 -1
  166. package/types/src/Tooltip/Tooltip.d.ts +26 -58
  167. package/types/src/Tooltip/docs/examples/Controlled.d.ts +2 -2
  168. package/types/src/Tree/TreeContext.d.ts +0 -1
  169. package/types/src/Typography/Typography.d.ts +27 -22
  170. package/types/src/useForceUpdate/useForceUpdate.d.ts +0 -1
  171. package/types/src/useResizeObserver/useResizeObserver.d.ts +2 -1
  172. package/types/src/utils/types.d.ts +2 -3
  173. package/useResizeObserver.js +26 -19
  174. package/types/src/Date/Icon.d.ts +0 -3
  175. package/types/src/Image/icons/Cross.d.ts +0 -3
  176. package/types/src/TabBar/docs/examples/IconsAbove.d.ts +0 -3
  177. package/types/src/TabBar/docs/examples/VerticalIconsAbove.d.ts +0 -3
  178. package/types/src/Table/docs/examples/prisma/DockedHeaderScrollbar.d.ts +0 -3
  179. package/types/src/Tooltip/InfoIcon.d.ts +0 -4
  180. /package/types/src/TabBar/docs/examples/{IconsLeft.d.ts → Icons.d.ts} +0 -0
  181. /package/types/src/TabBar/docs/examples/{VerticalIconsLeft.d.ts → VerticalIcons.d.ts} +0 -0
package/TabBar.js CHANGED
@@ -9,26 +9,26 @@
9
9
  /******/ (() => {
10
10
  /******/ // getDefaultExport function for compatibility with non-harmony modules
11
11
  /******/ e.n = t => {
12
- /******/ var r = t && t.__esModule ?
12
+ /******/ var n = t && t.__esModule ?
13
13
  /******/ () => t["default"]
14
14
  /******/ : () => t
15
15
  /******/;
16
- e.d(r, {
17
- a: r
16
+ e.d(n, {
17
+ a: n
18
18
  });
19
- /******/ return r;
19
+ /******/ return n;
20
20
  /******/ };
21
21
  /******/ })();
22
22
  /******/
23
23
  /******/ /* webpack/runtime/define property getters */
24
24
  /******/ (() => {
25
25
  /******/ // define getter functions for harmony exports
26
- /******/ e.d = (t, r) => {
27
- /******/ for (var n in r) {
28
- /******/ if (e.o(r, n) && !e.o(t, n)) {
29
- /******/ Object.defineProperty(t, n, {
26
+ /******/ e.d = (t, n) => {
27
+ /******/ for (var r in n) {
28
+ /******/ if (e.o(n, r) && !e.o(t, r)) {
29
+ /******/ Object.defineProperty(t, r, {
30
30
  enumerable: true,
31
- get: r[n]
31
+ get: n[r]
32
32
  });
33
33
  /******/ }
34
34
  /******/ }
@@ -61,129 +61,172 @@
61
61
  e.r(t);
62
62
  // EXPORTS
63
63
  e.d(t, {
64
- Tab: () => /* reexport */ Z,
65
- default: () => /* reexport */ pe
64
+ Tab: () => /* reexport */ re,
65
+ default: () => /* reexport */ ke
66
66
  });
67
67
  // CONCATENATED MODULE: external "react"
68
- const r = require("react");
69
- var n = e.n(r);
68
+ const n = require("react");
69
+ var r = e.n(n);
70
70
  // CONCATENATED MODULE: external "prop-types"
71
71
  const a = require("prop-types");
72
- var o = e.n(a);
72
+ var i = e.n(a);
73
73
  // CONCATENATED MODULE: external "@splunk/ui-utils/keyboard"
74
- const i = require("@splunk/ui-utils/keyboard");
74
+ const o = require("@splunk/ui-utils/keyboard");
75
+ // CONCATENATED MODULE: external "@splunk/react-ui/usePrevious"
76
+ const l = require("@splunk/react-ui/usePrevious");
77
+ var u = e.n(l);
75
78
  // CONCATENATED MODULE: external "styled-components"
76
- const l = require("styled-components");
77
- var c = e.n(l);
79
+ const c = require("styled-components");
80
+ var s = e.n(c);
78
81
  // CONCATENATED MODULE: external "@splunk/themes"
79
- const u = require("@splunk/themes");
82
+ const d = require("@splunk/themes");
80
83
  // CONCATENATED MODULE: ./src/TabBar/TabBarStyles.ts
81
- var s = c().div.withConfig({
84
+ var f = s().div.withConfig({
82
85
  displayName: "TabBarStyles__Styled",
83
86
  componentId: "sc-1t85fen-0"
84
- })([ "", " position:relative;&::before{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;border:0 solid ", ";}", ";" ], u.mixins.reset("flex"), u.variables.neutral300, (0,
85
- u.pickVariant)("$layout", {
86
- horizontal: (0, l.css)([ "column-gap:", ";&::before{border-bottom-width:1px;}" ], u.variables.spacingXXLarge),
87
- vertical: (0, l.css)([ "display:inline-block;&::before{border-right-width:1px;}" ])
87
+ })([ "", " position:relative;&::before{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;border:0 solid ", ";}", ";" ], d.mixins.reset("flex"), d.variables.neutral300, (0,
88
+ d.pickVariant)("$layout", {
89
+ horizontal: (0, c.css)([ "column-gap:", ";&::before{border-bottom-width:1px;}" ], d.variables.spacingXLarge),
90
+ vertical: (0, c.css)([ "display:inline-flex;flex-direction:column;row-gap:", ";&::before{border-right-width:1px;}" ], d.variables.spacingXLarge)
88
91
  }));
89
92
  // CONCATENATED MODULE: external "lodash/omit"
90
- const d = require("lodash/omit");
91
- var f = e.n(d);
92
- // CONCATENATED MODULE: external "@splunk/react-icons/DotsThreeVertical"
93
- const v = require("@splunk/react-icons/DotsThreeVertical");
93
+ const v = require("lodash/omit");
94
94
  var b = e.n(v);
95
+ // CONCATENATED MODULE: external "@splunk/react-icons/DotsThreeVertical"
96
+ const p = require("@splunk/react-icons/DotsThreeVertical");
97
+ var m = e.n(p);
95
98
  // CONCATENATED MODULE: external "@splunk/react-ui/Dropdown"
96
- const p = require("@splunk/react-ui/Dropdown");
97
- var y = e.n(p);
99
+ const g = require("@splunk/react-ui/Dropdown");
100
+ var y = e.n(g);
98
101
  // CONCATENATED MODULE: external "@splunk/react-ui/Popover"
99
- const m = require("@splunk/react-ui/Popover");
100
- var h = e.n(m);
102
+ const h = require("@splunk/react-ui/Popover");
103
+ var S = e.n(h);
101
104
  // CONCATENATED MODULE: external "@splunk/react-ui/ScreenReaderContent"
102
- const g = require("@splunk/react-ui/ScreenReaderContent");
103
- var C = e.n(g);
105
+ const C = require("@splunk/react-ui/ScreenReaderContent");
106
+ var O = e.n(C);
104
107
  // CONCATENATED MODULE: external "@splunk/ui-utils/i18n"
105
- const S = require("@splunk/ui-utils/i18n");
108
+ const w = require("@splunk/ui-utils/i18n");
106
109
  // CONCATENATED MODULE: external "@splunk/ui-utils/id"
107
- const w = require("@splunk/ui-utils/id");
110
+ const x = require("@splunk/ui-utils/id");
108
111
  // CONCATENATED MODULE: external "@splunk/react-ui/Clickable"
109
112
  const k = require("@splunk/react-ui/Clickable");
110
- var x = e.n(k);
113
+ var I = e.n(k);
111
114
  // CONCATENATED MODULE: ./src/TabBar/TabStyles.ts
112
- var O = (0, l.css)([ "color:", ";" ], u.variables.contentColorActive);
113
- var I = (0, u.pickVariant)("$layout", {
114
- horizontal: (0, l.css)([ "background:", ";height:1px;" ], u.variables.interactiveColorBorderHover),
115
- vertical: (0, l.css)([ "background:", ";width:1px;" ], u.variables.interactiveColorBorderHover)
115
+ var P = (0, c.css)([ "color:", ";" ], d.variables.contentColorActive);
116
+ var j = "2px";
117
+ var T = (0, d.pickVariant)("$layout", {
118
+ horizontal: (0, c.css)([ "background:", ";height:", ";" ], d.variables.contentColorAccentWeak, j),
119
+ vertical: (0, c.css)([ "background:", ";width:", ";" ], d.variables.contentColorAccentWeak, j)
116
120
  });
117
- var T = c()(x()).withConfig({
121
+ var $ = function e(t) {
122
+ var n = t.$hasIcon, r = t.$hasMenu, a = t.$iconPosition;
123
+ if (a === "above" && n && r) {
124
+ return (0, c.css)([ "grid-template-areas:'icon icon icon' 'menu-counter-neg-space label menu' 'gutter gutter gutter' 'underline underline underline';grid-template-columns:", " 1fr min-content;grid-template-rows:repeat(2,auto) ", " auto;" ], d.variables.spacingXSmall, d.variables.spacingXSmall);
125
+ }
126
+ if (a === "above" && n) {
127
+ return (0, c.css)([ "grid-template-areas:'icon' 'label' 'gutter' 'underline';grid-template-columns:1fr;grid-template-rows:repeat(2,auto) ", " auto;" ], d.variables.spacingXSmall);
128
+ }
129
+ if (a === "left" && n && r) {
130
+ return (0, c.css)([ "grid-template-areas:'menu-counter-neg-space icon label menu' 'underline underline underline underline';grid-template-columns:", " 16px 1fr min-content;" ], d.variables.spacingXSmall);
131
+ }
132
+ if (a === "left" && n) {
133
+ return (0, c.css)([ "grid-template-areas:'icon label' 'underline underline';grid-template-columns:16px 1fr;" ]);
134
+ }
135
+ if (r) {
136
+ return (0, c.css)([ "grid-template-areas:'menu-counter-neg-space label menu' 'underline underline underline';grid-template-columns:", " minmax(auto,min-content) min-content;" ], d.variables.spacingXSmall);
137
+ }
138
+ return (0, c.css)([ "grid-template-areas:'label' 'underline';grid-template-columns:minmax(auto,min-content);" ]);
139
+ };
140
+ var E = function e(t) {
141
+ var n = t.$hasIcon, r = t.$iconPosition;
142
+ if (r === "above" && n) {
143
+ return (0, c.css)([ "grid-template-areas:'icon gutter underline' 'label gutter underline';grid-template-columns:1fr ", " ", ";" ], d.variables.spacingXSmall, j);
144
+ }
145
+ if (r === "left" && n) {
146
+ return (0, c.css)([ "grid-template-areas:'icon label gutter underline';grid-template-columns:16px 1fr ", " ", ";" ], d.variables.spacingXSmall, j);
147
+ }
148
+ return (0, c.css)([ "grid-template-areas:'label gutter underline';grid-template-columns:1fr ", " ", ";" ], d.variables.spacingXSmall, j);
149
+ };
150
+ var M = s()(I()).withConfig({
118
151
  displayName: "TabStyles__StyledClickable",
119
152
  componentId: "sc-1ry8mzj-0"
120
- })([ "flex:0 1 auto;display:flow-root;position:relative;line-height:", ";text-align:center;white-space:nowrap;color:", ";&::after{display:block;content:attr(data-title);font-weight:", ";height:0;color:transparent;overflow:hidden;visibility:hidden;}", ";&[aria-selected='true']{cursor:default;color:", ";font-weight:", ";}&[aria-selected='false']{box-shadow:none;font-weight:", ";&:hover:not([disabled]){", "}&[aria-haspopup='true']{", "}}&:focus{box-shadow:", ";color:", ";}" ], u.variables.lineHeight, u.variables.contentColorDefault, u.variables.fontWeightBold, (0,
121
- u.pickVariant)("$layout", {
122
- horizontal: (0, l.css)([ "margin-bottom:1px;" ]),
123
- vertical: (0, l.css)([ "width:100%;right:1px;padding:0 ", ";" ], u.variables.spacingLarge)
124
- }), u.variables.contentColorActive, u.variables.fontWeightBold, u.variables.fontWeightSemiBold, O, O, u.variables.focusShadowInset, u.variables.contentColorActive);
125
- var j = c().div.withConfig({
153
+ })([ "color:", ";column-gap:", ";display:grid;justify-content:center;min-height:", ";position:relative;", " ", " &::after{display:block;content:attr(data-title);font-weight:", ";height:0;color:transparent;overflow:hidden;visibility:hidden;}", ";&[aria-selected='true']{cursor:default;color:", ";font-weight:", ";}&[aria-selected='false']{box-shadow:none;font-weight:", ";&:hover:not([disabled]){", "}&[aria-haspopup='true']{", "}}&:focus{box-shadow:", ";color:", ";}" ], d.variables.contentColorDefault, d.variables.spacingXSmall, d.variables.inputHeight, (function(e) {
154
+ var t = e.$maxTabWidth;
155
+ return t && (0, c.css)([ "max-width:", "px;" ], t);
156
+ }), (function(e) {
157
+ var t = e.$hasIcon, n = e.$hasMenu, r = e.$iconPosition, a = e.$layout;
158
+ if (a === "vertical") {
159
+ return E({
160
+ $hasIcon: t,
161
+ $iconPosition: r
162
+ });
163
+ }
164
+ return $({
165
+ $hasIcon: t,
166
+ $hasMenu: n,
167
+ $iconPosition: r
168
+ });
169
+ }), d.variables.fontWeightBold, (0, d.pickVariant)("$layout", {
170
+ horizontal: (0, c.css)([ "margin-bottom:1px;" ]),
171
+ vertical: (0, c.css)([ "align-items:center;right:1px;" ])
172
+ }), d.variables.contentColorActive, d.variables.fontWeightBold, d.variables.fontWeightSemiBold, P, P, d.variables.focusShadow, d.variables.contentColorActive);
173
+ var A = s().div.withConfig({
126
174
  displayName: "TabStyles__StyledUnderline",
127
175
  componentId: "sc-1ry8mzj-1"
128
- })([ "position:absolute;", ";[aria-selected='true'] > &&{background-color:", ";", ";}", ":hover:not([disabled]):not([aria-selected='true']) > &&{", ";}[aria-selected='false'][aria-haspopup='true'] > &&{", "}" ], (0,
129
- u.pickVariant)("$layout", {
130
- horizontal: (0, l.css)([ "height:0;box-sizing:border-box;width:100%;transition:height 0.2s;" ]),
131
- vertical: (0, l.css)([ "width:1px;height:calc(100% - 10px * 2);top:10px;right:-1px;transition:width 0.2s;box-sizing:border-box;" ])
132
- }), u.variables.interactiveColorAccent, (0, u.pickVariant)("$layout", {
133
- horizontal: (0, l.css)([ "height:1px;" ]),
134
- vertical: (0, l.css)([ "width:1px;" ])
135
- }), /* sc-sel */ T, I, I);
136
- var E = c().span.withConfig({
176
+ })([ "grid-area:underline;position:absolute;", ";[aria-selected='true'] > &&{background-color:", ";", ";}", ":hover:not([disabled]):not([aria-selected='true']) > &&{", ";}[aria-selected='false'][aria-haspopup='true'] > &&{", "}" ], (0,
177
+ d.pickVariant)("$layout", {
178
+ horizontal: (0, c.css)([ "bottom:-1px;height:0;width:100%;transition:height 0.2s;" ]),
179
+ vertical: (0, c.css)([ "width:1px;height:100%;right:-1px;transition:width 0.2s;" ])
180
+ }), d.variables.contentColorAccent, (0, d.pickVariant)("$layout", {
181
+ horizontal: (0, c.css)([ "height:", ";" ], j),
182
+ vertical: (0, c.css)([ "width:", ";" ], j)
183
+ }), /* sc-sel */ M, T, T);
184
+ var z = s().span.withConfig({
137
185
  displayName: "TabStyles__StyledMenu",
138
186
  componentId: "sc-1ry8mzj-2"
139
- })([ "display:inline-block;> svg{transform:translateY(-1px);}border-radius:", ";cursor:pointer;", " &:hover{background-color:", ";border-color:", ";box-shadow:", ";}", "[aria-haspopup='true'] &,", ":hover &,", ":focus &{visibility:visible;}" ], u.variables.borderRadius, (0,
140
- u.pickVariant)("$active", {
141
- false: (0, l.css)([ "visibility:hidden;" ])
142
- }), u.variables.interactiveColorOverlayHover, u.variables.interactiveColorBorderHover, u.variables.hoverShadow, /* sc-sel */ T, /* sc-sel */ T, /* sc-sel */ T);
143
- var M = c().span.withConfig({
187
+ })([ "display:inline-block;grid-area:menu;margin-left:4px;> svg{transform:translateY(-1px);}border-radius:", ";cursor:pointer;", " &:hover{background-color:", ";border-color:", ";}", "[aria-haspopup='true'] &,", ":hover &,", ":focus &{visibility:visible;}" ], d.variables.borderRadius, (0,
188
+ d.pickVariant)("$active", {
189
+ false: (0, c.css)([ "visibility:hidden;" ])
190
+ }), d.variables.interactiveColorOverlayHover, d.variables.interactiveColorBorderHover, /* sc-sel */ M, /* sc-sel */ M, /* sc-sel */ M);
191
+ var _ = s().span.withConfig({
144
192
  displayName: "TabStyles__StyledIcon",
145
193
  componentId: "sc-1ry8mzj-3"
146
- })([ "", "" ], (0, u.pickVariant)("$iconPosition", {
147
- above: (0, l.css)([ "display:block;" ]),
148
- left: (0, l.css)([ "padding-right:", ";> svg{transform:translateY(-1px);}" ], u.variables.spacingSmall)
194
+ })([ "grid-area:icon;", "" ], (0, d.pickVariant)("$iconPosition", {
195
+ above: (0, c.css)([ "display:flex;justify-content:center;" ]),
196
+ left: (0, c.css)([ "> svg{transform:translateY(-1px);}" ])
149
197
  }));
150
- var z = c().div.withConfig({
151
- displayName: "TabStyles__StyledLabelAndMenuContainer",
152
- componentId: "sc-1ry8mzj-4"
153
- })([ "display:flex;align-items:center;justify-content:center;gap:8px;" ]);
154
- var P = c().div.withConfig({
198
+ var D = s().div.withConfig({
155
199
  displayName: "TabStyles__StyledLabel",
156
- componentId: "sc-1ry8mzj-5"
157
- })([ "overflow:hidden;text-overflow:ellipsis;min-width:10px;margin:", ";" ], (0,
158
- u.pick)({
159
- comfortable: "16px 0",
160
- compact: "10px 0"
200
+ componentId: "sc-1ry8mzj-4"
201
+ })([ "grid-area:label;min-width:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;", "" ], (function(e) {
202
+ var t = e.$iconPosition;
203
+ return t === "above" && (0, c.css)([ "text-align:center;" ]);
161
204
  }));
162
- var _ = c().span.withConfig({
205
+ var R = s().span.withConfig({
163
206
  displayName: "TabStyles__StyledCount",
164
- componentId: "sc-1ry8mzj-6"
165
- })([ "background:", ";border-radius:18px;color:", ";display:inline-block;font-size:", ";line-height:10px;margin-inline-start:0.3em;padding:0.4em 0.6em;&[disabled]{color:", ";}" ], u.variables.neutral100, u.variables.contentColorDefault, u.variables.fontSizeSmall, u.variables.contentColorDisabled);
166
- var A = c().div.withConfig({
207
+ componentId: "sc-1ry8mzj-5"
208
+ })([ "background:", ";border-radius:18px;color:", ";display:inline-block;font-size:", ";line-height:10px;margin-inline-start:0.3em;padding:0.4em 0.6em;&[disabled]{color:", ";}" ], d.variables.neutral100, d.variables.contentColorDefault, d.variables.fontSizeSmall, d.variables.contentColorDisabled);
209
+ var q = s().div.withConfig({
167
210
  displayName: "TabStyles__StyledTooltipContent",
168
- componentId: "sc-1ry8mzj-7"
169
- })([ "padding:8px;font-size:", ";" ], u.variables.fontSizeSmall);
211
+ componentId: "sc-1ry8mzj-6"
212
+ })([ "padding:8px;font-size:", ";" ], d.variables.fontSizeSmall);
170
213
  // CONCATENATED MODULE: ./src/TabBar/TabBarContext.tsx
171
- var R = function e() {
214
+ var W = function e() {
172
215
  return undefined;
173
216
  };
174
- var q = (0, r.createContext)({
175
- focusedTabId: null,
217
+ var X = (0, n.createContext)({
176
218
  isMenuOpen: false,
177
- onMenuOpen: R,
178
- onMenuClose: R
219
+ onMenuOpen: W,
220
+ onMenuClose: W,
221
+ registerTab: W
179
222
  });
180
- q.displayName = "TabBar";
181
- /* harmony default export */ const D = q;
223
+ X.displayName = "TabBar";
224
+ /* harmony default export */ const N = X;
182
225
  // CONCATENATED MODULE: ./src/utils/getCountValue.ts
183
226
  // A utility for max count
184
- var $ = function e(t, r) {
185
- if (t > r) {
186
- return "".concat(r, "+");
227
+ var V = function e(t, n) {
228
+ if (t > n) {
229
+ return "".concat(n, "+");
187
230
  }
188
231
  return t;
189
232
  };
@@ -207,270 +250,282 @@
207
250
  }
208
251
  }
209
252
  // CONCATENATED MODULE: ./src/TabBar/Tab.tsx
210
- function N() {
211
- return N = Object.assign ? Object.assign.bind() : function(e) {
253
+ function F() {
254
+ return F = Object.assign ? Object.assign.bind() : function(e) {
212
255
  for (var t = 1; t < arguments.length; t++) {
213
- var r = arguments[t];
214
- for (var n in r) {
215
- ({}).hasOwnProperty.call(r, n) && (e[n] = r[n]);
256
+ var n = arguments[t];
257
+ for (var r in n) {
258
+ ({}).hasOwnProperty.call(n, r) && (e[r] = n[r]);
216
259
  }
217
260
  }
218
261
  return e;
219
- }, N.apply(null, arguments);
262
+ }, F.apply(null, arguments);
220
263
  }
221
- function V(e, t) {
222
- return K(e) || L(e, t) || W(e, t) || F();
264
+ function K(e, t) {
265
+ return G(e) || Y(e, t) || U(e, t) || L();
223
266
  }
224
- function F() {
267
+ function L() {
225
268
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
226
269
  }
227
- function W(e, t) {
270
+ function U(e, t) {
228
271
  if (e) {
229
272
  if ("string" == typeof e) return H(e, t);
230
- var r = {}.toString.call(e).slice(8, -1);
231
- return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? H(e, t) : void 0;
273
+ var n = {}.toString.call(e).slice(8, -1);
274
+ return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? H(e, t) : void 0;
232
275
  }
233
276
  }
234
277
  function H(e, t) {
235
278
  (null == t || t > e.length) && (t = e.length);
236
- for (var r = 0, n = Array(t); r < t; r++) {
237
- n[r] = e[r];
279
+ for (var n = 0, r = Array(t); n < t; n++) {
280
+ r[n] = e[n];
238
281
  }
239
- return n;
282
+ return r;
240
283
  }
241
- function L(e, t) {
242
- var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
243
- if (null != r) {
244
- var n, a, o, i, l = [], c = !0, u = !1;
284
+ function Y(e, t) {
285
+ var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
286
+ if (null != n) {
287
+ var r, a, i, o, l = [], u = !0, c = !1;
245
288
  try {
246
- if (o = (r = r.call(e)).next, 0 === t) {
247
- if (Object(r) !== r) return;
248
- c = !1;
249
- } else for (;!(c = (n = o.call(r)).done) && (l.push(n.value), l.length !== t); c = !0) {
289
+ if (i = (n = n.call(e)).next, 0 === t) {
290
+ if (Object(n) !== n) return;
291
+ u = !1;
292
+ } else for (;!(u = (r = i.call(n)).done) && (l.push(r.value), l.length !== t); u = !0) {
250
293
  }
251
294
  } catch (e) {
252
- u = !0, a = e;
295
+ c = !0, a = e;
253
296
  } finally {
254
297
  try {
255
- if (!c && null != r["return"] && (i = r["return"](), Object(i) !== i)) return;
298
+ if (!u && null != n["return"] && (o = n["return"](), Object(o) !== o)) return;
256
299
  } finally {
257
- if (u) throw a;
300
+ if (c) throw a;
258
301
  }
259
302
  }
260
303
  return l;
261
304
  }
262
305
  }
263
- function K(e) {
306
+ function G(e) {
264
307
  if (Array.isArray(e)) return e;
265
308
  }
266
- function U(e, t) {
309
+ function J(e, t) {
267
310
  if (null == e) return {};
268
- var r, n, a = X(e, t);
311
+ var n, r, a = Q(e, t);
269
312
  if (Object.getOwnPropertySymbols) {
270
- var o = Object.getOwnPropertySymbols(e);
271
- for (n = 0; n < o.length; n++) {
272
- r = o[n], t.includes(r) || {}.propertyIsEnumerable.call(e, r) && (a[r] = e[r]);
313
+ var i = Object.getOwnPropertySymbols(e);
314
+ for (r = 0; r < i.length; r++) {
315
+ n = i[r], t.includes(n) || {}.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
273
316
  }
274
317
  }
275
318
  return a;
276
319
  }
277
- function X(e, t) {
320
+ function Q(e, t) {
278
321
  if (null == e) return {};
279
- var r = {};
280
- for (var n in e) {
281
- if ({}.hasOwnProperty.call(e, n)) {
282
- if (t.includes(n)) continue;
283
- r[n] = e[n];
322
+ var n = {};
323
+ for (var r in e) {
324
+ if ({}.hasOwnProperty.call(e, r)) {
325
+ if (t.includes(r)) continue;
326
+ n[r] = e[r];
284
327
  }
285
328
  }
286
- return r;
329
+ return n;
287
330
  }
288
- var Y = {
289
- /** @private. Is the tab active. */
290
- active: o().bool,
291
- ariaControls: o().string,
292
- count: o().number,
293
- disabled: o().bool,
294
- elementRef: o().oneOfType([ o().func, o().object ]),
295
- icon: o().node,
296
- id: o().string,
297
- label: o().oneOfType([ o().string, o().element ]),
331
+ var Z = {
332
+ ariaControls: i().string,
333
+ count: i().number,
334
+ disabled: i().bool,
335
+ elementRef: i().oneOfType([ i().func, i().object ]),
336
+ icon: i().node,
337
+ id: i().string,
338
+ label: i().oneOfType([ i().string, i().element ]),
298
339
  /** @private Maximum count number in tab label */
299
- maxCount: o().number,
300
- tabId: o().string,
301
- to: o().string,
302
- tooltip: o().node,
340
+ maxCount: i().number,
341
+ tabId: i().string,
342
+ to: i().string,
343
+ tooltip: i().node,
303
344
  /**
304
345
  * @private
305
346
  * Accepts a Menu component that is rendered for that Tab.
306
347
  * Is not compatible with `count`.
307
348
  * The `menu` prop is only supported in horizontal layout due to both design constraints as well as keyboard support.
308
349
  */
309
- menu: o().node
350
+ menu: i().node,
351
+ /**
352
+ * @private
353
+ * Internal prop injected by TabBar to track order.
354
+ */
355
+ index: i().number
310
356
  };
311
- var G = {
357
+ var ee = {
312
358
  tension: 400
313
359
  };
314
- var J = [ "offScreen", "escapeKey" ];
315
- var Q = function e(t) {
316
- var a = t.active, o = t.ariaControls, i = t.count, l = t.disabled, c = t.elementRef, u = t.icon, s = t.label, d = t.maxCount, v = t.tabId, p = t.to, m = t.tooltip, g = t.menu, k = U(t, [ "active", "ariaControls", "count", "disabled", "elementRef", "icon", "label", "maxCount", "tabId", "to", "tooltip", "menu" ]);
360
+ var te = [ "offScreen", "escapeKey" ];
361
+ var ne = function e(t) {
362
+ var a = t.ariaControls, i = t.count, o = t.disabled, l = t.elementRef, u = t.icon, c = t.label, s = t.maxCount, d = t.tabId, f = t.to, v = t.tooltip, p = t.menu, g = t.index, h = J(t, [ "ariaControls", "count", "disabled", "elementRef", "icon", "label", "maxCount", "tabId", "to", "tooltip", "menu", "index" ]);
317
363
  // @docs-props-type TabPropsBase
318
- var x = (0, r.useState)(false), O = V(x, 2), I = O[0], R = O[1];
319
- var q = (0, r.useState)(null), F = V(q, 2), W = F[0], H = F[1];
320
- var L = (0, r.useContext)(D), K = L.disabled, X = L.focusedTabId, Y = L.iconPosition, Q = Y === void 0 ? "above" : Y, Z = L.layout, ee = Z === void 0 ? "horizontal" : Z, te = L.width, re = L.onClick, ne = L.onFocus, ae = L.onMenuOpen, oe = L.onMenuClose, ie = L.isMenuOpen;
321
- var le = (0, w.createDOMID)("aria-id");
322
- var ce = (0, w.createDOMID)("menu-description");
323
- var ue = (0, w.createDOMID)("popover");
324
- var se = (0, r.useMemo)((function() {
325
- return v || (0, w.createGUID)();
326
- }), [ v ]);
327
- var de = k.style;
328
- var fe = K || l ? "disabled" : false;
329
- var ve = te ? {
330
- width: te
331
- } : de;
332
- var be = s ? s.toString() : "";
333
- var pe = i === 0 || i ? "".concat(i === null || i === void 0 ? void 0 : i.toString()) : "";
364
+ var C = (0, n.useState)(false), k = K(C, 2), I = k[0], P = k[1];
365
+ var j = (0, n.useState)(null), T = K(j, 2), $ = T[0], E = T[1];
366
+ var W = (0, n.useContext)(N), X = W.activeTabId, L = W.disabled, U = W.focusedTabId, H = W.iconPosition, Y = H === void 0 ? "above" : H, G = W.isMenuOpen, Q = W.layout, Z = Q === void 0 ? "horizontal" : Q, ne = W.maxTabWidth, re = W.onClick, ae = W.onFocus, ie = W.onMenuOpen, oe = W.onMenuClose, le = W.registerTab;
367
+ var ue = (0, n.useState)((0, x.createDOMID)("aria-id")), ce = K(ue, 1), se = ce[0];
368
+ var de = (0, n.useState)((0, x.createDOMID)("menu-description")), fe = K(de, 1), ve = fe[0];
369
+ var be = (0, n.useState)((0, x.createDOMID)("popover")), pe = K(be, 1), me = pe[0];
370
+ var ge = (0, n.useMemo)((function() {
371
+ return d || (0, x.createGUID)();
372
+ }), [ d ]);
373
+ var ye = L || o ? "disabled" : false;
374
+ var he = c ? c.toString() : "";
375
+ var Se = i === 0 || i ? "".concat(i === null || i === void 0 ? void 0 : i.toString()) : "";
376
+ var Ce = X === ge;
334
377
  // title is used for CSS styling in TabStyles. labelValue and countValue needs to be included in the title.
335
- var ye = (0, r.useMemo)((function() {
378
+ var Oe = (0, n.useMemo)((function() {
336
379
  // SUI-6877: if the label isn't a string, don't attempt to do this since it'll just be wrong
337
- return s && typeof s === "string" ? "".concat(be, "    ").concat(pe) : "";
338
- }), [ pe, s, be ]);
339
- var me = (0, r.useCallback)((function() {
340
- W === null || W === void 0 ? void 0 : W.focus();
341
- }), [ W ]);
342
- var he = (0, r.useCallback)((function(e) {
343
- H(e);
344
- B(c, e);
345
- }), [ c ]);
346
- var ge = (0, r.useCallback)((function() {
347
- R(true);
380
+ return c && typeof c === "string" ? "".concat(he, "    ").concat(Se) : "";
381
+ }), [ Se, c, he ]);
382
+ var we = (0, n.useCallback)((function() {
383
+ $ === null || $ === void 0 ? void 0 : $.focus();
384
+ }), [ $ ]);
385
+ var xe = (0, n.useCallback)((function(e) {
386
+ E(e);
387
+ B(l, e);
388
+ // Register with index, assert index is defined as it's injected by TabBar
389
+ le({
390
+ tabId: ge,
391
+ element: e,
392
+ index: g
393
+ });
394
+ }), [ l, le, ge, g ]);
395
+ var ke = (0, n.useCallback)((function() {
396
+ P(true);
348
397
  }), []);
349
- var Ce = (0, r.useCallback)((function() {
350
- R(false);
398
+ var Ie = (0, n.useCallback)((function() {
399
+ P(false);
351
400
  }), []);
352
- var Se = (0, r.useCallback)((function(e) {
401
+ var Pe = (0, n.useCallback)((function(e) {
353
402
  // preserve the previous behaviour from 2ad8e7eaf47 to avoid firing unnecessary onChange events
354
403
  // while preventing the "to" prop from incorrectly triggering <Clickable>'s providedOnClick on the active tab
355
- if (!a) {
404
+ if (!Ce) {
356
405
  re === null || re === void 0 ? void 0 : re(e, {
357
- tabId: se
406
+ tabId: ge
358
407
  });
359
408
  }
360
- if (p == null || p != null && a) {
409
+ if (f == null || f != null && Ce) {
361
410
  e.preventDefault();
362
411
  }
363
- }), [ a, re, se, p ]);
364
- var we = (0, r.useCallback)((function(e) {
365
- ge();
366
- ne === null || ne === void 0 ? void 0 : ne(e, {
367
- tabId: se
412
+ }), [ Ce, re, ge, f ]);
413
+ var je = (0, n.useCallback)((function(e) {
414
+ ke();
415
+ ae === null || ae === void 0 ? void 0 : ae(e, {
416
+ tabId: ge
368
417
  });
369
- }), [ ge, ne, se ]);
370
- var ke = (0, r.useCallback)((function() {
371
- me();
372
- }), [ me ]);
373
- var xe = (0, r.useCallback)((function() {
374
- Ce();
375
- }), [ Ce ]);
376
- var Oe = (0, r.useCallback)((function(e) {
418
+ }), [ ke, ae, ge ]);
419
+ var Te = (0, n.useCallback)((function() {
420
+ we();
421
+ }), [ we ]);
422
+ var $e = (0, n.useCallback)((function() {
423
+ Ie();
424
+ }), [ Ie ]);
425
+ var Ee = (0, n.useCallback)((function(e) {
377
426
  // prevent clicking on the menu icon from changing the active tab
378
427
  e.stopPropagation();
379
- ae(se);
380
- }), [ ae, se ]);
381
- var Ie = X === se && ie && !!g;
382
- var Te = n().createElement(E, {
383
- $active: a,
428
+ ie(ge);
429
+ }), [ ie, ge ]);
430
+ var Me = U === ge && G && !!p;
431
+ var Ae = r().createElement(z, {
432
+ $active: Ce,
384
433
  "data-test": "menu-toggle",
385
434
  tabIndex: -1,
386
- onFocus: ke
387
- }, n().createElement(b(), null));
388
- var je = function e(t) {
435
+ onFocus: Te
436
+ }, r().createElement(m(), null));
437
+ var ze = function e(t) {
389
438
 
390
- return n().createElement(z, null, t, n().createElement(y(), {
391
- toggle: Te,
439
+ return r().createElement(r().Fragment, null, t, r().createElement(y(), {
440
+ toggle: Ae,
392
441
  align: "center",
393
- onRequestOpen: Oe,
442
+ onRequestOpen: Ee,
394
443
  onRequestClose: oe,
395
- open: Ie
396
- }, g));
444
+ open: Me
445
+ }, p));
397
446
  };
398
- var Ee = n().createElement(P, {
399
- "data-test": "label"
400
- }, u && n().createElement(M, {
401
- $iconPosition: Q
402
- }, u), s, !g && (i === 0 || i) && n().createElement(n().Fragment, null, n().createElement(C(), null, " "), n().createElement(_, {
447
+ var _e = r().createElement(D, {
448
+ "data-test": "label",
449
+ $iconPosition: Y
450
+ }, c, !p && (i === 0 || i) && r().createElement(r().Fragment, null, r().createElement(O(), null, " "), r().createElement(R, {
403
451
  "data-test": "count",
404
- disabled: !!fe
405
- }, d ? $(i, d) : i)), !!g && n().createElement(C(), {
452
+ disabled: !!ye
453
+ }, s ? V(i, s) : i)), !!p && r().createElement(O(), {
406
454
  "aria-hidden": true,
407
- id: ce
408
- }, (0, S._)("Press Shift + F10 to open the tab’s menu")));
455
+ id: ve
456
+ }, (0, w._)("Press Shift + F10 to open the tab’s menu")));
409
457
 
410
458
  // TODO: Fix the ts error: https://splunk.atlassian.net/browse/SUI-5569
411
459
  // eslint-disable-next-line
412
460
  // @ts-ignore-next-line
413
- return n().createElement(T, N({
414
- "aria-controls": o,
415
- "aria-selected": a,
416
- "aria-labelledby": le,
417
- "aria-describedby": g ? ce : undefined,
418
- "aria-haspopup": Ie,
461
+ return r().createElement(M, F({
462
+ $hasIcon: !!u,
463
+ $hasMenu: !!p,
464
+ $iconPosition: Y,
465
+ $layout: Z,
466
+ $maxTabWidth: ne,
467
+ "aria-controls": a,
468
+ "aria-selected": Ce,
469
+ "aria-labelledby": se,
470
+ "aria-describedby": p ? ve : undefined,
471
+ "aria-haspopup": Me,
419
472
  "data-test": "tab",
420
- "data-test-tab-id": se,
421
- "data-test-popover-id": m ? ue : undefined,
422
- "data-title": ye,
423
- $layout: ee,
424
- disabled: fe,
425
- style: ve,
426
- elementRef: he,
427
- onClick: Se,
428
- onFocus: we,
429
- onMouseEnter: ge,
430
- onBlur: xe,
431
- onMouseLeave: Ce,
473
+ "data-test-tab-id": ge,
474
+ "data-test-popover-id": v ? me : undefined,
475
+ "data-title": Oe,
476
+ "data-test-disabled": ye || undefined,
477
+ disabled: ye,
478
+ elementRef: xe,
479
+ onClick: Pe,
480
+ onFocus: je,
481
+ onMouseEnter: ke,
482
+ onBlur: $e,
483
+ onMouseLeave: Ie,
432
484
  role: "tab",
433
- tabIndex: a ? undefined : -1,
434
- to: p,
435
- $hasMenu: !!g
436
- }, f()(k, "elementRef")), g && ee === "horizontal" ? je(Ee) : Ee, n().createElement(j, {
437
- $layout: ee
438
- }), !l && m && n().createElement(h(), {
485
+ tabIndex: Ce ? undefined : -1,
486
+ to: f,
487
+ id: ge
488
+ }, b()(h, "elementRef")), u && r().createElement(_, {
489
+ $iconPosition: Y
490
+ }, u), p && Z === "horizontal" ? ze(_e) : _e, r().createElement(A, {
491
+ $layout: Z
492
+ }), !o && v && r().createElement(S(), {
439
493
  role: "tooltip",
440
- anchor: W,
441
- animationConfig: G,
494
+ anchor: $,
495
+ animationConfig: ee,
442
496
  appearance: "inverted",
443
- closeReasons: J,
444
- defaultPlacement: ee === "vertical" ? "right" : "above",
445
- id: ue,
446
- open: !!W && I,
497
+ closeReasons: te,
498
+ defaultPlacement: Z === "vertical" ? "right" : "above",
499
+ id: me,
500
+ open: !!$ && I,
447
501
  align: "center"
448
- }, n().createElement(A, null, m)), m && n().createElement(C(), {
502
+ }, r().createElement(q, null, v)), v && r().createElement(O(), {
449
503
  "aria-hidden": "true",
450
- id: le
451
- }, m));
504
+ id: se
505
+ }, v));
452
506
  };
453
- Q.propTypes = Y;
454
- /* harmony default export */ const Z = Q;
507
+ ne.propTypes = Z;
508
+ ne.as = "Tab";
509
+ /* harmony default export */ const re = ne;
455
510
  // CONCATENATED MODULE: ./src/utils/navigateList.ts
456
511
  // A utility for keyboard navigation of lists
457
- function ee(e, t) {
512
+ function ae(e, t) {
458
513
  return e.find((function(e) {
459
514
  return e && e.id === t;
460
515
  }));
461
516
  }
462
- function te(e, t, r) {
463
- for (var n = 0; n < e.length; n += 1) {
464
- var a = (n + r) % e.length;
517
+ function ie(e, t, n) {
518
+ for (var r = 0; r < e.length; r += 1) {
519
+ var a = (r + n) % e.length;
465
520
  if (e[a].disabled !== true) {
466
521
  return e[a];
467
522
  }
468
523
  }
469
524
  return e[t];
470
525
  }
471
- function re(e, t, r) {
472
- for (var n = e.length; n > 0; n -= 1) {
473
- var a = (n + r) % e.length;
526
+ function oe(e, t, n) {
527
+ for (var r = e.length; r > 0; r -= 1) {
528
+ var a = (r + n) % e.length;
474
529
  if (e[a].disabled !== true) {
475
530
  return e[a];
476
531
  }
@@ -478,282 +533,359 @@
478
533
  return e[t];
479
534
  }
480
535
  // CONCATENATED MODULE: ./src/TabBar/TabBar.tsx
481
- function ne() {
482
- return ne = Object.assign ? Object.assign.bind() : function(e) {
536
+ function le(e) {
537
+ "@babel/helpers - typeof";
538
+ return le = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
539
+ return typeof e;
540
+ } : function(e) {
541
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
542
+ }, le(e);
543
+ }
544
+ function ue() {
545
+ return ue = Object.assign ? Object.assign.bind() : function(e) {
483
546
  for (var t = 1; t < arguments.length; t++) {
484
- var r = arguments[t];
485
- for (var n in r) {
486
- ({}).hasOwnProperty.call(r, n) && (e[n] = r[n]);
547
+ var n = arguments[t];
548
+ for (var r in n) {
549
+ ({}).hasOwnProperty.call(n, r) && (e[r] = n[r]);
487
550
  }
488
551
  }
489
552
  return e;
490
- }, ne.apply(null, arguments);
553
+ }, ue.apply(null, arguments);
491
554
  }
492
- function ae(e, t) {
493
- return ue(e) || ce(e, t) || ie(e, t) || oe();
555
+ function ce(e, t) {
556
+ if (null == e) return {};
557
+ var n, r, a = se(e, t);
558
+ if (Object.getOwnPropertySymbols) {
559
+ var i = Object.getOwnPropertySymbols(e);
560
+ for (r = 0; r < i.length; r++) {
561
+ n = i[r], t.includes(n) || {}.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
562
+ }
563
+ }
564
+ return a;
565
+ }
566
+ function se(e, t) {
567
+ if (null == e) return {};
568
+ var n = {};
569
+ for (var r in e) {
570
+ if ({}.hasOwnProperty.call(e, r)) {
571
+ if (t.includes(r)) continue;
572
+ n[r] = e[r];
573
+ }
574
+ }
575
+ return n;
494
576
  }
495
- function oe() {
577
+ function de(e, t) {
578
+ var n = Object.keys(e);
579
+ if (Object.getOwnPropertySymbols) {
580
+ var r = Object.getOwnPropertySymbols(e);
581
+ t && (r = r.filter((function(t) {
582
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
583
+ }))), n.push.apply(n, r);
584
+ }
585
+ return n;
586
+ }
587
+ function fe(e) {
588
+ for (var t = 1; t < arguments.length; t++) {
589
+ var n = null != arguments[t] ? arguments[t] : {};
590
+ t % 2 ? de(Object(n), !0).forEach((function(t) {
591
+ ve(e, t, n[t]);
592
+ })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : de(Object(n)).forEach((function(t) {
593
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
594
+ }));
595
+ }
596
+ return e;
597
+ }
598
+ function ve(e, t, n) {
599
+ return (t = be(t)) in e ? Object.defineProperty(e, t, {
600
+ value: n,
601
+ enumerable: !0,
602
+ configurable: !0,
603
+ writable: !0
604
+ }) : e[t] = n, e;
605
+ }
606
+ function be(e) {
607
+ var t = pe(e, "string");
608
+ return "symbol" == le(t) ? t : t + "";
609
+ }
610
+ function pe(e, t) {
611
+ if ("object" != le(e) || !e) return e;
612
+ var n = e[Symbol.toPrimitive];
613
+ if (void 0 !== n) {
614
+ var r = n.call(e, t || "default");
615
+ if ("object" != le(r)) return r;
616
+ throw new TypeError("@@toPrimitive must return a primitive value.");
617
+ }
618
+ return ("string" === t ? String : Number)(e);
619
+ }
620
+ function me(e, t) {
621
+ return Ce(e) || Se(e, t) || ye(e, t) || ge();
622
+ }
623
+ function ge() {
496
624
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
497
625
  }
498
- function ie(e, t) {
626
+ function ye(e, t) {
499
627
  if (e) {
500
- if ("string" == typeof e) return le(e, t);
501
- var r = {}.toString.call(e).slice(8, -1);
502
- return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? le(e, t) : void 0;
628
+ if ("string" == typeof e) return he(e, t);
629
+ var n = {}.toString.call(e).slice(8, -1);
630
+ return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? he(e, t) : void 0;
503
631
  }
504
632
  }
505
- function le(e, t) {
633
+ function he(e, t) {
506
634
  (null == t || t > e.length) && (t = e.length);
507
- for (var r = 0, n = Array(t); r < t; r++) {
508
- n[r] = e[r];
635
+ for (var n = 0, r = Array(t); n < t; n++) {
636
+ r[n] = e[n];
509
637
  }
510
- return n;
638
+ return r;
511
639
  }
512
- function ce(e, t) {
513
- var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
514
- if (null != r) {
515
- var n, a, o, i, l = [], c = !0, u = !1;
640
+ function Se(e, t) {
641
+ var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
642
+ if (null != n) {
643
+ var r, a, i, o, l = [], u = !0, c = !1;
516
644
  try {
517
- if (o = (r = r.call(e)).next, 0 === t) {
518
- if (Object(r) !== r) return;
519
- c = !1;
520
- } else for (;!(c = (n = o.call(r)).done) && (l.push(n.value), l.length !== t); c = !0) {
645
+ if (i = (n = n.call(e)).next, 0 === t) {
646
+ if (Object(n) !== n) return;
647
+ u = !1;
648
+ } else for (;!(u = (r = i.call(n)).done) && (l.push(r.value), l.length !== t); u = !0) {
521
649
  }
522
650
  } catch (e) {
523
- u = !0, a = e;
651
+ c = !0, a = e;
524
652
  } finally {
525
653
  try {
526
- if (!c && null != r["return"] && (i = r["return"](), Object(i) !== i)) return;
654
+ if (!u && null != n["return"] && (o = n["return"](), Object(o) !== o)) return;
527
655
  } finally {
528
- if (u) throw a;
656
+ if (c) throw a;
529
657
  }
530
658
  }
531
659
  return l;
532
660
  }
533
661
  }
534
- function ue(e) {
662
+ function Ce(e) {
535
663
  if (Array.isArray(e)) return e;
536
664
  }
537
- function se(e, t) {
538
- if (null == e) return {};
539
- var r, n, a = de(e, t);
540
- if (Object.getOwnPropertySymbols) {
541
- var o = Object.getOwnPropertySymbols(e);
542
- for (n = 0; n < o.length; n++) {
543
- r = o[n], t.includes(r) || {}.propertyIsEnumerable.call(e, r) && (a[r] = e[r]);
544
- }
545
- }
546
- return a;
547
- }
548
- function de(e, t) {
549
- if (null == e) return {};
550
- var r = {};
551
- for (var n in e) {
552
- if ({}.hasOwnProperty.call(e, n)) {
553
- if (t.includes(n)) continue;
554
- r[n] = e[n];
555
- }
556
- }
557
- return r;
558
- }
559
- var fe = 50;
560
665
  /** @public */
561
- /** @public */ var ve = {
562
- autoActivate: o().bool,
563
- activeTabId: o().string,
564
- children: o().node,
666
+ /** @public */ var Oe = {
667
+ autoActivate: i().bool,
668
+ activeTabId: i().string,
669
+ children: i().node,
565
670
  /** @private */
566
- disabled: o().bool,
567
- elementRef: o().oneOfType([ o().func, o().object ]),
568
- iconPosition: o().oneOf([ "above", "left" ]),
569
- layout: o().oneOf([ "horizontal", "vertical" ]),
570
- onChange: o().func,
571
- tabWidth: o().number
671
+ disabled: i().bool,
672
+ elementRef: i().oneOfType([ i().func, i().object ]),
673
+ iconPosition: i().oneOf([ "above", "left" ]),
674
+ layout: i().oneOf([ "horizontal", "vertical" ]),
675
+ maxTabWidth: i().number,
676
+ onChange: i().func
572
677
  };
573
- function be(e) {
574
- var t = e.activeTabId, a = e.autoActivate, o = e.children, l = e.disabled, c = l === void 0 ? false : l, u = e.elementRef, d = e.iconPosition, f = d === void 0 ? "left" : d, v = e.layout, b = v === void 0 ? "horizontal" : v, p = e.onChange, y = e.tabWidth, m = se(e, [ "activeTabId", "autoActivate", "children", "disabled", "elementRef", "iconPosition", "layout", "onChange", "tabWidth" ]);
678
+ var we = function e(t) {
679
+ return Array.from(t.entries()).sort((function(e, t) {
680
+ var n = me(e, 2), r = n[1].index;
681
+ var a = me(t, 2), i = a[1].index;
682
+ return r - i;
683
+ })).map((function(e) {
684
+ var t = me(e, 2), n = t[0], r = t[1];
685
+ return fe({
686
+ id: n
687
+ }, r);
688
+ }));
689
+ };
690
+ function xe(e) {
691
+ var t;
692
+ var a = e.activeTabId, i = e.autoActivate, l = e.children, c = e.disabled, s = c === void 0 ? false : c, d = e.elementRef, v = e.iconPosition, b = v === void 0 ? "left" : v, p = e.layout, m = p === void 0 ? "horizontal" : p, g = e.maxTabWidth, y = e.onChange, h = ce(e, [ "activeTabId", "autoActivate", "children", "disabled", "elementRef", "iconPosition", "layout", "maxTabWidth", "onChange" ]);
575
693
  // @docs-props-type TabBarPropsBase
576
- var h = (0, r.useState)(false), g = ae(h, 2), C = g[0], S = g[1];
577
- var w = (0, r.useState)(0), k = ae(w, 2), x = k[0], O = k[1];
578
- var I = (0, r.useState)(null), T = ae(I, 2), j = T[0], E = T[1];
579
- var M = (0, r.useState)(false), z = ae(M, 2), P = z[0], _ = z[1];
580
- // Tracked via state b/c only individual tabs really get focus but we need to know at some points if they intend to be in the TabBar overall
581
- var A = (0, r.useRef)(null);
582
- var R = (0, r.useRef)([]);
583
- // ref and not state to prevent unnecessary re-renders on each child Tab mount/reorder
584
- var q = b === "vertical" ? "down" : "right";
585
- var $ = b === "vertical" ? "up" : "left";
586
- var N = y && y > fe ? y : null;
587
- var V = (0, r.useCallback)((function(e) {
588
- var r = e.relatedTarget && A.current && A.current.contains(e.relatedTarget);
589
- // intentionally checks any children, not just tabElements to account non-tab children passed in that need to be tabbed to
590
- if (r || C) {
591
- // if the target we are "losing focus to" is child of the TabBar or we know a Tab's Menu is open then we don't consider this TabBar as having lost focus
694
+ // eslint-disable-next-line prefer-rest-params
695
+ var S = (t = arguments[0]) === null || t === void 0 ? void 0 : t.iconPosition;
696
+ (0, n.useEffect)((function() {
697
+ if (false) {}
698
+ }), [ S ]);
699
+ var C = (0, n.useState)(false), O = me(C, 2), w = O[0], x = O[1];
700
+ var k = (0, n.useState)(a), I = me(k, 2), P = I[0], j = I[1];
701
+ // need to keep track of the focused tab id in a ref to avoid re-generating registerTab
702
+ // because every time `registerTab` changes, it calls `ref` on all tabs
703
+ var T = (0, n.useRef)(a);
704
+ T.current = P;
705
+ // If the tab that was focused is removed, we need to keep track of what index it was last at
706
+ var $ = (0, n.useRef)();
707
+ var E = (0, n.useRef)(null);
708
+ // map of tabId to tab element and index
709
+ var M = (0, n.useRef)();
710
+ if (!M.current) {
711
+ M.current = new Map;
712
+ }
713
+ var A = m === "vertical" ? "down" : "right";
714
+ var z = m === "vertical" ? "up" : "left";
715
+ // focus the tab belonging to the given tabId
716
+ var _ = (0, n.useCallback)((function(e) {
717
+ var t;
718
+ if (!e) {
592
719
  return;
593
720
  }
594
- _(false);
595
- E(t || null);
596
- // when we re-focus it should always be back at the activeTab if it was set
597
- }), [ t, C ]);
598
- var F = (0, r.useCallback)((function() {
599
- _(true);
721
+ var n = (t = M.current) === null || t === void 0 ? void 0 : t.get(e);
722
+ if (!n) {
723
+ var r = we(M.current);
724
+ var a = r[0];
725
+ if (a) {
726
+ var i;
727
+ j(a.id);
728
+ (i = a.element) === null || i === void 0 ? void 0 : i.focus();
729
+ }
730
+ return;
731
+ }
732
+ j(e);
733
+ n.element.focus();
734
+ }), []);
735
+ var D = (0, n.useCallback)((function(e) {
736
+ var t = e.tabId, n = e.element, r = e.index;
737
+ if (n) {
738
+ var a;
739
+ (a = M.current) === null || a === void 0 ? void 0 : a.set(t, {
740
+ element: n,
741
+ index: r
742
+ });
743
+ } else {
744
+ var i;
745
+ (i = M.current) === null || i === void 0 ? void 0 : i["delete"](t);
746
+ // if the tab being removed is the focused tab, keep track of its last known index
747
+ if (T.current === t) {
748
+ $.current = r;
749
+ }
750
+ }
600
751
  }), []);
601
- var W = (0, r.useCallback)((function(e) {
602
- A.current = e;
603
- B(u, e);
604
- }), [ u, A ]);
605
- var H = (0, r.useCallback)((function(e, r) {
606
- if (document.activeElement === e.target) {
752
+ var R = (0, n.useCallback)((function(e) {
753
+ E.current = e;
754
+ B(d, e);
755
+ }), [ d, E ]);
756
+ // callback to handle focus event sent from a Tab
757
+ var q = (0, n.useCallback)((function(e, t) {
758
+ var n = t.tabId;
759
+ if (document.activeElement === e.target && P === n) {
607
760
  // tab already focused, no need to continue
608
761
  return;
609
762
  }
610
- var n = r.tabId;
611
- if (n != null) {
612
- E(n);
613
- }
614
- if (a && t !== n) {
615
- p === null || p === void 0 ? void 0 : p(e, {
763
+ _(n);
764
+ if (i && a !== n) {
765
+ y === null || y === void 0 ? void 0 : y(e, {
616
766
  selectedTabId: n
617
767
  });
618
768
  }
619
- }), [ t, a, p ]);
620
- var L = (0, r.useCallback)((function(e, t) {
621
- var r = t.tabId;
622
- E(r);
623
- p === null || p === void 0 ? void 0 : p(e, {
624
- selectedTabId: r
769
+ }), [ a, i, P, _, y ]);
770
+ var W = (0, n.useCallback)((function(e, t) {
771
+ var n = t.tabId;
772
+ _(n);
773
+ y === null || y === void 0 ? void 0 : y(e, {
774
+ selectedTabId: n
625
775
  });
626
- }), [ p ]);
627
- var K = (0, r.useMemo)((function() {
628
- return r.Children.toArray(o).filter(r.isValidElement).map((function(e, n) {
629
- // <TabBar> allows non-<Tab> children, pass them through without any modification
630
- if (typeof e.type === "string" || e.type.name !== Z.name) {
631
- return e;
632
- }
633
- var a = {
634
- active: t === e.props.tabId,
635
- elementRef: function e(t) {
636
- R.current[n] = t;
637
- },
638
- id: e.props.tabId
639
- };
640
-
641
- return (0, r.cloneElement)(e, a);
642
- }));
643
- }), [ t, o ]);
644
- var U = (0, r.useCallback)((function(e) {
776
+ }), [ _, y ]);
777
+ var X = (0, n.useCallback)((function(e) {
645
778
  // if command key on Mac was pressed ignore
646
779
  if (e.nativeEvent.metaKey) {
647
780
  return;
648
781
  }
649
- var t = (0, i.keycode)(e.nativeEvent);
650
- var r;
651
- if (t === q) {
652
- r = te(R.current, x, x + 1);
653
- } else if (t === $) {
654
- r = re(R.current, x, x - 1);
655
- } else if (t === "home") {
656
- r = te(R.current, x, 0);
657
- } else if (t === "end") {
658
- r = re(R.current, x, R.current.length - 1);
659
- } else if (b === "horizontal" && e.shiftKey && t === "f10") {
660
- S((function(e) {
782
+ var t = we(M.current);
783
+ var n = P ? t.findIndex((function(e) {
784
+ return e.id === P;
785
+ })) : -1;
786
+ var r = t.map((function(e) {
787
+ return e.element;
788
+ }));
789
+ var a = n === -1 ? 0 : n;
790
+ var i = (0, o.keycode)(e.nativeEvent);
791
+ var l;
792
+ if (i === A) {
793
+ l = ie(r, a, a + 1);
794
+ } else if (i === z) {
795
+ l = oe(r, a, a - 1);
796
+ } else if (i === "home") {
797
+ l = ie(r, a, 0);
798
+ } else if (i === "end") {
799
+ l = oe(r, a, r.length - 1);
800
+ } else if (m === "horizontal" && e.shiftKey && i === "f10") {
801
+ x((function(e) {
661
802
  if (e) {
662
- // if we're closing, we want to shift focus to the tab
663
- var t = R.current[x];
803
+ var t = r[a];
664
804
  t === null || t === void 0 ? void 0 : t.focus();
665
805
  }
666
806
  return !e;
667
807
  }));
668
- } else if (b === "horizontal" && t === "down") {
669
- S(true);
808
+ } else if (m === "horizontal" && i === "down") {
809
+ x(true);
670
810
  }
671
- if (r) {
672
- E(r.id);
811
+ if (l) {
812
+ _(l.id);
673
813
  e.preventDefault();
674
814
  }
675
- }), [ x, b, q, $ ]);
676
- var X = (0, r.useCallback)((function(e) {
677
- E(e);
815
+ }), [ P, _, m, A, z ]);
816
+ var V = (0, n.useCallback)((function(e) {
817
+ _(e);
678
818
  // in case they clicked on a menu of tab they were not even focused on yet
679
- S(true);
680
- }), []);
681
- var Y = (0, r.useCallback)((function(e) {
819
+ x(true);
820
+ }), [ _ ]);
821
+ var F = (0, n.useCallback)((function(e) {
682
822
  var t = e.event;
683
823
  // prevent content clicks/enter key from changing the active tab
684
824
  t === null || t === void 0 ? void 0 : t.stopPropagation();
685
- S(false);
825
+ x(false);
686
826
  }), []);
687
- var G = (0, r.useMemo)((function() {
827
+ var K = (0, n.useMemo)((function() {
688
828
  return {
689
- disabled: c,
690
- focusedTabId: j,
691
- iconPosition: f,
692
- layout: b,
693
- onClick: L,
694
- onFocus: H,
695
- width: N,
696
- onMenuOpen: X,
697
- onMenuClose: Y,
698
- isMenuOpen: C
829
+ disabled: s,
830
+ focusedTabId: P,
831
+ iconPosition: b,
832
+ layout: m,
833
+ maxTabWidth: g,
834
+ onClick: W,
835
+ onFocus: q,
836
+ onMenuOpen: V,
837
+ onMenuClose: F,
838
+ isMenuOpen: w,
839
+ registerTab: D,
840
+ activeTabId: a
699
841
  };
700
- }), [ c, j, f, C, b, Y, X, L, H, N ]);
701
- (0, r.useEffect)((function() {
702
- // Purpose: Keep focusedTabIndex in sync as focusedTabId changes
703
- var e = 0;
704
- var t = j ? ee(R.current, j) : null;
705
- if (t) {
706
- e = R.current.indexOf(t);
707
- }
708
- O(e);
709
- }), [ j ]);
710
- (0, r.useEffect)((function() {
711
- // Purpose: On mount we need to sync the focusedTab state to reality
712
- // b/c we don't know which tab they may start out as being the active.
713
- if (t) {
714
- var e = ee(R.current, t);
715
- if (!e) {
716
- return;
842
+ }), [ s, P, b, m, W, q, g, V, F, w, D, a ]);
843
+ var L = (0, n.useMemo)((function() {
844
+ return n.Children.toArray(l).filter(n.isValidElement).map((function(e, t) {
845
+ if (e.type.as === "Tab") {
846
+
847
+ return (0, n.cloneElement)(e, {
848
+ index: t
849
+ });
717
850
  }
718
- E(t);
719
- }
720
- // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally want empty dep array to run only once after first render
721
- }), []);
722
- // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally want this to be after every render. As far as I can tell infinite loop impossible b/c state set func only fires if tab that should be focused is not so after first time it would be back in sync and not fire again.
723
- (0, r.useEffect)((function() {
724
- // Purpose: Keep focus in sync (after every render) with tabs being shuffled between renders
725
- // & handles when TabBar first gets focus scenario too.
726
- if (j) {
727
- var e = ee(R.current, j);
728
- if (!e) {
851
+ return e;
852
+ }));
853
+ }), [ l ]);
854
+ var U = u()(L);
855
+ (0, n.useEffect)((function() {
856
+ // if the focused tab is removed, focus the next tab
857
+ if (U !== L) {
858
+ var e;
859
+ var t = we(M.current);
860
+ if (t.find((function(e) {
861
+ return e.id === T.current;
862
+ }))) {
863
+ // focused tab is still present
729
864
  return;
730
865
  }
731
- if (P && document.activeElement !== e) {
732
- e.focus();
733
- // make sure focused index is in sync too - this has to be done here manually vs the other focusedTabId useEffect since it would've already fired
734
- var t = R.current.indexOf(e);
735
- O(t);
866
+ var n = Math.min((e = $.current) !== null && e !== void 0 ? e : 0, t.length - 1);
867
+ var r = t[n];
868
+ if (r) {
869
+ _(r.id);
736
870
  }
737
871
  }
738
- }));
872
+ }), [ L, _, U ]);
739
873
 
740
- return n().createElement(s, ne({
741
- "data-tab-layout": b,
742
- "data-test-active-tab-id": t,
874
+ return r().createElement(f, ue({
875
+ "data-tab-layout": m,
876
+ "data-test-active-tab-id": a,
743
877
  "data-test": "tab-bar",
744
878
  role: "tablist",
745
- ref: W,
746
- $layout: b,
747
- onBlur: V,
748
- onFocus: F,
749
- onKeyDown: U
750
- }, m), n().createElement(D.Provider, {
751
- value: G
752
- }, K));
879
+ ref: R,
880
+ $layout: m,
881
+ onKeyDown: X
882
+ }, h), r().createElement(N.Provider, {
883
+ value: K
884
+ }, L));
753
885
  }
754
- be.propTypes = ve;
755
- be.Tab = Z;
756
- /* harmony default export */ const pe = be;
886
+ xe.propTypes = Oe;
887
+ xe.Tab = re;
888
+ /* harmony default export */ const ke = xe;
757
889
  // CONCATENATED MODULE: ./src/TabBar/index.ts
758
890
  module.exports = t;
759
891
  /******/})();