{"version":3,"file":"useRef.cjs","names":[],"sources":["../../src/useRef/useRef.ts"],"sourcesContent":["import { useRef as uR, type RefObject } from 'react';\nimport { useBeforeMount } from '../useBeforeMount';\n\n/**\n * Creates a React ref with a `value` alias for `current`.\n *\n * Pastweb internals use `value` for cross-framework ref consistency, while the\n * returned object still behaves like a normal React ref.\n *\n * @typeParam T - Stored value type.\n * @param value - Initial ref value.\n * @returns React ref with a mutable `value` getter/setter.\n *\n * @example\n * ```tsx\n * const count = useRef(0);\n *\n * count.value += 1;\n * console.log(count.current);\n * ```\n */\nexport function useRef<T>(value: T): RefObject<T> & { value: T } {\n  const ref = uR<T>(value);\n\n  useBeforeMount(() => {\n    Object.defineProperty(ref, 'value', {\n      get: () => ref.current,\n      set: (value: T) => { ref.current = value; },\n    });\n  });\n\n  return ref as RefObject<T> & { value: T };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,OAAU,OAAuC;CAC/D,MAAM,OAAA,GAAA,MAAA,OAAA,CAAY,KAAK;CAEvB,sCAAA,qBAAqB;EACnB,OAAO,eAAe,KAAK,SAAS;GAClC,WAAW,IAAI;GACf,MAAM,UAAa;IAAE,IAAI,UAAU;GAAO;EAC5C,CAAC;CACH,CAAC;CAED,OAAO;AACT"}