@cloudscape-design/components 3.0.1075 → 3.0.1077

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 (117) hide show
  1. package/app-layout/interfaces.d.ts +1 -0
  2. package/app-layout/interfaces.d.ts.map +1 -1
  3. package/app-layout/interfaces.js.map +1 -1
  4. package/app-layout/runtime-drawer/index.d.ts +9 -0
  5. package/app-layout/runtime-drawer/index.d.ts.map +1 -1
  6. package/app-layout/runtime-drawer/index.js +32 -3
  7. package/app-layout/runtime-drawer/index.js.map +1 -1
  8. package/app-layout/runtime-drawer/styles.css.js +2 -1
  9. package/app-layout/runtime-drawer/styles.scoped.css +5 -1
  10. package/app-layout/runtime-drawer/styles.selectors.js +2 -1
  11. package/app-layout/test-classes/styles.css.js +26 -24
  12. package/app-layout/test-classes/styles.scoped.css +26 -24
  13. package/app-layout/test-classes/styles.selectors.js +26 -24
  14. package/app-layout/utils/interfaces.d.ts +1 -1
  15. package/app-layout/utils/interfaces.d.ts.map +1 -1
  16. package/app-layout/utils/interfaces.js.map +1 -1
  17. package/app-layout/utils/use-ai-drawer.d.ts +33 -0
  18. package/app-layout/utils/use-ai-drawer.d.ts.map +1 -0
  19. package/app-layout/utils/use-ai-drawer.js +104 -0
  20. package/app-layout/utils/use-ai-drawer.js.map +1 -0
  21. package/app-layout/utils/use-keyboard-events.js +8 -8
  22. package/app-layout/utils/use-keyboard-events.js.map +1 -1
  23. package/app-layout/utils/use-pointer-events.d.ts.map +1 -1
  24. package/app-layout/utils/use-pointer-events.js +8 -0
  25. package/app-layout/utils/use-pointer-events.js.map +1 -1
  26. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts +4 -1
  27. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  28. package/app-layout/visual-refresh-toolbar/compute-layout.js +6 -2
  29. package/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  30. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts +35 -0
  31. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts.map +1 -0
  32. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +81 -0
  33. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -0
  34. package/app-layout/visual-refresh-toolbar/drawer/global-drawer.d.ts.map +1 -1
  35. package/app-layout/visual-refresh-toolbar/drawer/global-drawer.js +2 -2
  36. package/app-layout/visual-refresh-toolbar/drawer/global-drawer.js.map +1 -1
  37. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +24 -17
  38. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +228 -35
  39. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +24 -17
  40. package/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts +3 -1
  41. package/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts.map +1 -1
  42. package/app-layout/visual-refresh-toolbar/drawer/use-resize.js +2 -2
  43. package/app-layout/visual-refresh-toolbar/drawer/use-resize.js.map +1 -1
  44. package/app-layout/visual-refresh-toolbar/interfaces.d.ts +12 -0
  45. package/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
  46. package/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
  47. package/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +25 -23
  48. package/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +56 -44
  49. package/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +25 -23
  50. package/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +2 -0
  51. package/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
  52. package/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
  53. package/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  54. package/app-layout/visual-refresh-toolbar/state/props-merger.js +8 -1
  55. package/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  56. package/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  57. package/app-layout/visual-refresh-toolbar/state/use-app-layout.js +24 -3
  58. package/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  59. package/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
  60. package/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +3 -1
  61. package/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  62. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +4 -0
  63. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  64. package/app-layout/visual-refresh-toolbar/toolbar/index.js +28 -4
  65. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  66. package/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +15 -12
  67. package/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +126 -24
  68. package/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +15 -12
  69. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts +2 -0
  70. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  71. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +3 -3
  72. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  73. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +7 -5
  74. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +30 -22
  75. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +7 -5
  76. package/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
  77. package/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +23 -3
  78. package/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
  79. package/internal/base-component/styles.scoped.css +1 -1
  80. package/internal/components/panel-resize-handle/index.d.ts +2 -1
  81. package/internal/components/panel-resize-handle/index.d.ts.map +1 -1
  82. package/internal/components/panel-resize-handle/index.js +18 -8
  83. package/internal/components/panel-resize-handle/index.js.map +1 -1
  84. package/internal/components/panel-resize-handle/styles.css.js +3 -2
  85. package/internal/components/panel-resize-handle/styles.scoped.css +7 -6
  86. package/internal/components/panel-resize-handle/styles.selectors.js +3 -2
  87. package/internal/environment.js +2 -2
  88. package/internal/environment.json +2 -2
  89. package/internal/manifest.json +1 -1
  90. package/internal/plugins/widget/interfaces.d.ts +58 -0
  91. package/internal/plugins/widget/interfaces.d.ts.map +1 -0
  92. package/internal/plugins/widget/interfaces.js +2 -0
  93. package/internal/plugins/widget/interfaces.js.map +1 -0
  94. package/internal/plugins/widget/internal.d.ts +20 -0
  95. package/internal/plugins/widget/internal.d.ts.map +1 -0
  96. package/internal/plugins/widget/internal.js +55 -0
  97. package/internal/plugins/widget/internal.js.map +1 -0
  98. package/internal/plugins/widget.d.ts +2 -0
  99. package/internal/plugins/widget.d.ts.map +1 -0
  100. package/internal/plugins/widget.js +5 -0
  101. package/internal/plugins/widget.js.map +1 -0
  102. package/internal/types.d.ts +5 -1
  103. package/internal/types.d.ts.map +1 -1
  104. package/internal/types.js +8 -1
  105. package/internal/types.js.map +1 -1
  106. package/package.json +1 -1
  107. package/s3-resource-selector/s3-modal/index.d.ts.map +1 -1
  108. package/s3-resource-selector/s3-modal/index.js +1 -4
  109. package/s3-resource-selector/s3-modal/index.js.map +1 -1
  110. package/table/table-role/grid-navigation.d.ts +41 -1
  111. package/table/table-role/grid-navigation.d.ts.map +1 -1
  112. package/table/table-role/grid-navigation.js +11 -11
  113. package/table/table-role/grid-navigation.js.map +1 -1
  114. package/table/table-role/utils.d.ts +1 -1
  115. package/table/table-role/utils.d.ts.map +1 -1
  116. package/table/table-role/utils.js +3 -3
  117. package/table/table-role/utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/panel-resize-handle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAA2B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIrE,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACjE;;AAED,wBA4BG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/panel-resize-handle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAA2B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIrE,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;AAED,wBAsCG"}
@@ -4,15 +4,25 @@ import React from 'react';
4
4
  import clsx from 'clsx';
5
5
  import InternalDragHandle from '../drag-handle';
6
6
  import styles from './styles.css.js';
