{"version":3,"file":"shared.cjs","sources":["../../src/toolbar/shared.tsx"],"sourcesContent":["import { useLayoutEffect } from \"@liveblocks/react/_private\";\nimport {\n  Children,\n  type ComponentProps,\n  createContext,\n  forwardRef,\n  useContext,\n  useId,\n} from \"react\";\n\n// This file is separate to avoid circular dependencies\n\ntype FloatingToolbarContext = {\n  close: () => void;\n  registerExternal: (id: string) => () => void;\n};\n\nexport const FloatingToolbarContext =\n  createContext<FloatingToolbarContext | null>(null);\n\nexport const FloatingToolbarExternal = forwardRef<\n  HTMLDivElement,\n  ComponentProps<\"div\">\n>(({ children, style, ...props }, forwardedRef) => {\n  const id = useId();\n  const externalId = `liveblocks-floating-toolbar-external-${id}`;\n  const floatingToolbarContext = useContext(FloatingToolbarContext);\n  const registerExternal = floatingToolbarContext?.registerExternal;\n\n  useLayoutEffect(() => {\n    if (!registerExternal) {\n      return;\n    }\n\n    return registerExternal(externalId);\n  }, [registerExternal, externalId]);\n\n  if (!floatingToolbarContext || Children.count(children) === 0) {\n    return <>{children}</>;\n  }\n\n  return (\n    <div\n      ref={forwardedRef}\n      style={{ display: \"contents\", ...style }}\n      data-liveblocks-floating-toolbar-external={id}\n      {...props}\n      id={externalId}\n    >\n      {children}\n    </div>\n  );\n});\n"],"names":["createContext","forwardRef","useId","useContext","useLayoutEffect","Children","jsx"],"mappings":";;;;;;AAiBa,MAAA,sBAAA,GACXA,oBAA6C,IAAI,EAAA;AAEtC,MAAA,uBAAA,GAA0BC,iBAGrC,CAAC,EAAE,UAAU,KAAO,EAAA,GAAG,KAAM,EAAA,EAAG,YAAiB,KAAA;AACjD,EAAA,MAAM,KAAKC,WAAM,EAAA,CAAA;AACjB,EAAM,MAAA,UAAA,GAAa,wCAAwC,EAAE,CAAA,CAAA,CAAA;AAC7D,EAAM,MAAA,sBAAA,GAAyBC,iBAAW,sBAAsB,CAAA,CAAA;AAChE,EAAA,MAAM,mBAAmB,sBAAwB,EAAA,gBAAA,CAAA;AAEjD,EAAAC,wBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAAC,gBAAkB,EAAA;AACrB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,OAAO,iBAAiB,UAAU,CAAA,CAAA;AAAA,GACjC,EAAA,CAAC,gBAAkB,EAAA,UAAU,CAAC,CAAA,CAAA;AAEjC,EAAA,IAAI,CAAC,sBAA0B,IAAAC,cAAA,CAAS,KAAM,CAAA,QAAQ,MAAM,CAAG,EAAA;AAC7D,IAAA,6DAAU,QAAS,EAAA,CAAA,CAAA;AAAA,GACrB;AAEA,EACE,uBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,YAAA;AAAA,MACL,KAAO,EAAA,EAAE,OAAS,EAAA,UAAA,EAAY,GAAG,KAAM,EAAA;AAAA,MACvC,2CAA2C,EAAA,EAAA;AAAA,MAC1C,GAAG,KAAA;AAAA,MACJ,EAAI,EAAA,UAAA;AAAA,MAEH,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAC;;;;;"}