{"version":3,"file":"index44.mjs","sources":["../src/hooks/useFocusHandling.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useKeyboardFocus } from \"./useKeyboardFocus\";\nimport React from \"react\";\n\ntype FocusHandlingConfig = {\n  isDisabled?: boolean;\n  onFocusExtra?: () => void;\n  onBlurExtra?: () => void;\n  setHighlight: (value: boolean) => void;\n  onEnter?: () => void;\n};\n\nexport const useFocusHandling = ({\n  isDisabled = false,\n  onFocusExtra,\n  onBlurExtra,\n  setHighlight,\n  onEnter,\n}: FocusHandlingConfig) => {\n  const { onFocus: keyboardFocus, onBlur: keyboardBlur } = useKeyboardFocus();\n  const highlightRef = React.useRef(false);\n\n  const handleFocus = useCallback(() => {\n    if (!isDisabled) {\n      keyboardFocus(() => {\n        setHighlight(true);\n        highlightRef.current = true;\n        onFocusExtra?.();\n      });\n    }\n  }, [isDisabled, keyboardFocus, setHighlight, onFocusExtra]);\n\n  const handleBlur = useCallback(() => {\n    if (!isDisabled) {\n      keyboardBlur(() => {\n        setHighlight(false);\n        highlightRef.current = false;\n        onBlurExtra?.();\n      });\n    }\n  }, [isDisabled, keyboardBlur, setHighlight, onBlurExtra]);\n\n  // Listen for Enter key and trigger onEnter if highlight is true\n  React.useEffect(() => {\n    if (isDisabled || !onEnter) return;\n    const handleKeyDown = (e: KeyboardEvent) => {\n      if (e.key === \"Enter\" && highlightRef.current) {\n        onEnter();\n      }\n    };\n    window.addEventListener(\"keydown\", handleKeyDown);\n    return () => {\n      window.removeEventListener(\"keydown\", handleKeyDown);\n    };\n  }, [isDisabled, onEnter]);\n\n  return {\n    handleFocus,\n    handleBlur,\n  };\n};\n"],"names":["React"],"mappings":";;AAYO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2B;AACzB,QAAM,EAAE,SAAS,eAAe,QAAQ,aAAA,IAAiB,iBAAiB;AACpE,QAAA,eAAeA,eAAM,OAAO,KAAK;AAEjC,QAAA,cAAc,YAAY,MAAM;AACpC,QAAI,CAAC,YAAY;AACf,oBAAc,MAAM;AAClB,qBAAa,IAAI;AACjB,qBAAa,UAAU;AACR;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,KAEF,CAAC,YAAY,eAAe,cAAc,YAAY,CAAC;AAEpD,QAAA,aAAa,YAAY,MAAM;AACnC,QAAI,CAAC,YAAY;AACf,mBAAa,MAAM;AACjB,qBAAa,KAAK;AAClB,qBAAa,UAAU;AACT;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,KAEF,CAAC,YAAY,cAAc,cAAc,WAAW,CAAC;AAGxDA,iBAAM,UAAU,MAAM;AAChB,QAAA,cAAc,CAAC,QAAS;AACtB,UAAA,gBAAgB,CAAC,MAAqB;AAC1C,UAAI,EAAE,QAAQ,WAAW,aAAa,SAAS;AACrC,gBAAA;AAAA,MAAA;AAAA,IAEZ;AACO,WAAA,iBAAiB,WAAW,aAAa;AAChD,WAAO,MAAM;AACJ,aAAA,oBAAoB,WAAW,aAAa;AAAA,IACrD;AAAA,EAAA,GACC,CAAC,YAAY,OAAO,CAAC;AAEjB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;"}