@splunk/react-ui 5.0.0-beta.2 → 5.0.0-beta.4

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 (187) hide show
  1. package/Accordion.js +185 -243
  2. package/Animation.js +2 -2
  3. package/Button.js +4 -4
  4. package/ButtonGroup.js +10 -11
  5. package/ButtonSimple.js +48 -42
  6. package/CHANGELOG.md +26 -0
  7. package/CHANGELOG.v5.mdx +81 -0
  8. package/Calendar.js +352 -469
  9. package/Card.js +178 -321
  10. package/Chip.js +154 -296
  11. package/Clickable.js +30 -30
  12. package/Code.js +64 -49
  13. package/Color.js +546 -462
  14. package/ComboBox.js +575 -767
  15. package/Date.js +144 -136
  16. package/Divider.js +29 -26
  17. package/DualListbox.js +441 -444
  18. package/File.js +707 -981
  19. package/FormRows.js +260 -286
  20. package/Image.js +124 -251
  21. package/JSONTree.js +129 -129
  22. package/Layout.d.ts +2 -0
  23. package/Link.js +12 -12
  24. package/MIGRATION.mdx +22 -1
  25. package/MIGRATION.v5.mdx +12 -1
  26. package/Menu.js +76 -76
  27. package/Message.js +77 -100
  28. package/MessageBar.js +141 -251
  29. package/Modal.js +42 -40
  30. package/ModalLayer.js +12 -12
  31. package/Multiselect.js +1989 -2362
  32. package/NonInteractiveCheckbox.js +30 -118
  33. package/Number.js +75 -73
  34. package/Popover.js +348 -350
  35. package/Progress.js +1 -1
  36. package/RadioBar.js +136 -136
  37. package/Resize.js +62 -65
  38. package/Scroll.js +2 -2
  39. package/Select.js +281 -283
  40. package/SidePanel.js +53 -55
  41. package/Slider.js +370 -364
  42. package/SlidingPanels.js +100 -102
  43. package/SplitButton.js +170 -343
  44. package/StaticContent.js +15 -13
  45. package/StepBar.js +61 -60
  46. package/Switch.js +150 -164
  47. package/TabBar.js +544 -417
  48. package/Table.js +1711 -1540
  49. package/Text.js +28 -26
  50. package/TextArea.js +26 -26
  51. package/Tooltip.js +416 -562
  52. package/TransitionOpen.js +179 -158
  53. package/Tree.d.ts +2 -0
  54. package/WaitSpinner.js +1 -1
  55. package/package.json +7 -9
  56. package/types/src/Accordion/Accordion.d.ts +14 -21
  57. package/types/src/Accordion/AccordionContext.d.ts +0 -1
  58. package/types/src/Animation/Animation.d.ts +2 -3
  59. package/types/src/AnimationToggle/docs/examples/Provider.d.ts +2 -2
  60. package/types/src/AnimationToggle/docs/examples/ToggleComponent.d.ts +2 -2
  61. package/types/src/AnimationToggle/useAnimationToggle.d.ts +1 -1
  62. package/types/src/Button/Button.d.ts +2 -2
  63. package/types/src/ButtonGroup/ButtonGroupContext.d.ts +0 -1
  64. package/types/src/ButtonSimple/ButtonSimple.d.ts +1 -3
  65. package/types/src/ButtonSimple/mixin.d.ts +1 -1
  66. package/types/src/Calendar/Calendar.d.ts +2 -2
  67. package/types/src/Calendar/{DateTable.d.ts → DateGrid.d.ts} +9 -9
  68. package/types/src/Calendar/Day.d.ts +8 -4
  69. package/types/src/Card/Card.d.ts +27 -14
  70. package/types/src/CardLayout/CardLayoutContext.d.ts +0 -1
  71. package/types/src/CardLayout/docs/examples/Interactive.d.ts +2 -2
  72. package/types/src/Clickable/Clickable.d.ts +1 -1
  73. package/types/src/CollapsiblePanel/SingleOpenPanelGroupContext.d.ts +0 -1
  74. package/types/src/Color/Color.d.ts +3 -3
  75. package/types/src/Color/ColorInput.d.ts +27 -0
  76. package/types/src/Color/Palette.d.ts +11 -18
  77. package/types/src/Color/Swatch.d.ts +3 -1
  78. package/types/src/ComboBox/ComboBox.d.ts +46 -50
  79. package/types/src/ComboBox/Option.d.ts +34 -18
  80. package/types/src/ControlGroup/docs/examples/CustomizedLabelTarget.d.ts +2 -2
  81. package/types/src/Date/Date.d.ts +3 -2
  82. package/types/src/Date/docs/examples/Controlled.d.ts +2 -2
  83. package/types/src/Date/docs/examples/HighlightToday.d.ts +2 -2
  84. package/types/src/DefinitionList/DefinitionListContext.d.ts +0 -1
  85. package/types/src/Divider/Divider.d.ts +14 -6
  86. package/types/src/Divider/docs/examples/Appearance.d.ts +3 -0
  87. package/types/src/DualListbox/DualListbox.d.ts +5 -1
  88. package/types/src/File/File.d.ts +6 -6
  89. package/types/src/File/FileContext.d.ts +0 -1
  90. package/types/src/File/Item.d.ts +11 -3
  91. package/types/src/File/ItemIcon.d.ts +7 -0
  92. package/types/src/File/docs/examples/Disabled.d.ts +2 -2
  93. package/types/src/File/docs/examples/DropAnywhere.d.ts +2 -2
  94. package/types/src/File/docs/examples/Multi.d.ts +2 -2
  95. package/types/src/File/docs/examples/Single.d.ts +2 -2
  96. package/types/src/FormRows/FormRows.d.ts +8 -8
  97. package/types/src/FormRows/FormRowsContext.d.ts +1 -2
  98. package/types/src/FormRows/Row.d.ts +2 -2
  99. package/types/src/FormRows/RowInternal.d.ts +1 -1
  100. package/types/src/FormRows/SortableRow.d.ts +3 -3
  101. package/types/src/FormRows/docs/examples/Basic.d.ts +2 -2
  102. package/types/src/FormRows/docs/examples/Header.d.ts +2 -2
  103. package/types/src/FormRows/docs/examples/Menu.d.ts +2 -2
  104. package/types/src/FormRows/docs/examples/ReorderOnly.d.ts +2 -2
  105. package/types/src/Image/Image.d.ts +1 -4
  106. package/types/src/JSONTree/docs/examples/Events.d.ts +2 -2
  107. package/types/src/Layout/Layout.d.ts +1 -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/MessageBar/MessageBar.d.ts +5 -1
  112. package/types/src/Modal/ModalContext.d.ts +0 -1
  113. package/types/src/Multiselect/Compact.d.ts +49 -21
  114. package/types/src/Multiselect/Multiselect.d.ts +73 -30
  115. package/types/src/Multiselect/Normal.d.ts +46 -57
  116. package/types/src/Multiselect/Option.d.ts +42 -18
  117. package/types/src/Multiselect/docs/examples/Children.d.ts +2 -2
  118. package/types/src/Multiselect/docs/examples/Controlled.d.ts +2 -2
  119. package/types/src/Multiselect/docs/examples/CustomizeSelected.d.ts +2 -2
  120. package/types/src/Multiselect/docs/examples/Disabled.d.ts +2 -2
  121. package/types/src/Multiselect/docs/examples/Error.d.ts +2 -2
  122. package/types/src/Multiselect/docs/examples/Fetching.d.ts +2 -2
  123. package/types/src/Multiselect/docs/examples/LoadMoreOnScrollBottom.d.ts +2 -2
  124. package/types/src/Multiselect/docs/examples/NewValues.d.ts +2 -2
  125. package/types/src/Multiselect/docs/examples/TabInput.d.ts +2 -2
  126. package/types/src/NonInteractiveCheckbox/NonInteractiveCheckbox.d.ts +9 -8
  127. package/types/src/Number/Number.d.ts +1 -0
  128. package/types/src/Number/docs/examples/Basic.d.ts +2 -2
  129. package/types/src/Number/docs/examples/Limits.d.ts +2 -2
  130. package/types/src/Number/docs/examples/Locale.d.ts +2 -2
  131. package/types/src/Popover/Popover.d.ts +1 -1
  132. package/types/src/Popover/PopoverMenuContext.d.ts +0 -1
  133. package/types/src/RadioBar/RadioBar.d.ts +1 -1
  134. package/types/src/RadioBar/RadioBarContext.d.ts +0 -1
  135. package/types/src/RadioList/RadioListContext.d.ts +0 -1
  136. package/types/src/Scroll/Inner.d.ts +1 -1
  137. package/types/src/Scroll/docs/examples/Controlled.d.ts +2 -2
  138. package/types/src/Search/Search.d.ts +2 -2
  139. package/types/src/Select/SelectBase.d.ts +2 -2
  140. package/types/src/SidePanel/SidePanel.d.ts +8 -3
  141. package/types/src/Slider/Slider.d.ts +1 -1
  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 +34 -20
  150. package/types/src/SplitButton/SplitButton.d.ts +4 -1
  151. package/types/src/StaticContent/StaticContent.d.ts +3 -1
  152. package/types/src/StepBar/Step.d.ts +1 -1
  153. package/types/src/StepBar/StepBar.d.ts +1 -1
  154. package/types/src/StepBar/StepBarContext.d.ts +0 -1
  155. package/types/src/Switch/Switch.d.ts +1 -9
  156. package/types/src/Switch/docs/examples/Basic.d.ts +2 -2
  157. package/types/src/Switch/docs/examples/Disabled.d.ts +2 -2
  158. package/types/src/TabBar/Tab.d.ts +12 -5
  159. package/types/src/TabBar/TabBar.d.ts +4 -3
  160. package/types/src/TabBar/TabBarContext.d.ts +7 -2
  161. package/types/src/Table/Head.d.ts +4 -15
  162. package/types/src/Table/HeadCell.d.ts +23 -25
  163. package/types/src/Table/HeadDropdownCell.d.ts +23 -26
  164. package/types/src/Table/HeadInner.d.ts +4 -10
  165. package/types/src/Table/Row.d.ts +6 -6
  166. package/types/src/Table/Table.d.ts +3 -8
  167. package/types/src/Table/TableContext.d.ts +0 -1
  168. package/types/src/Table/Toggle.d.ts +1 -1
  169. package/types/src/Text/Text.d.ts +5 -1
  170. package/types/src/Tooltip/Tooltip.d.ts +26 -58
  171. package/types/src/Tooltip/docs/examples/Controlled.d.ts +2 -2
  172. package/types/src/TransitionOpen/TransitionOpen.d.ts +6 -1
  173. package/types/src/Tree/TreeContext.d.ts +0 -1
  174. package/types/src/useForceUpdate/useForceUpdate.d.ts +0 -1
  175. package/types/src/useResizeObserver/useResizeObserver.d.ts +2 -1
  176. package/types/src/utils/types.d.ts +2 -3
  177. package/useResizeObserver.js +26 -19
  178. package/types/src/File/Icon.d.ts +0 -3
  179. package/types/src/File/IconCloud.d.ts +0 -3
  180. package/types/src/File/PaperClip.d.ts +0 -3
  181. package/types/src/File/Retry.d.ts +0 -2
  182. package/types/src/File/Trash.d.ts +0 -3
  183. package/types/src/FormRows/icons/FormRowsPlusIcon.d.ts +0 -3
  184. package/types/src/Image/icons/Cross.d.ts +0 -3
  185. package/types/src/Multiselect/docs/examples/CompactSelectAll.d.ts +0 -3
  186. package/types/src/Table/docs/examples/prisma/DockedHeaderScrollbar.d.ts +0 -3
  187. package/types/src/Tooltip/InfoIcon.d.ts +0 -4
