@antscorp/antsomi-ui 1.3.7-beta.70 → 1.3.7-beta.72
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/README.md +167 -78
- package/dist/0b4e3284d58d239d9b45.eot +0 -0
- package/dist/214.index.js +1 -0
- package/dist/432.index.js +1 -0
- package/dist/527.index.js +431 -0
- package/dist/580.index.js +1 -0
- package/dist/8b3d32a72b5f8509ae81.woff +0 -0
- package/dist/ad2f555da19d88ea413b.ttf +0 -0
- package/dist/assets/03cfac3ae7bc38c983a1.png +0 -0
- package/dist/assets/04124adb9943ac13c331.png +0 -0
- package/dist/assets/041d08f097ed062c8b5a.png +0 -0
- package/dist/assets/051d95d1b03279c61c3b.png +0 -0
- package/dist/assets/05baf245d63f058bdbdc.png +0 -0
- package/dist/assets/05ce1a8f7d6822bca4b8.png +0 -0
- package/dist/assets/06c925709fb967cebcce.png +0 -0
- package/dist/assets/07d6ee6ef09c64a5d5e2.png +0 -0
- package/dist/assets/09208aea631fa021e064.png +0 -0
- package/dist/assets/0a309db610a29a4179d2.png +0 -0
- package/dist/assets/0be0132dd955b59d48d5.png +0 -0
- package/dist/assets/0c84f36ef2b21e8e2caf.png +0 -0
- package/dist/assets/0df8254b26510011ab1b.png +0 -0
- package/dist/assets/0fdd546dc94fd68e2840.png +0 -0
- package/dist/assets/10376b9cdd16f25096ae.png +0 -0
- package/dist/assets/10f5f82b4328fbd8fb73.png +0 -0
- package/dist/assets/116102d666f7a59d3c4f.png +0 -0
- package/dist/assets/118e88887ab23834799e.png +0 -0
- package/dist/assets/11a17e76ee4aed1a75d2.png +0 -0
- package/dist/assets/11b8327e87a85fa30581.png +0 -0
- package/dist/assets/12e09327911b75d12e70.png +0 -0
- package/dist/assets/1533a428e4c7289d8182.png +0 -0
- package/dist/assets/1612b3127bc5cd75152b.png +0 -0
- package/dist/assets/1637b3eae164e51b7e07.png +0 -0
- package/dist/assets/16685aa5424bbca0a02c.png +0 -0
- package/dist/assets/16d0ba8bbbcb1d762732.png +0 -0
- package/dist/assets/17153d6968ff69831cc4.png +0 -0
- package/dist/assets/1785f647cda94edb1f70.png +0 -0
- package/dist/assets/17afd13b95f21e77999a.png +0 -0
- package/dist/assets/199cd9b3f8087be2a5a8.png +0 -0
- package/dist/assets/1c0a8da5077411d92811.png +0 -0
- package/dist/assets/1d359e08bd9e494ee682.png +0 -0
- package/dist/assets/1e1f9e305c74afb97068.png +0 -0
- package/dist/assets/1e9b2310d1afc9edf2ef.png +0 -0
- package/dist/assets/1efac46b55c5c78d1bef.png +0 -0
- package/dist/assets/20e42321b67d2e48b2d1.png +0 -0
- package/dist/assets/210aa2869c9f0708e6bd.png +0 -0
- package/dist/assets/213b3900fb7eaabc9def.png +0 -0
- package/dist/assets/21e23afb572d687ba90c.png +0 -0
- package/dist/assets/225e04633ffaec2adcda.png +0 -0
- package/dist/assets/23054dac254e126f8173.png +0 -0
- package/dist/assets/231844041bb6edbfc586.png +0 -0
- package/dist/assets/249fb85704ff7a4e903a.png +0 -0
- package/dist/assets/2564ff3567d32a6a81a0.png +0 -0
- package/dist/assets/25fd59b1b6fd551c23ff.png +0 -0
- package/dist/assets/2649663649740d2bccde.png +0 -0
- package/dist/assets/2803ebb0f3a4466810c6.png +0 -0
- package/dist/assets/294fccfb8d6e9215ab6f.png +0 -0
- package/dist/assets/2a2fa9555c1de890fe70.png +0 -0
- package/dist/assets/2a3055a5826225895d01.png +0 -0
- package/dist/assets/2a37b15e7b886bfce887.png +0 -0
- package/dist/assets/2a68d393f743d3253a1a.png +0 -0
- package/dist/assets/2c28ac0f13b02551ca25.png +0 -0
- package/dist/assets/2d3452197f30e473615f.png +0 -0
- package/dist/assets/2d64967dc67e0f5ac33e.png +0 -0
- package/dist/assets/2d8b063a83866bfa6914.png +0 -0
- package/dist/assets/2d8b20f71ecbfaf67c4a.png +0 -0
- package/dist/assets/2dd22b83c77f19a40c61.png +0 -0
- package/dist/assets/2ea9b8057d681df0fac8.png +0 -0
- package/dist/assets/2fc58b16dc1544624b90.png +0 -0
- package/dist/assets/30a2d8d92f06073b95b6.png +0 -0
- package/dist/assets/312a531fb8322e1c0986.png +0 -0
- package/dist/assets/33b34204ec395b77cb77.png +0 -0
- package/dist/assets/34411e9fe1e6aad66018.png +0 -0
- package/dist/assets/363836d69538acb54351.png +0 -0
- package/dist/assets/375355bd82547f68c8fd.png +0 -0
- package/dist/assets/39a7c31ade96707b7c1c.png +0 -0
- package/dist/assets/3bdcac18b5471e988636.png +0 -0
- package/dist/assets/3be11fc033f0074c0e0e.svg +635 -0
- package/dist/assets/3c9f54a6d79af34bc0e2.png +0 -0
- package/dist/assets/40a1150cc90b996ea45e.png +0 -0
- package/dist/assets/42defb8a33c8774983d9.png +0 -0
- package/dist/assets/42e8b15d5d6f9c1017af.png +0 -0
- package/dist/assets/4433268e3d3599978aa7.png +0 -0
- package/dist/assets/4529487635a8ee85e859.png +0 -0
- package/dist/assets/464fb17c8479cb9aa905.png +0 -0
- package/dist/assets/4719dd2de6b8397b65f6.png +0 -0
- package/dist/assets/4a824e811d4678e0e3a2.png +0 -0
- package/dist/assets/4d48beef25893d1bcacf.png +0 -0
- package/dist/assets/4ebaa2b563dd76a7ff02.png +0 -0
- package/dist/assets/4eec900de287be84627e.png +0 -0
- package/dist/assets/50d3e14133c3a61570c6.png +0 -0
- package/dist/assets/52129e02a1e15240d930.png +0 -0
- package/dist/assets/52290d2a364d71db1bd4.png +0 -0
- package/dist/assets/534e6aab4651d93b98cd.png +0 -0
- package/dist/assets/54a204623b50b0392f9d.png +0 -0
- package/dist/assets/5530cdc0e34c2d62e7a6.png +0 -0
- package/dist/assets/55e49b6032a6093f7546.png +0 -0
- package/dist/assets/566a307c14a66a6a896d.png +0 -0
- package/dist/assets/5b545c618eecb8979b57.png +0 -0
- package/dist/assets/5ef24f89bff30907da18.png +0 -0
- package/dist/assets/5fbf1b6cb2bbd7d38344.png +0 -0
- package/dist/assets/5fe9085a04e98f8283ed.png +0 -0
- package/dist/assets/5ffd69204b1f1d9a735d.png +0 -0
- package/dist/assets/6029e946f170ebcc0df4.png +0 -0
- package/dist/assets/615dd68cff2d5ff37de4.png +0 -0
- package/dist/assets/616f35c90b1c441247ce.png +0 -0
- package/dist/assets/62d0bb8585d97b9fb93a.png +0 -0
- package/dist/assets/63e7bcc514c0959efb3d.png +0 -0
- package/dist/assets/63fd89258e9f0cef0e8a.png +0 -0
- package/dist/assets/652a8b972efe9a6bf82c.png +0 -0
- package/dist/assets/662fc3d77b3fc210ac82.png +0 -0
- package/dist/assets/66720ae403a17f575d01.png +0 -0
- package/dist/assets/66a1e5c49d57ddd648e0.png +0 -0
- package/dist/assets/682437b58fce819117d5.png +0 -0
- package/dist/assets/6bdbeeaea7545cd644a0.png +0 -0
- package/dist/assets/6be09f06fd0affaf2fd6.png +0 -0
- package/dist/assets/6c943d16f0d934f6acdb.png +0 -0
- package/dist/assets/6d02c2d964a751421da8.png +0 -0
- package/dist/assets/6d1cf37281ebc39314ce.png +0 -0
- package/dist/assets/6e7bac0f650daae979e4.png +0 -0
- package/dist/assets/6ff2dd847dc71d5c9550.png +0 -0
- package/dist/assets/70237ed2aa82176091f5.png +0 -0
- package/dist/assets/70fc6e254cb1cc0e2c46.png +0 -0
- package/dist/assets/7198ac973d020819f7df.png +0 -0
- package/dist/assets/738a71547df74372c170.png +0 -0
- package/dist/assets/75c11537fb2452a5e931.png +0 -0
- package/dist/assets/761127170cff00511ae9.png +0 -0
- package/dist/assets/770b13ac8b9bb79d7a62.png +0 -0
- package/dist/assets/7798d82ce8a9059f11be.png +0 -0
- package/dist/assets/77b2d637bf9d37240059.png +0 -0
- package/dist/assets/78306a6d2ef4f7267291.png +0 -0
- package/dist/assets/7880ca1fdbac3643c86f.png +0 -0
- package/dist/assets/7880d4ae3f3a7c3053f1.png +0 -0
- package/dist/assets/790a97fe913530df720e.png +0 -0
- package/dist/assets/7b13f21f69bdd96b1a41.png +0 -0
- package/dist/assets/7bc11c25360b14b4139d.png +0 -0
- package/dist/assets/7cd320711388220dbdf9.png +0 -0
- package/dist/assets/7cd7249d01b738fc14cb.png +0 -0
- package/dist/assets/7d63dd75edcbef5eab39.png +0 -0
- package/dist/assets/7e00db194a3ded8393eb.png +0 -0
- package/dist/assets/7e0936755f1e406517e2.png +0 -0
- package/dist/assets/7f733c741988bae849cc.png +0 -0
- package/dist/assets/7fa095e6cea829c24129.png +0 -0
- package/dist/assets/7fb3f8ff32bcaf7a7527.png +0 -0
- package/dist/assets/7fb70af210b629d3eb0c.png +0 -0
- package/dist/assets/806da3574b3f03ee55b7.png +0 -0
- package/dist/assets/80f0628818c6e50234e5.png +0 -0
- package/dist/assets/810e763e3b50a6ff9858.png +0 -0
- package/dist/assets/816eeaef98b2b85bc0a4.png +0 -0
- package/dist/assets/85ebffb1567556134327.png +0 -0
- package/dist/assets/869b12e92824d762f3fb.png +0 -0
- package/dist/assets/86e47021eb8ba9c83328.png +0 -0
- package/dist/assets/89a7e748e188aa5ce7a4.png +0 -0
- package/dist/assets/89e2c04275dbd564fc95.png +0 -0
- package/dist/assets/8dbc9f7c183aa1f9366c.png +0 -0
- package/dist/assets/8e1813b737b6d77210a3.png +0 -0
- package/dist/assets/8e336b7c99947f0c6c73.png +0 -0
- package/dist/assets/8f05c28a9622f01737f5.png +0 -0
- package/dist/assets/91a3cfe2f01f8332652b.png +0 -0
- package/dist/assets/929bef3a6a5008c1cd9f.png +0 -0
- package/dist/assets/92c6f1705ecc7835caa4.png +0 -0
- package/dist/assets/93466d79d515c08bf6f6.png +0 -0
- package/dist/assets/93796fef8e146465c12b.png +0 -0
- package/dist/assets/9468534045e0fef49315.png +0 -0
- package/dist/assets/94b4f0ba83af81a8d923.png +0 -0
- package/dist/assets/96c3af1468f685c7eb16.png +0 -0
- package/dist/assets/97a6979fbe779183ab5e.png +0 -0
- package/dist/assets/9948a2077fb8885b09a6.png +0 -0
- package/dist/assets/9978a54182b8cb24fa06.png +0 -0
- package/dist/assets/99be4e86a0f9caa9709c.png +0 -0
- package/dist/assets/9b48a4a4ef8f6fa20b40.png +0 -0
- package/dist/assets/a05a2bf953e2448eb9dd.png +0 -0
- package/dist/assets/a1f809949c16c0951ee3.png +0 -0
- package/dist/assets/a207844ad0d2a66a8509.png +0 -0
- package/dist/assets/a3260ec8452ad74c01c5.png +0 -0
- package/dist/assets/a47254876c2936d12ebd.png +0 -0
- package/dist/assets/a4c67aa90ddb42e4ffe1.png +0 -0
- package/dist/assets/a50a87b175236d7632e4.png +0 -0
- package/dist/assets/a52b706048084b21efb1.png +0 -0
- package/dist/assets/a5b66d71f1d1cd62b3cc.png +0 -0
- package/dist/assets/a7b5461a8fc65988e9bd.png +0 -0
- package/dist/assets/a918e91c423f5722b1eb.png +0 -0
- package/dist/assets/a94c8677ccbc4357d5cb.png +0 -0
- package/dist/assets/aaf3040dc3c489510e9f.png +0 -0
- package/dist/assets/ab5d3b33839c65e5b5b6.png +0 -0
- package/dist/assets/ad1ec3689456db3aac83.png +0 -0
- package/dist/assets/b18659ae77bad7b79e78.png +0 -0
- package/dist/assets/b77b497e90309f691778.png +0 -0
- package/dist/assets/b7a08efbfa36ba940d70.png +0 -0
- package/dist/assets/b91011aeb7ff85a74374.png +0 -0
- package/dist/assets/b95ffb9c574aa1aa29e3.png +0 -0
- package/dist/assets/ba70dffa7f40c2ce698e.png +0 -0
- package/dist/assets/bcd53e69974ee455b95d.png +0 -0
- package/dist/assets/be54178060701d82de39.png +0 -0
- package/dist/assets/bfb9cf6473c43ea3c384.png +0 -0
- package/dist/assets/c029f64b6ddfbe291b06.png +0 -0
- package/dist/assets/c0a42df1c6eec859507e.png +0 -0
- package/dist/assets/c27818ba2d069f35555b.png +0 -0
- package/dist/assets/c2901dd9375dc66b78d9.png +0 -0
- package/dist/assets/c2b1a2e1c7544a8172f1.png +0 -0
- package/dist/assets/c347bc33c43df93ef597.png +0 -0
- package/dist/assets/c3d4316c7f0e568290cc.png +0 -0
- package/dist/assets/c5ce38bdbb3866fbd5c1.png +0 -0
- package/dist/assets/c5ff99235af06d46eed1.png +0 -0
- package/dist/assets/c61fdd37d577b79fd724.png +0 -0
- package/dist/assets/c7126c6ebc2920cd73cb.png +0 -0
- package/dist/assets/c74e9d6a9ac4f04cfd3d.png +0 -0
- package/dist/assets/c8eb29b47b9cc412ddca.png +0 -0
- package/dist/assets/c91e248e824efce278a7.png +0 -0
- package/dist/assets/c9927f45fb80aa059c09.png +0 -0
- package/dist/assets/c9d9e5ad52f8ad9865e8.png +0 -0
- package/dist/assets/ca8fe3a54ac277a3c13b.png +0 -0
- package/dist/assets/cbc709ee2adb699c50e4.svg +1 -0
- package/dist/assets/cc7cfd265ab0ba070e16.png +0 -0
- package/dist/assets/cc9c4202225fb243860e.png +0 -0
- package/dist/assets/cdc943c76b426d711f89.png +0 -0
- package/dist/assets/cefdf6693a86ffa4fce3.png +0 -0
- package/dist/assets/cf32336034371ff91222.png +0 -0
- package/dist/assets/cff5f7e2051a9f2a28ef.png +0 -0
- package/dist/assets/d1f2e1906b5c0c4fa443.png +0 -0
- package/dist/assets/d2664f36c5397473647a.png +0 -0
- package/dist/assets/d3228f6d0abca1c9f39b.png +0 -0
- package/dist/assets/d400de12326a2e2f8aaa.png +0 -0
- package/dist/assets/d45925ab837ef04f929f.png +0 -0
- package/dist/assets/d60fb74ce7cbd3895951.png +0 -0
- package/dist/assets/d7cb2e169f1042c09f3f.png +0 -0
- package/dist/assets/db69c05a76b9d7b83b8d.png +0 -0
- package/dist/assets/dbd7d27883ecb5d064e5.png +0 -0
- package/dist/assets/dbfd076b70b5c6e38b47.png +0 -0
- package/dist/assets/dcb92e65db3b1239f932.png +0 -0
- package/dist/assets/dcf6612eb688f70b6ef8.png +0 -0
- package/dist/assets/dd91c9bbf5e64421b8ea.png +0 -0
- package/dist/assets/ddfbdd57f1002196a7a9.png +0 -0
- package/dist/assets/df199f9281f969c02b6e.png +0 -0
- package/dist/assets/df5225510d929568b1a4.png +0 -0
- package/dist/assets/e19f0551039779435cd3.png +0 -0
- package/dist/assets/e29b2eb6c8b2d1b24878.png +0 -0
- package/dist/assets/e2ae780e2e83a4d1c768.png +0 -0
- package/dist/assets/e3b4defccd5333d7a04e.png +0 -0
- package/dist/assets/e3d63edb193aa8277bc3.png +0 -0
- package/dist/assets/e3eaac75b2502b4a4cc6.png +0 -0
- package/dist/assets/e4b605b6e2b32f21bd9e.png +0 -0
- package/dist/assets/e54c620e36c434f9a02e.png +0 -0
- package/dist/assets/e5df56fbc34fde2aad4a.png +0 -0
- package/dist/assets/e79fa764ff671f49422f.png +0 -0
- package/dist/assets/e8f6b412df4854b0bfad.svg +87 -0
- package/dist/assets/ea352701714e3b3228bf.png +0 -0
- package/dist/assets/ea884837e370d820cc30.png +0 -0
- package/dist/assets/ecaaf45476df71b70d54.png +0 -0
- package/dist/assets/ed25b069a8a2624b7b23.png +0 -0
- package/dist/assets/ed6c620052799dfa1ed2.png +0 -0
- package/dist/assets/ed8900cdbb8267eb7ab2.png +0 -0
- package/dist/assets/edccc3e392a6280bea22.png +0 -0
- package/dist/assets/edf6c21e45b285b61d4c.png +0 -0
- package/dist/assets/ee787f2d4d3fb28cda76.png +0 -0
- package/dist/assets/f11a9dabd1062ef85ccc.png +0 -0
- package/dist/assets/f4e415d9975a969b2a67.png +0 -0
- package/dist/assets/f5e22a792c07756d8dc2.png +0 -0
- package/dist/assets/f8cd1e99bc17f3db5f1e.png +0 -0
- package/dist/assets/fa2c1829526a8879de81.png +0 -0
- package/dist/assets/fac4a283bb014d77168d.png +0 -0
- package/dist/assets/fba77ae9697aa7dc71b6.png +0 -0
- package/dist/assets/ff7db9ff05a910761543.png +0 -0
- package/dist/index.js +14596 -0
- package/dist/index.js.LICENSE.txt +367 -0
- package/dist/main.css +5332 -0
- package/es/__mocks__/1000_city.json +802 -802
- package/es/__mocks__/sql-query.json +56 -56
- package/es/assets/css/main.scss +8 -8
- package/es/assets/images/feedback.svg +3 -3
- package/es/assets/svg/mobile-frame.svg +3 -3
- package/es/assets/svg/warning-icon.svg +5 -5
- package/es/components/atoms/Alert/Alert.js +28 -28
- package/es/components/atoms/ContentEditable/styled.js +16 -16
- package/es/components/atoms/DividerPure/styled.js +35 -35
- package/es/components/atoms/Eyedropper/styled.js +39 -39
- package/es/components/atoms/Icon/index.js +19 -19
- package/es/components/atoms/Iframe/Iframe.js +18 -18
- package/es/components/atoms/Input/styled.js +104 -104
- package/es/components/atoms/InputDynamic/styled.js +284 -284
- package/es/components/atoms/MobileBrandingBar/styled.js +21 -21
- package/es/components/atoms/MobileFrame/styled.js +30 -30
- package/es/components/atoms/MobileFrameV2/styled.js +42 -42
- package/es/components/atoms/MobileFrameV3/styled.js +31 -31
- package/es/components/atoms/NotificationStatus/styled.js +10 -10
- package/es/components/atoms/PreviewTabs/styled.js +69 -69
- package/es/components/atoms/Radio/index.js +16 -16
- package/es/components/atoms/ReactIframe/ReactIframe.js +5 -5
- package/es/components/atoms/ReactIframe/styled.js +9 -9
- package/es/components/atoms/RequiredLabel/styled.js +3 -3
- package/es/components/atoms/ScrollBox/index.js +5 -5
- package/es/components/atoms/Scrollbars/styled.js +21 -21
- package/es/components/atoms/SelectAssociatedTag/styled.js +51 -51
- package/es/components/atoms/SlideBar/styled.js +194 -194
- package/es/components/atoms/Slider/styled.js +31 -31
- package/es/components/atoms/Space/Space.js +4 -4
- package/es/components/atoms/Spin/styled.js +11 -11
- package/es/components/atoms/Steps/styled.js +244 -244
- package/es/components/atoms/Switch/styled.js +56 -56
- package/es/components/atoms/Tag/Tag.js +11 -11
- package/es/components/atoms/Text/styled.js +34 -34
- package/es/components/icons/DomainManagementIcon.js +1 -1
- package/es/components/icons/LoadingIcon.js +33 -33
- package/es/components/icons/document/styled.js +43 -43
- package/es/components/index.scss +2 -2
- package/es/components/molecules/AccessDenied/styled.js +28 -28
- package/es/components/molecules/AccountSelection/styled.js +110 -110
- package/es/components/molecules/AddDynamicContent/styled.js +23 -23
- package/es/components/molecules/AlignSetting/styled.js +4 -4
- package/es/components/molecules/ApplyPopupContent/styled.js +32 -32
- package/es/components/molecules/CalendarSelection/components/AutoUpdateTo/styled.js +8 -8
- package/es/components/molecules/CalendarSelection/components/CustomPicker/styled.js +79 -79
- package/es/components/molecules/CalendarSelection/components/Footer/styled.js +4 -4
- package/es/components/molecules/CalendarSelection/components/RangePicker/styled.js +21 -21
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/components/Option/Option.js +26 -26
- package/es/components/molecules/CalendarSelection/components/RangeSelectOptions/styled.js +30 -30
- package/es/components/molecules/CalendarSelection/components/TimeRangeDisplay/styled.js +26 -26
- package/es/components/molecules/CalendarSelection/styled.js +8 -8
- package/es/components/molecules/CaptureScreen/components/CommentBox/styled.js +119 -119
- package/es/components/molecules/CaptureScreen/components/Cursor/styled.js +67 -67
- package/es/components/molecules/CaptureScreen/styled.js +240 -240
- package/es/components/molecules/ChartTab/components/styled.js +24 -24
- package/es/components/molecules/ChartTab/styled.js +20 -20
- package/es/components/molecules/ChatBox/AntsomiAI.js +8 -8
- package/es/components/molecules/ChatBox/ChatBoxInsight/QuestionItem.js +9 -9
- package/es/components/molecules/ChatBox/ChatBoxInsight/styled.js +365 -365
- package/es/components/molecules/ChatBox/styled.js +324 -324
- package/es/components/molecules/CodeStructure/styled.js +5 -5
- package/es/components/molecules/ColorPicker/ChromePicker/styled.js +10 -10
- package/es/components/molecules/ColorPicker/CustomPicker/styled.js +89 -89
- package/es/components/molecules/ColorPicker/SketchPicker/styled.js +5 -5
- package/es/components/molecules/ColorPicker/styled.js +7 -7
- package/es/components/molecules/ColorSetting/styled.js +39 -39
- package/es/components/molecules/DatePicker/components/AdvancedPicker/styled.js +110 -110
- package/es/components/molecules/DatePickerV2/styled.js +6 -6
- package/es/components/molecules/DisplayFormat/styled.js +12 -12
- package/es/components/molecules/DrawerDetail/components/ToggleDrawerSizeButton.js +24 -24
- package/es/components/molecules/DrawerDetail/styled.js +109 -109
- package/es/components/molecules/Dropdown/style.scss +11 -11
- package/es/components/molecules/Dropdown/styled.js +28 -28
- package/es/components/molecules/EdgeSetting/styled.js +10 -10
- package/es/components/molecules/EditableName/styled.js +70 -70
- package/es/components/molecules/EditingList/styled.js +29 -29
- package/es/components/molecules/EditingListV2/components/List/List.js +9 -9
- package/es/components/molecules/EditorTab/styled.js +156 -156
- package/es/components/molecules/EmojiCollections/styled.js +22 -22
- package/es/components/molecules/EmojiPopover/styled.js +4 -4
- package/es/components/molecules/EmptyData/EmptyData.d.ts +1 -1
- package/es/components/molecules/EmptyData/EmptyData.js +4 -2
- package/es/components/molecules/EmptyData/styled.js +53 -53
- package/es/components/molecules/EyedropperButton/styled.js +19 -19
- package/es/components/molecules/FontSizeInput/index.scss +15 -15
- package/es/components/molecules/FontSizeInput/styled.js +31 -31
- package/es/components/molecules/GradientSetting/styled.js +57 -57
- package/es/components/molecules/HeaderV2/styled.js +70 -70
- package/es/components/molecules/IconSelection/styled.js +69 -69
- package/es/components/molecules/ImageEditor/components/ModalShortcut.js +21 -21
- package/es/components/molecules/ImageEditor/styled.js +5 -5
- package/es/components/molecules/ImagePreview/styled.js +3 -3
- package/es/components/molecules/InputNumberWithUnit/styled.js +14 -14
- package/es/components/molecules/InputSearch/index.d.ts +1 -1
- package/es/components/molecules/InputSearch/index.js +2 -1
- package/es/components/molecules/InputSearch/styled.js +41 -41
- package/es/components/molecules/InputSelectAttribute/styled.js +22 -22
- package/es/components/molecules/ItemNotFound/styled.js +26 -26
- package/es/components/molecules/MatchAnySelect/components/ExtendValuePopup.js +8 -8
- package/es/components/molecules/MatchAnySelect/styled.js +247 -247
- package/es/components/molecules/Modal/styled.js +63 -63
- package/es/components/molecules/ModalSelect/styled.js +152 -152
- package/es/components/molecules/ModalV2/ModalV2.js +2 -1
- package/es/components/molecules/ModalV2/styled.js +27 -27
- package/es/components/molecules/PopupDraggable/styled.js +57 -57
- package/es/components/molecules/PreviewModal/styled.js +26 -26
- package/es/components/molecules/ProcessLoading/styled.js +2 -2
- package/es/components/molecules/QuillEditor/CustomToolbar.js +3165 -3165
- package/es/components/molecules/QuillEditor/EditorToolbar.js +7 -7
- package/es/components/molecules/QuillEditor/styled.js +25 -25
- package/es/components/molecules/RadioGroup/styled.js +9 -9
- package/es/components/molecules/RequestAccess/styled.js +38 -38
- package/es/components/molecules/ResizeGrid/components/Cell/styled.js +77 -77
- package/es/components/molecules/ResizeGrid/styled.js +50 -50
- package/es/components/molecules/RichMenu/RichMenuBlock/RichMenuCell/styled.js +118 -118
- package/es/components/molecules/RichMenu/RichMenuBlock/styled.js +13 -13
- package/es/components/molecules/RichMenu/RichMenuChatBar/TypingChat/styled.js +40 -40
- package/es/components/molecules/RichMenu/RichMenuChatBar/styled.js +27 -27
- package/es/components/molecules/RichMenu/RichMenuMobileView/RichMenuMobileView.js +2 -2
- package/es/components/molecules/RichMenu/RichMenuMobileView/styled.js +38 -38
- package/es/components/molecules/SearchPopover/components/PopoverSelect/styled.js +36 -36
- package/es/components/molecules/SearchPopover/components/PopoverSelect/styles.scss +7 -7
- package/es/components/molecules/SearchPopover/styled.js +32 -32
- package/es/components/molecules/Select/styled.js +74 -74
- package/es/components/molecules/SelectAccount/styled.js +147 -147
- package/es/components/molecules/SelectEventAttribute/styled.js +8 -8
- package/es/components/molecules/SelectMulti/styled.js +62 -62
- package/es/components/molecules/SelectV2/styled.js +124 -124
- package/es/components/molecules/SettingWrapper/styled.js +12 -12
- package/es/components/molecules/ShareAccess/components/GeneralAccess/styled.js +56 -56
- package/es/components/molecules/ShareAccess/components/LayoutContent/styled.js +5 -5
- package/es/components/molecules/ShareAccess/components/ModalTransferOwnerShip/styled.js +15 -15
- package/es/components/molecules/ShareAccess/components/PeopleAccess/styled.js +63 -63
- package/es/components/molecules/ShareAccess/components/SearchUser/styled.js +31 -31
- package/es/components/molecules/SliderWithInputNumber/styled.js +2 -2
- package/es/components/molecules/Tabs/Tabs.js +11 -11
- package/es/components/molecules/TagifyInput/TagifyInput.js +50 -50
- package/es/components/molecules/TagifyInput/styled.js +37 -37
- package/es/components/molecules/TagifyInput/utils.js +13 -13
- package/es/components/molecules/TagifyInput/utils.style.js +208 -208
- package/es/components/molecules/TemplateSaveAs/components/Category/Category.js +5 -5
- package/es/components/molecules/TemplateSaveAs/components/ImageSlider/styled.js +276 -276
- package/es/components/molecules/TemplateSaveAs/styled.js +134 -134
- package/es/components/molecules/ThumbnailCard/styled.js +92 -92
- package/es/components/molecules/Tree/styled.js +38 -38
- package/es/components/molecules/UnsubscribePreferences/styled.js +7 -7
- package/es/components/molecules/UnsubscribePreview/components/styled.js +53 -53
- package/es/components/molecules/UnsubscribePreview/styled.js +48 -48
- package/es/components/molecules/UploadImage/styled.js +114 -114
- package/es/components/molecules/VirtualizedMenu/styled.js +103 -103
- package/es/components/molecules/index.scss +1 -1
- package/es/components/organism/AccountProfile/components/AccountSetting/components/EditableInput/styles.js +98 -98
- package/es/components/organism/AccountProfile/components/AccountSetting/components/LanguageSelector/styles.js +18 -18
- package/es/components/organism/AccountProfile/components/AccountSetting/styled.js +543 -543
- package/es/components/organism/AccountProfile/components/AccountSetting/styles.scss +39 -39
- package/es/components/organism/AccountSharing/styled.js +346 -346
- package/es/components/organism/ActivityTimeline/__mocks__/event_tracking.json +1290 -1290
- package/es/components/organism/ActivityTimeline/__mocks__/timeline.json +1896 -1896
- package/es/components/organism/ActivityTimeline/components/ActionHistory/styled.js +28 -28
- package/es/components/organism/ActivityTimeline/components/CardMember/styled.js +60 -60
- package/es/components/organism/ActivityTimeline/components/ItemGroupEvent/styled.js +4 -4
- package/es/components/organism/ActivityTimeline/components/List/styled.js +77 -77
- package/es/components/organism/ActivityTimeline/components/ListItem/styled.js +37 -37
- package/es/components/organism/ActivityTimeline/components/ProductCard/styled.js +92 -92
- package/es/components/organism/ActivityTimeline/components/Redeem/styled.js +7 -7
- package/es/components/organism/ActivityTimeline/components/Slide/styled.js +20 -20
- package/es/components/organism/ActivityTimeline/components/TimeLineTitle/styled.js +7 -7
- package/es/components/organism/ActivityTimeline/components/TimelineSection/styled.js +69 -69
- package/es/components/organism/ActivityTimeline/styled.js +43 -43
- package/es/components/organism/AlgorithmsSetting/styled.js +35 -35
- package/es/components/organism/BasicLogin/components/ChooseMethod/styled.js +19 -19
- package/es/components/organism/BasicLogin/components/LoginWithEmail/styled.js +3 -3
- package/es/components/organism/BasicLogin/components/LoginWithGG/styled.js +3 -3
- package/es/components/organism/BasicLogin/components/SignIn/styled.js +8 -8
- package/es/components/organism/BasicLogin/components/WidgetLayout/styled.js +18 -18
- package/es/components/organism/BasicLogin/styled.js +107 -107
- package/es/components/organism/ContentSources/styled.js +50 -50
- package/es/components/organism/DataTable/components/AddButton/index.js +8 -8
- package/es/components/organism/DataTable/components/ModifyColumn/styled.js +18 -18
- package/es/components/organism/DataTable/components/Pagination/styled.js +26 -26
- package/es/components/organism/DataTable/components/Table/styled.js +135 -135
- package/es/components/organism/DataTable/components/Toolbar/SearchPopover.js +17 -17
- package/es/components/organism/DataTable/components/Toolbar/styled.js +70 -70
- package/es/components/organism/DataTable/styled/index.js +84 -84
- package/es/components/organism/Filter/components/FilterCondition/styled.js +34 -34
- package/es/components/organism/Filter/styled.js +109 -109
- package/es/components/organism/FilterSetting/components/common/InputArray/styled.js +5 -5
- package/es/components/organism/FilterSetting/components/common/InputOrSelect/index.js +63 -63
- package/es/components/organism/FilterSetting/components/common/InputSelectMulti/ColumnSuggestion/index.js +31 -31
- package/es/components/organism/FilterSetting/components/common/InputSelectMulti/Tree/index.js +22 -22
- package/es/components/organism/FilterSetting/components/common/InputSelectMulti/index.js +55 -55
- package/es/components/organism/FilterSetting/styled.js +19 -19
- package/es/components/organism/GenerativeInsights/styled.js +55 -55
- package/es/components/organism/Help/styled.js +267 -267
- package/es/components/organism/LeftMenu/components/HomeMenu/styled.js +39 -39
- package/es/components/organism/LeftMenu/components/common/ChildMenu/components/MenuItemImage/styled.js +16 -16
- package/es/components/organism/LeftMenu/components/common/ChildMenu/styled.js +156 -156
- package/es/components/organism/LeftMenu/styled.js +216 -216
- package/es/components/organism/Login/components/ChooseMethod/styled.js +19 -19
- package/es/components/organism/Login/components/ForgotPassword/styled.js +8 -8
- package/es/components/organism/Login/components/IconInfo/IconInfo.js +1 -1
- package/es/components/organism/Login/components/LoginSelectPortal/Item/styled.js +31 -31
- package/es/components/organism/Login/components/LoginSelectPortal/LoginSelectPortal.js +1 -1
- package/es/components/organism/Login/components/LoginSelectPortal/styled.js +3 -3
- package/es/components/organism/Login/components/LoginWithEmail/styled.js +3 -3
- package/es/components/organism/Login/components/LoginWithGG/styled.js +3 -3
- package/es/components/organism/Login/components/SetupGGAuthenticator/styled.js +7 -7
- package/es/components/organism/Login/components/SignIn/styled.js +8 -8
- package/es/components/organism/Login/components/VerifyAccount/styled.js +13 -13
- package/es/components/organism/Login/components/WidgetLayout/styled.js +18 -18
- package/es/components/organism/Login/styled.js +115 -115
- package/es/components/organism/LoginV2/LoginV2.d.ts +3 -0
- package/es/components/organism/LoginV2/LoginV2.js +957 -0
- package/es/components/organism/LoginV2/components/Avatar/Avatar.d.ts +8 -0
- package/es/components/organism/LoginV2/components/Avatar/Avatar.js +11 -0
- package/es/components/organism/LoginV2/components/Avatar/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/Avatar/index.js +1 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/ChooseMethod.d.ts +9 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/ChooseMethod.js +54 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/Method.d.ts +10 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/Method.js +13 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/index.js +1 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/styled.d.ts +10 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/styled.js +24 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/utils.d.ts +1 -0
- package/es/components/organism/LoginV2/components/ChooseMethod/utils.js +1 -0
- package/es/components/organism/LoginV2/components/ForgotPassword/ForgotPassword.d.ts +14 -0
- package/es/components/organism/LoginV2/components/ForgotPassword/ForgotPassword.js +195 -0
- package/es/components/organism/LoginV2/components/ForgotPassword/index.d.ts +2 -0
- package/es/components/organism/LoginV2/components/ForgotPassword/index.js +2 -0
- package/es/components/organism/LoginV2/components/ForgotPassword/styled.d.ts +1 -0
- package/es/components/organism/LoginV2/components/ForgotPassword/styled.js +10 -0
- package/es/components/organism/LoginV2/components/IconInfo/IconInfo.d.ts +7 -0
- package/es/components/organism/LoginV2/components/IconInfo/IconInfo.js +18 -0
- package/es/components/organism/LoginV2/components/IconInfo/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/IconInfo/index.js +1 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/Item.d.ts +10 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/Item.js +12 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/index.js +1 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/styled.d.ts +2 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/Item/styled.js +34 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/LoginSelectPortal.d.ts +19 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/LoginSelectPortal.js +194 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/index.js +1 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/styled.d.ts +1 -0
- package/es/components/organism/LoginV2/components/LoginSelectPortal/styled.js +5 -0
- package/es/components/organism/LoginV2/components/LoginWithEmail/LoginWithEmail.d.ts +15 -0
- package/es/components/organism/LoginV2/components/LoginWithEmail/LoginWithEmail.js +211 -0
- package/es/components/organism/LoginV2/components/LoginWithEmail/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/LoginWithEmail/index.js +1 -0
- package/es/components/organism/LoginV2/components/LoginWithEmail/styled.d.ts +3 -0
- package/es/components/organism/LoginV2/components/LoginWithEmail/styled.js +5 -0
- package/es/components/organism/LoginV2/components/LoginWithGG/LoginWithGG.d.ts +14 -0
- package/es/components/organism/LoginV2/components/LoginWithGG/LoginWithGG.js +116 -0
- package/es/components/organism/LoginV2/components/LoginWithGG/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/LoginWithGG/index.js +1 -0
- package/es/components/organism/LoginV2/components/LoginWithGG/styled.d.ts +3 -0
- package/es/components/organism/LoginV2/components/LoginWithGG/styled.js +5 -0
- package/es/components/organism/LoginV2/components/Logo/Logo.d.ts +6 -0
- package/es/components/organism/LoginV2/components/Logo/Logo.js +9 -0
- package/es/components/organism/LoginV2/components/Logo/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/Logo/index.js +1 -0
- package/es/components/organism/LoginV2/components/OryConsent/OryAuthLayout.d.ts +9 -0
- package/es/components/organism/LoginV2/components/OryConsent/OryAuthLayout.js +4 -0
- package/es/components/organism/LoginV2/components/OryConsent/OryConsent.d.ts +17 -0
- package/es/components/organism/LoginV2/components/OryConsent/OryConsent.js +204 -0
- package/es/components/organism/LoginV2/components/OryConsent/OryThemeProvider.d.ts +8 -0
- package/es/components/organism/LoginV2/components/OryConsent/OryThemeProvider.js +10 -0
- package/es/components/organism/LoginV2/components/OryConsent/PortalSelect.d.ts +15 -0
- package/es/components/organism/LoginV2/components/OryConsent/PortalSelect.js +30 -0
- package/es/components/organism/LoginV2/components/OryConsent/ScopeConsent.d.ts +20 -0
- package/es/components/organism/LoginV2/components/OryConsent/ScopeConsent.js +29 -0
- package/es/components/organism/LoginV2/components/OryConsent/index.d.ts +2 -0
- package/es/components/organism/LoginV2/components/OryConsent/index.js +2 -0
- package/es/components/organism/LoginV2/components/OryConsent/styled.d.ts +31 -0
- package/es/components/organism/LoginV2/components/OryConsent/styled.js +292 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryFormShell.d.ts +9 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryFormShell.js +36 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryMfa.d.ts +11 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryMfa.js +144 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryRecovery.d.ts +9 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryRecovery.js +128 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryStatus.d.ts +17 -0
- package/es/components/organism/LoginV2/components/OrySignIn/OryStatus.js +33 -0
- package/es/components/organism/LoginV2/components/OrySignIn/index.d.ts +3 -0
- package/es/components/organism/LoginV2/components/OrySignIn/index.js +3 -0
- package/es/components/organism/LoginV2/components/SetupGGAuthenticator/SetupGGAuthenticator.d.ts +14 -0
- package/es/components/organism/LoginV2/components/SetupGGAuthenticator/SetupGGAuthenticator.js +100 -0
- package/es/components/organism/LoginV2/components/SetupGGAuthenticator/index.d.ts +2 -0
- package/es/components/organism/LoginV2/components/SetupGGAuthenticator/index.js +2 -0
- package/es/components/organism/LoginV2/components/SetupGGAuthenticator/styled.d.ts +4 -0
- package/es/components/organism/LoginV2/components/SetupGGAuthenticator/styled.js +10 -0
- package/es/components/organism/LoginV2/components/SignIn/SignIn.d.ts +22 -0
- package/es/components/organism/LoginV2/components/SignIn/SignIn.js +107 -0
- package/es/components/organism/LoginV2/components/SignIn/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/SignIn/index.js +1 -0
- package/es/components/organism/LoginV2/components/SignIn/styled.d.ts +3 -0
- package/es/components/organism/LoginV2/components/SignIn/styled.js +10 -0
- package/es/components/organism/LoginV2/components/VerifyAccount/VerifyAccount.d.ts +25 -0
- package/es/components/organism/LoginV2/components/VerifyAccount/VerifyAccount.js +42 -0
- package/es/components/organism/LoginV2/components/VerifyAccount/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/VerifyAccount/index.js +1 -0
- package/es/components/organism/LoginV2/components/VerifyAccount/styled.d.ts +22 -0
- package/es/components/organism/LoginV2/components/VerifyAccount/styled.js +17 -0
- package/es/components/organism/LoginV2/components/WidgetLayout/WidgetLayout.d.ts +13 -0
- package/es/components/organism/LoginV2/components/WidgetLayout/WidgetLayout.js +18 -0
- package/es/components/organism/LoginV2/components/WidgetLayout/index.d.ts +1 -0
- package/es/components/organism/LoginV2/components/WidgetLayout/index.js +1 -0
- package/es/components/organism/LoginV2/components/WidgetLayout/styled.d.ts +5 -0
- package/es/components/organism/LoginV2/components/WidgetLayout/styled.js +22 -0
- package/es/components/organism/LoginV2/components/index.d.ts +11 -0
- package/es/components/organism/LoginV2/components/index.js +11 -0
- package/es/components/organism/LoginV2/constants/index.d.ts +48 -0
- package/es/components/organism/LoginV2/constants/index.js +48 -0
- package/es/components/organism/LoginV2/hooks/index.d.ts +1 -0
- package/es/components/organism/LoginV2/hooks/index.js +1 -0
- package/es/components/organism/LoginV2/hooks/useResize.d.ts +7 -0
- package/es/components/organism/LoginV2/hooks/useResize.js +21 -0
- package/es/components/organism/LoginV2/index.d.ts +6 -0
- package/es/components/organism/LoginV2/index.js +4 -0
- package/es/components/organism/LoginV2/styled.d.ts +51 -0
- package/es/components/organism/LoginV2/styled.js +129 -0
- package/es/components/organism/LoginV2/types/index.d.ts +79 -0
- package/es/components/organism/LoginV2/types/index.js +1 -0
- package/es/components/organism/LoginV2/types/ory.d.ts +52 -0
- package/es/components/organism/LoginV2/types/ory.js +1 -0
- package/es/components/organism/LoginV2/utils/index.d.ts +14 -0
- package/es/components/organism/LoginV2/utils/index.js +49 -0
- package/es/components/organism/LoginV2/utils/ory.d.ts +138 -0
- package/es/components/organism/LoginV2/utils/ory.js +408 -0
- package/es/components/organism/LoginV2/utils/oryConsent.d.ts +52 -0
- package/es/components/organism/LoginV2/utils/oryConsent.js +174 -0
- package/es/components/organism/LoginV2/utils/oryFlows.d.ts +100 -0
- package/es/components/organism/LoginV2/utils/oryFlows.js +319 -0
- package/es/components/organism/Menu/styled.js +6 -6
- package/es/components/organism/ModifyColumnModal/styled.js +132 -132
- package/es/components/organism/Notification/styled.js +155 -155
- package/es/components/organism/PreviewCollections/Messages/SkeletonMessage/styled.js +14 -14
- package/es/components/organism/PreviewCollections/WhatsappMessage/CarouselMessage/styled.js +63 -63
- package/es/components/organism/PreviewCollections/constants.js +50 -50
- package/es/components/organism/PreviewCollections/styled.js +16 -16
- package/es/components/organism/PreviewTemplateModal/components/Banner/styled.js +78 -78
- package/es/components/organism/PreviewTemplateModal/components/Information/styled.js +52 -52
- package/es/components/organism/PreviewTemplateModal/components/SimilarTemplate/styled.js +18 -18
- package/es/components/organism/PreviewTemplateModal/components/ThumbnailSlider/styled.js +77 -77
- package/es/components/organism/PreviewTemplateModal/styled.js +21 -21
- package/es/components/organism/SQLGeneration/components/styled.js +354 -354
- package/es/components/organism/SQLGeneration/index.scss +1 -1
- package/es/components/organism/SQLGeneration/integrations/AceEditor/index.scss +4 -4
- package/es/components/organism/Table/CrossTabTable/components/CustomCell/styled.js +11 -11
- package/es/components/organism/Table/CrossTabTable/styled.js +11 -11
- package/es/components/organism/Table/ExplorePivotTable/components/CustomCell/styled.js +17 -17
- package/es/components/organism/Table/ExplorePivotTable/styled.js +11 -11
- package/es/components/organism/TextEditor/__mocks__/text-contennt.js +44 -44
- package/es/components/organism/TextEditor/index.scss +65 -65
- package/es/components/organism/TextEditor/stories/WithOldDynAndLink/froala-legacy-format.settings.json +95 -95
- package/es/components/organism/TextEditor/styled.js +54 -54
- package/es/components/organism/TextEditor/ui/Button/Button.js +22 -22
- package/es/components/organism/TextEditor/ui/DropdownButton/DropdownButton.js +13 -13
- package/es/components/organism/TextEditor/ui/FontPopover/styled.js +32 -32
- package/es/components/organism/TextEditor/ui/SplitButtonDropdown/styled.js +54 -54
- package/es/components/organism/TextEditor/ui/TextAlignSelect/TextAlignSelect.js +9 -9
- package/es/components/organism/TextEditor/ui/Toolbar/actions/FontSizeAction.js +11 -11
- package/es/components/organism/TicketEditor/styled.js +860 -860
- package/es/components/organism/TicketEditorV2/styled.js +839 -839
- package/es/components/organism/index.d.ts +2 -0
- package/es/components/organism/index.js +1 -0
- package/es/components/organism/index.scss +2 -2
- package/es/components/template/Layout/Layout.js +10 -10
- package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/components/OldLeftMenu/styled.js +73 -73
- package/es/components/template/Layout/components/RecommendationWorkspace/components/MenuMapping/styled.js +39 -39
- package/es/components/template/Layout/components/RecommendationWorkspace/components/RecommendationImage/styled.js +61 -61
- package/es/components/template/Layout/components/RecommendationWorkspace/styled.js +16 -16
- package/es/components/template/Layout/styled.js +84 -84
- package/es/components/template/TemplateListing/components/BlankTemplate/styled.js +21 -21
- package/es/components/template/TemplateListing/components/CategoryListing/styled.js +123 -123
- package/es/components/template/TemplateListing/components/Empty/styled.js +20 -20
- package/es/components/template/TemplateListing/stories/demo/styled.js +4 -4
- package/es/components/template/TemplateListing/styled/index.js +40 -40
- package/es/providers/ConfigProvider/GlobalStyle.js +1251 -1251
- package/es/styled/common.js +51 -51
- package/es/tests/styled.js +4 -4
- package/es/utils/variables.js +7 -7
- package/package.json +291 -282
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { FetchLike, LocationLike } from './ory';
|
|
2
|
+
export declare const DEFAULT_KRATOS_RECOVERY_URL = "/self-service/recovery/browser";
|
|
3
|
+
/** Native recovery must never resolve a login flow or an OAuth callback query. */
|
|
4
|
+
export declare const isOryRecoveryRequest: (location: LocationLike & {
|
|
5
|
+
pathname?: string;
|
|
6
|
+
}) => boolean;
|
|
7
|
+
export type MfaMethod = 'totp' | 'lookup_secret' | 'code' | 'webauthn';
|
|
8
|
+
export type OryMfaPreparation = {
|
|
9
|
+
flowId: string;
|
|
10
|
+
methods: MfaMethod[];
|
|
11
|
+
email: string;
|
|
12
|
+
emailSent: boolean;
|
|
13
|
+
};
|
|
14
|
+
/** Start one AAL2 flow and discover only the methods bound to this identity. */
|
|
15
|
+
export declare const prepareOryMfa: ({ location, kratosLoginUrl, fetchImpl, }: {
|
|
16
|
+
location: LocationLike;
|
|
17
|
+
kratosLoginUrl?: string;
|
|
18
|
+
fetchImpl?: FetchLike;
|
|
19
|
+
}) => Promise<OryMfaPreparation>;
|
|
20
|
+
/** Ask Kratos to send to the address bound to the flow; callers cannot supply another email. */
|
|
21
|
+
export declare const sendOryEmailMfa: ({ location, flowId, kratosLoginUrl, fetchImpl, }: {
|
|
22
|
+
location: LocationLike;
|
|
23
|
+
flowId: string;
|
|
24
|
+
kratosLoginUrl?: string;
|
|
25
|
+
fetchImpl?: FetchLike;
|
|
26
|
+
}) => Promise<{
|
|
27
|
+
status: 'sent';
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Complete a second factor for the signed-in Kratos session: an authenticator
|
|
31
|
+
* code or a one-time backup code. Kratos verifies it; success is confirmed by
|
|
32
|
+
* re-reading the session so a half-finished upgrade is never reported as done.
|
|
33
|
+
*/
|
|
34
|
+
export declare const submitOryMfa: ({ location, method, code, flowId, kratosLoginUrl, sessionUrl, fetchImpl, }: {
|
|
35
|
+
location: LocationLike;
|
|
36
|
+
method: Exclude<MfaMethod, 'webauthn'>;
|
|
37
|
+
code: string;
|
|
38
|
+
flowId?: string;
|
|
39
|
+
kratosLoginUrl?: string;
|
|
40
|
+
sessionUrl?: string;
|
|
41
|
+
fetchImpl?: FetchLike;
|
|
42
|
+
}) => Promise<{
|
|
43
|
+
status: 'verified';
|
|
44
|
+
}>;
|
|
45
|
+
/** Complete a Kratos AAL2 WebAuthn challenge using the browser's credential API. */
|
|
46
|
+
export declare const submitOryWebauthn: ({ location, flowId, kratosLoginUrl, sessionUrl, fetchImpl, getCredential, }: {
|
|
47
|
+
location: LocationLike;
|
|
48
|
+
flowId: string;
|
|
49
|
+
kratosLoginUrl?: string;
|
|
50
|
+
sessionUrl?: string;
|
|
51
|
+
fetchImpl?: FetchLike;
|
|
52
|
+
getCredential?: (options: CredentialRequestOptions) => Promise<Credential | null>;
|
|
53
|
+
}) => Promise<{
|
|
54
|
+
status: 'verified';
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Step 1 of password recovery: ask Kratos to email a code. The response is the
|
|
58
|
+
* same for unknown addresses, so nothing here reveals whether an account exists.
|
|
59
|
+
*/
|
|
60
|
+
export declare const startOryRecovery: ({ location, email, recoveryUrl, fetchImpl, }: {
|
|
61
|
+
location: LocationLike;
|
|
62
|
+
email: string;
|
|
63
|
+
recoveryUrl?: string;
|
|
64
|
+
fetchImpl?: FetchLike;
|
|
65
|
+
}) => Promise<{
|
|
66
|
+
flowId: string;
|
|
67
|
+
}>;
|
|
68
|
+
/** Resume only a browser recovery flow read from Kratos with this browser's cookies. */
|
|
69
|
+
export declare const resumeOryRecovery: ({ location, flowId, recoveryUrl, fetchImpl, }: {
|
|
70
|
+
location: LocationLike;
|
|
71
|
+
flowId: string;
|
|
72
|
+
recoveryUrl?: string;
|
|
73
|
+
fetchImpl?: FetchLike;
|
|
74
|
+
}) => Promise<{
|
|
75
|
+
flowId: string;
|
|
76
|
+
step: 'email' | 'code';
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Step 2: verify the emailed code. Kratos signs the user in with a privileged
|
|
80
|
+
* session and hands back the settings flow used to choose a new password.
|
|
81
|
+
*/
|
|
82
|
+
export declare const verifyOryRecoveryCode: ({ location, flowId, code, recoveryUrl, fetchImpl, }: {
|
|
83
|
+
location: LocationLike;
|
|
84
|
+
flowId: string;
|
|
85
|
+
code: string;
|
|
86
|
+
recoveryUrl?: string;
|
|
87
|
+
fetchImpl?: FetchLike;
|
|
88
|
+
}) => Promise<{
|
|
89
|
+
settingsFlowId: string;
|
|
90
|
+
}>;
|
|
91
|
+
/** Step 3: set the new password on the settings flow opened by recovery. */
|
|
92
|
+
export declare const setOryRecoveredPassword: ({ location, settingsFlowId, password, recoveryUrl, fetchImpl, }: {
|
|
93
|
+
location: LocationLike;
|
|
94
|
+
settingsFlowId: string;
|
|
95
|
+
password: string;
|
|
96
|
+
recoveryUrl?: string;
|
|
97
|
+
fetchImpl?: FetchLike;
|
|
98
|
+
}) => Promise<{
|
|
99
|
+
status: 'updated';
|
|
100
|
+
}>;
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { checkOrySession, DEFAULT_KRATOS_LOGIN_URL, DEFAULT_SESSION_URL, getOrigin, makeUserError, readJSON, toURL, } from './ory';
|
|
2
|
+
export const DEFAULT_KRATOS_RECOVERY_URL = '/self-service/recovery/browser';
|
|
3
|
+
/** Native recovery must never resolve a login flow or an OAuth callback query. */
|
|
4
|
+
export const isOryRecoveryRequest = (location) => location.pathname === '/recovery' || location.pathname === '/recovery/';
|
|
5
|
+
const FORM = { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded' };
|
|
6
|
+
const getRequest = (fetchImpl) => {
|
|
7
|
+
const request = fetchImpl || (typeof fetch === 'function' ? fetch : undefined);
|
|
8
|
+
if (!request) {
|
|
9
|
+
throw makeUserError('ORY_FLOW_UNAVAILABLE', 'Kratos flow requests are unavailable', 'Secure verification is unavailable. Please try again.');
|
|
10
|
+
}
|
|
11
|
+
return request;
|
|
12
|
+
};
|
|
13
|
+
/** Kratos' own explanation for a rejected field, e.g. a password policy failure. */
|
|
14
|
+
const flowMessage = (flow) => {
|
|
15
|
+
const ui = flow?.ui;
|
|
16
|
+
const fromNodes = ui?.nodes?.flatMap(node => node.messages || []).find(message => message.text);
|
|
17
|
+
return fromNodes?.text || ui?.messages?.find(message => message.text)?.text || '';
|
|
18
|
+
};
|
|
19
|
+
const csrfOf = (flow) => flow.ui?.nodes?.find(node => node.attributes?.name === 'csrf_token')?.attributes?.value || '';
|
|
20
|
+
/** `/self-service/x/browser` initiates a flow; `/self-service/x` submits it. */
|
|
21
|
+
const submitPath = (browserUrl) => browserUrl.replace(/\/browser\/?$/, '');
|
|
22
|
+
const startFlow = async (request, location, browserUrl, params = {}) => {
|
|
23
|
+
const url = toURL(browserUrl, getOrigin(location));
|
|
24
|
+
Object.entries(params).forEach(([key, value]) => url.searchParams.set(key, value));
|
|
25
|
+
const response = await request(url.toString(), {
|
|
26
|
+
credentials: 'include',
|
|
27
|
+
headers: { Accept: 'application/json' },
|
|
28
|
+
});
|
|
29
|
+
const flow = (await readJSON(response));
|
|
30
|
+
if (!response.ok || !flow?.id || !csrfOf(flow)) {
|
|
31
|
+
throw makeUserError('ORY_FLOW_FAILED', 'Kratos flow could not be initialized', 'Unable to start secure verification. Please try again.', response.status);
|
|
32
|
+
}
|
|
33
|
+
return flow;
|
|
34
|
+
};
|
|
35
|
+
const submitFlow = async (request, location, url, flowId, fields) => {
|
|
36
|
+
const target = toURL(url, getOrigin(location));
|
|
37
|
+
target.searchParams.set('flow', flowId);
|
|
38
|
+
const response = await request(target.toString(), {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
credentials: 'include',
|
|
41
|
+
headers: FORM,
|
|
42
|
+
body: new URLSearchParams(fields).toString(),
|
|
43
|
+
});
|
|
44
|
+
return { response, payload: await readJSON(response) };
|
|
45
|
+
};
|
|
46
|
+
const MFA_FIELD = {
|
|
47
|
+
totp: 'totp_code',
|
|
48
|
+
lookup_secret: 'lookup_secret',
|
|
49
|
+
code: 'code',
|
|
50
|
+
};
|
|
51
|
+
const readLoginFlow = async (request, location, kratosLoginUrl, flowId) => {
|
|
52
|
+
const url = toURL(`${submitPath(kratosLoginUrl)}/flows`, getOrigin(location));
|
|
53
|
+
url.searchParams.set('id', flowId);
|
|
54
|
+
const response = await request(url.toString(), {
|
|
55
|
+
credentials: 'include',
|
|
56
|
+
headers: { Accept: 'application/json' },
|
|
57
|
+
});
|
|
58
|
+
const flow = (await readJSON(response));
|
|
59
|
+
if (!response.ok || !flow?.id || !csrfOf(flow)) {
|
|
60
|
+
throw makeUserError('ORY_MFA_FLOW_EXPIRED', 'Kratos MFA flow is no longer available', 'This verification request has expired. Please sign in again.', response.status);
|
|
61
|
+
}
|
|
62
|
+
return flow;
|
|
63
|
+
};
|
|
64
|
+
/** Start one AAL2 flow and discover only the methods bound to this identity. */
|
|
65
|
+
export const prepareOryMfa = async ({ location, kratosLoginUrl = DEFAULT_KRATOS_LOGIN_URL, fetchImpl, }) => {
|
|
66
|
+
const flow = await startFlow(getRequest(fetchImpl), location, kratosLoginUrl, { aal: 'aal2' });
|
|
67
|
+
const nodes = flow.ui?.nodes || [];
|
|
68
|
+
const names = new Set(nodes.map(node => node.attributes?.name));
|
|
69
|
+
const methods = [];
|
|
70
|
+
if (names.has('totp_code'))
|
|
71
|
+
methods.push('totp');
|
|
72
|
+
if (names.has('lookup_secret'))
|
|
73
|
+
methods.push('lookup_secret');
|
|
74
|
+
if (names.has('webauthn_login_trigger') && names.has('webauthn_login'))
|
|
75
|
+
methods.push('webauthn');
|
|
76
|
+
// This Kratos build names the code method's bound-address field "identifier"
|
|
77
|
+
// (not "address", used by some other Kratos releases/docs).
|
|
78
|
+
if (names.has('identifier') && nodes.some(node => node.group === 'code')) {
|
|
79
|
+
methods.push('code');
|
|
80
|
+
}
|
|
81
|
+
if (!methods.length) {
|
|
82
|
+
throw makeUserError('ORY_MFA_METHOD_UNAVAILABLE', 'Kratos flow has no second-factor method', 'No verification method is available for your account.');
|
|
83
|
+
}
|
|
84
|
+
const identifier = nodes.find(node => node.group === 'code' && node.attributes?.name === 'identifier')?.attributes?.value;
|
|
85
|
+
return {
|
|
86
|
+
flowId: flow.id,
|
|
87
|
+
methods,
|
|
88
|
+
email: typeof identifier === 'string' ? identifier : '',
|
|
89
|
+
emailSent: flow.state === 'sent_email',
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
/** Ask Kratos to send to the address bound to the flow; callers cannot supply another email. */
|
|
93
|
+
export const sendOryEmailMfa = async ({ location, flowId, kratosLoginUrl = DEFAULT_KRATOS_LOGIN_URL, fetchImpl, }) => {
|
|
94
|
+
const request = getRequest(fetchImpl);
|
|
95
|
+
const flow = await readLoginFlow(request, location, kratosLoginUrl, flowId);
|
|
96
|
+
if (flow.state === 'sent_email')
|
|
97
|
+
return { status: 'sent' };
|
|
98
|
+
const identifier = flow.ui?.nodes?.find(node => node.group === 'code' && node.attributes?.name === 'identifier')?.attributes?.value;
|
|
99
|
+
if (typeof identifier !== 'string' || !identifier) {
|
|
100
|
+
throw makeUserError('ORY_MFA_METHOD_UNAVAILABLE', 'Kratos flow has no bound email address', 'Email verification is not available for your account.');
|
|
101
|
+
}
|
|
102
|
+
const { payload } = await submitFlow(request, location, submitPath(kratosLoginUrl), flowId, {
|
|
103
|
+
method: 'code',
|
|
104
|
+
identifier,
|
|
105
|
+
csrf_token: csrfOf(flow),
|
|
106
|
+
});
|
|
107
|
+
if (payload?.state !== 'sent_email') {
|
|
108
|
+
throw makeUserError('ORY_MFA_EMAIL_FAILED', 'Kratos did not send the MFA email', 'We could not send a verification code. Please try again.');
|
|
109
|
+
}
|
|
110
|
+
return { status: 'sent' };
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Complete a second factor for the signed-in Kratos session: an authenticator
|
|
114
|
+
* code or a one-time backup code. Kratos verifies it; success is confirmed by
|
|
115
|
+
* re-reading the session so a half-finished upgrade is never reported as done.
|
|
116
|
+
*/
|
|
117
|
+
export const submitOryMfa = async ({ location, method, code, flowId, kratosLoginUrl = DEFAULT_KRATOS_LOGIN_URL, sessionUrl = DEFAULT_SESSION_URL, fetchImpl, }) => {
|
|
118
|
+
const request = getRequest(fetchImpl);
|
|
119
|
+
const flow = flowId
|
|
120
|
+
? await readLoginFlow(request, location, kratosLoginUrl, flowId)
|
|
121
|
+
: await startFlow(request, location, kratosLoginUrl, { aal: 'aal2' });
|
|
122
|
+
const field = MFA_FIELD[method];
|
|
123
|
+
if (!flow.ui?.nodes?.some(node => node.attributes?.name === field)) {
|
|
124
|
+
throw makeUserError('ORY_MFA_METHOD_UNAVAILABLE', `Kratos flow has no ${method} input`, 'This verification method is not available for your account.');
|
|
125
|
+
}
|
|
126
|
+
const { response, payload } = await submitFlow(request, location, submitPath(kratosLoginUrl), flow.id, { method, [field]: code.trim(), csrf_token: csrfOf(flow) });
|
|
127
|
+
if (!response.ok && payload?.error?.id !== 'browser_location_change_required') {
|
|
128
|
+
throw makeUserError('ORY_MFA_INVALID_CODE', 'Kratos rejected the verification code', method === 'totp'
|
|
129
|
+
? 'That code is not valid. Check your authenticator app and try again.'
|
|
130
|
+
: method === 'lookup_secret'
|
|
131
|
+
? 'That backup code is not valid or was already used.'
|
|
132
|
+
: 'That email code is not valid or has expired.', response.status);
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
await checkOrySession({ sessionUrl, fetchImpl });
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
throw makeUserError('ORY_MFA_INCOMPLETE', 'The session is still missing the second factor', 'Verification could not be completed. Please try again.');
|
|
139
|
+
}
|
|
140
|
+
return { status: 'verified' };
|
|
141
|
+
};
|
|
142
|
+
const decodeWebauthn = (value) => Uint8Array.from(atob(value.replace(/-/g, '+').replace(/_/g, '/')), char => char.charCodeAt(0));
|
|
143
|
+
const encodeWebauthn = (value) => {
|
|
144
|
+
if (!value)
|
|
145
|
+
return '';
|
|
146
|
+
return btoa(String.fromCharCode(...new Uint8Array(value)))
|
|
147
|
+
.replace(/\+/g, '-')
|
|
148
|
+
.replace(/\//g, '_')
|
|
149
|
+
.replace(/=+$/, '');
|
|
150
|
+
};
|
|
151
|
+
/** Complete a Kratos AAL2 WebAuthn challenge using the browser's credential API. */
|
|
152
|
+
export const submitOryWebauthn = async ({ location, flowId, kratosLoginUrl = DEFAULT_KRATOS_LOGIN_URL, sessionUrl = DEFAULT_SESSION_URL, fetchImpl, getCredential = options => navigator.credentials.get(options), }) => {
|
|
153
|
+
if (typeof PublicKeyCredential === 'undefined') {
|
|
154
|
+
throw makeUserError('ORY_WEBAUTHN_UNAVAILABLE', 'WebAuthn is unavailable', 'This browser does not support security keys or device authentication.');
|
|
155
|
+
}
|
|
156
|
+
const request = getRequest(fetchImpl);
|
|
157
|
+
const flow = await readLoginFlow(request, location, kratosLoginUrl, flowId);
|
|
158
|
+
const names = flow.ui?.nodes || [];
|
|
159
|
+
const trigger = names.find(node => node.attributes?.name === 'webauthn_login_trigger')?.attributes?.value;
|
|
160
|
+
if (typeof trigger !== 'string' || !names.some(node => node.attributes?.name === 'webauthn_login')) {
|
|
161
|
+
throw makeUserError('ORY_MFA_METHOD_UNAVAILABLE', 'Kratos flow has no WebAuthn challenge', 'Security key verification is not available for this account.');
|
|
162
|
+
}
|
|
163
|
+
const options = JSON.parse(trigger);
|
|
164
|
+
const credential = (await getCredential({
|
|
165
|
+
publicKey: {
|
|
166
|
+
...options.publicKey,
|
|
167
|
+
challenge: decodeWebauthn(options.publicKey.challenge),
|
|
168
|
+
allowCredentials: options.publicKey.allowCredentials?.map(item => ({
|
|
169
|
+
...item,
|
|
170
|
+
id: decodeWebauthn(item.id),
|
|
171
|
+
})),
|
|
172
|
+
},
|
|
173
|
+
}));
|
|
174
|
+
if (!credential) {
|
|
175
|
+
throw makeUserError('ORY_WEBAUTHN_CANCELLED', 'WebAuthn returned no credential', 'Security key verification was cancelled.');
|
|
176
|
+
}
|
|
177
|
+
const assertion = credential.response;
|
|
178
|
+
const proof = JSON.stringify({
|
|
179
|
+
id: credential.id,
|
|
180
|
+
rawId: encodeWebauthn(credential.rawId),
|
|
181
|
+
type: credential.type,
|
|
182
|
+
response: {
|
|
183
|
+
authenticatorData: encodeWebauthn(assertion.authenticatorData),
|
|
184
|
+
clientDataJSON: encodeWebauthn(assertion.clientDataJSON),
|
|
185
|
+
signature: encodeWebauthn(assertion.signature),
|
|
186
|
+
userHandle: encodeWebauthn(assertion.userHandle),
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
const identifier = names.find(node => node.group === 'default' &&
|
|
190
|
+
node.attributes?.name === 'identifier')?.attributes?.value;
|
|
191
|
+
if (!identifier) {
|
|
192
|
+
throw makeUserError('ORY_MFA_METHOD_UNAVAILABLE', 'Kratos flow has no bound identifier', 'Security key verification is not available for this account.');
|
|
193
|
+
}
|
|
194
|
+
const { response, payload } = await submitFlow(request, location, submitPath(kratosLoginUrl), flowId, {
|
|
195
|
+
method: 'webauthn',
|
|
196
|
+
identifier,
|
|
197
|
+
webauthn_login: proof,
|
|
198
|
+
csrf_token: csrfOf(flow),
|
|
199
|
+
});
|
|
200
|
+
if (!response.ok && payload?.error?.id !== 'browser_location_change_required') {
|
|
201
|
+
throw makeUserError('ORY_WEBAUTHN_REJECTED', 'Kratos rejected the WebAuthn assertion', 'Security key verification failed. Please try again.', response.status);
|
|
202
|
+
}
|
|
203
|
+
await checkOrySession({ sessionUrl, fetchImpl });
|
|
204
|
+
return { status: 'verified' };
|
|
205
|
+
};
|
|
206
|
+
const settingsUrlFor = (recoveryUrl) => recoveryUrl.replace(/\/recovery\/browser\/?$/, '/settings/browser');
|
|
207
|
+
/**
|
|
208
|
+
* Step 1 of password recovery: ask Kratos to email a code. The response is the
|
|
209
|
+
* same for unknown addresses, so nothing here reveals whether an account exists.
|
|
210
|
+
*/
|
|
211
|
+
export const startOryRecovery = async ({ location, email, recoveryUrl = DEFAULT_KRATOS_RECOVERY_URL, fetchImpl, }) => {
|
|
212
|
+
const request = getRequest(fetchImpl);
|
|
213
|
+
const flow = await startFlow(request, location, recoveryUrl);
|
|
214
|
+
const { response, payload } = await submitFlow(request, location, submitPath(recoveryUrl), flow.id, { method: 'code', email: email.trim(), csrf_token: csrfOf(flow) });
|
|
215
|
+
if (!response.ok) {
|
|
216
|
+
throw makeUserError('ORY_RECOVERY_REQUEST_FAILED', 'Kratos rejected the recovery request', flowMessage(payload) || 'We could not send a code. Check the email address and try again.', response.status);
|
|
217
|
+
}
|
|
218
|
+
return { flowId: flow.id };
|
|
219
|
+
};
|
|
220
|
+
const settingsFlowIdFrom = (payload, location) => {
|
|
221
|
+
const continueWith = Array.isArray(payload?.continue_with) ? payload.continue_with : [];
|
|
222
|
+
const shown = continueWith.find((item) => item?.action === 'show_settings_ui');
|
|
223
|
+
if (typeof shown?.flow?.id === 'string')
|
|
224
|
+
return shown.flow.id;
|
|
225
|
+
const target = payload?.redirect_browser_to;
|
|
226
|
+
if (typeof target === 'string') {
|
|
227
|
+
try {
|
|
228
|
+
const url = new URL(target, getOrigin(location));
|
|
229
|
+
if (url.origin === getOrigin(location) && url.pathname === '/settings') {
|
|
230
|
+
return url.searchParams.get('flow') || '';
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
return '';
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return '';
|
|
238
|
+
};
|
|
239
|
+
/** Resume only a browser recovery flow read from Kratos with this browser's cookies. */
|
|
240
|
+
export const resumeOryRecovery = async ({ location, flowId, recoveryUrl = DEFAULT_KRATOS_RECOVERY_URL, fetchImpl, }) => {
|
|
241
|
+
const expired = (status) => makeUserError('ORY_RECOVERY_EXPIRED', 'The recovery flow cannot be resumed', 'This recovery request is unavailable or has expired. Please start again.', status);
|
|
242
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(flowId)) {
|
|
243
|
+
throw expired();
|
|
244
|
+
}
|
|
245
|
+
const url = toURL(`${submitPath(recoveryUrl)}/flows`, getOrigin(location));
|
|
246
|
+
url.searchParams.set('id', flowId);
|
|
247
|
+
const response = await getRequest(fetchImpl)(url.toString(), {
|
|
248
|
+
credentials: 'include', headers: { Accept: 'application/json' },
|
|
249
|
+
});
|
|
250
|
+
const flow = (await readJSON(response));
|
|
251
|
+
if (!response.ok || flow?.id !== flowId || flow.type !== 'browser' || !csrfOf(flow) ||
|
|
252
|
+
!flow.expires_at || !Number.isFinite(Date.parse(flow.expires_at)) ||
|
|
253
|
+
Date.parse(flow.expires_at) <= Date.now()) {
|
|
254
|
+
throw expired(response.status);
|
|
255
|
+
}
|
|
256
|
+
// A consumed challenge does not prove a settings continuation on a later GET.
|
|
257
|
+
// Only the successful code POST below may supply that continuation.
|
|
258
|
+
const names = new Set(flow.ui?.nodes?.map(node => node.attributes?.name));
|
|
259
|
+
if (flow.state === 'sent_email' && names.has('code'))
|
|
260
|
+
return { flowId, step: 'code' };
|
|
261
|
+
if (flow.state === 'choose_method' && names.has('email'))
|
|
262
|
+
return { flowId, step: 'email' };
|
|
263
|
+
throw expired(response.status);
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Step 2: verify the emailed code. Kratos signs the user in with a privileged
|
|
267
|
+
* session and hands back the settings flow used to choose a new password.
|
|
268
|
+
*/
|
|
269
|
+
export const verifyOryRecoveryCode = async ({ location, flowId, code, recoveryUrl = DEFAULT_KRATOS_RECOVERY_URL, fetchImpl, }) => {
|
|
270
|
+
const request = getRequest(fetchImpl);
|
|
271
|
+
const flowUrl = toURL(`${submitPath(recoveryUrl)}/flows`, getOrigin(location));
|
|
272
|
+
flowUrl.searchParams.set('id', flowId);
|
|
273
|
+
const flowResponse = await request(flowUrl.toString(), {
|
|
274
|
+
credentials: 'include',
|
|
275
|
+
headers: { Accept: 'application/json' },
|
|
276
|
+
});
|
|
277
|
+
const flow = (await readJSON(flowResponse));
|
|
278
|
+
if (!flowResponse.ok || !csrfOf(flow)) {
|
|
279
|
+
throw makeUserError('ORY_RECOVERY_EXPIRED', 'The recovery flow is no longer available', 'This recovery request has expired. Please start again.', flowResponse.status);
|
|
280
|
+
}
|
|
281
|
+
const { response, payload } = await submitFlow(request, location, submitPath(recoveryUrl), flowId, { method: 'code', code: code.trim(), csrf_token: csrfOf(flow) });
|
|
282
|
+
const settingsFlowId = settingsFlowIdFrom(payload, location);
|
|
283
|
+
const advanced = (response.ok && payload?.state === 'passed_challenge') ||
|
|
284
|
+
(response.status === 422 && payload?.error?.id === 'browser_location_change_required');
|
|
285
|
+
if (!advanced || !settingsFlowId) {
|
|
286
|
+
throw makeUserError('ORY_RECOVERY_INVALID_CODE', 'Kratos rejected the recovery code', 'That code is not valid or has expired.', response.status);
|
|
287
|
+
}
|
|
288
|
+
await readRecoveredSettingsFlow(request, location, recoveryUrl, settingsFlowId);
|
|
289
|
+
return { settingsFlowId };
|
|
290
|
+
};
|
|
291
|
+
const readRecoveredSettingsFlow = async (request, location, recoveryUrl, settingsFlowId) => {
|
|
292
|
+
const flowUrl = toURL(`${submitPath(settingsUrlFor(recoveryUrl))}/flows`, getOrigin(location));
|
|
293
|
+
flowUrl.searchParams.set('id', settingsFlowId);
|
|
294
|
+
const response = await request(flowUrl.toString(), {
|
|
295
|
+
credentials: 'include', headers: { Accept: 'application/json' },
|
|
296
|
+
});
|
|
297
|
+
const flow = (await readJSON(response));
|
|
298
|
+
if (!response.ok || flow?.id !== settingsFlowId || flow.type !== 'browser' ||
|
|
299
|
+
!flow.expires_at || !Number.isFinite(Date.parse(flow.expires_at)) ||
|
|
300
|
+
Date.parse(flow.expires_at) <= Date.now() || !csrfOf(flow) ||
|
|
301
|
+
!flow.ui?.nodes?.some(node => node.attributes?.name === 'password')) {
|
|
302
|
+
const needsMfa = response.status === 403;
|
|
303
|
+
throw makeUserError(needsMfa ? 'ORY_RECOVERY_MFA_REQUIRED' : 'ORY_RECOVERY_EXPIRED', 'The recovery settings flow could not be opened', needsMfa
|
|
304
|
+
? 'Your account uses two-step verification, so the password cannot be changed here. Please contact support.'
|
|
305
|
+
: 'This recovery request is unavailable or has expired. Please start again.', response.status);
|
|
306
|
+
}
|
|
307
|
+
return flow;
|
|
308
|
+
};
|
|
309
|
+
/** Step 3: set the new password on the settings flow opened by recovery. */
|
|
310
|
+
export const setOryRecoveredPassword = async ({ location, settingsFlowId, password, recoveryUrl = DEFAULT_KRATOS_RECOVERY_URL, fetchImpl, }) => {
|
|
311
|
+
const request = getRequest(fetchImpl);
|
|
312
|
+
const settingsBrowserUrl = settingsUrlFor(recoveryUrl);
|
|
313
|
+
const flow = await readRecoveredSettingsFlow(request, location, recoveryUrl, settingsFlowId);
|
|
314
|
+
const { response, payload } = await submitFlow(request, location, submitPath(settingsBrowserUrl), settingsFlowId, { method: 'password', password, csrf_token: csrfOf(flow) });
|
|
315
|
+
if (!response.ok || payload?.state !== 'success') {
|
|
316
|
+
throw makeUserError('ORY_RECOVERY_PASSWORD_REJECTED', 'Kratos rejected the new password', flowMessage(payload) || 'That password cannot be used. Please choose a different one.', response.status);
|
|
317
|
+
}
|
|
318
|
+
return { status: 'updated' };
|
|
319
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Components
|
|
2
2
|
import styled from 'styled-components';
|
|
3
3
|
import { Icon } from '@antscorp/antsomi-ui/es/components/atoms/Icon';
|
|
4
|
-
export const ExpandIcon = styled(Icon) `
|
|
5
|
-
cursor: pointer;
|
|
6
|
-
position: absolute;
|
|
7
|
-
right: 10px;
|
|
8
|
-
transition: all 200ms;
|
|
9
|
-
transform: rotate(${props => (props.$isOpen ? 180 : 0)}deg);
|
|
4
|
+
export const ExpandIcon = styled(Icon) `
|
|
5
|
+
cursor: pointer;
|
|
6
|
+
position: absolute;
|
|
7
|
+
right: 10px;
|
|
8
|
+
transition: all 200ms;
|
|
9
|
+
transform: rotate(${props => (props.$isOpen ? 180 : 0)}deg);
|
|
10
10
|
`;
|