{"version":3,"file":"use-drag-state.cjs","names":[],"sources":["../../src/hooks/use-drag-state.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport { DateStringValue, ScheduleEventData } from '../types';\n\nexport interface DropTarget {\n  /** Target date in YYYY-MM-DD format */\n  date: DateStringValue;\n\n  /** Target time in HH:mm:ss format (for DayView/WeekView) */\n  time?: string;\n\n  /** Target slot index (for DayView/WeekView) */\n  slotIndex?: number;\n}\n\nexport interface DragState {\n  /** Whether an event is currently being dragged */\n  isDragging: boolean;\n\n  /** ID of the event being dragged */\n  draggedEventId: string | number | null;\n\n  /** The event being dragged */\n  draggedEvent: ScheduleEventData | null;\n\n  /** Current drop target information */\n  dropTarget: DropTarget | null;\n}\n\nexport interface UseDragStateReturn {\n  /** Current drag state */\n  state: DragState;\n\n  /** Start dragging an event */\n  startDrag: (event: ScheduleEventData) => void;\n\n  /** End dragging */\n  endDrag: () => void;\n\n  /** Set the current drop target */\n  setDropTarget: (target: DropTarget | null) => void;\n\n  /** Clear the drop target */\n  clearDropTarget: () => void;\n}\n\nconst initialState: DragState = {\n  isDragging: false,\n  draggedEventId: null,\n  draggedEvent: null,\n  dropTarget: null,\n};\n\nexport function useDragState(): UseDragStateReturn {\n  const [state, setState] = useState<DragState>(initialState);\n\n  const startDrag = useCallback((event: ScheduleEventData) => {\n    setState({\n      isDragging: true,\n      draggedEventId: event.id,\n      draggedEvent: event,\n      dropTarget: null,\n    });\n  }, []);\n\n  const endDrag = useCallback(() => {\n    setState(initialState);\n  }, []);\n\n  const setDropTarget = useCallback((target: DropTarget | null) => {\n    setState((prev) => ({\n      ...prev,\n      dropTarget: target,\n    }));\n  }, []);\n\n  const clearDropTarget = useCallback(() => {\n    setState((prev) => ({\n      ...prev,\n      dropTarget: null,\n    }));\n  }, []);\n\n  return {\n    state,\n    startDrag,\n    endDrag,\n    setDropTarget,\n    clearDropTarget,\n  };\n}\n"],"mappings":";;;AA6CA,MAAM,eAA0B;CAC9B,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,YAAY;AACd;AAEA,SAAgB,eAAmC;CACjD,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,SAAA,CAAgC,YAAY;CA6B1D,OAAO;EACL;EACA,YAAA,GAAA,MAAA,YAAA,EA7B6B,UAA6B;GAC1D,SAAS;IACP,YAAY;IACZ,gBAAgB,MAAM;IACtB,cAAc;IACd,YAAY;GACd,CAAC;EACH,GAAG,CAAC,CAsBM;EACR,UAAA,GAAA,MAAA,YAAA,OArBgC;GAChC,SAAS,YAAY;EACvB,GAAG,CAAC,CAmBI;EACN,gBAAA,GAAA,MAAA,YAAA,EAlBiC,WAA8B;GAC/D,UAAU,UAAU;IAClB,GAAG;IACH,YAAY;GACd,EAAE;EACJ,GAAG,CAAC,CAaU;EACZ,kBAAA,GAAA,MAAA,YAAA,OAZwC;GACxC,UAAU,UAAU;IAClB,GAAG;IACH,YAAY;GACd,EAAE;EACJ,GAAG,CAAC,CAOY;CAChB;AACF"}