{"ast":null,"code":"var _s = $RefreshSig$();\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nimport React, { useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport VisuallyHidden from \"@reach/visually-hidden\";\nimport { useSelect } from \"downshift\";\nimport { Manager, Reference } from \"react-popper\";\nimport { MenuItem, MenuList, ToggleButton } from \"../menu\";\nvar SIZES = {\n  sm: \"px-1 h-6\",\n  md: \"px-2 py-2 leading-5\"\n};\n\nvar selectable = function selectable(option) {\n  return option !== separator;\n};\n\nfunction Separator() {\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"border-b border-gray-300 my-1\"\n  });\n}\n\n_c = Separator;\nexport var separator = Separator();\n\nfunction SelectMenu(_ref, ref) {\n  _s();\n\n  var _ref$name = _ref.name,\n      name = _ref$name === void 0 ? \"\" : _ref$name,\n      options = _ref.options,\n      className = _ref.className,\n      label = _ref.label,\n      onChange = _ref.onChange,\n      value = _ref.value,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? \"md\" : _ref$size;\n\n  var handleChange = function handleChange(option) {\n    var event = {\n      target: {\n        name: name,\n        value: option.selectedItem.value\n      }\n    };\n    onChange(event);\n  };\n\n  var items = options.filter(selectable);\n  var selectedItem = options.filter(selectable).find(function (option) {\n    return option.value === value;\n  });\n\n  var _useSelect = useSelect({\n    items: items,\n    onSelectedItemChange: handleChange,\n    selectedItem: selectedItem,\n    itemToString: function itemToString(item) {\n      return item ? item.label : \"\";\n    }\n  }),\n      isOpen = _useSelect.isOpen,\n      getToggleButtonProps = _useSelect.getToggleButtonProps,\n      getLabelProps = _useSelect.getLabelProps,\n      getMenuProps = _useSelect.getMenuProps,\n      highlightedIndex = _useSelect.highlightedIndex,\n      getItemProps = _useSelect.getItemProps;\n\n  var buttonClassName = cx(\"inline-flex items-center leading-tight rounded-sm bg-white border border-gray-300 text-sm focus:outline-blue\", SIZES[size], className);\n  var internalRef = useRef();\n  var toggleButtonRef = ref || internalRef;\n\n  var _getToggleButtonProps = getToggleButtonProps({\n    ref: function ref(button) {\n      toggleButtonRef.current = button;\n    }\n  }),\n      downshiftRef = _getToggleButtonProps.ref,\n      toggleButtonProps = _objectWithoutProperties(_getToggleButtonProps, [\"ref\"]);\n\n  var minWidth = toggleButtonRef.current ? \"\".concat(toggleButtonRef.current.offsetWidth, \"px\") : null;\n  return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"label\", getLabelProps(), label)), /*#__PURE__*/React.createElement(Reference, {\n    innerRef: downshiftRef\n  }, function (_ref2) {\n    var ref = _ref2.ref;\n    return /*#__PURE__*/React.createElement(ToggleButton, _extends({\n      ref: ref\n    }, toggleButtonProps, {\n      className: buttonClassName\n    }), /*#__PURE__*/React.createElement(\"span\", {\n      className: \"flex-grow text-left\"\n    }, selectedItem && selectedItem.label || \"Select\"));\n  }), /*#__PURE__*/React.createElement(MenuList, _extends({\n    style: {\n      maxHeight: \"300px\",\n      minWidth: minWidth\n    },\n    active: isOpen\n  }, getMenuProps()), options.map(function (option, i) {\n    var index = items.indexOf(option);\n    return option === separator ? /*#__PURE__*/React.createElement(Separator, {\n      key: i\n    }) : /*#__PURE__*/React.createElement(MenuItem, _extends({}, getItemProps({\n      key: \"\".concat(option.value, \"-\").concat(index),\n      index: index,\n      item: option\n    }), {\n      active: index === highlightedIndex\n    }), isOpen && option.component ? /*#__PURE__*/React.createElement(React.Fragment, null, option.component, /*#__PURE__*/React.createElement(VisuallyHidden, null, option.label)) : option.label);\n  })));\n}\n\n_s(SelectMenu, \"OsNfjHgPBLxHuKOZedMZQmNHiSA=\", false, function () {\n  return [useSelect];\n});\n\n_c2 = SelectMenu;\nSelectMenu = React.forwardRef(SelectMenu);\nSelectMenu.propTypes = {\n  className: PropTypes.string,\n  label: PropTypes.string,\n  name: PropTypes.string,\n  onChange: PropTypes.func,\n  options: PropTypes.arrayOf(PropTypes.object).isRequired,\n  size: PropTypes.oneOf([\"sm\", \"md\"]),\n  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nexport default SelectMenu;\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"Separator\");\n$RefreshReg$(_c2, \"SelectMenu\");","map":{"version":3,"sources":["/Users/silverdust/Projects/ConvertKit/convertkit-design/docs/node_modules/@convertkit/design/select-menu/index.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","React","useRef","PropTypes","cx","VisuallyHidden","useSelect","Manager","Reference","MenuItem","MenuList","ToggleButton","SIZES","sm","md","selectable","option","separator","Separator","createElement","className","SelectMenu","_ref","ref","_ref$name","name","options","label","onChange","value","_ref$size","size","handleChange","event","selectedItem","items","filter","find","_useSelect","onSelectedItemChange","itemToString","item","isOpen","getToggleButtonProps","getLabelProps","getMenuProps","highlightedIndex","getItemProps","buttonClassName","internalRef","toggleButtonRef","_getToggleButtonProps","button","current","downshiftRef","toggleButtonProps","minWidth","concat","offsetWidth","innerRef","_ref2","style","maxHeight","active","map","index","component","Fragment","forwardRef","propTypes","string","func","arrayOf","object","isRequired","oneOf","oneOfType","number"],"mappings":"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","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport VisuallyHidden from \"@reach/visually-hidden\";\nimport { useSelect } from \"downshift\";\nimport { Manager, Reference } from \"react-popper\";\nimport { MenuItem, MenuList, ToggleButton } from \"../menu\";\nvar SIZES = {\n  sm: \"px-1 h-6\",\n  md: \"px-2 py-2 leading-5\"\n};\n\nvar selectable = function selectable(option) {\n  return option !== separator;\n};\n\nfunction Separator() {\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"border-b border-gray-300 my-1\"\n  });\n}\n\nexport var separator = Separator();\n\nfunction SelectMenu(_ref, ref) {\n  var _ref$name = _ref.name,\n      name = _ref$name === void 0 ? \"\" : _ref$name,\n      options = _ref.options,\n      className = _ref.className,\n      label = _ref.label,\n      onChange = _ref.onChange,\n      value = _ref.value,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? \"md\" : _ref$size;\n\n  var handleChange = function handleChange(option) {\n    var event = {\n      target: {\n        name: name,\n        value: option.selectedItem.value\n      }\n    };\n    onChange(event);\n  };\n\n  var items = options.filter(selectable);\n  var selectedItem = options.filter(selectable).find(function (option) {\n    return option.value === value;\n  });\n\n  var _useSelect = useSelect({\n    items: items,\n    onSelectedItemChange: handleChange,\n    selectedItem: selectedItem,\n    itemToString: function itemToString(item) {\n      return item ? item.label : \"\";\n    }\n  }),\n      isOpen = _useSelect.isOpen,\n      getToggleButtonProps = _useSelect.getToggleButtonProps,\n      getLabelProps = _useSelect.getLabelProps,\n      getMenuProps = _useSelect.getMenuProps,\n      highlightedIndex = _useSelect.highlightedIndex,\n      getItemProps = _useSelect.getItemProps;\n\n  var buttonClassName = cx(\"inline-flex items-center leading-tight rounded-sm bg-white border border-gray-300 text-sm focus:outline-blue\", SIZES[size], className);\n  var internalRef = useRef();\n  var toggleButtonRef = ref || internalRef;\n\n  var _getToggleButtonProps = getToggleButtonProps({\n    ref: function ref(button) {\n      toggleButtonRef.current = button;\n    }\n  }),\n      downshiftRef = _getToggleButtonProps.ref,\n      toggleButtonProps = _objectWithoutProperties(_getToggleButtonProps, [\"ref\"]);\n\n  var minWidth = toggleButtonRef.current ? \"\".concat(toggleButtonRef.current.offsetWidth, \"px\") : null;\n  return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"label\", getLabelProps(), label)), /*#__PURE__*/React.createElement(Reference, {\n    innerRef: downshiftRef\n  }, function (_ref2) {\n    var ref = _ref2.ref;\n    return /*#__PURE__*/React.createElement(ToggleButton, _extends({\n      ref: ref\n    }, toggleButtonProps, {\n      className: buttonClassName\n    }), /*#__PURE__*/React.createElement(\"span\", {\n      className: \"flex-grow text-left\"\n    }, selectedItem && selectedItem.label || \"Select\"));\n  }), /*#__PURE__*/React.createElement(MenuList, _extends({\n    style: {\n      maxHeight: \"300px\",\n      minWidth: minWidth\n    },\n    active: isOpen\n  }, getMenuProps()), options.map(function (option, i) {\n    var index = items.indexOf(option);\n    return option === separator ? /*#__PURE__*/React.createElement(Separator, {\n      key: i\n    }) : /*#__PURE__*/React.createElement(MenuItem, _extends({}, getItemProps({\n      key: \"\".concat(option.value, \"-\").concat(index),\n      index: index,\n      item: option\n    }), {\n      active: index === highlightedIndex\n    }), isOpen && option.component ? /*#__PURE__*/React.createElement(React.Fragment, null, option.component, /*#__PURE__*/React.createElement(VisuallyHidden, null, option.label)) : option.label);\n  })));\n}\n\nSelectMenu = React.forwardRef(SelectMenu);\nSelectMenu.propTypes = {\n  className: PropTypes.string,\n  label: PropTypes.string,\n  name: PropTypes.string,\n  onChange: PropTypes.func,\n  options: PropTypes.arrayOf(PropTypes.object).isRequired,\n  size: PropTypes.oneOf([\"sm\", \"md\"]),\n  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nexport default SelectMenu;"]},"metadata":{},"sourceType":"module"}