7
- export default React.forwardRef(function PanelResizeHandle({ className, ariaLabel, tooltipText, ariaValuenow, position, onDirectionClick, onKeyDown, onPointerDown }, ref) {
8
- return (React.createElement(InternalDragHandle, { className: clsx(className, styles.slider, styles[`slider-${position}`]), ariaLabel: ariaLabel, tooltipText: tooltipText, ariaValue: { valueMin: 0, valueMax: 100, valueNow: ariaValuenow }, variant: position === 'side' ? 'resize-horizontal' : 'resize-vertical', directions: position === 'side'
7
+ export default React.forwardRef(function PanelResizeHandle({ className, ariaLabel, tooltipText, ariaValuenow, position, onDirectionClick, onKeyDown, onPointerDown, disabled }, ref) {
8
+ return (React.createElement(InternalDragHandle, { className: clsx(className, styles.slider, styles[`slider-${position}`]), ariaLabel: ariaLabel, tooltipText: tooltipText, ariaValue: { valueMin: 0, valueMax: 100, valueNow: ariaValuenow !== null && ariaValuenow !== void 0 ? ariaValuenow : 0 }, variant: ['side', 'side-start'].includes(position) ? 'resize-horizontal' : 'resize-vertical', directions: disabled
9
9
  ? {
10
- 'inline-end': ariaValuenow === 0 ? 'disabled' : 'active',
11
- 'inline-start': ariaValuenow === 100 ? 'disabled' : 'active',
10
+ 'inline-start': 'disabled',
11
+ 'inline-end': 'disabled',
12
12
  }
13
- : {
14
- 'block-end': ariaValuenow === 0 ? 'disabled' : 'active',
15
- 'block-start': ariaValuenow === 100 ? 'disabled' : 'active',
16
- }, onDirectionClick: onDirectionClick, onKeyDown: onKeyDown, onPointerDown: onPointerDown, ref: ref }));
13
+ : position === 'side'
14
+ ? {
15
+ 'inline-end': ariaValuenow === 0 ? 'disabled' : 'active',
16
+ 'inline-start': ariaValuenow === 100 ? 'disabled' : 'active',
17
+ }
18
+ : position === 'side-start'
19
+ ? {
20
+ 'inline-end': ariaValuenow === 100 ? 'disabled' : 'active',
21
+ 'inline-start': ariaValuenow === 0 ? 'disabled' : 'active',
22
+ }
23
+ : {
24
+ 'block-end': ariaValuenow === 0 ? 'disabled' : 'active',
25
+ 'block-start': ariaValuenow === 100 ? 'disabled' : 'active',
26
+ }, onDirectionClick: onDirectionClick, onKeyDown: onKeyDown, onPointerDown: onPointerDown, ref: ref }));
17
27
  });
18
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/panel-resize-handle/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,kBAAuC,MAAM,gBAAgB,CAAC;AAErE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAarC,eAAe,KAAK,CAAC,UAAU,CAAoC,SAAS,iBAAiB,CAC3F,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,EACzG,GAAG;IAEH,OAAO,CACL,oBAAC,kBAAkB,IACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,EACvE,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,EACjE,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EACtE,UAAU,EACR,QAAQ,KAAK,MAAM;YACjB,CAAC,CAAC;gBACE,YAAY,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;gBACxD,cAAc,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;aAC7D;YACH,CAAC,CAAC;gBACE,WAAW,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;gBACvD,aAAa,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;aAC5D,EAEP,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport InternalDragHandle, { DragHandleProps } from '../drag-handle';\n\nimport styles from './styles.css.js';\n\ninterface ResizeHandleProps {\n className?: string;\n ariaLabel: string | undefined;\n tooltipText?: string | undefined;\n position: 'side' | 'bottom';\n ariaValuenow: number;\n onDirectionClick: DragHandleProps['onDirectionClick'];\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n onPointerDown: (event: React.PointerEvent<HTMLElement>) => void;\n}\n\nexport default React.forwardRef<HTMLDivElement, ResizeHandleProps>(function PanelResizeHandle(\n { className, ariaLabel, tooltipText, ariaValuenow, position, onDirectionClick, onKeyDown, onPointerDown },\n ref\n) {\n return (\n <InternalDragHandle\n className={clsx(className, styles.slider, styles[`slider-${position}`])}\n ariaLabel={ariaLabel}\n tooltipText={tooltipText}\n ariaValue={{ valueMin: 0, valueMax: 100, valueNow: ariaValuenow }}\n variant={position === 'side' ? 'resize-horizontal' : 'resize-vertical'}\n directions={\n position === 'side'\n ? {\n 'inline-end': ariaValuenow === 0 ? 'disabled' : 'active',\n 'inline-start': ariaValuenow === 100 ? 'disabled' : 'active',\n }\n : {\n 'block-end': ariaValuenow === 0 ? 'disabled' : 'active',\n 'block-start': ariaValuenow === 100 ? 'disabled' : 'active',\n }\n }\n onDirectionClick={onDirectionClick}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n ref={ref}\n />\n );\n});\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/panel-resize-handle/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,kBAAuC,MAAM,gBAAgB,CAAC;AAErE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAcrC,eAAe,KAAK,CAAC,UAAU,CAAoC,SAAS,iBAAiB,CAC3F,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,EACnH,GAAG;IAEH,OAAO,CACL,oBAAC,kBAAkB,IACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,EACvE,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,EAAE,EACtE,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EAC5F,UAAU,EACR,QAAQ;YACN,CAAC,CAAC;gBACE,cAAc,EAAE,UAAU;gBAC1B,YAAY,EAAE,UAAU;aACzB;YACH,CAAC,CAAC,QAAQ,KAAK,MAAM;gBACnB,CAAC,CAAC;oBACE,YAAY,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;oBACxD,cAAc,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;iBAC7D;gBACH,CAAC,CAAC,QAAQ,KAAK,YAAY;oBACzB,CAAC,CAAC;wBACE,YAAY,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;wBAC1D,cAAc,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;qBAC3D;oBACH,CAAC,CAAC;wBACE,WAAW,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;wBACvD,aAAa,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;qBAC5D,EAEX,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport InternalDragHandle, { DragHandleProps } from '../drag-handle';\n\nimport styles from './styles.css.js';\n\ninterface ResizeHandleProps {\n className?: string;\n ariaLabel: string | undefined;\n tooltipText?: string | undefined;\n position: 'side-start' | 'side' | 'bottom';\n ariaValuenow: number;\n onDirectionClick: DragHandleProps['onDirectionClick'];\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n onPointerDown: (event: React.PointerEvent<HTMLElement>) => void;\n disabled?: boolean;\n}\n\nexport default React.forwardRef<HTMLDivElement, ResizeHandleProps>(function PanelResizeHandle(\n { className, ariaLabel, tooltipText, ariaValuenow, position, onDirectionClick, onKeyDown, onPointerDown, disabled },\n ref\n) {\n return (\n <InternalDragHandle\n className={clsx(className, styles.slider, styles[`slider-${position}`])}\n ariaLabel={ariaLabel}\n tooltipText={tooltipText}\n ariaValue={{ valueMin: 0, valueMax: 100, valueNow: ariaValuenow ?? 0 }}\n variant={['side', 'side-start'].includes(position) ? 'resize-horizontal' : 'resize-vertical'}\n directions={\n disabled\n ? {\n 'inline-start': 'disabled',\n 'inline-end': 'disabled',\n }\n : position === 'side'\n ? {\n 'inline-end': ariaValuenow === 0 ? 'disabled' : 'active',\n 'inline-start': ariaValuenow === 100 ? 'disabled' : 'active',\n }\n : position === 'side-start'\n ? {\n 'inline-end': ariaValuenow === 100 ? 'disabled' : 'active',\n 'inline-start': ariaValuenow === 0 ? 'disabled' : 'active',\n }\n : {\n 'block-end': ariaValuenow === 0 ? 'disabled' : 'active',\n 'block-start': ariaValuenow === 100 ? 'disabled' : 'active',\n }\n }\n onDirectionClick={onDirectionClick}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n ref={ref}\n />\n );\n});\n"]}
@@ -1,7 +1,8 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "slider": "awsui_slider_cqzlk_1swl4_145",
5
- "slider-side": "awsui_slider-side_cqzlk_1swl4_179"
4
+ "slider": "awsui_slider_cqzlk_pwkoj_145",
5
+ "slider-side": "awsui_slider-side_cqzlk_pwkoj_179",
6
+ "slider-side-start": "awsui_slider-side-start_cqzlk_pwkoj_180"
6
7
  };
7
8
 
@@ -142,7 +142,7 @@
142
142
  */
143
143
  /* Style used for links in slots/components that are text heavy, to help links stand out among
144
144
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
145
- .awsui_slider_cqzlk_1swl4_145:not(#\9) {
145
+ .awsui_slider_cqzlk_pwkoj_145:not(#\9) {
146
146
  padding-block: 0;
147
147
  padding-inline: 0;
148
148
  cursor: ns-resize;
@@ -151,17 +151,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
151
151
  block-size: 18px;
152
152
  touch-action: none;
153
153
  }
154
- .awsui_slider_cqzlk_1swl4_145:not(#\9):focus {
154
+ .awsui_slider_cqzlk_pwkoj_145:not(#\9):focus {
155
155
  outline: none;
156
156
  }
157
- body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_1swl4_145:not(#\9):focus {
157
+ body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_pwkoj_145:not(#\9):focus {
158
158
  position: relative;
159
159
  }
160
- body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_1swl4_145:not(#\9):focus {
160
+ body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_pwkoj_145:not(#\9):focus {
161
161
  outline: 2px dotted transparent;
162
162
  outline-offset: calc(0px - 1px);
163
163
  }
164
- body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_1swl4_145:not(#\9):focus::before {
164
+ body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_pwkoj_145:not(#\9):focus::before {
165
165
  content: " ";
166
166
  display: block;
167
167
  position: absolute;
@@ -176,7 +176,8 @@ body[data-awsui-focus-visible=true] .awsui_slider_cqzlk_1swl4_145:not(#\9):focus
176
176
  box-shadow: 0 0 0 2px var(--color-border-item-focused-uk47pl, #006ce0);
177
177
  }
178
178
 
179
- .awsui_slider-side_cqzlk_1swl4_179:not(#\9) {
179
+ .awsui_slider-side_cqzlk_pwkoj_179:not(#\9),
180
+ .awsui_slider-side-start_cqzlk_pwkoj_180:not(#\9) {
180
181
  cursor: ew-resize;
181
182
  margin-block: 0;
182
183
  margin-inline-end: 0;
@@ -2,7 +2,8 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "slider": "awsui_slider_cqzlk_1swl4_145",
6
- "slider-side": "awsui_slider-side_cqzlk_1swl4_179"
5
+ "slider": "awsui_slider_cqzlk_pwkoj_145",
6
+ "slider-side": "awsui_slider-side_cqzlk_pwkoj_179",
7
+ "slider-side-start": "awsui_slider-side-start_cqzlk_pwkoj_180"
7
8
  };
8
9
 
@@ -1,6 +1,6 @@
1
1
  export var PACKAGE_SOURCE = "components";
2
- export var PACKAGE_VERSION = "3.0.0 (5b144292)";
3
- export var GIT_SHA = "5b144292";
2
+ export var PACKAGE_VERSION = "3.0.0 (3048a990)";
3
+ export var GIT_SHA = "3048a990";
4
4
  export var THEME = "open-source-visual-refresh";
5
5
  export var SYSTEM = "console";
6
6
  export var ALWAYS_VISUAL_REFRESH = true;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "components",
3
- "PACKAGE_VERSION": "3.0.0 (5b144292)",
4
- "GIT_SHA": "5b144292",
3
+ "PACKAGE_VERSION": "3.0.0 (3048a990)",
4
+ "GIT_SHA": "3048a990",
5
5
  "THEME": "open-source-visual-refresh",
6
6
  "SYSTEM": "console",
7
7
  "ALWAYS_VISUAL_REFRESH": true
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "5b144292215a03aa8458e36dbeee0b86d78b5530"
2
+ "commit": "3048a990386e0fc75098832381f6b9b8168afd70"
3
3
  }
@@ -0,0 +1,58 @@
1
+ import { NonCancelableEventHandler } from '../../events';
2
+ interface Message<Type, Payload> {
3
+ type: Type;
4
+ payload: Payload;
5
+ }
6
+ type DrawerVisibilityChange = (callback: (isVisible: boolean) => void) => void;
7
+ interface MountContentContext {
8
+ onVisibilityChange: DrawerVisibilityChange;
9
+ }
10
+ interface DrawerStateChangeParams {
11
+ isOpen: boolean;
12
+ initiatedByUserAction?: boolean;
13
+ }
14
+ export interface DrawerPayload {
15
+ id: string;
16
+ ariaLabels: {
17
+ content?: string;
18
+ closeButton?: string;
19
+ triggerButton?: string;
20
+ resizeHandle?: string;
21
+ resizeHandleTooltipText?: string;
22
+ expandedModeButton?: string;
23
+ exitExpandedModeButton?: string;
24
+ };
25
+ isExpandable?: boolean;
26
+ resizable?: boolean;
27
+ defaultSize?: number;
28
+ onResize?: NonCancelableEventHandler<{
29
+ size: number;
30
+ id: string;
31
+ }>;
32
+ defaultActive?: boolean;
33
+ trigger?: {
34
+ iconSvg?: string;
35
+ customIcon?: string;
36
+ };
37
+ mountContent: (container: HTMLElement, mountContext: MountContentContext) => void;
38
+ unmountContent: (container: HTMLElement) => void;
39
+ preserveInactiveContent?: boolean;
40
+ onToggle?: NonCancelableEventHandler<DrawerStateChangeParams>;
41
+ mountHeader?: (container: HTMLElement) => void;
42
+ unmountHeader?: (container: HTMLElement) => void;
43
+ }
44
+ export type RegisterDrawerMessage = Message<'registerLeftDrawer', DrawerPayload>;
45
+ export type UpdateDrawerConfigMessage = Message<'updateDrawerConfig', Omit<DrawerPayload, 'mountContent' | 'unmountContent' | 'mountHeader' | 'unmountHeader'>>;
46
+ export type OpenDrawerMessage = Message<'openDrawer', {
47
+ id: string;
48
+ }>;
49
+ export type CloseDrawerMessage = Message<'closeDrawer', {
50
+ id: string;
51
+ }>;
52
+ export type ResizeDrawerMessage = Message<'resizeDrawer', {
53
+ id: string;
54
+ size: number;
55
+ }>;
56
+ export type AppLayoutUpdateMessage = UpdateDrawerConfigMessage | OpenDrawerMessage | CloseDrawerMessage | ResizeDrawerMessage;
57
+ export type AppLayoutMessage = RegisterDrawerMessage | AppLayoutUpdateMessage;
58
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/widget/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,KAAK,sBAAsB,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;AAE/E,UAAU,mBAAmB;IAC3B,kBAAkB,EAAE,sBAAsB,CAAC;CAC5C;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClF,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IAC9D,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACjF,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,oBAAoB,EACpB,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,CAAC,CACzF,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExF,MAAM,MAAM,sBAAsB,GAC9B,yBAAyB,GACzB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/widget/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { NonCancelableEventHandler } from '../../events';\n\ninterface Message<Type, Payload> {\n type: Type;\n payload: Payload;\n}\n\ntype DrawerVisibilityChange = (callback: (isVisible: boolean) => void) => void;\n\ninterface MountContentContext {\n onVisibilityChange: DrawerVisibilityChange;\n}\n\ninterface DrawerStateChangeParams {\n isOpen: boolean;\n initiatedByUserAction?: boolean;\n}\n\nexport interface DrawerPayload {\n id: string;\n ariaLabels: {\n content?: string;\n closeButton?: string;\n triggerButton?: string;\n resizeHandle?: string;\n resizeHandleTooltipText?: string;\n expandedModeButton?: string;\n exitExpandedModeButton?: string;\n };\n isExpandable?: boolean;\n resizable?: boolean;\n defaultSize?: number;\n onResize?: NonCancelableEventHandler<{ size: number; id: string }>;\n defaultActive?: boolean;\n trigger?: {\n iconSvg?: string;\n customIcon?: string;\n };\n mountContent: (container: HTMLElement, mountContext: MountContentContext) => void;\n unmountContent: (container: HTMLElement) => void;\n preserveInactiveContent?: boolean;\n onToggle?: NonCancelableEventHandler<DrawerStateChangeParams>;\n mountHeader?: (container: HTMLElement) => void;\n unmountHeader?: (container: HTMLElement) => void;\n}\n\nexport type RegisterDrawerMessage = Message<'registerLeftDrawer', DrawerPayload>;\nexport type UpdateDrawerConfigMessage = Message<\n 'updateDrawerConfig',\n Omit<DrawerPayload, 'mountContent' | 'unmountContent' | 'mountHeader' | 'unmountHeader'>\n>;\nexport type OpenDrawerMessage = Message<'openDrawer', { id: string }>;\nexport type CloseDrawerMessage = Message<'closeDrawer', { id: string }>;\nexport type ResizeDrawerMessage = Message<'resizeDrawer', { id: string; size: number }>;\n\nexport type AppLayoutUpdateMessage =\n | UpdateDrawerConfigMessage\n | OpenDrawerMessage\n | CloseDrawerMessage\n | ResizeDrawerMessage;\n\nexport type AppLayoutMessage = RegisterDrawerMessage | AppLayoutUpdateMessage;\n"]}
@@ -0,0 +1,20 @@
1
+ import { AppLayoutMessage, AppLayoutUpdateMessage, DrawerPayload, RegisterDrawerMessage } from './interfaces';
2
+ type AppLayoutHandler = (event: AppLayoutMessage) => void;
3
+ export declare function getAppLayoutInitialState(): RegisterDrawerMessage[] | undefined;
4
+ export declare function registerAppLayoutHandler(handler: AppLayoutHandler): () => void;
5
+ export declare function clearInitialMessages(): void;
6
+ /**
7
+ * Returns whether there is an app layout present on this page or not
8
+ */
9
+ export declare function isAppLayoutReady(): boolean;
10
+ /**
11
+ * Registers a new runtime drawer to app layout
12
+ * @param drawer
13
+ */
14
+ export declare function registerLeftDrawer(drawer: DrawerPayload): void;
15
+ /**
16
+ * Interact with already registered app layout drawers
17
+ * @param message
18
+ */
19
+ export declare function updateDrawer(message: AppLayoutUpdateMessage): void;
20
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/widget/internal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAU9G,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAW1D,wBAAgB,wBAAwB,wCAEvC;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,cASjE;AAED,wBAAgB,oBAAoB,SAEnC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,YAE/B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,QAMvD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,QAE3D"}
@@ -0,0 +1,55 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { reportRuntimeApiWarning } from '../helpers/metrics';
4
+ const storageKeyMessageHandler = Symbol.for('awsui-widget-api-message-handler');
5
+ const storageKeyInitialMessages = Symbol.for('awsui-widget-api-initial-messages');
6
+ function getWindow() {
7
+ return window;
8
+ }
9
+ function getAppLayoutMessageHandler() {
10
+ const win = getWindow();
11
+ return win[storageKeyMessageHandler];
12
+ }
13
+ export function getAppLayoutInitialState() {
14
+ return getWindow()[storageKeyInitialMessages];
15
+ }
16
+ export function registerAppLayoutHandler(handler) {
17
+ const win = getWindow();
18
+ if (win[storageKeyMessageHandler]) {
19
+ reportRuntimeApiWarning('AppLayoutWidget', 'Double registration attempt, the old handler will be overridden');
20
+ }
21
+ win[storageKeyMessageHandler] = handler;
22
+ return () => {
23
+ win[storageKeyMessageHandler] = undefined;
24
+ };
25
+ }
26
+ export function clearInitialMessages() {
27
+ getWindow()[storageKeyInitialMessages] = undefined;
28
+ }
29
+ /**
30
+ * Returns whether there is an app layout present on this page or not
31
+ */
32
+ export function isAppLayoutReady() {
33
+ return !!getAppLayoutMessageHandler();
34
+ }
35
+ /**
36
+ * Registers a new runtime drawer to app layout
37
+ * @param drawer
38
+ */
39
+ export function registerLeftDrawer(drawer) {
40
+ var _a, _b;
41
+ const win = getWindow();
42
+ const message = { type: 'registerLeftDrawer', payload: drawer };
43
+ win[storageKeyInitialMessages] = (_a = win[storageKeyInitialMessages]) !== null && _a !== void 0 ? _a : [];
44
+ win[storageKeyInitialMessages].push(message);
45
+ (_b = getAppLayoutMessageHandler()) === null || _b === void 0 ? void 0 : _b(message);
46
+ }
47
+ /**
48
+ * Interact with already registered app layout drawers
49
+ * @param message
50
+ */
51
+ export function updateDrawer(message) {
52
+ var _a;
53
+ (_a = getAppLayoutMessageHandler()) === null || _a === void 0 ? void 0 : _a(message);
54
+ }
55
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/widget/internal.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAChF,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AASlF,SAAS,SAAS;IAChB,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,0BAA0B;IACjC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,SAAS,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAyB;IAChE,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,GAAG,CAAC,wBAAwB,CAAC,EAAE;QACjC,uBAAuB,CAAC,iBAAiB,EAAE,iEAAiE,CAAC,CAAC;KAC/G;IACD,GAAG,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC;IACxC,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,SAAS,EAAE,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,CAAC,0BAA0B,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB;;IACtD,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,OAAO,GAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACvF,GAAG,CAAC,yBAAyB,CAAC,GAAG,MAAA,GAAG,CAAC,yBAAyB,CAAC,mCAAI,EAAE,CAAC;IACtE,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAA,0BAA0B,EAAE,0CAAG,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAA+B;;IAC1D,MAAA,0BAA0B,EAAE,0CAAG,OAAO,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { reportRuntimeApiWarning } from '../helpers/metrics';\nimport { AppLayoutMessage, AppLayoutUpdateMessage, DrawerPayload, RegisterDrawerMessage } from './interfaces';\n\nconst storageKeyMessageHandler = Symbol.for('awsui-widget-api-message-handler');\nconst storageKeyInitialMessages = Symbol.for('awsui-widget-api-initial-messages');\n\ninterface WindowWithApi extends Window {\n [storageKeyMessageHandler]: AppLayoutHandler | undefined;\n [storageKeyInitialMessages]: Array<RegisterDrawerMessage> | undefined;\n}\n\ntype AppLayoutHandler = (event: AppLayoutMessage) => void;\n\nfunction getWindow() {\n return window as Window as WindowWithApi;\n}\n\nfunction getAppLayoutMessageHandler() {\n const win = getWindow();\n return win[storageKeyMessageHandler];\n}\n\nexport function getAppLayoutInitialState() {\n return getWindow()[storageKeyInitialMessages];\n}\n\nexport function registerAppLayoutHandler(handler: AppLayoutHandler) {\n const win = getWindow();\n if (win[storageKeyMessageHandler]) {\n reportRuntimeApiWarning('AppLayoutWidget', 'Double registration attempt, the old handler will be overridden');\n }\n win[storageKeyMessageHandler] = handler;\n return () => {\n win[storageKeyMessageHandler] = undefined;\n };\n}\n\nexport function clearInitialMessages() {\n getWindow()[storageKeyInitialMessages] = undefined;\n}\n\n/**\n * Returns whether there is an app layout present on this page or not\n */\nexport function isAppLayoutReady() {\n return !!getAppLayoutMessageHandler();\n}\n\n/**\n * Registers a new runtime drawer to app layout\n * @param drawer\n */\nexport function registerLeftDrawer(drawer: DrawerPayload) {\n const win = getWindow();\n const message: RegisterDrawerMessage = { type: 'registerLeftDrawer', payload: drawer };\n win[storageKeyInitialMessages] = win[storageKeyInitialMessages] ?? [];\n win[storageKeyInitialMessages].push(message);\n getAppLayoutMessageHandler()?.(message);\n}\n\n/**\n * Interact with already registered app layout drawers\n * @param message\n */\nexport function updateDrawer(message: AppLayoutUpdateMessage) {\n getAppLayoutMessageHandler()?.(message);\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './widget/interfaces';
2
+ export { registerLeftDrawer, updateDrawer, isAppLayoutReady } from './widget/internal';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../../src/internal/plugins/widget.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export * from './widget/interfaces';
4
+ export { registerLeftDrawer, updateDrawer, isAppLayoutReady } from './widget/internal';
5
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../../src/internal/plugins/widget.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport * from './widget/interfaces';\nexport { registerLeftDrawer, updateDrawer, isAppLayoutReady } from './widget/internal';\n"]}
@@ -29,4 +29,8 @@ export type SomeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>
29
29
  * type OptionalStringOrNumber = Optional<string | number>
30
30
  * ```
31
31
  */
32
- export type Optional<Type> = Type | undefined;
32
+ export type Optional<Type> = Type | undefined;
33
+ /**
34
+ * Use this function to mark conditions which should never be visited
35
+ */
36
+ export declare function assertNever(_value: never): null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,SAAS,MAAM,IAAI,IAAI,IAAI,GAAG;KAC9D,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,SAAS,MAAM,IAAI,IAAI,IAAI,GAAG;KAC9D,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC;AAE9C;;GAEG;AAEH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,QAGxC"}
package/internal/types.js CHANGED
@@ -1,2 +1,9 @@
1
- export {};
1
+ /**
2
+ * Use this function to mark conditions which should never be visited
3
+ */
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ export function assertNever(_value) {
6
+ /* istanbul ignore next: this code is not intended to be visited */
7
+ return null;
8
+ }
2
9
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Makes specified properties required.\n *\n * @example\n * ```\n * import { AlertProps } from '~components/alert/interfaces'\n *\n * type InternalAlertProps = SomeRequired<AlertProps, 'type'>\n *\n * function Alert(props: AlertProps) { ... }\n * function InternalAlert(props: InternalAlertProps) { ... }\n * ```\n */\nexport type SomeRequired<Type, Keys extends keyof Type> = Type & {\n [Key in Keys]-?: Type[Key];\n};\n\n/**\n * Makes specified properties optional.\n *\n * @example\n * ```\n * type PartialAlertProps = SomeOptional<AlertProps, 'type' | 'children'>\n * ```\n */\nexport type SomeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\n/**\n * Utility type that makes a union of given type and undefined.\n * @example\n * ```\n * type OptionalString = Optional<string>\n * type OptionalStringOrNumber = Optional<string | number>\n * ```\n */\nexport type Optional<Type> = Type | undefined;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,6DAA6D;AAC7D,MAAM,UAAU,WAAW,CAAC,MAAa;IACvC,mEAAmE;IACnE,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Makes specified properties required.\n *\n * @example\n * ```\n * import { AlertProps } from '~components/alert/interfaces'\n *\n * type InternalAlertProps = SomeRequired<AlertProps, 'type'>\n *\n * function Alert(props: AlertProps) { ... }\n * function InternalAlert(props: InternalAlertProps) { ... }\n * ```\n */\nexport type SomeRequired<Type, Keys extends keyof Type> = Type & {\n [Key in Keys]-?: Type[Key];\n};\n\n/**\n * Makes specified properties optional.\n *\n * @example\n * ```\n * type PartialAlertProps = SomeOptional<AlertProps, 'type' | 'children'>\n * ```\n */\nexport type SomeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\n/**\n * Utility type that makes a union of given type and undefined.\n * @example\n * ```\n * type OptionalString = Optional<string>\n * type OptionalStringOrNumber = Optional<string | number>\n * ```\n */\nexport type Optional<Type> = Type | undefined;\n\n/**\n * Use this function to mark conditions which should never be visited\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function assertNever(_value: never) {\n /* istanbul ignore next: this code is not intended to be visited */\n return null;\n}\n"]}
package/package.json CHANGED
@@ -150,7 +150,7 @@
150
150
  "./internal/base-component/index.js",
151
151
  "./internal/base-component/styles.css.js"
152
152
  ],
153
- "version": "3.0.1075",
153
+ "version": "3.0.1077",
154
154
  "repository": {
155
155
  "type": "git",
156
156
  "url": "https://github.com/cloudscape-design/components.git"
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/s3-resource-selector/s3-modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAUlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AASxD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oBAAoB,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;IACtE,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,qBAAqB,EAAE,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;IACxE,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,qBAAqB,EAAE,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;IACxE,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACxD,sBAAsB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,sBAAsB,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAC1E,WAAW,EAAE,uBAAuB,CAAC,WAAW,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,eAAe,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,KAAK,IAAI,CAAC;CAChE;AA2DD,wBAAgB,OAAO,CAAC,EACtB,WAAW,EACX,KAAK,EACL,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,GACV,EAAE,YAAY,eAwHd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/s3-resource-selector/s3-modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAWlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AASxD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oBAAoB,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;IACtE,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,qBAAqB,EAAE,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;IACxE,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,qBAAqB,EAAE,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;IACxE,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACxD,sBAAsB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,sBAAsB,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAC1E,WAAW,EAAE,uBAAuB,CAAC,WAAW,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,eAAe,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,KAAK,IAAI,CAAC;CAChE;AAsDD,wBAAgB,OAAO,CAAC,EACtB,WAAW,EACX,KAAK,EACL,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,GACV,EAAE,YAAY,eAwHd"}
@@ -6,6 +6,7 @@ import { InternalButton } from '../../button/internal';
6
6
  import { useInternalI18n } from '../../i18n/context';
7
7
  import { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';
8
8
  import { useVisualRefresh } from '../../internal/hooks/use-visual-mode';
9
+ import { assertNever } from '../../internal/types';
9
10
  import InternalModal from '../../modal/internal';
10
11
  import InternalSpaceBetween from '../../space-between/internal';
11
12
  import { joinObjectPath } from '../utils';
@@ -14,10 +15,6 @@ import { ObjectsTable } from './objects-table';
14
15
  import { VersionsTable } from './versions-table';
15
16
  import testUtilStyles from '../test-classes/styles.css.js';
16
17
  import styles from './styles.css.js';
17
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
- function assertNever(_value) {
19
- return null;
20
- }
21
18
  const initialBrowseState = {
22
19
  selectedItem: null,
23
20
  currentView: 'buckets',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/s3-resource-selector/s3-modal/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useReducer, useRef } from 'react';\n\nimport { BreadcrumbGroupImplementation } from '../../breadcrumb-group/implementation';\nimport { InternalButton } from '../../button/internal';\nimport { useInternalI18n } from '../../i18n/context';\nimport { ForwardFocusRef } from '../../internal/hooks/forward-focus';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport InternalModal from '../../modal/internal';\nimport InternalSpaceBetween from '../../space-between/internal';\nimport { S3ResourceSelectorProps } from '../interfaces';\nimport { joinObjectPath } from '../utils';\nimport { BucketsTable } from './buckets-table';\nimport { ObjectsTable } from './objects-table';\nimport { VersionsTable } from './versions-table';\n\nimport testUtilStyles from '../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface S3ModalProps {\n alert: React.ReactNode;\n selectableItemsTypes: S3ResourceSelectorProps['selectableItemsTypes'];\n fetchBuckets: S3ResourceSelectorProps['fetchBuckets'];\n bucketsVisibleColumns: ReadonlyArray<string>;\n bucketsIsItemDisabled: S3ResourceSelectorProps['bucketsIsItemDisabled'];\n fetchObjects: S3ResourceSelectorProps['fetchObjects'];\n objectsVisibleColumns: ReadonlyArray<string>;\n objectsIsItemDisabled: S3ResourceSelectorProps['objectsIsItemDisabled'];\n fetchVersions: S3ResourceSelectorProps['fetchVersions'];\n versionsVisibleColumns: ReadonlyArray<string>;\n versionsIsItemDisabled: S3ResourceSelectorProps['versionsIsItemDisabled'];\n i18nStrings: S3ResourceSelectorProps.I18nStrings | undefined;\n getModalRoot: S3ResourceSelectorProps['getModalRoot'];\n removeModalRoot: S3ResourceSelectorProps['removeModalRoot'];\n onDismiss: () => void;\n onSubmit: (resource: S3ResourceSelectorProps.Resource) => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction assertNever(_value: never) {\n return null;\n}\n\ninterface S3BrowseState {\n selectedItem: string | null;\n currentView: 'buckets' | 'objects' | 'versions';\n breadcrumbs: ReadonlyArray<string>;\n}\n\ntype S3BrowseActions =\n | { type: 'browse-buckets' }\n | { type: 'browse-objects' | 'browse-versions'; breadcrumbs: S3BrowseState['breadcrumbs'] }\n | { type: 'select-item'; item: string };\n\nconst initialBrowseState: S3BrowseState = {\n selectedItem: null,\n currentView: 'buckets',\n breadcrumbs: [],\n};\n\nfunction s3BrowseReducer(state: S3BrowseState, action: S3BrowseActions) {\n switch (action.type) {\n case 'browse-buckets':\n return initialBrowseState;\n case 'browse-objects':\n return {\n selectedItem: null,\n currentView: 'objects' as const,\n breadcrumbs: action.breadcrumbs,\n };\n case 'browse-versions':\n return {\n selectedItem: null,\n currentView: 'versions' as const,\n breadcrumbs: action.breadcrumbs,\n };\n case 'select-item':\n return {\n ...state,\n selectedItem: action.item,\n };\n default:\n assertNever(action);\n }\n return state;\n}\n\nfunction createResourceInfo({ currentView, breadcrumbs, selectedItem }: S3BrowseState) {\n const prefix = 's3://';\n if (currentView === 'versions') {\n return { uri: prefix + joinObjectPath(breadcrumbs), versionId: selectedItem ?? undefined };\n }\n return { uri: prefix + joinObjectPath([...breadcrumbs, selectedItem!]) };\n}\n\nexport function S3Modal({\n i18nStrings,\n alert,\n selectableItemsTypes,\n fetchBuckets,\n bucketsVisibleColumns,\n bucketsIsItemDisabled,\n fetchObjects,\n objectsVisibleColumns,\n objectsIsItemDisabled,\n fetchVersions,\n versionsVisibleColumns,\n versionsIsItemDisabled,\n getModalRoot,\n removeModalRoot,\n onSubmit,\n onDismiss,\n}: S3ModalProps) {\n const [{ currentView, breadcrumbs, selectedItem }, dispatch] = useReducer(s3BrowseReducer, initialBrowseState);\n const forwardFocusRef = useRef<ForwardFocusRef>(null);\n const i18n = useInternalI18n('s3-resource-selector');\n\n const isVisualRefresh = useVisualRefresh();\n\n useEffectOnUpdate(() => {\n forwardFocusRef.current?.focus();\n }, [breadcrumbs]);\n\n return (\n <div>\n <InternalModal\n className={testUtilStyles['modal-root']}\n visible={true}\n size=\"max\"\n getModalRoot={getModalRoot}\n removeModalRoot={removeModalRoot}\n closeAriaLabel={i18nStrings?.labelModalDismiss}\n onDismiss={onDismiss}\n header={i18n('i18nStrings.modalTitle', i18nStrings?.modalTitle)}\n footer={\n <InternalSpaceBetween className={styles['modal-actions']} size=\"xs\" direction=\"horizontal\">\n <InternalButton variant=\"link\" formAction=\"none\" onClick={onDismiss}>\n {i18n('i18nStrings.modalCancelButton', i18nStrings?.modalCancelButton)}\n </InternalButton>\n <InternalButton\n variant=\"primary\"\n className={styles['submit-button']}\n disabled={!selectedItem}\n formAction=\"none\"\n onClick={() => onSubmit(createResourceInfo({ currentView, breadcrumbs, selectedItem }))}\n >\n {i18n('i18nStrings.modalSubmitButton', i18nStrings?.modalSubmitButton)}\n </InternalButton>\n </InternalSpaceBetween>\n }\n >\n <InternalSpaceBetween size={isVisualRefresh ? 'xxs' : 'xs'}>\n <BreadcrumbGroupImplementation\n ariaLabel={i18n('i18nStrings.labelBreadcrumbs', i18nStrings?.labelBreadcrumbs)}\n expandAriaLabel={i18nStrings?.labelExpandBreadcrumbs}\n onFollow={event => {\n event.preventDefault();\n event.detail.item.meta.onClick();\n }}\n items={[\n {\n text: i18n('i18nStrings.modalBreadcrumbRootItem', i18nStrings?.modalBreadcrumbRootItem) ?? '',\n href: '',\n meta: { onClick: () => dispatch({ type: 'browse-buckets' }) },\n },\n ...breadcrumbs.map((segment, index) => ({\n text: segment,\n href: '',\n meta: {\n onClick: () =>\n dispatch({\n type: 'browse-objects',\n breadcrumbs: breadcrumbs.slice(0, index + 1),\n }),\n },\n })),\n ]}\n />\n {alert}\n {currentView === 'buckets' ? (\n <BucketsTable\n forwardFocusRef={forwardFocusRef}\n fetchData={fetchBuckets}\n visibleColumns={bucketsVisibleColumns}\n isItemDisabled={bucketsIsItemDisabled}\n selectableItemsTypes={selectableItemsTypes}\n i18nStrings={i18nStrings}\n isVisualRefresh={isVisualRefresh}\n onDrilldown={path =>\n dispatch({\n type: 'browse-objects',\n breadcrumbs: [path],\n })\n }\n onSelect={item => dispatch({ type: 'select-item', item })}\n />\n ) : currentView === 'objects' ? (\n <ObjectsTable\n forwardFocusRef={forwardFocusRef}\n pathSegments={breadcrumbs}\n fetchData={fetchObjects}\n visibleColumns={objectsVisibleColumns}\n isItemDisabled={objectsIsItemDisabled}\n selectableItemsTypes={selectableItemsTypes}\n i18nStrings={i18nStrings}\n isVisualRefresh={isVisualRefresh}\n onDrilldown={item => {\n dispatch({\n type: item.IsFolder ? 'browse-objects' : 'browse-versions',\n breadcrumbs: [...breadcrumbs, item.Key!],\n });\n }}\n onSelect={item => dispatch({ type: 'select-item', item })}\n />\n ) : currentView === 'versions' ? (\n <VersionsTable\n forwardFocusRef={forwardFocusRef}\n pathSegments={breadcrumbs}\n fetchData={fetchVersions}\n visibleColumns={versionsVisibleColumns}\n isItemDisabled={versionsIsItemDisabled}\n i18nStrings={i18nStrings}\n isVisualRefresh={isVisualRefresh}\n onSelect={item => dispatch({ type: 'select-item', item })}\n />\n ) : (\n assertNever(currentView)\n )}\n </InternalSpaceBetween>\n </InternalModal>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/s3-resource-selector/s3-modal/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useReducer, useRef } from 'react';\n\nimport { BreadcrumbGroupImplementation } from '../../breadcrumb-group/implementation';\nimport { InternalButton } from '../../button/internal';\nimport { useInternalI18n } from '../../i18n/context';\nimport { ForwardFocusRef } from '../../internal/hooks/forward-focus';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport { assertNever } from '../../internal/types';\nimport InternalModal from '../../modal/internal';\nimport InternalSpaceBetween from '../../space-between/internal';\nimport { S3ResourceSelectorProps } from '../interfaces';\nimport { joinObjectPath } from '../utils';\nimport { BucketsTable } from './buckets-table';\nimport { ObjectsTable } from './objects-table';\nimport { VersionsTable } from './versions-table';\n\nimport testUtilStyles from '../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface S3ModalProps {\n alert: React.ReactNode;\n selectableItemsTypes: S3ResourceSelectorProps['selectableItemsTypes'];\n fetchBuckets: S3ResourceSelectorProps['fetchBuckets'];\n bucketsVisibleColumns: ReadonlyArray<string>;\n bucketsIsItemDisabled: S3ResourceSelectorProps['bucketsIsItemDisabled'];\n fetchObjects: S3ResourceSelectorProps['fetchObjects'];\n objectsVisibleColumns: ReadonlyArray<string>;\n objectsIsItemDisabled: S3ResourceSelectorProps['objectsIsItemDisabled'];\n fetchVersions: S3ResourceSelectorProps['fetchVersions'];\n versionsVisibleColumns: ReadonlyArray<string>;\n versionsIsItemDisabled: S3ResourceSelectorProps['versionsIsItemDisabled'];\n i18nStrings: S3ResourceSelectorProps.I18nStrings | undefined;\n getModalRoot: S3ResourceSelectorProps['getModalRoot'];\n removeModalRoot: S3ResourceSelectorProps['removeModalRoot'];\n onDismiss: () => void;\n onSubmit: (resource: S3ResourceSelectorProps.Resource) => void;\n}\n\ninterface S3BrowseState {\n selectedItem: string | null;\n currentView: 'buckets' | 'objects' | 'versions';\n breadcrumbs: ReadonlyArray<string>;\n}\n\ntype S3BrowseActions =\n | { type: 'browse-buckets' }\n | { type: 'browse-objects' | 'browse-versions'; breadcrumbs: S3BrowseState['breadcrumbs'] }\n | { type: 'select-item'; item: string };\n\nconst initialBrowseState: S3BrowseState = {\n selectedItem: null,\n currentView: 'buckets',\n breadcrumbs: [],\n};\n\nfunction s3BrowseReducer(state: S3BrowseState, action: S3BrowseActions) {\n switch (action.type) {\n case 'browse-buckets':\n return initialBrowseState;\n case 'browse-objects':\n return {\n selectedItem: null,\n currentView: 'objects' as const,\n breadcrumbs: action.breadcrumbs,\n };\n case 'browse-versions':\n return {\n selectedItem: null,\n currentView: 'versions' as const,\n breadcrumbs: action.breadcrumbs,\n };\n case 'select-item':\n return {\n ...state,\n selectedItem: action.item,\n };\n default:\n assertNever(action);\n }\n return state;\n}\n\nfunction createResourceInfo({ currentView, breadcrumbs, selectedItem }: S3BrowseState) {\n const prefix = 's3://';\n if (currentView === 'versions') {\n return { uri: prefix + joinObjectPath(breadcrumbs), versionId: selectedItem ?? undefined };\n }\n return { uri: prefix + joinObjectPath([...breadcrumbs, selectedItem!]) };\n}\n\nexport function S3Modal({\n i18nStrings,\n alert,\n selectableItemsTypes,\n fetchBuckets,\n bucketsVisibleColumns,\n bucketsIsItemDisabled,\n fetchObjects,\n objectsVisibleColumns,\n objectsIsItemDisabled,\n fetchVersions,\n versionsVisibleColumns,\n versionsIsItemDisabled,\n getModalRoot,\n removeModalRoot,\n onSubmit,\n onDismiss,\n}: S3ModalProps) {\n const [{ currentView, breadcrumbs, selectedItem }, dispatch] = useReducer(s3BrowseReducer, initialBrowseState);\n const forwardFocusRef = useRef<ForwardFocusRef>(null);\n const i18n = useInternalI18n('s3-resource-selector');\n\n const isVisualRefresh = useVisualRefresh();\n\n useEffectOnUpdate(() => {\n forwardFocusRef.current?.focus();\n }, [breadcrumbs]);\n\n return (\n <div>\n <InternalModal\n className={testUtilStyles['modal-root']}\n visible={true}\n size=\"max\"\n getModalRoot={getModalRoot}\n removeModalRoot={removeModalRoot}\n closeAriaLabel={i18nStrings?.labelModalDismiss}\n onDismiss={onDismiss}\n header={i18n('i18nStrings.modalTitle', i18nStrings?.modalTitle)}\n footer={\n <InternalSpaceBetween className={styles['modal-actions']} size=\"xs\" direction=\"horizontal\">\n <InternalButton variant=\"link\" formAction=\"none\" onClick={onDismiss}>\n {i18n('i18nStrings.modalCancelButton', i18nStrings?.modalCancelButton)}\n </InternalButton>\n <InternalButton\n variant=\"primary\"\n className={styles['submit-button']}\n disabled={!selectedItem}\n formAction=\"none\"\n onClick={() => onSubmit(createResourceInfo({ currentView, breadcrumbs, selectedItem }))}\n >\n {i18n('i18nStrings.modalSubmitButton', i18nStrings?.modalSubmitButton)}\n </InternalButton>\n </InternalSpaceBetween>\n }\n >\n <InternalSpaceBetween size={isVisualRefresh ? 'xxs' : 'xs'}>\n <BreadcrumbGroupImplementation\n ariaLabel={i18n('i18nStrings.labelBreadcrumbs', i18nStrings?.labelBreadcrumbs)}\n expandAriaLabel={i18nStrings?.labelExpandBreadcrumbs}\n onFollow={event => {\n event.preventDefault();\n event.detail.item.meta.onClick();\n }}\n items={[\n {\n text: i18n('i18nStrings.modalBreadcrumbRootItem', i18nStrings?.modalBreadcrumbRootItem) ?? '',\n href: '',\n meta: { onClick: () => dispatch({ type: 'browse-buckets' }) },\n },\n ...breadcrumbs.map((segment, index) => ({\n text: segment,\n href: '',\n meta: {\n onClick: () =>\n dispatch({\n type: 'browse-objects',\n breadcrumbs: breadcrumbs.slice(0, index + 1),\n }),\n },\n })),\n ]}\n />\n {alert}\n {currentView === 'buckets' ? (\n <BucketsTable\n forwardFocusRef={forwardFocusRef}\n fetchData={fetchBuckets}\n visibleColumns={bucketsVisibleColumns}\n isItemDisabled={bucketsIsItemDisabled}\n selectableItemsTypes={selectableItemsTypes}\n i18nStrings={i18nStrings}\n isVisualRefresh={isVisualRefresh}\n onDrilldown={path =>\n dispatch({\n type: 'browse-objects',\n breadcrumbs: [path],\n })\n }\n onSelect={item => dispatch({ type: 'select-item', item })}\n />\n ) : currentView === 'objects' ? (\n <ObjectsTable\n forwardFocusRef={forwardFocusRef}\n pathSegments={breadcrumbs}\n fetchData={fetchObjects}\n visibleColumns={objectsVisibleColumns}\n isItemDisabled={objectsIsItemDisabled}\n selectableItemsTypes={selectableItemsTypes}\n i18nStrings={i18nStrings}\n isVisualRefresh={isVisualRefresh}\n onDrilldown={item => {\n dispatch({\n type: item.IsFolder ? 'browse-objects' : 'browse-versions',\n breadcrumbs: [...breadcrumbs, item.Key!],\n });\n }}\n onSelect={item => dispatch({ type: 'select-item', item })}\n />\n ) : currentView === 'versions' ? (\n <VersionsTable\n forwardFocusRef={forwardFocusRef}\n pathSegments={breadcrumbs}\n fetchData={fetchVersions}\n visibleColumns={versionsVisibleColumns}\n isItemDisabled={versionsIsItemDisabled}\n i18nStrings={i18nStrings}\n isVisualRefresh={isVisualRefresh}\n onSelect={item => dispatch({ type: 'select-item', item })}\n />\n ) : (\n assertNever(currentView)\n )}\n </InternalSpaceBetween>\n </InternalModal>\n </div>\n );\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { SingleTabStopNavigationAPI } from '../../internal/context/single-tab-stop-navigation-context';
2
3
  import { GridNavigationProps } from './interfaces';
3
4
  /**
4
5
  * Makes table navigable with keyboard commands.
@@ -9,4 +10,43 @@ export declare function GridNavigationProvider({
9
10
  pageSize,
10
11
  getTable,
11
12
  children
12
- }: GridNavigationProps): JSX.Element;
13
+ }: GridNavigationProps): JSX.Element;
14
+ /**
15
+ * This helper encapsulates the grid navigation behaviors which are:
16
+ * 1. Responding to keyboard commands and moving the focus accordingly;
17
+ * 2. Muting table interactive elements for only one to be user-focusable at a time;
18
+ * 3. Suppressing the above behaviors when focusing an element inside a dialog or when instructed explicitly.
19
+ */
20
+ export declare class GridNavigationProcessor {
21
+ private _pageSize;
22
+ private _table;
23
+ private _navigationAPI;
24
+ private focusedCell;
25
+ private focusInside;
26
+ private keepUserIndex;
27
+ constructor(navigationAPI: {
28
+ current: null | SingleTabStopNavigationAPI;
29
+ });
30
+ init(table: HTMLTableElement): void;
31
+ cleanup: () => void;
32
+ update({
33
+ pageSize
34
+ }: {
35
+ pageSize: number;
36
+ }): void;
37
+ refresh(): void;
38
+ onRegisterFocusable: (focusableElement: HTMLElement) => void;
39
+ onUnregisterActive: () => void;
40
+ getNextFocusTarget: () => HTMLElement | null;
41
+ isElementSuppressed: (element: null | Element) => boolean;
42
+ private get pageSize();
43
+ private get table();
44
+ private onFocusin;
45
+ private onFocusout;
46
+ private onKeydown;
47
+ private moveFocusBy;
48
+ private isRegistered;
49
+ private updateFocusedCell;
50
+ private getNextFocusable;
51
+ private getFocusablesFrom;
52
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"grid-navigation.d.ts","sourceRoot":"","sources":["../../../../src/table/table-role/grid-navigation.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAe,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAWhE;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,eAyC/G"}
1
+ {"version":3,"file":"grid-navigation.d.ts","sourceRoot":"","sources":["../../../../src/table/table-role/grid-navigation.tsx"],"names":[],"mappings":";AASA,OAAO,EACL,0BAA0B,EAE3B,MAAM,2DAA2D,CAAC;AAInE,OAAO,EAAe,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAWhE;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,eAyC/G;AAED;;;;;GAKG;AACH,qBAAa,uBAAuB;IAElC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,cAAc,CAAiD;IAGvE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;gBAElB,aAAa,EAAE;QAAE,OAAO,EAAE,IAAI,GAAG,0BAA0B,CAAA;KAAE;IAIlE,IAAI,CAAC,KAAK,EAAE,gBAAgB;IAa5B,OAAO,aAEZ;IAEK,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAIzC,OAAO;IAWP,mBAAmB,qBAAsB,WAAW,UAUzD;IAEK,kBAAkB,aAMvB;IAEK,kBAAkB,2BAmBvB;IAEK,mBAAmB,YAAa,IAAI,GAAG,OAAO,aAMnD;IAEF,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,SAAS,CAwBf;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,SAAS,CAsDf;IAEF,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,iBAAiB;CAI1B"}