@minutemailer/kit 1.0.4 → 1.0.6
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/components/ui/alert.js +1 -1
- package/components/ui/avatar.js +1 -1
- package/components/ui/button.js +1 -1
- package/components/ui/checkbox.js +1 -1
- package/components/ui/dropdown-menu.js +1 -1
- package/components/ui/input.js +1 -1
- package/components/ui/label.js +1 -1
- package/components/ui/separator.js +1 -1
- package/components/ui/sheet.js +1 -1
- package/components/ui/sidebar.d.ts +4 -4
- package/components/ui/sidebar.js +8 -8
- package/components/ui/skeleton.js +1 -1
- package/components/ui/tooltip.js +1 -1
- package/icons/index.js +129 -261
- package/package.json +36 -22
- package/state/index.js +52 -64
- package/store/index.js +3 -6
- package/store/useSelector.d.ts +1 -1
- package/utils/index.js +6 -15
- package/components/ui/alert.tsx.js +0 -67
- package/components/ui/alert.tsx.js.map +0 -7
- package/components/ui/avatar.tsx.js +0 -54
- package/components/ui/avatar.tsx.js.map +0 -7
- package/components/ui/button.tsx.js +0 -51
- package/components/ui/button.tsx.js.map +0 -7
- package/components/ui/checkbox.tsx.js +0 -33
- package/components/ui/checkbox.tsx.js.map +0 -7
- package/components/ui/dropdown-menu.tsx.js +0 -244
- package/components/ui/dropdown-menu.tsx.js.map +0 -7
- package/components/ui/input.tsx.js +0 -22
- package/components/ui/input.tsx.js.map +0 -7
- package/components/ui/label.tsx.js +0 -24
- package/components/ui/label.tsx.js.map +0 -7
- package/components/ui/separator.tsx.js +0 -27
- package/components/ui/separator.tsx.js.map +0 -7
- package/components/ui/sheet.tsx.js +0 -128
- package/components/ui/sheet.tsx.js.map +0 -7
- package/components/ui/sidebar.tsx.js +0 -668
- package/components/ui/sidebar.tsx.js.map +0 -7
- package/components/ui/skeleton.tsx.js +0 -16
- package/components/ui/skeleton.tsx.js.map +0 -7
- package/components/ui/sonner.tsx.js +0 -23
- package/components/ui/sonner.tsx.js.map +0 -7
- package/components/ui/tooltip.tsx.js +0 -56
- package/components/ui/tooltip.tsx.js.map +0 -7
- package/icons/index.js.map +0 -7
- package/state/index.js.map +0 -7
- package/state/index.test.d.ts +0 -1
- package/state/index.test.js +0 -126
- package/store/index.js.map +0 -7
- package/store/store.test.d.ts +0 -12
- package/store/store.test.js +0 -51
- package/stories/Alert.stories.d.ts +0 -12
- package/stories/Alert.stories.js +0 -29
- package/stories/Button.stories.d.ts +0 -17
- package/stories/Button.stories.js +0 -61
- package/stories/Checkbox.stories.d.ts +0 -14
- package/stories/Checkbox.stories.js +0 -37
- package/stories/Input.stories.d.ts +0 -14
- package/stories/Input.stories.js +0 -31
- package/stories/Label.stories.d.ts +0 -9
- package/stories/Label.stories.js +0 -12
- package/stories/Separator.stories.d.ts +0 -10
- package/stories/Separator.stories.js +0 -13
- package/stories/Sidebar.stories.d.ts +0 -9
- package/stories/Sidebar.stories.js +0 -53
- package/stories/Skeleton.stories.d.ts +0 -9
- package/stories/Skeleton.stories.js +0 -10
- package/stories/Sonner.stories.d.ts +0 -11
- package/stories/Sonner.stories.js +0 -22
- package/stories/Todo.d.ts +0 -1
- package/stories/Todo.js +0 -75
- package/stories/Tooltip.stories.d.ts +0 -9
- package/stories/Tooltip.stories.js +0 -11
- package/stories/TrafficLights.d.ts +0 -3
- package/stories/TrafficLights.js +0 -37
- package/utils/capitalize/index.test.d.ts +0 -1
- package/utils/capitalize/index.test.js +0 -10
- package/utils/choice/index.test.d.ts +0 -1
- package/utils/choice/index.test.js +0 -21
- package/utils/index.js.map +0 -7
- package/utils/objToQuery/index.test.d.ts +0 -1
- package/utils/objToQuery/index.test.js +0 -17
- package/utils/replacePlaceholders/index.test.d.ts +0 -1
- package/utils/replacePlaceholders/index.test.js +0 -19
- package/utils/strToDate/index.test.d.ts +0 -1
- package/utils/strToDate/index.test.js +0 -45
- package/utils/zeroPad/index.test.d.ts +0 -1
- package/utils/zeroPad/index.test.js +0 -12
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ui/sidebar.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\n\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/utils/utils';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n ],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>\n Displays the mobile sidebar.\n </SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">\n {children}\n </div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\n 'relative flex w-full min-w-0 flex-col p-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default:\n 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n sidebarMenuButtonVariants({ variant, size }),\n className,\n )}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\n 'flex h-8 items-center gap-2 rounded-md px-2',\n className,\n )}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["open"]
|
|
7
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "@/utils/utils";
|
|
3
|
-
function Skeleton({ className, ...props }) {
|
|
4
|
-
return /* @__PURE__ */ jsx(
|
|
5
|
-
"div",
|
|
6
|
-
{
|
|
7
|
-
"data-slot": "skeleton",
|
|
8
|
-
className: cn("bg-accent animate-pulse rounded-md", className),
|
|
9
|
-
...props
|
|
10
|
-
}
|
|
11
|
-
);
|
|
12
|
-
}
|
|
13
|
-
export {
|
|
14
|
-
Skeleton
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=skeleton.tsx.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ui/skeleton.tsx"],
|
|
4
|
-
"sourcesContent": ["import { cn } from '@/utils/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],
|
|
5
|
-
"mappings": "AAIQ;AAJR,SAAS,UAAU;AAEnB,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAgC;AACpE,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAU;AAAA,MACV,WAAW,GAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACR;AAER;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useTheme } from "next-themes";
|
|
3
|
-
import { Toaster as Sonner } from "sonner";
|
|
4
|
-
const Toaster = ({ ...props }) => {
|
|
5
|
-
const { theme = "system" } = useTheme();
|
|
6
|
-
return /* @__PURE__ */ jsx(
|
|
7
|
-
Sonner,
|
|
8
|
-
{
|
|
9
|
-
theme,
|
|
10
|
-
className: "toaster group",
|
|
11
|
-
style: {
|
|
12
|
-
"--normal-bg": "var(--popover)",
|
|
13
|
-
"--normal-text": "var(--popover-foreground)",
|
|
14
|
-
"--normal-border": "var(--border)"
|
|
15
|
-
},
|
|
16
|
-
...props
|
|
17
|
-
}
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
export {
|
|
21
|
-
Toaster
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=sonner.tsx.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ui/sonner.tsx"],
|
|
4
|
-
"sourcesContent": ["import { useTheme } from 'next-themes';\nimport { Toaster as Sonner, ToasterProps } from 'sonner';\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n } as React.CSSProperties\n }\n {...props}\n />\n );\n};\n\nexport { Toaster };\n"],
|
|
5
|
-
"mappings": "AAOQ;AAPR,SAAS,gBAAgB;AACzB,SAAS,WAAW,cAA4B;AAEhD,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,MAAoB;AAC5C,QAAM,EAAE,QAAQ,SAAS,IAAI,SAAS;AAEtC,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,WAAU;AAAA,MACV,OACI;AAAA,QACI,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,MACvB;AAAA,MAEH,GAAG;AAAA;AAAA,EACR;AAER;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3
|
-
import { cn } from "@/utils/utils";
|
|
4
|
-
function TooltipProvider({
|
|
5
|
-
delayDuration = 0,
|
|
6
|
-
...props
|
|
7
|
-
}) {
|
|
8
|
-
return /* @__PURE__ */ jsx(
|
|
9
|
-
TooltipPrimitive.Provider,
|
|
10
|
-
{
|
|
11
|
-
"data-slot": "tooltip-provider",
|
|
12
|
-
delayDuration,
|
|
13
|
-
...props
|
|
14
|
-
}
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
function Tooltip({
|
|
18
|
-
...props
|
|
19
|
-
}) {
|
|
20
|
-
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
21
|
-
}
|
|
22
|
-
function TooltipTrigger({
|
|
23
|
-
...props
|
|
24
|
-
}) {
|
|
25
|
-
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
26
|
-
}
|
|
27
|
-
function TooltipContent({
|
|
28
|
-
className,
|
|
29
|
-
sideOffset = 0,
|
|
30
|
-
children,
|
|
31
|
-
...props
|
|
32
|
-
}) {
|
|
33
|
-
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
34
|
-
TooltipPrimitive.Content,
|
|
35
|
-
{
|
|
36
|
-
"data-slot": "tooltip-content",
|
|
37
|
-
sideOffset,
|
|
38
|
-
className: cn(
|
|
39
|
-
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
40
|
-
className
|
|
41
|
-
),
|
|
42
|
-
...props,
|
|
43
|
-
children: [
|
|
44
|
-
children,
|
|
45
|
-
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
) });
|
|
49
|
-
}
|
|
50
|
-
export {
|
|
51
|
-
Tooltip,
|
|
52
|
-
TooltipContent,
|
|
53
|
-
TooltipProvider,
|
|
54
|
-
TooltipTrigger
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=tooltip.tsx.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ui/tooltip.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\n\nimport { cn } from '@/utils/utils';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],
|
|
5
|
-
"mappings": "AAUQ,cAgCI,YAhCJ;AATR,YAAY,sBAAsB;AAElC,SAAS,UAAU;AAEnB,SAAS,gBAAgB;AAAA,EACrB,gBAAgB;AAAA,EAChB,GAAG;AACP,GAA2D;AACvD,SACI;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACG,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACR;AAER;AAEA,SAAS,QAAQ;AAAA,EACb,GAAG;AACP,GAAuD;AACnD,SACI,oBAAC,mBACG,8BAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO,GAC1D;AAER;AAEA,SAAS,eAAe;AAAA,EACpB,GAAG;AACP,GAA0D;AACtD,SAAO,oBAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC5E;AAEA,SAAS,eAAe;AAAA,EACpB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACP,GAA0D;AACtD,SACI,oBAAC,iBAAiB,QAAjB,EACG;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACG,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAC,iBAAiB,OAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACrI,GACJ;AAER;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/icons/index.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/icons/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { default as Alert } from './Alert';\nexport { default as AlertFilled } from './AlertFilled';\nexport { default as Arrow } from './Arrow';\nexport { default as ArrowDown } from './ArrowDown';\nexport { default as Attachment } from './Attachment';\nexport { default as Automate } from './Automate';\nexport { default as Bold } from './Bold';\nexport { default as BorderBottom } from './BorderBottom';\nexport { default as BorderLeft } from './BorderLeft';\nexport { default as BorderRight } from './BorderRight';\nexport { default as BorderTop } from './BorderTop';\nexport { default as BottomAlign } from './BottomAlign';\nexport { default as BottomLeftCorner } from './BottomLeftCorner';\nexport { default as BottomRightCorner } from './BottomRightCorner';\nexport { default as Button } from './Button';\nexport { default as Calendar } from './Calendar';\nexport { default as Center } from './Center';\nexport { default as Check } from './Check';\nexport { default as CheckFilled } from './CheckFilled';\nexport { default as Checkmark } from './Checkmark';\nexport { default as Chevron } from './Chevron';\nexport { default as ChevronDown } from './ChevronDown';\nexport { default as ChevronLeft } from './ChevronLeft';\nexport { default as ChevronUp } from './ChevronUp';\nexport { default as Close } from './Close';\nexport { default as CloseBold } from './CloseBold';\nexport { default as CloseCircle } from './CloseCircle';\nexport { default as Column1 } from './Column1';\nexport { default as Column12 } from './Column12';\nexport { default as Column13 } from './Column13';\nexport { default as Column2 } from './Column2';\nexport { default as Column21 } from './Column21';\nexport { default as Column3 } from './Column3';\nexport { default as Column31 } from './Column31';\nexport { default as Column4 } from './Column4';\nexport { default as Contacts } from './Contacts';\nexport { default as Crop } from './Crop';\nexport { default as Divider } from './Divider';\nexport { default as Download } from './Download';\nexport { default as Duplicate } from './Duplicate';\nexport { default as Email } from './Email';\nexport { default as Feedback } from './Feedback';\nexport { default as File } from './File';\nexport { default as Filter } from './Filter';\nexport { default as Flip } from './Flip';\nexport { default as Flop } from './Flop';\nexport { default as Form } from './Form';\nexport { default as Gift } from './Gift';\nexport { default as HeartRound } from './HeartRound';\nexport { default as Home } from './Home';\nexport { default as HorisontalCenter } from './HorisontalCenter';\nexport { default as Image } from './Image';\nexport { default as Images } from './Images';\nexport { default as Info } from './Info';\nexport { default as Integrations } from './Integrations';\nexport { default as Italics } from './Italics';\nexport { default as Justified } from './Justified';\nexport { default as LeftAlign } from './LeftAlign';\nexport { default as Left } from './Left';\nexport { default as LetterSpacing } from './LetterSpacing';\nexport { default as LineHeight } from './LineHeight';\nexport { default as LineThickness } from './LineThickness';\nexport { default as Link } from './Link';\nexport { default as List } from './List';\nexport { default as ListMenu } from './ListMenu';\nexport { default as ListNumbered } from './ListNumbered';\nexport { default as Location } from './Location';\nexport { default as LockChain } from './LockChain';\nexport { default as Locked } from './Locked';\nexport { default as Logo } from './Logo';\nexport { default as Logout } from './Logout';\nexport { default as Lowercase } from './Lowercase';\nexport { default as Magic } from './Magic';\nexport { default as MarginBottom } from './MarginBottom';\nexport { default as MarginLeft } from './MarginLeft';\nexport { default as MarginRight } from './MarginRight';\nexport { default as MarginTop } from './MarginTop';\nexport { default as Menu } from './Menu';\nexport { default as Minus } from './Minus';\nexport { default as MinusBold } from './MinusBold';\nexport { default as More } from './More';\nexport { default as Move } from './Move';\nexport { default as MoveDirections } from './MoveDirections';\nexport { default as MoveVertical } from './MoveVertical';\nexport { default as Openclose } from './Openclose';\nexport { default as Pen } from './Pen';\nexport { default as Phone } from './Phone';\nexport { default as Plane } from './Plane';\nexport { default as PlaneOutline } from './PlaneOutline';\nexport { default as Plus } from './Plus';\nexport { default as PlusBold } from './PlusBold';\nexport { default as PlusCircle } from './PlusCircle';\nexport { default as Result } from './Result';\nexport { default as RightAlign } from './RightAlign';\nexport { default as Right } from './Right';\nexport { default as Rotate } from './Rotate';\nexport { default as Search } from './Search';\nexport { default as Settings } from './Settings';\nexport { default as Sms } from './Sms';\nexport { default as Spacing } from './Spacing';\nexport { default as Spinner } from './Spinner';\nexport { default as StarFilled } from './StarFilled';\nexport { default as StarOutline } from './StarOutline';\nexport { default as Stars } from './Stars';\nexport { default as Stats } from './Stats';\nexport { default as Stop } from './Stop';\nexport { default as Strikethrough } from './Strikethrough';\nexport { default as Support } from './Support';\nexport { default as Tags } from './Tags';\nexport { default as Team } from './Team';\nexport { default as Text } from './Text';\nexport { default as Thumbsdown } from './Thumbsdown';\nexport { default as Thumbsup } from './Thumbsup';\nexport { default as TopAlign } from './TopAlign';\nexport { default as TopLeftCorner } from './TopLeftCorner';\nexport { default as TopRightCorner } from './TopRightCorner';\nexport { default as Trash } from './Trash';\nexport { default as Underscore } from './Underscore';\nexport { default as Unlink } from './Unlink';\nexport { default as UnlockChain } from './UnlockChain';\nexport { default as Unlocked } from './Unlocked';\nexport { default as Upload } from './Upload';\nexport { default as Uppercase } from './Uppercase';\nexport { default as VerticalCenter } from './VerticalCenter';\nexport { default as Video } from './Video';\nexport { default as Warning } from './Warning';\nexport { default as Website } from './Website';\nexport { default as Width } from './Width';\nexport { default as Write } from './Write';\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["default"]
|
|
7
|
-
}
|
package/state/index.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/state/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { useEffect, useState } from 'react';\n\ninterface StateMachine<TContext> {\n subscribe: (listener: StateChange<TContext>) => () => void;\n destroy: () => void;\n action: (action: string, input?: any) => void;\n can: (action: string) => boolean;\n useCurrentState: () => string;\n useCurrentContext: <TSelected = any>(\n selector: (context: TContext) => TSelected,\n ) => TSelected;\n getContext: () => TContext;\n}\n\ninterface Transitions {\n [state: string]: {\n on: {\n [action: string]: string;\n };\n };\n}\n\ninterface Actions {\n [action: string]: (context: any, input?: any) => any;\n}\n\ntype StateChange<TContext> = (\n state: string,\n previousState: string,\n context: TContext,\n) => void;\n\nexport function createMachine<TContext = any>(\n transitions: Transitions,\n actions: Actions,\n initialContext: TContext,\n initialState = 'IDLE',\n): StateMachine<TContext> {\n const listeners = new Set<StateChange<TContext>>();\n let state = initialState;\n let context = initialContext;\n\n return {\n subscribe(listener: StateChange<TContext>): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n\n destroy(): void {\n listeners.clear();\n state = initialState;\n context = initialContext;\n },\n\n action(action: string, input?: any): void {\n const transition = transitions[state];\n const nextState = transition.on[action];\n\n if (!nextState) {\n console.warn('Invalid transition', state, action);\n return;\n }\n\n console.log(\n `Machine transition: ${state} -> ${nextState} (${action}, ${input})`,\n );\n\n const previousState = state;\n\n if (actions[action]) {\n context = actions[action].call(this, context, input) || context;\n }\n\n state = nextState;\n listeners.forEach((listener) =>\n listener(state, previousState, context),\n );\n },\n\n can(action: string): boolean {\n const transition = transitions[state];\n return !!transition.on[action];\n },\n\n useCurrentState(): string {\n const [currentState, setCurrentState] = useState<string>(state);\n\n useEffect(() => {\n return this.subscribe(() => setCurrentState(state));\n }, []);\n\n return currentState;\n },\n\n useCurrentContext<TSelected = any>(\n selector: (context: TContext) => TSelected,\n ): TSelected {\n const [currentContext, setCurrentContext] = useState<TSelected>(\n () => selector(context),\n );\n\n useEffect(() => {\n return this.subscribe(() =>\n setCurrentContext(selector(context)),\n );\n }, []);\n\n return currentContext;\n },\n\n getContext(): TContext {\n return context;\n },\n };\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,WAAW,gBAAgB;AAgC7B,SAAS,cACZ,aACA,SACA,gBACA,eAAe,QACO;AACtB,QAAM,YAAY,oBAAI,IAA2B;AACjD,MAAI,QAAQ;AACZ,MAAI,UAAU;AAEd,SAAO;AAAA,IACH,UAAU,UAA6C;AACnD,gBAAU,IAAI,QAAQ;AACtB,aAAO,MAAM,UAAU,OAAO,QAAQ;AAAA,IAC1C;AAAA,IAEA,UAAgB;AACZ,gBAAU,MAAM;AAChB,cAAQ;AACR,gBAAU;AAAA,IACd;AAAA,IAEA,OAAO,QAAgB,OAAmB;AACtC,YAAM,aAAa,YAAY,KAAK;AACpC,YAAM,YAAY,WAAW,GAAG,MAAM;AAEtC,UAAI,CAAC,WAAW;AACZ,gBAAQ,KAAK,sBAAsB,OAAO,MAAM;AAChD;AAAA,MACJ;AAEA,cAAQ;AAAA,QACJ,uBAAuB,KAAK,OAAO,SAAS,KAAK,MAAM,KAAK,KAAK;AAAA,MACrE;AAEA,YAAM,gBAAgB;AAEtB,UAAI,QAAQ,MAAM,GAAG;AACjB,kBAAU,QAAQ,MAAM,EAAE,KAAK,MAAM,SAAS,KAAK,KAAK;AAAA,MAC5D;AAEA,cAAQ;AACR,gBAAU;AAAA,QAAQ,CAAC,aACf,SAAS,OAAO,eAAe,OAAO;AAAA,MAC1C;AAAA,IACJ;AAAA,IAEA,IAAI,QAAyB;AACzB,YAAM,aAAa,YAAY,KAAK;AACpC,aAAO,CAAC,CAAC,WAAW,GAAG,MAAM;AAAA,IACjC;AAAA,IAEA,kBAA0B;AACtB,YAAM,CAAC,cAAc,eAAe,IAAI,SAAiB,KAAK;AAE9D,gBAAU,MAAM;AACZ,eAAO,KAAK,UAAU,MAAM,gBAAgB,KAAK,CAAC;AAAA,MACtD,GAAG,CAAC,CAAC;AAEL,aAAO;AAAA,IACX;AAAA,IAEA,kBACI,UACS;AACT,YAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,QACxC,MAAM,SAAS,OAAO;AAAA,MAC1B;AAEA,gBAAU,MAAM;AACZ,eAAO,KAAK;AAAA,UAAU,MAClB,kBAAkB,SAAS,OAAO,CAAC;AAAA,QACvC;AAAA,MACJ,GAAG,CAAC,CAAC;AAEL,aAAO;AAAA,IACX;AAAA,IAEA,aAAuB;AACnB,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/state/index.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/state/index.test.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { createMachine } from './';
|
|
3
|
-
// Mock timers for testing timeouts
|
|
4
|
-
vi.useFakeTimers();
|
|
5
|
-
describe('State Machine', () => {
|
|
6
|
-
// Test machine setup
|
|
7
|
-
const transitions = {
|
|
8
|
-
STATE1: { on: { NEXT: 'STATE2', RESET: 'STATE1' } },
|
|
9
|
-
STATE2: { on: { NEXT: 'STATE3', RESET: 'STATE1' } },
|
|
10
|
-
STATE3: { on: { NEXT: 'STATE1', RESET: 'STATE1' } },
|
|
11
|
-
};
|
|
12
|
-
const actions = {
|
|
13
|
-
NEXT: (context) => ({
|
|
14
|
-
count: context.count + 1,
|
|
15
|
-
}),
|
|
16
|
-
RESET: () => ({ count: 0 }),
|
|
17
|
-
};
|
|
18
|
-
let machine;
|
|
19
|
-
beforeEach(() => {
|
|
20
|
-
machine = createMachine(transitions, actions, { count: 0 }, 'STATE1');
|
|
21
|
-
});
|
|
22
|
-
it('should initialize with the correct context', () => {
|
|
23
|
-
expect(machine.getContext()).toEqual({ count: 0 });
|
|
24
|
-
});
|
|
25
|
-
it('should transition to the next state when action is triggered', () => {
|
|
26
|
-
let currentState = 'STATE1';
|
|
27
|
-
// Subscribe to state changes
|
|
28
|
-
const unsubscribe = machine['subscribe']((newState) => {
|
|
29
|
-
currentState = newState;
|
|
30
|
-
});
|
|
31
|
-
machine.action('NEXT');
|
|
32
|
-
expect(currentState).toBe('STATE2');
|
|
33
|
-
unsubscribe();
|
|
34
|
-
});
|
|
35
|
-
it('should update context when action is triggered', () => {
|
|
36
|
-
let count = 0;
|
|
37
|
-
// Subscribe to context changes
|
|
38
|
-
const unsubscribe = machine['subscribe']((_, __, context) => {
|
|
39
|
-
count = context.count;
|
|
40
|
-
});
|
|
41
|
-
machine.action('NEXT');
|
|
42
|
-
expect(count).toBe(1);
|
|
43
|
-
unsubscribe();
|
|
44
|
-
});
|
|
45
|
-
it('should check if an action is valid for the current state', () => {
|
|
46
|
-
expect(machine.can('NEXT')).toBe(true);
|
|
47
|
-
expect(machine.can('INVALID')).toBe(false);
|
|
48
|
-
machine.action('NEXT');
|
|
49
|
-
// Now in STATE2
|
|
50
|
-
expect(machine.can('NEXT')).toBe(true);
|
|
51
|
-
expect(machine.can('RESET')).toBe(true);
|
|
52
|
-
});
|
|
53
|
-
it('should warn when invalid transition is attempted', () => {
|
|
54
|
-
const consoleSpy = vi
|
|
55
|
-
.spyOn(console, 'warn')
|
|
56
|
-
.mockImplementation(() => { });
|
|
57
|
-
machine.action('INVALID_ACTION');
|
|
58
|
-
expect(consoleSpy).toHaveBeenCalledWith('Invalid transition', 'STATE1', 'INVALID_ACTION');
|
|
59
|
-
consoleSpy.mockRestore();
|
|
60
|
-
});
|
|
61
|
-
it('should reset to initial state when destroy is called', () => {
|
|
62
|
-
let currentState = 'STATE1';
|
|
63
|
-
let currentContext = { count: 0 };
|
|
64
|
-
const unsubscribe = machine['subscribe']((newState, _, context) => {
|
|
65
|
-
currentState = newState;
|
|
66
|
-
currentContext = context;
|
|
67
|
-
});
|
|
68
|
-
machine.action('NEXT');
|
|
69
|
-
machine.action('NEXT');
|
|
70
|
-
// Now in STATE3 with count 2
|
|
71
|
-
expect(currentState).toBe('STATE3');
|
|
72
|
-
expect(currentContext.count).toBe(2);
|
|
73
|
-
machine.destroy();
|
|
74
|
-
// Direct check with getContext() since destroy clears subscribers
|
|
75
|
-
expect(machine.getContext()).toEqual({ count: 0 });
|
|
76
|
-
unsubscribe();
|
|
77
|
-
});
|
|
78
|
-
it('should log transitions to console', () => {
|
|
79
|
-
const consoleSpy = vi
|
|
80
|
-
.spyOn(console, 'log')
|
|
81
|
-
.mockImplementation(() => { });
|
|
82
|
-
machine.action('NEXT', 'test-input');
|
|
83
|
-
expect(consoleSpy).toHaveBeenCalledWith('Machine transition: STATE1 -> STATE2 (NEXT, test-input)');
|
|
84
|
-
consoleSpy.mockRestore();
|
|
85
|
-
});
|
|
86
|
-
it('should notify subscribers when state changes', () => {
|
|
87
|
-
const mockListener = vi.fn();
|
|
88
|
-
const unsubscribe = machine['subscribe'](mockListener);
|
|
89
|
-
machine.action('NEXT');
|
|
90
|
-
expect(mockListener).toHaveBeenCalledWith('STATE2', 'STATE1', {
|
|
91
|
-
count: 1,
|
|
92
|
-
});
|
|
93
|
-
// Test unsubscribe
|
|
94
|
-
unsubscribe();
|
|
95
|
-
machine.action('NEXT');
|
|
96
|
-
// Should have been called only once despite two actions
|
|
97
|
-
expect(mockListener).toHaveBeenCalledTimes(1);
|
|
98
|
-
});
|
|
99
|
-
it('should handle context updates with nested objects', () => {
|
|
100
|
-
const complexMachine = createMachine({ STATE1: { on: { UPDATE: 'STATE1' } } }, {
|
|
101
|
-
UPDATE: (ctx) => ({
|
|
102
|
-
...ctx,
|
|
103
|
-
user: { ...ctx.user, age: ctx.user.age + 1 },
|
|
104
|
-
}),
|
|
105
|
-
}, { user: { name: 'Test', age: 30 }, settings: { theme: 'dark' } }, 'STATE1');
|
|
106
|
-
let name = '';
|
|
107
|
-
let age = 0;
|
|
108
|
-
let theme = '';
|
|
109
|
-
const unsubscribe = complexMachine['subscribe']((_, __, context) => {
|
|
110
|
-
name = context.user.name;
|
|
111
|
-
age = context.user.age;
|
|
112
|
-
theme = context.settings.theme;
|
|
113
|
-
});
|
|
114
|
-
// Initial values from initialization
|
|
115
|
-
expect(complexMachine.getContext()).toEqual({
|
|
116
|
-
user: { name: 'Test', age: 30 },
|
|
117
|
-
settings: { theme: 'dark' },
|
|
118
|
-
});
|
|
119
|
-
complexMachine.action('UPDATE');
|
|
120
|
-
// Only age should change
|
|
121
|
-
expect(name).toBe('Test');
|
|
122
|
-
expect(age).toBe(31);
|
|
123
|
-
expect(theme).toBe('dark');
|
|
124
|
-
unsubscribe();
|
|
125
|
-
});
|
|
126
|
-
});
|
package/store/index.js.map
DELETED
package/store/store.test.d.ts
DELETED
package/store/store.test.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { assert, assertType, test } from 'vitest';
|
|
2
|
-
import { createStore } from './store';
|
|
3
|
-
const initialState = {
|
|
4
|
-
todos: [],
|
|
5
|
-
completed: 0,
|
|
6
|
-
total: 0,
|
|
7
|
-
};
|
|
8
|
-
const uniqueId = () => Math.random().toString(36).substring(2, 15);
|
|
9
|
-
const reducer = (state, action) => {
|
|
10
|
-
if (action.type === 'ADD_TODO') {
|
|
11
|
-
return {
|
|
12
|
-
...state,
|
|
13
|
-
todos: [
|
|
14
|
-
...state.todos,
|
|
15
|
-
{ id: uniqueId(), text: action.value, completed: false },
|
|
16
|
-
],
|
|
17
|
-
total: state.total + 1,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (action.type === 'COMPLETE_TODO') {
|
|
21
|
-
return {
|
|
22
|
-
...state,
|
|
23
|
-
todos: state.todos.map((todo) => todo.id === action.value ? { ...todo, completed: true } : todo),
|
|
24
|
-
completed: state.completed + 1,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (action.type === 'UNCOMPLETE_TODO') {
|
|
28
|
-
return {
|
|
29
|
-
...state,
|
|
30
|
-
todos: state.todos.map((todo) => todo.id === action.value ? { ...todo, completed: false } : todo),
|
|
31
|
-
completed: state.completed - 1,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return state;
|
|
35
|
-
};
|
|
36
|
-
export function createStoreInstance() {
|
|
37
|
-
return createStore('todos', initialState, reducer, () => true, () => { });
|
|
38
|
-
}
|
|
39
|
-
test('createStore returns store', () => {
|
|
40
|
-
const store = createStoreInstance();
|
|
41
|
-
assertType(store);
|
|
42
|
-
});
|
|
43
|
-
test('store.getState returns state', () => {
|
|
44
|
-
const store = createStoreInstance();
|
|
45
|
-
assert.equal(store.getState(), initialState);
|
|
46
|
-
});
|
|
47
|
-
test('store.select returns state', () => {
|
|
48
|
-
const store = createStoreInstance();
|
|
49
|
-
const scope = store.select(({ total }) => total);
|
|
50
|
-
assert.equal(scope, initialState.total);
|
|
51
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { Alert } from '@/components/ui/alert';
|
|
3
|
-
declare const meta: {
|
|
4
|
-
title: string;
|
|
5
|
-
component: typeof Alert;
|
|
6
|
-
};
|
|
7
|
-
export default meta;
|
|
8
|
-
type Story = StoryObj<typeof meta>;
|
|
9
|
-
export declare const Default: Story;
|
|
10
|
-
export declare const Destructive: Story;
|
|
11
|
-
export declare const WithoutIcon: Story;
|
|
12
|
-
export declare const WithoutTitle: Story;
|
package/stories/Alert.stories.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
|
|
3
|
-
import { AlertTriangle, Info, Trash } from 'lucide-react';
|
|
4
|
-
const meta = {
|
|
5
|
-
title: 'WIP/Alert',
|
|
6
|
-
component: Alert,
|
|
7
|
-
};
|
|
8
|
-
export default meta;
|
|
9
|
-
export const Default = {
|
|
10
|
-
args: {
|
|
11
|
-
children: (_jsxs(_Fragment, { children: [_jsx(Info, {}), _jsx(AlertTitle, { children: "Heads up!" }), _jsx(AlertDescription, { children: "This is a default alert \u2014 check it out!" })] })),
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
export const Destructive = {
|
|
15
|
-
args: {
|
|
16
|
-
variant: 'destructive',
|
|
17
|
-
children: (_jsxs(_Fragment, { children: [_jsx(AlertTriangle, {}), _jsx(AlertTitle, { children: "Something went wrong" }), _jsx(AlertDescription, { children: "Your action could not be completed. Please try again." })] })),
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
export const WithoutIcon = {
|
|
21
|
-
args: {
|
|
22
|
-
children: (_jsxs(_Fragment, { children: [_jsx(AlertTitle, { children: "Notice" }), _jsx(AlertDescription, { children: "This alert renders without an icon and still aligns nicely." })] })),
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
export const WithoutTitle = {
|
|
26
|
-
args: {
|
|
27
|
-
children: (_jsxs(_Fragment, { children: [_jsx(Trash, {}), _jsx(AlertTitle, { children: "This Alert has a title and an icon. No description." })] })),
|
|
28
|
-
},
|
|
29
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { Button } from '@/components/ui/button';
|
|
3
|
-
declare const meta: {
|
|
4
|
-
title: string;
|
|
5
|
-
component: typeof Button;
|
|
6
|
-
};
|
|
7
|
-
export default meta;
|
|
8
|
-
type Story = StoryObj<typeof meta>;
|
|
9
|
-
export declare const Primary: Story;
|
|
10
|
-
export declare const Secondary: Story;
|
|
11
|
-
export declare const Destructive: Story;
|
|
12
|
-
export declare const Outline: Story;
|
|
13
|
-
export declare const Ghost: Story;
|
|
14
|
-
export declare const Link: Story;
|
|
15
|
-
export declare const Small: Story;
|
|
16
|
-
export declare const Large: Story;
|
|
17
|
-
export declare const Icon: Story;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from '@/components/ui/button';
|
|
3
|
-
import { Plus } from 'lucide-react';
|
|
4
|
-
const meta = {
|
|
5
|
-
title: 'UI/Button',
|
|
6
|
-
component: Button,
|
|
7
|
-
};
|
|
8
|
-
export default meta;
|
|
9
|
-
export const Primary = {
|
|
10
|
-
args: {
|
|
11
|
-
children: 'Button',
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
export const Secondary = {
|
|
15
|
-
args: {
|
|
16
|
-
variant: 'secondary',
|
|
17
|
-
children: 'Button',
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
export const Destructive = {
|
|
21
|
-
args: {
|
|
22
|
-
variant: 'destructive',
|
|
23
|
-
children: 'Button',
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
export const Outline = {
|
|
27
|
-
args: {
|
|
28
|
-
variant: 'outline',
|
|
29
|
-
children: 'Button',
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
export const Ghost = {
|
|
33
|
-
args: {
|
|
34
|
-
variant: 'ghost',
|
|
35
|
-
children: 'Button',
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
export const Link = {
|
|
39
|
-
args: {
|
|
40
|
-
variant: 'link',
|
|
41
|
-
children: 'Button',
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
export const Small = {
|
|
45
|
-
args: {
|
|
46
|
-
size: 'sm',
|
|
47
|
-
children: 'Button',
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
export const Large = {
|
|
51
|
-
args: {
|
|
52
|
-
size: 'lg',
|
|
53
|
-
children: 'Button',
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
export const Icon = {
|
|
57
|
-
args: {
|
|
58
|
-
size: 'icon',
|
|
59
|
-
children: _jsx(Plus, {}),
|
|
60
|
-
},
|
|
61
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { Checkbox } from '@/components/ui/checkbox';
|
|
3
|
-
declare const meta: {
|
|
4
|
-
title: string;
|
|
5
|
-
component: typeof Checkbox;
|
|
6
|
-
};
|
|
7
|
-
export default meta;
|
|
8
|
-
type Story = StoryObj<typeof meta>;
|
|
9
|
-
export declare const Default: Story;
|
|
10
|
-
export declare const Checked: Story;
|
|
11
|
-
export declare const Disabled: Story;
|
|
12
|
-
export declare const DisabledChecked: Story;
|
|
13
|
-
export declare const WithLabel: Story;
|
|
14
|
-
export declare const Controlled: Story;
|