PageSourceSearch

https://sapphiceffect.com/_next/static/chunks/2912-48598634bd49ac67.js

js sapphiceffect.com collected 2026-10-09 21:25:42 UTC 12,044 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2912],{25856:(e,t,o)=>{o.d(t,{$:()=>l,r:()=>d});var r=o(95155),n=o(12115),a=o(36469),i=o(6267),s=o(8191);let d=(0,i.F)("group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border-2 border-primary bg-transparent hover:bg-primary/10 hover:text-primary",subtle:"bg-primary/5 text-primary hover:bg-primary/10",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",transparent:"text-primary"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),l=n.forwardRef(({className:e,variant:t,size:o,asChild:n=!1,...i},l)=>{let c=n?a.DX:"button";return(0,r.jsx)(c,{className:(0,s.cn)(d({variant:t,size:o,className:e})),ref:l,...i})});l.displayName="Button"},64144:(e,t,o)=>{o.d(t,{Cf:()=>u,Es:()=>f,HM:()=>p,L3:()=>g,LC:()=>m,ZJ:()=>c,c7:()=>h,lG:()=>l,rr:()=>x});var r=o(95155),n=o(19749);o(12115);var a=o(36913),i=o(8191),s=o(25856),d=o(45482);function l(e){let t,o,i=(0,n.c)(4);return i[0]!==e?({...t}=e,i[0]=e,i[1]=t):t=i[1],i[2]!==t?(o=(0,r.jsx)(a.bL,{"data-slot":"dialog",...t}),i[2]=t,i[3]=o):o=i[3],o}function c(e){let t,o,i=(0,n.c)(4);return i[0]!==e?({...t}=e,i[0]=e,i[1]=t):t=i[1],i[2]!==t?(o=(0,r.jsx)(a.ZL,{"data-slot":"dialog-portal",...t}),i[2]=t,i[3]=o):o=i[3],o}function p(e){let t,o,i=(0,n.c)(4);return i[0]!==e?({...t}=e,i[0]=e,i[1]=t):t=i[1],i[2]!==t?(o=(0,r.jsx)(a.bm,{"data-slot":"dialog-close",...t}),i[2]=t,i[3]=o):o=i[3],o}function m(e){let t,o,s,d,l=(0,n.c)(8);return l[0]!==e?({className:t,...o}=e,l[0]=e,l[1]=t,l[2]=o):(t=l[1],o=l[2]),l[3]!==t?(s=(0,i.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",t),l[3]=t,l[4]=s):s=l[4],l[5]!==o||l[6]!==s?(d=(0,r.jsx)(a.hJ,{"data-slot":"dialog-overlay",className:s,...o}),l[5]=o,l[6]=s,l[7]=d):d=l[7],d}function u(e){let t,o,l,p,u,h,f,g,x=(0,n.c)(15);x[0]!==e?({className:o,children:t,showCloseButton:p,...l}=e,x[0]=e,x[1]=t,x[2]=o,x[3]=l,x[4]=p):(t=x[1],o=x[2],l=x[3],p=x[4]);let b=void 0===p||p;return x[5]===Symbol.for("react.memo_cache_sentinel")?(u=(0,r.jsx)(m,{}),x[5]=u):u=x[5],x[6]!==o?(h=(0,i.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",o),x[6]=o,x[7]=h):h=x[7],x[8]!==b?(f=b&&(0,r.jsx)(a.bm,{"data-slot":"dialog-close",asChild:!0,children:(0,r.jsxs)(s.$,{variant:"ghost",className:"absolute top-2 right-2",size:"icon",children:[(0,r.jsx)(d.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})}),x[8]=b,x[9]=f):f=x[9],x[10]!==t||x[11]!==l||x[12]!==h||x[13]!==f?(g=(0,r.jsxs)(c,{children:[u,(0,r.jsxs)(a.UC,{"data-slot":"dialog-content",className:h,...l,children:[t,f]})]}),x[10]=t,x[11]=l,x[12]=h,x[13]=f,x[14]=g):g=x[14],g}function h(e){let t,o,a,s,d=(0,n.c)(8);return d[0]!==e?({className:t,...o}=e,d[0]=e,d[1]=t,d[2]=o):(t=d[1],o=d[2]),d[3]!==t?(a=(0,i.cn)("flex flex-col gap-2",t),d[3]=t,d[4]=a):a=d[4],d[5]!==o||d[6]!==a?(s=(0,r.jsx)("div",{"data-slot":"dialog-header",className:a,...o}),d[5]=o,d[6]=a,d[7]=s):s=d[7],s}function f(e){let t,o,d,l,c,p,m,u=(0,n.c)(14);u[0]!==e?({className:o,showCloseButton:l,children:t,...d}=e,u[0]=e,u[1]=t,u[2]=o,u[3]=d,u[4]=l):(t=u[1],o=u[2],d=u[3],l=u[4]);let h=void 0!==l&&l;return u[5]!==o?(c=(0,i.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",o),u[5]=o,u[6]=c):c=u[6],u[7]!==h?(p=h&&(0,r.jsx)(a.bm,{asChild:!0,children:(0,r.jsx)(s.$,{variant:"outline",children:"Close"})}
1),u[7]=h,u[8]=p):p=u[8],u[9]!==t||u[10]!==d||u[11]!==c||u[12]!==p?(m=(0,r.jsxs)("div",{"data-slot":"dialog-footer",className:c,...d,children:[t,p]}),u[9]=t,u[10]=d,u[11]=c,u[12]=p,u[13]=m):m=u[13],m}function g(e){let t,o,s,d,l=(0,n.c)(8);return l[0]!==e?({className:t,...o}=e,l[0]=e,l[1]=t,l[2]=o):(t=l[1],o=l[2]),l[3]!==t?(s=(0,i.cn)("font-heading text-base leading-none font-medium",t),l[3]=t,l[4]=s):s=l[4],l[5]!==o||l[6]!==s?(d=(0,r.jsx)(a.hE,{"data-slot":"dialog-title",className:s,...o}),l[5]=o,l[6]=s,l[7]=d):d=l[7],d}function x(e){let t,o,s,d,l=(0,n.c)(8);return l[0]!==e?({className:t,...o}=e,l[0]=e,l[1]=t,l[2]=o):(t=l[1],o=l[2]),l[3]!==t?(s=(0,i.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",t),l[3]=t,l[4]=s):s=l[4],l[5]!==o||l[6]!==s?(d=(0,r.jsx)(a.VY,{"data-slot":"dialog-description",className:s,...o}),l[5]=o,l[6]=s,l[7]=d):d=l[7],d}},72548:(e,t,o)=>{o.d(t,{C3:()=>r,kp:()=>a,li:()=>s,zV:()=>i});let r="Sapphic Effect",n="sapphiceffect.com",a={ios:[{title:"Tap the ••• menu",body:"It's in Safari's bottom toolbar (top, on iPad).",image:"/doc/3dots.png"},{title:'Tap "Share"',body:"First option in the menu that pops up.",image:"/doc/share.png"},{title:'Tap "View More"',body:"At the end of the share sheet's icon row.",image:"/doc/viewMore.png"},{title:'Tap "Add to Home Screen"',body:"Near the bottom of the list that opens.",image:"/doc/addToHomeScreen.png"},{title:'Tap "Add"',body:"Top-right corner — confirms the name and icon.",image:"/doc/add.png"},{title:"Done!",body:`${r} is on your home screen, ready to open like any other app.`,image:"/doc/installed.png"}],android:[{title:`Open ${n} in Chrome`,body:"Use the Chrome browser on your Android phone or tablet."},{title:"Tap the ⋮ menu",body:"It's in the top-right corner of Chrome."},{title:'Tap "Install app"',body:'Some phones show "Add to Home screen" instead — either one works.'},{title:"Confirm",body:`${r} installs and appears in your app drawer and home screen.`}],desktop:[{title:`Open ${n} in Chrome or Edge`,body:"Installable apps work in Chrome and Microsoft Edge on the desktop."},{title:"Click the install icon",body:`Look for the install icon in the address bar, or open ⋮ → "Install ${r}".`},{title:"Confirm",body:`${r} opens in its own window and pins to your dock or taskbar.`}]},i={android:"/doc/installAndroid.png",desktop:"/doc/installDesktop.png"};function s(){let e=navigator.userAgent,t=window.MSStream;return/iphone|ipad|ipod/i.test(e)&&!t?"ios":/android/i.test(e)?"android":"desktop"}},82912:(e,t,o)=>{o.d(t,{A:()=>b});var r=o(95155),n=o(19749),a=o(12115),i=o(69634),s=o(93577),d=o(12140),l=o(45482),c=o(16324),p=o(8191),m=o(64144),u=o(25856),h=o(72548);let f=[{id:"ios",label:"iOS",icon:i.A},{id:"android",label:"Android",icon:s.A},{id:"desktop",label:"Desktop",icon:d.A}];function g(){return!0===window.navigator.standalone||window.matchMedia("(display-mode: standalone)").matches}function x(e){let t=window.matchMedia("(display-mode: standalone)");return t.addEventListener("change",e),window.addEventListener("appinstalled",e),()=>{t.removeEventListener("change",e),window.removeEventListener("appinstalled",e)}}function b(e){let t,o,i,s,d,b,y,w,j,k,N,C,S,A=(0,n.c)(31),{open:E,onOpenChange:_}=e,[z,L]=(0,a.useState)(h.li),[$,T]=(0,a.useState)(null),M=(0,a.useSyncExternalStore)(x,g,v);A[0]===Symbol.for("react.memo_cache_sentinel")?(t=()=>{let e=e=>{e.preventDefault(),T(e)};return window.addEventListener("beforeinstallprompt",e),()=>window.removeEventListener("beforeinstallprompt",e)},o=[],A[0]=t,A[1]=o):(t=A[0],o=A[1]),(0,a.useEffect)(t,o),A[2]!==$||A[3]!==_?(i=async()=>{$&&(await $.prompt(),await $.userChoice,T(null),_(!1))},A[2]=$,A[3]=_,A[4]=i):i=A[4];let I=i;if(M)return null;let D=h.kp[z],H="ios"!==z&&!!$;if(A[5]===Symbol.for("react.memo_cache_sentinel")?(s=(0,r.jsx)(m.HM,{asChild:!0,children:(0,r.jsx)(u.$,{"aria-label":"Close",className:"absolute right-4 top-4 z-10 grid h-9 w-9 place-items-center rounded-full bg-muted text-muted-foreground transition-colors hover:bg-muted/70 hover:text-foreground",children:(0,r.jsx)(l.A,{size:16})})}),A[5]=s):s=A[5],A[6]===Symbol.for("react.memo_cache_sentinel")?(d=(0,r.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,r.jsxs)("span",{className:"flex w-fit items-center gap-2 rounded-full border border-primary/30 px-3 py-1 text-[10px] font-black uppercase tracking-[0.25em] text-primary",children:[(0,r.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-primary"}),"Get the app"]}),(0,r.jsxs)(m.L3,{className:"text-2xl font-black tracking-tight text-foreground",children:["Get the ",h.C3," app"]}),(0,r.jsxs)(m.rr,{className:"max-w-xs text-sm text-muted-foreground",children:["Install ",h.C3," on your phone or computer in a few taps. Pick your device below."]})]}),A[6]=d):d=A[6],A[7]!==z?(b=f.map(e=>{let{id:t,label:o,icon:n}=e;return(0,r.jsxs)("button",{onClick:()=>L(t),className:(0,p.cn)("flex items-center gap-1.5 rounded-lg px-3.5 py-2 text-sm font-semibold transition-colors sm:px-4",z===t?"bg-primary text-primary-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,r.jsx)(n,{size:15}),o]},t)}),A[7]=z,A[8]=b):b=A[8],A[9]!==b?(y=(0,r.jsx)("div",{className:"mt-6 flex justify-center",children:(0,r.jsx)("div",{className:"flex items-center gap-1 rounded-xl bg-muted/50 p-1",children:b})}),A[9]=b,A[10]=y):y=A[10],A[11]!==H||A[12]!==I?(w=H&&(0,r.jsxs)("button",{onClick:I,className:"mt-6 flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-4 py-3 text-sm font-bold text-primary-foreground transition-opacity hover:opacity-90",children:[(0,r.jsx)(c.A,{size:16}),"Install ",h.C3]}),A[11]=H,A[12]=I,A[13]=w):w=A[13],A[14]!==D){let e;A[16]!==D.length?(e=(e,t)=>(0,r.jsxs)("li",{className:"flex gap-4",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center",children:[(0,r.jsx)("div",{className:"grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-primary text-sm font-bold text-primary-foreground",children:t+1}),t<D.length-1&&(0,r.jsx)("div",{className:"my-1 w-px flex-1 bg-border"})]}),(0,r.jsxs)("div",{className:(0,p.cn)(t<D.length-1&&"pb-6"),children:[(0,r.jsx)("h3",{className:"font-semibold text-foreground",children:e.title}),(0,r.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-muted-foreground",children:e.body})]})]},t),A[16]=D.length,A[17]=e):e=A[17],j=D.map(e),A[14]=D,A[15]=j}else j=A[15];return A[18]!==j?(k=(0,r.jsx)("ol",{className:"mt-6",children:j}),A[18]=j,A[19]=k):k=A[19],A[20]!==z?(N="ios"===z&&(0,r.jsx)("p",{className:"mt-5 text-sm leading-relaxed text-muted-foreground",children:"On iPhone and iPad, apps are added through Safari's Share menu — there's no one-tap install button."}),A[20]=z,A[21]=N):N=A[21],A[22]!==k||A[23]!==N||A[24]!==y||A[25]!==w?(C=(0,r.jsxs)(m.Cf,{showCloseButton:!1,className:"max-w-md gap-0 overflow-hidden rounded-2xl border border-border bg-card p-0 text-card-foreground",children:[s,(0,r.jsxs)("div",{className:"max-h-[85vh] overflow-y-auto scrollbar-hide p-6 sm:p-7",children:[d,y,w,k,N]})]}),A[22]=k,A[23]=N,A[24]=y,A[25]=w,A[26]=C):C=A[26],A[27]!==_||A[28]!==E||A[29]!==C?(S=(0,r.jsx)(m.lG,{open:E,onOpenChange:_,children:C}),A[27]=_,A[28]=E,A[29]=C,A[30]=S):S=A[30],S}function v(){return!1}}}]);

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.