package/TabBar.js CHANGED
@@ -61,127 +61,170 @@
61
61
  e.r(t);
62
62
  // EXPORTS
63
63
  e.d(t, {
64
- Tab: () => /* reexport */ Z,
65
- default: () => /* reexport */ pe
64
+ Tab: () => /* reexport */ ne,
65
+ default: () => /* reexport */ Ie
66
66
  });
67
67
  // CONCATENATED MODULE: external "react"
68
68
  const r = require("react");
69
69
  var n = e.n(r);
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 y = require("@splunk/react-ui/Dropdown");
100
+ var g = e.n(y);
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 w = e.n(C);
104
107
  // CONCATENATED MODULE: external "@splunk/ui-utils/i18n"
105
- const S = require("@splunk/ui-utils/i18n");
108
+ const O = require("@splunk/ui-utils/i18n");
106
109
  // CONCATENATED MODULE: external "@splunk/ui-utils/id"
107
- const w = require("@splunk/ui-utils/id");
110
+ const k = require("@splunk/ui-utils/id");
108
111
  // CONCATENATED MODULE: external "@splunk/react-ui/Clickable"
109
- const k = require("@splunk/react-ui/Clickable");
110
- var x = e.n(k);
112
+ const x = require("@splunk/react-ui/Clickable");
113
+ var I = e.n(x);
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 j = (0, c.css)([ "color:", ";" ], d.variables.contentColorActive);
116
+ var P = "2px";
117
+ var T = (0, d.pickVariant)("$layout", {
118
+ horizontal: (0, c.css)([ "background:", ";height:", ";" ], d.variables.contentColorAccentWeak, P),
119
+ vertical: (0, c.css)([ "background:", ";width:", ";" ], d.variables.contentColorAccentWeak, P)
116
120
  });
