@cloudscape-design/components 3.0.423 → 3.0.425

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 (63) hide show
  1. package/app-layout/drawer/index.d.ts +1 -1
  2. package/app-layout/drawer/index.d.ts.map +1 -1
  3. package/app-layout/drawer/index.js +6 -2
  4. package/app-layout/drawer/index.js.map +1 -1
  5. package/app-layout/drawer/interfaces.d.ts +3 -2
  6. package/app-layout/drawer/interfaces.d.ts.map +1 -1
  7. package/app-layout/drawer/interfaces.js.map +1 -1
  8. package/app-layout/index.d.ts.map +1 -1
  9. package/app-layout/index.js +5 -7
  10. package/app-layout/index.js.map +1 -1
  11. package/app-layout/interfaces.d.ts +4 -0
  12. package/app-layout/interfaces.d.ts.map +1 -1
  13. package/app-layout/interfaces.js.map +1 -1
  14. package/app-layout/utils/use-focus-control.d.ts +2 -1
  15. package/app-layout/utils/use-focus-control.d.ts.map +1 -1
  16. package/app-layout/utils/use-focus-control.js +18 -12
  17. package/app-layout/utils/use-focus-control.js.map +1 -1
  18. package/app-layout/utils/use-resize.d.ts +2 -2
  19. package/app-layout/utils/use-resize.d.ts.map +1 -1
  20. package/app-layout/utils/use-resize.js.map +1 -1
  21. package/app-layout/visual-refresh/context.d.ts +1 -2
  22. package/app-layout/visual-refresh/context.d.ts.map +1 -1
  23. package/app-layout/visual-refresh/context.js +3 -4
  24. package/app-layout/visual-refresh/context.js.map +1 -1
  25. package/autosuggest/autosuggest-option.js +1 -1
  26. package/autosuggest/autosuggest-option.js.map +1 -1
  27. package/autosuggest/plain-list.js +1 -1
  28. package/autosuggest/plain-list.js.map +1 -1
  29. package/autosuggest/virtual-list.js +1 -1
  30. package/autosuggest/virtual-list.js.map +1 -1
  31. package/internal/components/options-list/utils/use-highlight-option.d.ts +6 -2
  32. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  33. package/internal/components/options-list/utils/use-highlight-option.js +13 -7
  34. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  35. package/internal/components/options-list/utils/use-open-state.d.ts +2 -1
  36. package/internal/components/options-list/utils/use-open-state.d.ts.map +1 -1
  37. package/internal/components/options-list/utils/use-open-state.js +5 -3
  38. package/internal/components/options-list/utils/use-open-state.js.map +1 -1
  39. package/internal/components/selectable-item/index.d.ts +1 -1
  40. package/internal/components/selectable-item/index.d.ts.map +1 -1
  41. package/internal/components/selectable-item/index.js.map +1 -1
  42. package/internal/environment.js +1 -1
  43. package/internal/environment.json +1 -1
  44. package/internal/manifest.json +1 -1
  45. package/package.json +1 -1
  46. package/select/parts/item.d.ts +1 -1
  47. package/select/parts/item.d.ts.map +1 -1
  48. package/select/parts/item.js.map +1 -1
  49. package/select/parts/multiselect-item.js +1 -1
  50. package/select/parts/multiselect-item.js.map +1 -1
  51. package/select/parts/plain-list.js +1 -1
  52. package/select/parts/plain-list.js.map +1 -1
  53. package/select/parts/virtual-list.js +1 -1
  54. package/select/parts/virtual-list.js.map +1 -1
  55. package/select/utils/render-options.js +1 -1
  56. package/select/utils/render-options.js.map +1 -1
  57. package/select/utils/use-select.d.ts.map +1 -1
  58. package/select/utils/use-select.js +22 -4
  59. package/select/utils/use-select.js.map +1 -1
  60. package/app-layout/utils/use-drawer-focus-control.d.ts +0 -21
  61. package/app-layout/utils/use-drawer-focus-control.d.ts.map +0 -1
  62. package/app-layout/utils/use-drawer-focus-control.js +0 -70
  63. package/app-layout/utils/use-drawer-focus-control.js.map +0 -1
