@cloudscape-design/components-themeable 3.0.29 → 3.0.32

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 (197) hide show
  1. package/lib/internal/scss/app-layout/notifications/styles.scss +1 -0
  2. package/lib/internal/scss/app-layout/visual-refresh/app-bar.scss +1 -1
  3. package/lib/internal/scss/button-dropdown/category-elements/styles.scss +4 -0
  4. package/lib/internal/scss/button-dropdown/item-element/styles.scss +5 -0
  5. package/lib/internal/scss/checkbox/styles.scss +1 -1
  6. package/lib/internal/scss/internal/components/abstract-switch/styles.scss +7 -0
  7. package/lib/internal/scss/internal/components/selectable-item/styles.scss +3 -4
  8. package/lib/internal/scss/internal/styles/utils/theming.scss +0 -3
  9. package/lib/internal/scss/radio-group/styles.scss +1 -1
  10. package/lib/internal/scss/select/parts/styles.scss +5 -0
  11. package/lib/internal/scss/toggle/styles.scss +2 -1
  12. package/lib/internal/template/app-layout/index.d.ts.map +1 -1
  13. package/lib/internal/template/app-layout/index.js +6 -21
  14. package/lib/internal/template/app-layout/index.js.map +1 -1
  15. package/lib/internal/template/app-layout/notifications/index.d.ts.map +1 -1
  16. package/lib/internal/template/app-layout/notifications/index.js +5 -16
  17. package/lib/internal/template/app-layout/notifications/index.js.map +1 -1
  18. package/lib/internal/template/app-layout/notifications/styles.css.js +1 -1
  19. package/lib/internal/template/app-layout/notifications/styles.scoped.css +2 -1
  20. package/lib/internal/template/app-layout/notifications/styles.selectors.js +1 -1
  21. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +59 -59
  22. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +146 -146
  23. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +59 -59
  24. package/lib/internal/template/autosuggest/autosuggest-option.d.ts +1 -0
  25. package/lib/internal/template/autosuggest/autosuggest-option.d.ts.map +1 -1
  26. package/lib/internal/template/autosuggest/autosuggest-option.js +2 -2
  27. package/lib/internal/template/autosuggest/autosuggest-option.js.map +1 -1
  28. package/lib/internal/template/autosuggest/controller.d.ts +2 -5
  29. package/lib/internal/template/autosuggest/controller.d.ts.map +1 -1
  30. package/lib/internal/template/autosuggest/controller.js +5 -49
  31. package/lib/internal/template/autosuggest/controller.js.map +1 -1
  32. package/lib/internal/template/autosuggest/internal.d.ts +0 -7
  33. package/lib/internal/template/autosuggest/internal.d.ts.map +1 -1
  34. package/lib/internal/template/autosuggest/internal.js +23 -40
  35. package/lib/internal/template/autosuggest/internal.js.map +1 -1
  36. package/lib/internal/template/autosuggest/options-controller.d.ts +25 -0
  37. package/lib/internal/template/autosuggest/options-controller.d.ts.map +1 -0
  38. package/lib/internal/template/autosuggest/options-controller.js +64 -0
  39. package/lib/internal/template/autosuggest/options-controller.js.map +1 -0
  40. package/lib/internal/template/autosuggest/options-list.d.ts +3 -2
  41. package/lib/internal/template/autosuggest/options-list.d.ts.map +1 -1
  42. package/lib/internal/template/autosuggest/options-list.js +8 -7
  43. package/lib/internal/template/autosuggest/options-list.js.map +1 -1
  44. package/lib/internal/template/autosuggest/plain-list.d.ts +2 -2
  45. package/lib/internal/template/autosuggest/plain-list.d.ts.map +1 -1
  46. package/lib/internal/template/autosuggest/plain-list.js +4 -4
  47. package/lib/internal/template/autosuggest/plain-list.js.map +1 -1
  48. package/lib/internal/template/autosuggest/virtual-list.d.ts +1 -1
  49. package/lib/internal/template/autosuggest/virtual-list.d.ts.map +1 -1
  50. package/lib/internal/template/autosuggest/virtual-list.js +4 -4
  51. package/lib/internal/template/autosuggest/virtual-list.js.map +1 -1
  52. package/lib/internal/template/button-dropdown/category-elements/category-element.d.ts +1 -1
  53. package/lib/internal/template/button-dropdown/category-elements/category-element.d.ts.map +1 -1
  54. package/lib/internal/template/button-dropdown/category-elements/category-element.js +2 -2
  55. package/lib/internal/template/button-dropdown/category-elements/category-element.js.map +1 -1
  56. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.d.ts +1 -1
  57. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  58. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +4 -2
  59. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  60. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.d.ts +1 -1
  61. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
  62. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js +4 -2
  63. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  64. package/lib/internal/template/button-dropdown/category-elements/styles.css.js +13 -12
  65. package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +26 -22
  66. package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +13 -12
  67. package/lib/internal/template/button-dropdown/interfaces.d.ts +2 -0
  68. package/lib/internal/template/button-dropdown/interfaces.d.ts.map +1 -1
  69. package/lib/internal/template/button-dropdown/interfaces.js.map +1 -1
  70. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  71. package/lib/internal/template/button-dropdown/internal.js +5 -10
  72. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  73. package/lib/internal/template/button-dropdown/item-element/index.d.ts +1 -1
  74. package/lib/internal/template/button-dropdown/item-element/index.d.ts.map +1 -1
  75. package/lib/internal/template/button-dropdown/item-element/index.js +2 -1
  76. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  77. package/lib/internal/template/button-dropdown/item-element/styles.css.js +14 -13
  78. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +21 -17
  79. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +14 -13
  80. package/lib/internal/template/button-dropdown/items-list.d.ts +1 -1
  81. package/lib/internal/template/button-dropdown/items-list.d.ts.map +1 -1
  82. package/lib/internal/template/button-dropdown/items-list.js +4 -4
  83. package/lib/internal/template/button-dropdown/items-list.js.map +1 -1
  84. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts +2 -2
  85. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  86. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +7 -5
  87. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  88. package/lib/internal/template/button-dropdown/utils/use-highlighted-menu.d.ts +1 -0
  89. package/lib/internal/template/button-dropdown/utils/use-highlighted-menu.d.ts.map +1 -1
  90. package/lib/internal/template/button-dropdown/utils/use-highlighted-menu.js +11 -3
  91. package/lib/internal/template/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  92. package/lib/internal/template/checkbox/styles.css.js +3 -3
  93. package/lib/internal/template/checkbox/styles.scoped.css +6 -6
  94. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  95. package/lib/internal/template/date-range-picker/dropdown.d.ts +1 -0
  96. package/lib/internal/template/date-range-picker/dropdown.d.ts.map +1 -1
  97. package/lib/internal/template/date-range-picker/dropdown.js +18 -30
  98. package/lib/internal/template/date-range-picker/dropdown.js.map +1 -1
  99. package/lib/internal/template/date-range-picker/embedded.d.ts +7 -0
  100. package/lib/internal/template/date-range-picker/embedded.d.ts.map +1 -0
  101. package/lib/internal/template/date-range-picker/embedded.js +46 -0
  102. package/lib/internal/template/date-range-picker/embedded.js.map +1 -0
  103. package/lib/internal/template/date-range-picker/index.d.ts.map +1 -1
  104. package/lib/internal/template/date-range-picker/index.js +2 -15
  105. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  106. package/lib/internal/template/date-range-picker/interfaces.d.ts +46 -44
  107. package/lib/internal/template/date-range-picker/interfaces.d.ts.map +1 -1
  108. package/lib/internal/template/date-range-picker/interfaces.js.map +1 -1
  109. package/lib/internal/template/date-range-picker/use-date-range-picker.d.ts +29 -0
  110. package/lib/internal/template/date-range-picker/use-date-range-picker.d.ts.map +1 -0
  111. package/lib/internal/template/date-range-picker/use-date-range-picker.js +58 -0
  112. package/lib/internal/template/date-range-picker/use-date-range-picker.js.map +1 -0
  113. package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
  114. package/lib/internal/template/internal/components/abstract-switch/index.js +5 -5
  115. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  116. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +11 -11
  117. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +20 -13
  118. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +11 -11
  119. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.d.ts +7 -2
  120. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  121. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.js +10 -3
  122. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  123. package/lib/internal/template/internal/components/selectable-item/index.d.ts +1 -1
  124. package/lib/internal/template/internal/components/selectable-item/index.d.ts.map +1 -1
  125. package/lib/internal/template/internal/components/selectable-item/index.js +2 -2
  126. package/lib/internal/template/internal/components/selectable-item/index.js.map +1 -1
  127. package/lib/internal/template/internal/components/selectable-item/styles.css.js +16 -16
  128. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +29 -30
  129. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +16 -16
  130. package/lib/internal/template/internal/environment.js +1 -1
  131. package/lib/internal/template/multiselect/internal.d.ts.map +1 -1
  132. package/lib/internal/template/multiselect/internal.js +2 -2
  133. package/lib/internal/template/multiselect/internal.js.map +1 -1
  134. package/lib/internal/template/property-filter/controller.d.ts +2 -2
  135. package/lib/internal/template/property-filter/controller.js +3 -3
  136. package/lib/internal/template/property-filter/controller.js.map +1 -1
  137. package/lib/internal/template/property-filter/index.d.ts.map +1 -1
  138. package/lib/internal/template/property-filter/index.js +3 -3
  139. package/lib/internal/template/property-filter/index.js.map +1 -1
  140. package/lib/internal/template/property-filter/property-filter-autosuggest.d.ts +14 -0
  141. package/lib/internal/template/property-filter/property-filter-autosuggest.d.ts.map +1 -0
  142. package/lib/internal/template/property-filter/property-filter-autosuggest.js +143 -0
  143. package/lib/internal/template/property-filter/property-filter-autosuggest.js.map +1 -0
  144. package/lib/internal/template/radio-group/styles.css.js +9 -9
  145. package/lib/internal/template/radio-group/styles.scoped.css +16 -16
  146. package/lib/internal/template/radio-group/styles.selectors.js +9 -9
  147. package/lib/internal/template/select/internal.d.ts.map +1 -1
  148. package/lib/internal/template/select/internal.js +2 -2
  149. package/lib/internal/template/select/internal.js.map +1 -1
  150. package/lib/internal/template/select/parts/item.d.ts +1 -1
  151. package/lib/internal/template/select/parts/item.d.ts.map +1 -1
  152. package/lib/internal/template/select/parts/item.js +6 -3
  153. package/lib/internal/template/select/parts/item.js.map +1 -1
  154. package/lib/internal/template/select/parts/multiselect-item.d.ts +1 -1
  155. package/lib/internal/template/select/parts/multiselect-item.d.ts.map +1 -1
  156. package/lib/internal/template/select/parts/multiselect-item.js +2 -2
  157. package/lib/internal/template/select/parts/multiselect-item.js.map +1 -1
  158. package/lib/internal/template/select/parts/plain-list.d.ts +1 -1
  159. package/lib/internal/template/select/parts/plain-list.d.ts.map +1 -1
  160. package/lib/internal/template/select/parts/plain-list.js +4 -4
  161. package/lib/internal/template/select/parts/plain-list.js.map +1 -1
  162. package/lib/internal/template/select/parts/styles.css.js +8 -7
  163. package/lib/internal/template/select/parts/styles.scoped.css +12 -7
  164. package/lib/internal/template/select/parts/styles.selectors.js +8 -7
  165. package/lib/internal/template/select/parts/virtual-list.js +4 -4
  166. package/lib/internal/template/select/parts/virtual-list.js.map +1 -1
  167. package/lib/internal/template/select/utils/get-item-props.d.ts +1 -2
  168. package/lib/internal/template/select/utils/get-item-props.d.ts.map +1 -1
  169. package/lib/internal/template/select/utils/get-item-props.js +3 -3
  170. package/lib/internal/template/select/utils/get-item-props.js.map +1 -1
  171. package/lib/internal/template/select/utils/render-options.d.ts +2 -2
  172. package/lib/internal/template/select/utils/render-options.d.ts.map +1 -1
  173. package/lib/internal/template/select/utils/render-options.js +2 -3
  174. package/lib/internal/template/select/utils/render-options.js.map +1 -1
  175. package/lib/internal/template/select/utils/use-select.d.ts +1 -0
  176. package/lib/internal/template/select/utils/use-select.d.ts.map +1 -1
  177. package/lib/internal/template/select/utils/use-select.js +2 -1
  178. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  179. package/lib/internal/template/toggle/internal.d.ts.map +1 -1
  180. package/lib/internal/template/toggle/internal.js +3 -1
  181. package/lib/internal/template/toggle/internal.js.map +1 -1
  182. package/lib/internal/template/toggle/styles.css.js +8 -8
  183. package/lib/internal/template/toggle/styles.scoped.css +15 -14
  184. package/lib/internal/template/toggle/styles.selectors.js +8 -8
  185. package/package.json +1 -1
  186. package/lib/internal/scss/app-layout/dark-header/styles.scss +0 -14
  187. package/lib/internal/template/app-layout/dark-header/index.d.ts +0 -11
  188. package/lib/internal/template/app-layout/dark-header/index.d.ts.map +0 -1
  189. package/lib/internal/template/app-layout/dark-header/index.js +0 -10
  190. package/lib/internal/template/app-layout/dark-header/index.js.map +0 -1
  191. package/lib/internal/template/app-layout/dark-header/styles.css.js +0 -6
  192. package/lib/internal/template/app-layout/dark-header/styles.scoped.css +0 -13
  193. package/lib/internal/template/app-layout/dark-header/styles.selectors.js +0 -7
  194. package/lib/internal/template/app-layout/utils/use-sticky-position.d.ts +0 -2
  195. package/lib/internal/template/app-layout/utils/use-sticky-position.d.ts.map +0 -1
  196. package/lib/internal/template/app-layout/utils/use-sticky-position.js +0 -54
  197. package/lib/internal/template/app-layout/utils/use-sticky-position.js.map +0 -1
