astra-sdk-web 1.1.9 → 1.1.11
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/dist/astra-sdk.cjs.js +171 -18
- package/dist/astra-sdk.cjs.js.map +1 -1
- package/dist/astra-sdk.css +19 -0
- package/dist/astra-sdk.css.map +1 -1
- package/dist/astra-sdk.d.cts +4 -0
- package/dist/astra-sdk.es.js +171 -18
- package/dist/astra-sdk.es.js.map +1 -1
- package/dist/components.cjs.js +171 -18
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.css +19 -0
- package/dist/components.css.map +1 -1
- package/dist/components.es.js +171 -18
- package/dist/components.es.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/package.json +1 -1
- package/src/features/faceScan/hooks/useFaceScan.ts +37 -10
- package/src/pages/DocumentUploadModal.tsx +44 -2
- package/src/pages/FaceScanModal.tsx +110 -11
- package/src/services/kycApiService.ts +43 -1
package/dist/components.css
CHANGED
|
@@ -406,6 +406,9 @@ video {
|
|
|
406
406
|
.mb-4 {
|
|
407
407
|
margin-bottom: 1rem;
|
|
408
408
|
}
|
|
409
|
+
.mb-6 {
|
|
410
|
+
margin-bottom: 1.5rem;
|
|
411
|
+
}
|
|
409
412
|
.mt-0 {
|
|
410
413
|
margin-top: 0px;
|
|
411
414
|
}
|
|
@@ -621,6 +624,10 @@ video {
|
|
|
621
624
|
--tw-bg-opacity: 1;
|
|
622
625
|
background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
|
|
623
626
|
}
|
|
627
|
+
.bg-\[\#f59e0b\] {
|
|
628
|
+
--tw-bg-opacity: 1;
|
|
629
|
+
background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
|
|
630
|
+
}
|
|
624
631
|
.bg-\[rgba\(20\,20\,20\,0\.95\)\] {
|
|
625
632
|
background-color: rgba(20, 20, 20, 0.95);
|
|
626
633
|
}
|
|
@@ -774,6 +781,10 @@ video {
|
|
|
774
781
|
"Segoe UI Symbol",
|
|
775
782
|
"Noto Color Emoji";
|
|
776
783
|
}
|
|
784
|
+
.text-6xl {
|
|
785
|
+
font-size: 3.75rem;
|
|
786
|
+
line-height: 1;
|
|
787
|
+
}
|
|
777
788
|
.text-\[15px\] {
|
|
778
789
|
font-size: 15px;
|
|
779
790
|
}
|
|
@@ -842,6 +853,10 @@ video {
|
|
|
842
853
|
--tw-text-opacity: 1;
|
|
843
854
|
color: rgb(75 85 99 / var(--tw-text-opacity, 1));
|
|
844
855
|
}
|
|
856
|
+
.text-green-500 {
|
|
857
|
+
--tw-text-opacity: 1;
|
|
858
|
+
color: rgb(34 197 94 / var(--tw-text-opacity, 1));
|
|
859
|
+
}
|
|
845
860
|
.text-red-500 {
|
|
846
861
|
--tw-text-opacity: 1;
|
|
847
862
|
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
|
|
@@ -979,6 +994,10 @@ video {
|
|
|
979
994
|
--tw-bg-opacity: 1;
|
|
980
995
|
background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
|
|
981
996
|
}
|
|
997
|
+
.hover\:bg-\[\#d97706\]:hover {
|
|
998
|
+
--tw-bg-opacity: 1;
|
|
999
|
+
background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
|
|
1000
|
+
}
|
|
982
1001
|
.hover\:bg-white\/10:hover {
|
|
983
1002
|
background-color: rgb(255 255 255 / 0.1);
|
|
984
1003
|
}
|
package/dist/components.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.css"],"sourcesContent":["*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.right-4 {\n right: 1rem;\n}\n.right-5 {\n right: 1.25rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-4 {\n top: 1rem;\n}\n.top-5 {\n top: 1.25rem;\n}\n.z-\\[10000\\] {\n z-index: 10000;\n}\n.z-\\[1000\\] {\n z-index: 1000;\n}\n.z-\\[2\\] {\n z-index: 2;\n}\n.z-\\[3\\] {\n z-index: 3;\n}\n.m-0 {\n margin: 0px;\n}\n.m-3 {\n margin: 0.75rem;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.mb-1\\.5 {\n margin-bottom: 0.375rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.mt-48 {\n margin-top: 12rem;\n}\n.mt-auto {\n margin-top: auto;\n}\n.block {\n display: block;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-\\[3\\/4\\] {\n aspect-ratio: 3/4;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.h-4 {\n height: 1rem;\n}\n.h-\\[80vh\\] {\n height: 80vh;\n}\n.h-full {\n height: 100%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-full {\n width: 100%;\n}\n.min-w-\\[300px\\] {\n min-width: 300px;\n}\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n.max-w-\\[450px\\] {\n max-width: 450px;\n}\n.max-w-\\[500px\\] {\n max-width: 500px;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.origin-center {\n transform-origin: center;\n}\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-scale-x-100 {\n --tw-scale-x: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.self-end {\n align-self: flex-end;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.break-all {\n word-break: break-all;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-none {\n border-style: none;\n}\n.border-\\[\\#155e3b\\] {\n --tw-border-opacity: 1;\n border-color: rgb(21 94 59 / var(--tw-border-opacity, 1));\n}\n.border-\\[\\#30363d\\] {\n --tw-border-opacity: 1;\n border-color: rgb(48 54 61 / var(--tw-border-opacity, 1));\n}\n.border-\\[\\#374151\\] {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n}\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n.border-white\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n}\n.border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.bg-\\[\\#0a2315\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(10 35 21 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#0b0f17\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(11 15 23 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#0f172a\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#111827\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#1f2937\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#22c55e\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#374151\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[rgba\\(20\\2c 20\\2c 20\\2c 0\\.95\\)\\] {\n background-color: rgba(20,20,20,0.95);\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));\n}\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-yellow-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));\n}\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.from-\\[\\#FF842D\\] {\n --tw-gradient-from: #FF842D var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 132 45 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-\\[rgba\\(17\\2c 24\\2c 39\\2c 0\\.9\\)\\] {\n --tw-gradient-from: rgba(17,24,39,0.9) var(--tw-gradient-from-position);\n --tw-gradient-to: rgba(17, 24, 39, 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-gray-900 {\n --tw-gradient-from: #111827 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.via-gray-800 {\n --tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), #1f2937 var(--tw-gradient-via-position), var(--tw-gradient-to);\n}\n.to-\\[\\#FF2D55\\] {\n --tw-gradient-to: #FF2D55 var(--tw-gradient-to-position);\n}\n.to-\\[rgba\\(17\\2c 24\\2c 39\\2c 0\\.6\\)\\] {\n --tw-gradient-to: rgba(17,24,39,0.6) var(--tw-gradient-to-position);\n}\n.to-black {\n --tw-gradient-to: #000 var(--tw-gradient-to-position);\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-3\\.5 {\n padding-top: 0.875rem;\n padding-bottom: 0.875rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n}\n.text-\\[15px\\] {\n font-size: 15px;\n}\n.text-\\[22px\\] {\n font-size: 22px;\n}\n.text-\\[26px\\] {\n font-size: 26px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-semibold {\n font-weight: 600;\n}\n.leading-relaxed {\n line-height: 1.625;\n}\n.leading-tight {\n line-height: 1.25;\n}\n.text-\\[\\#0b0f17\\] {\n --tw-text-opacity: 1;\n color: rgb(11 15 23 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#34d399\\] {\n --tw-text-opacity: 1;\n color: rgb(52 211 153 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#60a5fa\\] {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#9ca3af\\] {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#e5e7eb\\] {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-10 {\n opacity: 0.1;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-40 {\n opacity: 0.4;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.shadow-\\[0_8px_32px_rgba\\(0\\2c 0\\2c 0\\2c 0\\.5\\)\\] {\n --tw-shadow: 0 8px 32px rgba(0,0,0,0.5);\n --tw-shadow-colored: 0 8px 32px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n\n\n\n.custom__scrollbar {\n scrollbar-width: thin;\n scrollbar-color: #474747 transparent;\n }\n \n .custom__scrollbar::-webkit-scrollbar {\n width: 6px;\n }\n \n .custom__scrollbar::-webkit-scrollbar-track {\n background: transparent;\n }\n \n .hover\\:-translate-y-0\\.5:hover {\n --tw-translate-y: -0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n \n .hover\\:border-\\[\\#4b5563\\]:hover {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#16a34a\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#1f2937\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#4b5563\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n \n .hover\\:text-gray-200:hover {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n \n .hover\\:opacity-90:hover {\n opacity: 0.9;\n}\n \n .hover\\:shadow-\\[0_4px_12px_rgba\\(255\\2c 107\\2c 53\\2c 0\\.4\\)\\]:hover {\n --tw-shadow: 0 4px 12px rgba(255,107,53,0.4);\n --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n \n .active\\:translate-y-0:active {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n \n .active\\:bg-white\\/20:active {\n background-color: rgb(255 255 255 / 0.2);\n}\n \n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n \n .disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n \n @media (min-width: 640px) {\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:items-center {\n align-items: center;\n }\n\n .sm\\:gap-4 {\n gap: 1rem;\n }\n\n .sm\\:self-auto {\n align-self: auto;\n }\n\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n\n .sm\\:p-4 {\n padding: 1rem;\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n\n .sm\\:text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n }\n\n .sm\\:text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n \n @media (min-width: 768px) {\n\n .md\\:p-7 {\n padding: 1.75rem;\n }\n\n .md\\:p-8 {\n padding: 2rem;\n }\n}\n "],"mappings":";AAAA;AAAG;AAAU;AACX,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB;AAClB,oBAAkB;AAClB,eAAa;AACb,eAAa;AACb,eAAa;AACb,gBAAc;AACd,gBAAc;AACd;AACA;AACA;AACA,+BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAwB;AACxB,0BAAwB;AACxB,mBAAiB,IAAI,GAAG,IAAI,IAAI,EAAE;AAClC,2BAAyB,EAAE,EAAE;AAC7B,oBAAkB,EAAE,EAAE;AACtB,eAAa,EAAE,EAAE;AACjB,uBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;AAEA;AACE,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB;AAClB,oBAAkB;AAClB,eAAa;AACb,eAAa;AACb,eAAa;AACb,gBAAc;AACd,gBAAc;AACd;AACA;AACA;AACA,+BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAwB;AACxB,0BAAwB;AACxB,mBAAiB,IAAI,GAAG,IAAI,IAAI,EAAE;AAClC,2BAAyB,EAAE,EAAE;AAC7B,oBAAkB,EAAE,EAAE;AACtB,eAAa,EAAE,EAAE;AACjB,uBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;AAOA;AACA;AACA;AACE,cAAY;AACZ,gBAAc;AACd,gBAAc;AACd,gBAAc;AAChB;AAEA;AACA;AACE,gBAAc;AAChB;AAYA;AACA;AACE,eAAa;AACb,4BAA0B;AAC1B,iBAAe;AACf,eAAa;AACV,YAAU;AACb;AAAA,IAAa,aAAa;AAAA,IAAE,SAAS;AAAA,IAAE,UAAU;AAAA,IAAE,mBAAmB;AAAA,IAAE,gBAAgB;AAAA,IAAE,iBAAiB;AAAA,IAAE;AAC7G,yBAAuB;AACvB,2BAAyB;AACzB,+BAA6B;AAC/B;AAOA;AACE,UAAQ;AACR,eAAa;AACf;AAQA;AACE,UAAQ;AACR,SAAO;AACP,oBAAkB;AACpB;AAMA,IAAI,OAAO,CAAC;AACV,2BAAyB,UAAU;AAC3B,mBAAiB,UAAU;AACrC;AAMA;AACA;AACA;AACA;AACA;AACA;AACE,aAAW;AACX,eAAa;AACf;AAMA;AACE,SAAO;AACP,mBAAiB;AACnB;AAMA;AACA;AACE,eAAa;AACf;AASA;AACA;AACA;AACA;AACE;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,MAAM;AAAA,IAAE,QAAQ;AAAA,IAAE,iBAAiB;AAAA,IAAE,aAAa;AAAA,IAAE;AACtG,yBAAuB;AACvB,2BAAyB;AACzB,aAAW;AACb;AAMA;AACE,aAAW;AACb;AAMA;AACA;AACE,aAAW;AACX,eAAa;AACb,YAAU;AACV,kBAAgB;AAClB;AAEA;AACE,UAAQ;AACV;AAEA;AACE,OAAK;AACP;AAQA;AACE,eAAa;AACb,gBAAc;AACd,mBAAiB;AACnB;AAQA;AACA;AACA;AACA;AACA;AACE,eAAa;AACb,yBAAuB;AACvB,2BAAyB;AACzB,aAAW;AACX,eAAa;AACb,eAAa;AACb,kBAAgB;AAChB,SAAO;AACP,UAAQ;AACR,WAAS;AACX;AAMA;AACA;AACE,kBAAgB;AAClB;AAOA;AACA,KAAK,OAAO,CAAC;AACb,KAAK,OAAO,CAAC;AACb,KAAK,OAAO,CAAC;AACX,sBAAoB;AACpB,oBAAkB;AAClB,oBAAkB;AACpB;AAMA;AACE,WAAS;AACX;AAMA;AACE,cAAY;AACd;AAMA;AACE,kBAAgB;AAClB;AAMA;AACA;AACE,UAAQ;AACV;AAOA,CAAC;AACC,sBAAoB;AACpB,kBAAgB;AAClB;AAMA;AACE,sBAAoB;AACtB;AAOA;AACE,sBAAoB;AACpB,QAAM;AACR;AAMA;AACE,WAAS;AACX;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,UAAQ;AACV;AAEA;AACE,UAAQ;AACR,WAAS;AACX;AAEA;AACE,WAAS;AACX;AAEA;AACA;AACA;AACE,cAAY;AACZ,UAAQ;AACR,WAAS;AACX;AAKA;AACE,WAAS;AACX;AAMA;AACE,UAAQ;AACV;AAOA,KAAK;AAAoB,QAAQ;AAC/B,WAAS;AACT,SAAO;AACT;AAEA,KAAK;AACL,QAAQ;AACN,WAAS;AACT,SAAO;AACT;AAMA;AACA,CAAC;AACC,UAAQ;AACV;AAKA;AACE,UAAQ;AACV;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,WAAS;AACT,kBAAgB;AAClB;AAMA;AACA;AACE,aAAW;AACX,UAAQ;AACV;AAGA,CAAC,OAAO,OAAO,KAAK,CAAC;AACnB,WAAS;AACX;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,gBAAc,CAAC,CAAC;AAClB;AACA,CAAC;AACC,gBAAc,EAAE,EAAE;AACpB;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,QAAM,EAAE,EAAE;AACZ;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,oBAAkB;AACpB;AACA,CAAC;AACC,oBAAkB;AAClB,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAAM,IAAI,cAAc,OAAO,IAAI,eAAe,OAAO,IAAI;AACnL;AACA,CAAC;AACC,oBAAkB;AAClB,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAAM,IAAI,cAAc,OAAO,IAAI,eAAe,OAAO,IAAI;AACnL;AACA,CAAC;AACC,gBAAc;AACd,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAAM,IAAI,cAAc,OAAO,IAAI,eAAe,OAAO,IAAI;AACnL;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,yBAAuB,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAC7C;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,mBAAiB;AACnB;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,gBAAc;AAChB;AACA,CAAC;AACC,uBAAqB;AACrB,gBAAc,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,mBAAmB,EAAE;AACxD;AACA,CAAC;AACC,uBAAqB;AACrB,gBAAc,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,mBAAmB,EAAE;AACxD;AACA,CAAC;AACC,uBAAqB;AACrB,gBAAc,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,mBAAmB,EAAE;AACxD;AACA,CAAC;AACC,uBAAqB;AACrB,gBAAc,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,mBAAmB,EAAE;AAC3D;AACA,CAAC;AACC,gBAAc,IAAI,IAAI,IAAI,IAAI,EAAE;AAClC;AACA,CAAC;AACC,gBAAc,IAAI,IAAI,IAAI,IAAI,EAAE;AAClC;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,eAAe,EAAE;AACzD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AACA,CAAC;AACC,oBAAkB,KAAK,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC;AAClC;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,eAAe,EAAE;AACrD;AACA,CAAC;AACC,oBAAkB,IAAI,EAAE,EAAE,EAAE,EAAE;AAChC;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,eAAe,EAAE;AACzD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,eAAe,EAAE;AACzD;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACzD;AACA,CAAC;AACC,oBAAkB;AACpB;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,eAAe,EAAE;AAC3D;AACA,CAAC;AACC,oBAAkB,IAAI,IAAI,IAAI,IAAI,EAAE;AACtC;AACA,CAAC;AACC,mBAAiB;AACjB,oBAAkB,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,eAAe,EAAE;AACzD;AACA,CAAC;AACC,oBAAkB,gBAAgB,GAAG,MAAM,EAAE,IAAI;AACnD;AACA,CAAC;AACC,oBAAkB,gBAAgB,GAAG,OAAO,KAAK,EAAE,IAAI;AACzD;AACA,CAAC;AACC,oBAAkB,gBAAgB,GAAG,KAAK,EAAE,IAAI;AAClD;AACA,CAAC;AACC,sBAAoB,QAAQ,IAAI;AAChC,oBAAkB,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI;AAC1C,uBAAqB,IAAI,mBAAmB,EAAE,IAAI;AACpD;AACA,CAAC;AACC,sBAAoB,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI;AAC3C,oBAAkB,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI;AAC1C,uBAAqB,IAAI,mBAAmB,EAAE,IAAI;AACpD;AACA,CAAC;AACC,sBAAoB,QAAQ,IAAI;AAChC,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI;AACxC,uBAAqB,IAAI,mBAAmB,EAAE,IAAI;AACpD;AACA,CAAC;AACC,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,GAAI,IAAI;AACzC;AAAA,IAAqB,IAAI,mBAAmB;AAAA,IAAE,QAAQ,IAAI,2BAA2B;AAAA,IAAE,IAAI;AAC7F;AACA,CAAC;AACC,oBAAkB,QAAQ,IAAI;AAChC;AACA,CAAC;AACC,oBAAkB,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI;AAC3C;AACA,CAAC;AACC,oBAAkB,KAAK,IAAI;AAC7B;AACA,CAAC;AACC,iBAAe;AACZ,cAAY;AACjB;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,gBAAc;AACd,iBAAe;AACjB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,eAAa;AACb,kBAAgB;AAClB;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,MAAM;AAAA,IAAE,QAAQ;AAAA,IAAE,iBAAiB;AAAA,IAAE,aAAa;AAAA,IAAE;AACxG;AACA,CAAC;AACC;AAAA,IAAa,aAAa;AAAA,IAAE,SAAS;AAAA,IAAE,UAAU;AAAA,IAAE,mBAAmB;AAAA,IAAE,gBAAgB;AAAA,IAAE,iBAAiB;AAAA,IAAE;AAC/G;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACb;AACA,CAAC;AACC,aAAW;AACX,eAAa;AACf;AACA,CAAC;AACC,aAAW;AACX,eAAa;AACf;AACA,CAAC;AACC,aAAW;AACX,eAAa;AACf;AACA,CAAC;AACC,aAAW;AACX,eAAa;AACf;AACA,CAAC;AACC,aAAW;AACX,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,eAAa;AACf;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,iBAAiB,EAAE;AAC/C;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,iBAAiB,EAAE;AACjD;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,iBAAiB,EAAE;AACjD;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,iBAAiB,EAAE;AAClD;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,iBAAiB,EAAE;AAClD;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,iBAAiB,EAAE;AAC/C;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,iBAAiB,EAAE;AAChD;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,iBAAiB,EAAE;AAChD;AACA,CAAC;AACC,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,iBAAiB,EAAE;AAClD;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,eAAa,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,uBAAqB,EAAE,IAAI,KAAK,IAAI;AACpC;AAAA,IAAY,IAAI,uBAAuB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI;AAC7F;AACA,CAAC;AACC,eAAa,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE;AAC3E,uBAAqB,EAAE,KAAK,KAAK,KAAK,IAAI,kBAAkB,EAAE,EAAE,IAAI,IAAI,KAAK,IAAI;AACjF;AAAA,IAAY,IAAI,uBAAuB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI;AAC7F;AACA,CAAC;AACC,eAAa,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE;AAC5E,uBAAqB,EAAE,KAAK,KAAK,KAAK,IAAI,kBAAkB,EAAE,EAAE,IAAI,KAAK,KAAK,IAAI;AAClF;AAAA,IAAY,IAAI,uBAAuB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI;AAC7F;AACA,CAAC;AACC,UAAQ,IAAI,WAAW,IAAI,iBAAiB,IAAI,eAAe,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,aAAa,IAAI,eAAe,IAAI,YAAY,IAAI;AAClK;AACA,CAAC;AACC,sBAAoB,KAAK;AACzB,mBAAiB,IAAI,oBAAoB,IAAI,0BAA0B,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,0BAA0B,IAAI,sBAAsB,IAAI,uBAAuB,IAAI,wBAAwB,IAAI;AACrP;AACA,CAAC;AACC;AAAA,IAAqB,KAAK;AAAA,IAAE,gBAAgB;AAAA,IAAE,YAAY;AAAA,IAAE,qBAAqB;AAAA,IAAE,IAAI;AAAA,IAAE,MAAM;AAAA,IAAE,OAAO;AAAA,IAAE,UAAU;AAAA,IAAE,SAAS;AAAA,IAAE,MAAM;AAAA,IAAE;AACzI,8BAA4B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtD,uBAAqB;AACvB;AACA,CAAC;AACC,uBAAqB;AACrB,8BAA4B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtD,uBAAqB;AACvB;AACA,CAAC;AACC;AAAA,IAAqB,KAAK;AAAA,IAAE,gBAAgB;AAAA,IAAE,YAAY;AAAA,IAAE,qBAAqB;AAAA,IAAE,IAAI;AAAA,IAAE;AACzF,8BAA4B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtD,uBAAqB;AACvB;AACA,CAAC;AACC,uBAAqB;AACrB,8BAA4B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtD,uBAAqB;AACvB;AACA,CAAC;AACC,uBAAqB;AACvB;AAIA,CAAC;AACG,mBAAiB;AACjB,mBAAiB,QAAQ;AAC3B;AAEA,CALD,iBAKmB;AAChB,SAAO;AACT;AAEA,CATD,iBASmB;AAChB,cAAY;AACd;AAEA,CAAC,wBAAwB;AACzB,oBAAkB;AAClB,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAAM,IAAI,cAAc,OAAO,IAAI,eAAe,OAAO,IAAI;AACnL;AAEE,CAAC,0BAA0B;AAC3B,uBAAqB;AACrB,gBAAc,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,mBAAmB,EAAE;AACxD;AAEE,CAAC,sBAAsB;AACvB,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,eAAe,EAAE;AACzD;AAEE,CAAC,sBAAsB;AACvB,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AAEE,CAAC,sBAAsB;AACvB,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,EAAE;AACxD;AAEE,CAAC,mBAAmB;AACpB,oBAAkB,IAAI,IAAI,IAAI,IAAI,EAAE;AACtC;AAEE,CAAC,oBAAoB;AACrB,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,iBAAiB,EAAE;AAClD;AAEE,CAAC,iBAAiB;AAClB,WAAS;AACX;AAEE,CAAC,uDAA6D;AAC9D,eAAa,EAAE,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACxC,uBAAqB,EAAE,IAAI,KAAK,IAAI;AACpC;AAAA,IAAY,IAAI,uBAAuB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI;AAC7F;AAEE,CAAC,qBAAqB;AACtB,oBAAkB;AAClB,aAAW,UAAU,IAAI,iBAAiB,EAAE,IAAI,mBAAmB,OAAO,IAAI,cAAc,MAAM,IAAI,cAAc,MAAM,IAAI,cAAc,OAAO,IAAI,eAAe,OAAO,IAAI;AACnL;AAEE,CAAC,oBAAoB;AACrB,oBAAkB,IAAI,IAAI,IAAI,IAAI,EAAE;AACtC;AAEE,CAAC,4BAA4B;AAC7B,UAAQ;AACV;AAEE,CAAC,oBAAoB;AACrB,WAAS;AACX;AAEE,QAAO,WAAY;AAEnB,GAAC;AACC,oBAAgB;AAClB;AAEA,GAAC;AACC,iBAAa;AACf;AAEA,GAAC;AACC,SAAK;AACP;AAEA,GAAC;AACC,gBAAY;AACd;AAEA,GAAC;AACC,aAAS;AACX;AAEA,GAAC;AACC,aAAS;AACX;AAEA,GAAC;AACC,aAAS;AACX;AAEA,GAAC;AACC,iBAAa;AACb,oBAAgB;AAClB;AAEA,GAAC;AACC,eAAW;AACX,iBAAa;AACf;AAEA,GAAC;AACC,eAAW;AACX,iBAAa;AACf;AAEA,GAAC;AACC,eAAW;AACX,iBAAa;AACf;AACF;AAEE,QAAO,WAAY;AAEnB,GAAC;AACC,aAAS;AACX;AAEA,GAAC;AACC,aAAS;AACX;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.css"],"sourcesContent":["*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.right-4 {\n right: 1rem;\n}\n.right-5 {\n right: 1.25rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-4 {\n top: 1rem;\n}\n.top-5 {\n top: 1.25rem;\n}\n.z-\\[10000\\] {\n z-index: 10000;\n}\n.z-\\[1000\\] {\n z-index: 1000;\n}\n.z-\\[2\\] {\n z-index: 2;\n}\n.z-\\[3\\] {\n z-index: 3;\n}\n.m-0 {\n margin: 0px;\n}\n.m-3 {\n margin: 0.75rem;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.mb-1\\.5 {\n margin-bottom: 0.375rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.mt-48 {\n margin-top: 12rem;\n}\n.mt-auto {\n margin-top: auto;\n}\n.block {\n display: block;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-\\[3\\/4\\] {\n aspect-ratio: 3/4;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.h-4 {\n height: 1rem;\n}\n.h-\\[80vh\\] {\n height: 80vh;\n}\n.h-full {\n height: 100%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-full {\n width: 100%;\n}\n.min-w-\\[300px\\] {\n min-width: 300px;\n}\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n.max-w-\\[450px\\] {\n max-width: 450px;\n}\n.max-w-\\[500px\\] {\n max-width: 500px;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.origin-center {\n transform-origin: center;\n}\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-scale-x-100 {\n --tw-scale-x: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.self-end {\n align-self: flex-end;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.break-all {\n word-break: break-all;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-none {\n border-style: none;\n}\n.border-\\[\\#155e3b\\] {\n --tw-border-opacity: 1;\n border-color: rgb(21 94 59 / var(--tw-border-opacity, 1));\n}\n.border-\\[\\#30363d\\] {\n --tw-border-opacity: 1;\n border-color: rgb(48 54 61 / var(--tw-border-opacity, 1));\n}\n.border-\\[\\#374151\\] {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n}\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n.border-white\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n}\n.border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.bg-\\[\\#0a2315\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(10 35 21 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#0b0f17\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(11 15 23 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#0f172a\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#111827\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#1f2937\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#22c55e\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#374151\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[\\#f59e0b\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));\n}\n.bg-\\[rgba\\(20\\2c 20\\2c 20\\2c 0\\.95\\)\\] {\n background-color: rgba(20,20,20,0.95);\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));\n}\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-yellow-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));\n}\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.from-\\[\\#FF842D\\] {\n --tw-gradient-from: #FF842D var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 132 45 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-\\[rgba\\(17\\2c 24\\2c 39\\2c 0\\.9\\)\\] {\n --tw-gradient-from: rgba(17,24,39,0.9) var(--tw-gradient-from-position);\n --tw-gradient-to: rgba(17, 24, 39, 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-gray-900 {\n --tw-gradient-from: #111827 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.via-gray-800 {\n --tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), #1f2937 var(--tw-gradient-via-position), var(--tw-gradient-to);\n}\n.to-\\[\\#FF2D55\\] {\n --tw-gradient-to: #FF2D55 var(--tw-gradient-to-position);\n}\n.to-\\[rgba\\(17\\2c 24\\2c 39\\2c 0\\.6\\)\\] {\n --tw-gradient-to: rgba(17,24,39,0.6) var(--tw-gradient-to-position);\n}\n.to-black {\n --tw-gradient-to: #000 var(--tw-gradient-to-position);\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-3\\.5 {\n padding-top: 0.875rem;\n padding-bottom: 0.875rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n}\n.text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n.text-\\[15px\\] {\n font-size: 15px;\n}\n.text-\\[22px\\] {\n font-size: 22px;\n}\n.text-\\[26px\\] {\n font-size: 26px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-semibold {\n font-weight: 600;\n}\n.leading-relaxed {\n line-height: 1.625;\n}\n.leading-tight {\n line-height: 1.25;\n}\n.text-\\[\\#0b0f17\\] {\n --tw-text-opacity: 1;\n color: rgb(11 15 23 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#34d399\\] {\n --tw-text-opacity: 1;\n color: rgb(52 211 153 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#60a5fa\\] {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#9ca3af\\] {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.text-\\[\\#e5e7eb\\] {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-10 {\n opacity: 0.1;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-40 {\n opacity: 0.4;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.shadow-\\[0_8px_32px_rgba\\(0\\2c 0\\2c 0\\2c 0\\.5\\)\\] {\n --tw-shadow: 0 8px 32px rgba(0,0,0,0.5);\n --tw-shadow-colored: 0 8px 32px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n\n\n\n.custom__scrollbar {\n scrollbar-width: thin;\n scrollbar-color: #474747 transparent;\n }\n \n .custom__scrollbar::-webkit-scrollbar {\n width: 6px;\n }\n \n .custom__scrollbar::-webkit-scrollbar-track {\n background: transparent;\n }\n \n .hover\\:-translate-y-0\\.5:hover {\n --tw-translate-y: -0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n \n .hover\\:border-\\[\\#4b5563\\]:hover {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#16a34a\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#1f2937\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#4b5563\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-\\[\\#d97706\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));\n}\n \n .hover\\:bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n \n .hover\\:text-gray-200:hover {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n \n .hover\\:opacity-90:hover {\n opacity: 0.9;\n}\n \n .hover\\:shadow-\\[0_4px_12px_rgba\\(255\\2c 107\\2c 53\\2c 0\\.4\\)\\]:hover {\n --tw-shadow: 0 4px 12px rgba(255,107,53,0.4);\n --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n \n .active\\:translate-y-0:active {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n \n .active\\:bg-white\\/20:active {\n background-color: rgb(255 255 255 / 0.2);\n}\n \n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n \n .disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n \n @media (min-width: 640px) {\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:items-center {\n align-items: center;\n }\n\n .sm\\:gap-4 {\n gap: 1rem;\n }\n\n .sm\\:self-auto {\n align-self: auto;\n }\n\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n\n .sm\\:p-4 {\n padding: 1rem;\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n\n .sm\\:text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n }\n\n .sm\\:text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n \n @media (min-width: 768px) {\n\n .md\\:p-7 {\n padding: 1.75rem;\n }\n\n .md\\:p-8 {\n padding: 2rem;\n }\n}\n "],"mappings":";AAAA;AAAG;AAAU;AACX,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB;AAClB,oBAAkB;AAClB,eAAa;AACb,eAAa;AACb,eAAa;AACb,gBAAc;AACd,gBAAc;AACd;AACA;AACA;AACA,+BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAwB;AACxB,0BAAwB;AACxB,mBAAiB,IAAI,GAAG,IAAI,IAAI,EAAE;AAClC,2BAAyB,EAAE,EAAE;AAC7B,oBAAkB,EAAE,EAAE;AACtB,eAAa,EAAE,EAAE;AACjB,uBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;AAEA;AACE,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB;AAClB,oBAAkB;AAClB,eAAa;AACb,eAAa;AACb,eAAa;AACb,gBAAc;AACd,gBAAc;AACd;AACA;AACA;AACA,+BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAwB;AACxB,0BAAwB;AACxB,mBAAiB,IAAI,GAAG,IAAI,IAAI,EAAE;AAClC,2BAAyB,EAAE,EAAE;AAC7B,oBAAkB,EAAE,EAAE;AACtB,eAAa,EAAE,EAAE;AACjB,uBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;AAOA;AACA;AACA;AACE,cAAY;AACZ,gBAAc;AACd,gBAAc;AACd,gBAAc;AAChB;AAEA;AACA;AACE,gBAAc;AAChB;AAYA;AACA;AACE,eAAa;AACb,4BAA0B;AAC1B,iBAAe;AACf,eAAa;AACV,YAAU;AACb;AAAA,IAAa,aAAa;AAAA,IAAE,SAAS;AAAA,IAAE,UAAU;AAAA,IAAE,mBAAmB;AAAA,IAAE,gBAAgB;AAAA,IAAE,iBAAiB;AAAA,IAAE;AAC7G,yBAAuB;AACvB,2BAAyB;AACzB,+BAA6B;AAC/B;AAOA;AACE,UAAQ;AACR,eAAa;AACf;AAQA;AACE,UAAQ;AACR,SAAO;AACP,oBAAkB;AACpB;AAMA,IAAI,OAAO,CAAC;AACV,2BAAyB,UAAU;AAC3B,mBAAiB,UAAU;AACrC;AAMA;AACA;AACA;AACA;AACA;AACA;AACE,aAAW;AACX,eAAa;AACf;AAMA;AACE,SAAO;AACP,mBAAiB;AACnB;AAMA;AACA;AACE,eAAa;AACf;AASA;AACA;AACA;AACA;AACE;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,MAAM;AAAA,IAAE,QAAQ;AAAA,IAAE,iBAAiB;AAAA,IAAE,aAAa;AAAA,IAAE;AACtG,yBAAuB;AACvB,2BAAyB;AACzB,aAAW;AACb;AAMA;AACE,aAAW;AACb;AAMA;AACA;AACE,aAAW;AACX,eAAa;AACb,YAAU;AACV,kBAAgB;AAClB;AAEA;AACE,UAAQ;AACV;AAEA;AACE,OAAK;AACP;AAQA;AACE,eAAa;AACb,gBAAc;AACd,mBAAiB;AACnB;AAQA;AACA;AACA;AACA;AACA;AACE,eAAa;AACb,yBAAuB;AACvB,2BAAyB;AACzB,aAAW;AACX,eAAa;AACb,eAAa;AACb,kBAAgB;AAChB,SAAO;AACP,UAAQ;AACR,WAAS;AACX;AAMA;AACA;AACE,kBAAgB;AAClB;AAOA;AACA,KAAK,OAAO,CAAC;AACb,KAAK,OAAO,CAAC;AACb,KAAK,OAAO,CAAC;AACX,sBAAoB;AACpB,oBAAkB;AAClB,oBAAkB;AACpB;AAMA;AACE,WAAS;AACX;AAMA;AACE,cAAY;AACd;AAMA;AACE,kBAAgB;AAClB;AAMA;AACA;AACE,UAAQ;AACV;AAOA,CAAC;AACC,sBAAoB;AACpB,kBAAgB;AAClB;AAMA;AACE,sBAAoB;AACtB;AAOA;AACE,sBAAoB;AACpB,QAAM;AACR;AAMA;AACE,WAAS;AACX;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,UAAQ;AACV;AAEA;AACE,UAAQ;AACR,WAAS;AACX;AAEA;AACE,WAAS;AACX;AAEA;AACA;AACA;AACE,cAAY;AACZ,UAAQ;AACR,WAAS;AACX;AAKA;AACE,WAAS;AACX;AAMA;AACE,UAAQ;AACV;AAOA,KAAK;AAAoB,QAAQ;AAC/B,WAAS;AACT,SAAO;AACT;AAEA,KAAK;AACL,QAAQ;AACN,WAAS;AACT,SAAO;AACT;AAMA;AACA,CAAC;AACC,UAAQ;AACV;AAKA;AACE,UAAQ;AACV;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,WAAS;AACT,kBAAgB;AAClB;AAMA;AACA;AACE,aAAW;AACX,UAAQ;AACV;AAGA,CAAC,OAAO,OAAO,KAAK,CAAC;AACnB,WAAS;AACX;AACA,CAAC;AACC,kBAAgB;AAClB;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,QAAM;AACR;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,SAAO;AACT;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,UAAQ;AACV;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,eAAa;AACb,gBAAc;AAChB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,iBAAe;AACjB;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AACA,CAAC;AACC,cAAY;AACd;AA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","names":[]}
|
package/dist/components.es.js
CHANGED
|
@@ -83,15 +83,21 @@ var KycApiService = class {
|
|
|
83
83
|
);
|
|
84
84
|
if (!response.ok) {
|
|
85
85
|
const errorData = await response.json().catch(() => ({}));
|
|
86
|
-
const message = errorData?.message || `Face upload failed with status ${response.status}`;
|
|
86
|
+
const message = errorData?.message || errorData?.errorData?.message || `Face upload failed with status ${response.status}`;
|
|
87
87
|
const error = new Error(message);
|
|
88
88
|
error.statusCode = response.status;
|
|
89
89
|
error.errorData = errorData;
|
|
90
|
+
if (errorData.statusCode) {
|
|
91
|
+
error.statusCode = errorData.statusCode;
|
|
92
|
+
}
|
|
90
93
|
throw error;
|
|
91
94
|
}
|
|
92
95
|
const data = await response.json();
|
|
93
96
|
return data;
|
|
94
97
|
} catch (error) {
|
|
98
|
+
if (error.message && !error.message.includes("Face upload failed")) {
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
95
101
|
const message = error?.message || "Face upload failed";
|
|
96
102
|
throw new Error(`Face upload failed: ${message}`);
|
|
97
103
|
}
|
|
@@ -131,6 +137,36 @@ var KycApiService = class {
|
|
|
131
137
|
throw new Error(`Document upload failed: ${message}`);
|
|
132
138
|
}
|
|
133
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Retry session - resets the session to allow face registration again
|
|
142
|
+
*/
|
|
143
|
+
async retrySession() {
|
|
144
|
+
const deviceType = this.config.deviceType || this.detectDeviceType();
|
|
145
|
+
try {
|
|
146
|
+
const response = await fetch(
|
|
147
|
+
`${this.config.apiBaseUrl}/api/v2/dashboard/merchant/onsite/session/${this.config.sessionId}/retry`,
|
|
148
|
+
{
|
|
149
|
+
method: "POST",
|
|
150
|
+
headers: {
|
|
151
|
+
"x-server-key": this.config.serverKey,
|
|
152
|
+
"device-type": deviceType,
|
|
153
|
+
"Content-Type": "application/json"
|
|
154
|
+
},
|
|
155
|
+
credentials: "include"
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
if (!response.ok) {
|
|
159
|
+
const errorData = await response.json().catch(() => ({}));
|
|
160
|
+
const message = errorData?.message || `Retry failed with status ${response.status}`;
|
|
161
|
+
throw new Error(message);
|
|
162
|
+
}
|
|
163
|
+
const data = await response.json();
|
|
164
|
+
return data;
|
|
165
|
+
} catch (error) {
|
|
166
|
+
const message = error?.message || "Retry failed";
|
|
167
|
+
throw new Error(`Retry failed: ${message}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
134
170
|
/**
|
|
135
171
|
* Check if session is active, throw error if not
|
|
136
172
|
*/
|
|
@@ -405,6 +441,7 @@ function DocumentUploadModal({ onComplete }) {
|
|
|
405
441
|
const navigate = useNavigate();
|
|
406
442
|
const { apiService } = useKycContext();
|
|
407
443
|
const [sessionError, setSessionError] = useState(null);
|
|
444
|
+
const [kycCompleted, setKycCompleted] = useState(false);
|
|
408
445
|
const {
|
|
409
446
|
state,
|
|
410
447
|
setState,
|
|
@@ -420,6 +457,15 @@ function DocumentUploadModal({ onComplete }) {
|
|
|
420
457
|
throw new Error("API service not initialized");
|
|
421
458
|
}
|
|
422
459
|
await apiService.uploadDocument(blob, docType);
|
|
460
|
+
try {
|
|
461
|
+
const statusResponse = await apiService.getSessionStatus();
|
|
462
|
+
const { completed_steps, status } = statusResponse.data;
|
|
463
|
+
if (status === "COMPLETED" || completed_steps.includes(COMPLETED_STEPS.COMPLETED)) {
|
|
464
|
+
setKycCompleted(true);
|
|
465
|
+
}
|
|
466
|
+
} catch (error) {
|
|
467
|
+
console.error("Error checking completion status:", error);
|
|
468
|
+
}
|
|
423
469
|
},
|
|
424
470
|
onUpload: (file, docType) => {
|
|
425
471
|
if (onComplete) {
|
|
@@ -438,11 +484,18 @@ function DocumentUploadModal({ onComplete }) {
|
|
|
438
484
|
try {
|
|
439
485
|
const statusResponse = await apiService.getSessionStatus();
|
|
440
486
|
const { completed_steps, next_step, status } = statusResponse.data;
|
|
487
|
+
if (status === "COMPLETED" || completed_steps.includes(COMPLETED_STEPS.COMPLETED)) {
|
|
488
|
+
setKycCompleted(true);
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
441
491
|
if (status !== "ACTIVE") {
|
|
442
492
|
throw new Error("Session expired or inactive");
|
|
443
493
|
}
|
|
444
494
|
if (completed_steps.includes(COMPLETED_STEPS.DOCS)) {
|
|
445
|
-
|
|
495
|
+
if (completed_steps.includes(COMPLETED_STEPS.FACE) && completed_steps.includes(COMPLETED_STEPS.DOCS)) {
|
|
496
|
+
setKycCompleted(true);
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
446
499
|
}
|
|
447
500
|
if (next_step === COMPLETED_STEPS.FACE && !completed_steps.includes(COMPLETED_STEPS.FACE)) {
|
|
448
501
|
console.warn("Face scan not completed, but in document upload modal");
|
|
@@ -458,6 +511,14 @@ function DocumentUploadModal({ onComplete }) {
|
|
|
458
511
|
};
|
|
459
512
|
checkSession();
|
|
460
513
|
}, [apiService, navigate]);
|
|
514
|
+
if (kycCompleted) {
|
|
515
|
+
return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 bg-black p-5 z-[1000] flex items-center justify-center font-sans overflow-y-auto custom__scrollbar", children: /* @__PURE__ */ jsx("div", { className: "max-w-[400px] w-full mx-auto bg-[#0b0f17] rounded-2xl p-6 shadow-xl", children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
516
|
+
/* @__PURE__ */ jsx("div", { className: "mb-4 text-6xl", children: "\u2705" }),
|
|
517
|
+
/* @__PURE__ */ jsx("h2", { className: "m-0 mb-4 text-[26px] font-bold text-green-500", children: "KYC Completed" }),
|
|
518
|
+
/* @__PURE__ */ jsx("p", { className: "text-[#e5e7eb] mb-4 text-lg", children: "All steps have been completed successfully." }),
|
|
519
|
+
/* @__PURE__ */ jsx("p", { className: "text-[#9ca3af] text-sm mb-6", children: "Please return to your desktop to continue." })
|
|
520
|
+
] }) }) });
|
|
521
|
+
}
|
|
461
522
|
if (sessionError) {
|
|
462
523
|
return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 bg-black p-4 z-[1000] flex items-center justify-center font-sans overflow-y-auto custom__scrollbar", children: /* @__PURE__ */ jsx("div", { className: "max-w-[400px] w-full mx-auto bg-[#0b0f17] rounded-2xl p-6 shadow-xl", children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
463
524
|
/* @__PURE__ */ jsx("h2", { className: "m-0 mb-4 text-[26px] font-bold text-red-500", children: "Session Expired" }),
|
|
@@ -1108,8 +1169,29 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
|
|
|
1108
1169
|
livenessInstruction: "Face captured and uploaded successfully!",
|
|
1109
1170
|
loading: false
|
|
1110
1171
|
}));
|
|
1172
|
+
if (callbacks?.onFaceCaptureComplete) {
|
|
1173
|
+
callbacks.onFaceCaptureComplete(dataUrl);
|
|
1174
|
+
}
|
|
1175
|
+
setTimeout(() => {
|
|
1176
|
+
setState((prev) => ({ ...prev, showDocumentUpload: true }));
|
|
1177
|
+
}, 500);
|
|
1111
1178
|
} catch (uploadError) {
|
|
1112
|
-
|
|
1179
|
+
if (uploadError.message === "FACE_ALREADY_REGISTERED" || uploadError.isFaceAlreadyRegistered) {
|
|
1180
|
+
setState((prev) => ({
|
|
1181
|
+
...prev,
|
|
1182
|
+
loading: false,
|
|
1183
|
+
allStepsCompleted: false,
|
|
1184
|
+
showDocumentUpload: false,
|
|
1185
|
+
livenessInstruction: "Face already registered. Please click Retry to register again."
|
|
1186
|
+
}));
|
|
1187
|
+
return;
|
|
1188
|
+
}
|
|
1189
|
+
setState((prev) => ({
|
|
1190
|
+
...prev,
|
|
1191
|
+
livenessInstruction: uploadError.message || "Error capturing image. Please try again.",
|
|
1192
|
+
loading: false
|
|
1193
|
+
}));
|
|
1194
|
+
throw uploadError;
|
|
1113
1195
|
}
|
|
1114
1196
|
} else {
|
|
1115
1197
|
setState((prev) => ({
|
|
@@ -1119,13 +1201,13 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
|
|
|
1119
1201
|
livenessInstruction: "Face captured successfully!",
|
|
1120
1202
|
loading: false
|
|
1121
1203
|
}));
|
|
1204
|
+
if (callbacks?.onFaceCaptureComplete) {
|
|
1205
|
+
callbacks.onFaceCaptureComplete(dataUrl);
|
|
1206
|
+
}
|
|
1207
|
+
setTimeout(() => {
|
|
1208
|
+
setState((prev) => ({ ...prev, showDocumentUpload: true }));
|
|
1209
|
+
}, 500);
|
|
1122
1210
|
}
|
|
1123
|
-
if (callbacks?.onFaceCaptureComplete) {
|
|
1124
|
-
callbacks.onFaceCaptureComplete(dataUrl);
|
|
1125
|
-
}
|
|
1126
|
-
setTimeout(() => {
|
|
1127
|
-
setState((prev) => ({ ...prev, showDocumentUpload: true }));
|
|
1128
|
-
}, 500);
|
|
1129
1211
|
} catch (err) {
|
|
1130
1212
|
console.error("Error capturing image:", err);
|
|
1131
1213
|
setState((prev) => ({
|
|
@@ -1294,6 +1376,9 @@ function FaceScanModal({ onComplete }) {
|
|
|
1294
1376
|
const { apiService } = useKycContext();
|
|
1295
1377
|
const [sessionError, setSessionError] = useState(null);
|
|
1296
1378
|
const [toast, setToast] = useState(null);
|
|
1379
|
+
const [showRetryButton, setShowRetryButton] = useState(false);
|
|
1380
|
+
const [isRetrying, setIsRetrying] = useState(false);
|
|
1381
|
+
const [kycCompleted, setKycCompleted] = useState(false);
|
|
1297
1382
|
const { videoRef, cameraReady, stopCamera } = useCamera();
|
|
1298
1383
|
const { state, setState, refs, handleFaceCapture } = useFaceScan(videoRef, faceCanvasRef, {
|
|
1299
1384
|
onFaceUpload: async (blob) => {
|
|
@@ -1305,12 +1390,18 @@ function FaceScanModal({ onComplete }) {
|
|
|
1305
1390
|
} catch (error) {
|
|
1306
1391
|
const errorMessage = error?.message || "";
|
|
1307
1392
|
const errorData = error?.errorData || {};
|
|
1308
|
-
|
|
1393
|
+
const statusCode = error?.statusCode;
|
|
1394
|
+
const isFaceAlreadyRegistered = errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || statusCode === 500 && errorMessage.includes("Face already registered");
|
|
1395
|
+
if (isFaceAlreadyRegistered) {
|
|
1396
|
+
setShowRetryButton(true);
|
|
1309
1397
|
setToast({
|
|
1310
|
-
message: "Face already registered",
|
|
1398
|
+
message: "Face already registered. Click Retry to register again.",
|
|
1311
1399
|
type: "warning"
|
|
1312
1400
|
});
|
|
1313
|
-
|
|
1401
|
+
setState((prev) => ({ ...prev, loading: false, allStepsCompleted: false, showDocumentUpload: false }));
|
|
1402
|
+
const faceRegisteredError = new Error("FACE_ALREADY_REGISTERED");
|
|
1403
|
+
faceRegisteredError.isFaceAlreadyRegistered = true;
|
|
1404
|
+
throw faceRegisteredError;
|
|
1314
1405
|
}
|
|
1315
1406
|
throw error;
|
|
1316
1407
|
}
|
|
@@ -1330,6 +1421,10 @@ function FaceScanModal({ onComplete }) {
|
|
|
1330
1421
|
if (status !== "ACTIVE") {
|
|
1331
1422
|
throw new Error("Session expired or inactive");
|
|
1332
1423
|
}
|
|
1424
|
+
if (status === "COMPLETED" || completed_steps.includes(COMPLETED_STEPS.COMPLETED)) {
|
|
1425
|
+
setKycCompleted(true);
|
|
1426
|
+
return;
|
|
1427
|
+
}
|
|
1333
1428
|
if (completed_steps.includes(COMPLETED_STEPS.FACE)) {
|
|
1334
1429
|
setState((prev) => ({ ...prev, showDocumentUpload: true }));
|
|
1335
1430
|
return;
|
|
@@ -1377,7 +1472,47 @@ function FaceScanModal({ onComplete }) {
|
|
|
1377
1472
|
}
|
|
1378
1473
|
}
|
|
1379
1474
|
}, [cameraReady, apiService]);
|
|
1380
|
-
const handleRetry = () => {
|
|
1475
|
+
const handleRetry = async () => {
|
|
1476
|
+
if (!apiService || isRetrying) return;
|
|
1477
|
+
setIsRetrying(true);
|
|
1478
|
+
setShowRetryButton(false);
|
|
1479
|
+
setToast(null);
|
|
1480
|
+
try {
|
|
1481
|
+
await apiService.retrySession();
|
|
1482
|
+
stopCamera();
|
|
1483
|
+
setState({
|
|
1484
|
+
cameraReady: false,
|
|
1485
|
+
livenessStage: "CENTER",
|
|
1486
|
+
livenessReady: false,
|
|
1487
|
+
livenessFailed: false,
|
|
1488
|
+
modelLoading: true,
|
|
1489
|
+
modelLoaded: false,
|
|
1490
|
+
livenessInstruction: "Look straight at the camera",
|
|
1491
|
+
loading: false,
|
|
1492
|
+
allStepsCompleted: false,
|
|
1493
|
+
capturedImage: null,
|
|
1494
|
+
showDocumentUpload: false
|
|
1495
|
+
});
|
|
1496
|
+
refs.centerHold.current = 0;
|
|
1497
|
+
refs.leftHold.current = 0;
|
|
1498
|
+
refs.rightHold.current = 0;
|
|
1499
|
+
refs.snapTriggered.current = false;
|
|
1500
|
+
refs.lastResultsAt.current = 0;
|
|
1501
|
+
refs.modelLoaded.current = false;
|
|
1502
|
+
refs.livenessFailed.current = false;
|
|
1503
|
+
setTimeout(() => {
|
|
1504
|
+
window.location.reload();
|
|
1505
|
+
}, 500);
|
|
1506
|
+
} catch (error) {
|
|
1507
|
+
setIsRetrying(false);
|
|
1508
|
+
setShowRetryButton(true);
|
|
1509
|
+
setToast({
|
|
1510
|
+
message: error?.message || "Retry failed. Please try again.",
|
|
1511
|
+
type: "error"
|
|
1512
|
+
});
|
|
1513
|
+
}
|
|
1514
|
+
};
|
|
1515
|
+
const handleRestart = () => {
|
|
1381
1516
|
stopCamera();
|
|
1382
1517
|
setState({
|
|
1383
1518
|
cameraReady: false,
|
|
@@ -1403,6 +1538,14 @@ function FaceScanModal({ onComplete }) {
|
|
|
1403
1538
|
window.location.reload();
|
|
1404
1539
|
}, 100);
|
|
1405
1540
|
};
|
|
1541
|
+
if (kycCompleted) {
|
|
1542
|
+
return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 bg-black p-5 z-[1000] flex items-center justify-center font-sans overflow-y-auto custom__scrollbar", children: /* @__PURE__ */ jsx("div", { className: "max-w-[400px] w-full mx-auto bg-[#0b0f17] rounded-2xl p-6 shadow-xl", children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
1543
|
+
/* @__PURE__ */ jsx("div", { className: "mb-4 text-6xl", children: "\u2705" }),
|
|
1544
|
+
/* @__PURE__ */ jsx("h2", { className: "m-0 mb-4 text-[26px] font-bold text-green-500", children: "KYC Completed" }),
|
|
1545
|
+
/* @__PURE__ */ jsx("p", { className: "text-[#e5e7eb] mb-4 text-lg", children: "All steps have been completed successfully." }),
|
|
1546
|
+
/* @__PURE__ */ jsx("p", { className: "text-[#9ca3af] text-sm mb-6", children: "Please return to your desktop to continue." })
|
|
1547
|
+
] }) }) });
|
|
1548
|
+
}
|
|
1406
1549
|
if (state.showDocumentUpload) {
|
|
1407
1550
|
return /* @__PURE__ */ jsx(
|
|
1408
1551
|
DocumentUploadModal_default,
|
|
@@ -1465,13 +1608,23 @@ function FaceScanModal({ onComplete }) {
|
|
|
1465
1608
|
/* @__PURE__ */ jsx("div", { className: state.livenessStage === "DONE" ? "opacity-100" : "opacity-30", children: "3. Turn your face left" })
|
|
1466
1609
|
] })
|
|
1467
1610
|
] }),
|
|
1611
|
+
showRetryButton && /* @__PURE__ */ jsx(
|
|
1612
|
+
"button",
|
|
1613
|
+
{
|
|
1614
|
+
type: "button",
|
|
1615
|
+
onClick: handleRetry,
|
|
1616
|
+
disabled: isRetrying || state.loading,
|
|
1617
|
+
className: "py-3.5 px-4 rounded-xl text-base font-bold border-none transition-colors bg-[#f59e0b] text-[#0b0f17] cursor-pointer hover:bg-[#d97706] disabled:opacity-50 disabled:cursor-not-allowed",
|
|
1618
|
+
children: isRetrying ? "Retrying..." : "Retry Face Registration"
|
|
1619
|
+
}
|
|
1620
|
+
),
|
|
1468
1621
|
/* @__PURE__ */ jsx(
|
|
1469
1622
|
"button",
|
|
1470
1623
|
{
|
|
1471
1624
|
type: "button",
|
|
1472
|
-
disabled: !state.cameraReady || state.loading || !state.livenessFailed && state.livenessStage !== "DONE",
|
|
1625
|
+
disabled: !state.cameraReady || state.loading || !state.livenessFailed && state.livenessStage !== "DONE" || showRetryButton,
|
|
1473
1626
|
onClick: handleFaceCapture,
|
|
1474
|
-
className: `py-3.5 px-4 rounded-xl text-base font-bold border-none transition-colors ${state.cameraReady && !state.loading && (state.livenessFailed || state.livenessStage === "DONE") ? "bg-[#22c55e] text-[#0b0f17] cursor-pointer hover:bg-[#16a34a]" : "bg-[#374151] text-[#e5e7eb] cursor-not-allowed"}`,
|
|
1627
|
+
className: `py-3.5 px-4 rounded-xl text-base font-bold border-none transition-colors ${state.cameraReady && !state.loading && (state.livenessFailed || state.livenessStage === "DONE") && !showRetryButton ? "bg-[#22c55e] text-[#0b0f17] cursor-pointer hover:bg-[#16a34a]" : "bg-[#374151] text-[#e5e7eb] cursor-not-allowed"}`,
|
|
1475
1628
|
children: state.loading ? "Capturing..." : state.livenessFailed || state.livenessStage === "DONE" ? "Capture & Continue" : "Complete steps to continue"
|
|
1476
1629
|
}
|
|
1477
1630
|
),
|
|
@@ -1479,9 +1632,9 @@ function FaceScanModal({ onComplete }) {
|
|
|
1479
1632
|
"button",
|
|
1480
1633
|
{
|
|
1481
1634
|
type: "button",
|
|
1482
|
-
onClick:
|
|
1483
|
-
disabled: state.loading,
|
|
1484
|
-
className: `py-3 px-4 rounded-[10px] text-[15px] font-semibold border-none w-full transition-colors ${state.loading ? "bg-[#374151] text-[#e5e7eb] cursor-not-allowed opacity-50" : "bg-[#374151] text-[#e5e7eb] cursor-pointer hover:bg-[#4b5563]"}`,
|
|
1635
|
+
onClick: handleRestart,
|
|
1636
|
+
disabled: state.loading || isRetrying,
|
|
1637
|
+
className: `py-3 px-4 rounded-[10px] text-[15px] font-semibold border-none w-full transition-colors ${state.loading || isRetrying ? "bg-[#374151] text-[#e5e7eb] cursor-not-allowed opacity-50" : "bg-[#374151] text-[#e5e7eb] cursor-pointer hover:bg-[#4b5563]"}`,
|
|
1485
1638
|
children: "Restart"
|
|
1486
1639
|
}
|
|
1487
1640
|
)
|