@splunk/react-ui 5.9.0 → 5.9.1

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 (53) hide show
  1. package/ButtonSimple.js +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/Code.js +177 -170
  4. package/ColumnLayout.js +69 -45
  5. package/Dropdown.js +74 -68
  6. package/LICENSE +1 -1
  7. package/MIGRATION.md +40 -0
  8. package/Markdown.js +331 -306
  9. package/Menu.js +2 -2
  10. package/Multiselect.js +59 -59
  11. package/Number.js +236 -242
  12. package/SimpleTable.d.ts +2 -0
  13. package/SimpleTable.js +433 -0
  14. package/SlidingPanels.js +224 -153
  15. package/SpotLight.d.ts +2 -0
  16. package/SpotLight.js +687 -0
  17. package/Table.js +1230 -1233
  18. package/docker-compose.yml +12 -18
  19. package/docs-llm/Avatar.md +2 -2
  20. package/docs-llm/Collapsible Panel.md +11 -57
  21. package/docs-llm/Column Layout.md +2 -2
  22. package/docs-llm/Divider.md +33 -0
  23. package/docs-llm/Message Bar.md +4 -1
  24. package/docs-llm/Multiselect.md +180 -159
  25. package/docs-llm/Table.md +7 -7
  26. package/docs-llm/Typography.md +1 -1
  27. package/docs-llm/llms.txt +1 -1
  28. package/package.json +9 -11
  29. package/test-runner-jest.config.js +4 -53
  30. package/types/src/CollapsiblePanel/docs/examples/Actions.d.ts +1 -1
  31. package/types/src/ColumnLayout/ColumnLayout.d.ts +2 -2
  32. package/types/src/Divider/docs/examples/VerticalWithAlignItems.d.ts +8 -0
  33. package/types/src/Markdown/Markdown.d.ts +14 -2
  34. package/types/src/Markdown/renderers/MarkdownTable.d.ts +2 -22
  35. package/types/src/Markdown/renderers/MarkdownWrapper.d.ts +11 -0
  36. package/types/src/Markdown/renderers/index.d.ts +3 -1
  37. package/types/src/Multiselect/Compact.d.ts +4 -0
  38. package/types/src/Multiselect/Multiselect.d.ts +4 -0
  39. package/types/src/Multiselect/docs/examples/LoadMoreWithSelectAll.d.ts +9 -0
  40. package/types/src/SelectBase/SelectBase.d.ts +4 -0
  41. package/types/src/SimpleTable/Body.d.ts +25 -0
  42. package/types/src/SimpleTable/Cell.d.ts +20 -0
  43. package/types/src/SimpleTable/Head.d.ts +20 -0
  44. package/types/src/SimpleTable/HeadCell.d.ts +20 -0
  45. package/types/src/SimpleTable/Row.d.ts +20 -0
  46. package/types/src/SimpleTable/SimpleTable.d.ts +37 -0
  47. package/types/src/SimpleTable/index.d.ts +3 -0
  48. package/types/src/SpotLight/SpotLight.d.ts +88 -0
  49. package/types/src/SpotLight/index.d.ts +2 -0
  50. package/types/src/Table/Row.d.ts +1 -1
  51. package/types/src/Table/Table.d.ts +1 -1
  52. package/types/src/Typography/Typography.d.ts +1 -1
  53. package/types/src/Multiselect/docs/examples/LoadMoreOnScrollBottom.d.ts +0 -7
package/SlidingPanels.js CHANGED
@@ -61,36 +61,39 @@
61
61
  e.r(n);
62
62
  // EXPORTS
63
63
  e.d(n, {
64
- Panel: () => /* reexport */ A,
65
- default: () => /* reexport */ K
64
+ Panel: () => /* reexport */ C,
65
+ default: () => /* reexport */ ee
66
66
  });
67
67
  // CONCATENATED MODULE: external "react"
68
68
  const t = require("react");
69
69
  var r = e.n(t);
70
70
  // CONCATENATED MODULE: external "@react-spring/web"
