@notapublicfigureanymore/relay-sdk 0.0.1 → 0.0.2

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/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7RGKC52Kcjs = require('./chunk-7RGKC52K.cjs');var _react = require('react');function ii(){let[c,f]=_react.useState.call(void 0, 1500),[l,m]=_react.useState.call(void 0, 1500),[s,o]=_react.useState.call(void 0, !1),[n,u]=_react.useState.call(void 0, "focus"),[p,T]=_react.useState.call(void 0, ""),[a,r]=_react.useState.call(void 0, "egg"),[k,h]=_react.useState.call(void 0, !1);_react.useEffect.call(void 0, ()=>{let e=null;if(s&&c>0)e=setInterval(()=>{f(t=>t-1)},1e3);else if(c===0&&s&&(o(!1),n==="focus")){let t=Math.random()<.01;r(t?"alien":"chick")}return()=>{e&&clearInterval(e)}},[s,c,n]),_react.useEffect.call(void 0, ()=>{if(!s&&(a==="chick"||a==="alien"||a==="ghost")||n!=="focus")return;let e=1-c/l;e<.5?r("egg"):e>=.5&&e<1&&r("cracked")},[c,l,s,a,n]);let S=()=>o(!s),x=()=>{o(!1),r("ghost")},g=e=>{o(!1),u(e),r("egg");let t=1500;e==="shortBreak"&&(t=300),e==="longBreak"&&(t=900),f(t),m(t)};return{seconds:c,initialTime:l,isActive:s,mode:n,task:p,storyState:a,soundEnabled:k,setSeconds:f,setInitialTime:m,setIsActive:o,setMode:u,setTask:T,setStoryState:r,setSoundEnabled:h,toggleTimer:S,giveUp:x,switchMode:g,resetTimer:()=>{o(!1),g(n)},setCustomTime:e=>{o(!1),f(e*60),m(e*60),r("egg")}}}exports.Accordion = _chunk7RGKC52Kcjs.b; exports.AccordionContent = _chunk7RGKC52Kcjs.e; exports.AccordionItem = _chunk7RGKC52Kcjs.c; exports.AccordionTrigger = _chunk7RGKC52Kcjs.d; exports.Alert = _chunk7RGKC52Kcjs.t; exports.AlertAction = _chunk7RGKC52Kcjs.w; exports.AlertDescription = _chunk7RGKC52Kcjs.v; exports.AlertDialog = _chunk7RGKC52Kcjs.h; exports.AlertDialogAction = _chunk7RGKC52Kcjs.r; exports.AlertDialogCancel = _chunk7RGKC52Kcjs.s; exports.AlertDialogContent = _chunk7RGKC52Kcjs.l; exports.AlertDialogDescription = _chunk7RGKC52Kcjs.q; exports.AlertDialogFooter = _chunk7RGKC52Kcjs.n; exports.AlertDialogHeader = _chunk7RGKC52Kcjs.m; exports.AlertDialogMedia = _chunk7RGKC52Kcjs.o; exports.AlertDialogOverlay = _chunk7RGKC52Kcjs.k; exports.AlertDialogPortal = _chunk7RGKC52Kcjs.j; exports.AlertDialogTitle = _chunk7RGKC52Kcjs.p; exports.AlertDialogTrigger = _chunk7RGKC52Kcjs.i; exports.AlertTitle = _chunk7RGKC52Kcjs.u; exports.AspectRatio = _chunk7RGKC52Kcjs.x; exports.Avatar = _chunk7RGKC52Kcjs.y; exports.AvatarBadge = _chunk7RGKC52Kcjs.B; exports.AvatarFallback = _chunk7RGKC52Kcjs.A; exports.AvatarGroup = _chunk7RGKC52Kcjs.C; exports.AvatarGroupCount = _chunk7RGKC52Kcjs.D; exports.AvatarImage = _chunk7RGKC52Kcjs.z; exports.Badge = _chunk7RGKC52Kcjs.F; exports.Breadcrumb = _chunk7RGKC52Kcjs.G; exports.BreadcrumbEllipsis = _chunk7RGKC52Kcjs.M; exports.BreadcrumbItem = _chunk7RGKC52Kcjs.I; exports.BreadcrumbLink = _chunk7RGKC52Kcjs.J; exports.BreadcrumbList = _chunk7RGKC52Kcjs.H; exports.BreadcrumbPage = _chunk7RGKC52Kcjs.K; exports.BreadcrumbSeparator = _chunk7RGKC52Kcjs.L; exports.Button = _chunk7RGKC52Kcjs.g; exports.ButtonGroup = _chunk7RGKC52Kcjs.P; exports.ButtonGroupSeparator = _chunk7RGKC52Kcjs.R; exports.ButtonGroupText = _chunk7RGKC52Kcjs.Q; exports.Calendar = _chunk7RGKC52Kcjs.S; exports.CalendarDayButton = _chunk7RGKC52Kcjs.T; exports.Card = _chunk7RGKC52Kcjs.U; exports.CardAction = _chunk7RGKC52Kcjs.Y; exports.CardContent = _chunk7RGKC52Kcjs.Z; exports.CardDescription = _chunk7RGKC52Kcjs.X; exports.CardFooter = _chunk7RGKC52Kcjs._; exports.CardHeader = _chunk7RGKC52Kcjs.V; exports.CardTitle = _chunk7RGKC52Kcjs.W; exports.Carousel = _chunk7RGKC52Kcjs.aa; exports.CarouselContent = _chunk7RGKC52Kcjs.ba; exports.CarouselItem = _chunk7RGKC52Kcjs.ca; exports.CarouselNext = _chunk7RGKC52Kcjs.ea; exports.CarouselPrevious = _chunk7RGKC52Kcjs.da; exports.ChartContainer = _chunk7RGKC52Kcjs.fa; exports.ChartLegend = _chunk7RGKC52Kcjs.ja; exports.ChartLegendContent = _chunk7RGKC52Kcjs.ka; exports.ChartStyle = _chunk7RGKC52Kcjs.ga; exports.ChartTooltip = _chunk7RGKC52Kcjs.ha; exports.ChartTooltipContent = _chunk7RGKC52Kcjs.ia; exports.Checkbox = _chunk7RGKC52Kcjs.la; exports.Collapsible = _chunk7RGKC52Kcjs.ma; exports.CollapsibleContent = _chunk7RGKC52Kcjs.oa; exports.CollapsibleTrigger = _chunk7RGKC52Kcjs.na; exports.Combobox = _chunk7RGKC52Kcjs.xa; exports.ComboboxChip = _chunk7RGKC52Kcjs.Ka; exports.ComboboxChips = _chunk7RGKC52Kcjs.Ja; exports.ComboboxChipsInput = _chunk7RGKC52Kcjs.La; exports.ComboboxCollection = _chunk7RGKC52Kcjs.Ga; exports.ComboboxContent = _chunk7RGKC52Kcjs.Ba; exports.ComboboxEmpty = _chunk7RGKC52Kcjs.Ha; exports.ComboboxGroup = _chunk7RGKC52Kcjs.Ea; exports.ComboboxInput = _chunk7RGKC52Kcjs.Aa; exports.ComboboxItem = _chunk7RGKC52Kcjs.Da; exports.ComboboxLabel = _chunk7RGKC52Kcjs.Fa; exports.ComboboxList = _chunk7RGKC52Kcjs.Ca; exports.ComboboxSeparator = _chunk7RGKC52Kcjs.Ia; exports.ComboboxTrigger = _chunk7RGKC52Kcjs.za; exports.ComboboxValue = _chunk7RGKC52Kcjs.ya; exports.Command = _chunk7RGKC52Kcjs.Xa; exports.CommandDialog = _chunk7RGKC52Kcjs.Ya; exports.CommandEmpty = _chunk7RGKC52Kcjs.$a; exports.CommandGroup = _chunk7RGKC52Kcjs.ab; exports.CommandInput = _chunk7RGKC52Kcjs.Za; exports.CommandItem = _chunk7RGKC52Kcjs.cb; exports.CommandList = _chunk7RGKC52Kcjs._a; exports.CommandSeparator = _chunk7RGKC52Kcjs.bb; exports.CommandShortcut = _chunk7RGKC52Kcjs.db; exports.ContextMenu = _chunk7RGKC52Kcjs.eb; exports.ContextMenuCheckboxItem = _chunk7RGKC52Kcjs.ob; exports.ContextMenuContent = _chunk7RGKC52Kcjs.kb; exports.ContextMenuGroup = _chunk7RGKC52Kcjs.gb; exports.ContextMenuItem = _chunk7RGKC52Kcjs.lb; exports.ContextMenuLabel = _chunk7RGKC52Kcjs.qb; exports.ContextMenuPortal = _chunk7RGKC52Kcjs.hb; exports.ContextMenuRadioGroup = _chunk7RGKC52Kcjs.jb; exports.ContextMenuRadioItem = _chunk7RGKC52Kcjs.pb; exports.ContextMenuSeparator = _chunk7RGKC52Kcjs.rb; exports.ContextMenuShortcut = _chunk7RGKC52Kcjs.sb; exports.ContextMenuSub = _chunk7RGKC52Kcjs.ib; exports.ContextMenuSubContent = _chunk7RGKC52Kcjs.nb; exports.ContextMenuSubTrigger = _chunk7RGKC52Kcjs.mb; exports.ContextMenuTrigger = _chunk7RGKC52Kcjs.fb; exports.Dialog = _chunk7RGKC52Kcjs.Na; exports.DialogClose = _chunk7RGKC52Kcjs.Qa; exports.DialogContent = _chunk7RGKC52Kcjs.Sa; exports.DialogDescription = _chunk7RGKC52Kcjs.Wa; exports.DialogFooter = _chunk7RGKC52Kcjs.Ua; exports.DialogHeader = _chunk7RGKC52Kcjs.Ta; exports.DialogOverlay = _chunk7RGKC52Kcjs.Ra; exports.DialogPortal = _chunk7RGKC52Kcjs.Pa; exports.DialogTitle = _chunk7RGKC52Kcjs.Va; exports.DialogTrigger = _chunk7RGKC52Kcjs.Oa; exports.Drawer = _chunk7RGKC52Kcjs.tb; exports.DrawerClose = _chunk7RGKC52Kcjs.wb; exports.DrawerContent = _chunk7RGKC52Kcjs.yb; exports.DrawerDescription = _chunk7RGKC52Kcjs.Cb; exports.DrawerFooter = _chunk7RGKC52Kcjs.Ab; exports.DrawerHeader = _chunk7RGKC52Kcjs.zb; exports.DrawerOverlay = _chunk7RGKC52Kcjs.xb; exports.DrawerPortal = _chunk7RGKC52Kcjs.vb; exports.DrawerTitle = _chunk7RGKC52Kcjs.Bb; exports.DrawerTrigger = _chunk7RGKC52Kcjs.ub; exports.DropdownMenu = _chunk7RGKC52Kcjs.Db; exports.DropdownMenuCheckboxItem = _chunk7RGKC52Kcjs.Jb; exports.DropdownMenuContent = _chunk7RGKC52Kcjs.Gb; exports.DropdownMenuGroup = _chunk7RGKC52Kcjs.Hb; exports.DropdownMenuItem = _chunk7RGKC52Kcjs.Ib; exports.DropdownMenuLabel = _chunk7RGKC52Kcjs.Mb; exports.DropdownMenuPortal = _chunk7RGKC52Kcjs.Eb; exports.DropdownMenuRadioGroup = _chunk7RGKC52Kcjs.Kb; exports.DropdownMenuRadioItem = _chunk7RGKC52Kcjs.Lb; exports.DropdownMenuSeparator = _chunk7RGKC52Kcjs.Nb; exports.DropdownMenuShortcut = _chunk7RGKC52Kcjs.Ob; exports.DropdownMenuSub = _chunk7RGKC52Kcjs.Pb; exports.DropdownMenuSubContent = _chunk7RGKC52Kcjs.Rb; exports.DropdownMenuSubTrigger = _chunk7RGKC52Kcjs.Qb; exports.DropdownMenuTrigger = _chunk7RGKC52Kcjs.Fb; exports.Empty = _chunk7RGKC52Kcjs.Sb; exports.EmptyContent = _chunk7RGKC52Kcjs.Xb; exports.EmptyDescription = _chunk7RGKC52Kcjs.Wb; exports.EmptyHeader = _chunk7RGKC52Kcjs.Tb; exports.EmptyMedia = _chunk7RGKC52Kcjs.Ub; exports.EmptyTitle = _chunk7RGKC52Kcjs.Vb; exports.Field = _chunk7RGKC52Kcjs.ac; exports.FieldContent = _chunk7RGKC52Kcjs.bc; exports.FieldDescription = _chunk7RGKC52Kcjs.ec; exports.FieldError = _chunk7RGKC52Kcjs.gc; exports.FieldGroup = _chunk7RGKC52Kcjs.$b; exports.FieldLabel = _chunk7RGKC52Kcjs.cc; exports.FieldLegend = _chunk7RGKC52Kcjs._b; exports.FieldSeparator = _chunk7RGKC52Kcjs.fc; exports.FieldSet = _chunk7RGKC52Kcjs.Zb; exports.FieldTitle = _chunk7RGKC52Kcjs.dc; exports.HoverCard = _chunk7RGKC52Kcjs.hc; exports.HoverCardContent = _chunk7RGKC52Kcjs.jc; exports.HoverCardTrigger = _chunk7RGKC52Kcjs.ic; exports.Input = _chunk7RGKC52Kcjs.pa; exports.InputGroup = _chunk7RGKC52Kcjs.ra; exports.InputGroupAddon = _chunk7RGKC52Kcjs.sa; exports.InputGroupButton = _chunk7RGKC52Kcjs.ta; exports.InputGroupInput = _chunk7RGKC52Kcjs.va; exports.InputGroupText = _chunk7RGKC52Kcjs.ua; exports.InputGroupTextarea = _chunk7RGKC52Kcjs.wa; exports.InputOTP = _chunk7RGKC52Kcjs.kc; exports.InputOTPGroup = _chunk7RGKC52Kcjs.lc; exports.InputOTPSeparator = _chunk7RGKC52Kcjs.nc; exports.InputOTPSlot = _chunk7RGKC52Kcjs.mc; exports.Item = _chunk7RGKC52Kcjs.qc; exports.ItemActions = _chunk7RGKC52Kcjs.vc; exports.ItemContent = _chunk7RGKC52Kcjs.sc; exports.ItemDescription = _chunk7RGKC52Kcjs.uc; exports.ItemFooter = _chunk7RGKC52Kcjs.xc; exports.ItemGroup = _chunk7RGKC52Kcjs.oc; exports.ItemHeader = _chunk7RGKC52Kcjs.wc; exports.ItemMedia = _chunk7RGKC52Kcjs.rc; exports.ItemSeparator = _chunk7RGKC52Kcjs.pc; exports.ItemTitle = _chunk7RGKC52Kcjs.tc; exports.Kbd = _chunk7RGKC52Kcjs.yc; exports.KbdGroup = _chunk7RGKC52Kcjs.zc; exports.Label = _chunk7RGKC52Kcjs.Yb; exports.Menubar = _chunk7RGKC52Kcjs.Ac; exports.MenubarCheckboxItem = _chunk7RGKC52Kcjs.Ic; exports.MenubarContent = _chunk7RGKC52Kcjs.Gc; exports.MenubarGroup = _chunk7RGKC52Kcjs.Cc; exports.MenubarItem = _chunk7RGKC52Kcjs.Hc; exports.MenubarLabel = _chunk7RGKC52Kcjs.Kc; exports.MenubarMenu = _chunk7RGKC52Kcjs.Bc; exports.MenubarPortal = _chunk7RGKC52Kcjs.Dc; exports.MenubarRadioGroup = _chunk7RGKC52Kcjs.Ec; exports.MenubarRadioItem = _chunk7RGKC52Kcjs.Jc; exports.MenubarSeparator = _chunk7RGKC52Kcjs.Lc; exports.MenubarShortcut = _chunk7RGKC52Kcjs.Mc; exports.MenubarSub = _chunk7RGKC52Kcjs.Nc; exports.MenubarSubContent = _chunk7RGKC52Kcjs.Pc; exports.MenubarSubTrigger = _chunk7RGKC52Kcjs.Oc; exports.MenubarTrigger = _chunk7RGKC52Kcjs.Fc; exports.NavigationMenu = _chunk7RGKC52Kcjs.Qc; exports.NavigationMenuContent = _chunk7RGKC52Kcjs.Vc; exports.NavigationMenuIndicator = _chunk7RGKC52Kcjs.Yc; exports.NavigationMenuItem = _chunk7RGKC52Kcjs.Sc; exports.NavigationMenuLink = _chunk7RGKC52Kcjs.Xc; exports.NavigationMenuList = _chunk7RGKC52Kcjs.Rc; exports.NavigationMenuTrigger = _chunk7RGKC52Kcjs.Uc; exports.NavigationMenuViewport = _chunk7RGKC52Kcjs.Wc; exports.Pagination = _chunk7RGKC52Kcjs.Zc; exports.PaginationContent = _chunk7RGKC52Kcjs._c; exports.PaginationEllipsis = _chunk7RGKC52Kcjs.dd; exports.PaginationItem = _chunk7RGKC52Kcjs.$c; exports.PaginationLink = _chunk7RGKC52Kcjs.ad; exports.PaginationNext = _chunk7RGKC52Kcjs.cd; exports.PaginationPrevious = _chunk7RGKC52Kcjs.bd; exports.Popover = _chunk7RGKC52Kcjs.ed; exports.PopoverAnchor = _chunk7RGKC52Kcjs.hd; exports.PopoverContent = _chunk7RGKC52Kcjs.gd; exports.PopoverDescription = _chunk7RGKC52Kcjs.kd; exports.PopoverHeader = _chunk7RGKC52Kcjs.id; exports.PopoverTitle = _chunk7RGKC52Kcjs.jd; exports.PopoverTrigger = _chunk7RGKC52Kcjs.fd; exports.Progress = _chunk7RGKC52Kcjs.ld; exports.RadioGroup = _chunk7RGKC52Kcjs.md; exports.RadioGroupItem = _chunk7RGKC52Kcjs.nd; exports.ResizableHandle = _chunk7RGKC52Kcjs.qd; exports.ResizablePanel = _chunk7RGKC52Kcjs.pd; exports.ResizablePanelGroup = _chunk7RGKC52Kcjs.od; exports.ScrollArea = _chunk7RGKC52Kcjs.rd; exports.ScrollBar = _chunk7RGKC52Kcjs.sd; exports.Select = _chunk7RGKC52Kcjs.td; exports.SelectContent = _chunk7RGKC52Kcjs.xd; exports.SelectGroup = _chunk7RGKC52Kcjs.ud; exports.SelectItem = _chunk7RGKC52Kcjs.zd; exports.SelectLabel = _chunk7RGKC52Kcjs.yd; exports.SelectScrollDownButton = _chunk7RGKC52Kcjs.Cd; exports.SelectScrollUpButton = _chunk7RGKC52Kcjs.Bd; exports.SelectSeparator = _chunk7RGKC52Kcjs.Ad; exports.SelectTrigger = _chunk7RGKC52Kcjs.wd; exports.SelectValue = _chunk7RGKC52Kcjs.vd; exports.Separator = _chunk7RGKC52Kcjs.N; exports.Sheet = _chunk7RGKC52Kcjs.Dd; exports.SheetClose = _chunk7RGKC52Kcjs.Fd; exports.SheetContent = _chunk7RGKC52Kcjs.Gd; exports.SheetDescription = _chunk7RGKC52Kcjs.Kd; exports.SheetFooter = _chunk7RGKC52Kcjs.Id; exports.SheetHeader = _chunk7RGKC52Kcjs.Hd; exports.SheetTitle = _chunk7RGKC52Kcjs.Jd; exports.SheetTrigger = _chunk7RGKC52Kcjs.Ed; exports.Sidebar = _chunk7RGKC52Kcjs.Td; exports.SidebarContent = _chunk7RGKC52Kcjs.$d; exports.SidebarFooter = _chunk7RGKC52Kcjs.Zd; exports.SidebarGroup = _chunk7RGKC52Kcjs.ae; exports.SidebarGroupAction = _chunk7RGKC52Kcjs.ce; exports.SidebarGroupContent = _chunk7RGKC52Kcjs.de; exports.SidebarGroupLabel = _chunk7RGKC52Kcjs.be; exports.SidebarHeader = _chunk7RGKC52Kcjs.Yd; exports.SidebarInput = _chunk7RGKC52Kcjs.Xd; exports.SidebarInset = _chunk7RGKC52Kcjs.Wd; exports.SidebarMenu = _chunk7RGKC52Kcjs.ee; exports.SidebarMenuAction = _chunk7RGKC52Kcjs.he; exports.SidebarMenuBadge = _chunk7RGKC52Kcjs.ie; exports.SidebarMenuButton = _chunk7RGKC52Kcjs.ge; exports.SidebarMenuItem = _chunk7RGKC52Kcjs.fe; exports.SidebarMenuSkeleton = _chunk7RGKC52Kcjs.je; exports.SidebarMenuSub = _chunk7RGKC52Kcjs.ke; exports.SidebarMenuSubButton = _chunk7RGKC52Kcjs.me; exports.SidebarMenuSubItem = _chunk7RGKC52Kcjs.le; exports.SidebarProvider = _chunk7RGKC52Kcjs.Sd; exports.SidebarRail = _chunk7RGKC52Kcjs.Vd; exports.SidebarSeparator = _chunk7RGKC52Kcjs._d; exports.SidebarTrigger = _chunk7RGKC52Kcjs.Ud; exports.Skeleton = _chunk7RGKC52Kcjs.Ld; exports.Slider = _chunk7RGKC52Kcjs.ne; exports.Spinner = _chunk7RGKC52Kcjs.pe; exports.Switch = _chunk7RGKC52Kcjs.qe; exports.Table = _chunk7RGKC52Kcjs.re; exports.TableBody = _chunk7RGKC52Kcjs.te; exports.TableCaption = _chunk7RGKC52Kcjs.ye; exports.TableCell = _chunk7RGKC52Kcjs.xe; exports.TableFooter = _chunk7RGKC52Kcjs.ue; exports.TableHead = _chunk7RGKC52Kcjs.we; exports.TableHeader = _chunk7RGKC52Kcjs.se; exports.TableRow = _chunk7RGKC52Kcjs.ve; exports.Tabs = _chunk7RGKC52Kcjs.ze; exports.TabsContent = _chunk7RGKC52Kcjs.De; exports.TabsList = _chunk7RGKC52Kcjs.Be; exports.TabsTrigger = _chunk7RGKC52Kcjs.Ce; exports.Textarea = _chunk7RGKC52Kcjs.qa; exports.Toaster = _chunk7RGKC52Kcjs.oe; exports.Toggle = _chunk7RGKC52Kcjs.Fe; exports.ToggleGroup = _chunk7RGKC52Kcjs.Ge; exports.ToggleGroupItem = _chunk7RGKC52Kcjs.He; exports.Tooltip = _chunk7RGKC52Kcjs.Nd; exports.TooltipContent = _chunk7RGKC52Kcjs.Pd; exports.TooltipProvider = _chunk7RGKC52Kcjs.Md; exports.TooltipTrigger = _chunk7RGKC52Kcjs.Od; exports.badgeVariants = _chunk7RGKC52Kcjs.E; exports.buttonGroupVariants = _chunk7RGKC52Kcjs.O; exports.buttonVariants = _chunk7RGKC52Kcjs.f; exports.cn = _chunk7RGKC52Kcjs.a; exports.navigationMenuTriggerStyle = _chunk7RGKC52Kcjs.Tc; exports.tabsListVariants = _chunk7RGKC52Kcjs.Ae; exports.toggleVariants = _chunk7RGKC52Kcjs.Ee; exports.useCarousel = _chunk7RGKC52Kcjs.$; exports.useComboboxAnchor = _chunk7RGKC52Kcjs.Ma; exports.useFocusTimer = ii; exports.useIsMobile = _chunk7RGKC52Kcjs.Qd; exports.useSidebar = _chunk7RGKC52Kcjs.Rd;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk7RGKC52Kcjs = require('./chunk-7RGKC52K.cjs');var _react = require('react');function un(){let[n,c]=_react.useState.call(void 0, 1500),[f,t]=_react.useState.call(void 0, 1500),[o,s]=_react.useState.call(void 0, !1),[i,r]=_react.useState.call(void 0, "focus"),[m,g]=_react.useState.call(void 0, ""),[d,u]=_react.useState.call(void 0, "egg"),[v,h]=_react.useState.call(void 0, !1);_react.useEffect.call(void 0, ()=>{let e=null;if(o&&n>0)e=setInterval(()=>{c(a=>a-1)},1e3);else if(n===0&&o&&(s(!1),i==="focus")){let a=Math.random()<.01;u(a?"alien":"chick")}return()=>{e&&clearInterval(e)}},[o,n,i]),_react.useEffect.call(void 0, ()=>{if(!o&&(d==="chick"||d==="alien"||d==="ghost")||i!=="focus")return;let e=1-n/f;e<.5?u("egg"):e>=.5&&e<1&&u("cracked")},[n,f,o,d,i]);let T=()=>s(!o),y=()=>{s(!1),u("ghost")},p=e=>{s(!1),r(e),u("egg");let a=1500;e==="shortBreak"&&(a=300),e==="longBreak"&&(a=900),c(a),t(a)};return{seconds:n,initialTime:f,isActive:o,mode:i,task:m,storyState:d,soundEnabled:v,setSeconds:c,setInitialTime:t,setIsActive:s,setMode:r,setTask:g,setStoryState:u,setSoundEnabled:h,toggleTimer:T,giveUp:y,switchMode:p,resetTimer:()=>{s(!1),p(i)},setCustomTime:e=>{s(!1),c(e*60),t(e*60),u("egg")}}}function fn(){let[n,c]=_react.useState.call(void 0, {isOpen:!1,height:0});return _react.useEffect.call(void 0, ()=>{if(!/iPad|iPhone|iPod|Android/.test(navigator.userAgent))return;let t=()=>{if(!window.visualViewport)return;let i=window.visualViewport,r=window.innerHeight-i.height,m=r>100;c({isOpen:m,height:m?r:0})};window.visualViewport&&(window.visualViewport.addEventListener("resize",t),window.visualViewport.addEventListener("scroll",t));let o=i=>{let r=i.target;(r.tagName==="INPUT"||r.tagName==="TEXTAREA")&&setTimeout(t,100)},s=()=>{setTimeout(()=>{c({isOpen:!1,height:0})},100)};return document.addEventListener("focusin",o),document.addEventListener("focusout",s),t(),()=>{_optionalChain([window, 'access', _2 => _2.visualViewport, 'optionalAccess', _3 => _3.removeEventListener, 'call', _4 => _4("resize",t)]),_optionalChain([window, 'access', _5 => _5.visualViewport, 'optionalAccess', _6 => _6.removeEventListener, 'call', _7 => _7("scroll",t)]),document.removeEventListener("focusin",o),document.removeEventListener("focusout",s)}},[]),n}function mn(){return _react.useCallback.call(void 0, ()=>{window.parent!==window&&window.parent.postMessage("relay:close","*"),window.opener&&window.opener.postMessage("relay:close","*"),window.close()},[])}exports.Accordion = _chunk7RGKC52Kcjs.b; exports.AccordionContent = _chunk7RGKC52Kcjs.e; exports.AccordionItem = _chunk7RGKC52Kcjs.c; exports.AccordionTrigger = _chunk7RGKC52Kcjs.d; exports.Alert = _chunk7RGKC52Kcjs.t; exports.AlertAction = _chunk7RGKC52Kcjs.w; exports.AlertDescription = _chunk7RGKC52Kcjs.v; exports.AlertDialog = _chunk7RGKC52Kcjs.h; exports.AlertDialogAction = _chunk7RGKC52Kcjs.r; exports.AlertDialogCancel = _chunk7RGKC52Kcjs.s; exports.AlertDialogContent = _chunk7RGKC52Kcjs.l; exports.AlertDialogDescription = _chunk7RGKC52Kcjs.q; exports.AlertDialogFooter = _chunk7RGKC52Kcjs.n; exports.AlertDialogHeader = _chunk7RGKC52Kcjs.m; exports.AlertDialogMedia = _chunk7RGKC52Kcjs.o; exports.AlertDialogOverlay = _chunk7RGKC52Kcjs.k; exports.AlertDialogPortal = _chunk7RGKC52Kcjs.j; exports.AlertDialogTitle = _chunk7RGKC52Kcjs.p; exports.AlertDialogTrigger = _chunk7RGKC52Kcjs.i; exports.AlertTitle = _chunk7RGKC52Kcjs.u; exports.AspectRatio = _chunk7RGKC52Kcjs.x; exports.Avatar = _chunk7RGKC52Kcjs.y; exports.AvatarBadge = _chunk7RGKC52Kcjs.B; exports.AvatarFallback = _chunk7RGKC52Kcjs.A; exports.AvatarGroup = _chunk7RGKC52Kcjs.C; exports.AvatarGroupCount = _chunk7RGKC52Kcjs.D; exports.AvatarImage = _chunk7RGKC52Kcjs.z; exports.Badge = _chunk7RGKC52Kcjs.F; exports.Breadcrumb = _chunk7RGKC52Kcjs.G; exports.BreadcrumbEllipsis = _chunk7RGKC52Kcjs.M; exports.BreadcrumbItem = _chunk7RGKC52Kcjs.I; exports.BreadcrumbLink = _chunk7RGKC52Kcjs.J; exports.BreadcrumbList = _chunk7RGKC52Kcjs.H; exports.BreadcrumbPage = _chunk7RGKC52Kcjs.K; exports.BreadcrumbSeparator = _chunk7RGKC52Kcjs.L; exports.Button = _chunk7RGKC52Kcjs.g; exports.ButtonGroup = _chunk7RGKC52Kcjs.P; exports.ButtonGroupSeparator = _chunk7RGKC52Kcjs.R; exports.ButtonGroupText = _chunk7RGKC52Kcjs.Q; exports.Calendar = _chunk7RGKC52Kcjs.S; exports.CalendarDayButton = _chunk7RGKC52Kcjs.T; exports.Card = _chunk7RGKC52Kcjs.U; exports.CardAction = _chunk7RGKC52Kcjs.Y; exports.CardContent = _chunk7RGKC52Kcjs.Z; exports.CardDescription = _chunk7RGKC52Kcjs.X; exports.CardFooter = _chunk7RGKC52Kcjs._; exports.CardHeader = _chunk7RGKC52Kcjs.V; exports.CardTitle = _chunk7RGKC52Kcjs.W; exports.Carousel = _chunk7RGKC52Kcjs.aa; exports.CarouselContent = _chunk7RGKC52Kcjs.ba; exports.CarouselItem = _chunk7RGKC52Kcjs.ca; exports.CarouselNext = _chunk7RGKC52Kcjs.ea; exports.CarouselPrevious = _chunk7RGKC52Kcjs.da; exports.ChartContainer = _chunk7RGKC52Kcjs.fa; exports.ChartLegend = _chunk7RGKC52Kcjs.ja; exports.ChartLegendContent = _chunk7RGKC52Kcjs.ka; exports.ChartStyle = _chunk7RGKC52Kcjs.ga; exports.ChartTooltip = _chunk7RGKC52Kcjs.ha; exports.ChartTooltipContent = _chunk7RGKC52Kcjs.ia; exports.Checkbox = _chunk7RGKC52Kcjs.la; exports.Collapsible = _chunk7RGKC52Kcjs.ma; exports.CollapsibleContent = _chunk7RGKC52Kcjs.oa; exports.CollapsibleTrigger = _chunk7RGKC52Kcjs.na; exports.Combobox = _chunk7RGKC52Kcjs.xa; exports.ComboboxChip = _chunk7RGKC52Kcjs.Ka; exports.ComboboxChips = _chunk7RGKC52Kcjs.Ja; exports.ComboboxChipsInput = _chunk7RGKC52Kcjs.La; exports.ComboboxCollection = _chunk7RGKC52Kcjs.Ga; exports.ComboboxContent = _chunk7RGKC52Kcjs.Ba; exports.ComboboxEmpty = _chunk7RGKC52Kcjs.Ha; exports.ComboboxGroup = _chunk7RGKC52Kcjs.Ea; exports.ComboboxInput = _chunk7RGKC52Kcjs.Aa; exports.ComboboxItem = _chunk7RGKC52Kcjs.Da; exports.ComboboxLabel = _chunk7RGKC52Kcjs.Fa; exports.ComboboxList = _chunk7RGKC52Kcjs.Ca; exports.ComboboxSeparator = _chunk7RGKC52Kcjs.Ia; exports.ComboboxTrigger = _chunk7RGKC52Kcjs.za; exports.ComboboxValue = _chunk7RGKC52Kcjs.ya; exports.Command = _chunk7RGKC52Kcjs.Xa; exports.CommandDialog = _chunk7RGKC52Kcjs.Ya; exports.CommandEmpty = _chunk7RGKC52Kcjs.$a; exports.CommandGroup = _chunk7RGKC52Kcjs.ab; exports.CommandInput = _chunk7RGKC52Kcjs.Za; exports.CommandItem = _chunk7RGKC52Kcjs.cb; exports.CommandList = _chunk7RGKC52Kcjs._a; exports.CommandSeparator = _chunk7RGKC52Kcjs.bb; exports.CommandShortcut = _chunk7RGKC52Kcjs.db; exports.ContextMenu = _chunk7RGKC52Kcjs.eb; exports.ContextMenuCheckboxItem = _chunk7RGKC52Kcjs.ob; exports.ContextMenuContent = _chunk7RGKC52Kcjs.kb; exports.ContextMenuGroup = _chunk7RGKC52Kcjs.gb; exports.ContextMenuItem = _chunk7RGKC52Kcjs.lb; exports.ContextMenuLabel = _chunk7RGKC52Kcjs.qb; exports.ContextMenuPortal = _chunk7RGKC52Kcjs.hb; exports.ContextMenuRadioGroup = _chunk7RGKC52Kcjs.jb; exports.ContextMenuRadioItem = _chunk7RGKC52Kcjs.pb; exports.ContextMenuSeparator = _chunk7RGKC52Kcjs.rb; exports.ContextMenuShortcut = _chunk7RGKC52Kcjs.sb; exports.ContextMenuSub = _chunk7RGKC52Kcjs.ib; exports.ContextMenuSubContent = _chunk7RGKC52Kcjs.nb; exports.ContextMenuSubTrigger = _chunk7RGKC52Kcjs.mb; exports.ContextMenuTrigger = _chunk7RGKC52Kcjs.fb; exports.Dialog = _chunk7RGKC52Kcjs.Na; exports.DialogClose = _chunk7RGKC52Kcjs.Qa; exports.DialogContent = _chunk7RGKC52Kcjs.Sa; exports.DialogDescription = _chunk7RGKC52Kcjs.Wa; exports.DialogFooter = _chunk7RGKC52Kcjs.Ua; exports.DialogHeader = _chunk7RGKC52Kcjs.Ta; exports.DialogOverlay = _chunk7RGKC52Kcjs.Ra; exports.DialogPortal = _chunk7RGKC52Kcjs.Pa; exports.DialogTitle = _chunk7RGKC52Kcjs.Va; exports.DialogTrigger = _chunk7RGKC52Kcjs.Oa; exports.Drawer = _chunk7RGKC52Kcjs.tb; exports.DrawerClose = _chunk7RGKC52Kcjs.wb; exports.DrawerContent = _chunk7RGKC52Kcjs.yb; exports.DrawerDescription = _chunk7RGKC52Kcjs.Cb; exports.DrawerFooter = _chunk7RGKC52Kcjs.Ab; exports.DrawerHeader = _chunk7RGKC52Kcjs.zb; exports.DrawerOverlay = _chunk7RGKC52Kcjs.xb; exports.DrawerPortal = _chunk7RGKC52Kcjs.vb; exports.DrawerTitle = _chunk7RGKC52Kcjs.Bb; exports.DrawerTrigger = _chunk7RGKC52Kcjs.ub; exports.DropdownMenu = _chunk7RGKC52Kcjs.Db; exports.DropdownMenuCheckboxItem = _chunk7RGKC52Kcjs.Jb; exports.DropdownMenuContent = _chunk7RGKC52Kcjs.Gb; exports.DropdownMenuGroup = _chunk7RGKC52Kcjs.Hb; exports.DropdownMenuItem = _chunk7RGKC52Kcjs.Ib; exports.DropdownMenuLabel = _chunk7RGKC52Kcjs.Mb; exports.DropdownMenuPortal = _chunk7RGKC52Kcjs.Eb; exports.DropdownMenuRadioGroup = _chunk7RGKC52Kcjs.Kb; exports.DropdownMenuRadioItem = _chunk7RGKC52Kcjs.Lb; exports.DropdownMenuSeparator = _chunk7RGKC52Kcjs.Nb; exports.DropdownMenuShortcut = _chunk7RGKC52Kcjs.Ob; exports.DropdownMenuSub = _chunk7RGKC52Kcjs.Pb; exports.DropdownMenuSubContent = _chunk7RGKC52Kcjs.Rb; exports.DropdownMenuSubTrigger = _chunk7RGKC52Kcjs.Qb; exports.DropdownMenuTrigger = _chunk7RGKC52Kcjs.Fb; exports.Empty = _chunk7RGKC52Kcjs.Sb; exports.EmptyContent = _chunk7RGKC52Kcjs.Xb; exports.EmptyDescription = _chunk7RGKC52Kcjs.Wb; exports.EmptyHeader = _chunk7RGKC52Kcjs.Tb; exports.EmptyMedia = _chunk7RGKC52Kcjs.Ub; exports.EmptyTitle = _chunk7RGKC52Kcjs.Vb; exports.Field = _chunk7RGKC52Kcjs.ac; exports.FieldContent = _chunk7RGKC52Kcjs.bc; exports.FieldDescription = _chunk7RGKC52Kcjs.ec; exports.FieldError = _chunk7RGKC52Kcjs.gc; exports.FieldGroup = _chunk7RGKC52Kcjs.$b; exports.FieldLabel = _chunk7RGKC52Kcjs.cc; exports.FieldLegend = _chunk7RGKC52Kcjs._b; exports.FieldSeparator = _chunk7RGKC52Kcjs.fc; exports.FieldSet = _chunk7RGKC52Kcjs.Zb; exports.FieldTitle = _chunk7RGKC52Kcjs.dc; exports.HoverCard = _chunk7RGKC52Kcjs.hc; exports.HoverCardContent = _chunk7RGKC52Kcjs.jc; exports.HoverCardTrigger = _chunk7RGKC52Kcjs.ic; exports.Input = _chunk7RGKC52Kcjs.pa; exports.InputGroup = _chunk7RGKC52Kcjs.ra; exports.InputGroupAddon = _chunk7RGKC52Kcjs.sa; exports.InputGroupButton = _chunk7RGKC52Kcjs.ta; exports.InputGroupInput = _chunk7RGKC52Kcjs.va; exports.InputGroupText = _chunk7RGKC52Kcjs.ua; exports.InputGroupTextarea = _chunk7RGKC52Kcjs.wa; exports.InputOTP = _chunk7RGKC52Kcjs.kc; exports.InputOTPGroup = _chunk7RGKC52Kcjs.lc; exports.InputOTPSeparator = _chunk7RGKC52Kcjs.nc; exports.InputOTPSlot = _chunk7RGKC52Kcjs.mc; exports.Item = _chunk7RGKC52Kcjs.qc; exports.ItemActions = _chunk7RGKC52Kcjs.vc; exports.ItemContent = _chunk7RGKC52Kcjs.sc; exports.ItemDescription = _chunk7RGKC52Kcjs.uc; exports.ItemFooter = _chunk7RGKC52Kcjs.xc; exports.ItemGroup = _chunk7RGKC52Kcjs.oc; exports.ItemHeader = _chunk7RGKC52Kcjs.wc; exports.ItemMedia = _chunk7RGKC52Kcjs.rc; exports.ItemSeparator = _chunk7RGKC52Kcjs.pc; exports.ItemTitle = _chunk7RGKC52Kcjs.tc; exports.Kbd = _chunk7RGKC52Kcjs.yc; exports.KbdGroup = _chunk7RGKC52Kcjs.zc; exports.Label = _chunk7RGKC52Kcjs.Yb; exports.Menubar = _chunk7RGKC52Kcjs.Ac; exports.MenubarCheckboxItem = _chunk7RGKC52Kcjs.Ic; exports.MenubarContent = _chunk7RGKC52Kcjs.Gc; exports.MenubarGroup = _chunk7RGKC52Kcjs.Cc; exports.MenubarItem = _chunk7RGKC52Kcjs.Hc; exports.MenubarLabel = _chunk7RGKC52Kcjs.Kc; exports.MenubarMenu = _chunk7RGKC52Kcjs.Bc; exports.MenubarPortal = _chunk7RGKC52Kcjs.Dc; exports.MenubarRadioGroup = _chunk7RGKC52Kcjs.Ec; exports.MenubarRadioItem = _chunk7RGKC52Kcjs.Jc; exports.MenubarSeparator = _chunk7RGKC52Kcjs.Lc; exports.MenubarShortcut = _chunk7RGKC52Kcjs.Mc; exports.MenubarSub = _chunk7RGKC52Kcjs.Nc; exports.MenubarSubContent = _chunk7RGKC52Kcjs.Pc; exports.MenubarSubTrigger = _chunk7RGKC52Kcjs.Oc; exports.MenubarTrigger = _chunk7RGKC52Kcjs.Fc; exports.NavigationMenu = _chunk7RGKC52Kcjs.Qc; exports.NavigationMenuContent = _chunk7RGKC52Kcjs.Vc; exports.NavigationMenuIndicator = _chunk7RGKC52Kcjs.Yc; exports.NavigationMenuItem = _chunk7RGKC52Kcjs.Sc; exports.NavigationMenuLink = _chunk7RGKC52Kcjs.Xc; exports.NavigationMenuList = _chunk7RGKC52Kcjs.Rc; exports.NavigationMenuTrigger = _chunk7RGKC52Kcjs.Uc; exports.NavigationMenuViewport = _chunk7RGKC52Kcjs.Wc; exports.Pagination = _chunk7RGKC52Kcjs.Zc; exports.PaginationContent = _chunk7RGKC52Kcjs._c; exports.PaginationEllipsis = _chunk7RGKC52Kcjs.dd; exports.PaginationItem = _chunk7RGKC52Kcjs.$c; exports.PaginationLink = _chunk7RGKC52Kcjs.ad; exports.PaginationNext = _chunk7RGKC52Kcjs.cd; exports.PaginationPrevious = _chunk7RGKC52Kcjs.bd; exports.Popover = _chunk7RGKC52Kcjs.ed; exports.PopoverAnchor = _chunk7RGKC52Kcjs.hd; exports.PopoverContent = _chunk7RGKC52Kcjs.gd; exports.PopoverDescription = _chunk7RGKC52Kcjs.kd; exports.PopoverHeader = _chunk7RGKC52Kcjs.id; exports.PopoverTitle = _chunk7RGKC52Kcjs.jd; exports.PopoverTrigger = _chunk7RGKC52Kcjs.fd; exports.Progress = _chunk7RGKC52Kcjs.ld; exports.RadioGroup = _chunk7RGKC52Kcjs.md; exports.RadioGroupItem = _chunk7RGKC52Kcjs.nd; exports.ResizableHandle = _chunk7RGKC52Kcjs.qd; exports.ResizablePanel = _chunk7RGKC52Kcjs.pd; exports.ResizablePanelGroup = _chunk7RGKC52Kcjs.od; exports.ScrollArea = _chunk7RGKC52Kcjs.rd; exports.ScrollBar = _chunk7RGKC52Kcjs.sd; exports.Select = _chunk7RGKC52Kcjs.td; exports.SelectContent = _chunk7RGKC52Kcjs.xd; exports.SelectGroup = _chunk7RGKC52Kcjs.ud; exports.SelectItem = _chunk7RGKC52Kcjs.zd; exports.SelectLabel = _chunk7RGKC52Kcjs.yd; exports.SelectScrollDownButton = _chunk7RGKC52Kcjs.Cd; exports.SelectScrollUpButton = _chunk7RGKC52Kcjs.Bd; exports.SelectSeparator = _chunk7RGKC52Kcjs.Ad; exports.SelectTrigger = _chunk7RGKC52Kcjs.wd; exports.SelectValue = _chunk7RGKC52Kcjs.vd; exports.Separator = _chunk7RGKC52Kcjs.N; exports.Sheet = _chunk7RGKC52Kcjs.Dd; exports.SheetClose = _chunk7RGKC52Kcjs.Fd; exports.SheetContent = _chunk7RGKC52Kcjs.Gd; exports.SheetDescription = _chunk7RGKC52Kcjs.Kd; exports.SheetFooter = _chunk7RGKC52Kcjs.Id; exports.SheetHeader = _chunk7RGKC52Kcjs.Hd; exports.SheetTitle = _chunk7RGKC52Kcjs.Jd; exports.SheetTrigger = _chunk7RGKC52Kcjs.Ed; exports.Sidebar = _chunk7RGKC52Kcjs.Td; exports.SidebarContent = _chunk7RGKC52Kcjs.$d; exports.SidebarFooter = _chunk7RGKC52Kcjs.Zd; exports.SidebarGroup = _chunk7RGKC52Kcjs.ae; exports.SidebarGroupAction = _chunk7RGKC52Kcjs.ce; exports.SidebarGroupContent = _chunk7RGKC52Kcjs.de; exports.SidebarGroupLabel = _chunk7RGKC52Kcjs.be; exports.SidebarHeader = _chunk7RGKC52Kcjs.Yd; exports.SidebarInput = _chunk7RGKC52Kcjs.Xd; exports.SidebarInset = _chunk7RGKC52Kcjs.Wd; exports.SidebarMenu = _chunk7RGKC52Kcjs.ee; exports.SidebarMenuAction = _chunk7RGKC52Kcjs.he; exports.SidebarMenuBadge = _chunk7RGKC52Kcjs.ie; exports.SidebarMenuButton = _chunk7RGKC52Kcjs.ge; exports.SidebarMenuItem = _chunk7RGKC52Kcjs.fe; exports.SidebarMenuSkeleton = _chunk7RGKC52Kcjs.je; exports.SidebarMenuSub = _chunk7RGKC52Kcjs.ke; exports.SidebarMenuSubButton = _chunk7RGKC52Kcjs.me; exports.SidebarMenuSubItem = _chunk7RGKC52Kcjs.le; exports.SidebarProvider = _chunk7RGKC52Kcjs.Sd; exports.SidebarRail = _chunk7RGKC52Kcjs.Vd; exports.SidebarSeparator = _chunk7RGKC52Kcjs._d; exports.SidebarTrigger = _chunk7RGKC52Kcjs.Ud; exports.Skeleton = _chunk7RGKC52Kcjs.Ld; exports.Slider = _chunk7RGKC52Kcjs.ne; exports.Spinner = _chunk7RGKC52Kcjs.pe; exports.Switch = _chunk7RGKC52Kcjs.qe; exports.Table = _chunk7RGKC52Kcjs.re; exports.TableBody = _chunk7RGKC52Kcjs.te; exports.TableCaption = _chunk7RGKC52Kcjs.ye; exports.TableCell = _chunk7RGKC52Kcjs.xe; exports.TableFooter = _chunk7RGKC52Kcjs.ue; exports.TableHead = _chunk7RGKC52Kcjs.we; exports.TableHeader = _chunk7RGKC52Kcjs.se; exports.TableRow = _chunk7RGKC52Kcjs.ve; exports.Tabs = _chunk7RGKC52Kcjs.ze; exports.TabsContent = _chunk7RGKC52Kcjs.De; exports.TabsList = _chunk7RGKC52Kcjs.Be; exports.TabsTrigger = _chunk7RGKC52Kcjs.Ce; exports.Textarea = _chunk7RGKC52Kcjs.qa; exports.Toaster = _chunk7RGKC52Kcjs.oe; exports.Toggle = _chunk7RGKC52Kcjs.Fe; exports.ToggleGroup = _chunk7RGKC52Kcjs.Ge; exports.ToggleGroupItem = _chunk7RGKC52Kcjs.He; exports.Tooltip = _chunk7RGKC52Kcjs.Nd; exports.TooltipContent = _chunk7RGKC52Kcjs.Pd; exports.TooltipProvider = _chunk7RGKC52Kcjs.Md; exports.TooltipTrigger = _chunk7RGKC52Kcjs.Od; exports.badgeVariants = _chunk7RGKC52Kcjs.E; exports.buttonGroupVariants = _chunk7RGKC52Kcjs.O; exports.buttonVariants = _chunk7RGKC52Kcjs.f; exports.cn = _chunk7RGKC52Kcjs.a; exports.navigationMenuTriggerStyle = _chunk7RGKC52Kcjs.Tc; exports.tabsListVariants = _chunk7RGKC52Kcjs.Ae; exports.toggleVariants = _chunk7RGKC52Kcjs.Ee; exports.useCarousel = _chunk7RGKC52Kcjs.$; exports.useComboboxAnchor = _chunk7RGKC52Kcjs.Ma; exports.useFocusTimer = un; exports.useIsMobile = _chunk7RGKC52Kcjs.Qd; exports.useKeyboard = fn; exports.useRelayClose = mn; exports.useSidebar = _chunk7RGKC52Kcjs.Rd;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/jas/Desktop/relay/sdk/dist/index.cjs","../src/hooks/use-focus-timer.ts"],"names":["useFocusTimer","seconds","setSeconds","useState","initialTime","setInitialTime","isActive","setIsActive","mode","setMode","task","setTask","storyState","setStoryState","soundEnabled","setSoundEnabled","useEffect","interval","s","isAbducted","progress","toggleTimer","giveUp","switchMode","newMode","newTime","mins"],"mappings":"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","file":"/Users/jas/Desktop/relay/sdk/dist/index.cjs","sourcesContent":[null,"import { useState, useEffect } from 'react';\n\nexport type TimerMode = 'focus' | 'shortBreak' | 'longBreak';\nexport type StoryState = 'egg' | 'cracked' | 'chick' | 'alien' | 'ghost';\n\nexport function useFocusTimer() {\n const [seconds, setSeconds] = useState(25 * 60);\n const [initialTime, setInitialTime] = useState(25 * 60);\n const [isActive, setIsActive] = useState(false);\n const [mode, setMode] = useState<TimerMode>('focus');\n const [task, setTask] = useState('');\n const [storyState, setStoryState] = useState<StoryState>('egg');\n const [soundEnabled, setSoundEnabled] = useState(false);\n\n useEffect(() => {\n let interval: any = null;\n\n if (isActive && seconds > 0) {\n interval = setInterval(() => {\n setSeconds((s) => s - 1);\n }, 1000);\n } else if (seconds === 0 && isActive) {\n // Timer Finished\n setIsActive(false);\n if (mode === 'focus') {\n const isAbducted = Math.random() < 0.01;\n setStoryState(isAbducted ? 'alien' : 'chick');\n }\n }\n\n return () => {\n if (interval) clearInterval(interval);\n };\n }, [isActive, seconds, mode]);\n\n // Update Visuals based on progress\n useEffect(() => {\n if (!isActive && (storyState === 'chick' || storyState === 'alien' || storyState === 'ghost')) return;\n\n // Don't change chick state during break\n if (mode !== 'focus') return;\n\n const progress = 1 - (seconds / initialTime);\n\n if (progress < 0.5) {\n setStoryState('egg');\n } else if (progress >= 0.5 && progress < 1) {\n setStoryState('cracked');\n }\n }, [seconds, initialTime, isActive, storyState, mode]);\n\n const toggleTimer = () => setIsActive(!isActive);\n\n const giveUp = () => {\n setIsActive(false);\n setStoryState('ghost');\n };\n\n const switchMode = (newMode: TimerMode) => {\n setIsActive(false);\n setMode(newMode);\n setStoryState('egg'); // Reset chick for new session\n\n // Set Times\n let newTime = 25 * 60;\n if (newMode === 'shortBreak') newTime = 5 * 60;\n if (newMode === 'longBreak') newTime = 15 * 60;\n\n setSeconds(newTime);\n setInitialTime(newTime);\n };\n\n const resetTimer = () => {\n setIsActive(false);\n switchMode(mode); // Re-init current mode\n };\n\n const setCustomTime = (mins: number) => {\n setIsActive(false);\n setSeconds(mins * 60);\n setInitialTime(mins * 60);\n setStoryState('egg');\n };\n\n return {\n seconds,\n initialTime,\n isActive,\n mode,\n task,\n storyState,\n soundEnabled,\n setSeconds,\n setInitialTime,\n setIsActive,\n setMode,\n setTask,\n setStoryState,\n setSoundEnabled,\n toggleTimer,\n giveUp,\n switchMode,\n resetTimer,\n setCustomTime,\n };\n}\n"]}
1
+ {"version":3,"sources":["/Users/jas/Desktop/relay/sdk/dist/index.cjs","../src/hooks/use-focus-timer.ts","../src/hooks/use-keyboard.ts"],"names":["useFocusTimer","seconds","setSeconds","useState","initialTime","setInitialTime","isActive","setIsActive","mode","setMode","task","setTask","storyState","setStoryState","soundEnabled","setSoundEnabled","useEffect","interval","s","isAbducted","progress","toggleTimer","giveUp","switchMode","newMode","newTime","mins","useKeyboard","state","setState","updateKeyboardState","viewport","keyboardHeight","isOpen","handleFocusIn","e","target","handleFocusOut","useRelayClose","useCallback"],"mappings":"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","file":"/Users/jas/Desktop/relay/sdk/dist/index.cjs","sourcesContent":[null,"import { useState, useEffect } from 'react';\n\nexport type TimerMode = 'focus' | 'shortBreak' | 'longBreak';\nexport type StoryState = 'egg' | 'cracked' | 'chick' | 'alien' | 'ghost';\n\nexport function useFocusTimer() {\n const [seconds, setSeconds] = useState(25 * 60);\n const [initialTime, setInitialTime] = useState(25 * 60);\n const [isActive, setIsActive] = useState(false);\n const [mode, setMode] = useState<TimerMode>('focus');\n const [task, setTask] = useState('');\n const [storyState, setStoryState] = useState<StoryState>('egg');\n const [soundEnabled, setSoundEnabled] = useState(false);\n\n useEffect(() => {\n let interval: any = null;\n\n if (isActive && seconds > 0) {\n interval = setInterval(() => {\n setSeconds((s) => s - 1);\n }, 1000);\n } else if (seconds === 0 && isActive) {\n // Timer Finished\n setIsActive(false);\n if (mode === 'focus') {\n const isAbducted = Math.random() < 0.01;\n setStoryState(isAbducted ? 'alien' : 'chick');\n }\n }\n\n return () => {\n if (interval) clearInterval(interval);\n };\n }, [isActive, seconds, mode]);\n\n // Update Visuals based on progress\n useEffect(() => {\n if (!isActive && (storyState === 'chick' || storyState === 'alien' || storyState === 'ghost')) return;\n\n // Don't change chick state during break\n if (mode !== 'focus') return;\n\n const progress = 1 - (seconds / initialTime);\n\n if (progress < 0.5) {\n setStoryState('egg');\n } else if (progress >= 0.5 && progress < 1) {\n setStoryState('cracked');\n }\n }, [seconds, initialTime, isActive, storyState, mode]);\n\n const toggleTimer = () => setIsActive(!isActive);\n\n const giveUp = () => {\n setIsActive(false);\n setStoryState('ghost');\n };\n\n const switchMode = (newMode: TimerMode) => {\n setIsActive(false);\n setMode(newMode);\n setStoryState('egg'); // Reset chick for new session\n\n // Set Times\n let newTime = 25 * 60;\n if (newMode === 'shortBreak') newTime = 5 * 60;\n if (newMode === 'longBreak') newTime = 15 * 60;\n\n setSeconds(newTime);\n setInitialTime(newTime);\n };\n\n const resetTimer = () => {\n setIsActive(false);\n switchMode(mode); // Re-init current mode\n };\n\n const setCustomTime = (mins: number) => {\n setIsActive(false);\n setSeconds(mins * 60);\n setInitialTime(mins * 60);\n setStoryState('egg');\n };\n\n return {\n seconds,\n initialTime,\n isActive,\n mode,\n task,\n storyState,\n soundEnabled,\n setSeconds,\n setInitialTime,\n setIsActive,\n setMode,\n setTask,\n setStoryState,\n setSoundEnabled,\n toggleTimer,\n giveUp,\n switchMode,\n resetTimer,\n setCustomTime,\n };\n}\n","import { useState, useEffect, useCallback } from 'react';\n\ninterface KeyboardState {\n isOpen: boolean;\n height: number;\n}\n\n/**\n * useKeyboard - Track virtual keyboard state on mobile devices\n * \n * Uses visualViewport API to detect keyboard height and provides\n * a safe area offset for positioning UI elements above the keyboard.\n * \n * @returns {KeyboardState} - { isOpen: boolean, height: number }\n */\nexport function useKeyboard(): KeyboardState {\n const [state, setState] = useState<KeyboardState>({\n isOpen: false,\n height: 0\n });\n\n useEffect(() => {\n // Check if we're on a mobile device\n const isMobile = /iPad|iPhone|iPod|Android/.test(navigator.userAgent);\n if (!isMobile) return;\n\n const updateKeyboardState = () => {\n if (!window.visualViewport) return;\n\n const viewport = window.visualViewport;\n // Calculate keyboard height: difference between window and viewport height\n const keyboardHeight = window.innerHeight - viewport.height;\n // Consider keyboard open if height is more than 100px (threshold for accessory bars)\n const isOpen = keyboardHeight > 100;\n\n setState({\n isOpen,\n height: isOpen ? keyboardHeight : 0\n });\n };\n\n // Listen to visualViewport changes\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', updateKeyboardState);\n window.visualViewport.addEventListener('scroll', updateKeyboardState);\n }\n\n // Also listen for focus/blur on inputs as fallback\n const handleFocusIn = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA') {\n // Small delay to let keyboard animate\n setTimeout(updateKeyboardState, 100);\n }\n };\n\n const handleFocusOut = () => {\n // Small delay to let keyboard animate closed\n setTimeout(() => {\n setState({ isOpen: false, height: 0 });\n }, 100);\n };\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n\n // Initial check\n updateKeyboardState();\n\n return () => {\n window.visualViewport?.removeEventListener('resize', updateKeyboardState);\n window.visualViewport?.removeEventListener('scroll', updateKeyboardState);\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }, []);\n\n return state;\n}\n\n/**\n * useRelayClose - Get the close function for closing the current app\n * \n * Works with both iframe and blob URL contexts.\n * \n * @returns {() => void} - Function to close the current app\n */\nexport function useRelayClose(): () => void {\n const close = useCallback(() => {\n // Try multiple methods to close\n // 1. PostMessage to parent (works in iframe)\n if (window.parent !== window) {\n window.parent.postMessage('relay:close', '*');\n }\n // 2. PostMessage with opener (works if opened as popup)\n if (window.opener) {\n window.opener.postMessage('relay:close', '*');\n }\n // 3. Try self-closing (may not work in all contexts)\n window.close();\n }, []);\n\n return close;\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -42,4 +42,26 @@ declare function useFocusTimer(): {
42
42
 
43
43
  declare function useIsMobile(): boolean;
44
44
 
45
- export { type StoryState, type TimerMode, cn, useFocusTimer, useIsMobile };
45
+ interface KeyboardState {
46
+ isOpen: boolean;
47
+ height: number;
48
+ }
49
+ /**
50
+ * useKeyboard - Track virtual keyboard state on mobile devices
51
+ *
52
+ * Uses visualViewport API to detect keyboard height and provides
53
+ * a safe area offset for positioning UI elements above the keyboard.
54
+ *
55
+ * @returns {KeyboardState} - { isOpen: boolean, height: number }
56
+ */
57
+ declare function useKeyboard(): KeyboardState;
58
+ /**
59
+ * useRelayClose - Get the close function for closing the current app
60
+ *
61
+ * Works with both iframe and blob URL contexts.
62
+ *
63
+ * @returns {() => void} - Function to close the current app
64
+ */
65
+ declare function useRelayClose(): () => void;
66
+
67
+ export { type StoryState, type TimerMode, cn, useFocusTimer, useIsMobile, useKeyboard, useRelayClose };
package/dist/index.d.ts CHANGED
@@ -42,4 +42,26 @@ declare function useFocusTimer(): {
42
42
 
43
43
  declare function useIsMobile(): boolean;
44
44
 
45
- export { type StoryState, type TimerMode, cn, useFocusTimer, useIsMobile };
45
+ interface KeyboardState {
46
+ isOpen: boolean;
47
+ height: number;
48
+ }
49
+ /**
50
+ * useKeyboard - Track virtual keyboard state on mobile devices
51
+ *
52
+ * Uses visualViewport API to detect keyboard height and provides
53
+ * a safe area offset for positioning UI elements above the keyboard.
54
+ *
55
+ * @returns {KeyboardState} - { isOpen: boolean, height: number }
56
+ */
57
+ declare function useKeyboard(): KeyboardState;
58
+ /**
59
+ * useRelayClose - Get the close function for closing the current app
60
+ *
61
+ * Works with both iframe and blob URL contexts.
62
+ *
63
+ * @returns {() => void} - Function to close the current app
64
+ */
65
+ declare function useRelayClose(): () => void;
66
+
67
+ export { type StoryState, type TimerMode, cn, useFocusTimer, useIsMobile, useKeyboard, useRelayClose };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{$ as ve,$a as vt,$b as vs,$c as bo,$d as br,A as X,Aa as Xe,Ab as Xt,Ac as Xs,Ad as Yo,Ae as Yr,B as Y,Ba as Ye,Bb as Yt,Bc as Ys,Bd as Zo,Be as Zr,C as Z,Ca as Ze,Cb as Zt,Cc as Zs,Cd as _o,Ce as _r,D as _,Da as _e,Db as _t,Dc as _s,Dd as $o,De as $r,E as $,Ea as $e,Eb as $t,Ec as $s,Ed as er,Ee as ei,F as ee,Fa as et,Fb as es,Fc as eo,Fd as tr,Fe as ti,G as te,Ga as tt,Gb as ts,Gc as to,Gd as sr,Ge as si,H as se,Ha as st,Hb as ss,Hc as so,Hd as or,He as oi,I as oe,Ia as ot,Ib as os,Ic as oo,Id as rr,J as re,Ja as rt,Jb as rs,Jc as ro,Jd as ir,K as ie,Ka as it,Kb as is,Kc as io,Kd as cr,L as ce,La as ct,Lb as cs,Lc as co,Ld as nr,M as ne,Ma as nt,Mb as ns,Mc as no,Md as ar,N as ae,Na as at,Nb as as,Nc as ao,Nd as fr,O as fe,Oa as ft,Ob as fs,Oc as fo,Od as lr,P as le,Pa as lt,Pb as ls,Pc as lo,Pd as mr,Q as me,Qa as mt,Qb as ms,Qc as mo,Qd as ur,R as ue,Ra as ut,Rb as us,Rc as uo,Rd as gr,S as ge,Sa as gt,Sb as gs,Sc as go,Sd as dr,T as de,Ta as dt,Tb as ds,Tc as po,Td as pr,U as pe,Ua as pt,Ub as ps,Uc as To,Ud as Tr,V as Te,Va as Tt,Vb as Ts,Vc as ko,Vd as kr,W as ke,Wa as kt,Wb as ks,Wc as ho,Wd as hr,X as he,Xa as ht,Xb as hs,Xc as So,Xd as Sr,Y as Se,Ya as St,Yb as Ss,Yc as xo,Yd as xr,Z as xe,Za as xt,Zb as xs,Zc as yo,Zd as yr,_ as ye,_a as yt,_b as ys,_c as vo,_d as vr,a as b,aa as be,ab as bt,ac as bs,ad as Bo,ae as Br,b as B,ba as Be,bb as Bt,bc as Bs,bd as Io,be as Ir,c as I,ca as Ie,cb as It,cc as Is,cd as Mo,ce as Mr,d as M,da as Me,db as Mt,dc as Ms,dd as Ao,de as Ar,e as A,ea as Ae,eb as At,ec as As,ed as Eo,ee as Er,f as E,fa as Ee,fb as Et,fc as Es,fd as Co,fe as Cr,g as C,ga as Ce,gb as Ct,gc as Cs,gd as Fo,ge as Fr,h as F,ha as Fe,hb as Ft,hc as Fs,hd as Uo,he as Ur,i as U,ia as Ue,ib as Ut,ic as Us,id as jo,ie as jr,j,ja as je,jb as jt,jc as js,jd as qo,je as qr,k as q,ka as qe,kb as qt,kc as qs,kd as wo,ke as wr,l as w,la as we,lb as wt,lc as ws,ld as zo,le as zr,m as z,ma as ze,mb as zt,mc as zs,md as Do,me as Dr,n as D,na as De,nb as Dt,nc as Ds,nd as Go,ne as Gr,o as G,oa as Ge,ob as Gt,oc as Gs,od as Ho,oe as Hr,p as H,pa as He,pb as Ht,pc as Hs,pd as Jo,pe as Jr,q as J,qa as Je,qb as Jt,qc as Js,qd as Ko,qe as Kr,r as K,ra as Ke,rb as Kt,rc as Ks,rd as Lo,re as Lr,s as L,sa as Le,sb as Lt,sc as Ls,sd as No,se as Nr,t as N,ta as Ne,tb as Nt,tc as Ns,td as Oo,te as Or,u as O,ua as Oe,ub as Ot,uc as Os,ud as Po,ue as Pr,v as P,va as Pe,vb as Pt,vc as Ps,vd as Qo,ve as Qr,w as Q,wa as Qe,wb as Qt,wc as Qs,wd as Ro,we as Rr,x as R,xa as Re,xb as Rt,xc as Rs,xd as Vo,xe as Vr,y as V,ya as Ve,yb as Vt,yc as Vs,yd as Wo,ye as Wr,z as W,za as We,zb as Wt,zc as Ws,zd as Xo,ze as Xr}from"./chunk-6VSTRIAD.js";import{useState as i,useEffect as d}from"react";function ii(){let[c,f]=i(1500),[l,m]=i(1500),[s,o]=i(!1),[n,u]=i("focus"),[p,T]=i(""),[a,r]=i("egg"),[k,h]=i(!1);d(()=>{let e=null;if(s&&c>0)e=setInterval(()=>{f(t=>t-1)},1e3);else if(c===0&&s&&(o(!1),n==="focus")){let t=Math.random()<.01;r(t?"alien":"chick")}return()=>{e&&clearInterval(e)}},[s,c,n]),d(()=>{if(!s&&(a==="chick"||a==="alien"||a==="ghost")||n!=="focus")return;let e=1-c/l;e<.5?r("egg"):e>=.5&&e<1&&r("cracked")},[c,l,s,a,n]);let S=()=>o(!s),x=()=>{o(!1),r("ghost")},g=e=>{o(!1),u(e),r("egg");let t=1500;e==="shortBreak"&&(t=300),e==="longBreak"&&(t=900),f(t),m(t)};return{seconds:c,initialTime:l,isActive:s,mode:n,task:p,storyState:a,soundEnabled:k,setSeconds:f,setInitialTime:m,setIsActive:o,setMode:u,setTask:T,setStoryState:r,setSoundEnabled:h,toggleTimer:S,giveUp:x,switchMode:g,resetTimer:()=>{o(!1),g(n)},setCustomTime:e=>{o(!1),f(e*60),m(e*60),r("egg")}}}export{B as Accordion,A as AccordionContent,I as AccordionItem,M as AccordionTrigger,N as Alert,Q as AlertAction,P as AlertDescription,F as AlertDialog,K as AlertDialogAction,L as AlertDialogCancel,w as AlertDialogContent,J as AlertDialogDescription,D as AlertDialogFooter,z as AlertDialogHeader,G as AlertDialogMedia,q as AlertDialogOverlay,j as AlertDialogPortal,H as AlertDialogTitle,U as AlertDialogTrigger,O as AlertTitle,R as AspectRatio,V as Avatar,Y as AvatarBadge,X as AvatarFallback,Z as AvatarGroup,_ as AvatarGroupCount,W as AvatarImage,ee as Badge,te as Breadcrumb,ne as BreadcrumbEllipsis,oe as BreadcrumbItem,re as BreadcrumbLink,se as BreadcrumbList,ie as BreadcrumbPage,ce as BreadcrumbSeparator,C as Button,le as ButtonGroup,ue as ButtonGroupSeparator,me as ButtonGroupText,ge as Calendar,de as CalendarDayButton,pe as Card,Se as CardAction,xe as CardContent,he as CardDescription,ye as CardFooter,Te as CardHeader,ke as CardTitle,be as Carousel,Be as CarouselContent,Ie as CarouselItem,Ae as CarouselNext,Me as CarouselPrevious,Ee as ChartContainer,je as ChartLegend,qe as ChartLegendContent,Ce as ChartStyle,Fe as ChartTooltip,Ue as ChartTooltipContent,we as Checkbox,ze as Collapsible,Ge as CollapsibleContent,De as CollapsibleTrigger,Re as Combobox,it as ComboboxChip,rt as ComboboxChips,ct as ComboboxChipsInput,tt as ComboboxCollection,Ye as ComboboxContent,st as ComboboxEmpty,$e as ComboboxGroup,Xe as ComboboxInput,_e as ComboboxItem,et as ComboboxLabel,Ze as ComboboxList,ot as ComboboxSeparator,We as ComboboxTrigger,Ve as ComboboxValue,ht as Command,St as CommandDialog,vt as CommandEmpty,bt as CommandGroup,xt as CommandInput,It as CommandItem,yt as CommandList,Bt as CommandSeparator,Mt as CommandShortcut,At as ContextMenu,Gt as ContextMenuCheckboxItem,qt as ContextMenuContent,Ct as ContextMenuGroup,wt as ContextMenuItem,Jt as ContextMenuLabel,Ft as ContextMenuPortal,jt as ContextMenuRadioGroup,Ht as ContextMenuRadioItem,Kt as ContextMenuSeparator,Lt as ContextMenuShortcut,Ut as ContextMenuSub,Dt as ContextMenuSubContent,zt as ContextMenuSubTrigger,Et as ContextMenuTrigger,at as Dialog,mt as DialogClose,gt as DialogContent,kt as DialogDescription,pt as DialogFooter,dt as DialogHeader,ut as DialogOverlay,lt as DialogPortal,Tt as DialogTitle,ft as DialogTrigger,Nt as Drawer,Qt as DrawerClose,Vt as DrawerContent,Zt as DrawerDescription,Xt as DrawerFooter,Wt as DrawerHeader,Rt as DrawerOverlay,Pt as DrawerPortal,Yt as DrawerTitle,Ot as DrawerTrigger,_t as DropdownMenu,rs as DropdownMenuCheckboxItem,ts as DropdownMenuContent,ss as DropdownMenuGroup,os as DropdownMenuItem,ns as DropdownMenuLabel,$t as DropdownMenuPortal,is as DropdownMenuRadioGroup,cs as DropdownMenuRadioItem,as as DropdownMenuSeparator,fs as DropdownMenuShortcut,ls as DropdownMenuSub,us as DropdownMenuSubContent,ms as DropdownMenuSubTrigger,es as DropdownMenuTrigger,gs as Empty,hs as EmptyContent,ks as EmptyDescription,ds as EmptyHeader,ps as EmptyMedia,Ts as EmptyTitle,bs as Field,Bs as FieldContent,As as FieldDescription,Cs as FieldError,vs as FieldGroup,Is as FieldLabel,ys as FieldLegend,Es as FieldSeparator,xs as FieldSet,Ms as FieldTitle,Fs as HoverCard,js as HoverCardContent,Us as HoverCardTrigger,He as Input,Ke as InputGroup,Le as InputGroupAddon,Ne as InputGroupButton,Pe as InputGroupInput,Oe as InputGroupText,Qe as InputGroupTextarea,qs as InputOTP,ws as InputOTPGroup,Ds as InputOTPSeparator,zs as InputOTPSlot,Js as Item,Ps as ItemActions,Ls as ItemContent,Os as ItemDescription,Rs as ItemFooter,Gs as ItemGroup,Qs as ItemHeader,Ks as ItemMedia,Hs as ItemSeparator,Ns as ItemTitle,Vs as Kbd,Ws as KbdGroup,Ss as Label,Xs as Menubar,oo as MenubarCheckboxItem,to as MenubarContent,Zs as MenubarGroup,so as MenubarItem,io as MenubarLabel,Ys as MenubarMenu,_s as MenubarPortal,$s as MenubarRadioGroup,ro as MenubarRadioItem,co as MenubarSeparator,no as MenubarShortcut,ao as MenubarSub,lo as MenubarSubContent,fo as MenubarSubTrigger,eo as MenubarTrigger,mo as NavigationMenu,ko as NavigationMenuContent,xo as NavigationMenuIndicator,go as NavigationMenuItem,So as NavigationMenuLink,uo as NavigationMenuList,To as NavigationMenuTrigger,ho as NavigationMenuViewport,yo as Pagination,vo as PaginationContent,Ao as PaginationEllipsis,bo as PaginationItem,Bo as PaginationLink,Mo as PaginationNext,Io as PaginationPrevious,Eo as Popover,Uo as PopoverAnchor,Fo as PopoverContent,wo as PopoverDescription,jo as PopoverHeader,qo as PopoverTitle,Co as PopoverTrigger,zo as Progress,Do as RadioGroup,Go as RadioGroupItem,Ko as ResizableHandle,Jo as ResizablePanel,Ho as ResizablePanelGroup,Lo as ScrollArea,No as ScrollBar,Oo as Select,Vo as SelectContent,Po as SelectGroup,Xo as SelectItem,Wo as SelectLabel,_o as SelectScrollDownButton,Zo as SelectScrollUpButton,Yo as SelectSeparator,Ro as SelectTrigger,Qo as SelectValue,ae as Separator,$o as Sheet,tr as SheetClose,sr as SheetContent,cr as SheetDescription,rr as SheetFooter,or as SheetHeader,ir as SheetTitle,er as SheetTrigger,pr as Sidebar,br as SidebarContent,yr as SidebarFooter,Br as SidebarGroup,Mr as SidebarGroupAction,Ar as SidebarGroupContent,Ir as SidebarGroupLabel,xr as SidebarHeader,Sr as SidebarInput,hr as SidebarInset,Er as SidebarMenu,Ur as SidebarMenuAction,jr as SidebarMenuBadge,Fr as SidebarMenuButton,Cr as SidebarMenuItem,qr as SidebarMenuSkeleton,wr as SidebarMenuSub,Dr as SidebarMenuSubButton,zr as SidebarMenuSubItem,dr as SidebarProvider,kr as SidebarRail,vr as SidebarSeparator,Tr as SidebarTrigger,nr as Skeleton,Gr as Slider,Jr as Spinner,Kr as Switch,Lr as Table,Or as TableBody,Wr as TableCaption,Vr as TableCell,Pr as TableFooter,Rr as TableHead,Nr as TableHeader,Qr as TableRow,Xr as Tabs,$r as TabsContent,Zr as TabsList,_r as TabsTrigger,Je as Textarea,Hr as Toaster,ti as Toggle,si as ToggleGroup,oi as ToggleGroupItem,fr as Tooltip,mr as TooltipContent,ar as TooltipProvider,lr as TooltipTrigger,$ as badgeVariants,fe as buttonGroupVariants,E as buttonVariants,b as cn,po as navigationMenuTriggerStyle,Yr as tabsListVariants,ei as toggleVariants,ve as useCarousel,nt as useComboboxAnchor,ii as useFocusTimer,ur as useIsMobile,gr as useSidebar};
1
+ import{$ as xe,$a as xt,$b as Lo,$c as Ls,$d as Li,A as _,Aa as _e,Ab as _t,Ac as $o,Ad as $s,Ae as $i,B as $,Ba as $e,Bb as $t,Bc as es,Bd as ei,Be as en,C as ee,Ca as et,Cb as eo,Cc as ts,Cd as ti,Ce as tn,D as te,Da as tt,Db as to,Dc as os,Dd as oi,De as on,E as oe,Ea as ot,Eb as oo,Ec as ss,Ed as si,Ee as sn,F as se,Fa as st,Fb as so,Fc as is,Fd as ii,Fe as nn,G as ie,Ga as it,Gb as io,Gc as ns,Gd as ni,Ge as rn,H as ne,Ha as nt,Hb as no,Hc as rs,Hd as ri,He as an,I as re,Ia as rt,Ib as ro,Ic as as,Id as ai,J as ae,Ja as at,Jb as ao,Jc as cs,Jd as ci,K as ce,Ka as ct,Kb as co,Kc as us,Kd as ui,L as ue,La as ut,Lb as uo,Lc as ls,Ld as li,M as le,Ma as lt,Mb as lo,Mc as ds,Md as di,N as de,Na as dt,Nb as fo,Nc as fs,Nd as fi,O as fe,Oa as ft,Ob as mo,Oc as ms,Od as mi,P as me,Pa as mt,Pb as po,Pc as ps,Pd as pi,Q as pe,Qa as pt,Qb as wo,Qc as ws,Qd as wi,R as we,Ra as wt,Rb as go,Rc as gs,Rd as gi,S as ge,Sa as gt,Sb as vo,Sc as vs,Sd as vi,T as ve,Ta as vt,Tb as ho,Tc as hs,Td as hi,U as he,Ua as ht,Ub as To,Uc as Ts,Ud as Ti,V as Te,Va as Tt,Vb as yo,Vc as ys,Vd as yi,W as ye,Wa as yt,Wb as Eo,Wc as Es,Wd as Ei,X as Ee,Xa as Et,Xb as So,Xc as Ss,Xd as Si,Y as Se,Ya as St,Yb as bo,Yc as bs,Yd as bi,Z as be,Za as bt,Zb as ko,Zc as ks,Zd as ki,_ as ke,_a as kt,_b as xo,_c as xs,_d as xi,a as L,aa as Le,ab as Lt,ac as Mo,ad as Ms,ae as Mi,b as M,ba as Me,bb as Mt,bc as Ao,bd as As,be as Ai,c as A,ca as Ae,cb as At,cc as Vo,cd as Vs,ce as Vi,d as V,da as Ve,db as Vt,dc as Io,dd as Is,de as Ii,e as I,ea as Ie,eb as It,ec as Ko,ed as Ks,ee as Ki,f as K,fa as Ke,fb as Kt,fc as Oo,fd as Os,fe as Oi,g as O,ga as Oe,gb as Ot,gc as Bo,gd as Bs,ge as Bi,h as B,ha as Be,hb as Bt,hc as Co,hd as Cs,he as Ci,i as C,ia as Ce,ib as Ct,ic as Fo,id as Fs,ie as Fi,j as F,ja as Fe,jb as Ft,jc as Po,jd as Ps,je as Pi,k as P,ka as Pe,kb as Pt,kc as Ho,kd as Hs,ke as Hi,l as H,la as He,lb as Ht,lc as No,ld as Ns,le as Ni,m as N,ma as Ne,mb as Nt,mc as zo,md as zs,me as zi,n as z,na as ze,nb as zt,nc as Ro,nd as Rs,ne as Ri,o as R,oa as Re,ob as Rt,oc as Uo,od as Us,oe as Ui,p as U,pa as Ue,pb as Ut,pc as Xo,pd as Xs,pe as Xi,q as X,qa as Xe,qb as Xt,qc as jo,qd as js,qe as ji,r as j,ra as je,rb as jt,rc as qo,rd as qs,re as qi,s as q,sa as qe,sb as qt,sc as Do,sd as Ds,se as Di,t as D,ta as De,tb as Dt,tc as Go,td as Gs,te as Gi,u as G,ua as Ge,ub as Gt,uc as Jo,ud as Js,ue as Ji,v as J,va as Je,vb as Jt,vc as Qo,vd as Qs,ve as Qi,w as Q,wa as Qe,wb as Qt,wc as Wo,wd as Ws,we as Wi,x as W,xa as We,xb as Wt,xc as Yo,xd as Ys,xe as Yi,y as Y,ya as Ye,yb as Yt,yc as Zo,yd as Zs,ye as Zi,z as Z,za as Ze,zb as Zt,zc as _o,zd as _s,ze as _i}from"./chunk-6VSTRIAD.js";import{useState as l,useEffect as w}from"react";function un(){let[n,c]=l(1500),[f,t]=l(1500),[o,s]=l(!1),[i,r]=l("focus"),[m,g]=l(""),[d,u]=l("egg"),[v,h]=l(!1);w(()=>{let e=null;if(o&&n>0)e=setInterval(()=>{c(a=>a-1)},1e3);else if(n===0&&o&&(s(!1),i==="focus")){let a=Math.random()<.01;u(a?"alien":"chick")}return()=>{e&&clearInterval(e)}},[o,n,i]),w(()=>{if(!o&&(d==="chick"||d==="alien"||d==="ghost")||i!=="focus")return;let e=1-n/f;e<.5?u("egg"):e>=.5&&e<1&&u("cracked")},[n,f,o,d,i]);let T=()=>s(!o),y=()=>{s(!1),u("ghost")},p=e=>{s(!1),r(e),u("egg");let a=1500;e==="shortBreak"&&(a=300),e==="longBreak"&&(a=900),c(a),t(a)};return{seconds:n,initialTime:f,isActive:o,mode:i,task:m,storyState:d,soundEnabled:v,setSeconds:c,setInitialTime:t,setIsActive:s,setMode:r,setTask:g,setStoryState:u,setSoundEnabled:h,toggleTimer:T,giveUp:y,switchMode:p,resetTimer:()=>{s(!1),p(i)},setCustomTime:e=>{s(!1),c(e*60),t(e*60),u("egg")}}}import{useState as E,useEffect as S,useCallback as b}from"react";function fn(){let[n,c]=E({isOpen:!1,height:0});return S(()=>{if(!/iPad|iPhone|iPod|Android/.test(navigator.userAgent))return;let t=()=>{if(!window.visualViewport)return;let i=window.visualViewport,r=window.innerHeight-i.height,m=r>100;c({isOpen:m,height:m?r:0})};window.visualViewport&&(window.visualViewport.addEventListener("resize",t),window.visualViewport.addEventListener("scroll",t));let o=i=>{let r=i.target;(r.tagName==="INPUT"||r.tagName==="TEXTAREA")&&setTimeout(t,100)},s=()=>{setTimeout(()=>{c({isOpen:!1,height:0})},100)};return document.addEventListener("focusin",o),document.addEventListener("focusout",s),t(),()=>{window.visualViewport?.removeEventListener("resize",t),window.visualViewport?.removeEventListener("scroll",t),document.removeEventListener("focusin",o),document.removeEventListener("focusout",s)}},[]),n}function mn(){return b(()=>{window.parent!==window&&window.parent.postMessage("relay:close","*"),window.opener&&window.opener.postMessage("relay:close","*"),window.close()},[])}export{M as Accordion,I as AccordionContent,A as AccordionItem,V as AccordionTrigger,D as Alert,Q as AlertAction,J as AlertDescription,B as AlertDialog,j as AlertDialogAction,q as AlertDialogCancel,H as AlertDialogContent,X as AlertDialogDescription,z as AlertDialogFooter,N as AlertDialogHeader,R as AlertDialogMedia,P as AlertDialogOverlay,F as AlertDialogPortal,U as AlertDialogTitle,C as AlertDialogTrigger,G as AlertTitle,W as AspectRatio,Y as Avatar,$ as AvatarBadge,_ as AvatarFallback,ee as AvatarGroup,te as AvatarGroupCount,Z as AvatarImage,se as Badge,ie as Breadcrumb,le as BreadcrumbEllipsis,re as BreadcrumbItem,ae as BreadcrumbLink,ne as BreadcrumbList,ce as BreadcrumbPage,ue as BreadcrumbSeparator,O as Button,me as ButtonGroup,we as ButtonGroupSeparator,pe as ButtonGroupText,ge as Calendar,ve as CalendarDayButton,he as Card,Se as CardAction,be as CardContent,Ee as CardDescription,ke as CardFooter,Te as CardHeader,ye as CardTitle,Le as Carousel,Me as CarouselContent,Ae as CarouselItem,Ie as CarouselNext,Ve as CarouselPrevious,Ke as ChartContainer,Fe as ChartLegend,Pe as ChartLegendContent,Oe as ChartStyle,Be as ChartTooltip,Ce as ChartTooltipContent,He as Checkbox,Ne as Collapsible,Re as CollapsibleContent,ze as CollapsibleTrigger,We as Combobox,ct as ComboboxChip,at as ComboboxChips,ut as ComboboxChipsInput,it as ComboboxCollection,$e as ComboboxContent,nt as ComboboxEmpty,ot as ComboboxGroup,_e as ComboboxInput,tt as ComboboxItem,st as ComboboxLabel,et as ComboboxList,rt as ComboboxSeparator,Ze as ComboboxTrigger,Ye as ComboboxValue,Et as Command,St as CommandDialog,xt as CommandEmpty,Lt as CommandGroup,bt as CommandInput,At as CommandItem,kt as CommandList,Mt as CommandSeparator,Vt as CommandShortcut,It as ContextMenu,Rt as ContextMenuCheckboxItem,Pt as ContextMenuContent,Ot as ContextMenuGroup,Ht as ContextMenuItem,Xt as ContextMenuLabel,Bt as ContextMenuPortal,Ft as ContextMenuRadioGroup,Ut as ContextMenuRadioItem,jt as ContextMenuSeparator,qt as ContextMenuShortcut,Ct as ContextMenuSub,zt as ContextMenuSubContent,Nt as ContextMenuSubTrigger,Kt as ContextMenuTrigger,dt as Dialog,pt as DialogClose,gt as DialogContent,yt as DialogDescription,ht as DialogFooter,vt as DialogHeader,wt as DialogOverlay,mt as DialogPortal,Tt as DialogTitle,ft as DialogTrigger,Dt as Drawer,Qt as DrawerClose,Yt as DrawerContent,eo as DrawerDescription,_t as DrawerFooter,Zt as DrawerHeader,Wt as DrawerOverlay,Jt as DrawerPortal,$t as DrawerTitle,Gt as DrawerTrigger,to as DropdownMenu,ao as DropdownMenuCheckboxItem,io as DropdownMenuContent,no as DropdownMenuGroup,ro as DropdownMenuItem,lo as DropdownMenuLabel,oo as DropdownMenuPortal,co as DropdownMenuRadioGroup,uo as DropdownMenuRadioItem,fo as DropdownMenuSeparator,mo as DropdownMenuShortcut,po as DropdownMenuSub,go as DropdownMenuSubContent,wo as DropdownMenuSubTrigger,so as DropdownMenuTrigger,vo as Empty,So as EmptyContent,Eo as EmptyDescription,ho as EmptyHeader,To as EmptyMedia,yo as EmptyTitle,Mo as Field,Ao as FieldContent,Ko as FieldDescription,Bo as FieldError,Lo as FieldGroup,Vo as FieldLabel,xo as FieldLegend,Oo as FieldSeparator,ko as FieldSet,Io as FieldTitle,Co as HoverCard,Po as HoverCardContent,Fo as HoverCardTrigger,Ue as Input,je as InputGroup,qe as InputGroupAddon,De as InputGroupButton,Je as InputGroupInput,Ge as InputGroupText,Qe as InputGroupTextarea,Ho as InputOTP,No as InputOTPGroup,Ro as InputOTPSeparator,zo as InputOTPSlot,jo as Item,Qo as ItemActions,Do as ItemContent,Jo as ItemDescription,Yo as ItemFooter,Uo as ItemGroup,Wo as ItemHeader,qo as ItemMedia,Xo as ItemSeparator,Go as ItemTitle,Zo as Kbd,_o as KbdGroup,bo as Label,$o as Menubar,as as MenubarCheckboxItem,ns as MenubarContent,ts as MenubarGroup,rs as MenubarItem,us as MenubarLabel,es as MenubarMenu,os as MenubarPortal,ss as MenubarRadioGroup,cs as MenubarRadioItem,ls as MenubarSeparator,ds as MenubarShortcut,fs as MenubarSub,ps as MenubarSubContent,ms as MenubarSubTrigger,is as MenubarTrigger,ws as NavigationMenu,ys as NavigationMenuContent,bs as NavigationMenuIndicator,vs as NavigationMenuItem,Ss as NavigationMenuLink,gs as NavigationMenuList,Ts as NavigationMenuTrigger,Es as NavigationMenuViewport,ks as Pagination,xs as PaginationContent,Is as PaginationEllipsis,Ls as PaginationItem,Ms as PaginationLink,Vs as PaginationNext,As as PaginationPrevious,Ks as Popover,Cs as PopoverAnchor,Bs as PopoverContent,Hs as PopoverDescription,Fs as PopoverHeader,Ps as PopoverTitle,Os as PopoverTrigger,Ns as Progress,zs as RadioGroup,Rs as RadioGroupItem,js as ResizableHandle,Xs as ResizablePanel,Us as ResizablePanelGroup,qs as ScrollArea,Ds as ScrollBar,Gs as Select,Ys as SelectContent,Js as SelectGroup,_s as SelectItem,Zs as SelectLabel,ti as SelectScrollDownButton,ei as SelectScrollUpButton,$s as SelectSeparator,Ws as SelectTrigger,Qs as SelectValue,de as Separator,oi as Sheet,ii as SheetClose,ni as SheetContent,ui as SheetDescription,ai as SheetFooter,ri as SheetHeader,ci as SheetTitle,si as SheetTrigger,hi as Sidebar,Li as SidebarContent,ki as SidebarFooter,Mi as SidebarGroup,Vi as SidebarGroupAction,Ii as SidebarGroupContent,Ai as SidebarGroupLabel,bi as SidebarHeader,Si as SidebarInput,Ei as SidebarInset,Ki as SidebarMenu,Ci as SidebarMenuAction,Fi as SidebarMenuBadge,Bi as SidebarMenuButton,Oi as SidebarMenuItem,Pi as SidebarMenuSkeleton,Hi as SidebarMenuSub,zi as SidebarMenuSubButton,Ni as SidebarMenuSubItem,vi as SidebarProvider,yi as SidebarRail,xi as SidebarSeparator,Ti as SidebarTrigger,li as Skeleton,Ri as Slider,Xi as Spinner,ji as Switch,qi as Table,Gi as TableBody,Zi as TableCaption,Yi as TableCell,Ji as TableFooter,Wi as TableHead,Di as TableHeader,Qi as TableRow,_i as Tabs,on as TabsContent,en as TabsList,tn as TabsTrigger,Xe as Textarea,Ui as Toaster,nn as Toggle,rn as ToggleGroup,an as ToggleGroupItem,fi as Tooltip,pi as TooltipContent,di as TooltipProvider,mi as TooltipTrigger,oe as badgeVariants,fe as buttonGroupVariants,K as buttonVariants,L as cn,hs as navigationMenuTriggerStyle,$i as tabsListVariants,sn as toggleVariants,xe as useCarousel,lt as useComboboxAnchor,un as useFocusTimer,wi as useIsMobile,fn as useKeyboard,mn as useRelayClose,gi as useSidebar};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/use-focus-timer.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nexport type TimerMode = 'focus' | 'shortBreak' | 'longBreak';\nexport type StoryState = 'egg' | 'cracked' | 'chick' | 'alien' | 'ghost';\n\nexport function useFocusTimer() {\n const [seconds, setSeconds] = useState(25 * 60);\n const [initialTime, setInitialTime] = useState(25 * 60);\n const [isActive, setIsActive] = useState(false);\n const [mode, setMode] = useState<TimerMode>('focus');\n const [task, setTask] = useState('');\n const [storyState, setStoryState] = useState<StoryState>('egg');\n const [soundEnabled, setSoundEnabled] = useState(false);\n\n useEffect(() => {\n let interval: any = null;\n\n if (isActive && seconds > 0) {\n interval = setInterval(() => {\n setSeconds((s) => s - 1);\n }, 1000);\n } else if (seconds === 0 && isActive) {\n // Timer Finished\n setIsActive(false);\n if (mode === 'focus') {\n const isAbducted = Math.random() < 0.01;\n setStoryState(isAbducted ? 'alien' : 'chick');\n }\n }\n\n return () => {\n if (interval) clearInterval(interval);\n };\n }, [isActive, seconds, mode]);\n\n // Update Visuals based on progress\n useEffect(() => {\n if (!isActive && (storyState === 'chick' || storyState === 'alien' || storyState === 'ghost')) return;\n\n // Don't change chick state during break\n if (mode !== 'focus') return;\n\n const progress = 1 - (seconds / initialTime);\n\n if (progress < 0.5) {\n setStoryState('egg');\n } else if (progress >= 0.5 && progress < 1) {\n setStoryState('cracked');\n }\n }, [seconds, initialTime, isActive, storyState, mode]);\n\n const toggleTimer = () => setIsActive(!isActive);\n\n const giveUp = () => {\n setIsActive(false);\n setStoryState('ghost');\n };\n\n const switchMode = (newMode: TimerMode) => {\n setIsActive(false);\n setMode(newMode);\n setStoryState('egg'); // Reset chick for new session\n\n // Set Times\n let newTime = 25 * 60;\n if (newMode === 'shortBreak') newTime = 5 * 60;\n if (newMode === 'longBreak') newTime = 15 * 60;\n\n setSeconds(newTime);\n setInitialTime(newTime);\n };\n\n const resetTimer = () => {\n setIsActive(false);\n switchMode(mode); // Re-init current mode\n };\n\n const setCustomTime = (mins: number) => {\n setIsActive(false);\n setSeconds(mins * 60);\n setInitialTime(mins * 60);\n setStoryState('egg');\n };\n\n return {\n seconds,\n initialTime,\n isActive,\n mode,\n task,\n storyState,\n soundEnabled,\n setSeconds,\n setInitialTime,\n setIsActive,\n setMode,\n setTask,\n setStoryState,\n setSoundEnabled,\n toggleTimer,\n giveUp,\n switchMode,\n resetTimer,\n setCustomTime,\n };\n}\n"],"mappings":"unFAAA,OAAS,YAAAA,EAAU,aAAAC,MAAiB,QAK7B,SAASC,IAAgB,CAC5B,GAAM,CAACC,EAASC,CAAU,EAAIJ,EAAS,IAAO,EACxC,CAACK,EAAaC,CAAc,EAAIN,EAAS,IAAO,EAChD,CAACO,EAAUC,CAAW,EAAIR,EAAS,EAAK,EACxC,CAACS,EAAMC,CAAO,EAAIV,EAAoB,OAAO,EAC7C,CAACW,EAAMC,CAAO,EAAIZ,EAAS,EAAE,EAC7B,CAACa,EAAYC,CAAa,EAAId,EAAqB,KAAK,EACxD,CAACe,EAAcC,CAAe,EAAIhB,EAAS,EAAK,EAEtDC,EAAU,IAAM,CACZ,IAAIgB,EAAgB,KAEpB,GAAIV,GAAYJ,EAAU,EACtBc,EAAW,YAAY,IAAM,CACzBb,EAAYc,GAAMA,EAAI,CAAC,CAC3B,EAAG,GAAI,UACAf,IAAY,GAAKI,IAExBC,EAAY,EAAK,EACbC,IAAS,SAAS,CAClB,IAAMU,EAAa,KAAK,OAAO,EAAI,IACnCL,EAAcK,EAAa,QAAU,OAAO,CAChD,CAGJ,MAAO,IAAM,CACLF,GAAU,cAAcA,CAAQ,CACxC,CACJ,EAAG,CAACV,EAAUJ,EAASM,CAAI,CAAC,EAG5BR,EAAU,IAAM,CAIZ,GAHI,CAACM,IAAaM,IAAe,SAAWA,IAAe,SAAWA,IAAe,UAGjFJ,IAAS,QAAS,OAEtB,IAAMW,EAAW,EAAKjB,EAAUE,EAE5Be,EAAW,GACXN,EAAc,KAAK,EACZM,GAAY,IAAOA,EAAW,GACrCN,EAAc,SAAS,CAE/B,EAAG,CAACX,EAASE,EAAaE,EAAUM,EAAYJ,CAAI,CAAC,EAErD,IAAMY,EAAc,IAAMb,EAAY,CAACD,CAAQ,EAEzCe,EAAS,IAAM,CACjBd,EAAY,EAAK,EACjBM,EAAc,OAAO,CACzB,EAEMS,EAAcC,GAAuB,CACvChB,EAAY,EAAK,EACjBE,EAAQc,CAAO,EACfV,EAAc,KAAK,EAGnB,IAAIW,EAAU,KACVD,IAAY,eAAcC,EAAU,KACpCD,IAAY,cAAaC,EAAU,KAEvCrB,EAAWqB,CAAO,EAClBnB,EAAemB,CAAO,CAC1B,EAcA,MAAO,CACH,QAAAtB,EACA,YAAAE,EACA,SAAAE,EACA,KAAAE,EACA,KAAAE,EACA,WAAAE,EACA,aAAAE,EACA,WAAAX,EACA,eAAAE,EACA,YAAAE,EACA,QAAAE,EACA,QAAAE,EACA,cAAAE,EACA,gBAAAE,EACA,YAAAK,EACA,OAAAC,EACA,WAAAC,EACA,WA9Be,IAAM,CACrBf,EAAY,EAAK,EACjBe,EAAWd,CAAI,CACnB,EA4BI,cA1BmBiB,GAAiB,CACpClB,EAAY,EAAK,EACjBJ,EAAWsB,EAAO,EAAE,EACpBpB,EAAeoB,EAAO,EAAE,EACxBZ,EAAc,KAAK,CACvB,CAsBA,CACJ","names":["useState","useEffect","useFocusTimer","seconds","setSeconds","initialTime","setInitialTime","isActive","setIsActive","mode","setMode","task","setTask","storyState","setStoryState","soundEnabled","setSoundEnabled","interval","s","isAbducted","progress","toggleTimer","giveUp","switchMode","newMode","newTime","mins"]}
1
+ {"version":3,"sources":["../src/hooks/use-focus-timer.ts","../src/hooks/use-keyboard.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nexport type TimerMode = 'focus' | 'shortBreak' | 'longBreak';\nexport type StoryState = 'egg' | 'cracked' | 'chick' | 'alien' | 'ghost';\n\nexport function useFocusTimer() {\n const [seconds, setSeconds] = useState(25 * 60);\n const [initialTime, setInitialTime] = useState(25 * 60);\n const [isActive, setIsActive] = useState(false);\n const [mode, setMode] = useState<TimerMode>('focus');\n const [task, setTask] = useState('');\n const [storyState, setStoryState] = useState<StoryState>('egg');\n const [soundEnabled, setSoundEnabled] = useState(false);\n\n useEffect(() => {\n let interval: any = null;\n\n if (isActive && seconds > 0) {\n interval = setInterval(() => {\n setSeconds((s) => s - 1);\n }, 1000);\n } else if (seconds === 0 && isActive) {\n // Timer Finished\n setIsActive(false);\n if (mode === 'focus') {\n const isAbducted = Math.random() < 0.01;\n setStoryState(isAbducted ? 'alien' : 'chick');\n }\n }\n\n return () => {\n if (interval) clearInterval(interval);\n };\n }, [isActive, seconds, mode]);\n\n // Update Visuals based on progress\n useEffect(() => {\n if (!isActive && (storyState === 'chick' || storyState === 'alien' || storyState === 'ghost')) return;\n\n // Don't change chick state during break\n if (mode !== 'focus') return;\n\n const progress = 1 - (seconds / initialTime);\n\n if (progress < 0.5) {\n setStoryState('egg');\n } else if (progress >= 0.5 && progress < 1) {\n setStoryState('cracked');\n }\n }, [seconds, initialTime, isActive, storyState, mode]);\n\n const toggleTimer = () => setIsActive(!isActive);\n\n const giveUp = () => {\n setIsActive(false);\n setStoryState('ghost');\n };\n\n const switchMode = (newMode: TimerMode) => {\n setIsActive(false);\n setMode(newMode);\n setStoryState('egg'); // Reset chick for new session\n\n // Set Times\n let newTime = 25 * 60;\n if (newMode === 'shortBreak') newTime = 5 * 60;\n if (newMode === 'longBreak') newTime = 15 * 60;\n\n setSeconds(newTime);\n setInitialTime(newTime);\n };\n\n const resetTimer = () => {\n setIsActive(false);\n switchMode(mode); // Re-init current mode\n };\n\n const setCustomTime = (mins: number) => {\n setIsActive(false);\n setSeconds(mins * 60);\n setInitialTime(mins * 60);\n setStoryState('egg');\n };\n\n return {\n seconds,\n initialTime,\n isActive,\n mode,\n task,\n storyState,\n soundEnabled,\n setSeconds,\n setInitialTime,\n setIsActive,\n setMode,\n setTask,\n setStoryState,\n setSoundEnabled,\n toggleTimer,\n giveUp,\n switchMode,\n resetTimer,\n setCustomTime,\n };\n}\n","import { useState, useEffect, useCallback } from 'react';\n\ninterface KeyboardState {\n isOpen: boolean;\n height: number;\n}\n\n/**\n * useKeyboard - Track virtual keyboard state on mobile devices\n * \n * Uses visualViewport API to detect keyboard height and provides\n * a safe area offset for positioning UI elements above the keyboard.\n * \n * @returns {KeyboardState} - { isOpen: boolean, height: number }\n */\nexport function useKeyboard(): KeyboardState {\n const [state, setState] = useState<KeyboardState>({\n isOpen: false,\n height: 0\n });\n\n useEffect(() => {\n // Check if we're on a mobile device\n const isMobile = /iPad|iPhone|iPod|Android/.test(navigator.userAgent);\n if (!isMobile) return;\n\n const updateKeyboardState = () => {\n if (!window.visualViewport) return;\n\n const viewport = window.visualViewport;\n // Calculate keyboard height: difference between window and viewport height\n const keyboardHeight = window.innerHeight - viewport.height;\n // Consider keyboard open if height is more than 100px (threshold for accessory bars)\n const isOpen = keyboardHeight > 100;\n\n setState({\n isOpen,\n height: isOpen ? keyboardHeight : 0\n });\n };\n\n // Listen to visualViewport changes\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', updateKeyboardState);\n window.visualViewport.addEventListener('scroll', updateKeyboardState);\n }\n\n // Also listen for focus/blur on inputs as fallback\n const handleFocusIn = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA') {\n // Small delay to let keyboard animate\n setTimeout(updateKeyboardState, 100);\n }\n };\n\n const handleFocusOut = () => {\n // Small delay to let keyboard animate closed\n setTimeout(() => {\n setState({ isOpen: false, height: 0 });\n }, 100);\n };\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n\n // Initial check\n updateKeyboardState();\n\n return () => {\n window.visualViewport?.removeEventListener('resize', updateKeyboardState);\n window.visualViewport?.removeEventListener('scroll', updateKeyboardState);\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }, []);\n\n return state;\n}\n\n/**\n * useRelayClose - Get the close function for closing the current app\n * \n * Works with both iframe and blob URL contexts.\n * \n * @returns {() => void} - Function to close the current app\n */\nexport function useRelayClose(): () => void {\n const close = useCallback(() => {\n // Try multiple methods to close\n // 1. PostMessage to parent (works in iframe)\n if (window.parent !== window) {\n window.parent.postMessage('relay:close', '*');\n }\n // 2. PostMessage with opener (works if opened as popup)\n if (window.opener) {\n window.opener.postMessage('relay:close', '*');\n }\n // 3. Try self-closing (may not work in all contexts)\n window.close();\n }, []);\n\n return close;\n}\n"],"mappings":"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","names":["useState","useEffect","useFocusTimer","seconds","setSeconds","initialTime","setInitialTime","isActive","setIsActive","mode","setMode","task","setTask","storyState","setStoryState","soundEnabled","setSoundEnabled","interval","s","isAbducted","progress","toggleTimer","giveUp","switchMode","newMode","newTime","mins","useState","useEffect","useCallback","useKeyboard","state","setState","updateKeyboardState","viewport","keyboardHeight","isOpen","handleFocusIn","e","target","handleFocusOut","useRelayClose"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notapublicfigureanymore/relay-sdk",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "The official SDK for building Relay apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",