{
  "version": 3,
  "sources": ["../../../src/navigator/navigator-button/hook.ts"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\n\nimport { useContextSystem } from '../../context';\nimport Button from '../../button';\nimport { useNavigator } from '../use-navigator';\nconst cssSelectorForAttribute = (attrName, attrValue) => `[${attrName}=\"${attrValue}\"]`;\nexport function useNavigatorButton(props) {\n  const {\n    path,\n    onClick,\n    as = Button,\n    attributeName = 'id',\n    ...otherProps\n  } = useContextSystem(props, 'Navigator.Button');\n  const escapedPath = escapeAttribute(path);\n  const {\n    goTo\n  } = useNavigator();\n  const handleClick = useCallback(e => {\n    e.preventDefault();\n    goTo(escapedPath, {\n      focusTargetSelector: cssSelectorForAttribute(attributeName, escapedPath)\n    });\n    onClick?.(e);\n  }, [goTo, onClick, attributeName, escapedPath]);\n  return {\n    as,\n    onClick: handleClick,\n    ...otherProps,\n    [attributeName]: escapedPath\n  };\n}"],
  "mappings": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAMhC,SAAS,wBAAwB;AACjC,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAC7B,IAAM,0BAA0B,CAAC,UAAU,cAAc,IAAI,QAAQ,KAAK,SAAS;AAC5E,SAAS,mBAAmB,OAAO;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,kBAAkB;AAC9C,QAAM,cAAc,gBAAgB,IAAI;AACxC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,aAAa;AACjB,QAAM,cAAc,YAAY,OAAK;AACnC,MAAE,eAAe;AACjB,SAAK,aAAa;AAAA,MAChB,qBAAqB,wBAAwB,eAAe,WAAW;AAAA,IACzE,CAAC;AACD,cAAU,CAAC;AAAA,EACb,GAAG,CAAC,MAAM,SAAS,eAAe,WAAW,CAAC;AAC9C,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,IACH,CAAC,aAAa,GAAG;AAAA,EACnB;AACF;",
  "names": []
}
