{
  "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"]
}
