@notapublicfigureanymore/relay-sdk 0.0.1

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 ADDED
@@ -0,0 +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;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +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"]}
@@ -0,0 +1,45 @@
1
+ import { ClassValue } from 'clsx';
2
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonGroupVariants, buttonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useCarousel, useComboboxAnchor, useSidebar } from './components/ui/index.cjs';
3
+ import * as React from 'react';
4
+ import 'react/jsx-runtime';
5
+ import 'radix-ui';
6
+ import 'class-variance-authority/types';
7
+ import 'class-variance-authority';
8
+ import 'react-day-picker';
9
+ import 'embla-carousel-react';
10
+ import 'recharts';
11
+ import '@base-ui/react';
12
+ import 'cmdk';
13
+ import 'vaul';
14
+ import 'input-otp';
15
+ import 'sonner';
16
+
17
+ declare function cn(...inputs: ClassValue[]): string;
18
+
19
+ type TimerMode = 'focus' | 'shortBreak' | 'longBreak';
20
+ type StoryState = 'egg' | 'cracked' | 'chick' | 'alien' | 'ghost';
21
+ declare function useFocusTimer(): {
22
+ seconds: number;
23
+ initialTime: number;
24
+ isActive: boolean;
25
+ mode: TimerMode;
26
+ task: string;
27
+ storyState: StoryState;
28
+ soundEnabled: boolean;
29
+ setSeconds: React.Dispatch<React.SetStateAction<number>>;
30
+ setInitialTime: React.Dispatch<React.SetStateAction<number>>;
31
+ setIsActive: React.Dispatch<React.SetStateAction<boolean>>;
32
+ setMode: React.Dispatch<React.SetStateAction<TimerMode>>;
33
+ setTask: React.Dispatch<React.SetStateAction<string>>;
34
+ setStoryState: React.Dispatch<React.SetStateAction<StoryState>>;
35
+ setSoundEnabled: React.Dispatch<React.SetStateAction<boolean>>;
36
+ toggleTimer: () => void;
37
+ giveUp: () => void;
38
+ switchMode: (newMode: TimerMode) => void;
39
+ resetTimer: () => void;
40
+ setCustomTime: (mins: number) => void;
41
+ };
42
+
43
+ declare function useIsMobile(): boolean;
44
+
45
+ export { type StoryState, type TimerMode, cn, useFocusTimer, useIsMobile };
@@ -0,0 +1,45 @@
1
+ import { ClassValue } from 'clsx';
2
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonGroupVariants, buttonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useCarousel, useComboboxAnchor, useSidebar } from './components/ui/index.js';
3
+ import * as React from 'react';
4
+ import 'react/jsx-runtime';
5
+ import 'radix-ui';
6
+ import 'class-variance-authority/types';
7
+ import 'class-variance-authority';
8
+ import 'react-day-picker';
9
+ import 'embla-carousel-react';
10
+ import 'recharts';
11
+ import '@base-ui/react';
12
+ import 'cmdk';
13
+ import 'vaul';
14
+ import 'input-otp';
15
+ import 'sonner';
16
+
17
+ declare function cn(...inputs: ClassValue[]): string;
18
+
19
+ type TimerMode = 'focus' | 'shortBreak' | 'longBreak';
20
+ type StoryState = 'egg' | 'cracked' | 'chick' | 'alien' | 'ghost';
21
+ declare function useFocusTimer(): {
22
+ seconds: number;
23
+ initialTime: number;
24
+ isActive: boolean;
25
+ mode: TimerMode;
26
+ task: string;
27
+ storyState: StoryState;
28
+ soundEnabled: boolean;
29
+ setSeconds: React.Dispatch<React.SetStateAction<number>>;
30
+ setInitialTime: React.Dispatch<React.SetStateAction<number>>;
31
+ setIsActive: React.Dispatch<React.SetStateAction<boolean>>;
32
+ setMode: React.Dispatch<React.SetStateAction<TimerMode>>;
33
+ setTask: React.Dispatch<React.SetStateAction<string>>;
34
+ setStoryState: React.Dispatch<React.SetStateAction<StoryState>>;
35
+ setSoundEnabled: React.Dispatch<React.SetStateAction<boolean>>;
36
+ toggleTimer: () => void;
37
+ giveUp: () => void;
38
+ switchMode: (newMode: TimerMode) => void;
39
+ resetTimer: () => void;
40
+ setCustomTime: (mins: number) => void;
41
+ };
42
+
43
+ declare function useIsMobile(): boolean;
44
+
45
+ export { type StoryState, type TimerMode, cn, useFocusTimer, useIsMobile };
package/dist/index.js ADDED
@@ -0,0 +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};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"]}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@notapublicfigureanymore/relay-sdk",
3
+ "version": "0.0.1",
4
+ "description": "The official SDK for building Relay apps.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsup",
14
+ "dev": "tsup --watch",
15
+ "lint": "tsc"
16
+ },
17
+ "peerDependencies": {
18
+ "react": "^19.0.0",
19
+ "react-dom": "^19.0.0",
20
+ "tailwindcss": ">=3"
21
+ },
22
+ "dependencies": {
23
+ "@base-ui/react": "^1.1.0",
24
+ "@fontsource-variable/inter": "^5.2.8",
25
+ "@tailwindcss/vite": "^4.1.17",
26
+ "class-variance-authority": "^0.7.1",
27
+ "clsx": "^2.1.1",
28
+ "cmdk": "^1.1.1",
29
+ "date-fns": "^4.1.0",
30
+ "embla-carousel-react": "^8.6.0",
31
+ "input-otp": "^1.4.2",
32
+ "lucide-react": "^0.562.0",
33
+ "next-themes": "^0.4.6",
34
+ "radix-ui": "^1.0.1",
35
+ "react-day-picker": "^9.13.0",
36
+ "react-resizable-panels": "^4.4.1",
37
+ "recharts": "^2.15.0",
38
+ "shadcn": "^2.1.8",
39
+ "sonner": "^1.7.2",
40
+ "tailwind-merge": "^2.6.0",
41
+ "tw-animate-css": "^1.4.0",
42
+ "vaul": "^1.1.2"
43
+ },
44
+ "devDependencies": {
45
+ "tsup": "^8.0.2",
46
+ "typescript": "^5.7.3",
47
+ "@types/react": "^19.0.0",
48
+ "@types/react-dom": "^19.0.0",
49
+ "@types/node": "^24.10.1",
50
+ "autoprefixer": "^10.4.20",
51
+ "postcss": "^8.4.49"
52
+ }
53
+ }