{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { useState } from \"react\";\nimport { useOverlayTriggerState } from \"@react-stately/overlays\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nexport function useMenuTriggerState(props) {\n  var overlayTriggerState = useOverlayTriggerState(props);\n\n  var _useState = useState(null),\n      _useState2 = _slicedToArray(_useState, 2),\n      focusStrategy = _useState2[0],\n      setFocusStrategy = _useState2[1];\n\n  return _babelRuntimeHelpersEsmExtends({\n    focusStrategy: focusStrategy\n  }, overlayTriggerState, {\n    open: function open(focusStrategy) {\n      if (focusStrategy === void 0) {\n        focusStrategy = null;\n      }\n\n      setFocusStrategy(focusStrategy);\n      overlayTriggerState.open();\n    },\n    toggle: function toggle(focusStrategy) {\n      if (focusStrategy === void 0) {\n        focusStrategy = null;\n      }\n\n      setFocusStrategy(focusStrategy);\n      overlayTriggerState.toggle();\n    }\n  });\n}","map":{"version":3,"sources":["packages/@react-stately/menu/src/useMenuTriggerState.ts"],"names":["overlayTriggerState","useOverlayTriggerState","useState","focusStrategy","open","setFocusStrategy","toggle"],"mappings":";;;;OAgCO,SAAA,mBAAA,CAAA,KAAA,EAAyE;AAC9E,MAAIA,mBAAmB,GAAGC,sBAAsB,CAAhD,KAAgD,CAAhD;;AAD8E,kBAEtCC,QAAQ,CAAhD,IAAgD,CAF8B;AAAA;AAAA,MAE1E,aAF0E;AAAA,MAE1E,gBAF0E;;AAI9E,SAAA,8BAAA,CAAA;AACEC,IAAAA,aAAAA,EAAAA;AADF,GAAA,EAAA,mBAAA,EAAA;AAGEC,IAAAA,IAHF,gBAGM,aAHN,EAG4C;AAAA,UAArCD,aAAqC,KAAA,KAAA,CAAA,EAAA;AAArCA,QAAAA,aAAqC,GAAN,IAA/BA;AAAqC;;AACxCE,MAAAA,gBAAgB,CAAhBA,aAAgB,CAAhBA;AACAL,MAAAA,mBAAmB,CAAnBA,IAAAA;AALJ,KAAA;AAOEM,IAAAA,MAPF,kBAOQ,aAPR,EAO8C;AAAA,UAArCH,aAAqC,KAAA,KAAA,CAAA,EAAA;AAArCA,QAAAA,aAAqC,GAAN,IAA/BA;AAAqC;;AAC1CE,MAAAA,gBAAgB,CAAhBA,aAAgB,CAAhBA;AACAL,MAAAA,mBAAmB,CAAnBA,MAAAA;AACD;AAVH,GAAA,CAAA;AAYD","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport {MenuTriggerProps} from '@react-types/menu';\nimport {OverlayTriggerState, useOverlayTriggerState} from '@react-stately/overlays';\nimport {useState} from 'react';\n\nexport interface MenuTriggerState extends OverlayTriggerState {\n  /** Controls which item will be auto focused when the menu opens. */\n  readonly focusStrategy: FocusStrategy,\n\n  /** Opens the menu. */\n  open(focusStrategy?: FocusStrategy | null): void,\n\n  /** Toggles the menu. */\n  toggle(focusStrategy?: FocusStrategy | null): void\n}\n\n/**\n * Manages state for a menu trigger. Tracks whether the menu is currently open,\n * and controls which item will receive focus when it opens.\n */\nexport function useMenuTriggerState(props: MenuTriggerProps): MenuTriggerState  {\n  let overlayTriggerState = useOverlayTriggerState(props);\n  let [focusStrategy, setFocusStrategy] = useState<FocusStrategy>(null);\n\n  return {\n    focusStrategy,\n    ...overlayTriggerState,\n    open(focusStrategy: FocusStrategy = null) {\n      setFocusStrategy(focusStrategy);\n      overlayTriggerState.open();\n    },\n    toggle(focusStrategy: FocusStrategy = null) {\n      setFocusStrategy(focusStrategy);\n      overlayTriggerState.toggle();\n    }\n  };\n}\n"]},"metadata":{},"sourceType":"module"}