PageSourceSearch

https://palmscannerai.com/_next/static/chunks/app/%5Blocale%5D/(pa…/page-dcee115f4d378bbd.js

js palmscannerai.com collected 2026-10-08 20:04:50 UTC 15,119 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[94949],{7895:(e,t,r)=>{"use strict";r.d(t,{PalmUpload:()=>i});var n=r(47808),a=r(71500),o=r(54845),l=r(47974);let s=["image/jpeg","image/png","image/webp"];function i(){let e=(0,o.useRouter)(),t=(0,a.useRef)(null),r=(0,a.useRef)(null),[i,c]=(0,a.useState)(null),[d,u]=(0,a.useState)(""),[p,f]=(0,a.useState)(""),[g,h]=(0,a.useState)(!1),[m,v]=(0,a.useState)(!1);(0,a.useEffect)(()=>()=>{i&&URL.revokeObjectURL(i)},[i]);let x=e=>{if(f(""),e){if(!s.includes(e.type)){c(null),u(""),f("Please upload a JPG, PNG, or WebP palm photo.");return}if(e.size>0xa00000){c(null),u(""),f("Your palm photo must be 10MB or smaller.");return}i&&URL.revokeObjectURL(i),c(URL.createObjectURL(e)),u(e.name)}},j=e=>{var t;x(null==(t=e.target.files)?void 0:t[0]),e.target.value=""};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"upload-panel",children:[(0,n.jsx)("button",{type:"button",className:"dropzone ".concat(g?"is-dragging":""),onClick:()=>{var e;return null==(e=t.current)?void 0:e.click()},onDragEnter:e=>{e.preventDefault(),h(!0)},onDragOver:e=>{e.preventDefault(),h(!0)},onDragLeave:()=>h(!1),onDrop:e=>{var t;e.preventDefault(),h(!1),x(null==(t=e.dataTransfer.files)?void 0:t[0])},children:(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"drop-icon",children:"✦"}),(0,n.jsx)("h3",{children:i?"Palm photo ready":"Drag and drop your palm photo here"}),(0,n.jsx)("p",{children:i?d:"or click to upload a JPG, PNG, or WebP image"}),(0,n.jsxs)("div",{className:"upload-buttons",children:[(0,n.jsx)("span",{className:"btn btn-primary",children:"Upload Palm Photo"}),(0,n.jsx)("span",{className:"btn btn-secondary",onClick:e=>{var t;e.stopPropagation(),null==(t=r.current)||t.click()},children:"Take a Photo"})]}),i?(0,n.jsxs)("div",{className:"preview",children:[(0,n.jsx)("img",{src:i,alt:"Uploaded palm preview",width:640,height:420}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{children:"Ready for scan"}),(0,n.jsx)("strong",{children:d})]})]}):null]})}),(0,n.jsxs)("div",{className:"upload-info",children:[(0,n.jsx)("h3",{children:"Better photos create better readings."}),(0,n.jsx)("p",{children:"For best results, use a clear photo of your open palm with good lighting. Keep your palm fully visible and avoid heavy shadows."}),(0,n.jsxs)("ul",{className:"check-list",children:[(0,n.jsx)("li",{children:"Supported formats: JPG, PNG, WebP"}),(0,n.jsx)("li",{children:"Maximum file size: 10MB"}),(0,n.jsx)("li",{children:"Your palm should be fully visible"}),(0,n.jsx)("li",{children:"Avoid blur, shadows, filters, and cropped fingers"}),(0,n.jsx)("li",{children:"Do not upload photos with ID cards or private documents"})]}),(0,n.jsx)("button",{className:"btn btn-primary",type:"button",onClick:()=>{if(!i)return void f("Upload a clear palm photo before starting the AI scan.");e.push("/create")},children:"Start AI Palm Scan"}),p?(0,n.jsx)("p",{className:"upload-error",children:p}):null,(0,n.jsx)("p",{className:"microcopy upload-microcopy",children:"You will be asked to create an account before generation. New users receive 1 free credit."})]})]}),(0,n.jsx)("input",{ref:t,className:"sr-only",type:"file",accept:"image/jpeg,image/png,image/webp",onChange:j}),(0,n.jsx)("input",{ref:r,className:"sr-only",type:"file",accept:"image/jpeg,image/png,image/webp",capture:"environment",onChange:j}),(0,n.jsx)(l.lG,{open:m,onOpenChange:v,children:(0,n.jsxs)(l.Cf,{className:"ps-sign-dialog",children:[(0,n.jsxs)(l.c7,{children:[(0,n.jsx)(l.L3,{children:"Create an account to get your free reading"}),(0,n.jsx)(l.rr,{children:"Sign up now and receive 1 free credit for your first AI palm reading."})]}),(0,n.jsxs)("div",{className:"ps-dialog-actions",children:[(0,n.jsx)("a",{className:"btn btn-primary",href:"/sign-in",children:"Continue with Google"}),(0,n.jsx)("a",{className:"btn btn-secondary",href:"/sign-up",children:"Sign up with Email"})]}),(0,n.jsxs)("p",{className:"ps-dialog-footnote",children:["Already have an account? ",(0,n.jsx)("a",{href:"/sign-in",children:"Sign in"})]})]})})]})}},13996:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(71500),a=r(18227),o=r(80961);let l=(e,t)=>
1{let r=(0,n.forwardRef)((r,l)=>{let{className:s,...i}=r;return(0,n.createElement)(o.A,{ref:l,iconNode:t,className:(0,a.zP)("lucide-".concat((0,a.fX)((0,a.MX)(e))),"lucide-".concat(e),s),...i})});return r.displayName=(0,a.MX)(e),r}},18227:(e,t,r)=>{"use strict";r.d(t,{MX:()=>a,fX:()=>n,m$:()=>l,zP:()=>o});let n=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},o=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()},l=e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0}},20463:()=>{},37096:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>F,L3:()=>T,LC:()=>E,UC:()=>er,VY:()=>ea,ZL:()=>ee,bL:()=>H,bm:()=>eo,hE:()=>en,hJ:()=>et,l9:()=>Q,lG:()=>C});var n=r(71500),a=r(15654),o=r(966),l=r(93974),s=r(35417),i=r(2537),c=r(10823),d=r(66316),u=r(87692),p=r(2516),f=r(41738),g=r(69463),h=r(22809),m=r(67802),v=r(59310),x=r
1(47808),j="Dialog",[b,y]=(0,l.A)(j),[w,N]=b(j),C=e=>{let{__scopeDialog:t,children:r,open:a,defaultOpen:o,onOpenChange:l,modal:c=!0}=e,d=n.useRef(null),u=n.useRef(null),[p,f]=(0,i.i)({prop:a,defaultProp:null!=o&&o,onChange:l,caller:j});return(0,x.jsx)(w,{scope:t,triggerRef:d,contentRef:u,contentId:(0,s.B)(),titleId:(0,s.B)(),descriptionId:(0,s.B)(),open:p,onOpenChange:f,onOpenToggle:n.useCallback(()=>f(e=>!e),[f]),modal:c,children:r})};C.displayName=j;var O="DialogTrigger",D=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,l=N(O,r),s=(0,o.s)(t,l.triggerRef);return(0,x.jsx)(f.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":Z(l.open),...n,ref:s,onClick:(0,a.mK)(e.onClick,l.onOpenToggle)})});D.displayName=O;var P="DialogPortal",[R,k]=b(P,{forceMount:void 0}),A=e=>{let{__scopeDialog:t,forceMount:r,children:a,container:o}=e,l=N(P,t);return(0,x.jsx)(R,{scope:t,forceMount:r,children:n.Children.map(a,e=>(0,x.jsx)(p.C,{present:r||l.open,children:(0,x.jsx)(u.Z,{asChild:!0,container:o,children:e})}))})};A.displayName=P;var _="DialogOverlay",E=n.forwardRef((e,t)=>{let r=k(_,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,o=N(_,e.__scopeDialog);return o.modal?(0,x.jsx)(p.C,{present:n||o.open,children:(0,x.jsx)(L,{...a,ref:t})}):null});E.displayName=_;var I=(0,v.TL)("DialogOverlay.RemoveScroll"),L=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=N(_,r);return(0,x.jsx)(h.A,{as:I,allowPinchZoom:!0,shards:[a.contentRef],children:(0,x.jsx)(f.sG.div,{"data-state":Z(a.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),S="DialogContent",F=n.forwardRef((e,t)=>{let r=k(S,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,o=N(S,e.__scopeDialog);return(0,x.jsx)(p.C,{present:n||o.open,children:o.modal?(0,x.jsx)(G,{...a,ref:t}):(0,x.jsx)(U,{...a,ref:t})})});F.displayName=S;var G=n.forwardRef((e,t)=>{let r=N(S,e.__scopeDialog),l=n.useRef(null),s=(0,o.s)(t,r.contentRef,l);return n.useEffect(()=>{let e=l.current;if(e)return(0,m.Eq)(e)},[]),(0,x.jsx)(z,{...e,ref:s,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,a.mK)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null==(t=r.triggerRef.current)||t.focus()}),onPointerDownOutside:(0,a.mK)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,a.mK)(e.onFocusOutside,e=>e.preventDefault())})}),U=n.forwardRef((e,t)=>{let r=N(S,e.__scopeDialog),a=n.useRef(!1),o=n.useRef(!1);return(0,x.jsx)(z,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var n,l;null==(n=e.onCloseAutoFocus)||n.call(e,t),t.defaultPrevented||(a.current||null==(l=r.triggerRef.current)||l.focus(),t.preventDefault()),a.current=!1,o.current=!1},onInteractOutside:t=>{var n,l;null==(n=e.onInteractOutside)||n.call(e,t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let s=t.target;(null==(l=r.triggerRef.current)?void 0:l.contains(s))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),z=n.forwardRef((e,t)=>{let{__scopeDialog:r,trapFocus:a,onOpenAutoFocus:l,onCloseAutoFocus:s,...i}=e,u=N(S,r),p=n.useRef(null),f=(0,o.s)(t,p);return(0,g.Oh)(),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(d.n,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:l,onUnmountAutoFocus:s,children:(0,x.jsx)(c.qW,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":Z(u.open),...i,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(q,{titleId:u.titleId}),(0,x.jsx)(V,{contentRef:p,descriptionId:u.descriptionId})]})]})}),M="DialogTitle",T=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=N(M,r);return(0,x.jsx)(f.sG.h2,{id:a.titleId,...n,ref:t})});T.displayName=M;var W="DialogDescription",B=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=N(W,r);return(0,x.jsx)(f.sG.p,{id:a.descriptionId,...n,ref:t})});B.displayName=W;var K="DialogClose",X=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=N(K,r);return(0,x.jsx)(f.sG.button,{type:"button",...n,ref:t,onClick:(0,a.mK)(e.onClick,()=>o.onOpenChange(!1))})});function Z(e){return e?"open":"closed"}X.displayName=K;
1var J="DialogTitleWarning",[Y,$]=(0,l.q)(J,{contentName:S,titleName:M,docsSlug:"dialog"}),q=e=>{let{titleId:t}=e,r=$(J),a="`".concat(r.contentName,"` requires a `").concat(r.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(r.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(r.docsSlug);return n.useEffect(()=>{t&&(document.getElementById(t)||console.error(a))},[a,t]),null},V=e=>{let{contentRef:t,descriptionId:r}=e,a=$("DialogDescriptionWarning"),o="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(a.contentName,"}.");return n.useEffect(()=>{var e;let n=null==(e=t.current)?void 0:e.getAttribute("aria-describedby");r&&n&&(document.getElementById(r)||console.warn(o))},[o,t,r]),null},H=C,Q=D,ee=A,et=E,er=F,en=T,ea=B,eo=X},47974:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>d,L3:()=>p,c7:()=>u,lG:()=>s,rr:()=>f});var n=r(47808);r(71500);var a=r(37096),o=r(85170),l=r(57169);function s(e){let{...t}=e;return(0,n.jsx)(a.bL,{"data-slot":"dialog",...t})}function i(e){let{...t}=e;return(0,n.jsx)(a.ZL,{"data-slot":"dialog-portal",...t})}function c(e){let{className:t,...r}=e;return(0,n.jsx)(a.hJ,{"data-slot":"dialog-overlay",className:(0,l.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...r})}function d(e){let{className:t,children:r,showCloseButton:s=!0,...d}=e;return(0,n.jsxs)(i,{"data-slot":"dialog-portal",children:[(0,n.jsx)(c,{}),(0,n.jsxs)(a.UC,{"data-slot":"dialog-content",className:(0,l.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...d,children:[r,s&&(0,n.jsxs)(a.bm,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,n.jsx)(o.A,{}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function u(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"dialog-header",className:(0,l.cn)("flex flex-col gap-2 text-center sm:text-left",t),...r})}function p(e){let{className:t,...r}=e;return(0,n.jsx)(a.hE,{"data-slot":"dialog-title",className:(0,l.cn)("text-lg leading-none font-semibold",t),...r})}function f(e){let{className:t,...r}=e;return(0,n.jsx)(a.VY,{"data-slot":"dialog-description",className:(0,l.cn)("text-muted-foreground text-sm",t),...r})}},53768:(e,t,r)=>{Promise.resolve().then(r.bind(r,7895)),Promise.resolve().then(r.t.bind(r,20463,23))},57169:(e,t,r)=>{"use strict";r.d(t,{cn:()=>o});var n=r(57305),a=r(43753);function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,n.$)(t))}},79113:(e,t,r)=>{"use strict";r.d(t,{C6:()=>a,Cl:()=>o,Tt:()=>l,fX:()=>s});var n=function(e,t){return(n=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var o=function(){return(o=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function l(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)0>t.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}Object.create;function s(e,t,r){if(r||2==arguments.length)for(var n,a=0,o=t.length;a<o;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))}Object.create,"function"==typeof SuppressedError&&SuppressedError},80961:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(71500),a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},o=r(18227);let l=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:l=24,strokeWidth:s=2,absoluteStrokeWidth:i,className:c="",children:d,iconNode:u,...p}=e;return(0,n.createElement)("svg",{ref:t,...a,width:l,height:l,stroke:r,strokeWidth:i?24*Number(s)/Number(l):s,className:(0,o.zP)("lucide",c),...!d&&!(0,o.m$)(p)&&{"aria-hidden":"true"},...p},[...u.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(d)?d:[d]])})},85170:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(13996).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}
1],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])}},e=>{e.O(0,[32500,34065,77803,51796,89883,47714,77358],()=>e(e.s=53768)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.