{"version":3,"file":"positionModes.mjs","sources":["../../../../../../../web/src/oneTap/positionModes.ts"],"sourcesContent":["import { OneTapPositions } from '@stytch/core/public';\n\nimport { navigatorSupportsFedCM } from './navigatorSupportsFedCM';\n\nexport const getConfiguredEmbeddedMode = (position: OneTapPositions | undefined) => {\n  if (position === OneTapPositions.forceLegacyEmbedded) {\n    return 'force';\n  }\n\n  if (\n    position === OneTapPositions.embeddedOnly ||\n    position === OneTapPositions.embedded ||\n    position === OneTapPositions.floatingOrEmbedded\n  ) {\n    return true;\n  }\n\n  return false;\n};\n\nexport const getShouldRenderEmbeddedOneTap = (position: OneTapPositions | undefined) => {\n  // Attempt embedded positioning if some embedded mode has been requested, and\n  // either:\n  // - the browser does not support FedCM (in which case embedded positioning\n  //   could work), or\n  // - the developer has specified legacy embedded positioning (in which case\n  //   embedded positioning may not be honored)\n\n  const embeddedMode = getConfiguredEmbeddedMode(position);\n  return embeddedMode === 'force' || (embeddedMode && !navigatorSupportsFedCM);\n};\n\nexport const getShouldRenderFloatingOneTap = (position: OneTapPositions | undefined) => {\n  // Use floating positioning if we aren't using embedded positioning and the\n  // developer hasn't specifically requested not to use floating positioning\n  return position !== OneTapPositions.embeddedOnly && !getShouldRenderEmbeddedOneTap(position);\n};\n\nexport const getRenderedOneTapMode = (position: OneTapPositions | undefined) => {\n  const embeddedMode = getConfiguredEmbeddedMode(position);\n\n  if (embeddedMode === 'force' || (embeddedMode && !navigatorSupportsFedCM)) {\n    return 'embedded';\n  }\n\n  if (position !== OneTapPositions.embeddedOnly) {\n    return 'floating';\n  }\n\n  return false;\n};\n"],"names":["getConfiguredEmbeddedMode","position","OneTapPositions","forceLegacyEmbedded","embeddedOnly","embedded","floatingOrEmbedded","getShouldRenderEmbeddedOneTap","embeddedMode","navigatorSupportsFedCM","getShouldRenderFloatingOneTap","getRenderedOneTapMode"],"mappings":";;;AAIO,MAAMA,4BAA4B,CAACC,QAAAA,GAAAA;IACxC,IAAIA,QAAAA,KAAaC,eAAAA,CAAgBC,mBAAmB,EAAE;QACpD,OAAO,OAAA;AACT,IAAA;IAEA,IACEF,QAAAA,KAAaC,eAAAA,CAAgBE,YAAY,IACzCH,QAAAA,KAAaC,eAAAA,CAAgBG,QAAQ,IACrCJ,QAAAA,KAAaC,eAAAA,CAAgBI,kBAAkB,EAC/C;QACA,OAAO,IAAA;AACT,IAAA;IAEA,OAAO,KAAA;AACT;AAEO,MAAMC,gCAAgC,CAACN,QAAAA,GAAAA;;;;;;;AAQ5C,IAAA,MAAMO,eAAeR,yBAAAA,CAA0BC,QAAAA,CAAAA;IAC/C,OAAOO,YAAAA,KAAiB,OAAA,IAAYA,YAAAA,IAAgB,CAACC,sBAAAA;AACvD;AAEO,MAAMC,gCAAgC,CAACT,QAAAA,GAAAA;;;AAG5C,IAAA,OAAOA,QAAAA,KAAaC,eAAAA,CAAgBE,YAAY,IAAI,CAACG,6BAAAA,CAA8BN,QAAAA,CAAAA;AACrF;AAEO,MAAMU,wBAAwB,CAACV,QAAAA,GAAAA;AACpC,IAAA,MAAMO,eAAeR,yBAAAA,CAA0BC,QAAAA,CAAAA;AAE/C,IAAA,IAAIO,YAAAA,KAAiB,OAAA,IAAYA,YAAAA,IAAgB,CAACC,sBAAAA,EAAyB;QACzE,OAAO,UAAA;AACT,IAAA;IAEA,IAAIR,QAAAA,KAAaC,eAAAA,CAAgBE,YAAY,EAAE;QAC7C,OAAO,UAAA;AACT,IAAA;IAEA,OAAO,KAAA;AACT;;;;"}