{"version":3,"sources":["../src/index.ts","../src/hooks/usePreservedCallback/index.ts","../src/hooks/useEventCallback/index.ts"],"sourcesContent":["export * from './hooks/useEventCallback'\n","import { type DependencyList, useCallback, useEffect, useRef } from 'react'\n\n/**\n * @internal\n * @link https://github.com/toss/react-simplikit/blob/94bbc0896f5e0bf47f6f8f5f9d0abf1d73b0dc9a/src/hooks/usePreservedCallback/usePreservedCallback.ts\n */\nexport function usePreservedCallback<\n  Arguments extends any[] = any[],\n  ReturnValue = unknown,\n>(\n  callback: (...args: Arguments) => ReturnValue,\n  deps: DependencyList = [],\n) {\n  const callbackRef = useRef(callback)\n\n  useEffect(() => {\n    callbackRef.current = callback\n  }, [callback])\n\n  return useCallback((...args: Arguments) => {\n    return callbackRef.current(...args)\n  }, deps)\n}\n","import { usePreservedCallback } from '../usePreservedCallback'\nimport { AnyEventHandler, EventCallback, EventNames, ElementNames, EventHandlers } from '../../types/event'\nimport { type DependencyList } from 'react'\n\nexport function useEventCallback(handler: AnyEventHandler<HTMLElement>): AnyEventHandler<HTMLElement>\n\nexport function useEventCallback<\n  ElementName extends ElementNames,\n  EventName extends EventNames<ElementName>,\n>(callback: EventCallback<ElementName, EventName>, deps?: DependencyList): EventCallback<ElementName, EventName>\n\nexport function useEventCallback<\n  EventName extends keyof EventHandlers<HTMLElement>,\n>(event: EventName, callback: EventHandlers[EventName], deps?: DependencyList): EventHandlers[EventName]\n\nexport function useEventCallback<\n  ElementName extends ElementNames,\n  EventName extends EventNames<ElementName>,\n>(\n  element: ElementName,\n  event: EventName,\n  callback: EventCallback<ElementName, EventName>,\n  deps?: DependencyList\n): EventCallback<ElementName, EventName>\n\nexport function useEventCallback(...args: any[]): any {\n  const last = args.pop()\n  if (Array.isArray(last)) return usePreservedCallback(args.pop(), last)\n  if (typeof last === 'function') return usePreservedCallback(last)\n  throw new Error('invalid arguments')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAoE;AAM7D,SAAS,qBAId,UACA,OAAuB,CAAC,GACxB;AACA,QAAM,kBAAc,qBAAO,QAAQ;AAEnC,8BAAU,MAAM;AACd,gBAAY,UAAU;AAAA,EACxB,GAAG,CAAC,QAAQ,CAAC;AAEb,aAAO,0BAAY,IAAI,SAAoB;AACzC,WAAO,YAAY,QAAQ,GAAG,IAAI;AAAA,EACpC,GAAG,IAAI;AACT;;;ACGO,SAAS,oBAAoB,MAAkB;AACpD,QAAM,OAAO,KAAK,IAAI;AACtB,MAAI,MAAM,QAAQ,IAAI,EAAG,QAAO,qBAAqB,KAAK,IAAI,GAAG,IAAI;AACrE,MAAI,OAAO,SAAS,WAAY,QAAO,qBAAqB,IAAI;AAChE,QAAM,IAAI,MAAM,mBAAmB;AACrC;","names":[]}