UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

34 lines 2.39 kB
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 'use client'; import React from 'react'; import { getAnalyticsMetadataAttribute } from '@awsui/component-toolkit/internal/analytics-metadata'; import { getBaseProps } from '../internal/base-component'; import useBaseComponent from '../internal/hooks/use-base-component'; import { applyDisplayName } from '../internal/utils/apply-display-name'; import InternalButtonDropdown from './internal'; import { hasCheckboxItems, hasDisabledReasonItems } from './utils/utils'; import analyticsSelectors from './analytics-metadata/styles.css.js'; const ButtonDropdown = React.forwardRef(({ items, variant = 'normal', loading = false, loadingText, disabled = false, disabledReason, expandableGroups = false, expandToViewport = false, ariaLabel, children, onItemClick, onItemFollow, mainAction, fullWidth, nativeMainActionAttributes, nativeTriggerAttributes, ...props }, ref) => { const baseComponentProps = useBaseComponent('ButtonDropdown', { props: { expandToViewport, expandableGroups, variant }, metadata: { mainAction: !!mainAction, checkboxItems: hasCheckboxItems(items), hasDisabledReason: Boolean(disabledReason), hasDisabledReasons: hasDisabledReasonItems(items), }, }); const baseProps = getBaseProps(props); const analyticsComponentMetadata = { name: 'awsui.ButtonDropdown', label: `.${analyticsSelectors['trigger-label']}`, properties: { variant, disabled: `${disabled}` }, }; return (React.createElement(InternalButtonDropdown, { ...baseProps, ...baseComponentProps, ref: ref, items: items, variant: variant, loading: loading, loadingText: loadingText, disabled: disabled, disabledReason: disabledReason, expandableGroups: expandableGroups, expandToViewport: expandToViewport, ariaLabel: ariaLabel, onItemClick: onItemClick, onItemFollow: onItemFollow, mainAction: mainAction, fullWidth: fullWidth, nativeMainActionAttributes: nativeMainActionAttributes, nativeTriggerAttributes: nativeTriggerAttributes, ...getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata, }) }, children)); }); applyDisplayName(ButtonDropdown, 'ButtonDropdown'); export default ButtonDropdown; //# sourceMappingURL=internal-do-not-use-core.js.map