@@ -1,70 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { useEffect, useRef, useCallback } from 'react';
4
- export function useDrawerFocusControl(dependencies, isOpen, restoreFocus = false) {
5
- const refs = {
6
- toggle: useRef(null),
7
- close: useRef(null),
8
- slider: useRef(null),
9
- };
10
- const previousFocusedElement = useRef();
11
- const shouldFocus = useRef(false);
12
- const lastInteraction = useRef(null);
13
- useEffect(() => {
14
- var _a, _b, _c, _d;
15
- switch ((_a = lastInteraction.current) === null || _a === void 0 ? void 0 : _a.type) {
16
- case 'open':
17
- if (refs.slider.current) {
18
- (_b = refs.slider.current) === null || _b === void 0 ? void 0 : _b.focus();
19
- }
20
- else {
21
- (_c = refs.close.current) === null || _c === void 0 ? void 0 : _c.focus();
22
- }
23
- break;
24
- case 'close':
25
- (_d = refs.toggle.current) === null || _d === void 0 ? void 0 : _d.focus();
26
- break;
27
- }
28
- lastInteraction.current = null;
29
- // eslint-disable-next-line react-hooks/exhaustive-deps
30
- }, dependencies);
31
- const doFocus = () => {
32
- var _a, _b;
33
- if (!shouldFocus.current) {
34
- return;
35
- }
36
- if (isOpen) {
37
- previousFocusedElement.current =
38
- document.activeElement !== document.body ? document.activeElement : undefined;
39
- (_a = refs.close.current) === null || _a === void 0 ? void 0 : _a.focus();
40
- }
41
- else {
42
- if (restoreFocus && previousFocusedElement.current && document.contains(previousFocusedElement.current)) {
43
- previousFocusedElement.current.focus();
44
- previousFocusedElement.current = undefined;
45
- }
46
- else {
47
- (_b = refs.toggle.current) === null || _b === void 0 ? void 0 : _b.focus();
48
- }
49
- }
50
- shouldFocus.current = false;
51
- };
52
- // We explictly want this effect to run when only `isOpen` changes
53
- // eslint-disable-next-line react-hooks/exhaustive-deps
54
- useEffect(doFocus, [isOpen]);
55
- const loseFocus = useCallback(() => {
56
- previousFocusedElement.current = undefined;
57
- }, []);
58
- return {
59
- refs,
60
- setFocus: force => {
61
- shouldFocus.current = true;
62
- if (force && isOpen) {
63
- doFocus();
64
- }
65
- },
66
- loseFocus,
67
- setLastInteraction: (interaction) => (lastInteraction.current = interaction),
68
- };
69
- }
70
- //# sourceMappingURL=use-drawer-focus-control.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-drawer-focus-control.js","sourceRoot":"lib/default/","sources":["app-layout/utils/use-drawer-focus-control.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAA6B,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAkBlF,MAAM,UAAU,qBAAqB,CACnC,YAA4B,EAC5B,MAAe,EACf,YAAY,GAAG,KAAK;IAEpB,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,MAAM,CAAkB,IAAI,CAAC;QACrC,KAAK,EAAE,MAAM,CAAkB,IAAI,CAAC;QACpC,MAAM,EAAE,MAAM,CAAiB,IAAI,CAAC;KACrC,CAAC;IACF,MAAM,sBAAsB,GAAG,MAAM,EAAe,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,eAAe,GAAG,MAAM,CAA+B,IAAI,CAAC,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;;QACb,QAAQ,MAAA,eAAe,CAAC,OAAO,0CAAE,IAAI,EAAE;YACrC,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;iBAC9B;qBAAM;oBACL,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;iBAC7B;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBAC7B,MAAM;SACT;QACD,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,uDAAuD;IACzD,CAAC,EAAE,YAAY,CAAC,CAAC;IAEjB,MAAM,OAAO,GAAG,GAAG,EAAE;;QACnB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YACxB,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,sBAAsB,CAAC,OAAO;gBAC5B,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,aAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;YACjG,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;SAC7B;aAAM;YACL,IAAI,YAAY,IAAI,sBAAsB,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;gBACvG,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvC,sBAAsB,CAAC,OAAO,GAAG,SAAS,CAAC;aAC5C;iBAAM;gBACL,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;aAC9B;SACF;QACD,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC,CAAC;IAEF,kEAAkE;IAClE,uDAAuD;IACvD,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,sBAAsB,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,KAAK,CAAC,EAAE;YAChB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,IAAI,KAAK,IAAI,MAAM,EAAE;gBACnB,OAAO,EAAE,CAAC;aACX;QACH,CAAC;QACD,SAAS;QACT,kBAAkB,EAAE,CAAC,WAAkC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,GAAG,WAAW,CAAC;KACpG,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DependencyList, RefObject, useEffect, useRef, useCallback } from 'react';\nimport { ButtonProps } from '../../button/interfaces';\n\nexport type DrawerLastInteraction = { type: 'open' } | { type: 'close' };\n\nexport interface DrawerFocusControlRefs {\n toggle: RefObject<ButtonProps.Ref>;\n close: RefObject<ButtonProps.Ref>;\n slider: RefObject<HTMLDivElement>;\n}\n\ninterface FocusControlState {\n refs: DrawerFocusControlRefs;\n setFocus: (force?: boolean) => void;\n loseFocus: () => void;\n setLastInteraction: (interaction: DrawerLastInteraction) => void;\n}\n\nexport function useDrawerFocusControl(\n dependencies: DependencyList,\n isOpen: boolean,\n restoreFocus = false\n): FocusControlState {\n const refs = {\n toggle: useRef<ButtonProps.Ref>(null),\n close: useRef<ButtonProps.Ref>(null),\n slider: useRef<HTMLDivElement>(null),\n };\n const previousFocusedElement = useRef<HTMLElement>();\n const shouldFocus = useRef(false);\n const lastInteraction = useRef<DrawerLastInteraction | null>(null);\n\n useEffect(() => {\n switch (lastInteraction.current?.type) {\n case 'open':\n if (refs.slider.current) {\n refs.slider.current?.focus();\n } else {\n refs.close.current?.focus();\n }\n break;\n case 'close':\n refs.toggle.current?.focus();\n break;\n }\n lastInteraction.current = null;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n\n const doFocus = () => {\n if (!shouldFocus.current) {\n return;\n }\n if (isOpen) {\n previousFocusedElement.current =\n document.activeElement !== document.body ? (document.activeElement as HTMLElement) : undefined;\n refs.close.current?.focus();\n } else {\n if (restoreFocus && previousFocusedElement.current && document.contains(previousFocusedElement.current)) {\n previousFocusedElement.current.focus();\n previousFocusedElement.current = undefined;\n } else {\n refs.toggle.current?.focus();\n }\n }\n shouldFocus.current = false;\n };\n\n // We explictly want this effect to run when only `isOpen` changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(doFocus, [isOpen]);\n\n const loseFocus = useCallback(() => {\n previousFocusedElement.current = undefined;\n }, []);\n\n return {\n refs,\n setFocus: force => {\n shouldFocus.current = true;\n if (force && isOpen) {\n doFocus();\n }\n },\n loseFocus,\n setLastInteraction: (interaction: DrawerLastInteraction) => (lastInteraction.current = interaction),\n };\n}\n"]}