@cloudscape-design/components 3.0.337 → 3.0.339

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/alert/index.d.ts.map +1 -1
  2. package/alert/index.js +36 -1
  3. package/alert/index.js.map +1 -1
  4. package/app-layout/styles.css.js +17 -17
  5. package/app-layout/styles.scoped.css +21 -21
  6. package/app-layout/styles.selectors.js +17 -17
  7. package/app-layout/visual-refresh/styles.css.js +69 -69
  8. package/app-layout/visual-refresh/styles.scoped.css +173 -169
  9. package/app-layout/visual-refresh/styles.selectors.js +69 -69
  10. package/area-chart/chart-container.d.ts +2 -2
  11. package/area-chart/chart-container.d.ts.map +1 -1
  12. package/area-chart/chart-container.js +1 -1
  13. package/area-chart/chart-container.js.map +1 -1
  14. package/area-chart/interfaces.d.ts +5 -1
  15. package/area-chart/interfaces.d.ts.map +1 -1
  16. package/area-chart/interfaces.js.map +1 -1
  17. package/area-chart/internal.d.ts +1 -1
  18. package/area-chart/internal.d.ts.map +1 -1
  19. package/area-chart/internal.js +2 -2
  20. package/area-chart/internal.js.map +1 -1
  21. package/attribute-editor/interfaces.d.ts +7 -0
  22. package/attribute-editor/interfaces.d.ts.map +1 -1
  23. package/attribute-editor/interfaces.js.map +1 -1
  24. package/attribute-editor/internal.d.ts.map +1 -1
  25. package/attribute-editor/internal.js +2 -2
  26. package/attribute-editor/internal.js.map +1 -1
  27. package/attribute-editor/row.d.ts +3 -2
  28. package/attribute-editor/row.d.ts.map +1 -1
  29. package/attribute-editor/row.js +2 -2
  30. package/attribute-editor/row.js.map +1 -1
  31. package/box/styles.css.js +189 -189
  32. package/box/styles.scoped.css +257 -257
  33. package/box/styles.selectors.js +189 -189
  34. package/button/styles.css.js +20 -20
  35. package/button/styles.scoped.css +154 -154
  36. package/button/styles.selectors.js +20 -20
  37. package/button-dropdown/category-elements/styles.css.js +13 -13
  38. package/button-dropdown/category-elements/styles.scoped.css +25 -25
  39. package/button-dropdown/category-elements/styles.selectors.js +13 -13
  40. package/button-dropdown/item-element/styles.css.js +14 -14
  41. package/button-dropdown/item-element/styles.scoped.css +20 -20
  42. package/button-dropdown/item-element/styles.selectors.js +14 -14
  43. package/cards/styles.css.js +38 -38
  44. package/cards/styles.scoped.css +57 -62
  45. package/cards/styles.selectors.js +38 -38
  46. package/container/styles.css.js +28 -28
  47. package/container/styles.scoped.css +57 -54
  48. package/container/styles.selectors.js +28 -28
  49. package/content-layout/styles.css.js +7 -7
  50. package/content-layout/styles.scoped.css +13 -13
  51. package/content-layout/styles.selectors.js +7 -7
  52. package/expandable-section/styles.css.js +29 -29
  53. package/expandable-section/styles.scoped.css +61 -61
  54. package/expandable-section/styles.selectors.js +29 -29
  55. package/flashbar/styles.css.js +46 -46
  56. package/flashbar/styles.scoped.css +146 -146
  57. package/flashbar/styles.selectors.js +46 -46
  58. package/form-field/internal.js +3 -2
  59. package/form-field/internal.js.map +1 -1
  60. package/header/internal.d.ts.map +1 -1
  61. package/header/internal.js +5 -5
  62. package/header/internal.js.map +1 -1
  63. package/header/styles.css.js +33 -44
  64. package/header/styles.scoped.css +85 -91
  65. package/header/styles.selectors.js +33 -44
  66. package/help-panel/styles.css.js +4 -4
  67. package/help-panel/styles.scoped.css +80 -80
  68. package/help-panel/styles.selectors.js +4 -4
  69. package/icon/styles.css.js +21 -21
  70. package/icon/styles.scoped.css +54 -54
  71. package/icon/styles.selectors.js +21 -21
  72. package/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  73. package/internal/analytics/components/analytics-funnel.js +16 -15
  74. package/internal/analytics/components/analytics-funnel.js.map +1 -1
  75. package/internal/analytics/context/analytics-context.d.ts +6 -7
  76. package/internal/analytics/context/analytics-context.d.ts.map +1 -1
  77. package/internal/analytics/context/analytics-context.js +2 -6
  78. package/internal/analytics/context/analytics-context.js.map +1 -1
  79. package/internal/analytics/hooks/use-funnel.d.ts +4 -7
  80. package/internal/analytics/hooks/use-funnel.d.ts.map +1 -1
  81. package/internal/analytics/hooks/use-funnel.js +10 -8
  82. package/internal/analytics/hooks/use-funnel.js.map +1 -1
  83. package/internal/base-component/styles.scoped.css +45 -35
  84. package/internal/components/button-trigger/index.d.ts +2 -1
  85. package/internal/components/button-trigger/index.d.ts.map +1 -1
  86. package/internal/components/button-trigger/index.js +2 -2
  87. package/internal/components/button-trigger/index.js.map +1 -1
  88. package/internal/components/cartesian-chart/interfaces.d.ts +10 -2
  89. package/internal/components/cartesian-chart/interfaces.d.ts.map +1 -1
  90. package/internal/components/cartesian-chart/interfaces.js.map +1 -1
  91. package/internal/components/dropdown/index.d.ts +1 -1
  92. package/internal/components/dropdown/index.d.ts.map +1 -1
  93. package/internal/components/dropdown/index.js +4 -4
  94. package/internal/components/dropdown/index.js.map +1 -1
  95. package/internal/components/dropdown/interfaces.d.ts +8 -0
  96. package/internal/components/dropdown/interfaces.d.ts.map +1 -1
  97. package/internal/components/dropdown/interfaces.js.map +1 -1
  98. package/internal/components/menu-dropdown/styles.css.js +7 -7
  99. package/internal/components/menu-dropdown/styles.scoped.css +14 -14
  100. package/internal/components/menu-dropdown/styles.selectors.js +7 -7
  101. package/internal/environment.js +1 -1
  102. package/internal/generated/theming/index.cjs +153 -120
  103. package/internal/generated/theming/index.js +153 -120
  104. package/internal/manifest.json +1 -1
  105. package/link/internal.d.ts.map +1 -1
  106. package/link/internal.js +3 -2
  107. package/link/internal.js.map +1 -1
  108. package/link/styles.css.js +20 -20
  109. package/link/styles.scoped.css +83 -83
  110. package/link/styles.selectors.js +20 -20
  111. package/mixed-line-bar-chart/internal.d.ts +1 -1
  112. package/mixed-line-bar-chart/internal.d.ts.map +1 -1
  113. package/mixed-line-bar-chart/internal.js +2 -2
  114. package/mixed-line-bar-chart/internal.js.map +1 -1
  115. package/modal/styles.css.js +23 -23
  116. package/modal/styles.scoped.css +40 -40
  117. package/modal/styles.selectors.js +23 -23
  118. package/package.json +1 -1
  119. package/pagination/styles.css.js +9 -9
  120. package/pagination/styles.scoped.css +24 -24
  121. package/pagination/styles.selectors.js +9 -9
  122. package/popover/styles.css.js +50 -50
  123. package/popover/styles.scoped.css +65 -65
  124. package/popover/styles.selectors.js +50 -50
  125. package/property-filter/index.d.ts.map +1 -1
  126. package/property-filter/index.js +4 -3
  127. package/property-filter/index.js.map +1 -1
  128. package/property-filter/interfaces.d.ts +16 -5
  129. package/property-filter/interfaces.d.ts.map +1 -1
  130. package/property-filter/interfaces.js.map +1 -1
  131. package/s3-resource-selector/index.d.ts.map +1 -1
  132. package/s3-resource-selector/index.js +2 -2
  133. package/s3-resource-selector/index.js.map +1 -1
  134. package/s3-resource-selector/interfaces.d.ts +7 -0
  135. package/s3-resource-selector/interfaces.d.ts.map +1 -1
  136. package/s3-resource-selector/interfaces.js.map +1 -1
  137. package/s3-resource-selector/s3-in-context/index.d.ts +1 -0
  138. package/s3-resource-selector/s3-in-context/index.d.ts.map +1 -1
  139. package/s3-resource-selector/s3-in-context/index.js +2 -2
  140. package/s3-resource-selector/s3-in-context/index.js.map +1 -1
  141. package/segmented-control/styles.css.js +14 -14
  142. package/segmented-control/styles.scoped.css +35 -35
  143. package/segmented-control/styles.selectors.js +14 -14
  144. package/select/utils/use-select.d.ts +5 -7
  145. package/select/utils/use-select.d.ts.map +1 -1
  146. package/select/utils/use-select.js +6 -0
  147. package/select/utils/use-select.js.map +1 -1
  148. package/side-navigation/styles.css.js +28 -28
  149. package/side-navigation/styles.scoped.css +49 -49
  150. package/side-navigation/styles.selectors.js +28 -28
  151. package/spinner/styles.css.js +13 -13
  152. package/spinner/styles.scoped.css +22 -22
  153. package/spinner/styles.selectors.js +13 -13
  154. package/split-panel/styles.css.js +56 -56
  155. package/split-panel/styles.scoped.css +80 -80
  156. package/split-panel/styles.selectors.js +56 -56
  157. package/table/body-cell/index.d.ts.map +1 -1
  158. package/table/body-cell/index.js +22 -3
  159. package/table/body-cell/index.js.map +1 -1
  160. package/table/body-cell/styles.css.js +28 -28
  161. package/table/body-cell/styles.scoped.css +93 -77
  162. package/table/body-cell/styles.selectors.js +28 -28
  163. package/table/header-cell/styles.css.js +24 -24
  164. package/table/header-cell/styles.scoped.css +41 -41
  165. package/table/header-cell/styles.selectors.js +24 -24
  166. package/table/styles.css.js +34 -34
  167. package/table/styles.scoped.css +45 -52
  168. package/table/styles.selectors.js +34 -34
  169. package/tabs/styles.css.js +21 -21
  170. package/tabs/styles.scoped.css +41 -41
  171. package/tabs/styles.selectors.js +21 -21
  172. package/tag-editor/styles.css.js +3 -3
  173. package/tag-editor/styles.scoped.css +11 -11
  174. package/tag-editor/styles.selectors.js +3 -3
  175. package/text-content/styles.css.js +1 -1
  176. package/text-content/styles.scoped.css +71 -71
  177. package/text-content/styles.selectors.js +1 -1
  178. package/top-navigation/1.0-beta/styles.css.js +25 -25
  179. package/top-navigation/1.0-beta/styles.scoped.css +45 -45
  180. package/top-navigation/1.0-beta/styles.selectors.js +25 -25
  181. package/top-navigation/styles.css.js +47 -47
  182. package/top-navigation/styles.scoped.css +74 -74
  183. package/top-navigation/styles.selectors.js +47 -47
  184. package/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  185. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +22 -22
  186. package/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  187. package/wizard/interfaces.d.ts +10 -3
  188. package/wizard/interfaces.d.ts.map +1 -1
  189. package/wizard/interfaces.js.map +1 -1
  190. package/wizard/internal.d.ts +1 -1
  191. package/wizard/internal.d.ts.map +1 -1
  192. package/wizard/internal.js +5 -5
  193. package/wizard/internal.js.map +1 -1
  194. package/wizard/wizard-form.d.ts +2 -1
  195. package/wizard/wizard-form.d.ts.map +1 -1
  196. package/wizard/wizard-form.js +2 -2
  197. package/wizard/wizard-form.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["s3-resource-selector/s3-in-context/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, { useState, useEffect, useRef } from 'react';\nimport InternalBox from '../../box/internal';\nimport { InternalButton } from '../../button/internal';\nimport InternalFormField from '../../form-field/internal';\nimport { InputProps } from '../../input/interfaces';\nimport InternalSelect from '../../select/internal';\nimport InternalStatusIndicator from '../../status-indicator/internal';\nimport { NonCancelableCustomEvent } from '../../internal/events';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { useVersionsFetch } from './use-versions-fetch';\nimport { S3ResourceSelectorProps } from '../interfaces';\nimport { validate, getErrorText } from './validation';\nimport styles from './styles.css.js';\nimport { SearchInput } from './search-input';\nimport LiveRegion from '../../internal/components/live-region';\nimport { useInternalI18n } from '../../internal/i18n/context';\n\ninterface S3InContextProps {\n i18nStrings: S3ResourceSelectorProps.I18nStrings | undefined;\n resource: S3ResourceSelectorProps.Resource;\n viewHref: string | undefined;\n invalid: boolean | undefined;\n inputAriaDescribedby: string | undefined;\n selectableItemsTypes: S3ResourceSelectorProps['selectableItemsTypes'];\n fetchVersions: S3ResourceSelectorProps['fetchVersions'];\n onBrowse: () => void;\n onChange: (newResource: S3ResourceSelectorProps.Resource, errorText: string | undefined) => void;\n}\n\nexport interface S3InContextRef {\n focus(): void;\n}\n\nexport const S3InContext = React.forwardRef(\n (\n {\n i18nStrings,\n resource,\n viewHref,\n invalid,\n inputAriaDescribedby,\n selectableItemsTypes,\n fetchVersions,\n onChange,\n onBrowse,\n }: S3InContextProps,\n ref: React.Ref<S3InContextRef>\n ) => {\n const i18n = useInternalI18n('s3-resource-selector');\n const isInputBlurredRef = useRef(true);\n const [isInputTouched, setInputTouched] = useState(false);\n const { versions, loading, loadVersions, resetVersions } = useVersionsFetch(fetchVersions);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useForwardFocus(ref, inputRef);\n\n const uri = resource.uri;\n const supportsVersions = selectableItemsTypes && selectableItemsTypes.indexOf('versions') > -1;\n const selectedVersion = versions.filter(version => version.value === resource.versionId)[0] || null;\n\n function handleUriChange(event: NonCancelableCustomEvent<InputProps.ChangeDetail>) {\n const uri = event.detail.value;\n const errorCode = isInputTouched ? validate(uri) : undefined;\n resetVersions();\n onChange({ uri }, getErrorText(i18n, i18nStrings, errorCode));\n }\n\n function handleUriBlur() {\n isInputBlurredRef.current = true;\n setInputTouched(true);\n const errorCode = validate(resource.uri);\n onChange(resource, getErrorText(i18n, i18nStrings, errorCode));\n if (supportsVersions) {\n loadVersions(resource.uri);\n }\n }\n\n useEffect(() => {\n if (!isInputBlurredRef.current || !supportsVersions) {\n return;\n }\n const { cancel } = loadVersions(uri) ?? {};\n return cancel;\n }, [uri, supportsVersions, loadVersions]);\n\n return (\n <div className={styles.root}>\n <div className={styles.layout}>\n <InternalFormField\n className={styles['layout-uri']}\n label={i18n('i18nStrings.inContextUriLabel', i18nStrings?.inContextUriLabel)}\n stretch={true}\n >\n <SearchInput\n ref={inputRef}\n value={uri}\n ariaDescribedby={inputAriaDescribedby}\n clearAriaLabel={i18nStrings?.inContextInputClearAriaLabel}\n placeholder={i18nStrings?.inContextInputPlaceholder}\n onChange={handleUriChange}\n invalid={invalid}\n onFocus={() => (isInputBlurredRef.current = false)}\n onBlur={handleUriBlur}\n />\n </InternalFormField>\n {supportsVersions && (\n <InternalFormField\n className={styles['layout-version']}\n label={i18n('i18nStrings.inContextVersionSelectLabel', i18nStrings?.inContextVersionSelectLabel)}\n stretch={true}\n >\n <InternalSelect\n selectedOption={selectedVersion}\n placeholder={i18n('i18nStrings.inContextSelectPlaceholder', i18nStrings?.inContextSelectPlaceholder)}\n disabled={versions.length === 0}\n options={versions}\n onChange={event => onChange({ ...resource, versionId: event.detail.selectedOption.value }, undefined)}\n invalid={false} // invalid state should not highlight the select, only the text input\n />\n </InternalFormField>\n )}\n <div>\n <InternalButton\n className={styles['view-button']}\n disabled={!viewHref}\n href={viewHref}\n target=\"_blank\"\n iconName=\"external\"\n iconAlign=\"right\"\n formAction=\"none\"\n ariaLabel={i18n('i18nStrings.inContextViewButtonAriaLabel', i18nStrings?.inContextViewButtonAriaLabel)}\n >\n {i18n('i18nStrings.inContextViewButton', i18nStrings?.inContextViewButton)}\n </InternalButton>\n </div>\n <div className={styles['layout-divider']} />\n <div>\n <InternalButton className={styles['browse-button']} disabled={loading} formAction=\"none\" onClick={onBrowse}>\n {i18n('i18nStrings.inContextBrowseButton', i18nStrings?.inContextBrowseButton)}\n </InternalButton>\n </div>\n </div>\n\n <div role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n {loading && (\n <InternalBox margin={{ top: 's' }}>\n <InternalStatusIndicator type=\"loading\">\n <LiveRegion visible={true}>\n {i18n('i18nStrings.inContextLoadingText', i18nStrings?.inContextLoadingText)}\n </LiveRegion>\n </InternalStatusIndicator>\n </InternalBox>\n )}\n </div>\n </div>\n );\n }\n);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["s3-resource-selector/s3-in-context/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, { useState, useEffect, useRef } from 'react';\nimport InternalBox from '../../box/internal';\nimport { InternalButton } from '../../button/internal';\nimport InternalFormField from '../../form-field/internal';\nimport { InputProps } from '../../input/interfaces';\nimport InternalSelect from '../../select/internal';\nimport InternalStatusIndicator from '../../status-indicator/internal';\nimport { NonCancelableCustomEvent } from '../../internal/events';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { useVersionsFetch } from './use-versions-fetch';\nimport { S3ResourceSelectorProps } from '../interfaces';\nimport { validate, getErrorText } from './validation';\nimport styles from './styles.css.js';\nimport { SearchInput } from './search-input';\nimport LiveRegion from '../../internal/components/live-region';\nimport { useInternalI18n } from '../../internal/i18n/context';\n\ninterface S3InContextProps {\n i18nStrings: S3ResourceSelectorProps.I18nStrings | undefined;\n inputPlaceholder: string | undefined;\n resource: S3ResourceSelectorProps.Resource;\n viewHref: string | undefined;\n invalid: boolean | undefined;\n inputAriaDescribedby: string | undefined;\n selectableItemsTypes: S3ResourceSelectorProps['selectableItemsTypes'];\n fetchVersions: S3ResourceSelectorProps['fetchVersions'];\n onBrowse: () => void;\n onChange: (newResource: S3ResourceSelectorProps.Resource, errorText: string | undefined) => void;\n}\n\nexport interface S3InContextRef {\n focus(): void;\n}\n\nexport const S3InContext = React.forwardRef(\n (\n {\n i18nStrings,\n inputPlaceholder,\n resource,\n viewHref,\n invalid,\n inputAriaDescribedby,\n selectableItemsTypes,\n fetchVersions,\n onChange,\n onBrowse,\n }: S3InContextProps,\n ref: React.Ref<S3InContextRef>\n ) => {\n const i18n = useInternalI18n('s3-resource-selector');\n const isInputBlurredRef = useRef(true);\n const [isInputTouched, setInputTouched] = useState(false);\n const { versions, loading, loadVersions, resetVersions } = useVersionsFetch(fetchVersions);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useForwardFocus(ref, inputRef);\n\n const uri = resource.uri;\n const supportsVersions = selectableItemsTypes && selectableItemsTypes.indexOf('versions') > -1;\n const selectedVersion = versions.filter(version => version.value === resource.versionId)[0] || null;\n\n function handleUriChange(event: NonCancelableCustomEvent<InputProps.ChangeDetail>) {\n const uri = event.detail.value;\n const errorCode = isInputTouched ? validate(uri) : undefined;\n resetVersions();\n onChange({ uri }, getErrorText(i18n, i18nStrings, errorCode));\n }\n\n function handleUriBlur() {\n isInputBlurredRef.current = true;\n setInputTouched(true);\n const errorCode = validate(resource.uri);\n onChange(resource, getErrorText(i18n, i18nStrings, errorCode));\n if (supportsVersions) {\n loadVersions(resource.uri);\n }\n }\n\n useEffect(() => {\n if (!isInputBlurredRef.current || !supportsVersions) {\n return;\n }\n const { cancel } = loadVersions(uri) ?? {};\n return cancel;\n }, [uri, supportsVersions, loadVersions]);\n\n return (\n <div className={styles.root}>\n <div className={styles.layout}>\n <InternalFormField\n className={styles['layout-uri']}\n label={i18n('i18nStrings.inContextUriLabel', i18nStrings?.inContextUriLabel)}\n stretch={true}\n >\n <SearchInput\n ref={inputRef}\n value={uri}\n ariaDescribedby={inputAriaDescribedby}\n clearAriaLabel={i18nStrings?.inContextInputClearAriaLabel}\n placeholder={inputPlaceholder ?? i18nStrings?.inContextInputPlaceholder}\n onChange={handleUriChange}\n invalid={invalid}\n onFocus={() => (isInputBlurredRef.current = false)}\n onBlur={handleUriBlur}\n />\n </InternalFormField>\n {supportsVersions && (\n <InternalFormField\n className={styles['layout-version']}\n label={i18n('i18nStrings.inContextVersionSelectLabel', i18nStrings?.inContextVersionSelectLabel)}\n stretch={true}\n >\n <InternalSelect\n selectedOption={selectedVersion}\n placeholder={i18n('i18nStrings.inContextSelectPlaceholder', i18nStrings?.inContextSelectPlaceholder)}\n disabled={versions.length === 0}\n options={versions}\n onChange={event => onChange({ ...resource, versionId: event.detail.selectedOption.value }, undefined)}\n invalid={false} // invalid state should not highlight the select, only the text input\n />\n </InternalFormField>\n )}\n <div>\n <InternalButton\n className={styles['view-button']}\n disabled={!viewHref}\n href={viewHref}\n target=\"_blank\"\n iconName=\"external\"\n iconAlign=\"right\"\n formAction=\"none\"\n ariaLabel={i18n('i18nStrings.inContextViewButtonAriaLabel', i18nStrings?.inContextViewButtonAriaLabel)}\n >\n {i18n('i18nStrings.inContextViewButton', i18nStrings?.inContextViewButton)}\n </InternalButton>\n </div>\n <div className={styles['layout-divider']} />\n <div>\n <InternalButton className={styles['browse-button']} disabled={loading} formAction=\"none\" onClick={onBrowse}>\n {i18n('i18nStrings.inContextBrowseButton', i18nStrings?.inContextBrowseButton)}\n </InternalButton>\n </div>\n </div>\n\n <div role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n {loading && (\n <InternalBox margin={{ top: 's' }}>\n <InternalStatusIndicator type=\"loading\">\n <LiveRegion visible={true}>\n {i18n('i18nStrings.inContextLoadingText', i18nStrings?.inContextLoadingText)}\n </LiveRegion>\n </InternalStatusIndicator>\n </InternalBox>\n )}\n </div>\n </div>\n );\n }\n);\n"]}
@@ -1,19 +1,19 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "segment": "awsui_segment_8cbea_1axpb_97",
5
- "disabled": "awsui_disabled_8cbea_1axpb_166",
6
- "selected": "awsui_selected_8cbea_1axpb_174",
7
- "icon": "awsui_icon_8cbea_1axpb_195",
8
- "with-text": "awsui_with-text_8cbea_1axpb_199",
9
- "with-no-text": "awsui_with-no-text_8cbea_1axpb_205",
10
- "root": "awsui_root_8cbea_1axpb_216",
11
- "segment-part": "awsui_segment-part_8cbea_1axpb_229",
12
- "select": "awsui_select_8cbea_1axpb_174",
13
- "segment-count-2": "awsui_segment-count-2_8cbea_1axpb_248",
14
- "segment-count-3": "awsui_segment-count-3_8cbea_1axpb_253",
15
- "segment-count-4": "awsui_segment-count-4_8cbea_1axpb_258",
16
- "segment-count-5": "awsui_segment-count-5_8cbea_1axpb_263",
17
- "segment-count-6": "awsui_segment-count-6_8cbea_1axpb_268"
4
+ "segment": "awsui_segment_8cbea_1hnh8_97",
5
+ "disabled": "awsui_disabled_8cbea_1hnh8_166",
6
+ "selected": "awsui_selected_8cbea_1hnh8_174",
7
+ "icon": "awsui_icon_8cbea_1hnh8_195",
8
+ "with-text": "awsui_with-text_8cbea_1hnh8_199",
9
+ "with-no-text": "awsui_with-no-text_8cbea_1hnh8_205",
10
+ "root": "awsui_root_8cbea_1hnh8_216",
11
+ "segment-part": "awsui_segment-part_8cbea_1hnh8_229",
12
+ "select": "awsui_select_8cbea_1hnh8_174",
13
+ "segment-count-2": "awsui_segment-count-2_8cbea_1hnh8_248",
14
+ "segment-count-3": "awsui_segment-count-3_8cbea_1hnh8_253",
15
+ "segment-count-4": "awsui_segment-count-4_8cbea_1hnh8_258",
16
+ "segment-count-5": "awsui_segment-count-5_8cbea_1hnh8_263",
17
+ "segment-count-6": "awsui_segment-count-6_8cbea_1hnh8_268"
18
18
  };
19
19
 
@@ -94,58 +94,58 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_segment_8cbea_1axpb_97:not(#\9) {
97
+ .awsui_segment_8cbea_1hnh8_97:not(#\9) {
98
98
  font-size: var(--font-body-m-size-7dign1, 14px);
99
99
  line-height: var(--font-body-m-line-height-ghizru, 20px);
100
100
  word-wrap: break-word;
101
101
  max-width: 100%;
102
102
  overflow: hidden;
103
- font-weight: var(--font-button-weight-puh3qs, 800);
103
+ font-weight: var(--font-button-weight-44nug7, 700);
104
104
  -webkit-font-smoothing: var(--font-smoothing-webkit-fyh4as, antialiased);
105
105
  -moz-osx-font-smoothing: var(--font-smoothing-moz-osx-pa2uqe, grayscale);
106
106
  letter-spacing: 0.25px;
107
107
  border: var(--border-field-width-riro62, 2px) solid var(--color-border-segment-default-buny15, #414d5c);
108
- padding: var(--space-scaled-xxs-t2t62i, 4px) var(--space-l-f4l5gr, 20px);
108
+ padding: var(--space-scaled-xxs-t2t62i, 4px) var(--space-button-horizontal-qj3pgb, 20px);
109
109
  border-right-width: 0;
110
110
  background: var(--color-background-segment-default-joqjz0, #ffffff);
111
111
  color: var(--color-text-segment-default-ep33is, #414d5c);
112
112
  overflow: visible;
113
113
  }
114
- .awsui_segment_8cbea_1axpb_97:not(#\9):focus {
114
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):focus {
115
115
  outline: none;
116
116
  }
117
- .awsui_segment_8cbea_1axpb_97:not(#\9):nth-child(1) {
117
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):nth-child(1) {
118
118
  grid-column: 1;
119
119
  -ms-grid-column: 1;
120
120
  }
121
- .awsui_segment_8cbea_1axpb_97:not(#\9):nth-child(2) {
121
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):nth-child(2) {
122
122
  grid-column: 2;
123
123
  -ms-grid-column: 2;
124
124
  }
125
- .awsui_segment_8cbea_1axpb_97:not(#\9):nth-child(3) {
125
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):nth-child(3) {
126
126
  grid-column: 3;
127
127
  -ms-grid-column: 3;
128
128
  }
129
- .awsui_segment_8cbea_1axpb_97:not(#\9):nth-child(4) {
129
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):nth-child(4) {
130
130
  grid-column: 4;
131
131
  -ms-grid-column: 4;
132
132
  }
133
- .awsui_segment_8cbea_1axpb_97:not(#\9):nth-child(5) {
133
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):nth-child(5) {
134
134
  grid-column: 5;
135
135
  -ms-grid-column: 5;
136
136
  }
137
- .awsui_segment_8cbea_1axpb_97:not(#\9):nth-child(6) {
137
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):nth-child(6) {
138
138
  grid-column: 6;
139
139
  -ms-grid-column: 6;
140
140
  }
141
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1axpb_97:not(#\9):focus {
141
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1hnh8_97:not(#\9):focus {
142
142
  position: relative;
143
143
  }
144
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1axpb_97:not(#\9):focus {
144
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1hnh8_97:not(#\9):focus {
145
145
  outline: 2px dotted transparent;
146
146
  outline-offset: calc(var(--space-segmented-control-focus-outline-gutter-5rc7c3, 4px) - 1px);
147
147
  }
148
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1axpb_97:not(#\9):focus::before {
148
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1hnh8_97:not(#\9):focus::before {
149
149
  content: " ";
150
150
  display: block;
151
151
  position: absolute;
@@ -156,53 +156,53 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1axpb_97:not(#\9):focus
156
156
  border-radius: var(--border-radius-control-default-focus-ring-muizvi, 4px);
157
157
  box-shadow: 0 0 0 2px var(--color-border-item-focused-4t19h5, #0972d3);
158
158
  }
159
- .awsui_segment_8cbea_1axpb_97:not(#\9):last-child {
159
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):last-child {
160
160
  border-right-width: var(--border-field-width-riro62, 2px);
161
161
  border-radius: 0 var(--border-radius-button-5qmvu7, 20px) var(--border-radius-button-5qmvu7, 20px) 0;
162
162
  }
163
- .awsui_segment_8cbea_1axpb_97:not(#\9):first-child {
163
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):first-child {
164
164
  border-radius: var(--border-radius-button-5qmvu7, 20px) 0 0 var(--border-radius-button-5qmvu7, 20px);
165
165
  }
166
- .awsui_segment_8cbea_1axpb_97.awsui_disabled_8cbea_1axpb_166:not(#\9) {
166
+ .awsui_segment_8cbea_1hnh8_97.awsui_disabled_8cbea_1hnh8_166:not(#\9) {
167
167
  background: var(--color-background-segment-disabled-iwvttc, #ffffff);
168
168
  border-color: var(--color-border-segment-disabled-r1njer, #414d5c);
169
169
  color: var(--color-text-interactive-disabled-nss20z, #9ba7b6);
170
170
  }
171
- .awsui_segment_8cbea_1axpb_97:not(#\9):not(.awsui_disabled_8cbea_1axpb_166) + .awsui_segment_8cbea_1axpb_97.awsui_disabled_8cbea_1axpb_166 {
171
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):not(.awsui_disabled_8cbea_1hnh8_166) + .awsui_segment_8cbea_1hnh8_97.awsui_disabled_8cbea_1hnh8_166 {
172
172
  border-left-color: var(--color-border-segment-default-buny15, #414d5c);
173
173
  }
174
- .awsui_segment_8cbea_1axpb_97.awsui_selected_8cbea_1axpb_174:not(#\9) {
174
+ .awsui_segment_8cbea_1hnh8_97.awsui_selected_8cbea_1hnh8_174:not(#\9) {
175
175
  background: var(--color-background-segment-active-pou6cz, #0972d3);
176
176
  border-color: var(--color-border-segment-active-hiisrl, #414d5c);
177
177
  color: var(--color-text-segment-active-0vxqmt, #ffffff);
178
178
  }
179
- .awsui_segment_8cbea_1axpb_97.awsui_selected_8cbea_1axpb_174 + .awsui_segment_8cbea_1axpb_97:not(#\9), .awsui_segment_8cbea_1axpb_97.awsui_selected_8cbea_1axpb_174 + .awsui_segment_8cbea_1axpb_97.awsui_disabled_8cbea_1axpb_166:not(#\9) {
179
+ .awsui_segment_8cbea_1hnh8_97.awsui_selected_8cbea_1hnh8_174 + .awsui_segment_8cbea_1hnh8_97:not(#\9), .awsui_segment_8cbea_1hnh8_97.awsui_selected_8cbea_1hnh8_174 + .awsui_segment_8cbea_1hnh8_97.awsui_disabled_8cbea_1hnh8_166:not(#\9) {
180
180
  border-left-color: var(--color-border-segment-active-hiisrl, #414d5c);
181
181
  }
182
- .awsui_segment_8cbea_1axpb_97:not(#\9):hover:not(.awsui_selected_8cbea_1axpb_174):not(.awsui_disabled_8cbea_1axpb_166):not(:focus) {
182
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):hover:not(.awsui_selected_8cbea_1hnh8_174):not(.awsui_disabled_8cbea_1hnh8_166):not(:focus) {
183
183
  background: var(--color-background-segment-hover-ca9ryd, #ffffff);
184
184
  color: var(--color-text-segment-hover-quwel3, #0972d3);
185
185
  border-color: var(--color-border-segment-hover-lbm8z9, #414d5c);
186
186
  cursor: pointer;
187
187
  }
188
- .awsui_segment_8cbea_1axpb_97:not(#\9):hover:not(.awsui_selected_8cbea_1axpb_174):not(.awsui_disabled_8cbea_1axpb_166):not(:focus) + .awsui_segment_8cbea_1axpb_97:not(.awsui_selected_8cbea_1axpb_174) {
188
+ .awsui_segment_8cbea_1hnh8_97:not(#\9):hover:not(.awsui_selected_8cbea_1hnh8_174):not(.awsui_disabled_8cbea_1hnh8_166):not(:focus) + .awsui_segment_8cbea_1hnh8_97:not(.awsui_selected_8cbea_1hnh8_174) {
189
189
  border-left-color: var(--color-border-segment-hover-lbm8z9, #414d5c);
190
190
  }
191
- .awsui_segment_8cbea_1axpb_97.awsui_selected_8cbea_1axpb_174 + .awsui_segment_8cbea_1axpb_97:not(#\9):hover:not(.awsui_selected_8cbea_1axpb_174):not(.awsui_disabled_8cbea_1axpb_166):not(:focus) {
191
+ .awsui_segment_8cbea_1hnh8_97.awsui_selected_8cbea_1hnh8_174 + .awsui_segment_8cbea_1hnh8_97:not(#\9):hover:not(.awsui_selected_8cbea_1hnh8_174):not(.awsui_disabled_8cbea_1hnh8_166):not(:focus) {
192
192
  border-left-color: var(--color-border-segment-active-hiisrl, #414d5c);
193
193
  }
194
194
 
195
- .awsui_icon_8cbea_1axpb_195:not(#\9) {
195
+ .awsui_icon_8cbea_1hnh8_195:not(#\9) {
196
196
  /* used in test-utils */
197
197
  }
198
198
 
199
- .awsui_with-text_8cbea_1axpb_199:not(#\9) {
199
+ .awsui_with-text_8cbea_1hnh8_199:not(#\9) {
200
200
  position: relative;
201
201
  left: calc(-1 * var(--space-xxs-ja5cp8, 4px));
202
202
  margin-right: var(--space-xxs-ja5cp8, 4px);
203
203
  }
204
204
 
205
- .awsui_with-no-text_8cbea_1axpb_205:not(#\9) {
205
+ .awsui_with-no-text_8cbea_1hnh8_205:not(#\9) {
206
206
  margin-right: auto;
207
207
  margin-left: auto;
208
208
  right: 0;
@@ -213,7 +213,7 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1axpb_97:not(#\9):focus
213
213
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
214
214
  SPDX-License-Identifier: Apache-2.0
215
215
  */
216
- .awsui_root_8cbea_1axpb_216:not(#\9) {
216
+ .awsui_root_8cbea_1hnh8_216:not(#\9) {
217
217
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
218
218
  border-collapse: separate;
219
219
  border-spacing: 0;
@@ -252,40 +252,40 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1axpb_97:not(#\9):focus
252
252
  -moz-osx-font-smoothing: auto;
253
253
  }
254
254
 
255
- .awsui_segment-part_8cbea_1axpb_229:not(#\9) {
255
+ .awsui_segment-part_8cbea_1hnh8_229:not(#\9) {
256
256
  display: inline-grid;
257
257
  }
258
258
  @media (max-width: 688px) {
259
- .awsui_segment-part_8cbea_1axpb_229:not(#\9) {
259
+ .awsui_segment-part_8cbea_1hnh8_229:not(#\9) {
260
260
  display: none;
261
261
  }
262
262
  }
263
263
 
264
- .awsui_select_8cbea_1axpb_174:not(#\9) {
264
+ .awsui_select_8cbea_1hnh8_174:not(#\9) {
265
265
  display: none;
266
266
  }
267
267
  @media (max-width: 688px) {
268
- .awsui_select_8cbea_1axpb_174:not(#\9) {
268
+ .awsui_select_8cbea_1hnh8_174:not(#\9) {
269
269
  display: block;
270
270
  }
271
271
  }
272
272
 
273
- .awsui_segment-count-2_8cbea_1axpb_248:not(#\9) {
273
+ .awsui_segment-count-2_8cbea_1hnh8_248:not(#\9) {
274
274
  grid-template-columns: 1fr 1fr;
275
275
  }
276
276
 
277
- .awsui_segment-count-3_8cbea_1axpb_253:not(#\9) {
277
+ .awsui_segment-count-3_8cbea_1hnh8_253:not(#\9) {
278
278
  grid-template-columns: 1fr 1fr 1fr;
279
279
  }
280
280
 
281
- .awsui_segment-count-4_8cbea_1axpb_258:not(#\9) {
281
+ .awsui_segment-count-4_8cbea_1hnh8_258:not(#\9) {
282
282
  grid-template-columns: 1fr 1fr 1fr 1fr;
283
283
  }
284
284
 
285
- .awsui_segment-count-5_8cbea_1axpb_263:not(#\9) {
285
+ .awsui_segment-count-5_8cbea_1hnh8_263:not(#\9) {
286
286
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
287
287
  }
288
288
 
289
- .awsui_segment-count-6_8cbea_1axpb_268:not(#\9) {
289
+ .awsui_segment-count-6_8cbea_1hnh8_268:not(#\9) {
290
290
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
291
291
  }
@@ -2,19 +2,19 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "segment": "awsui_segment_8cbea_1axpb_97",
6
- "disabled": "awsui_disabled_8cbea_1axpb_166",
7
- "selected": "awsui_selected_8cbea_1axpb_174",
8
- "icon": "awsui_icon_8cbea_1axpb_195",
9
- "with-text": "awsui_with-text_8cbea_1axpb_199",
10
- "with-no-text": "awsui_with-no-text_8cbea_1axpb_205",
11
- "root": "awsui_root_8cbea_1axpb_216",
12
- "segment-part": "awsui_segment-part_8cbea_1axpb_229",
13
- "select": "awsui_select_8cbea_1axpb_174",
14
- "segment-count-2": "awsui_segment-count-2_8cbea_1axpb_248",
15
- "segment-count-3": "awsui_segment-count-3_8cbea_1axpb_253",
16
- "segment-count-4": "awsui_segment-count-4_8cbea_1axpb_258",
17
- "segment-count-5": "awsui_segment-count-5_8cbea_1axpb_263",
18
- "segment-count-6": "awsui_segment-count-6_8cbea_1axpb_268"
5
+ "segment": "awsui_segment_8cbea_1hnh8_97",
6
+ "disabled": "awsui_disabled_8cbea_1hnh8_166",
7
+ "selected": "awsui_selected_8cbea_1hnh8_174",
8
+ "icon": "awsui_icon_8cbea_1hnh8_195",
9
+ "with-text": "awsui_with-text_8cbea_1hnh8_199",
10
+ "with-no-text": "awsui_with-no-text_8cbea_1hnh8_205",
11
+ "root": "awsui_root_8cbea_1hnh8_216",
12
+ "segment-part": "awsui_segment-part_8cbea_1hnh8_229",
13
+ "select": "awsui_select_8cbea_1hnh8_174",
14
+ "segment-count-2": "awsui_segment-count-2_8cbea_1hnh8_248",
15
+ "segment-count-3": "awsui_segment-count-3_8cbea_1hnh8_253",
16
+ "segment-count-4": "awsui_segment-count-4_8cbea_1hnh8_258",
17
+ "segment-count-5": "awsui_segment-count-5_8cbea_1hnh8_263",
18
+ "segment-count-6": "awsui_segment-count-6_8cbea_1hnh8_268"
19
19
  };
20
20
 
@@ -4,8 +4,9 @@ import { DropdownOption, OptionDefinition } from '../../internal/components/opti
4
4
  import { OptionsListProps } from '../../internal/components/options-list';
5
5
  import { FilterProps } from '../parts/filter';
6
6
  import { ItemProps } from '../parts/item';
7
- import { BaseKeyDetail, NonCancelableEventHandler } from '../../internal/events';
7
+ import { NonCancelableEventHandler } from '../../internal/events';
8
8
  import { DropdownStatusProps } from '../../internal/components/dropdown-status';
9
+ import { ButtonTriggerProps } from '../../internal/components/button-trigger';
9
10
  export type MenuProps = Omit<OptionsListProps, 'children'> & {
10
11
  ref: React.RefObject<HTMLUListElement>;
11
12
  };
@@ -24,12 +25,8 @@ interface UseSelectProps {
24
25
  useInteractiveGroups?: boolean;
25
26
  statusType: DropdownStatusProps.StatusType;
26
27
  }
27
- export interface SelectTriggerProps {
28
+ export interface SelectTriggerProps extends ButtonTriggerProps {
28
29
  ref: RefObject<HTMLButtonElement>;
29
- onMouseDown?: (event: CustomEvent) => void;
30
- onKeyDown?: (event: CustomEvent<BaseKeyDetail>) => void;
31
- onFocus: NonCancelableEventHandler;
32
- autoFocus?: boolean;
33
30
  }
34
31
  export declare function useSelect({ selectedOptions, updateSelectedOption, options, filteringType, onBlur, onFocus, externalRef, keepOpen, fireLoadItems, setFilteringValue, useInteractiveGroups, statusType, }: UseSelectProps): {
35
32
  isOpen: boolean;
@@ -37,13 +34,14 @@ export declare function useSelect({ selectedOptions, updateSelectedOption, optio
37
34
  highlightedIndex: number;
38
35
  highlightType: import("../../internal/components/options-list/utils/use-highlight-option").HighlightType;
39
36
  getTriggerProps: (disabled?: boolean, autoFocus?: boolean) => SelectTriggerProps;
40
- getDropdownProps: () => Pick<DropdownProps, 'onFocus' | 'onBlur'>;
37
+ getDropdownProps: () => Pick<DropdownProps, 'onFocus' | 'onBlur' | 'dropdownContentId' | 'dropdownContentRole'>;
41
38
  getMenuProps: () => MenuProps;
42
39
  getFilterProps: () => Partial<FilterProps>;
43
40
  getOptionProps: (option: DropdownOption, index: number) => any;
44
41
  highlightOption: (option: DropdownOption) => void;
45
42
  selectOption: (option?: DropdownOption) => void;
46
43
  announceSelected: boolean;
44
+ dialogId: string;
47
45
  };
48
46
  export {};
49
47
  //# sourceMappingURL=use-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.d.ts","sourceRoot":"lib/default/","sources":["select/utils/use-select.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,6CAA6C,CAAC;AAS5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAA0B,MAAM,uBAAuB,CAAC;AAEzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,oBAA4B,EAC5B,UAAU,GACX,EAAE,cAAc;;;;;;4BA4Ee,KAAK,aAAa,EAAE,SAAS,GAAG,QAAQ,CAAC;;0BAwB5C,QAAQ,WAAW,CAAC;6BA0Df,cAAc,SAAS,MAAM;;4BA5G9B,cAAc;;EA0K9C"}
1
+ {"version":3,"file":"use-select.d.ts","sourceRoot":"lib/default/","sources":["select/utils/use-select.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,6CAA6C,CAAC;AAS5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,yBAAyB,EAA0B,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,oBAA4B,EAC5B,UAAU,GACX,EAAE,cAAc;;;;;;4BA6Ee,KAC5B,aAAa,EACb,SAAS,GAAG,QAAQ,GAAG,mBAAmB,GAAG,qBAAqB,CACnE;;0BA4B0B,QAAQ,WAAW,CAAC;6BA0Df,cAAc,SAAS,MAAM;;4BAnH9B,cAAc;;;EAkL9C"}
@@ -41,6 +41,7 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
41
41
  };
42
42
  const hasSelectedOption = __selectedOptions.length > 0;
43
43
  const menuId = useUniqueId('option-list');
44
+ const dialogId = useUniqueId('dialog');
44
45
  const highlightedOptionId = getOptionId(menuId, highlightedIndex);
45
46
  const selectOption = (option) => {
46
47
  var _a;
@@ -70,12 +71,16 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
70
71
  const getDropdownProps = () => ({
71
72
  onFocus: handleFocus,
72
73
  onBlur: handleBlur,
74
+ dropdownContentId: dialogId,
75
+ dropdownContentRole: hasFilter ? 'dialog' : undefined,
73
76
  });
74
77
  const getTriggerProps = (disabled = false, autoFocus = false) => {
75
78
  const triggerProps = {
76
79
  ref: triggerRef,
77
80
  onFocus: () => closeDropdown(),
78
81
  autoFocus,
82
+ ariaHasPopup: hasFilter ? 'dialog' : 'listbox',
83
+ ariaControls: isOpen ? (hasFilter ? dialogId : menuId) : undefined,
79
84
  };
80
85
  if (!disabled) {
81
86
  triggerProps.onMouseDown = (event) => {
@@ -199,6 +204,7 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
199
204
  highlightOption: highlightOptionWithKeyboard,
200
205
  selectOption,
201
206
  announceSelected,
207
+ dialogId,
202
208
  };
203
209
  }
204
210
  //# sourceMappingURL=use-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.js","sourceRoot":"lib/default/","sources":["select/utils/use-select.ts"],"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, { RefObject } from 'react';\nimport { DropdownProps } from '../../internal/components/dropdown/interfaces';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isInteractive, isGroupInteractive, isGroup } from '../../internal/components/option/utils/filter-options';\nimport { useEffect, useRef } from 'react';\nimport { useHighlightedOption } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { connectOptionsByValue } from './connect-options';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { BaseKeyDetail, NonCancelableEventHandler, fireNonCancelableEvent } from '../../internal/events';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { DropdownStatusProps } from '../../internal/components/dropdown-status';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLUListElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n onBlur?: NonCancelableEventHandler;\n onFocus?: NonCancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n statusType: DropdownStatusProps.StatusType;\n}\n\nexport interface SelectTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n onMouseDown?: (event: CustomEvent) => void;\n onKeyDown?: (event: CustomEvent<BaseKeyDetail>) => void;\n onFocus: NonCancelableEventHandler;\n autoFocus?: boolean;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n statusType,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n const hasFilter = filteringType !== 'none';\n const activeRef = hasFilter ? filterRef : menuRef;\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const [\n { highlightType, highlightedOption, highlightedIndex },\n {\n moveHighlightWithKeyboard,\n resetHighlightWithKeyboard,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n goHomeWithKeyboard,\n goEndWithKeyboard,\n },\n ] = useHighlightedOption({ options, isHighlightable });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown } = useOpenState({\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlightWithKeyboard();\n setFilteringValue('');\n },\n });\n\n const handleFocus = () => {\n fireNonCancelableEvent(onFocus, {});\n };\n\n const handleBlur = () => {\n fireNonCancelableEvent(onBlur, {});\n closeDropdown();\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const menuId = useUniqueId('option-list');\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const selectOption = (option?: DropdownOption) => {\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n updateSelectedOption(optionToSelect.option);\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n moveHighlight: moveHighlightWithKeyboard,\n selectOption,\n goHome: goHomeWithKeyboard,\n goEnd: goEndWithKeyboard,\n closeDropdown: () => {\n triggerRef.current?.focus();\n closeDropdown();\n },\n preventNativeSpace: !hasFilter,\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({ openDropdown, goHome: goHomeWithKeyboard });\n\n const getDropdownProps: () => Pick<DropdownProps, 'onFocus' | 'onBlur'> = () => ({\n onFocus: handleFocus,\n onBlur: handleBlur,\n });\n\n const getTriggerProps = (disabled = false, autoFocus = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: () => closeDropdown(),\n autoFocus,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlightWithKeyboard();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n __nativeAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onMouseUp: itemIndex => {\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n if (itemIndex > -1) {\n setHighlightedIndexWithMouse(itemIndex);\n }\n },\n statusType,\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n indeterminate: !!groupState?.indeterminate,\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component without filter input\n // keep the focus in the filter input when opening, so that screenreader can recognize the combobox\n if (isOpen && !prevOpen && hasSelectedOption && !hasFilter) {\n setHighlightedIndexWithMouse(options.indexOf(__selectedOptions[0]));\n }\n }, [isOpen, __selectedOptions, hasSelectedOption, setHighlightedIndexWithMouse, options, prevOpen, hasFilter]);\n\n useEffect(() => {\n if (isOpen) {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }\n }, [isOpen, activeRef]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightType,\n getTriggerProps,\n getDropdownProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n highlightOption: highlightOptionWithKeyboard,\n selectOption,\n announceSelected,\n };\n}\n"]}
1
+ {"version":3,"file":"use-select.js","sourceRoot":"lib/default/","sources":["select/utils/use-select.ts"],"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, { RefObject } from 'react';\nimport { DropdownProps } from '../../internal/components/dropdown/interfaces';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isInteractive, isGroupInteractive, isGroup } from '../../internal/components/option/utils/filter-options';\nimport { useEffect, useRef } from 'react';\nimport { useHighlightedOption } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { connectOptionsByValue } from './connect-options';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { NonCancelableEventHandler, fireNonCancelableEvent } from '../../internal/events';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { DropdownStatusProps } from '../../internal/components/dropdown-status';\nimport { ButtonTriggerProps } from '../../internal/components/button-trigger';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLUListElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n onBlur?: NonCancelableEventHandler;\n onFocus?: NonCancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n statusType: DropdownStatusProps.StatusType;\n}\n\nexport interface SelectTriggerProps extends ButtonTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n statusType,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n const hasFilter = filteringType !== 'none';\n const activeRef = hasFilter ? filterRef : menuRef;\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const [\n { highlightType, highlightedOption, highlightedIndex },\n {\n moveHighlightWithKeyboard,\n resetHighlightWithKeyboard,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n goHomeWithKeyboard,\n goEndWithKeyboard,\n },\n ] = useHighlightedOption({ options, isHighlightable });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown } = useOpenState({\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlightWithKeyboard();\n setFilteringValue('');\n },\n });\n\n const handleFocus = () => {\n fireNonCancelableEvent(onFocus, {});\n };\n\n const handleBlur = () => {\n fireNonCancelableEvent(onBlur, {});\n closeDropdown();\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const menuId = useUniqueId('option-list');\n const dialogId = useUniqueId('dialog');\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const selectOption = (option?: DropdownOption) => {\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n updateSelectedOption(optionToSelect.option);\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n moveHighlight: moveHighlightWithKeyboard,\n selectOption,\n goHome: goHomeWithKeyboard,\n goEnd: goEndWithKeyboard,\n closeDropdown: () => {\n triggerRef.current?.focus();\n closeDropdown();\n },\n preventNativeSpace: !hasFilter,\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({ openDropdown, goHome: goHomeWithKeyboard });\n\n const getDropdownProps: () => Pick<\n DropdownProps,\n 'onFocus' | 'onBlur' | 'dropdownContentId' | 'dropdownContentRole'\n > = () => ({\n onFocus: handleFocus,\n onBlur: handleBlur,\n dropdownContentId: dialogId,\n dropdownContentRole: hasFilter ? 'dialog' : undefined,\n });\n\n const getTriggerProps = (disabled = false, autoFocus = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: () => closeDropdown(),\n autoFocus,\n ariaHasPopup: hasFilter ? 'dialog' : 'listbox',\n ariaControls: isOpen ? (hasFilter ? dialogId : menuId) : undefined,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlightWithKeyboard();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n __nativeAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onMouseUp: itemIndex => {\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n if (itemIndex > -1) {\n setHighlightedIndexWithMouse(itemIndex);\n }\n },\n statusType,\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n indeterminate: !!groupState?.indeterminate,\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component without filter input\n // keep the focus in the filter input when opening, so that screenreader can recognize the combobox\n if (isOpen && !prevOpen && hasSelectedOption && !hasFilter) {\n setHighlightedIndexWithMouse(options.indexOf(__selectedOptions[0]));\n }\n }, [isOpen, __selectedOptions, hasSelectedOption, setHighlightedIndexWithMouse, options, prevOpen, hasFilter]);\n\n useEffect(() => {\n if (isOpen) {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }\n }, [isOpen, activeRef]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightType,\n getTriggerProps,\n getDropdownProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n highlightOption: highlightOptionWithKeyboard,\n selectOption,\n announceSelected,\n dialogId,\n };\n}\n"]}
@@ -1,33 +1,33 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_l0dv0_1szle_93",
5
- "header": "awsui_header_l0dv0_1szle_109",
6
- "header-link": "awsui_header-link_l0dv0_1szle_120",
7
- "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_1szle_130",
8
- "header-link-text": "awsui_header-link-text_l0dv0_1szle_130",
9
- "header-logo": "awsui_header-logo_l0dv0_1szle_134",
10
- "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_1szle_140",
11
- "list-container": "awsui_list-container_l0dv0_1szle_145",
12
- "list": "awsui_list_l0dv0_1szle_145",
13
- "list-variant-root": "awsui_list-variant-root_l0dv0_1szle_155",
14
- "list-variant-root--last": "awsui_list-variant-root--last_l0dv0_1szle_159",
15
- "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_1szle_163",
16
- "list-item": "awsui_list-item_l0dv0_1szle_167",
17
- "section": "awsui_section_l0dv0_1szle_173",
18
- "expandable-link-group": "awsui_expandable-link-group_l0dv0_1szle_174",
19
- "section--no-ident": "awsui_section--no-ident_l0dv0_1szle_177",
20
- "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_1szle_178",
21
- "refresh": "awsui_refresh_l0dv0_1szle_187",
22
- "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_1szle_195",
23
- "section-group": "awsui_section-group_l0dv0_1szle_200",
24
- "section-group-title": "awsui_section-group-title_l0dv0_1szle_210",
25
- "link": "awsui_link_l0dv0_1szle_214",
26
- "link-active": "awsui_link-active_l0dv0_1szle_223",
27
- "info": "awsui_info_l0dv0_1szle_257",
28
- "external-icon": "awsui_external-icon_l0dv0_1szle_261",
29
- "divider": "awsui_divider_l0dv0_1szle_265",
30
- "divider-default": "awsui_divider-default_l0dv0_1szle_270",
31
- "divider-header": "awsui_divider-header_l0dv0_1szle_274"
4
+ "root": "awsui_root_l0dv0_e8dnq_93",
5
+ "header": "awsui_header_l0dv0_e8dnq_109",
6
+ "header-link": "awsui_header-link_l0dv0_e8dnq_120",
7
+ "header-link--has-logo": "awsui_header-link--has-logo_l0dv0_e8dnq_130",
8
+ "header-link-text": "awsui_header-link-text_l0dv0_e8dnq_130",
9
+ "header-logo": "awsui_header-logo_l0dv0_e8dnq_134",
10
+ "header-logo--stretched": "awsui_header-logo--stretched_l0dv0_e8dnq_140",
11
+ "list-container": "awsui_list-container_l0dv0_e8dnq_145",
12
+ "list": "awsui_list_l0dv0_e8dnq_145",
13
+ "list-variant-root": "awsui_list-variant-root_l0dv0_e8dnq_155",
14
+ "list-variant-root--last": "awsui_list-variant-root--last_l0dv0_e8dnq_159",
15
+ "list-variant-expandable-link-group": "awsui_list-variant-expandable-link-group_l0dv0_e8dnq_163",
16
+ "list-item": "awsui_list-item_l0dv0_e8dnq_167",
17
+ "section": "awsui_section_l0dv0_e8dnq_173",
18
+ "expandable-link-group": "awsui_expandable-link-group_l0dv0_e8dnq_174",
19
+ "section--no-ident": "awsui_section--no-ident_l0dv0_e8dnq_177",
20
+ "expandable-link-group--no-ident": "awsui_expandable-link-group--no-ident_l0dv0_e8dnq_178",
21
+ "refresh": "awsui_refresh_l0dv0_e8dnq_187",
22
+ "list-variant-section-group": "awsui_list-variant-section-group_l0dv0_e8dnq_195",
23
+ "section-group": "awsui_section-group_l0dv0_e8dnq_200",
24
+ "section-group-title": "awsui_section-group-title_l0dv0_e8dnq_210",
25
+ "link": "awsui_link_l0dv0_e8dnq_214",
26
+ "link-active": "awsui_link-active_l0dv0_e8dnq_223",
27
+ "info": "awsui_info_l0dv0_e8dnq_257",
28
+ "external-icon": "awsui_external-icon_l0dv0_e8dnq_261",
29
+ "divider": "awsui_divider_l0dv0_e8dnq_265",
30
+ "divider-default": "awsui_divider-default_l0dv0_e8dnq_270",
31
+ "divider-header": "awsui_divider-header_l0dv0_e8dnq_274"
32
32
  };
33
33