UNPKG

@wordpress/components

Version:
8 lines (7 loc) 9.71 kB
{ "version": 3, "sources": ["../../../src/tools-panel/tools-panel-header/component.tsx"], "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { check, moreVertical, plus } from '@wordpress/icons';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DropdownMenu from '../../dropdown-menu';\nimport MenuGroup from '../../menu-group';\nimport MenuItem from '../../menu-item';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { useToolsPanelHeader } from './hook';\nimport { contextConnect } from '../../context';\nimport { ResetLabel } from '../styles';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst DefaultControlsGroup = ({\n itemClassName,\n items,\n toggleItem\n}) => {\n if (!items.length) {\n return null;\n }\n const resetSuffix = /*#__PURE__*/_jsx(ResetLabel, {\n \"aria-hidden\": true,\n children: __('Reset')\n });\n return /*#__PURE__*/_jsx(_Fragment, {\n children: items.map(([label, hasValue]) => {\n if (hasValue) {\n return /*#__PURE__*/_jsx(MenuItem, {\n className: itemClassName,\n role: \"menuitem\",\n label: sprintf(\n // translators: %s: The name of the control being reset e.g. \"Padding\".\n __('Reset %s'), label),\n onClick: () => {\n toggleItem(label);\n speak(sprintf(\n // translators: %s: The name of the control being reset e.g. \"Padding\".\n __('%s reset to default'), label), 'assertive');\n },\n suffix: resetSuffix,\n children: label\n }, label);\n }\n return /*#__PURE__*/_jsx(MenuItem, {\n icon: check,\n className: itemClassName,\n role: \"menuitemcheckbox\",\n isSelected: true,\n \"aria-disabled\": true,\n children: label\n }, label);\n })\n });\n};\nconst OptionalControlsGroup = ({\n items,\n toggleItem\n}) => {\n if (!items.length) {\n return null;\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: items.map(([label, isSelected]) => {\n const itemLabel = isSelected ? sprintf(\n // translators: %s: The name of the control being hidden and reset e.g. \"Padding\".\n __('Hide and reset %s'), label) : sprintf(\n // translators: %s: The name of the control to display e.g. \"Padding\".\n _x('Show %s', 'input control'), label);\n return /*#__PURE__*/_jsx(MenuItem, {\n icon: isSelected ? check : null,\n isSelected: isSelected,\n label: itemLabel,\n onClick: () => {\n if (isSelected) {\n speak(sprintf(\n // translators: %s: The name of the control being reset e.g. \"Padding\".\n __('%s hidden and reset to default'), label), 'assertive');\n } else {\n speak(sprintf(\n // translators: %s: The name of the control being reset e.g. \"Padding\".\n __('%s is now visible'), label), 'assertive');\n }\n toggleItem(label);\n },\n role: \"menuitemcheckbox\",\n children: label\n }, label);\n })\n });\n};\nconst ToolsPanelHeader = (props, forwardedRef) => {\n const {\n areAllOptionalControlsHidden,\n defaultControlsItemClassName,\n dropdownMenuClassName,\n hasMenuItems,\n headingClassName,\n headingLevel = 2,\n label: labelText,\n menuItems,\n resetAll,\n toggleItem,\n dropdownMenuProps,\n ...headerProps\n } = useToolsPanelHeader(props);\n if (!labelText) {\n return null;\n }\n const defaultItems = Object.entries(menuItems?.default || {});\n const optionalItems = Object.entries(menuItems?.optional || {});\n const dropDownMenuIcon = areAllOptionalControlsHidden ? plus : moreVertical;\n const dropDownMenuLabelText = sprintf(\n // translators: %s: The name of the tool e.g. \"Color\" or \"Typography\".\n _x('%s options', 'Button label to reveal tool panel options'), labelText);\n const dropdownMenuDescriptionText = areAllOptionalControlsHidden ? __('All options are currently hidden') : undefined;\n const canResetAll = [...defaultItems, ...optionalItems].some(([, isSelected]) => isSelected);\n return /*#__PURE__*/_jsxs(HStack, {\n ...headerProps,\n ref: forwardedRef,\n children: [/*#__PURE__*/_jsx(Heading, {\n level: headingLevel,\n className: headingClassName,\n children: labelText\n }), hasMenuItems && /*#__PURE__*/_jsx(DropdownMenu, {\n ...dropdownMenuProps,\n icon: dropDownMenuIcon,\n label: dropDownMenuLabelText,\n menuProps: {\n className: dropdownMenuClassName\n },\n toggleProps: {\n size: 'small',\n description: dropdownMenuDescriptionText\n },\n children: () => /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(MenuGroup, {\n label: labelText,\n children: [/*#__PURE__*/_jsx(DefaultControlsGroup, {\n items: defaultItems,\n toggleItem: toggleItem,\n itemClassName: defaultControlsItemClassName\n }), /*#__PURE__*/_jsx(OptionalControlsGroup, {\n items: optionalItems,\n toggleItem: toggleItem\n })]\n }), /*#__PURE__*/_jsx(MenuGroup, {\n children: /*#__PURE__*/_jsx(MenuItem, {\n \"aria-disabled\": !canResetAll\n // @ts-expect-error - TODO: If this \"tertiary\" style is something we really want to allow on MenuItem,\n // we should rename it and explicitly allow it as an official API. All the other Button variants\n // don't make sense in a MenuItem context, and should be disallowed.\n ,\n variant: \"tertiary\",\n onClick: () => {\n if (canResetAll) {\n resetAll();\n speak(__('All options reset'), 'assertive');\n }\n },\n children: __('Reset all')\n })\n })]\n })\n })]\n });\n};\nconst ConnectedToolsPanelHeader = contextConnect(ToolsPanelHeader, 'ToolsPanelHeader');\nexport default ConnectedToolsPanelHeader;"], "mappings": "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", "names": ["_jsx", "_Fragment", "MenuItem", "_jsxs", "DropdownMenu", "MenuGroup"] }