117
- var T = c()(x()).withConfig({
121
+ var $ = function e(t) {
122
+ var r = t.$hasIcon, n = t.$hasMenu, a = t.$iconPosition;
123
+ if (a === "above" && r && n) {
124
+ return (0, c.css)([ "grid-template-areas:'icon icon' 'label menu' 'gutter gutter' 'underline underline';grid-template-columns:1fr min-content;grid-template-rows:repeat(2,auto) ", " auto;" ], d.variables.spacingXSmall);
125
+ }
126
+ if (a === "above" && r) {
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" && r && n) {
130
+ return (0, c.css)([ "grid-template-areas:'icon label menu' 'underline underline underline';grid-template-columns:16px 1fr min-content;" ]);
131
+ }
132
+ if (a === "left" && r) {
133
+ return (0, c.css)([ "grid-template-areas:'icon label' 'underline underline';grid-template-columns:16px 1fr;" ]);
134
+ }
135
+ if (n) {
136
+ return (0, c.css)([ "grid-template-areas:'label menu' 'underline underline';grid-template-columns:minmax(auto,min-content) min-content;" ]);
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 r = t.$hasIcon, n = t.$iconPosition;
142
+ if (n === "above" && r) {
143
+ return (0, c.css)([ "grid-template-areas:'icon gutter underline' 'label gutter underline';grid-template-columns:1fr ", " ", ";" ], d.variables.spacingXSmall, P);
144
+ }
145
+ if (n === "left" && r) {
146
+ return (0, c.css)([ "grid-template-areas:'icon label gutter underline';grid-template-columns:16px 1fr ", " ", ";" ], d.variables.spacingXSmall, P);
147
+ }
148
+ return (0, c.css)([ "grid-template-areas:'label gutter underline';grid-template-columns:1fr ", " ", ";" ], d.variables.spacingXSmall, P);
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.$tabWidth;
155
+ return t && (0, c.css)([ "width:", "px;" ], t);
156
+ }), (function(e) {
157
+ var t = e.$hasIcon, r = e.$hasMenu, n = e.$iconPosition, a = e.$layout;
158
+ if (a === "vertical") {
159
+ return E({
160
+ $hasIcon: t,
161
+ $iconPosition: n
162
+ });
163
+ }
164
+ return $({
165
+ $hasIcon: t,
166
+ $hasMenu: r,
167
+ $iconPosition: n
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, j, j, 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:", ";" ], P),
182
+ vertical: (0, c.css)([ "width:", ";" ], P)
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 N = function e() {
172
215
  return undefined;
173
216
  };
174
- var q = (0, r.createContext)({
175
- focusedTabId: null,
217
+ var W = (0, r.createContext)({
176
218
  isMenuOpen: false,
177
- onMenuOpen: R,
178
- onMenuClose: R
219
+ onMenuOpen: N,
220
+ onMenuClose: N,
221
+ registerTab: N
179
222
  });
180
- q.displayName = "TabBar";
181
- /* harmony default export */ const D = q;
223
+ W.displayName = "TabBar";
224
+ /* harmony default export */ const V = W;
182
225
  // CONCATENATED MODULE: ./src/utils/getCountValue.ts
183
226
  // A utility for max count
184
- var $ = function e(t, r) {
227
+ var X = function e(t, r) {
185
228
  if (t > r) {
186
229
  return "".concat(r, "+");
187
230
  }
@@ -207,8 +250,8 @@
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
256
  var r = arguments[t];
214
257
  for (var n in r) {
@@ -216,15 +259,15 @@
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
273
  var r = {}.toString.call(e).slice(8, -1);
@@ -238,43 +281,43 @@
238
281
  }
239
282
  return n;
240
283
  }
241
- function L(e, t) {
284
+ function Y(e, t) {
242
285
  var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
243
286
  if (null != r) {
244
- var n, a, o, i, l = [], c = !0, u = !1;
287
+ var n, a, i, o, l = [], u = !0, c = !1;
245
288
  try {
246
- if (o = (r = r.call(e)).next, 0 === t) {
289
+ if (i = (r = r.call(e)).next, 0 === t) {
247
290
  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) {
291
+ u = !1;
292
+ } else for (;!(u = (n = i.call(r)).done) && (l.push(n.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 != r["return"] && (o = r["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 r, n, 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 (n = 0; n < i.length; n++) {
315
+ r = i[n], t.includes(r) || {}.propertyIsEnumerable.call(e, r) && (a[r] = e[r]);
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
322
  var r = {};
280
323
  for (var n in e) {
@@ -285,181 +328,192 @@
285
328
  }
286
329
  return r;
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 re = 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, y = 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, r.useState)(false), x = K(C, 2), I = x[0], j = x[1];
365
+ var P = (0, r.useState)(null), T = K(P, 2), $ = T[0], E = T[1];
366
+ var N = (0, r.useContext)(V), W = N.activeTabId, L = N.disabled, U = N.focusedTabId, H = N.iconPosition, Y = H === void 0 ? "above" : H, G = N.isMenuOpen, Q = N.layout, Z = Q === void 0 ? "horizontal" : Q, re = N.onClick, ne = N.onFocus, ae = N.onMenuOpen, ie = N.onMenuClose, oe = N.registerTab, le = N.width;
367
+ var ue = (0, r.useState)((0, k.createDOMID)("aria-id")), ce = K(ue, 1), se = ce[0];
368
+ var de = (0, r.useState)((0, k.createDOMID)("menu-description")), fe = K(de, 1), ve = fe[0];
369
+ var be = (0, r.useState)((0, k.createDOMID)("popover")), pe = K(be, 1), me = pe[0];
370
+ var ye = (0, r.useMemo)((function() {
371
+ return d || (0, k.createGUID)();
372
+ }), [ d ]);
373
+ var ge = 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 = W === ye;
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 we = (0, r.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 Oe = (0, r.useCallback)((function() {
383
+ $ === null || $ === void 0 ? void 0 : $.focus();
384
+ }), [ $ ]);
385
+ var ke = (0, r.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
+ oe({
390
+ tabId: ye,
391
+ element: e,
392
+ index: y
393
+ });
394
+ }), [ l, oe, ye, y ]);
395
+ var xe = (0, r.useCallback)((function() {
396
+ j(true);
348
397
  }), []);
349
- var Ce = (0, r.useCallback)((function() {
350
- R(false);
398
+ var Ie = (0, r.useCallback)((function() {
399
+ j(false);
351
400
  }), []);
352
- var Se = (0, r.useCallback)((function(e) {
401
+ var je = (0, r.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: ye
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();
412
+ }), [ Ce, re, ye, f ]);
413
+ var Pe = (0, r.useCallback)((function(e) {
414
+ xe();
366
415
  ne === null || ne === void 0 ? void 0 : ne(e, {
367
- tabId: se
416
+ tabId: ye
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
+ }), [ xe, ne, ye ]);
419
+ var Te = (0, r.useCallback)((function() {
420
+ Oe();
421
+ }), [ Oe ]);
422
+ var $e = (0, r.useCallback)((function() {
423
+ Ie();
424
+ }), [ Ie ]);
425
+ var Ee = (0, r.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
+ ae(ye);
429
+ }), [ ae, ye ]);
430
+ var Me = U === ye && G && !!p;
431
+ var Ae = n().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
+ }, n().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 n().createElement(n().Fragment, null, t, n().createElement(g(), {
440
+ toggle: Ae,
392
441
  align: "center",
393
- onRequestOpen: Oe,
394
- onRequestClose: oe,
395
- open: Ie
396
- }, g));
442
+ onRequestOpen: Ee,
443
+ onRequestClose: ie,
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 = n().createElement(D, {
448
+ "data-test": "label",
449
+ $iconPosition: Y
450
+ }, c, !p && (i === 0 || i) && n().createElement(n().Fragment, null, n().createElement(w(), null, " "), n().createElement(R, {
403
451
  "data-test": "count",
404
- disabled: !!fe
405
- }, d ? $(i, d) : i)), !!g && n().createElement(C(), {
452
+ disabled: !!ge
453
+ }, s ? X(i, s) : i)), !!p && n().createElement(w(), {
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, O._)("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 n().createElement(M, F({
462
+ $hasIcon: !!u,
463
+ $hasMenu: !!p,
464
+ $iconPosition: Y,
465
+ $layout: Z,
466
+ $tabWidth: le,
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": ye,
474
+ "data-test-popover-id": v ? me : undefined,
475
+ "data-title": we,
476
+ disabled: ge,
477
+ elementRef: ke,
478
+ onClick: je,
479
+ onFocus: Pe,
480
+ onMouseEnter: xe,
481
+ onBlur: $e,
482
+ onMouseLeave: Ie,
432
483
  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(), {
484
+ tabIndex: Ce ? undefined : -1,
485
+ to: f,
486
+ id: ye
487
+ }, b()(h, "elementRef")), u && n().createElement(_, {
488
+ $iconPosition: Y
489
+ }, u), p && Z === "horizontal" ? ze(_e) : _e, n().createElement(A, {
490
+ $layout: Z
491
+ }), !o && v && n().createElement(S(), {
439
492
  role: "tooltip",
440
- anchor: W,
441
- animationConfig: G,
493
+ anchor: $,
494
+ animationConfig: ee,
442
495
  appearance: "inverted",
443
- closeReasons: J,
444
- defaultPlacement: ee === "vertical" ? "right" : "above",
445
- id: ue,
446
- open: !!W && I,
496
+ closeReasons: te,
497
+ defaultPlacement: Z === "vertical" ? "right" : "above",
498
+ id: me,
499
+ open: !!$ && I,
447
500
  align: "center"
448
- }, n().createElement(A, null, m)), m && n().createElement(C(), {
501
+ }, n().createElement(q, null, v)), v && n().createElement(w(), {
449
502
  "aria-hidden": "true",
450
- id: le
451
- }, m));
503
+ id: se
504
+ }, v));
452
505
  };
453
- Q.propTypes = Y;
454
- /* harmony default export */ const Z = Q;
506
+ re.propTypes = Z;
507
+ re.as = "Tab";
508
+ /* harmony default export */ const ne = re;
455
509
  // CONCATENATED MODULE: ./src/utils/navigateList.ts
456
510
  // A utility for keyboard navigation of lists
457
- function ee(e, t) {
511
+ function ae(e, t) {
458
512
  return e.find((function(e) {
459
513
  return e && e.id === t;
460
514
  }));
461
515
  }
462
- function te(e, t, r) {
516
+ function ie(e, t, r) {
463
517
  for (var n = 0; n < e.length; n += 1) {
464
518
  var a = (n + r) % e.length;
465
519
  if (e[a].disabled !== true) {
@@ -468,7 +522,7 @@
468
522
  }
469
523
  return e[t];
470
524
  }
471
- function re(e, t, r) {
525
+ function oe(e, t, r) {
472
526
  for (var n = e.length; n > 0; n -= 1) {
473
527
  var a = (n + r) % e.length;
474
528
  if (e[a].disabled !== true) {
@@ -478,8 +532,16 @@
478
532
  return e[t];
479
533
  }
480
534
  // CONCATENATED MODULE: ./src/TabBar/TabBar.tsx
481
- function ne() {
482
- return ne = Object.assign ? Object.assign.bind() : function(e) {
535
+ function le(e) {
536
+ "@babel/helpers - typeof";
537
+ return le = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
538
+ return typeof e;
539
+ } : function(e) {
540
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
541
+ }, le(e);
542
+ }
543
+ function ue() {
544
+ return ue = Object.assign ? Object.assign.bind() : function(e) {
483
545
  for (var t = 1; t < arguments.length; t++) {
484
546
  var r = arguments[t];
485
547
  for (var n in r) {
@@ -487,273 +549,338 @@
487
549
  }
488
550
  }
489
551
  return e;
490
- }, ne.apply(null, arguments);
552
+ }, ue.apply(null, arguments);
491
553
  }
492
- function ae(e, t) {
493
- return ue(e) || ce(e, t) || ie(e, t) || oe();
554
+ function ce(e, t) {
555
+ if (null == e) return {};
556
+ var r, n, a = se(e, t);
557
+ if (Object.getOwnPropertySymbols) {
558
+ var i = Object.getOwnPropertySymbols(e);
559
+ for (n = 0; n < i.length; n++) {
560
+ r = i[n], t.includes(r) || {}.propertyIsEnumerable.call(e, r) && (a[r] = e[r]);
561
+ }
562
+ }
563
+ return a;
564
+ }
565
+ function se(e, t) {
566
+ if (null == e) return {};
567
+ var r = {};
568
+ for (var n in e) {
569
+ if ({}.hasOwnProperty.call(e, n)) {
570
+ if (t.includes(n)) continue;
571
+ r[n] = e[n];
572
+ }
573
+ }
574
+ return r;
575
+ }
576
+ function de(e, t) {
577
+ var r = Object.keys(e);
578
+ if (Object.getOwnPropertySymbols) {
579
+ var n = Object.getOwnPropertySymbols(e);
580
+ t && (n = n.filter((function(t) {
581
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
582
+ }))), r.push.apply(r, n);
583
+ }
584
+ return r;
585
+ }
586
+ function fe(e) {
587
+ for (var t = 1; t < arguments.length; t++) {
588
+ var r = null != arguments[t] ? arguments[t] : {};
589
+ t % 2 ? de(Object(r), !0).forEach((function(t) {
590
+ ve(e, t, r[t]);
591
+ })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : de(Object(r)).forEach((function(t) {
592
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
593
+ }));
594
+ }
595
+ return e;
596
+ }
597
+ function ve(e, t, r) {
598
+ return (t = be(t)) in e ? Object.defineProperty(e, t, {
599
+ value: r,
600
+ enumerable: !0,
601
+ configurable: !0,
602
+ writable: !0
603
+ }) : e[t] = r, e;
604
+ }
605
+ function be(e) {
606
+ var t = pe(e, "string");
607
+ return "symbol" == le(t) ? t : t + "";
608
+ }
609
+ function pe(e, t) {
610
+ if ("object" != le(e) || !e) return e;
611
+ var r = e[Symbol.toPrimitive];
612
+ if (void 0 !== r) {
613
+ var n = r.call(e, t || "default");
614
+ if ("object" != le(n)) return n;
615
+ throw new TypeError("@@toPrimitive must return a primitive value.");
616
+ }
617
+ return ("string" === t ? String : Number)(e);
618
+ }
619
+ function me(e, t) {
620
+ return Ce(e) || Se(e, t) || ge(e, t) || ye();
494
621
  }
495
- function oe() {
622
+ function ye() {
496
623
  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
624
  }
498
- function ie(e, t) {
625
+ function ge(e, t) {
499
626
  if (e) {
500
- if ("string" == typeof e) return le(e, t);
627
+ if ("string" == typeof e) return he(e, t);
501
628
  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;
629
+ 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) ? he(e, t) : void 0;
503
630
  }
504
631
  }
505
- function le(e, t) {
632
+ function he(e, t) {
506
633
  (null == t || t > e.length) && (t = e.length);
507
634
  for (var r = 0, n = Array(t); r < t; r++) {
508
635
  n[r] = e[r];
509
636
  }
510
637
  return n;
511
638
  }
512
- function ce(e, t) {
639
+ function Se(e, t) {
513
640
  var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
514
641
  if (null != r) {
515
- var n, a, o, i, l = [], c = !0, u = !1;
642
+ var n, a, i, o, l = [], u = !0, c = !1;
516
643
  try {
517
- if (o = (r = r.call(e)).next, 0 === t) {
644
+ if (i = (r = r.call(e)).next, 0 === t) {
518
645
  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) {
646
+ u = !1;
647
+ } else for (;!(u = (n = i.call(r)).done) && (l.push(n.value), l.length !== t); u = !0) {
521
648
  }
522
649
  } catch (e) {
523
- u = !0, a = e;
650
+ c = !0, a = e;
524
651
  } finally {
525
652
  try {
526
- if (!c && null != r["return"] && (i = r["return"](), Object(i) !== i)) return;
653
+ if (!u && null != r["return"] && (o = r["return"](), Object(o) !== o)) return;
527
654
  } finally {
528
- if (u) throw a;
655
+ if (c) throw a;
529
656
  }
530
657
  }
531
658
  return l;
532
659
  }
533
660
  }
534
- function ue(e) {
661
+ function Ce(e) {
535
662
  if (Array.isArray(e)) return e;
536
663
  }
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;
664
+ var we = 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
+ onChange: i().func,
676
+ tabWidth: i().number
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 ke = function e(t) {
679
+ return Array.from(t.entries()).sort((function(e, t) {
680
+ var r = me(e, 2), n = r[1].index;
681
+ var a = me(t, 2), i = a[1].index;
682
+ return n - i;
683
+ })).map((function(e) {
684
+ var t = me(e, 2), r = t[0], n = t[1];
685
+ return fe({
686
+ id: r
687
+ }, n);
688
+ }));
689
+ };
690
+ function xe(e) {
691
+ var t = e.activeTabId, a = e.autoActivate, i = e.children, l = e.disabled, c = l === void 0 ? false : l, s = e.elementRef, d = e.iconPosition, v = d === void 0 ? "left" : d, b = e.layout, p = b === void 0 ? "horizontal" : b, m = e.onChange, y = e.tabWidth, g = ce(e, [ "activeTabId", "autoActivate", "children", "disabled", "elementRef", "iconPosition", "layout", "onChange", "tabWidth" ]);
575
692
  // @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
693
+ var h = (0, r.useState)(false), S = me(h, 2), C = S[0], w = S[1];
694
+ var O = (0, r.useState)(t), k = me(O, 2), x = k[0], I = k[1];
695
+ // need to keep track of the focused tab id in a ref to avoid re-generating registerTab
696
+ // because every time `registerTab` changes, it calls `ref` on all tabs
697
+ var j = (0, r.useRef)(t);
698
+ j.current = x;
699
+ // If the tab that was focused is removed, we need to keep track of what index it was last at
700
+ var P = (0, r.useRef)();
701
+ var T = (0, r.useRef)(null);
702
+ // map of tabId to tab element and index
703
+ var $ = (0, r.useRef)();
704
+ if (!$.current) {
705
+ $.current = new Map;
706
+ }
707
+ var E = p === "vertical" ? "down" : "right";
708
+ var M = p === "vertical" ? "up" : "left";
709
+ var A = y && y > we ? y : null;
710
+ // focus the tab belonging to the given tabId
711
+ var z = (0, r.useCallback)((function(e) {
712
+ var t;
713
+ if (!e) {
592
714
  return;
593
715
  }
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);
600
- }), []);
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) {
607
- // tab already focused, no need to continue
716
+ var r = (t = $.current) === null || t === void 0 ? void 0 : t.get(e);
717
+ if (!r) {
718
+ var n = ke($.current);
719
+ var a = n[0];
720
+ if (a) {
721
+ var i;
722
+ I(a.id);
723
+ (i = a.element) === null || i === void 0 ? void 0 : i.focus();
724
+ }
608
725
  return;
609
726
  }
727
+ I(e);
728
+ r.element.focus();
729
+ }), []);
730
+ var _ = (0, r.useCallback)((function(e) {
731
+ var t = e.tabId, r = e.element, n = e.index;
732
+ if (r) {
733
+ var a;
734
+ (a = $.current) === null || a === void 0 ? void 0 : a.set(t, {
735
+ element: r,
736
+ index: n
737
+ });
738
+ } else {
739
+ var i;
740
+ (i = $.current) === null || i === void 0 ? void 0 : i["delete"](t);
741
+ // if the tab being removed is the focused tab, keep track of its last known index
742
+ if (j.current === t) {
743
+ P.current = n;
744
+ }
745
+ }
746
+ }), []);
747
+ var D = (0, r.useCallback)((function(e) {
748
+ T.current = e;
749
+ B(s, e);
750
+ }), [ s, T ]);
751
+ // callback to handle focus event sent from a Tab
752
+ var R = (0, r.useCallback)((function(e, r) {
610
753
  var n = r.tabId;
611
- if (n != null) {
612
- E(n);
754
+ if (document.activeElement === e.target && x === n) {
755
+ // tab already focused, no need to continue
756
+ return;
613
757
  }
758
+ z(n);
614
759
  if (a && t !== n) {
615
- p === null || p === void 0 ? void 0 : p(e, {
760
+ m === null || m === void 0 ? void 0 : m(e, {
616
761
  selectedTabId: n
617
762
  });
618
763
  }
619
- }), [ t, a, p ]);
620
- var L = (0, r.useCallback)((function(e, t) {
764
+ }), [ t, a, x, z, m ]);
765
+ var q = (0, r.useCallback)((function(e, t) {
621
766
  var r = t.tabId;
622
- E(r);
623
- p === null || p === void 0 ? void 0 : p(e, {
767
+ z(r);
768
+ m === null || m === void 0 ? void 0 : m(e, {
624
769
  selectedTabId: r
625
770
  });
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) {
771
+ }), [ z, m ]);
772
+ var N = (0, r.useCallback)((function(e) {
645
773
  // if command key on Mac was pressed ignore
646
774
  if (e.nativeEvent.metaKey) {
647
775
  return;
648
776
  }
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) {
777
+ var t = ke($.current);
778
+ var r = x ? t.findIndex((function(e) {
779
+ return e.id === x;
780
+ })) : -1;
781
+ var n = t.map((function(e) {
782
+ return e.element;
783
+ }));
784
+ var a = r === -1 ? 0 : r;
785
+ var i = (0, o.keycode)(e.nativeEvent);
786
+ var l;
787
+ if (i === E) {
788
+ l = ie(n, a, a + 1);
789
+ } else if (i === M) {
790
+ l = oe(n, a, a - 1);
791
+ } else if (i === "home") {
792
+ l = ie(n, a, 0);
793
+ } else if (i === "end") {
794
+ l = oe(n, a, n.length - 1);
795
+ } else if (p === "horizontal" && e.shiftKey && i === "f10") {
796
+ w((function(e) {
661
797
  if (e) {
662
- // if we're closing, we want to shift focus to the tab
663
- var t = R.current[x];
798
+ var t = n[a];
664
799
  t === null || t === void 0 ? void 0 : t.focus();
665
800
  }
666
801
  return !e;
667
802
  }));
668
- } else if (b === "horizontal" && t === "down") {
669
- S(true);
803
+ } else if (p === "horizontal" && i === "down") {
804
+ w(true);
670
805
  }
671
- if (r) {
672
- E(r.id);
806
+ if (l) {
807
+ z(l.id);
673
808
  e.preventDefault();
674
809
  }
675
- }), [ x, b, q, $ ]);
676
- var X = (0, r.useCallback)((function(e) {
677
- E(e);
810
+ }), [ x, z, p, E, M ]);
811
+ var W = (0, r.useCallback)((function(e) {
812
+ z(e);
678
813
  // 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) {
814
+ w(true);
815
+ }), [ z ]);
816
+ var X = (0, r.useCallback)((function(e) {
682
817
  var t = e.event;
683
818
  // prevent content clicks/enter key from changing the active tab
684
819
  t === null || t === void 0 ? void 0 : t.stopPropagation();
685
- S(false);
820
+ w(false);
686
821
  }), []);
687
- var G = (0, r.useMemo)((function() {
822
+ var F = (0, r.useMemo)((function() {
688
823
  return {
689
824
  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
825
+ focusedTabId: x,
826
+ iconPosition: v,
827
+ layout: p,
828
+ onClick: q,
829
+ onFocus: R,
830
+ width: A,
831
+ onMenuOpen: W,
832
+ onMenuClose: X,
833
+ isMenuOpen: C,
834
+ registerTab: _,
835
+ activeTabId: t
699
836
  };
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;
837
+ }), [ c, x, v, p, q, R, A, W, X, C, _, t ]);
838
+ var K = (0, r.useMemo)((function() {
839
+ return r.Children.toArray(i).filter(r.isValidElement).map((function(e, t) {
840
+ if (e.type.as === "Tab") {
841
+
842
+ return (0, r.cloneElement)(e, {
843
+ index: t
844
+ });
717
845
  }
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) {
846
+ return e;
847
+ }));
848
+ }), [ i ]);
849
+ var L = u()(K);
850
+ (0, r.useEffect)((function() {
851
+ // if the focused tab is removed, focus the next tab
852
+ if (L !== K) {
853
+ var e;
854
+ var t = ke($.current);
855
+ if (t.find((function(e) {
856
+ return e.id === j.current;
857
+ }))) {
858
+ // focused tab is still present
729
859
  return;
730
860
  }
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);
861
+ var r = Math.min((e = P.current) !== null && e !== void 0 ? e : 0, t.length - 1);
862
+ var n = t[r];
863
+ if (n) {
864
+ z(n.id);
736
865
  }
737
866
  }
738
- }));
867
+ }), [ K, z, L ]);
739
868
 
740
- return n().createElement(s, ne({
741
- "data-tab-layout": b,
869
+ return n().createElement(f, ue({
870
+ "data-tab-layout": p,
742
871
  "data-test-active-tab-id": t,
743
872
  "data-test": "tab-bar",
744
873
  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
874
+ ref: D,
875
+ $layout: p,
876
+ onKeyDown: N
877
+ }, g), n().createElement(V.Provider, {
878
+ value: F
752
879
  }, K));
753
880
  }
754
- be.propTypes = ve;
755
- be.Tab = Z;
756
- /* harmony default export */ const pe = be;
881
+ xe.propTypes = Oe;
882
+ xe.Tab = ne;
883
+ /* harmony default export */ const Ie = xe;
757
884
  // CONCATENATED MODULE: ./src/TabBar/index.ts
758
885
  module.exports = t;
759
886
  /******/})();