@frankieone/one-sdk 1.4.3-rc → 1.4.4-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/commit.txt +2 -2
  2. package/dist/esm/modules/common/vendors/incode/onBoarding.types.d.ts +6 -1
  3. package/dist/esm/modules/common/vendors/incode/onBoarding.types.d.ts.map +1 -1
  4. package/dist/esm/modules/common/vendors/incode/startCamera.d.ts +3 -2
  5. package/dist/esm/modules/common/vendors/incode/startCamera.d.ts.map +1 -1
  6. package/dist/esm/modules/common/vendors/incode/startCamera.js +5 -2
  7. package/dist/esm/modules/common/vendors/incode/startCamera.js.map +1 -1
  8. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.d.ts +4 -3
  9. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.d.ts.map +1 -1
  10. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.js +4 -6
  11. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.js.map +1 -1
  12. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.d.ts +3 -1
  13. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.d.ts.map +1 -1
  14. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.js +3 -3
  15. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.js.map +1 -1
  16. package/dist/esm/modules/form/vendors/react/components/base/index.d.ts +0 -1
  17. package/dist/esm/modules/form/vendors/react/components/base/index.d.ts.map +1 -1
  18. package/dist/esm/modules/form/vendors/react/components/base/index.js +0 -1
  19. package/dist/esm/modules/form/vendors/react/components/base/index.js.map +1 -1
  20. package/dist/esm/modules/form/vendors/react/index.d.ts +3 -3
  21. package/dist/esm/modules/form/vendors/react/index.d.ts.map +1 -1
  22. package/dist/esm/modules/form/vendors/react/index.js +3 -3
  23. package/dist/esm/modules/form/vendors/react/index.js.map +1 -1
  24. package/dist/esm/modules/frankie-client/clients/OCRClient.d.ts +5 -5
  25. package/dist/esm/modules/frankie-client/clients/OCRClient.d.ts.map +1 -1
  26. package/dist/esm/modules/frankie-client/clients/OCRClient.js +11 -10
  27. package/dist/esm/modules/frankie-client/clients/OCRClient.js.map +1 -1
  28. package/dist/esm/modules/meta.json +1 -1
  29. package/dist/esm/modules/ocr/actions/start.d.ts +2 -0
  30. package/dist/esm/modules/ocr/actions/start.d.ts.map +1 -1
  31. package/dist/esm/modules/ocr/actions/start.js +3 -1
  32. package/dist/esm/modules/ocr/actions/start.js.map +1 -1
  33. package/dist/esm/modules/ocr/definition.d.ts +8 -4
  34. package/dist/esm/modules/ocr/definition.d.ts.map +1 -1
  35. package/dist/esm/modules/ocr/index.d.ts.map +1 -1
  36. package/dist/esm/modules/ocr/index.js +2 -1
  37. package/dist/esm/modules/ocr/index.js.map +1 -1
  38. package/dist/esm/modules/ocr/vendors/Incode/index.d.ts +1 -11
  39. package/dist/esm/modules/ocr/vendors/Incode/index.d.ts.map +1 -1
  40. package/dist/esm/modules/ocr/vendors/Incode/index.js +39 -2
  41. package/dist/esm/modules/ocr/vendors/Incode/index.js.map +1 -1
  42. package/dist/esm/modules/ocr/vendors/Onfido/index.d.ts +1 -11
  43. package/dist/esm/modules/ocr/vendors/Onfido/index.d.ts.map +1 -1
  44. package/dist/esm/modules/ocr/vendors/dummy-ocr/index.d.ts +1 -11
  45. package/dist/esm/modules/ocr/vendors/dummy-ocr/index.d.ts.map +1 -1
  46. package/dist/esm/styles/f1-style.css +1 -1
  47. package/dist/esm/styles/fonts/ProximaNova/Licenses/Monotype Font Software End User License Agreement.html +47 -0
  48. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaBlack/black-font.woff +0 -0
  49. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaBlack/black-font.woff2 +0 -0
  50. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaBold/bold-font.woff +0 -0
  51. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaBold/bold-font.woff2 +0 -0
  52. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaExtrabld/extrabld-font.woff +0 -0
  53. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaExtrabld/extrabld-font.woff2 +0 -0
  54. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaLight/light-font.woff +0 -0
  55. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaLight/light-font.woff2 +0 -0
  56. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaMedium/medium-font.woff +0 -0
  57. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaMedium/medium-font.woff2 +0 -0
  58. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaRegular/regular-font.woff +0 -0
  59. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaRegular/regular-font.woff2 +0 -0
  60. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaSemibold/semibold-font.woff +0 -0
  61. package/dist/esm/styles/fonts/ProximaNova/ProximaNovaSemibold/semibold-font.woff2 +0 -0
  62. package/dist/esm/styles/fonts/fonts.css +40 -0
  63. package/dist/esm/styles/styles.css +24 -0
  64. package/dist/esm/styles/tailwind/color.js +143 -0
  65. package/dist/esm/styles/tailwind/fontSize.js +25 -0
  66. package/dist/esm/styles/tailwind/screen.ts +22 -0
  67. package/dist/esm/styles/tailwind/spacing.js +30 -0
  68. package/dist/release.txt +2 -2
  69. package/dist/umd/955.js +3 -0
  70. package/dist/umd/955.js.map +1 -0
  71. package/dist/umd/biometrics-incode.js +1 -1
  72. package/dist/umd/biometrics-incode.js.map +1 -1
  73. package/dist/umd/form-react.js +1 -1
  74. package/dist/umd/form-react.js.map +1 -1
  75. package/dist/umd/ocr-incode.js +1 -1
  76. package/dist/umd/ocr-incode.js.map +1 -1
  77. package/dist/umd/oneSdk.umd.js +1 -1
  78. package/dist/umd/oneSdk.umd.js.map +1 -1
  79. package/dist/version.txt +2 -2
  80. package/package.json +3 -3
  81. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/BaseInput.d.ts +0 -51
  82. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/BaseInput.d.ts.map +0 -1
  83. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/BaseInput.js +0 -24
  84. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/BaseInput.js.map +0 -1
  85. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/FrankieInput.d.ts +0 -5
  86. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/FrankieInput.d.ts.map +0 -1
  87. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/FrankieInput.js +0 -19
  88. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/FrankieInput.js.map +0 -1
  89. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/index.d.ts +0 -2
  90. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/index.d.ts.map +0 -1
  91. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/index.js +0 -2
  92. package/dist/esm/modules/form/vendors/react/components/base/FrankieInput/index.js.map +0 -1
  93. package/dist/esm/modules/form/vendors/react/components/fragments/Dob.d.ts +0 -2
  94. package/dist/esm/modules/form/vendors/react/components/fragments/Dob.d.ts.map +0 -1
  95. package/dist/esm/modules/form/vendors/react/components/fragments/Dob.js +0 -5
  96. package/dist/esm/modules/form/vendors/react/components/fragments/Dob.js.map +0 -1
  97. package/dist/esm/modules/form/vendors/react/components/fragments/Name.d.ts +0 -2
  98. package/dist/esm/modules/form/vendors/react/components/fragments/Name.d.ts.map +0 -1
  99. package/dist/esm/modules/form/vendors/react/components/fragments/Name.js +0 -6
  100. package/dist/esm/modules/form/vendors/react/components/fragments/Name.js.map +0 -1
  101. package/dist/umd/895.js +0 -3
  102. package/dist/umd/895.js.map +0 -1
  103. /package/dist/umd/{895.js.LICENSE.txt → 955.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"form-react.js","mappings":"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","sources":["webpack://OneSdk/./styles/f1-style.css","webpack://OneSdk/./styles/fonts/fonts.css","webpack://OneSdk/./styles/styles.css","webpack://OneSdk/./modules/form/vendors/react/redux/constants/stateKey.enum.ts","webpack://OneSdk/./modules/form/vendors/react/redux/slices/loaderSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/appConfig.type.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieHeading/Heading.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/useEventContext.tsx","webpack://OneSdk/./modules/form/vendors/react/types/pages.type.ts","webpack://OneSdk/./modules/form/vendors/react/layout/Main/utils.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/BaseButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/FrankieButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieInput/BaseInput.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieInput/FrankieInput.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/Wrapper/Wrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/icons.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/layout-mapper.const.ts","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/Welcome.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Consent/Consent.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/slices/moduleSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/welcome.config.ts","webpack://OneSdk/./modules/form/vendors/react/features/Consent/consent.config.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/store.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/Loader/Loader.tsx","webpack://OneSdk/./modules/form/vendors/react/layout/Main/MainLayout.tsx","webpack://OneSdk/./modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/App.tsx","webpack://OneSdk/./styles/f1-style.css?2333","webpack://OneSdk/./styles/fonts/fonts.css?9b38","webpack://OneSdk/./styles/styles.css?6bc6","webpack://OneSdk/./modules/form/vendors/react/constants/styles.const.tsx","webpack://OneSdk/./modules/form/vendors/react/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n.f1-fixed {\n position: fixed\n}\n\n.f1-absolute {\n position: absolute\n}\n\n.f1-sticky {\n position: sticky\n}\n\n.f1-bottom-0 {\n bottom: 0px\n}\n\n.f1-left-0 {\n left: 0px\n}\n\n.f1-right-0 {\n right: 0px\n}\n\n.f1-top-0 {\n top: 0px\n}\n\n.f1-z-50 {\n z-index: 50\n}\n\n.\\\\!f1-mr-0 {\n margin-right: 0px !important\n}\n\n.f1-mb-1 {\n margin-bottom: 0.25rem\n}\n\n.f1-mb-2 {\n margin-bottom: 8px\n}\n\n.f1-mb-4 {\n margin-bottom: 1rem\n}\n\n.f1-mb-5 {\n margin-bottom: 1.25rem\n}\n\n.f1-ml-3 {\n margin-left: 0.75rem\n}\n\n.f1-mt-0 {\n margin-top: 0px\n}\n\n.f1-mt-2 {\n margin-top: 8px\n}\n\n.f1-mt-3 {\n margin-top: 0.75rem\n}\n\n.f1-mt-5 {\n margin-top: 1.25rem\n}\n\n.f1-mt-\\\\[32px\\\\] {\n margin-top: 32px\n}\n\n.f1-box-border {\n box-sizing: border-box\n}\n\n.f1-inline-block {\n display: inline-block\n}\n\n.f1-inline {\n display: inline\n}\n\n.f1-flex {\n display: flex\n}\n\n.\\\\!f1-h-5 {\n height: 1.25rem !important\n}\n\n.f1-h-12 {\n height: 3rem\n}\n\n.f1-h-24 {\n height: 6rem\n}\n\n.f1-h-auto {\n height: auto\n}\n\n.f1-h-full {\n height: 100%\n}\n\n.\\\\!f1-w-5 {\n width: 1.25rem !important\n}\n\n.f1-w-24 {\n width: 6rem\n}\n\n.f1-w-56 {\n width: 14rem\n}\n\n.f1-w-full {\n width: 100%\n}\n\n.f1-flex-initial {\n flex: 0 1 auto\n}\n\n@keyframes f1-spin {\n to {\n transform: rotate(360deg)\n }\n}\n\n.f1-animate-spin {\n animation: f1-spin 1s linear infinite\n}\n\n.f1-cursor-not-allowed {\n cursor: not-allowed\n}\n\n.f1-cursor-pointer {\n cursor: pointer\n}\n\n.f1-cursor-text {\n cursor: text\n}\n\n.f1-flex-col {\n flex-direction: column\n}\n\n.f1-content-center {\n align-content: center\n}\n\n.f1-items-start {\n align-items: flex-start\n}\n\n.f1-items-center {\n align-items: center\n}\n\n.f1-justify-center {\n justify-content: center\n}\n\n.f1-justify-between {\n justify-content: space-between\n}\n\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(8px * var(--tw-space-x-reverse));\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\n}\n\n.f1-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap\n}\n\n.f1-rounded-full {\n border-radius: 9999px\n}\n\n.f1-rounded-sm {\n border-radius: 4px\n}\n\n.f1-border {\n border-width: 1px\n}\n\n.f1-border-solid {\n border-style: solid\n}\n\n.f1-border-none {\n border-style: none\n}\n\n.f1-bg-mono-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\n}\n\n.f1-bg-primary-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\n}\n\n.f1-fill-primary-600 {\n fill: #3c7cfa\n}\n\n.f1-p-6 {\n padding: 1.5rem\n}\n\n.f1-px-4 {\n padding-left: 1rem;\n padding-right: 1rem\n}\n\n.f1-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem\n}\n\n.f1-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem\n}\n\n.f1-py-\\\\[49px\\\\] {\n padding-top: 49px;\n padding-bottom: 49px\n}\n\n.f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n}\n\n.f1-pr-3 {\n padding-right: 0.75rem\n}\n\n.f1-text-left {\n text-align: left\n}\n\n.f1-text-center {\n text-align: center\n}\n\n.f1-text-3xl {\n font-size: 1.875rem\n}\n\n.f1-text-md {\n font-size: 1rem\n}\n\n.f1-text-sm {\n font-size: 0.875rem\n}\n\n.f1-font-bold {\n font-weight: 700\n}\n\n.f1-font-medium {\n font-weight: 500\n}\n\n.f1-font-normal {\n font-weight: 400\n}\n\n.f1-font-semibold {\n font-weight: 600\n}\n\n.f1-leading-6 {\n line-height: 1.5rem\n}\n\n.f1-text-mono-90 {\n --tw-text-opacity: 1;\n color: rgb(52 58 64 / var(--tw-text-opacity))\n}\n\n.f1-text-mono-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-800 {\n --tw-text-opacity: 1;\n color: rgb(31 42 55 / var(--tw-text-opacity))\n}\n\n.f1-outline {\n outline-style: solid\n}\n\n.f1-outline-0 {\n outline-width: 0px\n}\n\n.f1-outline-primary-200 {\n outline-color: #a1c2fd\n}\n\n.placeholder\\\\:f1-text-mono-60::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(141 149 157 / var(--tw-text-opacity))\n}\n\n.placeholder\\\\:f1-text-mono-60::placeholder {\n --tw-text-opacity: 1;\n color: rgb(141 149 157 / var(--tw-text-opacity))\n}\n\n.hover\\\\:f1-bg-primary-900:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-border-primary-800:focus-visible {\n --tw-border-opacity: 1;\n border-color: rgb(43 103 249 / var(--tw-border-opacity))\n}\n\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-outline-0:focus-visible {\n outline-width: 0px\n}\n\n.focus-visible\\\\:f1-outline-3:focus-visible {\n outline-width: 3px\n}\n\n.active\\\\:f1-bg-primary-900:active {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.active\\\\:f1-outline-3:active {\n outline-width: 3px\n}\n\n.disabled\\\\:f1-border-tertiary-grey-300:disabled {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-50:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity))\n}\n\n.disabled\\\\:f1-outline-0:disabled {\n outline-width: 0px\n}\n\n@media (min-width: 640px) {\n .tablet\\\\:f1-static {\n position: static\n }\n\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\n margin-bottom: 120px\n }\n\n .tablet\\\\:f1-w-auto {\n width: auto\n }\n\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\n min-width: 210px\n }\n\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\n max-width: 442px\n }\n\n .tablet\\\\:f1-justify-normal {\n justify-content: normal\n }\n\n .tablet\\\\:f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n }\n\n .tablet\\\\:f1-px-0 {\n padding-left: 0px;\n padding-right: 0px\n }\n\n .tablet\\\\:f1-pb-4xl {\n padding-bottom: 32px\n }\n\n .tablet\\\\:f1-pt-0 {\n padding-top: 0px\n }\n\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\n padding-top: 64px\n }\n\n .tablet\\\\:\\\\!f1-shadow-none {\n --tw-shadow: 0 0 #0000 !important;\n --tw-shadow-colored: 0 0 #0000 !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\n }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/f1-style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,uBAAuB;EACvB,mDAAmD;EACnD;AACF;;AAEA;EACE,gBAAgB;EAChB,uBAAuB;EACvB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,qBAAqB;EACrB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,iBAAiB;EACjB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,kBAAkB;IAClB;EACF;;EAEA;IACE,iBAAiB;IACjB;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,iCAAiC;IACjC,yCAAyC;IACzC;EACF;AACF\",\"sourcesContent\":[\"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n.f1-fixed {\\n position: fixed\\n}\\n\\n.f1-absolute {\\n position: absolute\\n}\\n\\n.f1-sticky {\\n position: sticky\\n}\\n\\n.f1-bottom-0 {\\n bottom: 0px\\n}\\n\\n.f1-left-0 {\\n left: 0px\\n}\\n\\n.f1-right-0 {\\n right: 0px\\n}\\n\\n.f1-top-0 {\\n top: 0px\\n}\\n\\n.f1-z-50 {\\n z-index: 50\\n}\\n\\n.\\\\!f1-mr-0 {\\n margin-right: 0px !important\\n}\\n\\n.f1-mb-1 {\\n margin-bottom: 0.25rem\\n}\\n\\n.f1-mb-2 {\\n margin-bottom: 8px\\n}\\n\\n.f1-mb-4 {\\n margin-bottom: 1rem\\n}\\n\\n.f1-mb-5 {\\n margin-bottom: 1.25rem\\n}\\n\\n.f1-ml-3 {\\n margin-left: 0.75rem\\n}\\n\\n.f1-mt-0 {\\n margin-top: 0px\\n}\\n\\n.f1-mt-2 {\\n margin-top: 8px\\n}\\n\\n.f1-mt-3 {\\n margin-top: 0.75rem\\n}\\n\\n.f1-mt-5 {\\n margin-top: 1.25rem\\n}\\n\\n.f1-mt-\\\\[32px\\\\] {\\n margin-top: 32px\\n}\\n\\n.f1-box-border {\\n box-sizing: border-box\\n}\\n\\n.f1-inline-block {\\n display: inline-block\\n}\\n\\n.f1-inline {\\n display: inline\\n}\\n\\n.f1-flex {\\n display: flex\\n}\\n\\n.\\\\!f1-h-5 {\\n height: 1.25rem !important\\n}\\n\\n.f1-h-12 {\\n height: 3rem\\n}\\n\\n.f1-h-24 {\\n height: 6rem\\n}\\n\\n.f1-h-auto {\\n height: auto\\n}\\n\\n.f1-h-full {\\n height: 100%\\n}\\n\\n.\\\\!f1-w-5 {\\n width: 1.25rem !important\\n}\\n\\n.f1-w-24 {\\n width: 6rem\\n}\\n\\n.f1-w-56 {\\n width: 14rem\\n}\\n\\n.f1-w-full {\\n width: 100%\\n}\\n\\n.f1-flex-initial {\\n flex: 0 1 auto\\n}\\n\\n@keyframes f1-spin {\\n to {\\n transform: rotate(360deg)\\n }\\n}\\n\\n.f1-animate-spin {\\n animation: f1-spin 1s linear infinite\\n}\\n\\n.f1-cursor-not-allowed {\\n cursor: not-allowed\\n}\\n\\n.f1-cursor-pointer {\\n cursor: pointer\\n}\\n\\n.f1-cursor-text {\\n cursor: text\\n}\\n\\n.f1-flex-col {\\n flex-direction: column\\n}\\n\\n.f1-content-center {\\n align-content: center\\n}\\n\\n.f1-items-start {\\n align-items: flex-start\\n}\\n\\n.f1-items-center {\\n align-items: center\\n}\\n\\n.f1-justify-center {\\n justify-content: center\\n}\\n\\n.f1-justify-between {\\n justify-content: space-between\\n}\\n\\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(8px * var(--tw-space-x-reverse));\\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\\n}\\n\\n.f1-truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap\\n}\\n\\n.f1-rounded-full {\\n border-radius: 9999px\\n}\\n\\n.f1-rounded-sm {\\n border-radius: 4px\\n}\\n\\n.f1-border {\\n border-width: 1px\\n}\\n\\n.f1-border-solid {\\n border-style: solid\\n}\\n\\n.f1-border-none {\\n border-style: none\\n}\\n\\n.f1-bg-mono-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-primary-800 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\\n}\\n\\n.f1-fill-primary-600 {\\n fill: #3c7cfa\\n}\\n\\n.f1-p-6 {\\n padding: 1.5rem\\n}\\n\\n.f1-px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem\\n}\\n\\n.f1-px-5 {\\n padding-left: 1.25rem;\\n padding-right: 1.25rem\\n}\\n\\n.f1-py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem\\n}\\n\\n.f1-py-\\\\[49px\\\\] {\\n padding-top: 49px;\\n padding-bottom: 49px\\n}\\n\\n.f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n}\\n\\n.f1-pr-3 {\\n padding-right: 0.75rem\\n}\\n\\n.f1-text-left {\\n text-align: left\\n}\\n\\n.f1-text-center {\\n text-align: center\\n}\\n\\n.f1-text-3xl {\\n font-size: 1.875rem\\n}\\n\\n.f1-text-md {\\n font-size: 1rem\\n}\\n\\n.f1-text-sm {\\n font-size: 0.875rem\\n}\\n\\n.f1-font-bold {\\n font-weight: 700\\n}\\n\\n.f1-font-medium {\\n font-weight: 500\\n}\\n\\n.f1-font-normal {\\n font-weight: 400\\n}\\n\\n.f1-font-semibold {\\n font-weight: 600\\n}\\n\\n.f1-leading-6 {\\n line-height: 1.5rem\\n}\\n\\n.f1-text-mono-90 {\\n --tw-text-opacity: 1;\\n color: rgb(52 58 64 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-mono-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-800 {\\n --tw-text-opacity: 1;\\n color: rgb(31 42 55 / var(--tw-text-opacity))\\n}\\n\\n.f1-outline {\\n outline-style: solid\\n}\\n\\n.f1-outline-0 {\\n outline-width: 0px\\n}\\n\\n.f1-outline-primary-200 {\\n outline-color: #a1c2fd\\n}\\n\\n.placeholder\\\\:f1-text-mono-60::-moz-placeholder {\\n --tw-text-opacity: 1;\\n color: rgb(141 149 157 / var(--tw-text-opacity))\\n}\\n\\n.placeholder\\\\:f1-text-mono-60::placeholder {\\n --tw-text-opacity: 1;\\n color: rgb(141 149 157 / var(--tw-text-opacity))\\n}\\n\\n.hover\\\\:f1-bg-primary-900:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-border-primary-800:focus-visible {\\n --tw-border-opacity: 1;\\n border-color: rgb(43 103 249 / var(--tw-border-opacity))\\n}\\n\\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-outline-0:focus-visible {\\n outline-width: 0px\\n}\\n\\n.focus-visible\\\\:f1-outline-3:focus-visible {\\n outline-width: 3px\\n}\\n\\n.active\\\\:f1-bg-primary-900:active {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.active\\\\:f1-outline-3:active {\\n outline-width: 3px\\n}\\n\\n.disabled\\\\:f1-border-tertiary-grey-300:disabled {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-50:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity))\\n}\\n\\n.disabled\\\\:f1-outline-0:disabled {\\n outline-width: 0px\\n}\\n\\n@media (min-width: 640px) {\\n .tablet\\\\:f1-static {\\n position: static\\n }\\n\\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\\n margin-bottom: 120px\\n }\\n\\n .tablet\\\\:f1-w-auto {\\n width: auto\\n }\\n\\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\\n min-width: 210px\\n }\\n\\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\\n max-width: 442px\\n }\\n\\n .tablet\\\\:f1-justify-normal {\\n justify-content: normal\\n }\\n\\n .tablet\\\\:f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n }\\n\\n .tablet\\\\:f1-px-0 {\\n padding-left: 0px;\\n padding-right: 0px\\n }\\n\\n .tablet\\\\:f1-pb-4xl {\\n padding-bottom: 32px\\n }\\n\\n .tablet\\\\:f1-pt-0 {\\n padding-top: 0px\\n }\\n\\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\\n padding-top: 64px\\n }\\n\\n .tablet\\\\:\\\\!f1-shadow-none {\\n --tw-shadow: 0 0 #0000 !important;\\n --tw-shadow-colored: 0 0 #0000 !important;\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.form.react.ff-react-form{\n font-family: proxima-nova, sans-serif;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 700;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 600;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 500;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_6___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_7___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 400;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/fonts/fonts.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,2BAA2B;EAC3B;0DACoE;EACpE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC4E;EAC5E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DACwE;EACxE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC0E;EAC1E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\".form.react.ff-react-form{\\n font-family: proxima-nova, sans-serif;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaBold/bold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaBold/bold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 700;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 600;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaMedium/medium-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaMedium/medium-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 500;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaRegular/regular-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaRegular/regular-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 400;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.f1-leading-12 {\n line-height: 2.625rem;\n}\n\n.f1-h-26 {\n height: 100px;\n}\n\n.f1-w-26 {\n width: 100px;\n}\n\n.f1-shadow-top {\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\n}\n\n.f1-max-w-65 {\n max-width: 20rem;\n}\n \n.f1-link-text a{\n color: #374151\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/styles.css\"],\"names\":[],\"mappings\":\";AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,wFAAwF;AAC1F;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE;AACF\",\"sourcesContent\":[\"\\n.f1-leading-12 {\\n line-height: 2.625rem;\\n}\\n\\n.f1-h-26 {\\n height: 100px;\\n}\\n\\n.f1-w-26 {\\n width: 100px;\\n}\\n\\n.f1-shadow-top {\\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\\n}\\n\\n.f1-max-w-65 {\\n max-width: 20rem;\\n}\\n \\n.f1-link-text a{\\n color: #374151\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export enum REDUX_KEYS {\n LOADER = \"loader\",\n PAGE_CONFIG = \"page-config\",\n}\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport type LoaderDetails = {\n label?: string;\n descriptions?: string[];\n};\n\nexport interface LoaderState extends LoaderDetails {\n loading: boolean;\n}\n\ntype ActionPayloadProps = Partial<LoaderDetails>;\n\nconst initialState: LoaderState = {\n loading: false,\n label: \"Loading...\",\n};\n\nexport const loaderSlice = createSlice({\n name: REDUX_KEYS.LOADER,\n initialState,\n reducers: {\n startLoading: (state, action: PayloadAction<ActionPayloadProps>) => {\n state.loading = true;\n state.label = action?.payload?.label ?? state.label;\n state.descriptions = action?.payload?.descriptions;\n },\n\n stopLoading: (state) => {\n state.loading = false;\n state.label = undefined;\n state.descriptions = undefined;\n },\n },\n});\n\nexport const { startLoading, stopLoading } = loaderSlice.actions;\n\nexport const selectLoading = (state: { loader: LoaderState }) => state.loader;\n\nexport default loaderSlice.reducer;\n","/**\n * Defines the structure for styles used throughout the application.\n * @typedef {Object} Styles - Tailwind+CustomStyle object.\n */\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { CSSProperties } from 'react';\n\nexport enum ConfigCSSKeys {\n wrapper = 'ff-wrapper',\n description = 'ff-description',\n instructions = 'ff-instructions',\n checkbox = 'ff-checkbox',\n label = 'ff-label',\n title = 'ff-title',\n button = 'ff-button',\n checkboxItem = 'ff-checkbox-item',\n descriptionItem = 'ff-description-item',\n instructionItem = 'ff-instruction-item',\n font = 'font'\n}\n\n// export type Styles = Partial<Record<ConfigCSSKeys, CSSProperties>>;\n\nexport type Styles<T extends ConfigCSSKeys = ConfigCSSKeys> = T extends ConfigCSSKeys.font ? Partial<Record<T, FontConfig>> : Partial<Record<T, CSSProperties>>;\n\n\nexport type FontConfig = {\n name?: string;\n url?: string;\n}\n\n/**\n * Represents the content of a page.\n * @typedef {Object} Content\n * @property {string} label - The label content.\n * @property {string} [icon] - The icon associated with the content.\n * @property {Styles} style - The styles for the content.\n */\nexport type Content = {\n icon?: string;\n label: string;\n style?: Styles;\n};\n\nexport type ListInfo = {\n label?: string;\n content: Content[];\n style?: Styles;\n};\n\n/**\n * Represents list content for a page.\n * @typedef {Object} LisContent\n * @property {boolean} [isRoundedCheckbox] - Indicates whether the list item has a circular checkbox.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the list content.\n */\ntype LisContent = ListInfo & NonNullable<unknown>;\n\ntype Checkbox = Omit<ListInfo, 'label'> & NonNullable<unknown>;\n\n/**\n * Represents ID card content for a page.\n * @typedef {Object} IdCardContent\n * @property {string} postFixIcon - The post-fix icon associated with the ID card content.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the ID card content.\n */\n\ntype IdCardContent = Content & {\n postFixIcon: string;\n};\n\n/**\n * Represents action content for a page.\n * @typedef {Object} ActionContent\n * @property {string} [redirectTo] - The URL to redirect to upon action.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the action content.\n */\n\ntype ActionContent = Content & {\n redirectTo?: string;\n};\n\n/**\n * Represents the possible types for input configuration.\n * @typedef {'label' | 'number' | 'date' | 'select' | 'multiselect' | 'textarea' | 'checkbox' | 'radio' | 'contact-number' | 'address'} InputConfigType\n */\ntype InputConfigType =\n | 'label'\n | 'number'\n | 'date'\n | 'select'\n | 'multiselect'\n | 'textarea'\n | 'checkbox'\n | 'radio'\n | 'contact-number'\n | 'address';\n\n/**\n * Represents configuration for a number input type.\n * @typedef {Object} NumberConfig\n * @property {number} [min] - The minimum value allowed.\n * @property {number} [max] - The maximum value allowed.\n */\ntype NumberConfig<NType extends InputConfigType> = {\n type: NType;\n min?: number;\n max?: number;\n};\n\n/**\n * Represents configuration for a date input type.\n * @typedef {Object} DateConfig\n * @property {number} [minDate] - The minimum date allowed.\n * @property {number} [maxDate] - The maximum date allowed.\n */\ntype DateConfig<NType extends InputConfigType> = {\n type: NType;\n minDate?: number;\n maxDate?: number | string | Date;\n};\n\n/**\n * Represents configuration for a textarea input type.\n * @typedef {Object} TextareaConfig\n * @property {number} [maxTextLimit] - The maximum label limit.\n */\ntype TextareaConfig<NType extends InputConfigType> = {\n type: NType;\n maxTextLimit?: number;\n};\n\n/**\n * Represents input configuration, with variations based on type.\n * @typedef {Object} FormField\n * @property {InputConfigType} type - Input type.\n * @property {boolean} [isRequired] - Indicates if input is required.\n * @property {boolean} [isDisabled] - Indicates if input is disabled.\n * @property {boolean} [isWordCount] - Indicates if word count is enabled for textarea.\n * @property {boolean} [isDropdownCTA] - Indicates if input has a dropdown CTA.\n * @property {boolean} [isSearchable] - Indicates if input field is searchable.\n * @property {string} [tooltip] - Tooltip text for input.\n * @property {Styles} [style] - Styles for input.\n * @property {NumberConfig} [min] - Min and max values for number type.\n * @property {DateConfig} [minDate] - Min and max dates for date type.\n * @property {TextareaConfig} [maxTextLimit] - Max label limit for textarea type.\n */\ntype FormField<NType extends InputConfigType> = {\n type: NType;\n label?: string;\n placeholder?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n isWordCount?: boolean;\n isDropdownCTA?: boolean;\n isSearchable?: boolean;\n tooltip?: string;\n style?: Styles;\n} & (NType extends 'number' ? NumberConfig<'number'> : NonNullable<unknown>) &\n (NType extends 'date' ? DateConfig<'date'> : NonNullable<unknown>) &\n (NType extends 'textarea'\n ? TextareaConfig<'textarea'>\n : NonNullable<unknown>);\n\n/**\n * Represents configuration for a static page.\n * @typedef {Object} IStaticPageConfig\n * @property {Content} title - The title of the static page.\n * @property {Content[]} descriptions - The paragraphs of the static page.\n * @property {LisContent[]} instructions - The list items of the static page.\n * @property {ActionContent} cta - The action content of the static page.\n * @property {Styles} style - The styles for the static page.\n */\ninterface IBasicInfo<NType extends ReactFormIdsKeys = ReactFormIdsKeys> extends FontConfig {\n name: NType;\n title: Content;\n descriptions: Content[];\n style?: Styles;\n}\n\n/**\n * Defines the type for instructions associated with a specific form ID.\n * @template NType - Type parameter representing the form ID.\n * @property {NType} name - The form ID.\n * @property {LisContent} [instructions] - Instructions for the form.\n */\ntype Instructions<NType extends ReactFormIdsKeys> = {\n name: NType;\n instructions?: LisContent;\n};\n\n/**\n * Defines the type for checkboxes associated with a specific form ID.\n * @template NType - Type parameter representing the form ID.\n * @typedef {object} CheckboxType\n * @property {NType} name - The form ID.\n * @property {Checkbox} checkbox - The checkbox configuration.\n */\ntype CheckboxType<NType extends ReactFormIdsKeys> = {\n name: NType;\n checkbox: Checkbox;\n};\n\n/**\n * Defines a type that represents the exclusion of a type from another.\n * @template NType - Type parameter representing the form ID.\n * @template EType - Type parameter representing the excluded form ID.\n * @typedef {Exclude<NType, EType>} Excluded\n */\ntype Excluded<\n NType extends ReactFormIdsKeys,\n EType extends ReactFormIdsKeys\n> = Exclude<NType, EType>;\n\n/**\n * Defines conditional instructions based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype ConditionalInstructions<NType extends ReactFormIdsKeys> =\n NType extends 'WELCOME' ? Instructions<'WELCOME'> : NonNullable<unknown>;\n\n/**\n * Defines conditional checkboxes based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype ConditionalCheckbox<NType extends ReactFormIdsKeys> =\n NType extends 'CONSENT' ? CheckboxType<'CONSENT'> : NonNullable<unknown>;\n\n/**\n * Defines other conditional fields based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype OtherConditionalFields<NType extends ReactFormIdsKeys> = NType extends\n | 'WELCOME'\n | 'CONSENT'\n ? NonNullable<unknown>\n : Instructions<Excluded<NType, 'WELCOME' | 'CONSENT'>> &\n CheckboxType<Excluded<NType, 'WELCOME' | 'CONSENT'>>;\n\n/**\n * Defines the type for static page configuration based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\nexport type IStaticPageConfig<\n NType extends ReactFormIdsKeys = ReactFormIdsKeys\n> = (IBasicInfo<NType> & { cta: ActionContent }) &\n (\n | ConditionalInstructions<NType>\n | ConditionalCheckbox<NType>\n | OtherConditionalFields<NType>\n )\n\n/**\n * Represents configuration for an ID card page.\n * @property {Content} title - The title of the ID card page.\n * @property {Content[]} descriptions - The paragraphs of the ID card page.\n * @property {IdCardContent[]} idCardList - The ID card list of the ID card page.\n */\nexport interface IIdCardPageConfig extends IBasicInfo {\n idCardList: IdCardContent[];\n}\n\n/**\n * Represents configuration for a progress page.\n * @typedef {Object} IProgressPageConfig\n * @property {string} icon - The icon for the progress page.\n * @property {Content} title - The title of the progress page.\n * @property {Content[]} descriptions - The paragraphs of the progress page.\n * @property {ActionContent} action - The action content of the progress page.\n * @property {Styles} style - The styles for the progress page.\n * @property {boolean} [isTransparent] - Indicates whether the progress page is transparent.\n */\nexport interface IProgressPageConfig extends IBasicInfo {\n icon: string;\n cta: ActionContent;\n isTransparent?: boolean;\n}\n\n/**\n * Represents configuration for a form page.\n * @typedef {Object} IFormPageConfig\n * @property {Content} label - The label of the form page.\n * @property {FormField[]} formFields - The form fields of the form page.\n * @property {ActionContent} cta - The action content of the form page.\n * @property {Styles} style - The styles for the form page.\n */\nexport interface IFormPageConfig extends Pick<IBasicInfo, 'name' | 'style'> {\n label: Content;\n formFields: FormField<InputConfigType>[];\n cta: ActionContent;\n}\n\n/**\n * Represents the page configuration.\n * @typedef {IStaticPageConfig | IIdCardPageConfig | IProgressPageConfig | IFormPageConfig} TPageConfig\n */\nexport type TPageConfig = Partial<\n IStaticPageConfig & IIdCardPageConfig & IProgressPageConfig & IFormPageConfig\n>;\n\n// Conditional type to extract keys based on value type\nexport type KeysMatching<T, V> = {\n [K in keyof T]: T[K] extends V ? K : never;\n}[keyof T];\n\n// ################### Example of it ###################\n\n// Mock data for page 1 (IStaticPageConfig)\nconst welcomePage = {\n name: 'WELCOME',\n title: { label: 'Welcome', style: {} },\n descriptions: [\n { label: 'This is a sample static page.', style: {} },\n { label: 'It can contain multiple paragraphs.', style: {} },\n ],\n instructions: {\n label: 'label goes here...',\n content: [\n { label: 'Item 1', style: {} },\n { label: 'Item 2', style: {} },\n ],\n },\n cta: { label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n\n// Mock data for consentPage (IStaticPageConfig)\nconst consentPage = {\n name: 'CONSENT',\n title: { label: 'Welcome', style: {} },\n descriptions: [\n { label: 'This is a sample static page.', style: {} },\n { label: 'It can contain multiple paragraphs.', style: {} },\n ],\n checkbox: {\n content: [{ label: 'Item 1', style: {} }],\n },\n cta: { label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact CONSENT component if you will be [const obj: IStaticPageConfig = { ... }]\n\n// Mock data for page 2 (IIdCardPageConfig)\nconst idCardPageConfig: IIdCardPageConfig = {\n name: 'CONSENT',\n title: { label: 'ID Card Page', style: {} },\n descriptions: [{ label: 'Details on ID cards:', style: {} }],\n idCardList: [\n { label: 'ID Card 1', style: {}, postFixIcon: 'icon1' },\n { label: 'ID Card 2', style: {}, postFixIcon: 'icon2' },\n ],\n style: {},\n};\n\n// Mock data for progress (IProgressPageConfig)\n// const progress: IProgressPageConfig = {\n// name: 'PROGRESS',\n// title: { label: 'Progress Page', style: {} },\n// descriptions: [{ label: 'Track your progress here:', style: {} }],\n// cta: { label: 'Finish', style: {} },\n// style: {},\n// icon: 'progress-icon',\n// isTransparent: true,\n// };\n\n// Mock data for formPage1 (IFormPageConfig)\n// const formPage1: IFormPageConfig = {\n// name: 'REVIEW',\n// label: { label: 'Form', style: {} },\n// formFields: [\n// {\n// type: 'number',\n// label: 'Name',\n// placeholder: 'Enter your name',\n// isRequired: true,\n// },\n// {\n// type: 'textarea',\n// label: 'Address',\n// placeholder: 'Enter your Address',\n// maxTextLimit: 100,\n// },\n// ],\n// cta: { label: 'Submit', style: {}, redirectTo: '/submit-page' },\n// style: {},\n// };\n\n// Mock data for formPage2 (IFormPageConfig)\n// const formPage2: IFormPageConfig = {\n// name: 'REVIEW2',\n// label: { label: 'Form', style: {} },\n// formFields: [\n// {\n// type: 'label',\n// label: 'Name',\n// placeholder: 'Enter your name',\n// isRequired: true,\n// },\n// {\n// type: 'date',\n// label: 'DOB',\n// placeholder: 'Enter your dob',\n// },\n// ],\n// cta: { label: 'Submit', style: {}, redirectTo: '/submit-page' },\n// style: {},\n// };\n\n/**\n * Example of an array containing page configurations.\n * @type {TPageConfig[]}\n */\nexport const pageConfigurations: TPageConfig[] = [\n welcomePage,\n consentPage,\n idCardPageConfig,\n // progress,\n // formPage1,\n // formPage2,\n];\n\n// NOTE: Simply we will pass the pageConfigurations to the component\n// and it will render the page based on the configuration.\n// it can be welcome page, consent page, progress page, form page, etc.\n","import clsx from 'clsx';\n\nimport {\n ConfigCSSKeys,\n type Content,\n type ListInfo,\n type Styles,\n} from '../../../appConfig.type';\n\nexport interface CheckboxFnProps {\n item: Content;\n isSelected: boolean;\n}\n\ninterface CheckboxProps extends ListInfo {\n content: Content[];\n style?: Styles;\n onChange?: (item: CheckboxFnProps) => void;\n}\n\nconst FrankieCheckbox = ({ content, style, onChange }: CheckboxProps) => {\n const handleCheckboxChange = (event, item: Content) => {\n onChange && onChange({ item: item, isSelected: event.target.checked });\n };\n\n return (\n <div\n className={clsx('f1-mt-5', ConfigCSSKeys.checkbox)}\n style={style?.[ConfigCSSKeys.checkbox]}\n >\n {content?.map((instruction, index) => {\n return (\n <div\n key={`f1-checkbox-${index}`}\n className={clsx(\n 'f1-flex',\n 'f1-items-center',\n ConfigCSSKeys.checkboxItem\n )}\n style={instruction?.style?.[ConfigCSSKeys.checkboxItem]}\n >\n <input\n className={clsx(\n '!f1-mr-0',\n 'f1-rounded-sm',\n '!f1-w-5',\n '!f1-h-5'\n )}\n id={`instructions-id-${index}`}\n type=\"checkbox\"\n onChange={(e) => handleCheckboxChange(e, instruction)}\n />\n <label\n htmlFor={`instructions-id-${index}`}\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-700',\n 'f1-ml-3'\n )}\n >\n {instruction.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieCheckbox;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Content } from '../../../appConfig.type';\n\ntype FrankieDescriptionProps = {\n descriptions: Content[];\n};\n\nconst FrankieDescription = ({ descriptions }: FrankieDescriptionProps) => {\n return (\n <>\n {descriptions.map((description, index) => {\n return (\n <div\n key={`f1-description-${index}`}\n className={clsx(\n 'f1-mb-2',\n 'f1-text-tertiary-grey-700',\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-link-text',\n ConfigCSSKeys.description\n )}\n style={description?.style?.[ConfigCSSKeys.description]}\n dangerouslySetInnerHTML={{ __html: description.label }}\n ></div>\n );\n })}\n </>\n );\n};\n\nexport default FrankieDescription;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Styles } from '../../../appConfig.type';\n\ntype HeadingProps = {\n label: string;\n style?: Styles;\n};\n\nconst Heading = ({ label, style }: HeadingProps) => {\n return (\n <h1\n className={clsx(\n 'f1-font-bold',\n 'f1-text-3xl',\n 'f1-leading-12',\n 'f1-text-tertiary-grey-800',\n 'f1-mb-4',\n 'f1-mt-0',\n ConfigCSSKeys.title\n )}\n style={style?.[ConfigCSSKeys.title]}\n >\n {label}\n </h1>\n );\n};\n\nexport default Heading;\n","import { EventHub } from '@module/common';\nimport { FormEvents } from '@module/form/events';\nimport { OneSdkContext } from '@module/types';\nimport { createContext } from 'react';\nimport { ConfigType } from '../App';\n\ntype EventContextType = {\n oneSDK: OneSdkContext;\n eventHub: EventHub<FormEvents>;\n config: ConfigType;\n};\n\nexport const EventContext = createContext<EventContextType | undefined>(\n undefined\n);\n","import type { consentPage } from '../features/Consent/consent.config';\nimport type { welcomePage } from '../features/Welcome/welcome.config';\nimport type { LoaderDetails } from '../redux/slices/loaderSlice';\n\nexport enum React_Form_IDS {\n WELCOME = 'welcome',\n CONSENT = 'consent',\n}\n\nexport type ReactFormIdsKeys = keyof typeof React_Form_IDS;\nexport type ReactFormIdsValues = typeof React_Form_IDS;\n\nexport type WrapperProps = {\n renderScreen: (props: {\n onValidate: (isValid: boolean) => void;\n }) => JSX.Element;\n loader?: LoaderDetails;\n onSubmit?: () => void;\n};\n\nexport type NewPageConfig = Partial<\n Record<React_Form_IDS.WELCOME, typeof welcomePage> &\n Record<React_Form_IDS.CONSENT, typeof consentPage>\n> & {\n currentModule?: React_Form_IDS;\n};\n\nexport type ModuleInfo = {\n element: () => JSX.Element;\n disabled: boolean;\n id: React_Form_IDS;\n};\n","import { EventPayload } from '@module/form/events';\nimport { modules } from '../../constants/layout-mapper.const';\nimport { NewPageConfig, React_Form_IDS } from '../../types/pages.type';\n\nexport function getEventConfig(pageConfigs: NewPageConfig): EventPayload {\n const currentModule = modules[pageConfigs.currentModule]?.id;\n const excludeTypes: React_Form_IDS[] = [React_Form_IDS.CONSENT];\n return {\n componentName: 'form',\n provider: 'react',\n inputInfo: {\n formName: currentModule,\n ...(!excludeTypes.includes(currentModule) && { type: 'ocr' }),\n },\n };\n}\n","import { Button } from '@mui/base';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport type { ButtonProps } from '@mui/base';\n\nexport const BaseButton = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, action, disabled, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n disabled={disabled}\n className={clsx(\n 'f1-flex',\n 'f1-flex-initial',\n 'f1-font-semibold',\n 'f1-items-center',\n 'f1-justify-center',\n 'f1-border-none',\n 'f1-outline',\n 'f1-outline-0',\n 'focus-visible:f1-outline-3',\n 'active:f1-outline-3',\n 'disabled:f1-text-tertiary-grey-400',\n 'disabled:f1-outline-0',\n 'f1-h-12',\n 'f1-w-full',\n 'f1-text-md',\n 'f1-space-x-2',\n 'f1-px-5',\n 'f1-py-3',\n 'f1-rounded-full',\n 'f1-text-mono-white',\n 'f1-bg-primary-800',\n 'hover:f1-bg-primary-900',\n 'focus-visible:f1-bg-primary-900',\n 'active:f1-bg-primary-900',\n 'disabled:f1-bg-tertiary-grey-200',\n 'f1-outline-primary-200',\n disabled ? 'f1-cursor-not-allowed' : 'f1-cursor-pointer',\n className\n )}\n {...props}\n />\n );\n }\n);\n","import { BaseButton } from \"./BaseButton\";\n\nexport const FrankieButton = ({ ...props }) => {\n return <BaseButton {...props} />;\n};\n","import { Input } from '@mui/base';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport type { InputProps } from '@mui/base';\n\nexport const BaseInput = forwardRef<HTMLInputElement, InputProps>(({\n className,\n defaultValue = '',\n disabled = false,\n error = false,\n id = '',\n inputMode = 'text',\n name = '',\n placeholder = '',\n required = false,\n slotProps,\n ...props\n}, ref) => {\n\n return (\n <Input\n ref={ref}\n className={clsx(className)}\n defaultValue={defaultValue}\n disabled={disabled}\n error={error}\n id={id}\n inputMode={inputMode}\n name={name}\n placeholder={placeholder}\n required={required}\n slotProps={{\n input: {\n className:\n clsx(\n 'f1-w-full',\n 'f1-truncate',\n 'f1-rounded-sm',\n 'f1-border',\n 'f1-border-solid',\n 'f1-box-border',\n 'f1-px-4',\n 'f1-bg-mono-white',\n 'f1-text-mono-90',\n 'f1-text-sm',\n 'f1-cursor-text',\n 'placeholder:f1-text-mono-60',\n 'focus-visible:f1-border-primary-800',\n 'focus-visible:f1-outline-0',\n 'disabled:f1-border-tertiary-grey-300',\n 'disabled:f1-bg-tertiary-grey-50',\n 'disabled:f1-text-tertiary-grey-400',\n 'f1-h-13',\n 'f1-py-3',\n ),\n },\n }}\n {...props}\n />\n );\n});\n","import clsx from 'clsx';\n\nimport { BaseInput } from './BaseInput';\n\nexport const FrankieInput = ({ label, ...props }) => {\n\n return (\n <div className=\"f1-mb-5\" {...props}>\n <label\n className={clsx(\n 'f1-inline-block',\n 'f1-text-sm',\n 'f1-font-medium',\n 'f1-tertiary-grey-800',\n 'f1-mb-2',\n )}\n htmlFor=\"\"\n >\n {label}\n </label>\n <BaseInput />\n </div>\n );\n};\n","import clsx from 'clsx';\nimport { useContext, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../../appConfig.type';\nimport { modules } from '../../../constants/layout-mapper.const';\nimport { EventContext } from '../../../hooks/useEventContext';\nimport { getEventConfig } from '../../../layout/Main/utils';\nimport { selectPageConfig } from '../../../redux/slices/moduleSlice';\nimport { FrankieButton } from '../../base';\n\nimport type { ModuleInfo, WrapperProps } from '../../../types/pages.type';\n\nconst Wrapper = ({ renderScreen, onSubmit }: WrapperProps) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const [currModule, setModule] = useState<ModuleInfo>(\n modules[pageConfigs.currentModule],\n );\n\n useEffect(() => {\n setModule(modules[pageConfigs.currentModule]);\n }, [pageConfigs]);\n\n const { eventHub } = useContext(EventContext);\n\n /**\n * load the next module when the current module is ready\n * Emit event builtin_ready to OneSDK when the form is ready,\n * and dispatch stopLoading action to hide the loader\n */\n const handleSubmit = () => {\n onSubmit && onSubmit();\n\n eventHub.emit('builtin_ready', getEventConfig(pageConfigs));\n };\n\n const onValidate = (isValid: boolean) => {\n setModule((prevModule) => ({\n ...prevModule,\n disabled: !isValid,\n }));\n };\n\n const configInfo = pageConfigs[pageConfigs.currentModule];\n\n return (\n <>\n <div\n className={clsx(\n 'f1-py-[49px]',\n 'f1-px-3xl',\n 'tablet:f1-px-0',\n 'tablet:f1-pt-[64px]',\n 'tablet:f1-pb-4xl',\n )}\n >\n {renderScreen({ onValidate })}\n </div>\n <div\n className={clsx(\n 'f1-left-0',\n 'f1-right-0',\n 'f1-bottom-0',\n 'f1-p-6',\n 'tablet:f1-pt-0',\n 'tablet:f1-mb-[120px]',\n 'f1-shadow-top',\n 'tablet:!f1-shadow-none',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-sticky',\n 'tablet:f1-static',\n 'f1-bg-mono-white',\n )}\n >\n <FrankieButton\n disabled={currModule?.disabled}\n onClick={handleSubmit}\n className={clsx(\n 'f1-w-full',\n 'tablet:f1-w-auto',\n 'tablet:f1-min-w-[210px]',\n 'f1-h-auto',\n ConfigCSSKeys.button,\n )}\n style={configInfo?.cta?.style?.[ConfigCSSKeys.button]}\n >\n {configInfo?.cta?.icon}\n {configInfo?.cta?.label}\n </FrankieButton>\n </div>\n </>\n );\n};\n\nexport default Wrapper;\n","import clsx from \"clsx\";\n\nexport const icons = {\n loader: (\n <svg\n aria-hidden=\"true\"\n className={clsx(\n \"f1-inline\",\n \"f1-animate-spin\",\n \"f1-fill-primary-600\",\n \"f1-h-24\",\n \"f1-w-24\"\n )}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"#e5e7eb\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n ),\n checkbox: (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#1D54F8\" />\n <path\n d=\"M18 8.66656L9.99998 16.6666L6.33331 12.9999L7.27331 12.0599L9.99998 14.7799L17.06 7.72656L18 8.66656Z\"\n fill=\"white\"\n />\n </svg>\n ),\n};\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type ListInfo } from '../../../appConfig.type';\nimport { icons } from '../../../constants/icons';\n\ninterface InstructionProps extends ListInfo {}\n\nconst FrankieInstructionList = ({\n content,\n label,\n style,\n}: InstructionProps) => {\n return (\n <div\n className={clsx(\n 'f1-text-tertiary-grey-700',\n 'f1-mt-[32px]',\n ConfigCSSKeys.instructions\n )}\n style={style?.[ConfigCSSKeys.instructions]}\n >\n <p\n className={clsx(\n 'f1-font-semibold',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-mb-4',\n 'f1-text-tertiary-grey-700'\n )}\n >\n {label}\n </p>\n {content?.map((instruction, index) => {\n return (\n <div\n key={`instructions-list-${index}`}\n className={clsx(\n 'f1-flex',\n 'f1-items-start',\n 'f1-mb-4',\n ConfigCSSKeys.instructionItem\n )}\n style={instruction?.style?.[ConfigCSSKeys.instructionItem]}\n >\n <div className={clsx('f1-pr-3')}>\n {instruction?.icon ?? icons.checkbox}\n </div>\n <div\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-800',\n 'f1-text-left',\n 'f1-link-text'\n )}\n dangerouslySetInnerHTML={{ __html: instruction.label }}\n ></div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieInstructionList;\n","import Consent from \"../features/Consent/Consent\";\nimport { consentPage } from \"../features/Consent/consent.config\";\nimport Welcome from \"../features/Welcome/Welcome\";\nimport { welcomePage } from \"../features/Welcome/welcome.config\";\nimport { React_Form_IDS } from \"../types/pages.type\";\n\nimport type { ModuleInfo, NewPageConfig } from \"../types/pages.type\";\n\nexport const modules: Partial<Record<React_Form_IDS, ModuleInfo>> = {\n [React_Form_IDS.WELCOME]: {\n element: Welcome,\n disabled: false,\n id: React_Form_IDS.WELCOME,\n },\n [React_Form_IDS.CONSENT]: {\n element: Consent,\n disabled: true,\n id: React_Form_IDS.CONSENT,\n },\n};\n\nexport const pagesConfig = {\n [React_Form_IDS.WELCOME]: welcomePage,\n [React_Form_IDS.CONSENT]: consentPage,\n} satisfies NewPageConfig;\n","import { useSelector } from 'react-redux';\n\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport FrankieInstructionList from '../../components/view/FrankieInstructionList/FrankieInstructionList';\n\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\n\nconst Welcome = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.WELCOME];\n\n return (\n <Wrapper\n renderScreen={() => {\n return (\n <>\n <Heading label={config.title?.label} style={config?.title?.style} />\n <FrankieDescription descriptions={config.descriptions} />\n <FrankieInstructionList {...config?.instructions} />\n </>\n );\n }}\n />\n );\n};\n\nexport default Welcome;\n","import { useContext } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport FrankieCheckbox from '../../components/view/FrankieCheckbox/FrankieCheckbox';\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { EventContext } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { CheckboxFnProps } from '../../components/view/FrankieCheckbox/FrankieCheckbox';\n\nconst Consent = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.CONSENT];\n\n const eventContext = useContext(EventContext);\n const { oneSDK } = eventContext;\n const individual = oneSDK.individual();\n\n const handleSubmit = () => {\n const allConsent: string[] = individual.access('consentsGiven').getValue();\n const myConsent: string[] = ['general', 'docs', 'creditheader'];\n myConsent.forEach((consent) => {\n if (!allConsent.includes(consent)) {\n individual.addConsent(consent);\n }\n });\n };\n\n return (\n <Wrapper\n renderScreen={({ onValidate }) => {\n const handleChange = (selectedItem: CheckboxFnProps) => {\n onValidate(selectedItem.isSelected);\n };\n\n return (\n <>\n <Heading label={config.title.label} style={config.title?.style} />\n <FrankieDescription descriptions={config?.descriptions} />\n <FrankieCheckbox\n content={config.checkbox?.content}\n style={config.checkbox?.style}\n onChange={handleChange}\n />\n </>\n );\n }}\n onSubmit={handleSubmit}\n />\n );\n};\n\nexport default Consent;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { pagesConfig } from \"../../constants/layout-mapper.const\";\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { NewPageConfig } from \"../../types/pages.type\";\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport interface PageConfigState {\n pageConfigs: NewPageConfig;\n}\n\nconst initialState: PageConfigState = {\n pageConfigs: pagesConfig,\n};\n\nconst pageConfigSlice = createSlice({\n name: REDUX_KEYS.PAGE_CONFIG,\n initialState,\n reducers: {\n addPageConfig: (state, action: PayloadAction<NewPageConfig>) => {\n state.pageConfigs = { ...state.pageConfigs, ...action.payload };\n },\n },\n});\n\nexport const { addPageConfig } = pageConfigSlice.actions;\n\nexport const selectPageConfig = (state: {\n [REDUX_KEYS.PAGE_CONFIG]: PageConfigState;\n}) => state[REDUX_KEYS.PAGE_CONFIG];\n\nexport default pageConfigSlice.reducer;\n","import type { IStaticPageConfig } from './welcome.type';\n\nexport const welcomePage = {\n name: 'WELCOME',\n title: { label: `Let's verify your identity`, style: {} },\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. It’s important you enter your details as accurately as possible.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n label:\n 'An ID on you (this could be a driver’s licence, passport or Medicare card',\n style: {},\n },\n {\n label:\n 'Grant access permission on the camera of your phone so we can capture your ID ',\n style: {},\n },\n {\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder.',\n style: {},\n },\n ],\n },\n cta: { icon: '', label: 'Start identification verification', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n","import type IStaticPageConfig from './consent.types';\n\nexport const consentPage = {\n name: 'CONSENT',\n title: { label: 'Your consent matters', style: {} },\n descriptions: [\n {\n label:\n `Your personal information being collected and used in accordance with FrankieOne's <a href=\"https://www.frankieone.com/privacy\" target=\"_blank\">Privacy Policy</a>.`,\n style: {},\n },\n {\n label:\n 'In addition, for the purposes of verifying your identity, you consent to: a) the verification of my personal information with credit bureau header files (for verification only); b) against records held by official document issues or official record holders via third party systems; and c) verification agent(s) acting as a nominated intermediary in accordance with Australian Privacy Principles.',\n style: {},\n },\n {\n label:\n 'You consent to the use by third parties of the results of any verification checks on my identity for the purposes of monitoring and improving their verification services.',\n style: {},\n },\n ],\n checkbox: {\n content: [\n {\n label: 'I have read and agree the above disclosure',\n style: {},\n },\n ],\n style: {},\n },\n cta: { icon: '', label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact consent component if you will be [const obj: IStaticPageConfig = { ... }]\n","import { configureStore } from '@reduxjs/toolkit';\n\nimport { REDUX_KEYS } from './constants/stateKey.enum';\nimport loaderReducer from './slices/loaderSlice';\nimport pagesConfigReducer from './slices/moduleSlice';\n\n\nexport const store = configureStore({\n reducer: {\n [REDUX_KEYS.LOADER]: loaderReducer,\n [REDUX_KEYS.PAGE_CONFIG]: pagesConfigReducer,\n },\n});\n","import clsx from 'clsx';\nimport { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { icons } from '../../../constants/icons';\nimport { selectLoading } from '../../../redux/slices/loaderSlice';\n\nconst Loader = () => {\n const loadingState = useSelector(selectLoading);\n const { label, descriptions, loading } = loadingState;\n const renderDescription = useCallback(\n (description: string, idx: number) => (\n <div key={`fallback-list-${idx}`} className=\"f1-mb-1\">\n {description}\n </div>\n ),\n []\n );\n\n if (!loading) return null;\n\n return (\n <div\n className={clsx(\n 'f1-fixed',\n 'f1-top-0',\n 'f1-left-0',\n 'f1-text-tertiary-grey-800',\n 'f1-w-full',\n 'f1-h-full',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-items-center',\n 'f1-absolute',\n 'f1-z-50',\n 'f1-bg-mono-white'\n )}\n >\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-content-center',\n 'f1-items-center',\n 'f1-w-56',\n 'f1-text-center'\n )}\n >\n {icons.loader}\n <div className={clsx('f1-font-bold', 'f1-mt-3')}>{label}</div>\n <div className={clsx('f1-mt-2', 'f1-text-ter')}>\n {descriptions?.map(renderDescription)}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Loader;\n","import clsx from 'clsx';\nimport { useContext, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../appConfig.type';\nimport Loader from '../../components/view/Loader/Loader';\nimport { modules } from '../../constants/layout-mapper.const';\nimport { EventContext } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\n\nimport { getEventConfig } from './utils';\n\nconst MainLayout = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const { eventHub } = useContext(EventContext);\n\n useEffect(() => {\n if (pageConfigs.currentModule) {\n eventHub.emit('builtin_loaded', getEventConfig(pageConfigs));\n }\n }, [pageConfigs]);\n\n const ActiveComponent = modules[pageConfigs.currentModule]?.element;\n\n if (!ActiveComponent) return null;\n\n return (\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-justify-between',\n 'tablet:f1-justify-normal',\n 'f1-h-full',\n 'f1-w-full',\n 'tablet:f1-max-w-[442px]',\n ConfigCSSKeys.wrapper\n )}\n style={\n pageConfigs[pageConfigs.currentModule]?.style?.[ConfigCSSKeys.wrapper]\n }\n >\n <ActiveComponent />\n <Loader />\n </div>\n );\n};\n\nexport default MainLayout;\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { MainLayout } from '../../layout';\nimport {\n addPageConfig,\n selectPageConfig,\n} from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { ConfigType } from '../../App';\nimport type { NewPageConfig } from '../../types/pages.type';\n\nconst ScreenWrapper = ({ config }: { config: Partial<ConfigType> }) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const dispatch = useDispatch();\n\n const currModuleName = React_Form_IDS[config?.name] ?? React_Form_IDS.WELCOME;\n\n useEffect(() => {\n dispatch(\n addPageConfig({\n currentModule: currModuleName,\n [currModuleName]: mergeAndReplace(\n pageConfigs[currModuleName] as NewPageConfig,\n getFilteredConfig({ pageConfigs, currModuleName, config })\n ),\n })\n );\n }, []);\n\n return <MainLayout />;\n};\n\n/**\n *\n * @param defaultConfig if we have => { name:default, descriptions: [ { ..default.. }, { ..default.. }, { ..default.. } ], checkbox: {label:default, content: [...default,...default]}})\n * @param newConfig we need to replace & merge => { descriptions: [ { ..new.. }, { ..new.. }, ],checkbox: {content: [...new]})\n * @returns then it will return newConfig: { name:default, descriptions: [ { ..new.. }, { ..new.. } ], checkbox: {label:default, content: [...new]}})\n */\nfunction mergeAndReplace(\n defaultConfig: NewPageConfig,\n newConfig: NewPageConfig\n): NewPageConfig {\n const mergedConfig = { ...defaultConfig };\n\n // Merge newConfig with defaultConfig and replace arrays if needed\n for (const key in newConfig) {\n if (Array.isArray(defaultConfig[key]) && newConfig[key]) {\n mergedConfig[key] = newConfig[key];\n } else if (typeof newConfig[key] === 'object') {\n mergedConfig[key] = { ...mergedConfig[key], ...newConfig[key] };\n } else {\n mergedConfig[key] = newConfig[key];\n }\n }\n\n return mergedConfig;\n}\n\n/**\n *\n * @param required arguments to filter the config object\n * @returns return filter the config object based on the current module\n */\nfunction getFilteredConfig({\n pageConfigs,\n currModuleName,\n config,\n}: {\n pageConfigs: NewPageConfig;\n currModuleName: React_Form_IDS;\n config: Partial<ConfigType>;\n}): NewPageConfig {\n const currentKeys = Object.keys(pageConfigs[currModuleName]);\n const filteredConfig = Object.keys(config).reduce((acc, key) => {\n if (currentKeys.includes(key)) {\n acc[key] = config[key];\n }\n return acc;\n }, {});\n\n return filteredConfig;\n}\n\nexport default ScreenWrapper;\n","import { Provider } from 'react-redux';\n\nimport type { EventHub } from '@module/common';\nimport type { OneSdkContext } from '@module/types';\n\n// redux store is required to initialise first\n// eslint-disable-next-line import/order\nimport { store } from './redux/store';\nimport { EventContext } from './hooks/useEventContext';\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { PartialObjectDeep } from 'type-fest/source/partial-deep';\nimport ScreenWrapper from './pages/ScreenWrapper/ScreenWrapper';\n\nexport type ScreenInfo = {\n name: ReactFormIdsKeys;\n};\n\nexport type ConfigType = PartialObjectDeep<\n PartialObjectDeep<ScreenInfo, Record<string, never>>,\n Record<string, never>\n> &\n ScreenInfo;\n\nexport interface AppProps {\n oneSDK: OneSdkContext;\n eventHub: EventHub;\n config: ConfigType;\n}\n\nconst App = ({ oneSDK, eventHub, config }: AppProps) => {\n return (\n <Provider store={store}>\n <EventContext.Provider value={{ oneSDK, eventHub, config }}>\n <ScreenWrapper config={config} />\n </EventContext.Provider>\n </Provider>\n );\n};\n\nexport default App;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { CSSProperties } from 'react';\n\nexport const formStyle: CSSProperties = {\n height: '100%',\n textAlign: 'left',\n background: 'white',\n display: 'flex',\n justifyContent: 'center',\n overflow: 'auto',\n};\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nimport { feat } from '@feature-flags';\nimport { loadAsyncAsset } from '@module/common';\nimport { defineWrapper } from '@module/common/modules/defineModule';\nimport type { FormModule } from '@module/form/definition';\n\nimport App from './App';\n\nimport '@styles/f1-style.css';\nimport '@styles/fonts/fonts.css';\nimport '@styles/styles.css';\nimport { formStyle } from './constants/styles.const';\n\nimport type { FontConfig } from './appConfig.type';\n\n// Classlist for the form container\nconst CONTAINER_CLASSLIST = ['form', 'react', 'ff-react-form'];\n\nexport const initialise = defineWrapper<FormModule>(\n 'react',\n async (shared, options) => {\n const { mountElement, eventHub } = options;\n const {\n oneSdkInstance,\n localEventHub,\n recipe: { form: { provider } },\n } = shared;\n // Retrieving the screen info from the recipe, default to WELCOME\n const config = provider.name === 'react' && provider?.config;\n\n try {\n // Clearing the mount element before attaching the form\n mountElement.innerHTML = '';\n\n // Adding specified class list to the mount element\n mountElement.classList.add(...CONTAINER_CLASSLIST);\n\n // Load font dynamically based on config\n const {\n name: fontName,\n url: fontUrl,\n } = config?.style?.['font'] as FontConfig ?? {};\n\n await downloadFont(fontUrl);\n\n // Retrieving the wrapping mode from the feature flag\n const wrappingMode = feat('modules.form.wrappingMode');\n\n // Dynamically attaching the required elements based on wrapping mode\n const [styledMountElement, wrapperElement, _windowContainer] =\n await ((): Promise<[HTMLElement, Node, Window]> => {\n if (wrappingMode === 'shadow')\n return attachShadow(mountElement, fontName);\n return attachDiv(mountElement, fontName);\n })();\n\n // Rendering the React app using styledMountElement\n const reactRoot = ReactDOM.createRoot(styledMountElement);\n reactRoot.render(\n <React.StrictMode>\n <App oneSDK={oneSdkInstance} eventHub={eventHub} config={config} />\n </React.StrictMode>,\n );\n\n // Emitting a 'loaded' event after rendering\n eventHub.emit('loaded', {\n //TODO: make domElement take Node instead of HTMLElement\n domElement: wrapperElement as HTMLElement,\n provider: 'react',\n });\n\n // We are removing the previous instance of the form and cleaning up\n eventHub.on('builtin_ready', (payload) => {\n mountElement.innerHTML = '';\n reactRoot.unmount();\n // escalate private events to component events\n localEventHub.emit('builtin_ready', payload);\n });\n } catch (error) {\n // Emitting a 'failed_loading' event in case of an error\n eventHub.emit('builtin_failed_loading', { message: error });\n }\n\n return {\n cleanup: () => {\n },\n };\n },\n);\n\nconst downloadFont = async (fontUrl: string) => {\n if (fontUrl) {\n const isFontLoaded = Array.from(\n document.querySelectorAll('link[rel=\"stylesheet\"]'),\n ).some((link: HTMLLinkElement) => link?.href === fontUrl);\n\n // Load font if it's not already loaded\n if (!isFontLoaded) {\n await loadAsyncAsset(fontUrl, 'style');\n }\n }\n};\n\nconst attachStyles = (mountElement: HTMLElement, fontName?: string) => {\n // Creating an internal mount element as a child of the provided mount element\n const internalMountElement = document.createElement('div');\n mountElement.appendChild(internalMountElement);\n Object.assign(internalMountElement.style, {\n ...formStyle,\n ...(fontName && { fontFamily: fontName }),\n });\n return internalMountElement;\n};\n\n// Function to attach the mount element to a div\nconst attachDiv = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, mountElement, window];\n};\n\n// Function to attach the mount element to a shadow root\nconst attachShadow = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n // Creating a shadow root for the provided mount element\n const shadowRoot = mountElement.attachShadow({ mode: 'open' });\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, shadowRoot, window];\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","REDUX_KEYS","loaderSlice","name","LOADER","initialState","loading","label","reducers","startLoading","state","action","payload","descriptions","stopLoading","undefined","actions","selectLoading","loader","ConfigCSSKeys","content","style","onChange","className","checkbox","map","instruction","index","checkboxItem","type","e","item","isSelected","target","checked","htmlFor","description","dangerouslySetInnerHTML","__html","title","EventContext","createContext","React_Form_IDS","getEventConfig","pageConfigs","currentModule","modules","excludeTypes","CONSENT","componentName","provider","inputInfo","formName","includes","BaseButton","forwardRef","ref","disabled","props","Button","FrankieButton","defaultValue","error","inputMode","placeholder","required","slotProps","Input","input","renderScreen","onSubmit","selectPageConfig","currModule","setModule","useState","useEffect","eventHub","useContext","configInfo","onValidate","isValid","prevModule","onClick","emit","button","cta","icon","icons","viewBox","fill","xmlns","d","width","height","rx","instructions","instructionItem","WELCOME","element","config","eventContext","oneSDK","individual","selectedItem","allConsent","access","getValue","forEach","consent","addConsent","pageConfigSlice","PAGE_CONFIG","addPageConfig","store","reducer","loadingState","renderDescription","useCallback","idx","ActiveComponent","wrapper","mergeAndReplace","defaultConfig","newConfig","mergedConfig","key","Array","isArray","getFilteredConfig","currModuleName","currentKeys","Object","keys","reduce","acc","dispatch","Provider","value","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","formStyle","textAlign","background","display","justifyContent","overflow","CONTAINER_CLASSLIST","initialise","shared","mountElement","oneSdkInstance","localEventHub","recipe","form","innerHTML","classList","add","fontName","url","fontUrl","downloadFont","wrappingMode","styledMountElement","wrapperElement","_windowContainer","attachShadow","attachDiv","reactRoot","render","domElement","on","unmount","message","cleanup","from","document","querySelectorAll","some","link","href","loadAsyncAsset","attachStyles","internalMountElement","createElement","appendChild","assign","fontFamily","window","shadowRoot","mode"],"sourceRoot":""}
1
+ {"version":3,"file":"form-react.js","mappings":"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","sources":["webpack://OneSdk/./styles/f1-style.css","webpack://OneSdk/./styles/fonts/fonts.css","webpack://OneSdk/./styles/styles.css","webpack://OneSdk/./modules/form/vendors/react/redux/constants/stateKey.enum.ts","webpack://OneSdk/./modules/form/vendors/react/redux/slices/loaderSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/appConfig.type.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieHeading/Heading.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/useEventContext.tsx","webpack://OneSdk/./modules/form/vendors/react/types/pages.type.ts","webpack://OneSdk/./modules/form/vendors/react/layout/Main/utils.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/BaseButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/FrankieButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/Wrapper/Wrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/icons.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/layout-mapper.const.ts","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/Welcome.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Consent/Consent.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/slices/moduleSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/welcome.config.ts","webpack://OneSdk/./modules/form/vendors/react/features/Consent/consent.config.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/store.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/Loader/Loader.tsx","webpack://OneSdk/./modules/form/vendors/react/layout/Main/MainLayout.tsx","webpack://OneSdk/./modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/App.tsx","webpack://OneSdk/./styles/f1-style.css?2333","webpack://OneSdk/./styles/fonts/fonts.css?9b38","webpack://OneSdk/./styles/styles.css?6bc6","webpack://OneSdk/./modules/form/vendors/react/constants/styles.const.tsx","webpack://OneSdk/./modules/form/vendors/react/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n.f1-fixed {\n position: fixed\n}\n\n.f1-absolute {\n position: absolute\n}\n\n.f1-sticky {\n position: sticky\n}\n\n.f1-bottom-0 {\n bottom: 0px\n}\n\n.f1-left-0 {\n left: 0px\n}\n\n.f1-right-0 {\n right: 0px\n}\n\n.f1-top-0 {\n top: 0px\n}\n\n.f1-z-50 {\n z-index: 50\n}\n\n.\\\\!f1-mr-0 {\n margin-right: 0px !important\n}\n\n.f1-mb-1 {\n margin-bottom: 0.25rem\n}\n\n.f1-mb-2 {\n margin-bottom: 8px\n}\n\n.f1-mb-4 {\n margin-bottom: 1rem\n}\n\n.f1-mb-5 {\n margin-bottom: 1.25rem\n}\n\n.f1-ml-3 {\n margin-left: 0.75rem\n}\n\n.f1-mt-0 {\n margin-top: 0px\n}\n\n.f1-mt-2 {\n margin-top: 8px\n}\n\n.f1-mt-3 {\n margin-top: 0.75rem\n}\n\n.f1-mt-5 {\n margin-top: 1.25rem\n}\n\n.f1-mt-\\\\[32px\\\\] {\n margin-top: 32px\n}\n\n.f1-box-border {\n box-sizing: border-box\n}\n\n.f1-inline-block {\n display: inline-block\n}\n\n.f1-inline {\n display: inline\n}\n\n.f1-flex {\n display: flex\n}\n\n.\\\\!f1-h-5 {\n height: 1.25rem !important\n}\n\n.f1-h-12 {\n height: 3rem\n}\n\n.f1-h-24 {\n height: 6rem\n}\n\n.f1-h-auto {\n height: auto\n}\n\n.f1-h-full {\n height: 100%\n}\n\n.\\\\!f1-w-5 {\n width: 1.25rem !important\n}\n\n.f1-w-24 {\n width: 6rem\n}\n\n.f1-w-56 {\n width: 14rem\n}\n\n.f1-w-full {\n width: 100%\n}\n\n.f1-flex-initial {\n flex: 0 1 auto\n}\n\n@keyframes f1-spin {\n to {\n transform: rotate(360deg)\n }\n}\n\n.f1-animate-spin {\n animation: f1-spin 1s linear infinite\n}\n\n.f1-cursor-not-allowed {\n cursor: not-allowed\n}\n\n.f1-cursor-pointer {\n cursor: pointer\n}\n\n.f1-cursor-text {\n cursor: text\n}\n\n.f1-flex-col {\n flex-direction: column\n}\n\n.f1-content-center {\n align-content: center\n}\n\n.f1-items-start {\n align-items: flex-start\n}\n\n.f1-items-center {\n align-items: center\n}\n\n.f1-justify-center {\n justify-content: center\n}\n\n.f1-justify-between {\n justify-content: space-between\n}\n\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(8px * var(--tw-space-x-reverse));\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\n}\n\n.f1-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap\n}\n\n.f1-rounded-full {\n border-radius: 9999px\n}\n\n.f1-rounded-sm {\n border-radius: 4px\n}\n\n.f1-border {\n border-width: 1px\n}\n\n.f1-border-solid {\n border-style: solid\n}\n\n.f1-border-none {\n border-style: none\n}\n\n.f1-bg-mono-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\n}\n\n.f1-bg-primary-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\n}\n\n.f1-fill-primary-600 {\n fill: #3c7cfa\n}\n\n.f1-p-6 {\n padding: 1.5rem\n}\n\n.f1-px-4 {\n padding-left: 1rem;\n padding-right: 1rem\n}\n\n.f1-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem\n}\n\n.f1-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem\n}\n\n.f1-py-\\\\[49px\\\\] {\n padding-top: 49px;\n padding-bottom: 49px\n}\n\n.f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n}\n\n.f1-pr-3 {\n padding-right: 0.75rem\n}\n\n.f1-text-left {\n text-align: left\n}\n\n.f1-text-center {\n text-align: center\n}\n\n.f1-text-3xl {\n font-size: 1.875rem\n}\n\n.f1-text-md {\n font-size: 1rem\n}\n\n.f1-text-sm {\n font-size: 0.875rem\n}\n\n.f1-font-bold {\n font-weight: 700\n}\n\n.f1-font-medium {\n font-weight: 500\n}\n\n.f1-font-normal {\n font-weight: 400\n}\n\n.f1-font-semibold {\n font-weight: 600\n}\n\n.f1-leading-6 {\n line-height: 1.5rem\n}\n\n.f1-text-mono-90 {\n --tw-text-opacity: 1;\n color: rgb(52 58 64 / var(--tw-text-opacity))\n}\n\n.f1-text-mono-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-800 {\n --tw-text-opacity: 1;\n color: rgb(31 42 55 / var(--tw-text-opacity))\n}\n\n.f1-outline {\n outline-style: solid\n}\n\n.f1-outline-0 {\n outline-width: 0px\n}\n\n.f1-outline-primary-200 {\n outline-color: #a1c2fd\n}\n\n.placeholder\\\\:f1-text-mono-60::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(141 149 157 / var(--tw-text-opacity))\n}\n\n.placeholder\\\\:f1-text-mono-60::placeholder {\n --tw-text-opacity: 1;\n color: rgb(141 149 157 / var(--tw-text-opacity))\n}\n\n.hover\\\\:f1-bg-primary-900:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-border-primary-800:focus-visible {\n --tw-border-opacity: 1;\n border-color: rgb(43 103 249 / var(--tw-border-opacity))\n}\n\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-outline-0:focus-visible {\n outline-width: 0px\n}\n\n.focus-visible\\\\:f1-outline-3:focus-visible {\n outline-width: 3px\n}\n\n.active\\\\:f1-bg-primary-900:active {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.active\\\\:f1-outline-3:active {\n outline-width: 3px\n}\n\n.disabled\\\\:f1-border-tertiary-grey-300:disabled {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-50:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity))\n}\n\n.disabled\\\\:f1-outline-0:disabled {\n outline-width: 0px\n}\n\n@media (min-width: 640px) {\n .tablet\\\\:f1-static {\n position: static\n }\n\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\n margin-bottom: 120px\n }\n\n .tablet\\\\:f1-w-auto {\n width: auto\n }\n\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\n min-width: 210px\n }\n\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\n max-width: 442px\n }\n\n .tablet\\\\:f1-justify-normal {\n justify-content: normal\n }\n\n .tablet\\\\:f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n }\n\n .tablet\\\\:f1-px-0 {\n padding-left: 0px;\n padding-right: 0px\n }\n\n .tablet\\\\:f1-pb-4xl {\n padding-bottom: 32px\n }\n\n .tablet\\\\:f1-pt-0 {\n padding-top: 0px\n }\n\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\n padding-top: 64px\n }\n\n .tablet\\\\:\\\\!f1-shadow-none {\n --tw-shadow: 0 0 #0000 !important;\n --tw-shadow-colored: 0 0 #0000 !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\n }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/f1-style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,uBAAuB;EACvB,mDAAmD;EACnD;AACF;;AAEA;EACE,gBAAgB;EAChB,uBAAuB;EACvB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,qBAAqB;EACrB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,iBAAiB;EACjB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,kBAAkB;IAClB;EACF;;EAEA;IACE,iBAAiB;IACjB;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,iCAAiC;IACjC,yCAAyC;IACzC;EACF;AACF\",\"sourcesContent\":[\"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n.f1-fixed {\\n position: fixed\\n}\\n\\n.f1-absolute {\\n position: absolute\\n}\\n\\n.f1-sticky {\\n position: sticky\\n}\\n\\n.f1-bottom-0 {\\n bottom: 0px\\n}\\n\\n.f1-left-0 {\\n left: 0px\\n}\\n\\n.f1-right-0 {\\n right: 0px\\n}\\n\\n.f1-top-0 {\\n top: 0px\\n}\\n\\n.f1-z-50 {\\n z-index: 50\\n}\\n\\n.\\\\!f1-mr-0 {\\n margin-right: 0px !important\\n}\\n\\n.f1-mb-1 {\\n margin-bottom: 0.25rem\\n}\\n\\n.f1-mb-2 {\\n margin-bottom: 8px\\n}\\n\\n.f1-mb-4 {\\n margin-bottom: 1rem\\n}\\n\\n.f1-mb-5 {\\n margin-bottom: 1.25rem\\n}\\n\\n.f1-ml-3 {\\n margin-left: 0.75rem\\n}\\n\\n.f1-mt-0 {\\n margin-top: 0px\\n}\\n\\n.f1-mt-2 {\\n margin-top: 8px\\n}\\n\\n.f1-mt-3 {\\n margin-top: 0.75rem\\n}\\n\\n.f1-mt-5 {\\n margin-top: 1.25rem\\n}\\n\\n.f1-mt-\\\\[32px\\\\] {\\n margin-top: 32px\\n}\\n\\n.f1-box-border {\\n box-sizing: border-box\\n}\\n\\n.f1-inline-block {\\n display: inline-block\\n}\\n\\n.f1-inline {\\n display: inline\\n}\\n\\n.f1-flex {\\n display: flex\\n}\\n\\n.\\\\!f1-h-5 {\\n height: 1.25rem !important\\n}\\n\\n.f1-h-12 {\\n height: 3rem\\n}\\n\\n.f1-h-24 {\\n height: 6rem\\n}\\n\\n.f1-h-auto {\\n height: auto\\n}\\n\\n.f1-h-full {\\n height: 100%\\n}\\n\\n.\\\\!f1-w-5 {\\n width: 1.25rem !important\\n}\\n\\n.f1-w-24 {\\n width: 6rem\\n}\\n\\n.f1-w-56 {\\n width: 14rem\\n}\\n\\n.f1-w-full {\\n width: 100%\\n}\\n\\n.f1-flex-initial {\\n flex: 0 1 auto\\n}\\n\\n@keyframes f1-spin {\\n to {\\n transform: rotate(360deg)\\n }\\n}\\n\\n.f1-animate-spin {\\n animation: f1-spin 1s linear infinite\\n}\\n\\n.f1-cursor-not-allowed {\\n cursor: not-allowed\\n}\\n\\n.f1-cursor-pointer {\\n cursor: pointer\\n}\\n\\n.f1-cursor-text {\\n cursor: text\\n}\\n\\n.f1-flex-col {\\n flex-direction: column\\n}\\n\\n.f1-content-center {\\n align-content: center\\n}\\n\\n.f1-items-start {\\n align-items: flex-start\\n}\\n\\n.f1-items-center {\\n align-items: center\\n}\\n\\n.f1-justify-center {\\n justify-content: center\\n}\\n\\n.f1-justify-between {\\n justify-content: space-between\\n}\\n\\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(8px * var(--tw-space-x-reverse));\\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\\n}\\n\\n.f1-truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap\\n}\\n\\n.f1-rounded-full {\\n border-radius: 9999px\\n}\\n\\n.f1-rounded-sm {\\n border-radius: 4px\\n}\\n\\n.f1-border {\\n border-width: 1px\\n}\\n\\n.f1-border-solid {\\n border-style: solid\\n}\\n\\n.f1-border-none {\\n border-style: none\\n}\\n\\n.f1-bg-mono-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-primary-800 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\\n}\\n\\n.f1-fill-primary-600 {\\n fill: #3c7cfa\\n}\\n\\n.f1-p-6 {\\n padding: 1.5rem\\n}\\n\\n.f1-px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem\\n}\\n\\n.f1-px-5 {\\n padding-left: 1.25rem;\\n padding-right: 1.25rem\\n}\\n\\n.f1-py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem\\n}\\n\\n.f1-py-\\\\[49px\\\\] {\\n padding-top: 49px;\\n padding-bottom: 49px\\n}\\n\\n.f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n}\\n\\n.f1-pr-3 {\\n padding-right: 0.75rem\\n}\\n\\n.f1-text-left {\\n text-align: left\\n}\\n\\n.f1-text-center {\\n text-align: center\\n}\\n\\n.f1-text-3xl {\\n font-size: 1.875rem\\n}\\n\\n.f1-text-md {\\n font-size: 1rem\\n}\\n\\n.f1-text-sm {\\n font-size: 0.875rem\\n}\\n\\n.f1-font-bold {\\n font-weight: 700\\n}\\n\\n.f1-font-medium {\\n font-weight: 500\\n}\\n\\n.f1-font-normal {\\n font-weight: 400\\n}\\n\\n.f1-font-semibold {\\n font-weight: 600\\n}\\n\\n.f1-leading-6 {\\n line-height: 1.5rem\\n}\\n\\n.f1-text-mono-90 {\\n --tw-text-opacity: 1;\\n color: rgb(52 58 64 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-mono-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-800 {\\n --tw-text-opacity: 1;\\n color: rgb(31 42 55 / var(--tw-text-opacity))\\n}\\n\\n.f1-outline {\\n outline-style: solid\\n}\\n\\n.f1-outline-0 {\\n outline-width: 0px\\n}\\n\\n.f1-outline-primary-200 {\\n outline-color: #a1c2fd\\n}\\n\\n.placeholder\\\\:f1-text-mono-60::-moz-placeholder {\\n --tw-text-opacity: 1;\\n color: rgb(141 149 157 / var(--tw-text-opacity))\\n}\\n\\n.placeholder\\\\:f1-text-mono-60::placeholder {\\n --tw-text-opacity: 1;\\n color: rgb(141 149 157 / var(--tw-text-opacity))\\n}\\n\\n.hover\\\\:f1-bg-primary-900:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-border-primary-800:focus-visible {\\n --tw-border-opacity: 1;\\n border-color: rgb(43 103 249 / var(--tw-border-opacity))\\n}\\n\\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-outline-0:focus-visible {\\n outline-width: 0px\\n}\\n\\n.focus-visible\\\\:f1-outline-3:focus-visible {\\n outline-width: 3px\\n}\\n\\n.active\\\\:f1-bg-primary-900:active {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.active\\\\:f1-outline-3:active {\\n outline-width: 3px\\n}\\n\\n.disabled\\\\:f1-border-tertiary-grey-300:disabled {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-50:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity))\\n}\\n\\n.disabled\\\\:f1-outline-0:disabled {\\n outline-width: 0px\\n}\\n\\n@media (min-width: 640px) {\\n .tablet\\\\:f1-static {\\n position: static\\n }\\n\\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\\n margin-bottom: 120px\\n }\\n\\n .tablet\\\\:f1-w-auto {\\n width: auto\\n }\\n\\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\\n min-width: 210px\\n }\\n\\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\\n max-width: 442px\\n }\\n\\n .tablet\\\\:f1-justify-normal {\\n justify-content: normal\\n }\\n\\n .tablet\\\\:f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n }\\n\\n .tablet\\\\:f1-px-0 {\\n padding-left: 0px;\\n padding-right: 0px\\n }\\n\\n .tablet\\\\:f1-pb-4xl {\\n padding-bottom: 32px\\n }\\n\\n .tablet\\\\:f1-pt-0 {\\n padding-top: 0px\\n }\\n\\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\\n padding-top: 64px\\n }\\n\\n .tablet\\\\:\\\\!f1-shadow-none {\\n --tw-shadow: 0 0 #0000 !important;\\n --tw-shadow-colored: 0 0 #0000 !important;\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.form.react.ff-react-form{\n font-family: proxima-nova, sans-serif;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 700;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 600;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 500;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_6___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_7___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 400;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/fonts/fonts.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,2BAA2B;EAC3B;0DACoE;EACpE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC4E;EAC5E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DACwE;EACxE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC0E;EAC1E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\".form.react.ff-react-form{\\n font-family: proxima-nova, sans-serif;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaBold/bold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaBold/bold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 700;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 600;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaMedium/medium-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaMedium/medium-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 500;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaRegular/regular-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaRegular/regular-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 400;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.f1-leading-12 {\n line-height: 2.625rem;\n}\n\n.f1-h-26 {\n height: 100px;\n}\n\n.f1-w-26 {\n width: 100px;\n}\n\n.f1-shadow-top {\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\n}\n\n.f1-max-w-65 {\n max-width: 20rem;\n}\n \n.f1-link-text a{\n color: #374151\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/styles.css\"],\"names\":[],\"mappings\":\";AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,wFAAwF;AAC1F;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE;AACF\",\"sourcesContent\":[\"\\n.f1-leading-12 {\\n line-height: 2.625rem;\\n}\\n\\n.f1-h-26 {\\n height: 100px;\\n}\\n\\n.f1-w-26 {\\n width: 100px;\\n}\\n\\n.f1-shadow-top {\\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\\n}\\n\\n.f1-max-w-65 {\\n max-width: 20rem;\\n}\\n \\n.f1-link-text a{\\n color: #374151\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export enum REDUX_KEYS {\n LOADER = \"loader\",\n PAGE_CONFIG = \"page-config\",\n}\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport type LoaderDetails = {\n label?: string;\n descriptions?: string[];\n};\n\nexport interface LoaderState extends LoaderDetails {\n loading: boolean;\n}\n\ntype ActionPayloadProps = Partial<LoaderDetails>;\n\nconst initialState: LoaderState = {\n loading: false,\n label: \"Loading...\",\n};\n\nexport const loaderSlice = createSlice({\n name: REDUX_KEYS.LOADER,\n initialState,\n reducers: {\n startLoading: (state, action: PayloadAction<ActionPayloadProps>) => {\n state.loading = true;\n state.label = action?.payload?.label ?? state.label;\n state.descriptions = action?.payload?.descriptions;\n },\n\n stopLoading: (state) => {\n state.loading = false;\n state.label = undefined;\n state.descriptions = undefined;\n },\n },\n});\n\nexport const { startLoading, stopLoading } = loaderSlice.actions;\n\nexport const selectLoading = (state: { loader: LoaderState }) => state.loader;\n\nexport default loaderSlice.reducer;\n","/**\n * Defines the structure for styles used throughout the application.\n * @typedef {Object} Styles - Tailwind+CustomStyle object.\n */\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { CSSProperties } from 'react';\n\nexport enum ConfigCSSKeys {\n wrapper = 'ff-wrapper',\n description = 'ff-description',\n instructions = 'ff-instructions',\n checkbox = 'ff-checkbox',\n label = 'ff-label',\n title = 'ff-title',\n button = 'ff-button',\n checkboxItem = 'ff-checkbox-item',\n descriptionItem = 'ff-description-item',\n instructionItem = 'ff-instruction-item',\n font = 'font'\n}\n\n// export type Styles = Partial<Record<ConfigCSSKeys, CSSProperties>>;\n\nexport type Styles<T extends ConfigCSSKeys = ConfigCSSKeys> = T extends ConfigCSSKeys.font ? Partial<Record<T, FontConfig>> : Partial<Record<T, CSSProperties>>;\n\n\nexport type FontConfig = {\n name?: string;\n url?: string;\n}\n\n/**\n * Represents the content of a page.\n * @typedef {Object} Content\n * @property {string} label - The label content.\n * @property {string} [icon] - The icon associated with the content.\n * @property {Styles} style - The styles for the content.\n */\nexport type Content = {\n icon?: string;\n label: string;\n style?: Styles;\n};\n\nexport type ListInfo = {\n label?: string;\n content: Content[];\n style?: Styles;\n};\n\n/**\n * Represents list content for a page.\n * @typedef {Object} LisContent\n * @property {boolean} [isRoundedCheckbox] - Indicates whether the list item has a circular checkbox.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the list content.\n */\ntype LisContent = ListInfo & NonNullable<unknown>;\n\ntype Checkbox = Omit<ListInfo, 'label'> & NonNullable<unknown>;\n\n/**\n * Represents ID card content for a page.\n * @typedef {Object} IdCardContent\n * @property {string} postFixIcon - The post-fix icon associated with the ID card content.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the ID card content.\n */\n\ntype IdCardContent = Content & {\n postFixIcon: string;\n};\n\n/**\n * Represents action content for a page.\n * @typedef {Object} ActionContent\n * @property {string} [redirectTo] - The URL to redirect to upon action.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the action content.\n */\n\ntype ActionContent = Content & {\n redirectTo?: string;\n};\n\n/**\n * Represents the possible types for input configuration.\n * @typedef {'label' | 'number' | 'date' | 'select' | 'multiselect' | 'textarea' | 'checkbox' | 'radio' | 'contact-number' | 'address'} InputConfigType\n */\ntype InputConfigType =\n | 'label'\n | 'number'\n | 'date'\n | 'select'\n | 'multiselect'\n | 'textarea'\n | 'checkbox'\n | 'radio'\n | 'contact-number'\n | 'address';\n\n/**\n * Represents configuration for a number input type.\n * @typedef {Object} NumberConfig\n * @property {number} [min] - The minimum value allowed.\n * @property {number} [max] - The maximum value allowed.\n */\ntype NumberConfig<NType extends InputConfigType> = {\n type: NType;\n min?: number;\n max?: number;\n};\n\n/**\n * Represents configuration for a date input type.\n * @typedef {Object} DateConfig\n * @property {number} [minDate] - The minimum date allowed.\n * @property {number} [maxDate] - The maximum date allowed.\n */\ntype DateConfig<NType extends InputConfigType> = {\n type: NType;\n minDate?: number;\n maxDate?: number | string | Date;\n};\n\n/**\n * Represents configuration for a textarea input type.\n * @typedef {Object} TextareaConfig\n * @property {number} [maxTextLimit] - The maximum label limit.\n */\ntype TextareaConfig<NType extends InputConfigType> = {\n type: NType;\n maxTextLimit?: number;\n};\n\n/**\n * Represents input configuration, with variations based on type.\n * @typedef {Object} FormField\n * @property {InputConfigType} type - Input type.\n * @property {boolean} [isRequired] - Indicates if input is required.\n * @property {boolean} [isDisabled] - Indicates if input is disabled.\n * @property {boolean} [isWordCount] - Indicates if word count is enabled for textarea.\n * @property {boolean} [isDropdownCTA] - Indicates if input has a dropdown CTA.\n * @property {boolean} [isSearchable] - Indicates if input field is searchable.\n * @property {string} [tooltip] - Tooltip text for input.\n * @property {Styles} [style] - Styles for input.\n * @property {NumberConfig} [min] - Min and max values for number type.\n * @property {DateConfig} [minDate] - Min and max dates for date type.\n * @property {TextareaConfig} [maxTextLimit] - Max label limit for textarea type.\n */\ntype FormField<NType extends InputConfigType> = {\n type: NType;\n label?: string;\n placeholder?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n isWordCount?: boolean;\n isDropdownCTA?: boolean;\n isSearchable?: boolean;\n tooltip?: string;\n style?: Styles;\n} & (NType extends 'number' ? NumberConfig<'number'> : NonNullable<unknown>) &\n (NType extends 'date' ? DateConfig<'date'> : NonNullable<unknown>) &\n (NType extends 'textarea'\n ? TextareaConfig<'textarea'>\n : NonNullable<unknown>);\n\n/**\n * Represents configuration for a static page.\n * @typedef {Object} IStaticPageConfig\n * @property {Content} title - The title of the static page.\n * @property {Content[]} descriptions - The paragraphs of the static page.\n * @property {LisContent[]} instructions - The list items of the static page.\n * @property {ActionContent} cta - The action content of the static page.\n * @property {Styles} style - The styles for the static page.\n */\ninterface IBasicInfo<NType extends ReactFormIdsKeys = ReactFormIdsKeys> extends FontConfig {\n name: NType;\n title: Content;\n descriptions: Content[];\n style?: Styles;\n}\n\n/**\n * Defines the type for instructions associated with a specific form ID.\n * @template NType - Type parameter representing the form ID.\n * @property {NType} name - The form ID.\n * @property {LisContent} [instructions] - Instructions for the form.\n */\ntype Instructions<NType extends ReactFormIdsKeys> = {\n name: NType;\n instructions?: LisContent;\n};\n\n/**\n * Defines the type for checkboxes associated with a specific form ID.\n * @template NType - Type parameter representing the form ID.\n * @typedef {object} CheckboxType\n * @property {NType} name - The form ID.\n * @property {Checkbox} checkbox - The checkbox configuration.\n */\ntype CheckboxType<NType extends ReactFormIdsKeys> = {\n name: NType;\n checkbox: Checkbox;\n};\n\n/**\n * Defines a type that represents the exclusion of a type from another.\n * @template NType - Type parameter representing the form ID.\n * @template EType - Type parameter representing the excluded form ID.\n * @typedef {Exclude<NType, EType>} Excluded\n */\ntype Excluded<\n NType extends ReactFormIdsKeys,\n EType extends ReactFormIdsKeys\n> = Exclude<NType, EType>;\n\n/**\n * Defines conditional instructions based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype ConditionalInstructions<NType extends ReactFormIdsKeys> =\n NType extends 'WELCOME' ? Instructions<'WELCOME'> : NonNullable<unknown>;\n\n/**\n * Defines conditional checkboxes based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype ConditionalCheckbox<NType extends ReactFormIdsKeys> =\n NType extends 'CONSENT' ? CheckboxType<'CONSENT'> : NonNullable<unknown>;\n\n/**\n * Defines other conditional fields based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype OtherConditionalFields<NType extends ReactFormIdsKeys> = NType extends\n | 'WELCOME'\n | 'CONSENT'\n ? NonNullable<unknown>\n : Instructions<Excluded<NType, 'WELCOME' | 'CONSENT'>> &\n CheckboxType<Excluded<NType, 'WELCOME' | 'CONSENT'>>;\n\n/**\n * Defines the type for static page configuration based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\nexport type IStaticPageConfig<\n NType extends ReactFormIdsKeys = ReactFormIdsKeys\n> = (IBasicInfo<NType> & { cta: ActionContent }) &\n (\n | ConditionalInstructions<NType>\n | ConditionalCheckbox<NType>\n | OtherConditionalFields<NType>\n )\n\n/**\n * Represents configuration for an ID card page.\n * @property {Content} title - The title of the ID card page.\n * @property {Content[]} descriptions - The paragraphs of the ID card page.\n * @property {IdCardContent[]} idCardList - The ID card list of the ID card page.\n */\nexport interface IIdCardPageConfig extends IBasicInfo {\n idCardList: IdCardContent[];\n}\n\n/**\n * Represents configuration for a progress page.\n * @typedef {Object} IProgressPageConfig\n * @property {string} icon - The icon for the progress page.\n * @property {Content} title - The title of the progress page.\n * @property {Content[]} descriptions - The paragraphs of the progress page.\n * @property {ActionContent} action - The action content of the progress page.\n * @property {Styles} style - The styles for the progress page.\n * @property {boolean} [isTransparent] - Indicates whether the progress page is transparent.\n */\nexport interface IProgressPageConfig extends IBasicInfo {\n icon: string;\n cta: ActionContent;\n isTransparent?: boolean;\n}\n\n/**\n * Represents configuration for a form page.\n * @typedef {Object} IFormPageConfig\n * @property {Content} label - The label of the form page.\n * @property {FormField[]} formFields - The form fields of the form page.\n * @property {ActionContent} cta - The action content of the form page.\n * @property {Styles} style - The styles for the form page.\n */\nexport interface IFormPageConfig extends Pick<IBasicInfo, 'name' | 'style'> {\n label: Content;\n formFields: FormField<InputConfigType>[];\n cta: ActionContent;\n}\n\n/**\n * Represents the page configuration.\n * @typedef {IStaticPageConfig | IIdCardPageConfig | IProgressPageConfig | IFormPageConfig} TPageConfig\n */\nexport type TPageConfig = Partial<\n IStaticPageConfig & IIdCardPageConfig & IProgressPageConfig & IFormPageConfig\n>;\n\n// Conditional type to extract keys based on value type\nexport type KeysMatching<T, V> = {\n [K in keyof T]: T[K] extends V ? K : never;\n}[keyof T];\n\n// ################### Example of it ###################\n\n// Mock data for page 1 (IStaticPageConfig)\nconst welcomePage = {\n name: 'WELCOME',\n title: { label: 'Welcome', style: {} },\n descriptions: [\n { label: 'This is a sample static page.', style: {} },\n { label: 'It can contain multiple paragraphs.', style: {} },\n ],\n instructions: {\n label: 'label goes here...',\n content: [\n { label: 'Item 1', style: {} },\n { label: 'Item 2', style: {} },\n ],\n },\n cta: { label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n\n// Mock data for consentPage (IStaticPageConfig)\nconst consentPage = {\n name: 'CONSENT',\n title: { label: 'Welcome', style: {} },\n descriptions: [\n { label: 'This is a sample static page.', style: {} },\n { label: 'It can contain multiple paragraphs.', style: {} },\n ],\n checkbox: {\n content: [{ label: 'Item 1', style: {} }],\n },\n cta: { label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact CONSENT component if you will be [const obj: IStaticPageConfig = { ... }]\n\n// Mock data for page 2 (IIdCardPageConfig)\nconst idCardPageConfig: IIdCardPageConfig = {\n name: 'CONSENT',\n title: { label: 'ID Card Page', style: {} },\n descriptions: [{ label: 'Details on ID cards:', style: {} }],\n idCardList: [\n { label: 'ID Card 1', style: {}, postFixIcon: 'icon1' },\n { label: 'ID Card 2', style: {}, postFixIcon: 'icon2' },\n ],\n style: {},\n};\n\n// Mock data for progress (IProgressPageConfig)\n// const progress: IProgressPageConfig = {\n// name: 'PROGRESS',\n// title: { label: 'Progress Page', style: {} },\n// descriptions: [{ label: 'Track your progress here:', style: {} }],\n// cta: { label: 'Finish', style: {} },\n// style: {},\n// icon: 'progress-icon',\n// isTransparent: true,\n// };\n\n// Mock data for formPage1 (IFormPageConfig)\n// const formPage1: IFormPageConfig = {\n// name: 'REVIEW',\n// label: { label: 'Form', style: {} },\n// formFields: [\n// {\n// type: 'number',\n// label: 'Name',\n// placeholder: 'Enter your name',\n// isRequired: true,\n// },\n// {\n// type: 'textarea',\n// label: 'Address',\n// placeholder: 'Enter your Address',\n// maxTextLimit: 100,\n// },\n// ],\n// cta: { label: 'Submit', style: {}, redirectTo: '/submit-page' },\n// style: {},\n// };\n\n// Mock data for formPage2 (IFormPageConfig)\n// const formPage2: IFormPageConfig = {\n// name: 'REVIEW2',\n// label: { label: 'Form', style: {} },\n// formFields: [\n// {\n// type: 'label',\n// label: 'Name',\n// placeholder: 'Enter your name',\n// isRequired: true,\n// },\n// {\n// type: 'date',\n// label: 'DOB',\n// placeholder: 'Enter your dob',\n// },\n// ],\n// cta: { label: 'Submit', style: {}, redirectTo: '/submit-page' },\n// style: {},\n// };\n\n/**\n * Example of an array containing page configurations.\n * @type {TPageConfig[]}\n */\nexport const pageConfigurations: TPageConfig[] = [\n welcomePage,\n consentPage,\n idCardPageConfig,\n // progress,\n // formPage1,\n // formPage2,\n];\n\n// NOTE: Simply we will pass the pageConfigurations to the component\n// and it will render the page based on the configuration.\n// it can be welcome page, consent page, progress page, form page, etc.\n","import clsx from 'clsx';\n\nimport {\n ConfigCSSKeys,\n type Content,\n type ListInfo,\n type Styles,\n} from '../../../appConfig.type';\n\nexport interface CheckboxFnProps {\n item: Content;\n isSelected: boolean;\n}\n\ninterface CheckboxProps extends ListInfo {\n content: Content[];\n style?: Styles;\n onChange?: (item: CheckboxFnProps) => void;\n}\n\nconst FrankieCheckbox = ({ content, style, onChange }: CheckboxProps) => {\n const handleCheckboxChange = (event, item: Content) => {\n onChange && onChange({ item: item, isSelected: event.target.checked });\n };\n\n return (\n <div\n className={clsx('f1-mt-5', ConfigCSSKeys.checkbox)}\n style={style?.[ConfigCSSKeys.checkbox]}\n >\n {content?.map((instruction, index) => {\n return (\n <div\n key={`f1-checkbox-${index}`}\n className={clsx(\n 'f1-flex',\n 'f1-items-center',\n ConfigCSSKeys.checkboxItem\n )}\n style={instruction?.style?.[ConfigCSSKeys.checkboxItem]}\n >\n <input\n className={clsx(\n '!f1-mr-0',\n 'f1-rounded-sm',\n '!f1-w-5',\n '!f1-h-5'\n )}\n id={`instructions-id-${index}`}\n type=\"checkbox\"\n onChange={(e) => handleCheckboxChange(e, instruction)}\n />\n <label\n htmlFor={`instructions-id-${index}`}\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-700',\n 'f1-ml-3'\n )}\n >\n {instruction.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieCheckbox;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Content } from '../../../appConfig.type';\n\ntype FrankieDescriptionProps = {\n descriptions: Content[];\n};\n\nconst FrankieDescription = ({ descriptions }: FrankieDescriptionProps) => {\n return (\n <>\n {descriptions.map((description, index) => {\n return (\n <div\n key={`f1-description-${index}`}\n className={clsx(\n 'f1-mb-2',\n 'f1-text-tertiary-grey-700',\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-link-text',\n ConfigCSSKeys.description\n )}\n style={description?.style?.[ConfigCSSKeys.description]}\n dangerouslySetInnerHTML={{ __html: description.label }}\n ></div>\n );\n })}\n </>\n );\n};\n\nexport default FrankieDescription;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Styles } from '../../../appConfig.type';\n\ntype HeadingProps = {\n label: string;\n style?: Styles;\n};\n\nconst Heading = ({ label, style }: HeadingProps) => {\n return (\n <h1\n className={clsx(\n 'f1-font-bold',\n 'f1-text-3xl',\n 'f1-leading-12',\n 'f1-text-tertiary-grey-800',\n 'f1-mb-4',\n 'f1-mt-0',\n ConfigCSSKeys.title\n )}\n style={style?.[ConfigCSSKeys.title]}\n >\n {label}\n </h1>\n );\n};\n\nexport default Heading;\n","import { EventHub } from '@module/common';\nimport { FormEvents } from '@module/form/events';\nimport { OneSdkContext } from '@module/types';\nimport { createContext } from 'react';\nimport { ConfigType } from '../App';\n\ntype EventContextType = {\n oneSDK: OneSdkContext;\n eventHub: EventHub<FormEvents>;\n config: ConfigType;\n};\n\nexport const EventContext = createContext<EventContextType | undefined>(\n undefined\n);\n","import type { consentPage } from '../features/Consent/consent.config';\nimport type { welcomePage } from '../features/Welcome/welcome.config';\nimport type { LoaderDetails } from '../redux/slices/loaderSlice';\n\nexport enum React_Form_IDS {\n WELCOME = 'welcome',\n CONSENT = 'consent',\n}\n\nexport type ReactFormIdsKeys = keyof typeof React_Form_IDS;\nexport type ReactFormIdsValues = typeof React_Form_IDS;\n\nexport type WrapperProps = {\n renderScreen: (props: {\n onValidate: (isValid: boolean) => void;\n }) => JSX.Element;\n loader?: LoaderDetails;\n onSubmit?: () => void;\n};\n\nexport type NewPageConfig = Partial<\n Record<React_Form_IDS.WELCOME, typeof welcomePage> &\n Record<React_Form_IDS.CONSENT, typeof consentPage>\n> & {\n currentModule?: React_Form_IDS;\n};\n\nexport type ModuleInfo = {\n element: () => JSX.Element;\n disabled: boolean;\n id: React_Form_IDS;\n};\n","import { EventPayload } from '@module/form/events';\nimport { modules } from '../../constants/layout-mapper.const';\nimport { NewPageConfig, React_Form_IDS } from '../../types/pages.type';\n\nexport function getEventConfig(pageConfigs: NewPageConfig): EventPayload {\n const currentModule = modules[pageConfigs.currentModule]?.id;\n const excludeTypes: React_Form_IDS[] = [React_Form_IDS.CONSENT];\n return {\n componentName: 'form',\n provider: 'react',\n inputInfo: {\n formName: currentModule,\n ...(!excludeTypes.includes(currentModule) && { type: 'ocr' }),\n },\n };\n}\n","import clsx from 'clsx';\n\nexport const BaseButton = ({ className, disabled, ...props }: {\n className: string;\n disabled: boolean;\n}) => {\n return (\n <button\n disabled={disabled}\n className={clsx(\n 'f1-flex',\n 'f1-flex-initial',\n 'f1-font-semibold',\n 'f1-items-center',\n 'f1-justify-center',\n 'f1-border-none',\n 'f1-outline',\n 'f1-outline-0',\n 'focus-visible:f1-outline-3',\n 'active:f1-outline-3',\n 'disabled:f1-text-tertiary-grey-400',\n 'disabled:f1-outline-0',\n 'f1-h-12',\n 'f1-w-full',\n 'f1-text-md',\n 'f1-space-x-2',\n 'f1-px-5',\n 'f1-py-3',\n 'f1-rounded-full',\n 'f1-text-mono-white',\n 'f1-bg-primary-800',\n 'hover:f1-bg-primary-900',\n 'focus-visible:f1-bg-primary-900',\n 'active:f1-bg-primary-900',\n 'disabled:f1-bg-tertiary-grey-200',\n 'f1-outline-primary-200',\n disabled ? 'f1-cursor-not-allowed' : 'f1-cursor-pointer',\n className,\n )}\n {...props}\n />\n );\n};\n","import { BaseButton } from './BaseButton';\n\nexport const FrankieButton = ({ className, disabled, ...props }) => {\n return <BaseButton className={className} disabled={disabled} {...props} />;\n};\n","import clsx from 'clsx';\nimport { useContext, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../../appConfig.type';\nimport { modules } from '../../../constants/layout-mapper.const';\nimport { EventContext } from '../../../hooks/useEventContext';\nimport { getEventConfig } from '../../../layout/Main/utils';\nimport { selectPageConfig } from '../../../redux/slices/moduleSlice';\nimport { FrankieButton } from '../../base';\n\nimport type { ModuleInfo, WrapperProps } from '../../../types/pages.type';\n\nconst Wrapper = ({ renderScreen, onSubmit }: WrapperProps) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const [currModule, setModule] = useState<ModuleInfo>(\n modules[pageConfigs.currentModule],\n );\n\n useEffect(() => {\n setModule(modules[pageConfigs.currentModule]);\n }, [pageConfigs]);\n\n const { eventHub } = useContext(EventContext);\n\n /**\n * load the next module when the current module is ready\n * Emit event builtin_ready to OneSDK when the form is ready,\n * and dispatch stopLoading action to hide the loader\n */\n const handleSubmit = () => {\n onSubmit && onSubmit();\n\n eventHub.emit('builtin_ready', getEventConfig(pageConfigs));\n };\n\n const onValidate = (isValid: boolean) => {\n setModule((prevModule) => ({\n ...prevModule,\n disabled: !isValid,\n }));\n };\n\n const configInfo = pageConfigs[pageConfigs.currentModule];\n\n return (\n <>\n <div\n className={clsx(\n 'f1-py-[49px]',\n 'f1-px-3xl',\n 'tablet:f1-px-0',\n 'tablet:f1-pt-[64px]',\n 'tablet:f1-pb-4xl',\n )}\n >\n {renderScreen({ onValidate })}\n </div>\n <div\n className={clsx(\n 'f1-left-0',\n 'f1-right-0',\n 'f1-bottom-0',\n 'f1-p-6',\n 'tablet:f1-pt-0',\n 'tablet:f1-mb-[120px]',\n 'f1-shadow-top',\n 'tablet:!f1-shadow-none',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-sticky',\n 'tablet:f1-static',\n 'f1-bg-mono-white',\n )}\n >\n <FrankieButton\n disabled={currModule?.disabled}\n onClick={handleSubmit}\n className={clsx(\n 'f1-w-full',\n 'tablet:f1-w-auto',\n 'tablet:f1-min-w-[210px]',\n 'f1-h-auto',\n ConfigCSSKeys.button,\n )}\n style={configInfo?.cta?.style?.[ConfigCSSKeys.button]}\n >\n {configInfo?.cta?.icon}\n {configInfo?.cta?.label}\n </FrankieButton>\n </div>\n </>\n );\n};\n\nexport default Wrapper;\n","import clsx from \"clsx\";\n\nexport const icons = {\n loader: (\n <svg\n aria-hidden=\"true\"\n className={clsx(\n \"f1-inline\",\n \"f1-animate-spin\",\n \"f1-fill-primary-600\",\n \"f1-h-24\",\n \"f1-w-24\"\n )}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"#e5e7eb\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n ),\n checkbox: (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#1D54F8\" />\n <path\n d=\"M18 8.66656L9.99998 16.6666L6.33331 12.9999L7.27331 12.0599L9.99998 14.7799L17.06 7.72656L18 8.66656Z\"\n fill=\"white\"\n />\n </svg>\n ),\n};\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type ListInfo } from '../../../appConfig.type';\nimport { icons } from '../../../constants/icons';\n\ninterface InstructionProps extends ListInfo {}\n\nconst FrankieInstructionList = ({\n content,\n label,\n style,\n}: InstructionProps) => {\n return (\n <div\n className={clsx(\n 'f1-text-tertiary-grey-700',\n 'f1-mt-[32px]',\n ConfigCSSKeys.instructions\n )}\n style={style?.[ConfigCSSKeys.instructions]}\n >\n <p\n className={clsx(\n 'f1-font-semibold',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-mb-4',\n 'f1-text-tertiary-grey-700'\n )}\n >\n {label}\n </p>\n {content?.map((instruction, index) => {\n return (\n <div\n key={`instructions-list-${index}`}\n className={clsx(\n 'f1-flex',\n 'f1-items-start',\n 'f1-mb-4',\n ConfigCSSKeys.instructionItem\n )}\n style={instruction?.style?.[ConfigCSSKeys.instructionItem]}\n >\n <div className={clsx('f1-pr-3')}>\n {instruction?.icon ?? icons.checkbox}\n </div>\n <div\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-800',\n 'f1-text-left',\n 'f1-link-text'\n )}\n dangerouslySetInnerHTML={{ __html: instruction.label }}\n ></div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieInstructionList;\n","import Consent from \"../features/Consent/Consent\";\nimport { consentPage } from \"../features/Consent/consent.config\";\nimport Welcome from \"../features/Welcome/Welcome\";\nimport { welcomePage } from \"../features/Welcome/welcome.config\";\nimport { React_Form_IDS } from \"../types/pages.type\";\n\nimport type { ModuleInfo, NewPageConfig } from \"../types/pages.type\";\n\nexport const modules: Partial<Record<React_Form_IDS, ModuleInfo>> = {\n [React_Form_IDS.WELCOME]: {\n element: Welcome,\n disabled: false,\n id: React_Form_IDS.WELCOME,\n },\n [React_Form_IDS.CONSENT]: {\n element: Consent,\n disabled: true,\n id: React_Form_IDS.CONSENT,\n },\n};\n\nexport const pagesConfig = {\n [React_Form_IDS.WELCOME]: welcomePage,\n [React_Form_IDS.CONSENT]: consentPage,\n} satisfies NewPageConfig;\n","import { useSelector } from 'react-redux';\n\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport FrankieInstructionList from '../../components/view/FrankieInstructionList/FrankieInstructionList';\n\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\n\nconst Welcome = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.WELCOME];\n\n return (\n <Wrapper\n renderScreen={() => {\n return (\n <>\n <Heading label={config.title?.label} style={config?.title?.style} />\n <FrankieDescription descriptions={config.descriptions} />\n <FrankieInstructionList {...config?.instructions} />\n </>\n );\n }}\n />\n );\n};\n\nexport default Welcome;\n","import { useContext } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport FrankieCheckbox from '../../components/view/FrankieCheckbox/FrankieCheckbox';\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { EventContext } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { CheckboxFnProps } from '../../components/view/FrankieCheckbox/FrankieCheckbox';\n\nconst Consent = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.CONSENT];\n\n const eventContext = useContext(EventContext);\n const { oneSDK } = eventContext;\n const individual = oneSDK.individual();\n\n const handleSubmit = () => {\n const allConsent: string[] = individual.access('consentsGiven').getValue();\n const myConsent: string[] = ['general', 'docs', 'creditheader'];\n myConsent.forEach((consent) => {\n if (!allConsent.includes(consent)) {\n individual.addConsent(consent);\n }\n });\n };\n\n return (\n <Wrapper\n renderScreen={({ onValidate }) => {\n const handleChange = (selectedItem: CheckboxFnProps) => {\n onValidate(selectedItem.isSelected);\n };\n\n return (\n <>\n <Heading label={config.title.label} style={config.title?.style} />\n <FrankieDescription descriptions={config?.descriptions} />\n <FrankieCheckbox\n content={config.checkbox?.content}\n style={config.checkbox?.style}\n onChange={handleChange}\n />\n </>\n );\n }}\n onSubmit={handleSubmit}\n />\n );\n};\n\nexport default Consent;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { pagesConfig } from \"../../constants/layout-mapper.const\";\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { NewPageConfig } from \"../../types/pages.type\";\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport interface PageConfigState {\n pageConfigs: NewPageConfig;\n}\n\nconst initialState: PageConfigState = {\n pageConfigs: pagesConfig,\n};\n\nconst pageConfigSlice = createSlice({\n name: REDUX_KEYS.PAGE_CONFIG,\n initialState,\n reducers: {\n addPageConfig: (state, action: PayloadAction<NewPageConfig>) => {\n state.pageConfigs = { ...state.pageConfigs, ...action.payload };\n },\n },\n});\n\nexport const { addPageConfig } = pageConfigSlice.actions;\n\nexport const selectPageConfig = (state: {\n [REDUX_KEYS.PAGE_CONFIG]: PageConfigState;\n}) => state[REDUX_KEYS.PAGE_CONFIG];\n\nexport default pageConfigSlice.reducer;\n","import type { IStaticPageConfig } from './welcome.type';\n\nexport const welcomePage = {\n name: 'WELCOME',\n title: { label: `Let's verify your identity`, style: {} },\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. It’s important you enter your details as accurately as possible.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n label:\n 'An ID on you (this could be a driver’s licence, passport or Medicare card',\n style: {},\n },\n {\n label:\n 'Grant access permission on the camera of your phone so we can capture your ID ',\n style: {},\n },\n {\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder.',\n style: {},\n },\n ],\n },\n cta: { icon: '', label: 'Start identification verification', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n","import type IStaticPageConfig from './consent.types';\n\nexport const consentPage = {\n name: 'CONSENT',\n title: { label: 'Your consent matters', style: {} },\n descriptions: [\n {\n label:\n `Your personal information being collected and used in accordance with FrankieOne's <a href=\"https://www.frankieone.com/privacy\" target=\"_blank\">Privacy Policy</a>.`,\n style: {},\n },\n {\n label:\n 'In addition, for the purposes of verifying your identity, you consent to: a) the verification of my personal information with credit bureau header files (for verification only); b) against records held by official document issues or official record holders via third party systems; and c) verification agent(s) acting as a nominated intermediary in accordance with Australian Privacy Principles.',\n style: {},\n },\n {\n label:\n 'You consent to the use by third parties of the results of any verification checks on my identity for the purposes of monitoring and improving their verification services.',\n style: {},\n },\n ],\n checkbox: {\n content: [\n {\n label: 'I have read and agree the above disclosure',\n style: {},\n },\n ],\n style: {},\n },\n cta: { icon: '', label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact consent component if you will be [const obj: IStaticPageConfig = { ... }]\n","import { configureStore } from '@reduxjs/toolkit';\n\nimport { REDUX_KEYS } from './constants/stateKey.enum';\nimport loaderReducer from './slices/loaderSlice';\nimport pagesConfigReducer from './slices/moduleSlice';\n\n\nexport const store = configureStore({\n reducer: {\n [REDUX_KEYS.LOADER]: loaderReducer,\n [REDUX_KEYS.PAGE_CONFIG]: pagesConfigReducer,\n },\n});\n","import clsx from 'clsx';\nimport { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { icons } from '../../../constants/icons';\nimport { selectLoading } from '../../../redux/slices/loaderSlice';\n\nconst Loader = () => {\n const loadingState = useSelector(selectLoading);\n const { label, descriptions, loading } = loadingState;\n const renderDescription = useCallback(\n (description: string, idx: number) => (\n <div key={`fallback-list-${idx}`} className=\"f1-mb-1\">\n {description}\n </div>\n ),\n []\n );\n\n if (!loading) return null;\n\n return (\n <div\n className={clsx(\n 'f1-fixed',\n 'f1-top-0',\n 'f1-left-0',\n 'f1-text-tertiary-grey-800',\n 'f1-w-full',\n 'f1-h-full',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-items-center',\n 'f1-absolute',\n 'f1-z-50',\n 'f1-bg-mono-white'\n )}\n >\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-content-center',\n 'f1-items-center',\n 'f1-w-56',\n 'f1-text-center'\n )}\n >\n {icons.loader}\n <div className={clsx('f1-font-bold', 'f1-mt-3')}>{label}</div>\n <div className={clsx('f1-mt-2', 'f1-text-ter')}>\n {descriptions?.map(renderDescription)}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Loader;\n","import clsx from 'clsx';\nimport { useContext, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../appConfig.type';\nimport Loader from '../../components/view/Loader/Loader';\nimport { modules } from '../../constants/layout-mapper.const';\nimport { EventContext } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\n\nimport { getEventConfig } from './utils';\n\nconst MainLayout = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const { eventHub } = useContext(EventContext);\n\n useEffect(() => {\n if (pageConfigs.currentModule) {\n eventHub.emit('builtin_loaded', getEventConfig(pageConfigs));\n }\n }, [pageConfigs]);\n\n const ActiveComponent = modules[pageConfigs.currentModule]?.element;\n\n if (!ActiveComponent) return null;\n\n return (\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-justify-between',\n 'tablet:f1-justify-normal',\n 'f1-h-full',\n 'f1-w-full',\n 'tablet:f1-max-w-[442px]',\n ConfigCSSKeys.wrapper\n )}\n style={\n pageConfigs[pageConfigs.currentModule]?.style?.[ConfigCSSKeys.wrapper]\n }\n >\n <ActiveComponent />\n <Loader />\n </div>\n );\n};\n\nexport default MainLayout;\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { MainLayout } from '../../layout';\nimport {\n addPageConfig,\n selectPageConfig,\n} from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { ConfigType } from '../../App';\nimport type { NewPageConfig } from '../../types/pages.type';\n\nconst ScreenWrapper = ({ config }: { config: Partial<ConfigType> }) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const dispatch = useDispatch();\n\n const currModuleName = React_Form_IDS[config?.name] ?? React_Form_IDS.WELCOME;\n\n useEffect(() => {\n dispatch(\n addPageConfig({\n currentModule: currModuleName,\n [currModuleName]: mergeAndReplace(\n pageConfigs[currModuleName] as NewPageConfig,\n getFilteredConfig({ pageConfigs, currModuleName, config })\n ),\n })\n );\n }, []);\n\n return <MainLayout />;\n};\n\n/**\n *\n * @param defaultConfig if we have => { name:default, descriptions: [ { ..default.. }, { ..default.. }, { ..default.. } ], checkbox: {label:default, content: [...default,...default]}})\n * @param newConfig we need to replace & merge => { descriptions: [ { ..new.. }, { ..new.. }, ],checkbox: {content: [...new]})\n * @returns then it will return newConfig: { name:default, descriptions: [ { ..new.. }, { ..new.. } ], checkbox: {label:default, content: [...new]}})\n */\nfunction mergeAndReplace(\n defaultConfig: NewPageConfig,\n newConfig: NewPageConfig\n): NewPageConfig {\n const mergedConfig = { ...defaultConfig };\n\n // Merge newConfig with defaultConfig and replace arrays if needed\n for (const key in newConfig) {\n if (Array.isArray(defaultConfig[key]) && newConfig[key]) {\n mergedConfig[key] = newConfig[key];\n } else if (typeof newConfig[key] === 'object') {\n mergedConfig[key] = { ...mergedConfig[key], ...newConfig[key] };\n } else {\n mergedConfig[key] = newConfig[key];\n }\n }\n\n return mergedConfig;\n}\n\n/**\n *\n * @param required arguments to filter the config object\n * @returns return filter the config object based on the current module\n */\nfunction getFilteredConfig({\n pageConfigs,\n currModuleName,\n config,\n}: {\n pageConfigs: NewPageConfig;\n currModuleName: React_Form_IDS;\n config: Partial<ConfigType>;\n}): NewPageConfig {\n const currentKeys = Object.keys(pageConfigs[currModuleName]);\n const filteredConfig = Object.keys(config).reduce((acc, key) => {\n if (currentKeys.includes(key)) {\n acc[key] = config[key];\n }\n return acc;\n }, {});\n\n return filteredConfig;\n}\n\nexport default ScreenWrapper;\n","import { Provider } from 'react-redux';\n\nimport type { EventHub } from '@module/common';\nimport type { OneSdkContext } from '@module/types';\n\n// redux store is required to initialise first\n// eslint-disable-next-line import/order\nimport { store } from './redux/store';\nimport { EventContext } from './hooks/useEventContext';\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { PartialObjectDeep } from 'type-fest/source/partial-deep';\nimport ScreenWrapper from './pages/ScreenWrapper/ScreenWrapper';\n\nexport type ScreenInfo = {\n name: ReactFormIdsKeys;\n};\n\nexport type ConfigType = PartialObjectDeep<\n PartialObjectDeep<ScreenInfo, Record<string, never>>,\n Record<string, never>\n> &\n ScreenInfo;\n\nexport interface AppProps {\n oneSDK: OneSdkContext;\n eventHub: EventHub;\n config: ConfigType;\n}\n\nconst App = ({ oneSDK, eventHub, config }: AppProps) => {\n return (\n <Provider store={store}>\n <EventContext.Provider value={{ oneSDK, eventHub, config }}>\n <ScreenWrapper config={config} />\n </EventContext.Provider>\n </Provider>\n );\n};\n\nexport default App;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { CSSProperties } from 'react';\n\nexport const formStyle: CSSProperties = {\n height: '100%',\n textAlign: 'left',\n background: 'white',\n display: 'flex',\n justifyContent: 'center',\n overflow: 'auto',\n};\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nimport { feat } from '@feature-flags';\nimport { loadAsyncAsset } from '@module/common';\nimport { defineWrapper } from '@module/common/modules/defineModule';\nimport type { FormModule } from '@module/form/definition';\n\nimport App from './App';\n\nimport '../../../../styles/f1-style.css';\nimport '../../../../styles/fonts/fonts.css';\nimport '../../../../styles/styles.css';\nimport { formStyle } from './constants/styles.const';\n\nimport type { FontConfig } from './appConfig.type';\n\n// Classlist for the form container\nconst CONTAINER_CLASSLIST = ['form', 'react', 'ff-react-form'];\n\nexport const initialise = defineWrapper<FormModule>(\n 'react',\n async (shared, options) => {\n const { mountElement, eventHub } = options;\n const {\n oneSdkInstance,\n localEventHub,\n recipe: { form: { provider } },\n } = shared;\n // Retrieving the screen info from the recipe, default to WELCOME\n const config = provider.name === 'react' && provider?.config;\n\n try {\n // Clearing the mount element before attaching the form\n mountElement.innerHTML = '';\n\n // Adding specified class list to the mount element\n mountElement.classList.add(...CONTAINER_CLASSLIST);\n\n // Load font dynamically based on config\n const {\n name: fontName,\n url: fontUrl,\n } = config?.style?.['font'] as FontConfig ?? {};\n\n await downloadFont(fontUrl);\n\n // Retrieving the wrapping mode from the feature flag\n const wrappingMode = feat('modules.form.wrappingMode');\n\n // Dynamically attaching the required elements based on wrapping mode\n const [styledMountElement, wrapperElement, _windowContainer] =\n await ((): Promise<[HTMLElement, Node, Window]> => {\n if (wrappingMode === 'shadow')\n return attachShadow(mountElement, fontName);\n return attachDiv(mountElement, fontName);\n })();\n\n // Rendering the React app using styledMountElement\n const reactRoot = ReactDOM.createRoot(styledMountElement);\n reactRoot.render(\n <React.StrictMode>\n <App oneSDK={oneSdkInstance} eventHub={eventHub} config={config} />\n </React.StrictMode>,\n );\n\n // Emitting a 'loaded' event after rendering\n eventHub.emit('loaded', {\n //TODO: make domElement take Node instead of HTMLElement\n domElement: wrapperElement as HTMLElement,\n provider: 'react',\n });\n\n // We are removing the previous instance of the form and cleaning up\n eventHub.on('builtin_ready', (payload) => {\n mountElement.innerHTML = '';\n reactRoot.unmount();\n // escalate private events to component events\n localEventHub.emit('builtin_ready', payload);\n });\n } catch (error) {\n // Emitting a 'failed_loading' event in case of an error\n eventHub.emit('builtin_failed_loading', { message: error });\n }\n\n return {\n cleanup: () => {\n },\n };\n },\n);\n\nconst downloadFont = async (fontUrl: string) => {\n if (fontUrl) {\n const isFontLoaded = Array.from(\n document.querySelectorAll('link[rel=\"stylesheet\"]'),\n ).some((link: HTMLLinkElement) => link?.href === fontUrl);\n\n // Load font if it's not already loaded\n if (!isFontLoaded) {\n await loadAsyncAsset(fontUrl, 'style');\n }\n }\n};\n\nconst attachStyles = (mountElement: HTMLElement, fontName?: string) => {\n // Creating an internal mount element as a child of the provided mount element\n const internalMountElement = document.createElement('div');\n mountElement.appendChild(internalMountElement);\n Object.assign(internalMountElement.style, {\n ...formStyle,\n ...(fontName && { fontFamily: fontName }),\n });\n return internalMountElement;\n};\n\n// Function to attach the mount element to a div\nconst attachDiv = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, mountElement, window];\n};\n\n// Function to attach the mount element to a shadow root\nconst attachShadow = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n // Creating a shadow root for the provided mount element\n const shadowRoot = mountElement.attachShadow({ mode: 'open' });\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, shadowRoot, window];\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","REDUX_KEYS","loaderSlice","name","LOADER","initialState","loading","label","reducers","startLoading","state","action","payload","descriptions","stopLoading","undefined","actions","selectLoading","loader","ConfigCSSKeys","content","style","onChange","className","clsx","checkbox","map","instruction","index","checkboxItem","type","e","item","isSelected","target","checked","htmlFor","description","dangerouslySetInnerHTML","__html","title","EventContext","createContext","React_Form_IDS","getEventConfig","pageConfigs","currentModule","modules","excludeTypes","CONSENT","componentName","provider","inputInfo","formName","includes","BaseButton","disabled","props","FrankieButton","renderScreen","onSubmit","selectPageConfig","currModule","setModule","useState","useEffect","eventHub","useContext","configInfo","onValidate","isValid","prevModule","onClick","emit","button","cta","icon","icons","viewBox","fill","xmlns","d","width","height","rx","instructions","instructionItem","WELCOME","element","config","eventContext","oneSDK","individual","selectedItem","allConsent","access","getValue","forEach","consent","addConsent","pageConfigSlice","PAGE_CONFIG","addPageConfig","store","reducer","loadingState","renderDescription","useCallback","idx","ActiveComponent","wrapper","mergeAndReplace","defaultConfig","newConfig","mergedConfig","key","Array","isArray","getFilteredConfig","currModuleName","currentKeys","Object","keys","reduce","acc","dispatch","Provider","value","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","formStyle","textAlign","background","display","justifyContent","overflow","CONTAINER_CLASSLIST","initialise","shared","mountElement","oneSdkInstance","localEventHub","recipe","form","innerHTML","classList","add","fontName","url","fontUrl","downloadFont","wrappingMode","styledMountElement","wrapperElement","_windowContainer","attachShadow","attachDiv","reactRoot","render","domElement","on","unmount","error","message","cleanup","from","document","querySelectorAll","some","link","href","loadAsyncAsset","attachStyles","internalMountElement","createElement","appendChild","assign","fontFamily","window","shadowRoot","mode"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[192],{1272:(e,n,t)=>{t.d(n,{g6:()=>c,ai:()=>l,Yv:()=>a});var o=t(4334),r=t(6604),i=t(4527);const c=(e,{eventHub:n,entityId:t})=>{let c=!1;const s=["InternalServerError","skip","OSVersionNotSupported","browserNotSupported"];return{biometrics:{onLog:({type:e})=>{"noAttemps"===e&&(c=!0)},onError:({type:e,payload:i})=>{c?n.emit("detection_failed",{message:null==i?void 0:i.message}):"permissionDenied"===e?n.emit("input_required",{entityId:t},r.Yt.INTERRUPTED):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:i}))}},ocr:{onLog:({type:e,payload:t})=>{["IDNotDetected","nothingHappened","manualCaptureOn","successCapture","attemptFailed","success"].includes(e)?n.emit("info",{message:null==t?void 0:t.message,payload:{type:e}}):"noAttemps"===e&&(c=!0)},onError:({type:e,payload:t})=>{c?n.emit("detection_failed",{message:null==t?void 0:t.message}):"permissionDenied"===e?n.emit("input_required",{documentType:null,side:"front"},i.By.INTERRUPTED,(()=>({}))):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:t}))}}}[e]};var s=function(e,n,t,o){return new(t||(t=Promise))((function(r,i){function c(e){try{a(o.next(e))}catch(e){i(e)}}function s(e){try{a(o.throw(e))}catch(e){i(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}a((o=o.apply(e,n||[])).next())}))};const a=(e,n)=>s(void 0,void 0,void 0,(function*(){if("ocr"===e)return yield d("front",Object.assign(Object.assign({},n),{onSuccess:e=>s(void 0,[e],void 0,(function*({skipBackIdCapture:e}){e?null==n||n.onSuccess({}):yield d("back",n)}))}));if("biometrics"===e)return yield d("selfie",n);throw new o.OneSDKError("Unknown purpose",{purpose:e})})),d=(e,n)=>s(void 0,void 0,void 0,(function*(){const{incode:t,token:r,eventHub:i,mountElement:c,onSuccess:a=(()=>({})),onError:d,onLog:u}=n;return new Promise(((n,l)=>{try{t.renderCamera(e,c,{onSuccess:e=>s(void 0,void 0,void 0,(function*(){return a(e),n({})})),onError:e=>(d(e),l(e)),onLog:e=>{u(e)},token:r,numberOfTries:3})}catch(e){const{message:n=""}=e;return i.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{message:n})),l(e)}}))}));var u=function(e,n,t,o){return new(t||(t=Promise))((function(r,i){function c(e){try{a(o.next(e))}catch(e){i(e)}}function s(e){try{a(o.throw(e))}catch(e){i(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}a((o=o.apply(e,n||[])).next())}))};const l=e=>u(void 0,[e],void 0,(function*({apiURL:e,sdkVersion:n="1.69.1"}){return yield(0,o.loadAsyncAsset)(`https://sdk.incode.com/sdk/onBoarding-${n}.js`),{incode:yield m({apiURL:`${e}/0/`})}})),m=e=>u(void 0,[e],void 0,(function*({apiURL:e}){const n=window.OnBoarding.create({apiURL:e});return yield n.warmup(),n}))},6164:(e,n,t)=>{t.r(n),t.d(n,{initialise:()=>u});var o=t(591),r=t(4334),i=t(5473),c=t(1272),s=t(9188),a=t(6151),d=t(4576);const u=(0,i.f)("incode",((e,n)=>{return t=void 0,i=void 0,l=function*(){const{frankieClient:t,recipe:{ocr:{provider:i}},localEventHub:u}=e,{mountElement:l,eventHub:m}=n,v=new s.Ns(t),p=yield(0,a.j)(v,m);if(!p)return void u.emit("loading",!1,{message:"Failed while loading session for vendor 'Incode'"});const{vendorParameters:f}=p;try{const{apiURL:t,token:r,interviewId:s}=f,{incode:a}=yield(0,c.ai)({apiURL:t,sdkVersion:"incode"===i.name&&i.sdkVersion}),{onLog:u,onError:v}=(0,c.g6)("ocr",{eventHub:m}),p={incode:a,token:{token:r,interviewId:s},eventHub:m,mountElement:l,onError:v,onLog:u},y=(0,c.Yv)("ocr",Object.assign(Object.assign({},p),{onSuccess:()=>{m.emit("session_closed"),(0,d.K)(e,Object.assign(Object.assign({},n),{attachReviewScreen:!(0,o.T)("modules.ocr.containsReviewScreen.incode")}))}}));m.emit("ready",{domElement:l}),m.emit("loading",!1,{message:"Vendor 'Incode' screen has loaded"}),yield y}catch(e){const{type:n=null,message:t=""}=e;m.emit("error",new r.OneSDKError("Error from vendor SDK 'Incode'",{type:n,message:t})),m.emit("loading",!1,{message:"Failed while executing vendor 'Incode'"})}return{}},new((u=void 0)||(u=Promise))((function(e,n){function o(e){try{c(l.next(e))}catch(e){n(e)}}function r(e){try{c(l.throw(e))}catch(e){n(e)}}function c(n){var t;n.done?e(n.value):(t=n.value,t instanceof u?t:new u((function(e){e(t)}))).then(o,r)}c((l=l.apply(t,i||[])).next())}));var t,i,u,l}))},6151:(e,n,t)=>{t.d(n,{j:()=>o});const o=(e,n)=>{return t=void 0,o=void 0,i=function*(){try{const{entityId:t,token:o,vendorParameters:r}=yield e.getToken();return n.emit("session_data_generated",{session:{entityId:t,token:o,vendorParameters:r}}),{entityId:t,token:o,vendorParameters:r}}catch(e){const{code:t=null,message:o=""}=e;return n.emit("session_data_failed_loading",{code:t,message:o}),null}},new((r=void 0)||(r=Promise))((function(e,n){function c(e){try{a(i.next(e))}catch(e){n(e)}}function s(e){try{a(i.throw(e))}catch(e){n(e)}}function a(n){var t;n.done?e(n.value):(t=n.value,t instanceof r?t:new r((function(e){e(t)}))).then(c,s)}a((i=i.apply(t,o||[])).next())}));var t,o,r,i}},4576:(e,n,t)=>{t.d(n,{K:()=>d});var o=t(591),r=t(4334),i=t(846),c=t(325),s=t(9255),a=t(4527);const d=(e,n)=>{return t=void 0,d=void 0,l=function*(){var t,d;const{frankieClient:u,oneSdkInstance:l,localEventHub:m}=e;try{const v=new c.UZ(u);m.emit("loading",!0,{message:"Retrieving IDV results"});let p=yield v.attachNewOCRDocument();p.documentStatus===a.By.WAITING_OCR_RUN&&(p=yield v.rerun(p.ocrDocument.documentId)),yield l.individual().search();const{ocrDocument:f,documentStatus:y}=p,g=null!==(t=s.p[y])&&void 0!==t?t:s.p.default,w=(0,r.mkEventHub)(),h=n.mountElement,E=null!==(d=e.recipe.ocr.provideReviewScreen)&&void 0!==d?d:(0,o.T)("recipeDefaults.ocr.provideReviewScreen");w.on("results",(0,i.n)({localEventHub:m,mountElement:h,oneSdkInstance:l,attachForm:E&&n.attachReviewScreen})),w.map(["input_required","error"],m),g({ocrDocument:f,documentStatus:y,ocrClient:v,eventHub:w})}catch(e){m.emit("error",new r.OneSDKError("Failed submitting and retrieving OCR results",e)),m.emit("loading",!1,{message:"Failed retrieving OCR results"})}},new((u=void 0)||(u=Promise))((function(e,n){function o(e){try{i(l.next(e))}catch(e){n(e)}}function r(e){try{i(l.throw(e))}catch(e){n(e)}}function i(n){var t;n.done?e(n.value):(t=n.value,t instanceof u?t:new u((function(e){e(t)}))).then(o,r)}i((l=l.apply(t,d||[])).next())}));var t,d,u,l}},9255:(e,n,t)=>{t.d(n,{p:()=>i});var o=t(6604),r=t(4334);const i={[o.By.COMPLETE]:({ocrDocument:e,ocrClient:n,eventHub:t})=>t.emit("results",{document:e,entityId:n.entityId}),[o.By.WAITING_OCR_RUN]:({eventHub:e})=>{e.emit("error",new r.OneSDKError(`Two attempts to get OCR results failed with an unresolved "${o.By.WAITING_OCR_RUN}". This is a system failure.`,{payload:null}))},[o.By.PROVIDER_OFFLINE]:({eventHub:e})=>e.emit("error",new r.OneSDKError(`Provider is offline. Either switch providers and restart or skip OCR temporarily. Status ${o.By.PROVIDER_OFFLINE}`,{payload:null})),default:({documentStatus:e,eventHub:n})=>n.emit("input_required",{documentType:null,side:"front"},e,(()=>({})))}}}]);
1
+ "use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[192],{1272:(e,n,t)=>{t.d(n,{g6:()=>c,ai:()=>l,Yv:()=>d});var o=t(4334),r=t(6604),i=t(4527);const c=(e,{eventHub:n,entityId:t})=>{let c=!1;const s=["InternalServerError","skip","OSVersionNotSupported","browserNotSupported"];return{biometrics:{onLog:({type:e})=>{"noAttemps"===e&&(c=!0)},onError:({type:e,payload:i})=>{c?n.emit("detection_failed",{message:null==i?void 0:i.message}):"permissionDenied"===e?n.emit("input_required",{entityId:t},r.Yt.INTERRUPTED):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:i}))}},ocr:{onLog:({type:e,payload:t})=>{["IDNotDetected","nothingHappened","manualCaptureOn","successCapture","attemptFailed","success"].includes(e)?n.emit("info",{message:null==t?void 0:t.message,payload:{type:e}}):"noAttemps"===e&&(c=!0)},onError:({type:e,payload:t})=>{c?n.emit("detection_failed",{message:null==t?void 0:t.message}):"permissionDenied"===e?n.emit("input_required",{documentType:null,side:"front"},i.By.INTERRUPTED,(()=>({}))):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:t}))}}}[e]};var s=function(e,n,t,o){return new(t||(t=Promise))((function(r,i){function c(e){try{d(o.next(e))}catch(e){i(e)}}function s(e){try{d(o.throw(e))}catch(e){i(e)}}function d(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const d=(e,n)=>s(void 0,void 0,void 0,(function*(){if("ocr"===e)return yield a("front",Object.assign(Object.assign({},n),{onSuccess:e=>s(void 0,[e],void 0,(function*({skipBackIdCapture:e,typeOfId:t,countryCode:o}){var r,i;(null===(r=null==n?void 0:n.validate)||void 0===r?void 0:r.call(n,{typeOfId:t,countryCode:o}))&&(e?null===(i=null==n?void 0:n.onSuccess)||void 0===i||i.call(n,{}):yield a("back",n))}))}));if("biometrics"===e)return yield a("selfie",n);throw new o.OneSDKError("Unknown purpose",{purpose:e})})),a=(e,n)=>s(void 0,void 0,void 0,(function*(){const{incode:t,token:r,eventHub:i,mountElement:c,onSuccess:d=(()=>({})),onError:a,onLog:u}=n;return new Promise(((n,l)=>{try{t.renderCamera(e,c,{onSuccess:e=>s(void 0,void 0,void 0,(function*(){return d(e),n({})})),onError:e=>(a(e),l(e)),onLog:e=>{u(e)},token:r,numberOfTries:3})}catch(e){const{message:n=""}=e;return i.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{message:n})),l(e)}}))}));var u=function(e,n,t,o){return new(t||(t=Promise))((function(r,i){function c(e){try{d(o.next(e))}catch(e){i(e)}}function s(e){try{d(o.throw(e))}catch(e){i(e)}}function d(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const l=e=>u(void 0,[e],void 0,(function*({apiURL:e,sdkVersion:n="1.69.1"}){return yield(0,o.loadAsyncAsset)(`https://sdk.incode.com/sdk/onBoarding-${n}.js`),{incode:yield v({apiURL:`${e}/0/`})}})),v=e=>u(void 0,[e],void 0,(function*({apiURL:e}){const n=window.OnBoarding.create({apiURL:e});return yield n.warmup(),n}))},6164:(e,n,t)=>{t.r(n),t.d(n,{initialise:()=>l});var o=t(591),r=t(6604),i=t(4334),c=t(5473),s=t(1272),d=t(9188),a=t(6151),u=t(4576);const l=(0,c.f)("incode",((e,n)=>{return t=void 0,c=void 0,m=function*(){const{frankieClient:t,recipe:{ocr:{documents:c,provider:l}},localEventHub:m}=e,{mountElement:p,eventHub:y}=n,f=new d.Ns(t),g=yield(0,a.j)(f,y);if(!g)return void m.emit("loading",!1,{message:"Failed while loading session for vendor 'Incode'"});const{vendorParameters:w}=g;try{const{apiURL:t,token:i,interviewId:d}=w,{incode:a}=yield(0,s.ai)({apiURL:t,sdkVersion:"incode"===l.name&&l.sdkVersion}),{onLog:m,onError:f}=(0,s.g6)("ocr",{eventHub:y}),g={incode:a,token:{token:i,interviewId:d},eventHub:y,mountElement:p,onError:f,onLog:m},E=(0,s.Yv)("ocr",Object.assign(Object.assign({},g),{validate:({typeOfId:e,countryCode:n})=>{var t;const o=e=>{y.emit("input_required",{documentType:e,side:"front"},r.By.DOCUMENTS_INVALID,(()=>({})))};if(!c)return!0;const i=c.find((({type:n})=>n===(v[e]||e)));return i?!(null==i?void 0:i.countries)||!!(null===(t=null==i?void 0:i.countries)||void 0===t?void 0:t.includes(n))||(o(i.type),!1):(o(c[0].type),!1)},onSuccess:()=>{y.emit("session_closed"),(0,u.K)(e,Object.assign(Object.assign({},n),{attachReviewScreen:!(0,o.T)("modules.ocr.containsReviewScreen.incode")}))}}));y.emit("ready",{domElement:p}),y.emit("loading",!1,{message:"Vendor 'Incode' screen has loaded"}),yield E}catch(e){const{type:n=null,message:t=""}=e;y.emit("error",new i.OneSDKError("Error from vendor SDK 'Incode'",{type:n,message:t})),y.emit("loading",!1,{message:"Failed while executing vendor 'Incode'"})}return{}},new((l=void 0)||(l=Promise))((function(e,n){function o(e){try{i(m.next(e))}catch(e){n(e)}}function r(e){try{i(m.throw(e))}catch(e){n(e)}}function i(n){var t;n.done?e(n.value):(t=n.value,t instanceof l?t:new l((function(e){e(t)}))).then(o,r)}i((m=m.apply(t,c||[])).next())}));var t,c,l,m})),v={Passport:"PASSPORT",DriversLicense:"DRIVERS_LICENCE",MedicalCard:"NATIONAL_HEALTH_ID"}},6151:(e,n,t)=>{t.d(n,{j:()=>o});const o=(e,n)=>{return t=void 0,o=void 0,i=function*(){try{const{entityId:t,token:o,vendorParameters:r}=yield e.getToken();return n.emit("session_data_generated",{session:{entityId:t,token:o,vendorParameters:r}}),{entityId:t,token:o,vendorParameters:r}}catch(e){const{code:t=null,message:o=""}=e;return n.emit("session_data_failed_loading",{code:t,message:o}),null}},new((r=void 0)||(r=Promise))((function(e,n){function c(e){try{d(i.next(e))}catch(e){n(e)}}function s(e){try{d(i.throw(e))}catch(e){n(e)}}function d(n){var t;n.done?e(n.value):(t=n.value,t instanceof r?t:new r((function(e){e(t)}))).then(c,s)}d((i=i.apply(t,o||[])).next())}));var t,o,r,i}},4576:(e,n,t)=>{t.d(n,{K:()=>a});var o=t(591),r=t(4334),i=t(846),c=t(325),s=t(9255),d=t(4527);const a=(e,n)=>{return t=void 0,a=void 0,l=function*(){var t,a;const{frankieClient:u,oneSdkInstance:l,localEventHub:v}=e;try{const m=new c.UZ(u);v.emit("loading",!0,{message:"Retrieving IDV results"});let p=yield m.attachNewOCRDocument();p.documentStatus===d.By.WAITING_OCR_RUN&&(p=yield m.rerun(p.ocrDocument.documentId)),yield l.individual().search();const{ocrDocument:y,documentStatus:f}=p,g=null!==(t=s.p[f])&&void 0!==t?t:s.p.default,w=(0,r.mkEventHub)(),E=n.mountElement,I=null!==(a=e.recipe.ocr.provideReviewScreen)&&void 0!==a?a:(0,o.T)("recipeDefaults.ocr.provideReviewScreen");w.on("results",(0,i.n)({localEventHub:v,mountElement:E,oneSdkInstance:l,attachForm:I&&n.attachReviewScreen})),w.map(["input_required","error"],v),g({ocrDocument:y,documentStatus:f,ocrClient:m,eventHub:w})}catch(e){v.emit("error",new r.OneSDKError("Failed submitting and retrieving OCR results",e)),v.emit("loading",!1,{message:"Failed retrieving OCR results"})}},new((u=void 0)||(u=Promise))((function(e,n){function o(e){try{i(l.next(e))}catch(e){n(e)}}function r(e){try{i(l.throw(e))}catch(e){n(e)}}function i(n){var t;n.done?e(n.value):(t=n.value,t instanceof u?t:new u((function(e){e(t)}))).then(o,r)}i((l=l.apply(t,a||[])).next())}));var t,a,u,l}},9255:(e,n,t)=>{t.d(n,{p:()=>i});var o=t(6604),r=t(4334);const i={[o.By.COMPLETE]:({ocrDocument:e,ocrClient:n,eventHub:t})=>t.emit("results",{document:e,entityId:n.entityId}),[o.By.WAITING_OCR_RUN]:({eventHub:e})=>{e.emit("error",new r.OneSDKError(`Two attempts to get OCR results failed with an unresolved "${o.By.WAITING_OCR_RUN}". This is a system failure.`,{payload:null}))},[o.By.PROVIDER_OFFLINE]:({eventHub:e})=>e.emit("error",new r.OneSDKError(`Provider is offline. Either switch providers and restart or skip OCR temporarily. Status ${o.By.PROVIDER_OFFLINE}`,{payload:null})),default:({documentStatus:e,eventHub:n})=>n.emit("input_required",{documentType:null,side:"front"},e,(()=>({})))}}}]);
2
2
  //# sourceMappingURL=ocr-incode.js.map