{
  "version": 3,
  "sources": ["../../src/custom-select-control/index.tsx"],
  "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport _CustomSelect from '../custom-select-control-v2/custom-select';\nimport CustomSelectItem from '../custom-select-control-v2/item';\nimport * as Styled from '../custom-select-control-v2/styles';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction useDeprecatedProps({\n  __experimentalShowSelectedHint,\n  ...otherProps\n}) {\n  return {\n    showSelectedHint: __experimentalShowSelectedHint,\n    ...otherProps\n  };\n}\n\n// The removal of `__experimentalHint` in favour of `hint` doesn't happen in\n// the `useDeprecatedProps` hook in order not to break consumers that rely\n// on object identity (see https://github.com/WordPress/gutenberg/pull/63248#discussion_r1672213131)\nfunction applyOptionDeprecations({\n  __experimentalHint,\n  ...rest\n}) {\n  return {\n    hint: __experimentalHint,\n    ...rest\n  };\n}\nfunction getDescribedBy(currentName, describedBy) {\n  if (describedBy) {\n    return describedBy;\n  }\n\n  // translators: %s: The selected option.\n  return sprintf(__('Currently selected: %s'), currentName);\n}\nfunction CustomSelectControl(props) {\n  const {\n    __next40pxDefaultSize = false,\n    __shouldNotWarnDeprecated36pxSize,\n    describedBy,\n    options,\n    onChange,\n    size = 'default',\n    value,\n    className: classNameProp,\n    showSelectedHint = false,\n    ...restProps\n  } = useDeprecatedProps(props);\n  maybeWarnDeprecated36pxSize({\n    componentName: 'CustomSelectControl',\n    __next40pxDefaultSize,\n    size,\n    __shouldNotWarnDeprecated36pxSize\n  });\n  const descriptionId = useInstanceId(CustomSelectControl, 'custom-select-control__description');\n\n  // Forward props + store from v2 implementation\n  const store = Ariakit.useSelectStore({\n    async setValue(nextValue) {\n      const nextOption = options.find(item => item.key === nextValue);\n      if (!onChange || !nextOption) {\n        return;\n      }\n\n      // Executes the logic in a microtask after the popup is closed.\n      // This is simply to ensure the isOpen state matches the one from the\n      // previous legacy implementation.\n      await Promise.resolve();\n      const state = store.getState();\n      const changeObject = {\n        highlightedIndex: state.renderedItems.findIndex(item => item.value === nextValue),\n        inputValue: '',\n        isOpen: state.open,\n        selectedItem: nextOption,\n        type: ''\n      };\n      onChange(changeObject);\n    },\n    value: value?.key,\n    // Setting the first option as a default value when no value is provided\n    // is already done natively by the underlying Ariakit component,\n    // but doing this explicitly avoids the `onChange` callback from firing\n    // on initial render, thus making this implementation closer to the v1.\n    defaultValue: options[0]?.key\n  });\n  const children = options.map(applyOptionDeprecations).map(({\n    name,\n    key,\n    hint,\n    style,\n    className\n  }) => {\n    const withHint = /*#__PURE__*/_jsxs(Styled.WithHintItemWrapper, {\n      children: [/*#__PURE__*/_jsx(\"span\", {\n        children: name\n      }), /*#__PURE__*/_jsx(Styled.WithHintItemHint, {\n        // Keeping the classname for legacy reasons\n        className: \"components-custom-select-control__item-hint\",\n        children: hint\n      })]\n    });\n    return /*#__PURE__*/_jsx(CustomSelectItem, {\n      value: key,\n      children: hint ? withHint : name,\n      style: style,\n      className: clsx(className,\n      // Keeping the classnames for legacy reasons\n      'components-custom-select-control__item', {\n        'has-hint': hint\n      })\n    }, key);\n  });\n  const currentValue = Ariakit.useStoreState(store, 'value');\n  const selectedOption = options?.map(applyOptionDeprecations)?.find(({\n    key\n  }) => currentValue === key) ?? options[0];\n  const renderSelectedValue = () => {\n    if (!showSelectedHint || !selectedOption.hint) {\n      return selectedOption?.name;\n    }\n    return /*#__PURE__*/_jsxs(Styled.SelectedExperimentalHintWrapper, {\n      children: [selectedOption?.name, /*#__PURE__*/_jsx(Styled.SelectedExperimentalHintItem, {\n        // Keeping the classname for legacy reasons\n        className: \"components-custom-select-control__hint\",\n        children: selectedOption?.hint\n      })]\n    });\n  };\n  const translatedSize = (() => {\n    if (__next40pxDefaultSize && size === 'default' || size === '__unstable-large') {\n      return 'default';\n    }\n    if (!__next40pxDefaultSize && size === 'default') {\n      return 'compact';\n    }\n    return size;\n  })();\n  return /*#__PURE__*/_jsxs(_Fragment, {\n    children: [/*#__PURE__*/_jsx(_CustomSelect, {\n      \"aria-describedby\": descriptionId,\n      renderSelectedValue: renderSelectedValue,\n      size: translatedSize,\n      store: store,\n      className: clsx(\n      // Keeping the classname for legacy reasons\n      'components-custom-select-control', classNameProp),\n      isLegacy: true,\n      ...restProps,\n      children: children\n    }), /*#__PURE__*/_jsx(VisuallyHidden, {\n      children: /*#__PURE__*/_jsx(\"span\", {\n        id: descriptionId,\n        children: getDescribedBy(selectedOption?.name, describedBy)\n      })\n    })]\n  });\n}\nexport default CustomSelectControl;"],
  "mappings": "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",
  "names": ["_jsxs", "_jsx", "CustomSelectItem", "clsx", "_Fragment", "_CustomSelect"]
}
