@stytch/react 20.0.0-next.1 → 20.0.0-next.3
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.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/StytchSSRProxy-Bz6LNYdq.js.map +1 -1
- package/dist/cjs/adminPortal/index.cjs +1 -1
- package/dist/cjs/b2b/index.cjs +14 -13
- package/dist/cjs/b2b/index.cjs.map +1 -1
- package/dist/cjs/compat.cjs +3647 -0
- package/dist/cjs/compat.cjs.map +1 -0
- package/dist/cjs/{index-Ni_dyEsz.js → index-BIjXBvf_.js} +2 -2
- package/dist/cjs/index-BIjXBvf_.js.map +1 -0
- package/dist/cjs/index.cjs +521 -520
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/{shadcn-B8TEzQMT.js → shadcn-Z4AvHriT.js} +247 -233
- package/dist/cjs/shadcn-Z4AvHriT.js.map +1 -0
- package/dist/cjs-dev/StytchSSRProxy-d553KgcY.js +438 -0
- package/dist/cjs-dev/StytchSSRProxy-d553KgcY.js.map +1 -0
- package/dist/cjs-dev/adminPortal/index.cjs +54 -53
- package/dist/cjs-dev/adminPortal/index.cjs.map +1 -1
- package/dist/cjs-dev/b2b/index.cjs +85 -72
- package/dist/cjs-dev/b2b/index.cjs.map +1 -1
- package/dist/cjs-dev/b2b/index.headless.cjs +94 -92
- package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
- package/dist/cjs-dev/compat.cjs +3694 -0
- package/dist/cjs-dev/compat.cjs.map +1 -0
- package/dist/cjs-dev/{StytchSSRProxy-CxXsyme4.js → dev-DaCGDI6V.js} +60 -426
- package/dist/cjs-dev/dev-DaCGDI6V.js.map +1 -0
- package/dist/cjs-dev/{idpHelpers-Cf8Qq1B4.js → idpHelpers-DOYYSxsX.js} +60 -141
- package/dist/cjs-dev/idpHelpers-DOYYSxsX.js.map +1 -0
- package/dist/cjs-dev/{index-DdK3Jt4u.js → index-rquGmIlv.js} +4 -4
- package/dist/cjs-dev/index-rquGmIlv.js.map +1 -0
- package/dist/cjs-dev/index.cjs +828 -805
- package/dist/cjs-dev/index.cjs.map +1 -1
- package/dist/cjs-dev/index.headless.cjs +76 -74
- package/dist/cjs-dev/index.headless.cjs.map +1 -1
- package/dist/cjs-dev/logger-CvOATP4R.js +28 -0
- package/dist/cjs-dev/logger-CvOATP4R.js.map +1 -0
- package/dist/cjs-dev/{passwordManagerDisableAutofillProps-D70WyvIu.js → passwordManagerDisableAutofillProps-CgiK2M_U.js} +2 -2
- package/dist/cjs-dev/{passwordManagerDisableAutofillProps-D70WyvIu.js.map → passwordManagerDisableAutofillProps-CgiK2M_U.js.map} +1 -1
- package/dist/cjs-dev/{shadcn-C4w3DtKK.js → shadcn-DnNfms7-.js} +261 -245
- package/dist/cjs-dev/shadcn-DnNfms7-.js.map +1 -0
- package/dist/esm/b2b/StytchB2BContext.mjs +5 -5
- package/dist/esm/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm/compat.mjs +3 -0
- package/dist/esm/compat.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/index.mjs +85 -0
- package/dist/esm/node_modules/chroma-js/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/Color.mjs +53 -0
- package/dist/esm/node_modules/chroma-js/src/Color.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/chroma.mjs +11 -0
- package/dist/esm/node_modules/chroma-js/src/chroma.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/colors/colorbrewer.mjs +82 -0
- package/dist/esm/node_modules/chroma-js/src/colors/colorbrewer.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/colors/w3cx11.mjs +165 -0
- package/dist/esm/node_modules/chroma-js/src/colors/w3cx11.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/average.mjs +92 -0
- package/dist/esm/node_modules/chroma-js/src/generator/average.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/bezier.mjs +89 -0
- package/dist/esm/node_modules/chroma-js/src/generator/bezier.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/blend.mjs +58 -0
- package/dist/esm/node_modules/chroma-js/src/generator/blend.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/cubehelix.mjs +93 -0
- package/dist/esm/node_modules/chroma-js/src/generator/cubehelix.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/mix.mjs +22 -0
- package/dist/esm/node_modules/chroma-js/src/generator/mix.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/random.mjs +16 -0
- package/dist/esm/node_modules/chroma-js/src/generator/random.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/generator/scale.mjs +398 -0
- package/dist/esm/node_modules/chroma-js/src/generator/scale.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/_hsx.mjs +62 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/_hsx.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hcg.mjs +13 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hcg.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hsi.mjs +13 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hsi.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hsl.mjs +13 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hsl.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hsv.mjs +13 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/hsv.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/index.mjs +4 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/lab.mjs +20 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/lab.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/lch.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/lch.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/lrgb.mjs +21 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/lrgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/num.mjs +15 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/num.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/oklab.mjs +20 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/oklab.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/oklch.mjs +13 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/oklch.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/rgb.mjs +19 -0
- package/dist/esm/node_modules/chroma-js/src/interpolator/rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs +18 -0
- package/dist/esm/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/cmyk/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/cmyk/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs +20 -0
- package/dist/esm/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/css2rgb.mjs +239 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/css2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/hsl2css.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/hsl2css.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/index.mjs +27 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/lab2css.mjs +27 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/lab2css.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/lch2css.mjs +27 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/lch2css.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/oklab2css.mjs +18 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/oklab2css.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/oklch2css.mjs +18 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/oklch2css.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/rgb2css.mjs +65 -0
- package/dist/esm/node_modules/chroma-js/src/io/css/rgb2css.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/gl/index.mjs +24 -0
- package/dist/esm/node_modules/chroma-js/src/io/gl/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs +58 -0
- package/dist/esm/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hcg/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/hcg/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs +25 -0
- package/dist/esm/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hex/hex2rgb.mjs +57 -0
- package/dist/esm/node_modules/chroma-js/src/io/hex/hex2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hex/index.mjs +30 -0
- package/dist/esm/node_modules/chroma-js/src/io/hex/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hex/rgb2hex.mjs +33 -0
- package/dist/esm/node_modules/chroma-js/src/io/hex/rgb2hex.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs +49 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsi/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsi/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs +34 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs +37 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsl/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsl/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs +47 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs +50 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsv/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsv/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs +35 -0
- package/dist/esm/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/input.mjs +7 -0
- package/dist/esm/node_modules/chroma-js/src/io/input.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/index.mjs +30 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/lab-constants.mjs +116 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/lab-constants.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/lab2rgb.mjs +102 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/lab2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/rgb2lab.mjs +68 -0
- package/dist/esm/node_modules/chroma-js/src/io/lab/rgb2lab.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs +11 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/index.mjs +38 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/lab2lch.mjs +15 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/lab2lch.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/lch2lab.mjs +21 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/lch2lab.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/lch2rgb.mjs +15 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/lch2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/rgb2lch.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/io/lch/rgb2lch.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/named/index.mjs +30 -0
- package/dist/esm/node_modules/chroma-js/src/io/named/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/num/index.mjs +33 -0
- package/dist/esm/node_modules/chroma-js/src/io/num/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/num/num2rgb.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/io/num/num2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/num/rgb2num.mjs +10 -0
- package/dist/esm/node_modules/chroma-js/src/io/num/rgb2num.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklab/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklab/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs +36 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs +39 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklch/index.mjs +29 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklch/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs +15 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/rgb/index.mjs +47 -0
- package/dist/esm/node_modules/chroma-js/src/io/rgb/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/temp/index.mjs +23 -0
- package/dist/esm/node_modules/chroma-js/src/io/temp/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs +33 -0
- package/dist/esm/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs +40 -0
- package/dist/esm/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/alpha.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/ops/alpha.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/clipped.mjs +6 -0
- package/dist/esm/node_modules/chroma-js/src/ops/clipped.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/darken.mjs +18 -0
- package/dist/esm/node_modules/chroma-js/src/ops/darken.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/get.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/ops/get.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/luminance.mjs +56 -0
- package/dist/esm/node_modules/chroma-js/src/ops/luminance.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/mix.mjs +11 -0
- package/dist/esm/node_modules/chroma-js/src/ops/mix.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/premultiply.mjs +13 -0
- package/dist/esm/node_modules/chroma-js/src/ops/premultiply.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/saturate.mjs +16 -0
- package/dist/esm/node_modules/chroma-js/src/ops/saturate.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/set.mjs +44 -0
- package/dist/esm/node_modules/chroma-js/src/ops/set.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/ops/shade.mjs +12 -0
- package/dist/esm/node_modules/chroma-js/src/ops/shade.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/analyze.mjs +194 -0
- package/dist/esm/node_modules/chroma-js/src/utils/analyze.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/clip_rgb.mjs +18 -0
- package/dist/esm/node_modules/chroma-js/src/utils/clip_rgb.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/contrast.mjs +15 -0
- package/dist/esm/node_modules/chroma-js/src/utils/contrast.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/contrastAPCA.mjs +71 -0
- package/dist/esm/node_modules/chroma-js/src/utils/contrastAPCA.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/delta-e.mjs +66 -0
- package/dist/esm/node_modules/chroma-js/src/utils/delta-e.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/distance.mjs +20 -0
- package/dist/esm/node_modules/chroma-js/src/utils/distance.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/index.mjs +24 -0
- package/dist/esm/node_modules/chroma-js/src/utils/index.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/last.mjs +11 -0
- package/dist/esm/node_modules/chroma-js/src/utils/last.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/limit.mjs +8 -0
- package/dist/esm/node_modules/chroma-js/src/utils/limit.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/multiply-matrices.mjs +39 -0
- package/dist/esm/node_modules/chroma-js/src/utils/multiply-matrices.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/scales.mjs +19 -0
- package/dist/esm/node_modules/chroma-js/src/utils/scales.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/type.mjs +21 -0
- package/dist/esm/node_modules/chroma-js/src/utils/type.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/unpack.mjs +20 -0
- package/dist/esm/node_modules/chroma-js/src/utils/unpack.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/utils/valid.mjs +14 -0
- package/dist/esm/node_modules/chroma-js/src/utils/valid.mjs.map +1 -0
- package/dist/esm/node_modules/chroma-js/src/version.mjs +5 -0
- package/dist/esm/node_modules/chroma-js/src/version.mjs.map +1 -0
- package/dist/esm/packages/core/src/public/b2b/ui.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/App.mjs +2 -2
- package/dist/esm/packages/web/src/ui/b2b/App.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/components/Icons.mjs +3 -1
- package/dist/esm/packages/web/src/ui/b2b/components/Icons.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +12 -11
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +12 -14
- package/dist/esm/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs +6 -2
- package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs +10 -0
- package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/compat/generateColorFallback.mjs +63 -0
- package/dist/esm/packages/web/src/ui/compat/generateColorFallback.mjs.map +1 -0
- package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs +119 -0
- package/dist/esm/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -0
- package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/components/atoms/Typography.module.css.mjs +2 -2
- package/dist/esm/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/StytchB2BContext.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/IdentityProvider.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/IdentityProvider.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchContext.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchContext.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchLogin.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchLogin.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs +1 -1
- package/dist/esm/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/react/utils/errors.mjs.map +1 -1
- package/dist/esm/packages/web/src/utils/crypto.mjs +15 -14
- package/dist/esm/packages/web/src/utils/crypto.mjs.map +1 -1
- package/dist/esm/packages/web/src/utils/oauthProviderType.mjs +1 -1
- package/dist/esm/packages/web/src/utils/oauthProviderType.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index3.mjs +5 -3
- package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
- package/dist/esm-dev/_virtual/index4.mjs +3 -5
- package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
- package/dist/esm-dev/b2b/StytchB2BContext.mjs +5 -5
- package/dist/esm-dev/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm-dev/compat.mjs +3 -0
- package/dist/esm-dev/compat.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/index.mjs +85 -0
- package/dist/esm-dev/node_modules/chroma-js/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/Color.mjs +53 -0
- package/dist/esm-dev/node_modules/chroma-js/src/Color.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/chroma.mjs +11 -0
- package/dist/esm-dev/node_modules/chroma-js/src/chroma.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/colors/colorbrewer.mjs +82 -0
- package/dist/esm-dev/node_modules/chroma-js/src/colors/colorbrewer.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/colors/w3cx11.mjs +165 -0
- package/dist/esm-dev/node_modules/chroma-js/src/colors/w3cx11.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/average.mjs +92 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/average.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/bezier.mjs +89 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/bezier.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/blend.mjs +58 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/blend.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/cubehelix.mjs +93 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/cubehelix.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/mix.mjs +22 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/mix.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/random.mjs +16 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/random.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/scale.mjs +398 -0
- package/dist/esm-dev/node_modules/chroma-js/src/generator/scale.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/_hsx.mjs +62 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/_hsx.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hcg.mjs +13 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hcg.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsi.mjs +13 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsi.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsl.mjs +13 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsl.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsv.mjs +13 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/hsv.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/index.mjs +4 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lab.mjs +20 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lab.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lch.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lch.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lrgb.mjs +21 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/lrgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/num.mjs +15 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/num.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklab.mjs +20 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklab.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklch.mjs +13 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/oklch.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/rgb.mjs +19 -0
- package/dist/esm-dev/node_modules/chroma-js/src/interpolator/rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs +18 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs +20 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/css2rgb.mjs +239 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/css2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/hsl2css.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/hsl2css.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/index.mjs +27 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/lab2css.mjs +27 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/lab2css.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/lch2css.mjs +27 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/lch2css.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklab2css.mjs +18 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklab2css.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklch2css.mjs +18 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/oklch2css.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/rgb2css.mjs +65 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/css/rgb2css.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/gl/index.mjs +24 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/gl/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs +58 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/hcg2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs +25 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hcg/rgb2hcg.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hex/hex2rgb.mjs +57 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hex/hex2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hex/index.mjs +30 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hex/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hex/rgb2hex.mjs +33 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hex/rgb2hex.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs +49 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/hsi2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs +34 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsi/rgb2hsi.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs +37 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/hsl2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs +47 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsl/rgb2hsl.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs +50 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/hsv2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs +35 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/hsv/rgb2hsv.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/input.mjs +7 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/input.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/index.mjs +30 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab-constants.mjs +116 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab-constants.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab2rgb.mjs +102 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/lab2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/rgb2lab.mjs +68 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lab/rgb2lab.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs +11 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/hcl2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/index.mjs +38 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lab2lch.mjs +15 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lab2lch.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2lab.mjs +21 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2lab.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2rgb.mjs +15 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/lch2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/rgb2lch.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/lch/rgb2lch.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/named/index.mjs +30 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/named/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/num/index.mjs +33 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/num/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/num/num2rgb.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/num/num2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/num/rgb2num.mjs +10 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/num/rgb2num.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs +36 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/oklab2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs +39 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklab/rgb2oklab.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/index.mjs +29 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs +15 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/oklch2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/oklch/rgb2oklch.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/rgb/index.mjs +47 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/rgb/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/temp/index.mjs +23 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/temp/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs +33 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/temp/rgb2temperature.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs +40 -0
- package/dist/esm-dev/node_modules/chroma-js/src/io/temp/temperature2rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/alpha.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/alpha.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/clipped.mjs +6 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/clipped.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/darken.mjs +18 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/darken.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/get.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/get.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/luminance.mjs +56 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/luminance.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/mix.mjs +11 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/mix.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/premultiply.mjs +13 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/premultiply.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/saturate.mjs +16 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/saturate.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/set.mjs +44 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/set.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/shade.mjs +12 -0
- package/dist/esm-dev/node_modules/chroma-js/src/ops/shade.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/analyze.mjs +194 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/analyze.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/clip_rgb.mjs +18 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/clip_rgb.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/contrast.mjs +15 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/contrast.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/contrastAPCA.mjs +71 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/contrastAPCA.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/delta-e.mjs +66 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/delta-e.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/distance.mjs +20 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/distance.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/index.mjs +24 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/index.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/last.mjs +11 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/last.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/limit.mjs +8 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/limit.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/multiply-matrices.mjs +39 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/multiply-matrices.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/scales.mjs +19 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/scales.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/type.mjs +21 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/type.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/unpack.mjs +20 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/unpack.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/valid.mjs +14 -0
- package/dist/esm-dev/node_modules/chroma-js/src/utils/valid.mjs.map +1 -0
- package/dist/esm-dev/node_modules/chroma-js/src/version.mjs +5 -0
- package/dist/esm-dev/node_modules/chroma-js/src/version.mjs.map +1 -0
- package/dist/esm-dev/packages/core/src/public/b2b/ui.mjs.map +1 -1
- package/dist/esm-dev/packages/core/src/utils/dev.mjs +7 -1
- package/dist/esm-dev/packages/core/src/utils/dev.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs +14 -2
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/Icons.mjs +3 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/Icons.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs +8 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs +8 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +8 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +8 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs +12 -11
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/SetupNewWallet.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs +12 -14
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Crypto/WalletButtons.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs +6 -2
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs +10 -0
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/compat/generateColorFallback.mjs +63 -0
- package/dist/esm-dev/packages/web/src/ui/compat/generateColorFallback.mjs.map +1 -0
- package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs +166 -0
- package/dist/esm-dev/packages/web/src/ui/compat/styleToTheme.mjs.map +1 -0
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +3 -2
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.module.css.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/B2BIdentityProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/StytchB2BContext.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2b/StytchB2BContext.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/IdentityProvider.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/IdentityProvider.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchContext.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchContext.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchLogin.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchLogin.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasskeyRegistration.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/b2c/StytchPasswordReset.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/react/utils/errors.mjs +8 -4
- package/dist/esm-dev/packages/web/src/ui/react/utils/errors.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/utils/crypto.mjs +15 -14
- package/dist/esm-dev/packages/web/src/utils/crypto.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/utils/oauthProviderType.mjs +1 -1
- package/dist/esm-dev/packages/web/src/utils/oauthProviderType.mjs.map +1 -1
- package/dist/types/PresentationConfig-CcNEXkjS.d.ts +172 -0
- package/dist/types/{StytchB2BClient-C_7NUKZh.d.ts → StytchB2BClient-D16e_lp1.d.ts} +2 -1
- package/dist/types/{StytchClient-Ccvk8Nj1.d.ts → StytchClient-BwQdJzdj.d.ts} +2 -1
- package/dist/types/adminPortal/index.d.ts +5 -3
- package/dist/types/b2b/index.d.ts +27 -16
- package/dist/types/b2b/index.headless.d.ts +5 -4
- package/dist/types/compat.d.ts +46 -0
- package/dist/types/createAuthUrlHandler-R1kNNQD_.d.ts +2406 -0
- package/dist/types/{idpHelpers-aCVwNrDk.d.ts → idpHelpers-BQP76WgZ.d.ts} +1 -1
- package/dist/types/index.d.ts +36 -13
- package/dist/types/index.headless.d.ts +5 -4
- package/dist/types/{shadcn-0e4fkV5Z.d.ts → shadcn-B04UXoBD.d.ts} +10 -169
- package/dist/types/{createAuthUrlHandler-BJRA2PHG.d.ts → ui-B7IvSGQf.d.ts} +1123 -3525
- package/package.json +1 -1
- package/dist/cjs/index-Ni_dyEsz.js.map +0 -1
- package/dist/cjs/shadcn-B8TEzQMT.js.map +0 -1
- package/dist/cjs-dev/StytchSSRProxy-CxXsyme4.js.map +0 -1
- package/dist/cjs-dev/idpHelpers-Cf8Qq1B4.js.map +0 -1
- package/dist/cjs-dev/index-DdK3Jt4u.js.map +0 -1
- package/dist/cjs-dev/shadcn-C4w3DtKK.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDPContainer.mjs","sources":["../../../../../../../../web/src/ui/b2c/IDPContainer.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { messages } from '../../messages/en';\nimport { I18nProviderWrapper } from '../components/atoms/I18nProviderWrapper';\nimport { GlobalContextProvider, DEFAULT_STATE } from './GlobalContextProvider';\nimport { IDPSDKConfig, StytchLoginConfig } from '../../types';\nimport { readB2CInternals } from '../../utils/internal';\nimport { IDPContextProvider } from '../components/organisms/IDPContextProvider';\nimport { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig';\nimport { IDPConsentScreen } from './screens/IdentityProvider/IDPConsent';\n\nexport const IDPContainer = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n client,\n presentation,\n callbacks,\n strings,\n getIDPConsentManifest,\n authTokenParams,\n}: IDPSDKConfig<TProjectConfiguration>) => {\n const presentationValue = usePresentationWithDefault(presentation, false, []);\n\n useEffect(() => {\n readB2CInternals(client)\n .bootstrap.getAsync()\n .then((data) => {\n readB2CInternals(client).networkClient.logEvent({\n name: 'render_idp_screen',\n details: { bootstrap: data },\n });\n });\n }, [client]);\n\n return (\n <GlobalContextProvider\n client={client}\n config={{} as StytchLoginConfig}\n callbacks={callbacks}\n initialState={DEFAULT_STATE}\n >\n <IDPContextProvider consentManifestGenerator={getIDPConsentManifest} authTokenParams={authTokenParams}>\n <PresentationContext.Provider value={presentationValue}>\n <I18nProviderWrapper messages={messages} overrides={strings}>\n <IDPConsentScreen />\n </I18nProviderWrapper>\n </PresentationContext.Provider>\n </IDPContextProvider>\n </GlobalContextProvider>\n );\n};\n"],"names":["IDPContainer","client","presentation","callbacks","strings","getIDPConsentManifest","authTokenParams","presentationValue","usePresentationWithDefault","useEffect","readB2CInternals","bootstrap","getAsync","then","data","networkClient","logEvent","name","details","React","GlobalContextProvider","config","initialState","DEFAULT_STATE","IDPContextProvider","consentManifestGenerator","PresentationContext","Provider","value","I18nProviderWrapper","messages","overrides","IDPConsentScreen"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IDPContainer.mjs","sources":["../../../../../../../../web/src/ui/b2c/IDPContainer.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { messages } from '../../messages/en';\nimport { I18nProviderWrapper } from '../components/atoms/I18nProviderWrapper';\nimport { GlobalContextProvider, DEFAULT_STATE } from './GlobalContextProvider';\nimport { IDPSDKConfig, StytchLoginConfig, DeprecatedSDKConfig } from '../../types';\nimport { readB2CInternals } from '../../utils/internal';\nimport { IDPContextProvider } from '../components/organisms/IDPContextProvider';\nimport { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig';\nimport { IDPConsentScreen } from './screens/IdentityProvider/IDPConsent';\nimport { logger, RUN_IN_DEV } from '@stytch/core';\n\nexport const IDPContainer = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n client,\n presentation,\n callbacks,\n strings,\n styles,\n getIDPConsentManifest,\n authTokenParams,\n}: IDPSDKConfig<TProjectConfiguration> & DeprecatedSDKConfig) => {\n const presentationValue = usePresentationWithDefault(presentation, false, []);\n\n useEffect(() => {\n readB2CInternals(client)\n .bootstrap.getAsync()\n .then((data) => {\n readB2CInternals(client).networkClient.logEvent({\n name: 'render_idp_screen',\n details: { bootstrap: data },\n });\n });\n }, [client]);\n\n RUN_IN_DEV(() => {\n if (styles) {\n logger.error(\n 'styles is deprecated and has no effect. Use the presentation prop instead.\\n' +\n 'See https://stytch.com/docs/api-reference/consumer/frontend-sdks/react/upgrade-guide#step-by-step-guide',\n );\n }\n });\n\n return (\n <GlobalContextProvider\n client={client}\n config={{} as StytchLoginConfig}\n callbacks={callbacks}\n initialState={DEFAULT_STATE}\n >\n <IDPContextProvider consentManifestGenerator={getIDPConsentManifest} authTokenParams={authTokenParams}>\n <PresentationContext.Provider value={presentationValue}>\n <I18nProviderWrapper messages={messages} overrides={strings}>\n <IDPConsentScreen />\n </I18nProviderWrapper>\n </PresentationContext.Provider>\n </IDPContextProvider>\n </GlobalContextProvider>\n );\n};\n"],"names":["IDPContainer","client","presentation","callbacks","strings","styles","getIDPConsentManifest","authTokenParams","presentationValue","usePresentationWithDefault","useEffect","readB2CInternals","bootstrap","getAsync","then","data","networkClient","logEvent","name","details","RUN_IN_DEV","logger","error","React","GlobalContextProvider","config","initialState","DEFAULT_STATE","IDPContextProvider","consentManifestGenerator","PresentationContext","Provider","value","I18nProviderWrapper","messages","overrides","IDPConsentScreen"],"mappings":";;;;;;;;;;;MAYaA,YAAAA,GAAe,CAAgE,EAC1FC,MAAM,EACNC,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,qBAAqB,EACrBC,eAAe,EAC2C,GAAA;AAC1D,IAAA,MAAMC,iBAAAA,GAAoBC,0BAAAA,CAA2BP,YAAAA,EAAc,KAAA,EAAO,EAAE,CAAA;IAE5EQ,SAAAA,CAAU,IAAA;AACRC,QAAAA,gBAAAA,CAAiBV,QACdW,SAAS,CAACC,QAAQ,EAAA,CAClBC,IAAI,CAAC,CAACC,IAAAA,GAAAA;AACLJ,YAAAA,gBAAAA,CAAiBV,MAAAA,CAAAA,CAAQe,aAAa,CAACC,QAAQ,CAAC;gBAC9CC,IAAAA,EAAM,mBAAA;gBACNC,OAAAA,EAAS;oBAAEP,SAAAA,EAAWG;AAAK;AAC7B,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;IACJ,CAAA,EAAG;AAACd,QAAAA;AAAO,KAAA,CAAA;IAEXmB,UAAAA,CAAW,IAAA;AACT,QAAA,IAAIf,MAAAA,EAAQ;YACVgB,MAAAA,CAAOC,KAAK,CACV,8EAAA,GACE,yGAAA,CAAA;AAEN,QAAA;AACF,IAAA,CAAA,CAAA;AAEA,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,qBAAAA,EAAAA;QACCvB,MAAAA,EAAQA,MAAAA;AACRwB,QAAAA,MAAAA,EAAQ,EAAC;QACTtB,SAAAA,EAAWA,SAAAA;QACXuB,YAAAA,EAAcC;qBAEdJ,cAAA,CAAA,aAAA,CAACK,kBAAAA,EAAAA;QAAmBC,wBAAAA,EAA0BvB,qBAAAA;QAAuBC,eAAAA,EAAiBA;AACpF,KAAA,gBAAAgB,cAAA,CAAA,aAAA,CAACO,oBAAoBC,QAAQ,EAAA;QAACC,KAAAA,EAAOxB;qBACnCe,cAAA,CAAA,aAAA,CAACU,mBAAAA,EAAAA;QAAoBC,QAAAA,EAAUA,QAAAA;QAAUC,SAAAA,EAAW/B;qBAClDmB,cAAA,CAAA,aAAA,CAACa,gBAAAA,EAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAMb;;;;"}
|
|
@@ -7,8 +7,10 @@ import { readB2CInternals } from '../../utils/internal.mjs';
|
|
|
7
7
|
import { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig.mjs';
|
|
8
8
|
import { passkeyRegistration } from './Products.mjs';
|
|
9
9
|
import { addProduct } from './utils.mjs';
|
|
10
|
+
import { RUN_IN_DEV } from '../../../../core/src/utils/dev.mjs';
|
|
11
|
+
import { logger } from '../../../../core/src/utils/logger.mjs';
|
|
10
12
|
|
|
11
|
-
const PasskeyRegistrationContainer = ({ client, config: rawConfig, presentation, callbacks, strings })=>{
|
|
13
|
+
const PasskeyRegistrationContainer = ({ client, config: rawConfig, presentation, callbacks, strings, styles })=>{
|
|
12
14
|
const config = addProduct(rawConfig, passkeyRegistration);
|
|
13
15
|
/**
|
|
14
16
|
* Read the watermark out of sync storage, then read it out of async storage
|
|
@@ -23,6 +25,11 @@ const PasskeyRegistrationContainer = ({ client, config: rawConfig, presentation,
|
|
|
23
25
|
}, [
|
|
24
26
|
client
|
|
25
27
|
]);
|
|
28
|
+
RUN_IN_DEV(()=>{
|
|
29
|
+
if (styles) {
|
|
30
|
+
logger.error('styles is deprecated and has no effect. Use the presentation prop instead.\n' + 'See https://stytch.com/docs/api-reference/consumer/frontend-sdks/react/upgrade-guide#step-by-step-guide');
|
|
31
|
+
}
|
|
32
|
+
});
|
|
26
33
|
const initialState = {
|
|
27
34
|
...DEFAULT_STATE,
|
|
28
35
|
screen: AppScreens.PasskeyRegistrationStart,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasskeyRegistrationContainer.mjs","sources":["../../../../../../../../web/src/ui/b2c/PasskeyRegistrationContainer.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { messages } from '../../messages/en';\nimport { I18nProviderWrapper } from '../components/atoms/I18nProviderWrapper';\nimport { GlobalContextProvider, DEFAULT_STATE, AppState, AppScreens } from './GlobalContextProvider';\nimport Container from './Container';\nimport { SDKConfig } from '../../types';\nimport { readB2CInternals } from '../../utils/internal';\nimport { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig';\nimport { passkeyRegistration } from './Products';\nimport { addProduct } from './utils';\n\nexport const PasskeyRegistrationContainer = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n client,\n config: rawConfig,\n presentation,\n callbacks,\n strings,\n}: SDKConfig<TProjectConfiguration>) => {\n const config = addProduct(rawConfig, passkeyRegistration);\n\n /**\n * Read the watermark out of sync storage, then read it out of async storage\n */\n const [displayWatermark, setDisplayWatermark] = useState(() => {\n const { displayWatermark } = readB2CInternals(client).bootstrap.getSync();\n return displayWatermark;\n });\n\n useEffect(() => {\n readB2CInternals(client)\n .bootstrap.getAsync()\n .then(({ displayWatermark }) => {\n setDisplayWatermark(displayWatermark);\n });\n }, [client]);\n\n const initialState: AppState = {\n ...DEFAULT_STATE,\n screen: AppScreens.PasskeyRegistrationStart,\n formState: {\n ...DEFAULT_STATE.formState,\n },\n };\n\n const presentationValue = usePresentationWithDefault(presentation, displayWatermark, config.products, 'Products');\n\n return (\n <GlobalContextProvider client={client} config={config} callbacks={callbacks} initialState={initialState}>\n <PresentationContext.Provider value={presentationValue}>\n <I18nProviderWrapper messages={messages} overrides={strings}>\n <Container />\n </I18nProviderWrapper>\n </PresentationContext.Provider>\n </GlobalContextProvider>\n );\n};\n"],"names":["PasskeyRegistrationContainer","client","config","rawConfig","presentation","callbacks","strings","addProduct","passkeyRegistration","displayWatermark","setDisplayWatermark","useState","readB2CInternals","bootstrap","getSync","useEffect","getAsync","then","initialState","DEFAULT_STATE","screen","AppScreens","PasskeyRegistrationStart","formState","presentationValue","usePresentationWithDefault","products","React","GlobalContextProvider","PresentationContext","Provider","value","I18nProviderWrapper","messages","overrides","Container"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PasskeyRegistrationContainer.mjs","sources":["../../../../../../../../web/src/ui/b2c/PasskeyRegistrationContainer.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { messages } from '../../messages/en';\nimport { I18nProviderWrapper } from '../components/atoms/I18nProviderWrapper';\nimport { GlobalContextProvider, DEFAULT_STATE, AppState, AppScreens } from './GlobalContextProvider';\nimport Container from './Container';\nimport { SDKConfig, DeprecatedSDKConfig } from '../../types';\nimport { readB2CInternals } from '../../utils/internal';\nimport { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig';\nimport { passkeyRegistration } from './Products';\nimport { addProduct } from './utils';\nimport { logger, RUN_IN_DEV } from '@stytch/core';\n\nexport const PasskeyRegistrationContainer = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n client,\n config: rawConfig,\n presentation,\n callbacks,\n strings,\n styles,\n}: SDKConfig<TProjectConfiguration> & DeprecatedSDKConfig) => {\n const config = addProduct(rawConfig, passkeyRegistration);\n\n /**\n * Read the watermark out of sync storage, then read it out of async storage\n */\n const [displayWatermark, setDisplayWatermark] = useState(() => {\n const { displayWatermark } = readB2CInternals(client).bootstrap.getSync();\n return displayWatermark;\n });\n\n useEffect(() => {\n readB2CInternals(client)\n .bootstrap.getAsync()\n .then(({ displayWatermark }) => {\n setDisplayWatermark(displayWatermark);\n });\n }, [client]);\n\n RUN_IN_DEV(() => {\n if (styles) {\n logger.error(\n 'styles is deprecated and has no effect. Use the presentation prop instead.\\n' +\n 'See https://stytch.com/docs/api-reference/consumer/frontend-sdks/react/upgrade-guide#step-by-step-guide',\n );\n }\n });\n\n const initialState: AppState = {\n ...DEFAULT_STATE,\n screen: AppScreens.PasskeyRegistrationStart,\n formState: {\n ...DEFAULT_STATE.formState,\n },\n };\n\n const presentationValue = usePresentationWithDefault(presentation, displayWatermark, config.products, 'Products');\n\n return (\n <GlobalContextProvider client={client} config={config} callbacks={callbacks} initialState={initialState}>\n <PresentationContext.Provider value={presentationValue}>\n <I18nProviderWrapper messages={messages} overrides={strings}>\n <Container />\n </I18nProviderWrapper>\n </PresentationContext.Provider>\n </GlobalContextProvider>\n );\n};\n"],"names":["PasskeyRegistrationContainer","client","config","rawConfig","presentation","callbacks","strings","styles","addProduct","passkeyRegistration","displayWatermark","setDisplayWatermark","useState","readB2CInternals","bootstrap","getSync","useEffect","getAsync","then","RUN_IN_DEV","logger","error","initialState","DEFAULT_STATE","screen","AppScreens","PasskeyRegistrationStart","formState","presentationValue","usePresentationWithDefault","products","React","GlobalContextProvider","PresentationContext","Provider","value","I18nProviderWrapper","messages","overrides","Container"],"mappings":";;;;;;;;;;;;MAaaA,4BAAAA,GAA+B,CAAgE,EAC1GC,MAAM,EACNC,MAAAA,EAAQC,SAAS,EACjBC,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,MAAM,EACiD,GAAA;IACvD,MAAML,MAAAA,GAASM,WAAWL,SAAAA,EAAWM,mBAAAA,CAAAA;AAErC;;AAEC,MACD,MAAM,CAACC,gBAAAA,EAAkBC,mBAAAA,CAAoB,GAAGC,QAAAA,CAAS,IAAA;QACvD,MAAM,EAAEF,gBAAgB,EAAE,GAAGG,iBAAiBZ,MAAAA,CAAAA,CAAQa,SAAS,CAACC,OAAO,EAAA;QACvE,OAAOL,gBAAAA;AACT,IAAA,CAAA,CAAA;IAEAM,SAAAA,CAAU,IAAA;QACRH,gBAAAA,CAAiBZ,MAAAA,CAAAA,CACda,SAAS,CAACG,QAAQ,EAAA,CAClBC,IAAI,CAAC,CAAC,EAAER,gBAAgB,EAAE,GAAA;YACzBC,mBAAAA,CAAoBD,gBAAAA,CAAAA;AACtB,QAAA,CAAA,CAAA;IACJ,CAAA,EAAG;AAACT,QAAAA;AAAO,KAAA,CAAA;IAEXkB,UAAAA,CAAW,IAAA;AACT,QAAA,IAAIZ,MAAAA,EAAQ;YACVa,MAAAA,CAAOC,KAAK,CACV,8EAAA,GACE,yGAAA,CAAA;AAEN,QAAA;AACF,IAAA,CAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAyB;AAC7B,QAAA,GAAGC,aAAa;AAChBC,QAAAA,MAAAA,EAAQC,WAAWC,wBAAwB;QAC3CC,SAAAA,EAAW;AACT,YAAA,GAAGJ,cAAcI;AACnB;AACF,KAAA;AAEA,IAAA,MAAMC,oBAAoBC,0BAAAA,CAA2BzB,YAAAA,EAAcM,gBAAAA,EAAkBR,MAAAA,CAAO4B,QAAQ,EAAE,UAAA,CAAA;AAEtG,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,qBAAAA,EAAAA;QAAsB/B,MAAAA,EAAQA,MAAAA;QAAQC,MAAAA,EAAQA,MAAAA;QAAQG,SAAAA,EAAWA,SAAAA;QAAWiB,YAAAA,EAAcA;AACzF,KAAA,gBAAAS,cAAA,CAAA,aAAA,CAACE,oBAAoBC,QAAQ,EAAA;QAACC,KAAAA,EAAOP;qBACnCG,cAAA,CAAA,aAAA,CAACK,mBAAAA,EAAAA;QAAoBC,QAAAA,EAAUA,QAAAA;QAAUC,SAAAA,EAAWhC;qBAClDyB,cAAA,CAAA,aAAA,CAACQ,YAAAA,EAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAKX;;;;"}
|
|
@@ -7,8 +7,10 @@ import { readB2CInternals } from '../../utils/internal.mjs';
|
|
|
7
7
|
import { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig.mjs';
|
|
8
8
|
import { passwords } from './Products.mjs';
|
|
9
9
|
import { addProduct } from './utils.mjs';
|
|
10
|
+
import { RUN_IN_DEV } from '../../../../core/src/utils/dev.mjs';
|
|
11
|
+
import { logger } from '../../../../core/src/utils/logger.mjs';
|
|
10
12
|
|
|
11
|
-
const ResetPasswordContainer = ({ client, config: rawConfig, presentation, callbacks, strings, passwordResetToken: rawToken })=>{
|
|
13
|
+
const ResetPasswordContainer = ({ client, config: rawConfig, presentation, callbacks, strings, styles, passwordResetToken: rawToken })=>{
|
|
12
14
|
const config = addProduct(rawConfig, passwords);
|
|
13
15
|
// Default to reading token from URL if not provided
|
|
14
16
|
let token = rawToken;
|
|
@@ -30,6 +32,11 @@ const ResetPasswordContainer = ({ client, config: rawConfig, presentation, callb
|
|
|
30
32
|
}, [
|
|
31
33
|
client
|
|
32
34
|
]);
|
|
35
|
+
RUN_IN_DEV(()=>{
|
|
36
|
+
if (styles) {
|
|
37
|
+
logger.error('styles is deprecated and has no effect. Use the presentation prop instead.\n' + 'See https://stytch.com/docs/api-reference/consumer/frontend-sdks/react/upgrade-guide#step-by-step-guide');
|
|
38
|
+
}
|
|
39
|
+
});
|
|
33
40
|
const initialState = {
|
|
34
41
|
...DEFAULT_STATE,
|
|
35
42
|
screen: AppScreens.PasswordResetForm,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResetPasswordContainer.mjs","sources":["../../../../../../../../web/src/ui/b2c/ResetPasswordContainer.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { messages } from '../../messages/en';\nimport { I18nProviderWrapper } from '../components/atoms/I18nProviderWrapper';\nimport { GlobalContextProvider, DEFAULT_STATE, AppState, AppScreens } from './GlobalContextProvider';\nimport Container from './Container';\nimport { ResetPasswordSDKConfig } from '../../types';\nimport { readB2CInternals } from '../../utils/internal';\nimport { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig';\nimport { passwords } from './Products';\nimport { addProduct } from './utils';\n\nexport const ResetPasswordContainer = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n client,\n config: rawConfig,\n presentation,\n callbacks,\n strings,\n passwordResetToken: rawToken,\n}: ResetPasswordSDKConfig<TProjectConfiguration>) => {\n const config = addProduct(rawConfig, passwords);\n\n // Default to reading token from URL if not provided\n let token = rawToken;\n if (!token) {\n const result = client.parseAuthenticateUrl();\n if (result?.tokenType === 'reset_password' || result?.tokenType === 'login') {\n token = result.token;\n }\n }\n\n // Read the watermark out of sync storage, then read it out of async storage\n const [displayWatermark, setDisplayWatermark] = useState(() => {\n const { displayWatermark } = readB2CInternals(client).bootstrap.getSync();\n return displayWatermark;\n });\n useEffect(() => {\n readB2CInternals(client)\n .bootstrap.getAsync()\n .then(({ displayWatermark }) => {\n setDisplayWatermark(displayWatermark);\n });\n }, [client]);\n\n const initialState: AppState = {\n ...DEFAULT_STATE,\n screen: AppScreens.PasswordResetForm,\n formState: {\n ...DEFAULT_STATE.formState,\n resetPasswordState: {\n token: token!,\n },\n },\n };\n\n const presentationValue = usePresentationWithDefault(presentation, displayWatermark, config.products, 'Products');\n\n return (\n <GlobalContextProvider client={client} config={config} callbacks={callbacks} initialState={initialState}>\n <PresentationContext.Provider value={presentationValue}>\n <I18nProviderWrapper messages={messages} overrides={strings}>\n <Container />\n </I18nProviderWrapper>\n </PresentationContext.Provider>\n </GlobalContextProvider>\n );\n};\n"],"names":["ResetPasswordContainer","client","config","rawConfig","presentation","callbacks","strings","passwordResetToken","rawToken","addProduct","passwords","token","result","parseAuthenticateUrl","tokenType","displayWatermark","setDisplayWatermark","useState","readB2CInternals","bootstrap","getSync","useEffect","getAsync","then","initialState","DEFAULT_STATE","screen","AppScreens","PasswordResetForm","formState","resetPasswordState","presentationValue","usePresentationWithDefault","products","React","GlobalContextProvider","PresentationContext","Provider","value","I18nProviderWrapper","messages","overrides","Container"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ResetPasswordContainer.mjs","sources":["../../../../../../../../web/src/ui/b2c/ResetPasswordContainer.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { messages } from '../../messages/en';\nimport { I18nProviderWrapper } from '../components/atoms/I18nProviderWrapper';\nimport { GlobalContextProvider, DEFAULT_STATE, AppState, AppScreens } from './GlobalContextProvider';\nimport Container from './Container';\nimport { ResetPasswordSDKConfig, DeprecatedSDKConfig } from '../../types';\nimport { readB2CInternals } from '../../utils/internal';\nimport { usePresentationWithDefault, PresentationContext } from '../components/PresentationConfig';\nimport { passwords } from './Products';\nimport { addProduct } from './utils';\nimport { logger, RUN_IN_DEV } from '@stytch/core';\n\nexport const ResetPasswordContainer = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n client,\n config: rawConfig,\n presentation,\n callbacks,\n strings,\n styles,\n passwordResetToken: rawToken,\n}: ResetPasswordSDKConfig<TProjectConfiguration> & DeprecatedSDKConfig) => {\n const config = addProduct(rawConfig, passwords);\n\n // Default to reading token from URL if not provided\n let token = rawToken;\n if (!token) {\n const result = client.parseAuthenticateUrl();\n if (result?.tokenType === 'reset_password' || result?.tokenType === 'login') {\n token = result.token;\n }\n }\n\n // Read the watermark out of sync storage, then read it out of async storage\n const [displayWatermark, setDisplayWatermark] = useState(() => {\n const { displayWatermark } = readB2CInternals(client).bootstrap.getSync();\n return displayWatermark;\n });\n useEffect(() => {\n readB2CInternals(client)\n .bootstrap.getAsync()\n .then(({ displayWatermark }) => {\n setDisplayWatermark(displayWatermark);\n });\n }, [client]);\n\n RUN_IN_DEV(() => {\n if (styles) {\n logger.error(\n 'styles is deprecated and has no effect. Use the presentation prop instead.\\n' +\n 'See https://stytch.com/docs/api-reference/consumer/frontend-sdks/react/upgrade-guide#step-by-step-guide',\n );\n }\n });\n\n const initialState: AppState = {\n ...DEFAULT_STATE,\n screen: AppScreens.PasswordResetForm,\n formState: {\n ...DEFAULT_STATE.formState,\n resetPasswordState: {\n token: token!,\n },\n },\n };\n\n const presentationValue = usePresentationWithDefault(presentation, displayWatermark, config.products, 'Products');\n\n return (\n <GlobalContextProvider client={client} config={config} callbacks={callbacks} initialState={initialState}>\n <PresentationContext.Provider value={presentationValue}>\n <I18nProviderWrapper messages={messages} overrides={strings}>\n <Container />\n </I18nProviderWrapper>\n </PresentationContext.Provider>\n </GlobalContextProvider>\n );\n};\n"],"names":["ResetPasswordContainer","client","config","rawConfig","presentation","callbacks","strings","styles","passwordResetToken","rawToken","addProduct","passwords","token","result","parseAuthenticateUrl","tokenType","displayWatermark","setDisplayWatermark","useState","readB2CInternals","bootstrap","getSync","useEffect","getAsync","then","RUN_IN_DEV","logger","error","initialState","DEFAULT_STATE","screen","AppScreens","PasswordResetForm","formState","resetPasswordState","presentationValue","usePresentationWithDefault","products","React","GlobalContextProvider","PresentationContext","Provider","value","I18nProviderWrapper","messages","overrides","Container"],"mappings":";;;;;;;;;;;;MAaaA,sBAAAA,GAAyB,CAAgE,EACpGC,MAAM,EACNC,QAAQC,SAAS,EACjBC,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,kBAAAA,EAAoBC,QAAQ,EACwC,GAAA;IACpE,MAAMP,MAAAA,GAASQ,WAAWP,SAAAA,EAAWQ,SAAAA,CAAAA;;AAGrC,IAAA,IAAIC,KAAAA,GAAQH,QAAAA;AACZ,IAAA,IAAI,CAACG,KAAAA,EAAO;QACV,MAAMC,MAAAA,GAASZ,OAAOa,oBAAoB,EAAA;AAC1C,QAAA,IAAID,MAAAA,EAAQE,SAAAA,KAAc,gBAAA,IAAoBF,MAAAA,EAAQE,cAAc,OAAA,EAAS;AAC3EH,YAAAA,KAAAA,GAAQC,OAAOD,KAAK;AACtB,QAAA;AACF,IAAA;;AAGA,IAAA,MAAM,CAACI,gBAAAA,EAAkBC,mBAAAA,CAAoB,GAAGC,QAAAA,CAAS,IAAA;QACvD,MAAM,EAAEF,gBAAgB,EAAE,GAAGG,iBAAiBlB,MAAAA,CAAAA,CAAQmB,SAAS,CAACC,OAAO,EAAA;QACvE,OAAOL,gBAAAA;AACT,IAAA,CAAA,CAAA;IACAM,SAAAA,CAAU,IAAA;QACRH,gBAAAA,CAAiBlB,MAAAA,CAAAA,CACdmB,SAAS,CAACG,QAAQ,EAAA,CAClBC,IAAI,CAAC,CAAC,EAAER,gBAAgB,EAAE,GAAA;YACzBC,mBAAAA,CAAoBD,gBAAAA,CAAAA;AACtB,QAAA,CAAA,CAAA;IACJ,CAAA,EAAG;AAACf,QAAAA;AAAO,KAAA,CAAA;IAEXwB,UAAAA,CAAW,IAAA;AACT,QAAA,IAAIlB,MAAAA,EAAQ;YACVmB,MAAAA,CAAOC,KAAK,CACV,8EAAA,GACE,yGAAA,CAAA;AAEN,QAAA;AACF,IAAA,CAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAyB;AAC7B,QAAA,GAAGC,aAAa;AAChBC,QAAAA,MAAAA,EAAQC,WAAWC,iBAAiB;QACpCC,SAAAA,EAAW;AACT,YAAA,GAAGJ,cAAcI,SAAS;YAC1BC,kBAAAA,EAAoB;gBAClBtB,KAAAA,EAAOA;AACT;AACF;AACF,KAAA;AAEA,IAAA,MAAMuB,oBAAoBC,0BAAAA,CAA2BhC,YAAAA,EAAcY,gBAAAA,EAAkBd,MAAAA,CAAOmC,QAAQ,EAAE,UAAA,CAAA;AAEtG,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,qBAAAA,EAAAA;QAAsBtC,MAAAA,EAAQA,MAAAA;QAAQC,MAAAA,EAAQA,MAAAA;QAAQG,SAAAA,EAAWA,SAAAA;QAAWuB,YAAAA,EAAcA;AACzF,KAAA,gBAAAU,cAAA,CAAA,aAAA,CAACE,oBAAoBC,QAAQ,EAAA;QAACC,KAAAA,EAAOP;qBACnCG,cAAA,CAAA,aAAA,CAACK,mBAAAA,EAAAA;QAAoBC,QAAAA,EAAUA,QAAAA;QAAUC,SAAAA,EAAWvC;qBAClDgC,cAAA,CAAA,aAAA,CAACQ,YAAAA,EAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAKX;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import { useLingui } from '../../../../../../../node_modules/@lingui/react/dist/index.mjs';
|
|
3
3
|
import { useGlobalReducer, AppScreens } from '../../GlobalContextProvider.mjs';
|
|
4
|
-
import { WalletToIcon } from '../../../../utils/crypto.mjs';
|
|
5
4
|
import Column from '../../../components/atoms/Column.mjs';
|
|
6
5
|
import TextColumn from '../../../components/molecules/TextColumn.mjs';
|
|
7
6
|
import Button, { ButtonAnchor } from '../../../components/atoms/Button.mjs';
|
|
8
7
|
import ButtonColumn from '../../../components/molecules/ButtonColumn.mjs';
|
|
8
|
+
import { useCryptoIcon } from '../../../../utils/crypto.mjs';
|
|
9
9
|
import { Wallets } from '../../../../../../core/src/public/ui.mjs';
|
|
10
10
|
|
|
11
11
|
const commonButtonProps = {
|
|
@@ -13,13 +13,14 @@ const commonButtonProps = {
|
|
|
13
13
|
target: '_blank',
|
|
14
14
|
rel: 'noreferrer'
|
|
15
15
|
};
|
|
16
|
-
const walletIcon = (wallet)=>{
|
|
17
|
-
const Icon = WalletToIcon[wallet];
|
|
18
|
-
return /*#__PURE__*/ React__default.createElement(Icon, null);
|
|
19
|
-
};
|
|
20
16
|
const SetupNewWallet = ()=>{
|
|
21
17
|
const { i18n: $__i18n, _: $__ } = useLingui();
|
|
22
18
|
const [, dispatch] = useGlobalReducer();
|
|
19
|
+
const getCryptoIcon = useCryptoIcon();
|
|
20
|
+
const MetamaskIcon = getCryptoIcon(Wallets.Metamask);
|
|
21
|
+
const PhantomIcon = getCryptoIcon(Wallets.Phantom);
|
|
22
|
+
const CoinbaseIcon = getCryptoIcon(Wallets.Coinbase);
|
|
23
|
+
const BinanceIcon = getCryptoIcon(Wallets.Binance);
|
|
23
24
|
return /*#__PURE__*/ React__default.createElement(Column, {
|
|
24
25
|
gap: 6
|
|
25
26
|
}, /*#__PURE__*/ React__default.createElement(TextColumn, {
|
|
@@ -37,29 +38,29 @@ const SetupNewWallet = ()=>{
|
|
|
37
38
|
})
|
|
38
39
|
}), /*#__PURE__*/ React__default.createElement(ButtonColumn, null, /*#__PURE__*/ React__default.createElement(ButtonAnchor, {
|
|
39
40
|
...commonButtonProps,
|
|
40
|
-
icon:
|
|
41
|
+
icon: /*#__PURE__*/ React__default.createElement(MetamaskIcon, null),
|
|
41
42
|
href: "https://metamask.io/"
|
|
42
43
|
}, $__i18n._({
|
|
43
44
|
id: "crypto.wallet.metamask",
|
|
44
45
|
message: "Metamask"
|
|
45
46
|
})), /*#__PURE__*/ React__default.createElement(ButtonAnchor, {
|
|
46
47
|
...commonButtonProps,
|
|
47
|
-
icon:
|
|
48
|
-
href: "https://phantom.
|
|
48
|
+
icon: /*#__PURE__*/ React__default.createElement(PhantomIcon, null),
|
|
49
|
+
href: "https://phantom.com/"
|
|
49
50
|
}, $__i18n._({
|
|
50
51
|
id: "crypto.wallet.phantom",
|
|
51
52
|
message: "Phantom"
|
|
52
53
|
})), /*#__PURE__*/ React__default.createElement(ButtonAnchor, {
|
|
53
54
|
...commonButtonProps,
|
|
54
|
-
icon:
|
|
55
|
+
icon: /*#__PURE__*/ React__default.createElement(CoinbaseIcon, null),
|
|
55
56
|
href: "https://www.coinbase.com/wallet"
|
|
56
57
|
}, $__i18n._({
|
|
57
58
|
id: "crypto.wallet.coinbase",
|
|
58
59
|
message: "Coinbase"
|
|
59
60
|
})), /*#__PURE__*/ React__default.createElement(ButtonAnchor, {
|
|
60
61
|
...commonButtonProps,
|
|
61
|
-
icon:
|
|
62
|
-
href: "https://
|
|
62
|
+
icon: /*#__PURE__*/ React__default.createElement(BinanceIcon, null),
|
|
63
|
+
href: "https://web3.binance.com/en/about"
|
|
63
64
|
}, $__i18n._({
|
|
64
65
|
id: "crypto.wallet.binance",
|
|
65
66
|
message: "Binance"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupNewWallet.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Crypto/SetupNewWallet.tsx"],"sourcesContent":["import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { Wallets } from '@stytch/core/public';\nimport { AppScreens, useGlobalReducer } from '../../GlobalContextProvider';\nimport
|
|
1
|
+
{"version":3,"file":"SetupNewWallet.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Crypto/SetupNewWallet.tsx"],"sourcesContent":["import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { Wallets } from '@stytch/core/public';\nimport { AppScreens, useGlobalReducer } from '../../GlobalContextProvider';\nimport Column from '../../../components/atoms/Column';\nimport TextColumn from '../../../components/molecules/TextColumn';\nimport Button, { ButtonAnchor } from '../../../components/atoms/Button';\nimport ButtonColumn from '../../../components/molecules/ButtonColumn';\nimport { useCryptoIcon } from '../../../../utils/crypto';\n\nconst commonButtonProps = {\n variant: 'outline',\n target: '_blank',\n rel: 'noreferrer',\n} as const;\n\nexport const SetupNewWallet = () => {\n const { t } = useLingui();\n const [, dispatch] = useGlobalReducer();\n\n const getCryptoIcon = useCryptoIcon();\n const MetamaskIcon = getCryptoIcon(Wallets.Metamask);\n const PhantomIcon = getCryptoIcon(Wallets.Phantom);\n const CoinbaseIcon = getCryptoIcon(Wallets.Coinbase);\n const BinanceIcon = getCryptoIcon(Wallets.Binance);\n\n return (\n <Column gap={6}>\n <TextColumn\n header={t({ id: 'crypto.setupNewWallet.title', message: 'Set up a new crypto wallet' })}\n body={t({\n id: 'crypto.setupNewWallet.content',\n message: 'Get started by downloading any Ethereum or Solana wallet.',\n })}\n helper={t({\n id: 'crypto.setupNewWallet.instruction',\n message:\n 'We’ve included a few examples of wallet extensions you can find below. Once you’ve set up your wallet, click “Go back” to use it and sign in.',\n })}\n />\n\n <ButtonColumn>\n <ButtonAnchor {...commonButtonProps} icon={<MetamaskIcon />} href=\"https://metamask.io/\">\n {t({ id: 'crypto.wallet.metamask', message: 'Metamask' })}\n </ButtonAnchor>\n <ButtonAnchor {...commonButtonProps} icon={<PhantomIcon />} href=\"https://phantom.com/\">\n {t({ id: 'crypto.wallet.phantom', message: 'Phantom' })}\n </ButtonAnchor>\n\n <ButtonAnchor {...commonButtonProps} icon={<CoinbaseIcon />} href=\"https://www.coinbase.com/wallet\">\n {t({ id: 'crypto.wallet.coinbase', message: 'Coinbase' })}\n </ButtonAnchor>\n\n <ButtonAnchor {...commonButtonProps} icon={<BinanceIcon />} href=\"https://web3.binance.com/en/about\">\n {t({ id: 'crypto.wallet.binance', message: 'Binance' })}\n </ButtonAnchor>\n\n <Button variant=\"primary\" onClick={() => dispatch({ type: 'transition', screen: AppScreens.Main })}>\n {t({ id: 'button.goBack', message: 'Go back' })}\n </Button>\n </ButtonColumn>\n </Column>\n );\n};\n"],"names":["commonButtonProps","variant","target","rel","SetupNewWallet","useLingui","dispatch","useGlobalReducer","getCryptoIcon","useCryptoIcon","MetamaskIcon","Wallets","Metamask","PhantomIcon","Phantom","CoinbaseIcon","Coinbase","BinanceIcon","Binance","React","Column","gap","TextColumn","header","body","helper","ButtonColumn","ButtonAnchor","icon","href","Button","onClick","type","screen","AppScreens","Main"],"mappings":";;;;;;;;;;AAUA,MAAMA,iBAAAA,GAAoB;IACxBC,OAAAA,EAAS,SAAA;IACTC,MAAAA,EAAQ,QAAA;IACRC,GAAAA,EAAK;AACP,CAAA;MAEaC,cAAAA,GAAiB,IAAA;AAC5B,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;IACd,MAAM,GAAGC,SAAS,GAAGC,gBAAAA,EAAAA;AAErB,IAAA,MAAMC,aAAAA,GAAgBC,aAAAA,EAAAA;IACtB,MAAMC,YAAAA,GAAeF,aAAAA,CAAcG,OAAAA,CAAQC,QAAQ,CAAA;IACnD,MAAMC,WAAAA,GAAcL,aAAAA,CAAcG,OAAAA,CAAQG,OAAO,CAAA;IACjD,MAAMC,YAAAA,GAAeP,aAAAA,CAAcG,OAAAA,CAAQK,QAAQ,CAAA;IACnD,MAAMC,WAAAA,GAAcT,aAAAA,CAAcG,OAAAA,CAAQO,OAAO,CAAA;AAEjD,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK;qBACXF,cAAA,CAAA,aAAA,CAACG,UAAAA,EAAAA;QACCC,MAAM,EAAA,OAAA,CAAA,CAAA,CAAA;;;;QACNC,IAAI,EAAA,OAAA,CAAA,CAAA,CAAA;;;;QAIJC,MAAM,EAAA,OAAA,CAAA,CAAA,CAAA;;;;AAOR,KAAA,CAAA,gBAAAN,cAAA,CAAA,aAAA,CAACO,kCACCP,cAAA,CAAA,aAAA,CAACQ,YAAAA,EAAAA;AAAc,QAAA,GAAG3B,iBAAiB;AAAE4B,QAAAA,IAAAA,gBAAMT,cAAA,CAAA,aAAA,CAACT,YAAAA,EAAAA,IAAAA,CAAAA;QAAiBmB,IAAAA,EAAK;;;;uBAGlEV,cAAA,CAAA,aAAA,CAACQ,YAAAA,EAAAA;AAAc,QAAA,GAAG3B,iBAAiB;AAAE4B,QAAAA,IAAAA,gBAAMT,cAAA,CAAA,aAAA,CAACN,WAAAA,EAAAA,IAAAA,CAAAA;QAAgBgB,IAAAA,EAAK;;;;uBAIjEV,cAAA,CAAA,aAAA,CAACQ,YAAAA,EAAAA;AAAc,QAAA,GAAG3B,iBAAiB;AAAE4B,QAAAA,IAAAA,gBAAMT,cAAA,CAAA,aAAA,CAACJ,YAAAA,EAAAA,IAAAA,CAAAA;QAAiBc,IAAAA,EAAK;;;;uBAIlEV,cAAA,CAAA,aAAA,CAACQ,YAAAA,EAAAA;AAAc,QAAA,GAAG3B,iBAAiB;AAAE4B,QAAAA,IAAAA,gBAAMT,cAAA,CAAA,aAAA,CAACF,WAAAA,EAAAA,IAAAA,CAAAA;QAAgBY,IAAAA,EAAK;;;;uBAIjEV,cAAA,CAAA,aAAA,CAACW,MAAAA,EAAAA;QAAO7B,OAAAA,EAAQ,SAAA;AAAU8B,QAAAA,OAAAA,EAAS,IAAMzB,QAAAA,CAAS;gBAAE0B,IAAAA,EAAM,YAAA;AAAcC,gBAAAA,MAAAA,EAAQC,WAAWC;AAAK,aAAA;;;;;AAMxG;;;;"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useLingui } from '../../../../../../../node_modules/@lingui/react/dist/index.mjs';
|
|
3
3
|
import { useGlobalReducer, useConfig, AppScreens } from '../../GlobalContextProvider.mjs';
|
|
4
|
-
import { isWalletVisible, WalletToText
|
|
4
|
+
import { useCryptoIcon, isWalletVisible, WalletToText } from '../../../../utils/crypto.mjs';
|
|
5
5
|
import ButtonColumn from '../../../components/molecules/ButtonColumn.mjs';
|
|
6
6
|
import Button from '../../../components/atoms/Button.mjs';
|
|
7
|
+
import { GenericWalletIcon } from '../../../../assets/genericWallet.mjs';
|
|
7
8
|
import { Wallets } from '../../../../../../core/src/public/ui.mjs';
|
|
8
9
|
|
|
9
10
|
const MAX_BUTTONS = 6;
|
|
10
|
-
const WalletIconComponent = ({ wallet })=>{
|
|
11
|
-
const Icon = WalletToIcon[wallet];
|
|
12
|
-
return /*#__PURE__*/ React.createElement(Icon, null);
|
|
13
|
-
};
|
|
14
11
|
const walletMessages = {
|
|
15
12
|
[Wallets.Phantom]: {
|
|
16
13
|
id: "crypto.wallet.continueWithPhantom",
|
|
@@ -41,6 +38,7 @@ const CryptoWalletButtons = ({ type })=>{
|
|
|
41
38
|
const { i18n: $__i18n, _: $__ } = useLingui();
|
|
42
39
|
const [state, dispatch] = useGlobalReducer();
|
|
43
40
|
const config = useConfig();
|
|
41
|
+
const getCryptoIcon = useCryptoIcon();
|
|
44
42
|
const oAuthOptions = config.oauthOptions?.providers.length ?? 0;
|
|
45
43
|
// Crypto Buttons on screen = Maximum Buttons - OAuth Buttons - 1 (Other crypto or set up new wallet)
|
|
46
44
|
const cryptoButtonsOnMainScreen = MAX_BUTTONS - oAuthOptions - 1;
|
|
@@ -62,18 +60,18 @@ const CryptoWalletButtons = ({ type })=>{
|
|
|
62
60
|
const mainWallets = allDetectedWallets.slice(0, cryptoButtonsOnMainScreen);
|
|
63
61
|
const otherWallet = allDetectedWallets.slice(cryptoButtonsOnMainScreen);
|
|
64
62
|
const walletsToRender = type === 'main' ? mainWallets : otherWallet;
|
|
65
|
-
return /*#__PURE__*/ React.createElement(ButtonColumn, null, walletsToRender.map((wallet)
|
|
63
|
+
return /*#__PURE__*/ React.createElement(ButtonColumn, null, walletsToRender.map((wallet)=>{
|
|
64
|
+
const walletEnum = Wallets[wallet];
|
|
65
|
+
const Icon = getCryptoIcon(walletEnum);
|
|
66
|
+
return /*#__PURE__*/ React.createElement(Button, {
|
|
66
67
|
key: wallet,
|
|
67
68
|
variant: "outline",
|
|
68
|
-
icon: /*#__PURE__*/ React.createElement(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}, type === 'main' ? $__i18n._(walletMessages[Wallets[wallet]]) : $__i18n._(WalletToText[Wallets[wallet]]))), renderOtherScreenButton && type === 'main' ? /*#__PURE__*/ React.createElement(Button, {
|
|
69
|
+
icon: /*#__PURE__*/ React.createElement(Icon, null),
|
|
70
|
+
onClick: ()=>onWalletStart(walletEnum)
|
|
71
|
+
}, type === 'main' ? $__i18n._(walletMessages[walletEnum]) : $__i18n._(WalletToText[walletEnum]));
|
|
72
|
+
}), renderOtherScreenButton && type === 'main' ? /*#__PURE__*/ React.createElement(Button, {
|
|
73
73
|
variant: "outline",
|
|
74
|
-
icon: /*#__PURE__*/ React.createElement(
|
|
75
|
-
wallet: Wallets.GenericEthereumWallet
|
|
76
|
-
}),
|
|
74
|
+
icon: /*#__PURE__*/ React.createElement(GenericWalletIcon, null),
|
|
77
75
|
onClick: ()=>dispatch({
|
|
78
76
|
type: 'transition',
|
|
79
77
|
screen: AppScreens.CryptoOtherScreen
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletButtons.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Crypto/WalletButtons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MessageDescriptor } from '@lingui/core';\nimport { msg } from '@lingui/core/macro';\nimport { useLingui } from '@lingui/react/macro';\nimport { Wallets } from '@stytch/core/public';\n\nimport { useConfig, useGlobalReducer, AppScreens } from '../../GlobalContextProvider';\nimport {
|
|
1
|
+
{"version":3,"file":"WalletButtons.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Crypto/WalletButtons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MessageDescriptor } from '@lingui/core';\nimport { msg } from '@lingui/core/macro';\nimport { useLingui } from '@lingui/react/macro';\nimport { Wallets } from '@stytch/core/public';\n\nimport { useConfig, useGlobalReducer, AppScreens } from '../../GlobalContextProvider';\nimport { WalletToText, isWalletVisible, useCryptoIcon } from '../../../../utils/crypto';\nimport ButtonColumn from '../../../components/molecules/ButtonColumn';\nimport Button from '../../../components/atoms/Button';\nimport { GenericWalletIcon } from '../../../../assets';\n\nconst MAX_BUTTONS = 6;\n\nconst walletMessages = {\n [Wallets.Phantom]: msg({ id: 'crypto.wallet.continueWithPhantom', message: 'Continue with Phantom' }),\n [Wallets.Binance]: msg({ id: 'crypto.wallet.continueWithBinance', message: 'Continue with Binance' }),\n [Wallets.Coinbase]: msg({ id: 'crypto.wallet.continueWithCoinbase', message: 'Continue with Coinbase' }),\n [Wallets.Metamask]: msg({ id: 'crypto.wallet.continueWithMetamask', message: 'Continue with Metamask' }),\n [Wallets.GenericEthereumWallet]: msg({\n id: 'crypto.wallet.continueWithEthereum',\n message: 'Continue with Other Ethereum Wallet',\n }),\n [Wallets.GenericSolanaWallet]: msg({\n id: 'crypto.wallet.continueWithSolana',\n message: 'Continue with Other Solana Wallet',\n }),\n} satisfies Record<Wallets, MessageDescriptor>;\n\nexport const CryptoWalletButtons = ({ type }: { type: 'main' | 'other' }) => {\n const { t } = useLingui();\n const [state, dispatch] = useGlobalReducer();\n const config = useConfig();\n\n const getCryptoIcon = useCryptoIcon();\n\n const oAuthOptions = config.oauthOptions?.providers.length ?? 0;\n\n // Crypto Buttons on screen = Maximum Buttons - OAuth Buttons - 1 (Other crypto or set up new wallet)\n const cryptoButtonsOnMainScreen = MAX_BUTTONS - oAuthOptions - 1;\n const onWalletStart = (wallet: Wallets) => {\n dispatch({\n type: 'update_crypto_state',\n cryptoState: {\n ...state.formState.cryptoState,\n walletOption: wallet,\n },\n });\n dispatch({ type: 'transition', screen: AppScreens.CryptoConnect });\n };\n\n const allDetectedWallets = (Object.keys(Wallets) as (keyof typeof Wallets)[]).filter((wallet) =>\n isWalletVisible(Wallets[wallet]),\n );\n\n const renderOtherScreenButton = allDetectedWallets.length > cryptoButtonsOnMainScreen;\n\n const mainWallets = allDetectedWallets.slice(0, cryptoButtonsOnMainScreen);\n const otherWallet = allDetectedWallets.slice(cryptoButtonsOnMainScreen);\n\n const walletsToRender = type === 'main' ? mainWallets : otherWallet;\n\n return (\n <ButtonColumn>\n {walletsToRender.map((wallet) => {\n const walletEnum = Wallets[wallet];\n const Icon = getCryptoIcon(walletEnum);\n return (\n <Button key={wallet} variant=\"outline\" icon={<Icon />} onClick={() => onWalletStart(walletEnum)}>\n {type === 'main' ? t(walletMessages[walletEnum]) : t(WalletToText[walletEnum])}\n </Button>\n );\n })}\n\n {renderOtherScreenButton && type === 'main' ? (\n <Button\n variant=\"outline\"\n icon={<GenericWalletIcon />}\n onClick={() => dispatch({ type: 'transition', screen: AppScreens.CryptoOtherScreen })}\n >\n {t(msg({ id: 'crypto.wallet.continueWithOtherWallet', message: 'Continue with other Crypto Wallet' }))}\n </Button>\n ) : (\n <Button\n variant=\"outline\"\n onClick={() => dispatch({ type: 'transition', screen: AppScreens.CryptoSetupWallet })}\n >\n {t(msg({ id: 'crypto.wallet.setupNewWallet', message: 'Set up a new crypto wallet' }))}\n </Button>\n )}\n </ButtonColumn>\n );\n};\n"],"names":["MAX_BUTTONS","walletMessages","Wallets","Phantom","Binance","Coinbase","Metamask","GenericEthereumWallet","GenericSolanaWallet","CryptoWalletButtons","type","useLingui","state","dispatch","useGlobalReducer","config","useConfig","getCryptoIcon","useCryptoIcon","oAuthOptions","oauthOptions","providers","length","cryptoButtonsOnMainScreen","onWalletStart","wallet","cryptoState","formState","walletOption","screen","AppScreens","CryptoConnect","allDetectedWallets","Object","keys","filter","isWalletVisible","renderOtherScreenButton","mainWallets","slice","otherWallet","walletsToRender","ButtonColumn","map","walletEnum","Icon","Button","key","variant","icon","onClick","WalletToText","GenericWalletIcon","CryptoOtherScreen","CryptoSetupWallet"],"mappings":"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"}
|
|
@@ -42,10 +42,14 @@ const PasswordlessAuthenticate = ({ secondaryType })=>{
|
|
|
42
42
|
useMountEffect(()=>{
|
|
43
43
|
switch(secondaryType){
|
|
44
44
|
case 'eml':
|
|
45
|
-
sendLink()
|
|
45
|
+
sendLink().catch(()=>{
|
|
46
|
+
// Swallow error to avoid unhandled promise errors, sendLink() will already show error toast
|
|
47
|
+
});
|
|
46
48
|
return;
|
|
47
49
|
case 'otp':
|
|
48
|
-
sendCode()
|
|
50
|
+
sendCode().catch(()=>{
|
|
51
|
+
// Swallow error to avoid unhandled promise errors, sendLink() will already show error toast
|
|
52
|
+
});
|
|
49
53
|
return;
|
|
50
54
|
default:
|
|
51
55
|
stytchClient.passwords.resetByEmailStart(convertPasswordResetOptions(email, passwordOptions)).then((data)=>{
|
package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport { EmailConfirmation } from './EmailConfirmation';\nimport { OTPAuthenticate } from './OTPAuthenticate';\nimport Divider from '../../../components/molecules/Divider';\nimport { convertPasswordResetOptions } from '../../../../utils';\nimport {\n AppScreens,\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { useMountEffect } from '../../../hooks/useMountEffect';\nimport Button from '../../../components/atoms/Button';\nimport ErrorText from '../../../components/molecules/ErrorText';\nimport { getTranslatedError } from '../../../../utils/getTranslatedError';\nimport { useLingui } from '@lingui/react/macro';\nimport Column from '../../../components/atoms/Column';\nimport { usePasswordlessAuthenticate } from './usePasswordlessAuthenticate';\n\ntype PasswordlessAuthenticateProps = {\n secondaryType: 'eml' | 'otp' | undefined;\n};\n\nexport const PasswordlessAuthenticate = ({ secondaryType }: PasswordlessAuthenticateProps) => {\n const { t } = useLingui();\n const stytchClient = useStytch();\n const config = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [errorMessage, setErrorMessage] = useState('');\n\n const { sendLink, sendCode } = usePasswordlessAuthenticate();\n const passwordOptions = config.passwordOptions;\n\n const email = state.formState.passwordState.email;\n\n const resetPassword = () => {\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n });\n };\n\n useMountEffect(() => {\n switch (secondaryType) {\n case 'eml':\n sendLink();\n return;\n\n case 'otp':\n sendCode();\n return;\n\n default:\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n });\n return;\n }\n });\n\n if (!secondaryType) {\n return null;\n }\n\n return (\n <>\n {secondaryType === 'eml' ? <EmailConfirmation showGoBack={false} /> : <OTPAuthenticate hideBackButton />}\n\n <Divider />\n\n <Column gap={2}>\n <Button onClick={resetPassword} variant=\"outline\">\n {t({ id: 'button.createPasswordInstead', message: 'Create a password instead' })}\n </Button>\n {errorMessage && <ErrorText>{errorMessage}</ErrorText>}\n </Column>\n </>\n );\n};\n"],"names":["PasswordlessAuthenticate","secondaryType","useLingui","stytchClient","useStytch","config","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","errorMessage","setErrorMessage","useState","sendLink","sendCode","usePasswordlessAuthenticate","passwordOptions","email","formState","passwordState","resetPassword","passwords","resetByEmailStart","convertPasswordResetOptions","then","data","type","StytchEventType","PasswordResetByEmailStart","screen","AppScreens","PasswordSetNew","catch","e","getTranslatedError","useMountEffect","React","EmailConfirmation","showGoBack","OTPAuthenticate","hideBackButton","Divider","Column","gap","Button","onClick","variant","ErrorText"],"mappings":";;;;;;;;;;;;;;;AA0BO,MAAMA,wBAAAA,GAA2B,CAAC,EAAEC,aAAa,EAAiC,GAAA;AACvF,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AACd,IAAA,MAAMC,YAAAA,GAAeC,SAAAA,EAAAA;AACrB,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;IACf,MAAM,CAACC,KAAAA,EAAOC,QAAAA,CAAS,GAAGC,gBAAAA,EAAAA;AAC1B,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAChB,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAEhB,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGC,QAAAA,CAAS,EAAA,CAAA;AAEjD,IAAA,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAMC,eAAAA,GAAkBf,OAAOe,eAAe;AAE9C,IAAA,MAAMC,QAAQd,KAAAA,CAAMe,SAAS,CAACC,aAAa,CAACF,KAAK;AAEjD,IAAA,MAAMG,aAAAA,GAAgB,IAAA;QACpBrB,YAAAA,CAAasB,SAAS,CACnBC,iBAAiB,CAACC,4BAA4BN,KAAAA,EAAOD,eAAAA,CAAAA,CAAAA,CACrDQ,IAAI,CAAC,CAACC,IAAAA,GAAAA;YACLnB,OAAAA,CAAQ;AAAEoB,gBAAAA,IAAAA,EAAMC,gBAAgBC,yBAAyB;AAAEH,gBAAAA;AAAK,aAAA,CAAA;YAChErB,QAAAA,CAAS;gBAAEsB,IAAAA,EAAM,YAAA;AAAcG,gBAAAA,MAAAA,EAAQC,WAAWC;AAAe,aAAA,CAAA;QACnE,CAAA,CAAA,CACCC,KAAK,CAAC,CAACC,CAAAA,GAAAA;YACNzB,OAAAA,CAAQyB,CAAAA,CAAAA;AACRtB,YAAAA,eAAAA,CAAgBuB,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACrC,QAAA,CAAA,CAAA;AACJ,IAAA,CAAA;IAEAE,cAAAA,CAAe,IAAA;QACb,OAAQtC,aAAAA;YACN,KAAK,KAAA;AACHgB,gBAAAA,QAAAA,EAAAA;AACA,gBAAA;YAEF,KAAK,KAAA;
|
|
1
|
+
{"version":3,"file":"PasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport { EmailConfirmation } from './EmailConfirmation';\nimport { OTPAuthenticate } from './OTPAuthenticate';\nimport Divider from '../../../components/molecules/Divider';\nimport { convertPasswordResetOptions } from '../../../../utils';\nimport {\n AppScreens,\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { useMountEffect } from '../../../hooks/useMountEffect';\nimport Button from '../../../components/atoms/Button';\nimport ErrorText from '../../../components/molecules/ErrorText';\nimport { getTranslatedError } from '../../../../utils/getTranslatedError';\nimport { useLingui } from '@lingui/react/macro';\nimport Column from '../../../components/atoms/Column';\nimport { usePasswordlessAuthenticate } from './usePasswordlessAuthenticate';\n\ntype PasswordlessAuthenticateProps = {\n secondaryType: 'eml' | 'otp' | undefined;\n};\n\nexport const PasswordlessAuthenticate = ({ secondaryType }: PasswordlessAuthenticateProps) => {\n const { t } = useLingui();\n const stytchClient = useStytch();\n const config = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [errorMessage, setErrorMessage] = useState('');\n\n const { sendLink, sendCode } = usePasswordlessAuthenticate();\n const passwordOptions = config.passwordOptions;\n\n const email = state.formState.passwordState.email;\n\n const resetPassword = () => {\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n });\n };\n\n useMountEffect(() => {\n switch (secondaryType) {\n case 'eml':\n sendLink().catch(() => {\n // Swallow error to avoid unhandled promise errors, sendLink() will already show error toast\n });\n return;\n\n case 'otp':\n sendCode().catch(() => {\n // Swallow error to avoid unhandled promise errors, sendLink() will already show error toast\n });\n return;\n\n default:\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n });\n return;\n }\n });\n\n if (!secondaryType) {\n return null;\n }\n\n return (\n <>\n {secondaryType === 'eml' ? <EmailConfirmation showGoBack={false} /> : <OTPAuthenticate hideBackButton />}\n\n <Divider />\n\n <Column gap={2}>\n <Button onClick={resetPassword} variant=\"outline\">\n {t({ id: 'button.createPasswordInstead', message: 'Create a password instead' })}\n </Button>\n {errorMessage && <ErrorText>{errorMessage}</ErrorText>}\n </Column>\n </>\n );\n};\n"],"names":["PasswordlessAuthenticate","secondaryType","useLingui","stytchClient","useStytch","config","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","errorMessage","setErrorMessage","useState","sendLink","sendCode","usePasswordlessAuthenticate","passwordOptions","email","formState","passwordState","resetPassword","passwords","resetByEmailStart","convertPasswordResetOptions","then","data","type","StytchEventType","PasswordResetByEmailStart","screen","AppScreens","PasswordSetNew","catch","e","getTranslatedError","useMountEffect","React","EmailConfirmation","showGoBack","OTPAuthenticate","hideBackButton","Divider","Column","gap","Button","onClick","variant","ErrorText"],"mappings":"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"}
|
package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import { useLingui } from '../../../../../../../node_modules/@lingui/react/dist/index.mjs';
|
|
1
2
|
import { useState } from 'react';
|
|
2
3
|
import { useStytch, useConfig, useGlobalReducer, useEventCallback, useErrorCallback } from '../../GlobalContextProvider.mjs';
|
|
3
4
|
import { convertMagicLinkOptions } from '../../../../utils/index.mjs';
|
|
5
|
+
import { errorToast } from '../../../components/atoms/Toast.mjs';
|
|
6
|
+
import { getTranslatedError } from '../../../../utils/getTranslatedError.mjs';
|
|
4
7
|
import { DEFAULT_OTP_EXPIRATION_MINUTES } from '../../../../../../core/src/constants.mjs';
|
|
5
8
|
import { StytchEventType, OTPMethods } from '../../../../../../core/src/public/ui.mjs';
|
|
6
9
|
|
|
7
10
|
function usePasswordlessAuthenticate() {
|
|
11
|
+
const { i18n: $__i18n, _: $__ } = useLingui();
|
|
8
12
|
const stytchClient = useStytch();
|
|
9
13
|
const { emailMagicLinksOptions, otpOptions } = useConfig();
|
|
10
14
|
const [state, dispatch] = useGlobalReducer();
|
|
@@ -29,6 +33,9 @@ function usePasswordlessAuthenticate() {
|
|
|
29
33
|
});
|
|
30
34
|
} catch (e) {
|
|
31
35
|
onError(e);
|
|
36
|
+
errorToast({
|
|
37
|
+
message: getTranslatedError(e, $__)
|
|
38
|
+
});
|
|
32
39
|
throw e;
|
|
33
40
|
} finally{
|
|
34
41
|
setIsSubmitting(false);
|
|
@@ -55,6 +62,9 @@ function usePasswordlessAuthenticate() {
|
|
|
55
62
|
});
|
|
56
63
|
} catch (e) {
|
|
57
64
|
onError(e);
|
|
65
|
+
errorToast({
|
|
66
|
+
message: getTranslatedError(e, $__)
|
|
67
|
+
});
|
|
58
68
|
throw e;
|
|
59
69
|
} finally{
|
|
60
70
|
setIsSubmitting(false);
|
package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DEFAULT_OTP_EXPIRATION_MINUTES } from '@stytch/core';\nimport { OTPMethods, StytchEventType, StytchSDKAPIError } from '@stytch/core/public';\nimport {\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { convertMagicLinkOptions } from '../../../../utils';\n\nexport function usePasswordlessAuthenticate() {\n const stytchClient = useStytch();\n const { emailMagicLinksOptions, otpOptions } = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const email = state.formState.passwordState.email;\n\n const sendLink = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.magicLinks.email.loginOrCreate(\n email,\n convertMagicLinkOptions(emailMagicLinksOptions),\n );\n onEvent({ type: StytchEventType.MagicLinkLoginOrCreateEvent, data: { ...data, email } });\n dispatch({ type: 'set_magic_link_email', email: email });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const sendCode = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.otps.email.loginOrCreate(email, {\n expiration_minutes: otpOptions?.expirationMinutes ?? DEFAULT_OTP_EXPIRATION_MINUTES,\n locale: otpOptions?.locale,\n });\n onEvent({ type: StytchEventType.OTPsLoginOrCreateEvent, data });\n dispatch({\n type: 'update_otp_state',\n otpState: {\n type: OTPMethods.Email,\n methodId: data.method_id,\n otpDestination: email,\n },\n });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n return {\n sendLink,\n sendCode,\n isSubmitting,\n };\n}\n"],"names":["usePasswordlessAuthenticate","stytchClient","useStytch","emailMagicLinksOptions","otpOptions","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","isSubmitting","setIsSubmitting","useState","email","formState","passwordState","sendLink","data","magicLinks","loginOrCreate","convertMagicLinkOptions","type","StytchEventType","MagicLinkLoginOrCreateEvent","e","sendCode","otps","expiration_minutes","expirationMinutes","DEFAULT_OTP_EXPIRATION_MINUTES","locale","OTPsLoginOrCreateEvent","otpState","OTPMethods","Email","methodId","method_id","otpDestination"],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.ts"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport { useState } from 'react';\nimport { DEFAULT_OTP_EXPIRATION_MINUTES } from '@stytch/core';\nimport { OTPMethods, StytchEventType, StytchSDKAPIError } from '@stytch/core/public';\nimport {\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { convertMagicLinkOptions } from '../../../../utils';\nimport { errorToast } from '../../../components/atoms/Toast';\nimport { getTranslatedError } from '../../../../utils/getTranslatedError';\n\nexport function usePasswordlessAuthenticate() {\n const { t } = useLingui();\n\n const stytchClient = useStytch();\n const { emailMagicLinksOptions, otpOptions } = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const email = state.formState.passwordState.email;\n\n const sendLink = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.magicLinks.email.loginOrCreate(\n email,\n convertMagicLinkOptions(emailMagicLinksOptions),\n );\n onEvent({ type: StytchEventType.MagicLinkLoginOrCreateEvent, data: { ...data, email } });\n dispatch({ type: 'set_magic_link_email', email: email });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n errorToast({ message: getTranslatedError(e as StytchSDKAPIError, t) });\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const sendCode = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.otps.email.loginOrCreate(email, {\n expiration_minutes: otpOptions?.expirationMinutes ?? DEFAULT_OTP_EXPIRATION_MINUTES,\n locale: otpOptions?.locale,\n });\n onEvent({ type: StytchEventType.OTPsLoginOrCreateEvent, data });\n dispatch({\n type: 'update_otp_state',\n otpState: {\n type: OTPMethods.Email,\n methodId: data.method_id,\n otpDestination: email,\n },\n });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n errorToast({ message: getTranslatedError(e as StytchSDKAPIError, t) });\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n return {\n sendLink,\n sendCode,\n isSubmitting,\n };\n}\n"],"names":["usePasswordlessAuthenticate","useLingui","stytchClient","useStytch","emailMagicLinksOptions","otpOptions","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","isSubmitting","setIsSubmitting","useState","email","formState","passwordState","sendLink","data","magicLinks","loginOrCreate","convertMagicLinkOptions","type","StytchEventType","MagicLinkLoginOrCreateEvent","e","errorToast","message","getTranslatedError","sendCode","otps","expiration_minutes","expirationMinutes","DEFAULT_OTP_EXPIRATION_MINUTES","locale","OTPsLoginOrCreateEvent","otpState","OTPMethods","Email","methodId","method_id","otpDestination"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import '../../../../../node_modules/chroma-js/index.mjs';
|
|
2
|
+
import chroma from '../../../../../node_modules/chroma-js/src/chroma.mjs';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable lingui/no-unlocalized-strings */ function rgba(color) {
|
|
5
|
+
if (color.alpha() === 1) return `rgb(${color.rgb().join(',')})`;
|
|
6
|
+
return `rgba(${color.rgba().join(',')})`;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Takes a theme and dynamically generate the styles that uses color-mix,
|
|
10
|
+
* as a fallback for browsers that do not support color-mix()
|
|
11
|
+
*/ function generateColorFallback(theme) {
|
|
12
|
+
// Don't use chroma.colorMix since chroma.js treats transparent as rgba(0, 0, 0, 0)
|
|
13
|
+
// which means our color is mixed with black rather than the original color
|
|
14
|
+
// with alpha 0, which is what browsers so instead
|
|
15
|
+
return {
|
|
16
|
+
// --tab-background: color-mix(in oklab, var(--accent) 80%, transparent);
|
|
17
|
+
'tab-background': rgba(chroma(theme.accent).alpha(0.8)),
|
|
18
|
+
// --primary-button-hover: color-mix(in oklab, var(--primary) 90%, transparent);
|
|
19
|
+
'primary-button-hover': rgba(chroma(theme.primary).alpha(0.9)),
|
|
20
|
+
// --secondary-button-hover: color-mix(in oklab, var(--secondary) 80%, transparent);
|
|
21
|
+
'secondary-button-hover': rgba(chroma(theme.secondary).alpha(0.8)),
|
|
22
|
+
// --destructive-button-hover: color-mix(in oklab, var(--destructive) 80%, transparent);
|
|
23
|
+
'destructive-button-hover': rgba(chroma(theme.destructive).alpha(0.8)),
|
|
24
|
+
// --divider-color: color-mix(in oklab, var(--border) 50%, transparent);
|
|
25
|
+
'divider-color': rgba(chroma(theme.border).alpha(0.5)),
|
|
26
|
+
// --focus-ring-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
|
|
27
|
+
'focus-ring-shadow': `0 0 0 3px ${rgba(chroma(theme.ring).alpha(0.5))}`
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const colors = [
|
|
31
|
+
'background',
|
|
32
|
+
'foreground',
|
|
33
|
+
'primary',
|
|
34
|
+
'primary-foreground',
|
|
35
|
+
'secondary',
|
|
36
|
+
'secondary-foreground',
|
|
37
|
+
'muted',
|
|
38
|
+
'muted-foreground',
|
|
39
|
+
'accent',
|
|
40
|
+
'accent-foreground',
|
|
41
|
+
'border',
|
|
42
|
+
'input',
|
|
43
|
+
'ring',
|
|
44
|
+
'destructive',
|
|
45
|
+
'warning',
|
|
46
|
+
'success'
|
|
47
|
+
];
|
|
48
|
+
function addColorFallback(theme) {
|
|
49
|
+
const updatedTheme = {
|
|
50
|
+
...theme,
|
|
51
|
+
...generateColorFallback(theme)
|
|
52
|
+
};
|
|
53
|
+
// RGB fallbacks for all Theme colors that use oklch, if the customer's browsers
|
|
54
|
+
// don't support them
|
|
55
|
+
for (const property of colors){
|
|
56
|
+
if (!chroma.valid(theme[property])) continue;
|
|
57
|
+
updatedTheme[property] = rgba(chroma(theme[property]));
|
|
58
|
+
}
|
|
59
|
+
return updatedTheme;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export { addColorFallback, generateColorFallback };
|
|
63
|
+
//# sourceMappingURL=generateColorFallback.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateColorFallback.mjs","sources":["../../../../../../../../web/src/ui/compat/generateColorFallback.ts"],"sourcesContent":["import chroma from 'chroma-js';\n\nimport type { ColorMixFallback, Theme } from '../components/themes/ThemeConfig';\n\n/* eslint-disable lingui/no-unlocalized-strings */\n\nfunction rgba(color: chroma.Color) {\n if (color.alpha() === 1) return `rgb(${color.rgb().join(',')})`;\n return `rgba(${color.rgba().join(',')})`;\n}\n\n/**\n * Takes a theme and dynamically generate the styles that uses color-mix,\n * as a fallback for browsers that do not support color-mix()\n */\nexport function generateColorFallback(theme: Theme): ColorMixFallback {\n // Don't use chroma.colorMix since chroma.js treats transparent as rgba(0, 0, 0, 0)\n // which means our color is mixed with black rather than the original color\n // with alpha 0, which is what browsers so instead\n return {\n // --tab-background: color-mix(in oklab, var(--accent) 80%, transparent);\n 'tab-background': rgba(chroma(theme.accent).alpha(0.8)),\n // --primary-button-hover: color-mix(in oklab, var(--primary) 90%, transparent);\n 'primary-button-hover': rgba(chroma(theme.primary).alpha(0.9)),\n // --secondary-button-hover: color-mix(in oklab, var(--secondary) 80%, transparent);\n 'secondary-button-hover': rgba(chroma(theme.secondary).alpha(0.8)),\n // --destructive-button-hover: color-mix(in oklab, var(--destructive) 80%, transparent);\n 'destructive-button-hover': rgba(chroma(theme.destructive).alpha(0.8)),\n // --divider-color: color-mix(in oklab, var(--border) 50%, transparent);\n 'divider-color': rgba(chroma(theme.border).alpha(0.5)),\n // --focus-ring-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);\n 'focus-ring-shadow': `0 0 0 3px ${rgba(chroma(theme.ring).alpha(0.5))}`,\n };\n}\n\nconst colors = [\n 'background',\n 'foreground',\n 'primary',\n 'primary-foreground',\n 'secondary',\n 'secondary-foreground',\n 'muted',\n 'muted-foreground',\n 'accent',\n 'accent-foreground',\n 'border',\n 'input',\n 'ring',\n 'destructive',\n 'warning',\n 'success',\n] as const satisfies (keyof Theme)[];\n\nexport function addColorFallback(theme: Theme): Theme {\n const updatedTheme = { ...theme, ...generateColorFallback(theme) };\n\n // RGB fallbacks for all Theme colors that use oklch, if the customer's browsers\n // don't support them\n for (const property of colors) {\n if (!chroma.valid(theme[property])) continue;\n updatedTheme[property] = rgba(chroma(theme[property]!));\n }\n\n return updatedTheme;\n}\n"],"names":["rgba","color","alpha","rgb","join","generateColorFallback","theme","chroma","accent","primary","secondary","destructive","border","ring","colors","addColorFallback","updatedTheme","property","valid"],"mappings":";;;AAIA,mDAEA,SAASA,IAAAA,CAAKC,KAAmB,EAAA;AAC/B,IAAA,IAAIA,KAAAA,CAAMC,KAAK,EAAA,KAAO,CAAA,EAAG,OAAO,CAAC,IAAI,EAAED,KAAAA,CAAME,GAAG,EAAA,CAAGC,IAAI,CAAC,GAAA,CAAA,CAAK,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,EAAEH,KAAAA,CAAMD,IAAI,GAAGI,IAAI,CAAC,GAAA,CAAA,CAAK,CAAC,CAAC;AAC1C;AAEA;;;IAIO,SAASC,qBAAAA,CAAsBC,KAAY,EAAA;;;;IAIhD,OAAO;;AAEL,QAAA,gBAAA,EAAkBN,KAAKO,MAAAA,CAAOD,KAAAA,CAAME,MAAM,CAAA,CAAEN,KAAK,CAAC,GAAA,CAAA,CAAA;;AAElD,QAAA,sBAAA,EAAwBF,KAAKO,MAAAA,CAAOD,KAAAA,CAAMG,OAAO,CAAA,CAAEP,KAAK,CAAC,GAAA,CAAA,CAAA;;AAEzD,QAAA,wBAAA,EAA0BF,KAAKO,MAAAA,CAAOD,KAAAA,CAAMI,SAAS,CAAA,CAAER,KAAK,CAAC,GAAA,CAAA,CAAA;;AAE7D,QAAA,0BAAA,EAA4BF,KAAKO,MAAAA,CAAOD,KAAAA,CAAMK,WAAW,CAAA,CAAET,KAAK,CAAC,GAAA,CAAA,CAAA;;AAEjE,QAAA,eAAA,EAAiBF,KAAKO,MAAAA,CAAOD,KAAAA,CAAMM,MAAM,CAAA,CAAEV,KAAK,CAAC,GAAA,CAAA,CAAA;;QAEjD,mBAAA,EAAqB,CAAC,UAAU,EAAEF,IAAAA,CAAKO,MAAAA,CAAOD,MAAMO,IAAI,CAAA,CAAEX,KAAK,CAAC,GAAA,CAAA,CAAA,CAAA;AAClE,KAAA;AACF;AAEA,MAAMY,MAAAA,GAAS;AACb,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,oBAAA;AACA,IAAA,WAAA;AACA,IAAA,sBAAA;AACA,IAAA,OAAA;AACA,IAAA,kBAAA;AACA,IAAA,QAAA;AACA,IAAA,mBAAA;AACA,IAAA,QAAA;AACA,IAAA,OAAA;AACA,IAAA,MAAA;AACA,IAAA,aAAA;AACA,IAAA,SAAA;AACA,IAAA;AACD,CAAA;AAEM,SAASC,iBAAiBT,KAAY,EAAA;AAC3C,IAAA,MAAMU,YAAAA,GAAe;AAAE,QAAA,GAAGV,KAAK;AAAE,QAAA,GAAGD,sBAAsBC,KAAAA;AAAO,KAAA;;;IAIjE,KAAK,MAAMW,YAAYH,MAAAA,CAAQ;AAC7B,QAAA,IAAI,CAACP,MAAAA,CAAOW,KAAK,CAACZ,KAAK,CAACW,SAAS,CAAA,EAAG;AACpCD,QAAAA,YAAY,CAACC,QAAAA,CAAS,GAAGjB,KAAKO,MAAAA,CAAOD,KAAK,CAACW,QAAAA,CAAS,CAAA,CAAA;AACtD,IAAA;IAEA,OAAOD,YAAAA;AACT;;;;"}
|