@splunk/react-ui 5.3.0 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/Accordion.js +31 -31
  2. package/Avatar.js +13 -13
  3. package/Badge.js +154 -0
  4. package/Breadcrumbs.js +66 -63
  5. package/ButtonSimple.js +52 -52
  6. package/CHANGELOG.md +43 -0
  7. package/CardLayout.js +39 -36
  8. package/Clickable.js +5 -6
  9. package/Code.js +917 -424
  10. package/CollapsiblePanel.js +1 -1
  11. package/Color.js +904 -1025
  12. package/ComboBox.js +6 -5
  13. package/DefinitionList.js +1 -1
  14. package/FormRows.js +13 -11
  15. package/JSONTree.js +682 -1408
  16. package/Link.js +74 -44
  17. package/MIGRATION.md +32 -1
  18. package/Markdown.js +9 -5
  19. package/Menu.js +100 -97
  20. package/Multiselect.js +1223 -2858
  21. package/Number.js +3 -3
  22. package/PhoneNumber.d.ts +2 -0
  23. package/PhoneNumber.js +769 -0
  24. package/Popover.js +235 -232
  25. package/RadioList.js +166 -151
  26. package/Resize.js +11 -8
  27. package/ResultsMenu.js +911 -1030
  28. package/ScreenReaderContent.js +86 -130
  29. package/Scroll.js +366 -425
  30. package/Select.js +267 -1947
  31. package/SelectBase.d.ts +2 -0
  32. package/SelectBase.js +1681 -0
  33. package/Slider.js +202 -199
  34. package/SlidingPanels.js +170 -175
  35. package/StepBar.js +123 -97
  36. package/Switch.js +137 -118
  37. package/TabBar.js +296 -295
  38. package/TabLayout.js +14 -14
  39. package/Table.js +1562 -1516
  40. package/TextArea.js +596 -684
  41. package/TransitionOpen.js +82 -74
  42. package/Tree.js +638 -682
  43. package/docker-compose.yml +99 -52
  44. package/package.json +16 -12
  45. package/stubs-splunkui.d.ts +0 -86
  46. package/test-runner-jest.config.js +1 -0
  47. package/types/src/Badge/Badge.d.ts +29 -0
  48. package/types/src/Badge/docs/examples/Basic.d.ts +5 -0
  49. package/types/src/Badge/docs/examples/Count.d.ts +6 -0
  50. package/types/src/Badge/docs/examples/CustomColors.d.ts +8 -0
  51. package/types/src/Badge/docs/examples/Icon.d.ts +6 -0
  52. package/types/src/Badge/index.d.ts +2 -0
  53. package/types/src/Breadcrumbs/Breadcrumbs.d.ts +1 -5
  54. package/types/src/Breadcrumbs/BreadcrumbsContext.d.ts +7 -0
  55. package/types/src/Breadcrumbs/Item.d.ts +1 -1
  56. package/types/src/ButtonSimple/mixin.d.ts +1 -1
  57. package/types/src/Code/Code.d.ts +4 -3
  58. package/types/src/Code/index.d.ts +1 -0
  59. package/types/src/JSONTree/JSONTreeItem.d.ts +1 -1
  60. package/types/src/JSONTree/renderTreeItems.d.ts +1 -1
  61. package/types/src/Link/Link.d.ts +4 -0
  62. package/types/src/Link/LinkContext.d.ts +14 -0
  63. package/types/src/Link/docs/examples/Visited.d.ts +7 -0
  64. package/types/src/Link/index.d.ts +1 -0
  65. package/types/src/Modal/ModalContext.d.ts +1 -1
  66. package/types/src/Multiselect/Compact.d.ts +3 -3
  67. package/types/src/Multiselect/Multiselect.d.ts +1 -1
  68. package/types/src/Multiselect/Normal.d.ts +2 -2
  69. package/types/src/Number/utils.d.ts +1 -1
  70. package/types/src/PhoneNumber/PhoneNumber.d.ts +139 -0
  71. package/types/src/PhoneNumber/docs/examples/Controlled.d.ts +7 -0
  72. package/types/src/PhoneNumber/docs/examples/DefaultCountry.d.ts +7 -0
  73. package/types/src/PhoneNumber/docs/examples/Disabled.d.ts +6 -0
  74. package/types/src/PhoneNumber/docs/examples/Error.d.ts +6 -0
  75. package/types/src/PhoneNumber/docs/examples/Inline.d.ts +7 -0
  76. package/types/src/PhoneNumber/docs/examples/Uncontrolled.d.ts +7 -0
  77. package/types/src/PhoneNumber/index.d.ts +2 -0
  78. package/types/src/PhoneNumber/utils.d.ts +47 -0
  79. package/types/src/Popover/getPlacement.d.ts +1 -1
  80. package/types/src/RadioList/Option.d.ts +7 -2
  81. package/types/src/RadioList/RadioListContext.d.ts +1 -1
  82. package/types/src/RadioList/docs/examples/Description.d.ts +6 -0
  83. package/types/src/Select/Option.d.ts +8 -3
  84. package/types/src/Select/Select.d.ts +1 -1
  85. package/types/src/{Select → SelectBase}/OptionBase.d.ts +8 -2
  86. package/types/src/{Select → SelectBase}/SelectBase.d.ts +3 -1
  87. package/types/src/SelectBase/index.d.ts +2 -0
  88. package/types/src/StepBar/StepBar.d.ts +4 -1
  89. package/types/src/StepBar/StepBarContext.d.ts +1 -0
  90. package/types/src/StepBar/docs/examples/Vertical.d.ts +6 -0
  91. package/types/src/Switch/Switch.d.ts +10 -1
  92. package/types/src/TabBar/Tab.d.ts +3 -1
  93. package/types/src/TabBar/docs/examples/Icons.d.ts +4 -0
  94. package/types/src/TabBar/docs/examples/Tooltips.d.ts +3 -0
  95. package/types/src/TabLayout/Panel.d.ts +2 -0
  96. package/types/src/Table/Body.d.ts +6 -1
  97. package/types/src/Table/Cell.d.ts +5 -1
  98. package/types/src/Table/Head.d.ts +6 -2
  99. package/types/src/Table/HeadCell.d.ts +5 -1
  100. package/types/src/Table/Row.d.ts +5 -1
  101. package/types/src/Table/Table.d.ts +21 -1
  102. package/types/src/Table/TableContext.d.ts +1 -0
  103. package/types/src/Table/docs/examples/HorizontalOverflowScroll.d.ts +8 -0
  104. package/types/src/Table/docs/examples/PinActionColumn.d.ts +7 -0
  105. package/types/src/TransitionOpen/TransitionOpen.d.ts +3 -1
  106. package/types/src/Tree/TreeContext.d.ts +1 -1
  107. package/types/src/useResizeObserver/useResizeObserver.d.ts +2 -0
  108. package/types/src/useRovingFocus/useRovingFocus.d.ts +8 -1
  109. package/useControlled.js +61 -97
  110. package/usePrevious.d.ts +2 -0
  111. package/usePrevious.js +30 -62
  112. package/useResizeObserver.js +71 -136
  113. package/useRovingFocus.js +96 -41
  114. /package/types/src/{Select → SelectBase}/SelectAllOption.d.ts +0 -0
