{
  "version": 3,
  "sources": ["../../../../src/components/block-list/use-block-props/use-is-hovered.js"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseRefEffect,\n\tprivateApis as composePrivateApis,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst { subscribeDelegatedListener } = unlock( composePrivateApis );\n\n/**\n * Adds `is-hovered` class when the block is hovered and in navigation or\n * outline mode.\n *\n * @param {Object}  options                  Options object.\n * @param {boolean} [options.isEnabled=true] Whether to enable hover detection.\n *\n * @return {Function} Ref callback.\n */\nexport function useIsHovered( { isEnabled = true } = {} ) {\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( ! isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction listener( event ) {\n\t\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tevent.preventDefault();\n\t\t\t\tnode.classList.toggle(\n\t\t\t\t\t'is-hovered',\n\t\t\t\t\tevent.type === 'mouseover'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst unsubscribeOut = subscribeDelegatedListener(\n\t\t\t\tnode,\n\t\t\t\t'mouseout',\n\t\t\t\tlistener\n\t\t\t);\n\t\t\tconst unsubscribeOver = subscribeDelegatedListener(\n\t\t\t\tnode,\n\t\t\t\t'mouseover',\n\t\t\t\tlistener\n\t\t\t);\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeOut();\n\t\t\t\tunsubscribeOver();\n\n\t\t\t\t// Remove class in case it lingers.\n\t\t\t\tnode.classList.remove( 'is-hovered' );\n\t\t\t};\n\t\t},\n\t\t[ isEnabled ]\n\t);\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAGO;AAKP,yBAAuB;AAEvB,IAAM,EAAE,2BAA2B,QAAI,2BAAQ,eAAAA,WAAmB;AAW3D,SAAS,aAAc,EAAE,YAAY,KAAK,IAAI,CAAC,GAAI;AACzD,aAAO;AAAA,IACN,CAAE,SAAU;AACX,UAAK,CAAE,WAAY;AAClB;AAAA,MACD;AAEA,eAAS,SAAU,OAAQ;AAC1B,YAAK,MAAM,kBAAmB;AAC7B;AAAA,QACD;AACA,cAAM,eAAe;AACrB,aAAK,UAAU;AAAA,UACd;AAAA,UACA,MAAM,SAAS;AAAA,QAChB;AAAA,MACD;AAEA,YAAM,iBAAiB;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,YAAM,kBAAkB;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAEA,aAAO,MAAM;AACZ,uBAAe;AACf,wBAAgB;AAGhB,aAAK,UAAU,OAAQ,YAAa;AAAA,MACrC;AAAA,IACD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AACD;",
  "names": ["composePrivateApis"]
}