71
71
  const o = require("@react-spring/web");
72
+ // CONCATENATED MODULE: external "lodash/defer"
73
+ const i = require("lodash/defer");
74
+ var u = e.n(i);
72
75
  // CONCATENATED MODULE: external "prop-types"
73
- const i = require("prop-types");
74
- var a = e.n(i);
76
+ const a = require("prop-types");
77
+ var l = e.n(a);
75
78
  // CONCATENATED MODULE: external "@splunk/react-ui/Animation"
76
- const u = require("@splunk/react-ui/Animation");
79
+ const c = require("@splunk/react-ui/Animation");
77
80
  // CONCATENATED MODULE: external "styled-components"
78
- const l = require("styled-components");
79
- var c = e.n(l);
80
- // CONCATENATED MODULE: external "@splunk/react-ui/Box"
81
- const f = require("@splunk/react-ui/Box");
81
+ const f = require("styled-components");
82
82
  var s = e.n(f);
83
+ // CONCATENATED MODULE: external "@splunk/react-ui/Box"
84
+ const y = require("@splunk/react-ui/Box");
85
+ var v = e.n(y);
83
86
  // CONCATENATED MODULE: external "@splunk/themes"
84
- const y = require("@splunk/themes");
87
+ const d = require("@splunk/themes");
85
88
  // CONCATENATED MODULE: ./src/SlidingPanels/SlidingPanelsStyles.ts