@@ -1,54 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import React, { useEffect, useRef } from 'react';
4
- import { useContainerQuery } from '../../internal/hooks/container-queries';
5
- import { useMergeRefs } from '../../internal/hooks/use-merge-refs';
6
- function getScrollableContainers(element) {
7
- var node = element;
8
- while ((node = node.parentElement) && node !== document.body) {
9
- if (['scroll', 'auto'].indexOf(getComputedStyle(node).overflow) > -1) {
10
- return node;
11
- }
12
- }
13
- return null;
14
- }
15
- export function useStickyPosition(topOffset) {
16
- if (topOffset === void 0) { topOffset = 0; }
17
- var _a = useContainerQuery(function (rect) { return rect.height; }), stickyHeight = _a[0], stickyMeasureRef = _a[1];
18
- var stickyRefObject = useRef(null);
19
- var stickyRef = useMergeRefs(stickyMeasureRef, stickyRefObject);
20
- var _b = useContainerQuery(function (rect) { return rect.width; }), stickyWidth = _b[0], placeholderMeasureRef = _b[1];
21
- var placeholderRefObject = useRef(null);
22
- var placeholderRef = useMergeRefs(placeholderMeasureRef, placeholderRefObject);
23
- var placeholder = React.createElement("div", { ref: placeholderRef });
24
- useEffect(function () {
25
- if (!stickyRefObject.current || !placeholderRefObject.current) {
26
- return;
27
- }
28
- var stickyElement = stickyRefObject.current;
29
- var placeholder = placeholderRefObject.current;
30
- var scrollParent = getScrollableContainers(stickyElement);
31
- var handler = function () {
32
- var stickyBox = stickyElement.getBoundingClientRect();
33
- var containerBox = scrollParent ? scrollParent.getBoundingClientRect() : { top: 0 };
34
- if (stickyBox.top - containerBox.top <= topOffset) {
35
- stickyElement.style.position = 'fixed';
36
- stickyElement.style.width = "".concat(stickyWidth, "px");
37
- stickyElement.style.top = "".concat(topOffset, "px");
38
- placeholder.style.height = "".concat(stickyHeight, "px");
39
- }
40
- else {
41
- stickyElement.style.position = '';
42
- stickyElement.style.width = "";
43
- stickyElement.style.top = "";
44
- placeholder.style.height = "";
45
- }
46
- };
47
- var eventTarget = scrollParent || window;
48
- eventTarget.addEventListener('scroll', handler);
49
- handler();
50
- return function () { return eventTarget.removeEventListener('scroll', handler); };
51
- }, [topOffset, stickyWidth, stickyHeight, stickyRefObject, placeholderRefObject]);
52
- return [stickyRef, placeholder];
53
- }
54
- //# sourceMappingURL=use-sticky-position.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-sticky-position.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-sticky-position.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, { useEffect, useRef } from 'react';\nimport { useContainerQuery } from '../../internal/hooks/container-queries';\nimport { useMergeRefs } from '../../internal/hooks/use-merge-refs';\n\nfunction getScrollableContainers(element: HTMLElement) {\n let node: HTMLElement | null = element;\n\n while ((node = node.parentElement) && node !== document.body) {\n if (['scroll', 'auto'].indexOf(getComputedStyle(node).overflow) > -1) {\n return node;\n }\n }\n return null;\n}\n\nexport function useStickyPosition(topOffset = 0) {\n const [stickyHeight, stickyMeasureRef] = useContainerQuery(rect => rect.height);\n const stickyRefObject = useRef<HTMLDivElement>(null);\n const stickyRef = useMergeRefs(stickyMeasureRef, stickyRefObject);\n\n const [stickyWidth, placeholderMeasureRef] = useContainerQuery(rect => rect.width);\n const placeholderRefObject = useRef<HTMLDivElement>(null);\n const placeholderRef = useMergeRefs(placeholderMeasureRef, placeholderRefObject);\n\n const placeholder = <div ref={placeholderRef} />;\n\n useEffect(() => {\n if (!stickyRefObject.current || !placeholderRefObject.current) {\n return;\n }\n const stickyElement = stickyRefObject.current;\n const placeholder = placeholderRefObject.current;\n const scrollParent = getScrollableContainers(stickyElement);\n const handler = () => {\n const stickyBox = stickyElement.getBoundingClientRect();\n const containerBox = scrollParent ? scrollParent.getBoundingClientRect() : { top: 0 };\n if (stickyBox.top - containerBox.top <= topOffset) {\n stickyElement.style.position = 'fixed';\n stickyElement.style.width = `${stickyWidth}px`;\n stickyElement.style.top = `${topOffset}px`;\n placeholder.style.height = `${stickyHeight}px`;\n } else {\n stickyElement.style.position = '';\n stickyElement.style.width = ``;\n stickyElement.style.top = ``;\n placeholder.style.height = ``;\n }\n };\n const eventTarget = scrollParent || window;\n eventTarget.addEventListener('scroll', handler);\n handler();\n return () => eventTarget.removeEventListener('scroll', handler);\n }, [topOffset, stickyWidth, stickyHeight, stickyRefObject, placeholderRefObject]);\n\n return [stickyRef, placeholder] as const;\n}\n"]}