{"version":3,"sources":["../src/pioneer-point-status/LegionPioneerPointStatus.tsx"],"names":["LegionPioneerPointStatus"],"mappings":";;;;AAoBO,SAAS,iCACd,KAAA,EACQ;AACR,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,GAAQ,OAAA,EAAQ,GAAI,KAAA;AAErC,EAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,8BAAA,EAAgC,OAAO,CAAA;AAC3D,EAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,OAAA,EAAS,KAAK,CAAA;AAEnC,EAAA,OAAO,IAAI,QAAA,EAAS;AACtB;AAqBO,IAAM,wBAAA,GAA2B,UAAA,CAGtC,SAASA,yBAAAA,CAAyB,OAAO,GAAA,EAAK;AAC9C,EAAA,MAAM;AAAA,IACJ,KAAA,GAAQ,OAAA;AAAA,IACR,SAAA;AAAA,IACA,KAAA,GAAQ,MAAA;AAAA,IACR,MAAA,GAAS,OAAA;AAAA,IACT,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,MAAM,SAAA,GAAY,OAA0B,IAAI,CAAA;AAEhD,EAAA,mBAAA;AAAA,IACE,GAAA;AAAA,IACA,OAAO;AAAA,MACL,SAAS,MAAM;AACb,QAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,QAAA,IAAI,iCAAQ,aAAA,EAAe;AACzB,UAAA,MAAA,CAAO,aAAA,CAAc,SAAS,MAAA,EAAO;AAAA,QACvC;AAAA,MACF;AAAA,KACF,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,GAAA,GAAM,OAAA;AAAA,IACV,MAAM,iCAAiC,KAAK,CAAA;AAAA,IAC5C,CAAC,SAAS,KAAK;AAAA,GACjB;AAEA,EAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,SAAA,KAAa,iCAAQ,aAAA,CAAA,EAAe;AACtC,MAAA,MAAA,CAAO,aAAA,CAAc,WAAA;AAAA,QACnB,EAAE,IAAA,EAAM,YAAA,EAAc,KAAA,EAAO,SAAA,EAAU;AAAA,QACvC;AAAA,OACF;AAAA,IACF;AACA,IAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAS,EAAE,MAAA,EAAQ,sBAAA,EAAwB,KAAA,EAAM,CAAA;AAAA,EACnD,GAAG,CAAC,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,OAAO,CAAC,CAAA;AAEtC,EAAA,MAAM,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,4CAAA,CAAA;AAAA,EACZ,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,GAAG,KAAA,EAAM;AAAA,MACjC,aAAA,EAAY,6BAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,SAAA;AAAA,UACL,GAAA;AAAA,UACA,KAAA,EAAM,6BAAA;AAAA,UACN,KAAA,EAAM,MAAA;AAAA,UACN,MAAA,EAAO,MAAA;AAAA,UACP,WAAA,EAAY,GAAA;AAAA,UACZ,SAAA,EAAU,IAAA;AAAA,UACV,MAAA,EAAQ,UAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,KAAA,EAAO,EAAE,MAAA,EAAQ,MAAA;AAAO;AAAA;AAC1B;AAAA,GACF;AAEJ,CAAC","file":"pioneer-point-status.mjs","sourcesContent":["import {\n  useRef,\n  useCallback,\n  useMemo,\n  forwardRef,\n  useImperativeHandle,\n} from \"react\";\nimport { type PioneerPointStatusWidgetProps } from \"./types\";\n\n/**\n * Ref handle exposed by LegionPioneerPointStatus for imperative control.\n */\nexport interface LegionPioneerPointStatusHandle {\n  /** Reload the widget iframe */\n  refresh: () => void;\n}\n\n/**\n * Build the iframe src URL from widget props.\n */\nexport function buildPioneerPointStatusWidgetUrl(\n  props: PioneerPointStatusWidgetProps\n): string {\n  const { baseUrl, theme = \"light\" } = props;\n\n  const url = new URL(\"/widget/pioneer-point-status\", baseUrl);\n  url.searchParams.set(\"theme\", theme);\n\n  return url.toString();\n}\n\n/**\n * LegionPioneerPointStatus – a React component that embeds the Legion\n * Pioneer Point Status widget via an iframe.\n *\n * @example\n * ```tsx\n * import { LegionPioneerPointStatus } from '@legionhandtech/lht-react-widgets';\n *\n * function App() {\n *   return (\n *     <LegionPioneerPointStatus\n *       baseUrl=\"https://your-legion-domain.com\"\n *       authToken=\"your-jwt-token\"\n *       theme=\"light\"\n *     />\n *   );\n * }\n * ```\n */\nexport const LegionPioneerPointStatus = forwardRef<\n  LegionPioneerPointStatusHandle,\n  PioneerPointStatusWidgetProps\n>(function LegionPioneerPointStatus(props, ref) {\n  const {\n    theme = \"light\",\n    authToken,\n    width = \"100%\",\n    height = \"180px\",\n    className,\n    style,\n    onLoad,\n    onError,\n    baseUrl,\n  } = props;\n\n  const iframeRef = useRef<HTMLIFrameElement>(null);\n\n  useImperativeHandle(\n    ref,\n    () => ({\n      refresh: () => {\n        const iframe = iframeRef.current;\n        if (iframe?.contentWindow) {\n          iframe.contentWindow.location.reload();\n        }\n      },\n    }),\n    []\n  );\n\n  const src = useMemo(\n    () => buildPioneerPointStatusWidgetUrl(props),\n    [baseUrl, theme]\n  );\n\n  const handleLoad = useCallback(() => {\n    const iframe = iframeRef.current;\n    if (authToken && iframe?.contentWindow) {\n      iframe.contentWindow.postMessage(\n        { type: \"AUTH_TOKEN\", token: authToken },\n        baseUrl\n      );\n    }\n    onLoad?.({ widget: \"pioneer-point-status\", theme });\n  }, [onLoad, theme, authToken, baseUrl]);\n\n  const handleError = useCallback(() => {\n    onError?.(\"Failed to load pioneer point status widget\");\n  }, [onError]);\n\n  return (\n    <div\n      className={className}\n      style={{ width, height, ...style }}\n      data-testid=\"legion-pioneer-point-status\"\n    >\n      <iframe\n        ref={iframeRef}\n        src={src}\n        title=\"Pioneer Point Status Widget\"\n        width=\"100%\"\n        height=\"100%\"\n        frameBorder=\"0\"\n        scrolling=\"no\"\n        onLoad={handleLoad}\n        onError={handleError}\n        style={{ border: \"none\" }}\n      />\n    </div>\n  );\n});\n"]}