86
- var p = c()(s()).withConfig({
89
+ var p = s()(v()).withConfig({
87
90
  displayName: "SlidingPanelsStyles__StyledBox",
88
91
  componentId: "su6isq-0"
89
92
  })([ "overflow:hidden;position:relative;" ]);
90
- var d = c()(o.animated.div).withConfig({
93
+ var m = s()(o.animated.div).withConfig({
91
94
  displayName: "SlidingPanelsStyles__StyledAnimatedDiv",
92
95
  componentId: "su6isq-1"
93
- })([ "", ";", ";" ], y.mixins.reset("block"), y.mixins.clearfix());
96
+ })([ "", ";", ";" ], d.mixins.reset("block"), d.mixins.clearfix());
94
97
  // CONCATENATED MODULE: ./src/utils/updateReactRef.ts
95
98
  /**
96
99
  * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.
@@ -98,7 +101,7 @@
98
101
  * @param ref - The React callback or object ref. Can be `null` or `undefined`.
99
102
  * @param current - The new value of the ref.
100
103
  */
101
- function v(e, n) {
104
+ function b(e, n) {
102
105
  if (e) {
103
106
  if (typeof e === "function") {
104
107
  e(n);
@@ -111,8 +114,8 @@
111
114
  }
112
115
  }
113
116
  // CONCATENATED MODULE: ./src/SlidingPanels/Panel.tsx
114
- function m() {
115
- return m = Object.assign ? Object.assign.bind() : function(e) {
117
+ function O() {
118
+ return O = Object.assign ? Object.assign.bind() : function(e) {
116
119
  for (var n = 1; n < arguments.length; n++) {
117
120
  var t = arguments[n];
118
121
  for (var r in t) {
@@ -120,56 +123,56 @@
120
123
  }
121
124
  }
122
125
  return e;
123
- }, m.apply(null, arguments);
126
+ }, O.apply(null, arguments);
124
127
  }
125
- function b(e, n) {
126
- return j(e) || h(e, n) || g(e, n) || O();
128
+ function g(e, n) {
129
+ return P(e) || w(e, n) || h(e, n) || S();
127
130
  }
128
- function O() {
131
+ function S() {
129
132
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
130
133
  }
131
- function g(e, n) {
134
+ function h(e, n) {
132
135
  if (e) {
133
- if ("string" == typeof e) return S(e, n);
136
+ if ("string" == typeof e) return j(e, n);
134
137
  var t = {}.toString.call(e).slice(8, -1);
135
- 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) ? S(e, n) : void 0;
138
+ 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) ? j(e, n) : void 0;
136
139
  }
137
140
  }
138
- function S(e, n) {
141
+ function j(e, n) {
139
142
  (null == n || n > e.length) && (n = e.length);
140
143
  for (var t = 0, r = Array(n); t < n; t++) {
141
144
  r[t] = e[t];
142
145
  }
143
146
  return r;
144
147
  }
145
- function h(e, n) {
148
+ function w(e, n) {
146
149
  var t = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
147
150
  if (null != t) {
148
- var r, o, i, a, u = [], l = !0, c = !1;
151
+ var r, o, i, u, a = [], l = !0, c = !1;
149
152
  try {
150
153
  if (i = (t = t.call(e)).next, 0 === n) {
151
154
  if (Object(t) !== t) return;
152
155
  l = !1;
153
- } else for (;!(l = (r = i.call(t)).done) && (u.push(r.value), u.length !== n); l = !0) {
156
+ } else for (;!(l = (r = i.call(t)).done) && (a.push(r.value), a.length !== n); l = !0) {
154
157
  }
155
158
  } catch (e) {
156
159
  c = !0, o = e;
157
160
  } finally {
158
161
  try {
159
- if (!l && null != t["return"] && (a = t["return"](), Object(a) !== a)) return;
162
+ if (!l && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
160
163
  } finally {
161
164
  if (c) throw o;
162
165
  }
163
166
  }
164
- return u;
167
+ return a;
165
168
  }
166
169
  }
167
- function j(e) {
170
+ function P(e) {
168
171
  if (Array.isArray(e)) return e;
169
172
  }
170
- function w(e, n) {
173
+ function E(e, n) {
171
174
  if (null == e) return {};
172
- var t, r, o = P(e, n);
175
+ var t, r, o = x(e, n);
173
176
  if (Object.getOwnPropertySymbols) {
174
177
  var i = Object.getOwnPropertySymbols(e);
175
178
  for (r = 0; r < i.length; r++) {
@@ -178,7 +181,7 @@
178
181
  }
179
182
  return o;
180
183
  }
181
- function P(e, n) {
184
+ function x(e, n) {
182
185
  if (null == e) return {};
183
186
  var t = {};
184
187
  for (var r in e) {
@@ -189,52 +192,83 @@
189
192
  }
190
193
  return t;
191
194
  }
192
- var x = {
193
- children: a().node,
194
- elementRef: a().oneOfType([ a().func, a().object ]),
195
+ var A = {
196
+ children: l().node,
197
+ elementRef: l().oneOfType([ l().func, l().object ]),
195
198
  /** @private */
196
- onMount: a().func,
199
+ onMount: l().func,
197
200
  /** @private */
198
- onUnmount: a().func,
199
- panelId: a().oneOfType([ a().string, a().number ]).isRequired
201
+ onUnmount: l().func,
202
+ panelId: l().oneOfType([ l().string, l().number ]).isRequired
200
203
  };
201
204
  /**
202
205
  * Container for arbitrary content.
203
- */ function E(e) {
204
- var n = e.children, o = e.elementRef, i = e.onMount, a = e.onUnmount, u = e.panelId, l = w(e, [ "children", "elementRef", "onMount", "onUnmount", "panelId" ]);
206
+ */ function I(e) {
207
+ var n = e.children, o = e.elementRef, i = e.onMount, u = e.onUnmount, a = e.panelId, l = E(e, [ "children", "elementRef", "onMount", "onUnmount", "panelId" ]);
205
208
  // @docs-props-type PanelPropsBase
206
- var c = (0, t.useState)(null), f = b(c, 2), s = f[0], y = f[1];
207
- var p = (0, t.useCallback)((function(e) {
209
+ var c = (0, t.useState)(null), f = g(c, 2), s = f[0], y = f[1];
210
+ var v = (0, t.useCallback)((function(e) {
208
211
  y(e);
209
- v(o, e);
212
+ b(o, e);
210
213
  }), [ o ]);
211
214
  (0, t.useEffect)((function() {
212
- i === null || i === void 0 ? void 0 : i(s, u);
215
+ i === null || i === void 0 ? void 0 : i(s, a);
213
216
  return function() {
214
- a === null || a === void 0 ? void 0 : a(u);
217
+ u === null || u === void 0 ? void 0 : u(a);
215
218
  };
216
- }), [ i, a, s, u ]);
219
+ }), [ i, u, s, a ]);
217
220
 
218
- return r().createElement(d, m({
221
+ return r().createElement(m, O({
219
222
  "data-test": "panel",
220
- "data-test-panel-id": u
223
+ "data-test-panel-id": a
221
224
  }, l, {
222
- ref: p
225
+ ref: v
223
226
  }), n);
224
227
  }
225
- E.propTypes = x;
226
- /* harmony default export */ const A = E;
228
+ I.propTypes = A;
229
+ /* harmony default export */ const C = I;
230
+ // CONCATENATED MODULE: external "@splunk/ui-utils/focus"
231
+ const M = require("@splunk/ui-utils/focus");
232
+ // CONCATENATED MODULE: ./src/utils/resolveInitialFocusTarget.ts
233
+ function N(e) {
234
+ "@babel/helpers - typeof";
235
+ return N = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
236
+ return typeof e;
237
+ } : function(e) {
238
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
239
+ }, N(e)
240
+ /**
241
+ * Resolves the initial focus target based on the initialFocus prop value.
242
+ *
243
+ * @param initialFocus - The initialFocus prop value ('first', 'container', HTMLElement, or React.Component with focus method)
244
+ * @param containerEl - The container element to use for 'first' and 'container' options
245
+ * @returns The element or component to focus, or null if none found
246
+ */;
247
+ }
248
+ function T(e, n) {
249
+ if (e === "first" && n) {
250
+ var t;
251
+ return (t = (0, M.getSortedTabbableElements)(n)[0]) !== null && t !== void 0 ? t : null;
252
+ }
253
+ if (e === "container") {
254
+ return n;
255
+ }
256
+ if (N(e) === "object") {
257
+ return e;
258
+ }
259
+ return null;
260
+ }
227
261
  // CONCATENATED MODULE: ./src/SlidingPanels/SlidingPanels.tsx
228
- function I(e) {
262
+ function q(e) {
229
263
  "@babel/helpers - typeof";
230
- return I = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
264
+ return q = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
231
265
  return typeof e;
232
266
  } : function(e) {
233
267
  return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
234
- }, I(e);
268
+ }, q(e);
235
269
  }
236
- function M() {
237
- return M = Object.assign ? Object.assign.bind() : function(e) {
270
+ function R() {
271
+ return R = Object.assign ? Object.assign.bind() : function(e) {
238
272
  for (var n = 1; n < arguments.length; n++) {
239
273
  var t = arguments[n];
240
274
  for (var r in t) {
@@ -242,56 +276,56 @@
242
276
  }
243
277
  }
244
278
  return e;
245
- }, M.apply(null, arguments);
279
+ }, R.apply(null, arguments);
246
280
  }
247
- function C(e, n) {
248
- return k(e) || R(e, n) || T(e, n) || N();
281
+ function k(e, n) {
282
+ return L(e) || B(e, n) || _(e, n) || U();
249
283
  }
250
- function N() {
284
+ function U() {
251
285
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
252
286
  }
253
- function T(e, n) {
287
+ function _(e, n) {
254
288
  if (e) {
255
- if ("string" == typeof e) return q(e, n);
289
+ if ("string" == typeof e) return D(e, n);
256
290
  var t = {}.toString.call(e).slice(8, -1);
257
- 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) ? q(e, n) : void 0;
291
+ 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) ? D(e, n) : void 0;
258
292
  }
259
293
  }
260
- function q(e, n) {
294
+ function D(e, n) {
261
295
  (null == n || n > e.length) && (n = e.length);
262
296
  for (var t = 0, r = Array(n); t < n; t++) {
263
297
  r[t] = e[t];
264
298
  }
265
299
  return r;
266
300
  }
267
- function R(e, n) {
301
+ function B(e, n) {
268
302
  var t = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
269
303
  if (null != t) {
270
- var r, o, i, a, u = [], l = !0, c = !1;
304
+ var r, o, i, u, a = [], l = !0, c = !1;
271
305
  try {
272
306
  if (i = (t = t.call(e)).next, 0 === n) {
273
307
  if (Object(t) !== t) return;
274
308
  l = !1;
275
- } else for (;!(l = (r = i.call(t)).done) && (u.push(r.value), u.length !== n); l = !0) {
309
+ } else for (;!(l = (r = i.call(t)).done) && (a.push(r.value), a.length !== n); l = !0) {
276
310
  }
277
311
  } catch (e) {
278
312
  c = !0, o = e;
279
313
  } finally {
280
314
  try {
281
- if (!l && null != t["return"] && (a = t["return"](), Object(a) !== a)) return;
315
+ if (!l && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
282
316
  } finally {
283
317
  if (c) throw o;
284
318
  }
285
319
  }
286
- return u;
320
+ return a;
287
321
  }
288
322
  }
289
- function k(e) {
323
+ function L(e) {
290
324
  if (Array.isArray(e)) return e;
291
325
  }
292
- function U(e, n) {
326
+ function V(e, n) {
293
327
  if (null == e) return {};
294
- var t, r, o = _(e, n);
328
+ var t, r, o = $(e, n);
295
329
  if (Object.getOwnPropertySymbols) {
296
330
  var i = Object.getOwnPropertySymbols(e);
297
331
  for (r = 0; r < i.length; r++) {
@@ -300,7 +334,7 @@
300
334
  }
301
335
  return o;
302
336
  }
303
- function _(e, n) {
337
+ function $(e, n) {
304
338
  if (null == e) return {};
305
339
  var t = {};
306
340
  for (var r in e) {
@@ -311,7 +345,7 @@
311
345
  }
312
346
  return t;
313
347
  }
314
- function D(e, n) {
348
+ function W(e, n) {
315
349
  var t = Object.keys(e);
316
350
  if (Object.getOwnPropertySymbols) {
317
351
  var r = Object.getOwnPropertySymbols(e);
@@ -321,52 +355,52 @@
321
355
  }
322
356
  return t;
323
357
  }
324
- function B(e) {
358
+ function z(e) {
325
359
  for (var n = 1; n < arguments.length; n++) {
326
360
  var t = null != arguments[n] ? arguments[n] : {};
327
- n % 2 ? D(Object(t), !0).forEach((function(n) {
328
- V(e, n, t[n]);
329
- })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : D(Object(t)).forEach((function(n) {
361
+ n % 2 ? W(Object(t), !0).forEach((function(n) {
362
+ F(e, n, t[n]);
363
+ })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : W(Object(t)).forEach((function(n) {
330
364
  Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n));
331
365
  }));
332
366
  }
333
367
  return e;
334
368
  }
335
- function V(e, n, t) {
336
- return (n = $(n)) in e ? Object.defineProperty(e, n, {
369
+ function F(e, n, t) {
370
+ return (n = G(n)) in e ? Object.defineProperty(e, n, {
337
371
  value: t,
338
372
  enumerable: !0,
339
373
  configurable: !0,
340
374
  writable: !0
341
375
  }) : e[n] = t, e;
342
376
  }
343
- function $(e) {
344
- var n = L(e, "string");
345
- return "symbol" == I(n) ? n : n + "";
377
+ function G(e) {
378
+ var n = H(e, "string");
379
+ return "symbol" == q(n) ? n : n + "";
346
380
  }
347
- function L(e, n) {
348
- if ("object" != I(e) || !e) return e;
381
+ function H(e, n) {
382
+ if ("object" != q(e) || !e) return e;
349
383
  var t = e[Symbol.toPrimitive];
350
384
  if (void 0 !== t) {
351
385
  var r = t.call(e, n || "default");
352
- if ("object" != I(r)) return r;
386
+ if ("object" != q(r)) return r;
353
387
  throw new TypeError("@@toPrimitive must return a primitive value.");
354
388
  }
355
389
  return ("string" === n ? String : Number)(e);
356
390
  }
357
391
  // can't use PanelId as key type, because an index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.
358
- var W = {
359
- activePanelId: a().oneOfType([ a().string, a().number ]).isRequired,
360
- children: a().node,
361
- elementRef: a().oneOfType([ a().func, a().object ]),
362
- innerClassName: a().string,
363
- innerStyle: a().object,
364
- onAnimationEnd: a().func,
365
- outerClassName: a().string,
366
- outerStyle: a().object,
367
- transition: a().oneOf([ "forward", "backward" ])
392
+ var J = {
393
+ activePanelId: l().oneOfType([ l().string, l().number ]).isRequired,
394
+ children: l().node,
395
+ elementRef: l().oneOfType([ l().func, l().object ]),
396
+ innerClassName: l().string,
397
+ innerStyle: l().object,
398
+ onAnimationEnd: l().func,
399
+ outerClassName: l().string,
400
+ outerStyle: l().object,
401
+ transition: l().oneOf([ "forward", "backward" ])
368
402
  };
369
- var z = {
403
+ var K = {
370
404
  enter: {
371
405
  x: "0px"
372
406
  },
@@ -374,11 +408,11 @@
374
408
  x: "0px"
375
409
  }
376
410
  };
377
- var F = function e(n, t) {
411
+ var Q = function e(n, t) {
378
412
  var r = "".concat(n, "px");
379
413
  var o = "".concat(n * -1, "px");
380
414
  var i = t === "forward" ? r : o;
381
- var a = t === "forward" ? o : r;
415
+ var u = t === "forward" ? o : r;
382
416
  return {
383
417
  from: {
384
418
  x: i
@@ -390,11 +424,11 @@
390
424
  */
391
425
  leave: {
392
426
  position: "absolute",
393
- x: a
427
+ x: u
394
428
  }
395
429
  };
396
430
  };
397
- var G = function e(n) {
431
+ var X = function e(n) {
398
432
  return Object.values(n).reduce((function(e, n) {
399
433
  if ((n === null || n === void 0 ? void 0 : n.tagName) === "DIV") {
400
434
  return Math.max(e, n.clientWidth);
@@ -404,32 +438,34 @@
404
438
  };
405
439
  /* This component is used to wrap each child panel in animated.div via StyledAnimatedDiv
406
440
  apply any custom inner styles or classnames that have been passed in
407
- apply styles coming from the transitions call that is rendering this component */ var H = r().memo((function(e) {
408
- var n = e.innerClassName, o = e.innerStyle, i = e.onMount, a = e.onUnmount, u = e.panel, l = e.style;
441
+ apply styles coming from the transitions call that is rendering this component */ var Y = r().memo((function(e) {
442
+ var n = e.innerClassName, o = e.innerStyle, i = e.onMount, u = e.onUnmount, a = e.panel, l = e.style;
409
443
  var c = (0, t.useMemo)((function() {
410
444
 
411
- return (0, t.cloneElement)(u, {
445
+ return (0, t.cloneElement)(a, {
412
446
  onMount: i,
413
- onUnmount: a
447
+ onUnmount: u
414
448
  });
415
- }), [ u, i, a ]);
449
+ }), [ a, i, u ]);
416
450
  var f = (0, t.useMemo)((function() {
417
- return B(B({}, o), l);
451
+ return z(z({}, o), l);
418
452
  }), [ o, l ]);
419
453
 
420
- return r().createElement(d, {
454
+ return r().createElement(m, {
421
455
  style: f,
422
456
  className: n
423
457
  }, c);
424
458
  }));
425
- function J(e) {
426
- var n = e.activePanelId, i = e.children, a = e.elementRef, l = e.innerClassName, c = e.innerStyle, f = e.onAnimationEnd, s = e.outerClassName, y = e.outerStyle, d = e.transition, v = d === void 0 ? "forward" : d, m = U(e, [ "activePanelId", "children", "elementRef", "innerClassName", "innerStyle", "onAnimationEnd", "outerClassName", "outerStyle", "transition" ]);
459
+ function Z(e) {
460
+ var n = e.activePanelId, i = e.children, a = e.elementRef, l = e.innerClassName, f = e.innerStyle, s = e.onAnimationEnd, y = e.outerClassName, v = e.outerStyle, d = e.transition, m = d === void 0 ? "forward" : d, O = V(e, [ "activePanelId", "children", "elementRef", "innerClassName", "innerStyle", "onAnimationEnd", "outerClassName", "outerStyle", "transition" ]);
427
461
  // @docs-props-type SlidingPanelsPropsBase
428
- var b = (0, t.useState)(0), O = C(b, 2), g = O[0], S = O[1];
429
- var h = (0, t.useState)([]), j = C(h, 2), w = j[0], P = j[1];
430
- var x = (0, t.useState)({}), E = C(x, 2), A = E[0], I = E[1];
431
- var N = (0, o.useSpringRef)();
432
- var T = (0, t.useMemo)((function() {
462
+ var g = (0, t.useState)(0), S = k(g, 2), h = S[0], j = S[1];
463
+ var w = (0, t.useState)([]), P = k(w, 2), E = P[0], x = P[1];
464
+ var A = (0, t.useState)({}), I = k(A, 2), C = I[0], M = I[1];
465
+ var N = (0, t.useRef)(null);
466
+ var q = (0, t.useRef)(false);
467
+ var U = (0, o.useSpringRef)();
468
+ var _ = (0, t.useMemo)((function() {
433
469
  return t.Children.toArray(i).filter(t.isValidElement);
434
470
  }), [ i ]);
435
471
  /**
@@ -437,46 +473,77 @@
437
473
  * Without maxWidth, we run into a problem if the leaving panel width > the arriving panel width.
438
474
  * In this case, useAnimationTransition will only know to shift the leaving panel by the width of the arriving panel,
439
475
  * which would result in seeing part of the leaving panel's content on screen at the same time as the arriving panel's content.
440
- */ var q = (0, t.useMemo)((function() {
441
- return G(A);
442
- }), [ A ]);
443
- /* determines what our transform translateX will look like based on is it transitioning forward or backward */ var R = (0,
476
+ */ var D = (0, t.useMemo)((function() {
477
+ return X(C);
478
+ }), [ C ]);
479
+ /* determines what our transform translateX will look like based on is it transitioning forward or backward */ var B = (0,
444
480
  t.useMemo)((function() {
445
- return F(q, v);
446
- }), [ q, v ]);
447
- var k = (0, u.useAnimationTransition)(g, B(B(B({
448
- ref: N
449
- }, z), R), {}, {
481
+ return Q(D, m);
482
+ }), [ D, m ]);
483
+ var L = (0, c.useAnimationTransition)(h, z(z(z({
484
+ ref: U
485
+ }, K), B), {}, {
450
486
  onRest: function e() {
451
- f === null || f === void 0 ? void 0 : f();
487
+ s === null || s === void 0 ? void 0 : s();
452
488
  }
453
489
  }));
454
490
  (0, t.useEffect)((function() {
455
491
  /* if it can't find activePanelId it will set currentPanelIndex to -1 */
456
492
  if (false) {}
457
- }), [ g ]);
493
+ }), [ h ]);
458
494
  (0, t.useEffect)((function() {
459
495
  /* starts animation */
460
- N.start();
461
- }), [ N, g ]);
496
+ U.start();
497
+ }), [ U, h ]);
498
+ (0, t.useLayoutEffect)((function() {
499
+ var e;
500
+ /* capture focus state before the DOM mutation that unmounts the leaving panel */ if ((e = N.current) === null || e === void 0 ? void 0 : e.contains(document.activeElement)) {
501
+ q.current = true;
502
+ }
503
+ }), [ n ]);
462
504
  (0, t.useEffect)((function() {
463
505
  /* sets the currentPanelIndex in state whenever activePanelId or children changes */
464
- var e = T.findIndex((function(e) {
506
+ var e = _.findIndex((function(e) {
465
507
  var t = e.props;
466
508
  return t.panelId === n;
467
509
  }));
468
- S(e);
469
- }), [ n, T ]);
470
- var _ = (0, t.useCallback)((function(e, n) {
510
+ j(e);
511
+ }), [ n, _ ]);
512
+ (0, t.useEffect)((function() {
513
+ /**
514
+ * If focus was inside the container when the active panel changed, move focus to the
515
+ * first tabbable element of the incoming panel. Both deps are needed because the order
516
+ * they settle depends on whether animations are running:
517
+ * - With animations: both panels stay mounted, so only `activePanelId` changes.
518
+ * - Without animations (e.g. prefers-reduced-motion): the leaving panel unmounts and
519
+ * the incoming panel mounts fresh, so `panelInstances` changes last.
520
+ */
521
+ if (!q.current) {
522
+ return undefined;
523
+ }
524
+ var e = C[n];
525
+ if (e) {
526
+ q.current = false;
527
+ var t = u()((function() {
528
+ var n;
529
+ (n = T("first", e)) === null || n === void 0 ? void 0 : n.focus();
530
+ }));
531
+ return function() {
532
+ return clearTimeout(t);
533
+ };
534
+ }
535
+ return undefined;
536
+ }), [ n, C ]);
537
+ var $ = (0, t.useCallback)((function(e, n) {
471
538
  if (e != null && n != null) {
472
- I((function(t) {
473
- return B(B({}, t), {}, V({}, n, e));
539
+ M((function(t) {
540
+ return z(z({}, t), {}, F({}, n, e));
474
541
  }));
475
542
  }
476
543
  }), []);
477
- var D = (0, t.useCallback)((function(e) {
478
- I((function(n) {
479
- var t = B({}, n);
544
+ var W = (0, t.useCallback)((function(e) {
545
+ M((function(n) {
546
+ var t = z({}, n);
480
547
  delete t[e];
481
548
  return t;
482
549
  }));
@@ -488,30 +555,34 @@
488
555
  * to Storybook and quickly switching between basic and dropdown examples. The basic example will eventually
489
556
  * show a small square on initial render, vs what we want to be the entire initial panel.
490
557
  */
491
- P(T);
492
- }), [ T ]);
558
+ x(_);
559
+ }), [ _ ]);
560
+ var G = (0, t.useCallback)((function(e) {
561
+ N.current = e;
562
+ b(a, e);
563
+ }), [ a ]);
493
564
 
494
- return r().createElement(p, M({
495
- className: s,
565
+ return r().createElement(p, R({
566
+ className: y,
496
567
  "data-test-active-panel-id": n,
497
568
  "data-test": "sliding-panels",
498
- ref: a,
499
- style: y
500
- }, m), k((function(e, n) {
501
- var t = w[n];
502
- return t ? r().createElement(H, {
569
+ ref: G,
570
+ style: v
571
+ }, O), L((function(e, n) {
572
+ var t = E[n];
573
+ return t ? r().createElement(Y, {
503
574
  innerClassName: l,
504
- innerStyle: c,
505
- onMount: _,
506
- onUnmount: D,
575
+ innerStyle: f,
576
+ onMount: $,
577
+ onUnmount: W,
507
578
  panel: t,
508
579
  style: e
509
580
  }) : null;
510
581
  })));
511
582
  }
512
- J.propTypes = W;
513
- J.Panel = A;
514
- /* harmony default export */ const K = J;
583
+ Z.propTypes = J;
584
+ Z.Panel = C;
585
+ /* harmony default export */ const ee = Z;
515
586
  // CONCATENATED MODULE: ./src/SlidingPanels/index.ts
516
587
  module.exports = n;
517
588
  /******/})();
package/SpotLight.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './types/src/SpotLight';
2
+ export * from './types/src/SpotLight';