@@ -1,48 +1,19 @@
1
1
  /******/ (() => {
2
2
  // webpackBootstrap
3
3
  /******/ "use strict";
4
- /******/ var e = {
5
- /***/ 9497:
6
- /***/ e => {
7
- e.exports = require("react");
8
- /***/
9
- /******/ }
10
- };
11
- /************************************************************************/
12
- /******/ // The module cache
13
- /******/ var r = {};
14
- /******/
15
- /******/ // The require function
16
- /******/ function t(n) {
17
- /******/ // Check if module is in cache
18
- /******/ var i = r[n];
19
- /******/ if (i !== undefined) {
20
- /******/ return i.exports;
21
- /******/ }
22
- /******/ // Create a new module (and put it into the cache)
23
- /******/ var o = r[n] = {
24
- /******/ // no module.id needed
25
- /******/ // no module.loaded needed
26
- /******/ exports: {}
27
- /******/ };
28
- /******/
29
- /******/ // Execute the module function
30
- /******/ e[n](o, o.exports, t);
31
- /******/
32
- /******/ // Return the exports of the module
33
- /******/ return o.exports;
34
- /******/ }
4
+ /******/ // The require scope
5
+ /******/ var e = {};
35
6
  /******/
36
7
  /************************************************************************/
37
8
  /******/ /* webpack/runtime/define property getters */
38
9
  /******/ (() => {
39
10
  /******/ // define getter functions for harmony exports
40
- /******/ t.d = (e, r) => {
41
- /******/ for (var n in r) {
42
- /******/ if (t.o(r, n) && !t.o(e, n)) {
43
- /******/ Object.defineProperty(e, n, {
11
+ /******/ e.d = (r, t) => {
12
+ /******/ for (var n in t) {
13
+ /******/ if (e.o(t, n) && !e.o(r, n)) {
14
+ /******/ Object.defineProperty(r, n, {
44
15
  enumerable: true,
45
- get: r[n]
16
+ get: t[n]
46
17
  });
47
18
  /******/ }
48
19
  /******/ }
@@ -51,14 +22,14 @@
51
22
  /******/
52
23
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
53
24
  /******/ (() => {
54
- /******/ t.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)
25
+ /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)
55
26
  /******/;
56
27
  })();
57
28
  /******/
58
29
  /******/ /* webpack/runtime/make namespace object */
59
30
  /******/ (() => {
60
31
  /******/ // define __esModule on exports
61
- /******/ t.r = e => {
32
+ /******/ e.r = e => {
62
33
  /******/ if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
63
34
  /******/ Object.defineProperty(e, Symbol.toStringTag, {
64
35
  value: "Module"
@@ -70,107 +41,71 @@
70
41
  /******/ };
71
42
  /******/ })();
72
43
  /******/
73
- /************************************************************************/ var n = {};
74
- // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
75
- (() => {
76
- // ESM COMPAT FLAG
77
- t.r(n);
78
- // EXPORTS
79
- t.d(n, {
80
- default: () => /* reexport */ c
81
- });
82
- // EXTERNAL MODULE: external "react"
83
- var e = t(9497);
84
- // CONCATENATED MODULE: ./src/useResizeObserver/useResizeObserver.ts
85
- function r(e, r) {
86
- return a(e) || l(e, r) || o(e, r) || i();
87
- }
88
- function i() {
89
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
90
- }
91
- function o(e, r) {
92
- if (e) {
93
- if ("string" == typeof e) return u(e, r);
94
- var t = {}.toString.call(e).slice(8, -1);
95
- return "Object" === t && e.constructor && (t = e.constructor.name), "Map" === t || "Set" === t ? Array.from(e) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? u(e, r) : void 0;
96
- }
97
- }
98
- function u(e, r) {
99
- (null == r || r > e.length) && (r = e.length);
100
- for (var t = 0, n = Array(r); t < r; t++) {
101
- n[t] = e[t];
102
- }
103
- return n;
104
- }
105
- function l(e, r) {
106
- var t = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
107
- if (null != t) {
108
- var n, i, o, u, l = [], a = !0, f = !1;
109
- try {
110
- if (o = (t = t.call(e)).next, 0 === r) {
111
- if (Object(t) !== t) return;
112
- a = !1;
113
- } else for (;!(a = (n = o.call(t)).done) && (l.push(n.value), l.length !== r); a = !0) {
114
- }
115
- } catch (e) {
116
- f = !0, i = e;
117
- } finally {
118
- try {
119
- if (!a && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
120
- } finally {
121
- if (f) throw i;
122
- }
123
- }
124
- return l;
125
- }
126
- }
127
- function a(e) {
128
- if (Array.isArray(e)) return e;
129
- }
130
- /**
44
+ /************************************************************************/ var r = {};
45
+ // ESM COMPAT FLAG
46
+ e.r(r);
47
+ // EXPORTS
48
+ e.d(r, {
49
+ default: () => /* reexport */ u
50
+ });
51
+ // CONCATENATED MODULE: external "react"
52
+ const t = require("react");
53
+ // CONCATENATED MODULE: external "use-sync-external-store/shim"
54
+ const n = require("use-sync-external-store/shim");
55
+ // CONCATENATED MODULE: ./src/useResizeObserver/useResizeObserver.ts
56
+ // This shim is here for React 16 support
57
+ // Cache the server snapshot to avoid creating new objects on every render
58
+ var i = {
59
+ width: 0,
60
+ height: 0
61
+ };
62
+ /**
131
63
  * Watches a React ref element for changes in size.
64
+ * Uses useSyncExternalStore for better React 18 concurrent rendering support.
132
65
  *
133
66
  * @param ref - The React ref to observe size changes on
134
- */ var f = function t(n, i) {
135
- var o = (0, e.useState)({
136
- width: 0,
137
- height: 0
138
- }), u = r(o, 2), l = u[0], a = u[1];
139
- (0, e.useEffect)((function() {
140
- var e = n.current;
141
- if (typeof window !== "undefined" && window.ResizeObserver) {
142
- var r = new ResizeObserver((function(e) {
143
- if (e[0]) {
144
- var r, t;
145
- var o = {
146
- width: (n === null || n === void 0 ? void 0 : (r = n.current) === null || r === void 0 ? void 0 : r.getBoundingClientRect().width) || 0,
147
- height: (n === null || n === void 0 ? void 0 : (t = n.current) === null || t === void 0 ? void 0 : t.getBoundingClientRect().height) || 0
148
- };
149
- a((function(e) {
150
- if (e.height !== o.height || e.width !== o.width) {
151
- i === null || i === void 0 ? void 0 : i(o);
152
- return o;
153
- }
154
- return e;
155
- }));
156
- }
157
- }));
158
- if (e) {
159
- r.observe(e);
160
- }
161
- return function() {
162
- if (e) {
163
- r.unobserve(e);
67
+ * @param onResize - Callback function that receives the new dimensions
68
+ */ var o = function e(r, o) {
69
+ var u = (0, t.useRef)({
70
+ width: 0,
71
+ height: 0
72
+ });
73
+ var d = (0, t.useCallback)((function(e) {
74
+ var t = r.current;
75
+ if (!t || typeof window === "undefined" || !window.ResizeObserver) {
76
+ return function() {};
77
+ // No-op if not in browser or no ResizeObserver support
164
78
  }
165
- };
79
+ var n = function t() {
80
+ var n, i;
81
+ var d = {
82
+ width: (r === null || r === void 0 ? void 0 : (n = r.current) === null || n === void 0 ? void 0 : n.getBoundingClientRect().width) || 0,
83
+ height: (r === null || r === void 0 ? void 0 : (i = r.current) === null || i === void 0 ? void 0 : i.getBoundingClientRect().height) || 0
84
+ };
85
+ if (u.current.width !== d.width || u.current.height !== d.height) {
86
+ u.current = d;
87
+ o === null || o === void 0 ? void 0 : o(d);
88
+ e();
166
89
  }
167
- // Return a no-op function to satisfy consistent-return rule
168
- return function() {};
169
- }), [ i, n ]);
170
- return l;
171
- };
172
- /* harmony default export */ const c = f;
173
- }) // CONCATENATED MODULE: ./src/useResizeObserver/index.ts
174
- ();
175
- module.exports = n;
90
+ };
91
+ var i = new ResizeObserver(n);
92
+ i.observe(t);
93
+ // Initial measurement
94
+ n();
95
+ return function() {
96
+ i.disconnect();
97
+ };
98
+ }), [ r, o ]);
99
+ // Use useSyncExternalStore to handle the subscription to ensure proper synchronization with
100
+ // Reacts concurrent rendering, it handles cases where the resize event might be interrupted
101
+ // or batched with other updates
102
+ return (0, n.useSyncExternalStore)(d, (function() {
103
+ return u.current;
104
+ }), (function() {
105
+ return i;
106
+ }));
107
+ };
108
+ /* harmony default export */ const u = o;
109
+ // CONCATENATED MODULE: ./src/useResizeObserver/index.ts
110
+ module.exports = r;
176
111
  /******/})();
package/useRovingFocus.js CHANGED
@@ -8,12 +8,12 @@
8
8
  /******/ /* webpack/runtime/define property getters */
9
9
  /******/ (() => {
10
10
  /******/ // define getter functions for harmony exports
11
- /******/ e.d = (t, r) => {
12
- /******/ for (var n in r) {
13
- /******/ if (e.o(r, n) && !e.o(t, n)) {
14
- /******/ Object.defineProperty(t, n, {
11
+ /******/ e.d = (r, t) => {
12
+ /******/ for (var n in t) {
13
+ /******/ if (e.o(t, n) && !e.o(r, n)) {
14
+ /******/ Object.defineProperty(r, n, {
15
15
  enumerable: true,
16
- get: r[n]
16
+ get: t[n]
17
17
  });
18
18
  /******/ }
19
19
  /******/ }
@@ -22,7 +22,7 @@
22
22
  /******/
23
23
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
24
24
  /******/ (() => {
25
- /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)
25
+ /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)
26
26
  /******/;
27
27
  })();
28
28
  /******/
@@ -41,19 +41,70 @@
41
41
  /******/ };
42
42
  /******/ })();
43
43
  /******/
44
- /************************************************************************/ var t = {};
44
+ /************************************************************************/ var r = {};
45
45
  // ESM COMPAT FLAG
46
- e.r(t);
46
+ e.r(r);
47
47
  // EXPORTS
48
- e.d(t, {
49
- default: () => /* reexport */ u
48
+ e.d(r, {
49
+ default: () => /* reexport */ s
50
50
  });
51
51
  // CONCATENATED MODULE: external "react"
52
- const r = require("react");
52
+ const t = require("react");
53
53
  // CONCATENATED MODULE: external "@splunk/ui-utils/focus"
54
54
  const n = require("@splunk/ui-utils/focus");
55
55
  // CONCATENATED MODULE: ./src/useRovingFocus/useRovingFocus.tsx
56
- var a = {
56
+ function o(e) {
57
+ "@babel/helpers - typeof";
58
+ return o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
59
+ return typeof e;
60
+ } : function(e) {
61
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
62
+ }, o(e);
63
+ }
64
+ function u(e, r) {
65
+ var t = Object.keys(e);
66
+ if (Object.getOwnPropertySymbols) {
67
+ var n = Object.getOwnPropertySymbols(e);
68
+ r && (n = n.filter((function(r) {
69
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
70
+ }))), t.push.apply(t, n);
71
+ }
72
+ return t;
73
+ }
74
+ function i(e) {
75
+ for (var r = 1; r < arguments.length; r++) {
76
+ var t = null != arguments[r] ? arguments[r] : {};
77
+ r % 2 ? u(Object(t), !0).forEach((function(r) {
78
+ a(e, r, t[r]);
79
+ })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : u(Object(t)).forEach((function(r) {
80
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
81
+ }));
82
+ }
83
+ return e;
84
+ }
85
+ function a(e, r, t) {
86
+ return (r = c(r)) in e ? Object.defineProperty(e, r, {
87
+ value: t,
88
+ enumerable: !0,
89
+ configurable: !0,
90
+ writable: !0
91
+ }) : e[r] = t, e;
92
+ }
93
+ function c(e) {
94
+ var r = f(e, "string");
95
+ return "symbol" == o(r) ? r : r + "";
96
+ }
97
+ function f(e, r) {
98
+ if ("object" != o(e) || !e) return e;
99
+ var t = e[Symbol.toPrimitive];
100
+ if (void 0 !== t) {
101
+ var n = t.call(e, r || "default");
102
+ if ("object" != o(n)) return n;
103
+ throw new TypeError("@@toPrimitive must return a primitive value.");
104
+ }
105
+ return ("string" === r ? String : Number)(e);
106
+ }
107
+ var l = {
57
108
  enableLoop: false,
58
109
  orientation: "horizontal",
59
110
  enableTab: false,
@@ -78,48 +129,52 @@
78
129
  * <button type="button">second</button>
79
130
  * </div>
80
131
  * ```
81
- */ function o() {
82
- var e = (0, r.useRef)(0);
83
- var t = (0, r.useRef)([]);
84
- var o = function r(n) {
85
- e.current = n;
86
- t.current.forEach((function(t, r) {
87
- return r === e.current ? t.removeAttribute("tabindex") : t.setAttribute("tabindex", "-1");
132
+ */ function b() {
133
+ var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
134
+ var r = (0, t.useRef)(0);
135
+ var o = (0, t.useRef)([]);
136
+ var u = i(i({}, l), e);
137
+ var a = function e(t) {
138
+ r.current = t;
139
+ o.current.forEach((function(e, t) {
140
+ return t === r.current ? e.removeAttribute("tabindex") : e.setAttribute("tabindex", "-1");
88
141
  }));
89
142
  };
90
- var u = function r(a) {
91
- t.current = a != null ? (0, n.getSortedTabbableElements)(a, {
143
+ var c = function e(t) {
144
+ o.current = t != null ? (0, n.getSortedTabbableElements)(t, {
92
145
  ignoreTabIndex: true
93
146
  }) : [];
94
- o(e.current);
147
+ a(r.current);
95
148
  };
96
- var i = function e(r) {
97
- var n = r.relatedTarget instanceof Element && t.current.includes(r.relatedTarget);
98
- if (!n) {
99
- o(0);
149
+ var f = function e(r) {
150
+ var t = r.relatedTarget instanceof HTMLElement && o.current.includes(r.relatedTarget);
151
+ if (!t) {
152
+ a(0);
100
153
  }
101
154
  };
102
- var c = function e(r) {
103
- var n = r.target instanceof Element ? t.current.indexOf(r.target) : -1;
104
- if (n >= 0) {
105
- o(n);
155
+ var b = function e(r) {
156
+ var t = r.target instanceof HTMLElement ? o.current.indexOf(r.target) : -1;
157
+ if (t >= 0) {
158
+ a(t);
106
159
  }
107
160
  };
108
- var l = function e(r) {
109
- var o = t.current.includes(r.nativeEvent.target);
110
- /* Only apply focus if we are among the navigable items in this container */ if (r.nativeEvent.target instanceof HTMLElement && o) {
111
- var u = t.current.indexOf(r.nativeEvent.target);
112
- (0, n.handleFocus)(r.key, t.current, u, a);
161
+ var s = function e(r) {
162
+ var t = r.nativeEvent.target;
163
+ var i = t instanceof HTMLElement ? o.current.indexOf(t) : -1;
164
+ if (i === -1) {
165
+ return;
113
166
  }
167
+ /* Only apply focus if we are among the navigable items in this container */ (0,
168
+ n.handleFocus)(r.key, o.current, i, u);
114
169
  };
115
170
  return {
116
- ref: u,
117
- onBlur: i,
118
- onFocus: c,
119
- onKeyDown: l
171
+ ref: c,
172
+ onBlur: f,
173
+ onFocus: b,
174
+ onKeyDown: s
120
175
  };
121
176
  }
122
- /* harmony default export */ const u = o;
177
+ /* harmony default export */ const s = b;
123
178
  // CONCATENATED MODULE: ./src/useRovingFocus/index.ts
124
- module.exports = t;
179
+ module.exports = r;
125
180
  /******/})();