@flexkit/studio 0.0.13 → 0.0.14

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.
Files changed (53) hide show
  1. package/dist/asset-65455B7V.js +2 -0
  2. package/dist/{asset-2IWHRTPZ.js.map → asset-65455B7V.js.map} +1 -1
  3. package/dist/boolean-3ZHXDPHB.js +2 -0
  4. package/dist/{boolean-OC4EQEDW.js.map → boolean-3ZHXDPHB.js.map} +1 -1
  5. package/dist/chunk-7DMOGZE6.js +2 -0
  6. package/dist/chunk-7DMOGZE6.js.map +1 -0
  7. package/dist/chunk-NJN7EGGK.js +2 -0
  8. package/dist/chunk-NJN7EGGK.js.map +1 -0
  9. package/dist/datetime-XX4YBITU.js +2 -0
  10. package/dist/{datetime-E36AZJZE.js.map → datetime-XX4YBITU.js.map} +1 -1
  11. package/dist/editor-ZLTDOUPT.js +2 -0
  12. package/dist/{editor-A6ZBSVFX.js.map → editor-ZLTDOUPT.js.map} +1 -1
  13. package/dist/index.js +92 -92
  14. package/dist/index.js.map +1 -1
  15. package/dist/logo-LB22KTDD.js +3 -0
  16. package/dist/{logo-XE2KYB64.js.map → logo-LB22KTDD.js.map} +1 -1
  17. package/dist/project-selector-4G4WL2XQ.js +2 -0
  18. package/dist/{project-selector-EC52GCO3.js.map → project-selector-4G4WL2XQ.js.map} +1 -1
  19. package/dist/search-JJI6BIRU.js +2 -0
  20. package/dist/{search-ZSMT34RQ.js.map → search-JJI6BIRU.js.map} +1 -1
  21. package/dist/switch-FU7XZ34K.js +2 -0
  22. package/dist/{switch-RTOPEJUM.js.map → switch-FU7XZ34K.js.map} +1 -1
  23. package/dist/text-DFG6LLN6.js +2 -0
  24. package/dist/{text-4V63FVFM.js.map → text-DFG6LLN6.js.map} +1 -1
  25. package/dist/text-LNFBPXBT.js +2 -0
  26. package/dist/{text-6SMN3R4Y.js.map → text-LNFBPXBT.js.map} +1 -1
  27. package/dist/textarea-XFHA5IEI.js +2 -0
  28. package/dist/{textarea-EMZIRBVZ.js.map → textarea-XFHA5IEI.js.map} +1 -1
  29. package/dist/ui.js +1 -1
  30. package/dist/ui.js.map +1 -1
  31. package/dist/user-nav-5LW5USDZ.js +2 -0
  32. package/dist/{user-nav-ORQ6W5W3.js.map → user-nav-5LW5USDZ.js.map} +1 -1
  33. package/package.json +1 -1
  34. package/dist/asset-2IWHRTPZ.js +0 -2
  35. package/dist/boolean-OC4EQEDW.js +0 -2
  36. package/dist/chunk-J63QWF2X.js +0 -14
  37. package/dist/chunk-J63QWF2X.js.map +0 -1
  38. package/dist/chunk-P745RJ7B.js +0 -2
  39. package/dist/chunk-P745RJ7B.js.map +0 -1
  40. package/dist/chunk-UKRYV5CE.js +0 -2
  41. package/dist/chunk-UKRYV5CE.js.map +0 -1
  42. package/dist/chunk-XSNFFA5W.js +0 -2
  43. package/dist/chunk-XSNFFA5W.js.map +0 -1
  44. package/dist/datetime-E36AZJZE.js +0 -2
  45. package/dist/editor-A6ZBSVFX.js +0 -2
  46. package/dist/logo-XE2KYB64.js +0 -3
  47. package/dist/project-selector-EC52GCO3.js +0 -2
  48. package/dist/search-ZSMT34RQ.js +0 -2
  49. package/dist/switch-RTOPEJUM.js +0 -2
  50. package/dist/text-4V63FVFM.js +0 -2
  51. package/dist/text-6SMN3R4Y.js +0 -2
  52. package/dist/textarea-EMZIRBVZ.js +0 -2
  53. package/dist/user-nav-ORQ6W5W3.js +0 -2
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/primitives/resizable.tsx","../src/ui/primitives/sheet.tsx","../src/ui/hooks/use-mobile.tsx","../src/ui/primitives/sidebar.tsx","../src/ui/components/sidebar.tsx","../src/ui/primitives/tabs.tsx"],"names":["ResizablePanelGroup","className","props","jsx","cn","ResizablePanel","ResizableHandle","withHandle","GripVertical","Sheet","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","x","ref","sheetVariants","cva","SheetContent","side","children","jsxs","X","SheetHeader","SheetFooter","SheetTitle","SheetDescription","MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","I","mql","onChange","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","style","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","TooltipProvider","Sidebar","variant","collapsible","SidebarTrigger","onClick","Button","MenuIcon","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","iconList","Icons","iconName","fuse","Fuse","menuGroups","schema","visibleItems","item","itemsByGroup","groupBy","g","nonEmptyGroups","menuGroup","group","entity","capitalize","NavLink","createElement","getBestMatchingIcon","str","withSpaces","concept","result","Tabs","TabsList","O","TabsTrigger","TabsContent"],"mappings":"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","file":"ui.js","sourcesContent":["import { GripVertical } from 'lucide-react';\nimport * as ResizablePrimitive from 'react-resizable-panels';\nimport { cn } from 'src/ui/lib/utils';\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>): JSX.Element {\n return (\n <ResizablePrimitive.PanelGroup\n className={cn('fk-flex fk-h-full fk-w-full data-[panel-group-direction=vertical]:fk-flex-col', className)}\n {...props}\n />\n );\n}\n\nconst ResizablePanel = ResizablePrimitive.Panel;\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean;\n}): JSX.Element {\n return (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n 'fk-relative fk-flex fk-w-px fk-items-center fk-justify-center fk-bg-border after:fk-absolute after:fk-inset-y-0 after:fk-left-1/2 after:fk-w-1 after:fk--translate-x-1/2 focus-visible:fk-outline-none focus-visible:fk-ring-1 focus-visible:fk-ring-ring focus-visible:fk-ring-offset-1 data-[panel-group-direction=vertical]:fk-h-px data-[panel-group-direction=vertical]:fk-w-full data-[panel-group-direction=vertical]:after:fk-left-0 data-[panel-group-direction=vertical]:after:fk-h-1 data-[panel-group-direction=vertical]:after:fk-w-full data-[panel-group-direction=vertical]:after:fk--translate-y-1/2 data-[panel-group-direction=vertical]:after:fk-translate-x-0 [&[data-panel-group-direction=vertical]>div]:fk-rotate-90',\n className\n )}\n {...props}\n >\n {Boolean(withHandle) && (\n <div className=\"fk-z-10 fk-flex fk-h-4 fk-w-3 fk-items-center fk-justify-center fk-rounded-sm fk-border fk-bg-border\">\n <GripVertical className=\"fk-h-2.5 fk-w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","'use client';\n\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from 'src/ui/lib/utils';\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fk-fixed fk-inset-0 fk-z-50 fk-bg-overlay/75 fk-backdrop-blur-[1px] data-[state=open]:fk-animate-in data-[state=closed]:fk-animate-out data-[state=closed]:fk-fade-out-0 data-[state=open]:fk-fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n 'fk-fixed fk-z-50 fk-gap-4 fk-bg-background fk-p-6 fk-shadow-lg fk-transition fk-ease-in-out data-[state=open]:fk-animate-in data-[state=closed]:fk-animate-out data-[state=closed]:fk-duration-300 data-[state=open]:fk-duration-500',\n {\n variants: {\n side: {\n top: 'fk-inset-x-0 fk-top-0 fk-border-b data-[state=closed]:fk-slide-out-to-top data-[state=open]:fk-slide-in-from-top',\n bottom:\n 'fk-inset-x-0 fk-bottom-0 fk-border-t data-[state=closed]:fk-slide-out-to-bottom data-[state=open]:fk-slide-in-from-bottom',\n left: 'fk-inset-y-0 fk-left-0 fk-h-full fk-w-3/4 fk-border-r fk-border-r-sidebar-border data-[state=closed]:fk-slide-out-to-left data-[state=open]:fk-slide-in-from-left sm:fk-max-w-sm',\n right:\n 'fk-inset-y-0 fk-right-0 fk-h-full fk-w-3/4 fk- fk-border-l data-[state=closed]:fk-slide-out-to-right data-[state=open]:fk-slide-in-from-right sm:fk-max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\n ({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content className={cn(sheetVariants({ side }), className)} ref={ref} {...props}>\n {children}\n <SheetPrimitive.Close className=\"fk-absolute fk-right-4 fk-top-4 fk-rounded-sm fk-opacity-70 fk-ring-offset-background fk-transition-opacity hover:fk-opacity-100 focus:fk-outline-none focus:fk-ring-2 focus:fk-ring-ring focus:fk-ring-offset-2 disabled:fk-pointer-events-none data-[state=open]:fk-bg-secondary\">\n <X className=\"fk-h-4 fk-w-4\" />\n <span className=\"fk-sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n);\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nfunction SheetHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX.Element {\n return (\n <div className={cn('fk-flex fk-flex-col fk-space-y-2 fk-text-center sm:fk-text-left', className)} {...props} />\n );\n}\nSheetHeader.displayName = 'SheetHeader';\n\nfunction SheetFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX.Element {\n return (\n <div\n className={cn('fk-flex fk-flex-col-reverse sm:fk-flex-row sm:fk-justify-end sm:fk-space-x-2', className)}\n {...props}\n />\n );\n}\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n className={cn('fk-text-lg fk-font-semibold fk-text-foreground', className)}\n ref={ref}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description className={cn('fk-text-sm fk-text-muted-foreground', className)} ref={ref} {...props} />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft as PanelLeftIcon, Menu as MenuIcon } from 'lucide-react';\nimport { useIsMobile } from '../hooks/use-mobile';\nimport { cn } from '../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'flexkit:sidebar:state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '2rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\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<SidebarContext | 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\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\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\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 ? setOpenMobile((open) => !open) : 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 (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\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 'fk-group/sidebar-wrapper fk-flex fk-w-full has-[[data-variant=inset]]:fk-bg-sidebar fk-overflow-hidden',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'fk-flex fk-h-full fk-w-[--sidebar-width] fk-flex-col fk-bg-sidebar fk-text-sidebar-foreground',\n className\n )}\n ref={ref}\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-mobile=\"true\"\n className=\"fk-w-[--sidebar-width] fk-bg-sidebar fk-p-0 fk-text-sidebar-foreground [&>button]:fk-hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"fk-flex fk-h-full fk-w-full fk-flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"fk-relative fk-group fk-peer fk-hidden md:fk-block fk-text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'fk-duration-200 fk-relative fk-h-svh fk-w-[--sidebar-width] fk-bg-transparent fk-transition-[width] fk-ease-linear',\n 'group-data-[collapsible=offcanvas]:fk-w-0',\n 'group-data-[side=right]:fk-rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:fk-w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:fk-w-[--sidebar-width-icon]'\n )}\n />\n <div\n className={cn(\n 'fk-duration-200 fk-absolute fk-inset-y-0 fk-z-10 fk-hidden fk-h-[calc(100svh-3.5rem)] fk-w-[--sidebar-width] fk-transition-[left,right,width] fk-ease-linear md:fk-flex',\n side === 'left'\n ? 'fk-left-0 group-data-[collapsible=offcanvas]:fk-left-[calc(var(--sidebar-width)*-1)]'\n : 'fk-right-0 group-data-[collapsible=offcanvas]:fk-right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:fk-w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)] group-data-[side=left]:fk-border-r group-data-[side=right]:fk-border-l'\n : 'group-data-[collapsible=icon]:fk-w-[--sidebar-width-icon] group-data-[side=left]:fk-border-r group-data-[side=right]:fk-border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"fk-flex fk-h-full fk-w-full fk-flex-col fk-bg-sidebar group-data-[variant=floating]:fk-rounded-lg group-data-[variant=floating]:fk-border group-data-[variant=floating]:fk-border-sidebar-border group-data-[variant=floating]:fk-shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { isMobile, toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('fk-h-7 fk-w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n {isMobile ? <MenuIcon /> : <PanelLeftIcon />}\n <span className=\"fk-sr-only\">Toggle Sidebar</span>\n </Button>\n );\n }\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'fk-absolute fk-inset-y-0 fk-z-20 fk-hidden fk-w-4 fk--translate-x-1/2 fk-transition-all fk-ease-linear after:fk-absolute after:fk-inset-y-0 after:fk-left-1/2 after:fk-w-[2px] after:fk-bg-sidebar-border hover:after:fk-bg-muted-foreground group-data-[side=left]:fk--right-4 group-data-[side=right]:fk-left-0 sm:fk-flex',\n '[[data-side=left]_&]:fk-cursor-w-resize [[data-side=right]_&]:fk-cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:fk-cursor-e-resize [[data-side=right][data-state=collapsed]_&]:fk-cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:fk-translate-x-0 group-data-[collapsible=offcanvas]:after:fk-left-full group-data-[collapsible=offcanvas]:hover:fk-bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:fk--right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:fk--left-2',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'fk-relative fk-flex fk-flex-1 fk-flex-col fk-bg-background fk-overflow-hidden',\n 'peer-data-[variant=inset]:fk-h-[calc(100svh-4rem)]',\n className\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'fk-h-8 fk-w-full fk-bg-background fk-shadow-none focus-visible:fk-ring-2 focus-visible:fk-ring-sidebar-ring',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div ref={ref} data-sidebar=\"header\" className={cn('fk-flex fk-flex-col fk-gap-2 fk-p-2', className)} {...props} />\n );\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div ref={ref} data-sidebar=\"footer\" className={cn('fk-flex fk-flex-col fk-gap-2 fk-p-2', className)} {...props} />\n );\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('fk-mx-2 fk-w-auto fk-bg-sidebar-border', className)}\n {...props}\n />\n );\n }\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'fk-flex fk-min-h-0 fk-flex-1 fk-flex-col fk-overflow-auto group-data-[collapsible=icon]:fk-overflow-hidden',\n className\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('fk-relative fk-flex fk-w-full fk-min-w-0 fk-flex-col fk-p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'fk-duration-200 fk-flex fk-h-8 fk-shrink-0 fk-items-center fk-rounded-md fk-px-2 fk-text-xs fk-font-medium fk-text-sidebar-foreground/70 fk-outline-none fk-ring-sidebar-ring fk-transition-[margin,opa] fk-ease-linear focus-visible:fk-ring-2 [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n 'group-data-[collapsible=icon]:fk--mt-8 group-data-[collapsible=icon]:fk-opacity-0',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'fk-absolute fk-right-3 fk-top-3.5 fk-flex fk-aspect-square fk-w-5 fk-items-center fk-justify-center fk-rounded-md fk-p-0 fk-text-sidebar-foreground fk-outline-none fk-ring-sidebar-ring fk-transition-transform hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:fk-absolute after:fk--inset-2 after:md:fk-hidden',\n 'group-data-[collapsible=icon]:fk-hidden',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('fk-w-full fk-text-sm', className)} {...props} />\n )\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('fk-flex fk-w-full fk-min-w-0 fk-flex-col fk-gap-1 fk-z-10', className)}\n {...props}\n />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('fk-group/menu-item fk-relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button fk-flex fk-w-full fk-items-center fk-gap-2 fk-overflow-hidden fk-rounded-md fk-p-2 fk-text-left fk-text-sm fk-outline-none fk-ring-sidebar-ring fk-transition-[width,height,padding] hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 active:fk-bg-sidebar-accent active:fk-text-sidebar-accent-foreground disabled:fk-pointer-events-none disabled:fk-opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:fk-pr-8 aria-disabled:fk-pointer-events-none aria-disabled:fk-opacity-50 data-[active=true]:fk-bg-sidebar-accent data-[active=true]:fk-font-medium data-[active=true]:fk-text-sidebar-accent-foreground data-[state=open]:hover:fk-bg-sidebar-accent data-[state=open]:hover:fk-text-sidebar-accent-foreground group-data-[collapsible=icon]:fk-!size-8 group-data-[collapsible=icon]:fk-!p-2 [&>span:last-child]:fk-truncate [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground',\n outline:\n 'fk-bg-background fk-shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground hover:fk-shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'fk-h-8 fk-text-sm',\n sm: 'fk-h-7 fk-text-xs',\n lg: 'fk-h-12 fk-text-sm group-data-[collapsible=icon]:fk-!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\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 side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'fk-absolute fk-right-1 fk-top-1.5 fk-flex fk-aspect-square fk-w-5 fk-items-center fk-justify-center fk-rounded-md fk-p-0 fk-text-sidebar-foreground fk-outline-none fk-ring-sidebar-ring fk-transition-transform hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 peer-hover/menu-button:fk-text-sidebar-accent-foreground [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:fk-absolute after:fk--inset-2 after:md:fk-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]:fk-hidden',\n showOnHover &&\n 'group-focus-within/menu-item:fk-opacity-100 group-hover/menu-item:fk-opacity-100 data-[state=open]:fk-opacity-100 peer-data-[active=true]/menu-button:fk-text-sidebar-accent-foreground md:fk-opacity-0',\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'fk-absolute fk-right-1 fk-flex fk-h-5 fk-min-w-5 fk-items-center fk-justify-center fk-rounded-md fk-px-1 fk-text-xs fk-font-medium fk-tabular-nums fk-text-sidebar-foreground fk-select-none fk-pointer-events-none',\n 'peer-hover/menu-button:fk-text-sidebar-accent-foreground peer-data-[active=true]/menu-button:fk-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]:fk-hidden',\n className\n )}\n {...props}\n />\n )\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\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 ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('fk-rounded-md fk-h-8 fk-flex fk-gap-2 fk-px-2 fk-items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"fk-size-4 fk-rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"fk-h-4 fk-flex-1 fk-max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'fk-mx-3.5 fk-flex fk-min-w-0 fk-translate-x-px fk-flex-col fk-gap-1 fk-border-l fk-border-sidebar-border fk-px-2.5 fk-py-0.5',\n 'group-data-[collapsible=icon]:fk-hidden',\n className\n )}\n {...props}\n />\n )\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'fk-flex fk-h-7 fk-min-w-0 fk--translate-x-px fk-items-center fk-gap-2 fk-overflow-hidden fk-rounded-md fk-px-2 fk-text-sidebar-foreground fk-outline-none fk-ring-sidebar-ring hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 active:fk-bg-sidebar-accent active:fk-text-sidebar-accent-foreground disabled:fk-pointer-events-none disabled:fk-opacity-50 aria-disabled:fk-pointer-events-none aria-disabled:fk-opacity-50 [&>span:last-child]:fk-truncate [&>svg]:fk-size-4 [&>svg]:fk-shrink-0 [&>svg]:fk-text-sidebar-accent-foreground',\n 'data-[active=true]:fk-bg-sidebar-accent data-[active=true]:fk-text-sidebar-accent-foreground',\n size === 'sm' && 'fk-text-xs',\n size === 'md' && 'fk-text-sm',\n 'group-data-[collapsible=icon]:fk-hidden',\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\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","import { createElement } from 'react';\nimport * as Icons from 'lucide-react';\nimport Fuse from 'fuse.js';\nimport { NavLink } from 'react-router-dom';\nimport {\n Sidebar as SidebarPrimitive,\n SidebarContent,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarRail,\n} from '../primitives/sidebar';\nimport type { SingleProject } from '../../core/config/types';\nimport { groupBy } from 'ramda';\n\ninterface SidebarProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n menuGroups?: SingleProject['menuGroups'];\n schema: SingleProject['schema'];\n}\n\ntype VisibleMenuSchema = Array<\n Omit<SingleProject['schema'][number], 'menu'> & {\n menu?: Exclude<SingleProject['schema'][number]['menu'], { hidden: true }>;\n }\n>;\n\nconst iconList = Object.keys(Icons).map((iconName) => ({\n name: iconName,\n icon: Icons[iconName as keyof typeof Icons],\n}));\n\nconst fuse = new Fuse(iconList, {\n keys: ['name'],\n threshold: 0.5,\n});\n\nexport function Sidebar({ className, menuGroups, schema }: SidebarProps): JSX.Element {\n // Filter out hidden items first, then group them\n const visibleItems = schema.filter((item) => !(item.menu && 'hidden' in item.menu)) as VisibleMenuSchema;\n const itemsByGroup = groupBy(\n (item) => (item.menu?.group && menuGroups?.find((g) => g.name === item.menu?.group)?.name) || 'ungrouped',\n visibleItems\n );\n const nonEmptyGroups = menuGroups?.filter((menuGroup) => itemsByGroup[menuGroup.name]?.length);\n\n return (\n <SidebarPrimitive className={className} collapsible=\"icon\" variant=\"inset\">\n <SidebarContent>\n {nonEmptyGroups?.map((group) => (\n <SidebarGroup key={group.name}>\n <SidebarGroupLabel>{group.title}</SidebarGroupLabel>\n <SidebarMenu>\n {itemsByGroup[group.name]?.map((entity) => (\n <SidebarMenuItem key={entity.plural}>\n <SidebarMenuButton\n asChild\n isActive={location.pathname.includes(`/list/${entity.plural}`)}\n tooltip={capitalize(entity.menu?.label ?? entity.plural)}\n >\n <NavLink to={`list/${entity.plural}`}>\n {entity.menu?.icon ??\n createElement(Icons[getBestMatchingIcon(entity.name)] as React.ComponentType<any>, {\n className: 'fk-h-4 fk-w-4 fk-mr-2',\n strokeWidth: 2,\n })}\n <span>{capitalize(entity.menu?.label ?? entity.plural)}</span>\n </NavLink>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n ))}\n <SidebarGroup>\n <SidebarMenu>\n {itemsByGroup['ungrouped']?.map((entity) => (\n <SidebarMenuItem key={entity.plural}>\n <SidebarMenuButton\n asChild\n isActive={location.pathname.includes(`/list/${entity.plural}`)}\n tooltip={capitalize(entity.menu?.label ?? entity.plural)}\n >\n <NavLink to={`list/${entity.plural}`}>\n {createElement(Icons[getBestMatchingIcon(entity.name)] as React.ComponentType<any>, {\n className: 'fk-h-4 fk-w-4 fk-mr-2',\n strokeWidth: 2,\n })}\n <span>{capitalize(entity.menu?.label ?? entity.plural)}</span>\n </NavLink>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n </SidebarContent>\n <SidebarRail />\n </SidebarPrimitive>\n );\n}\n\nfunction capitalize(str: string): string {\n // Add space before capital letters and capitalize first letter\n const withSpaces = str.replace(/([A-Z])/g, ' $1');\n // Capitalize first letter and trim any leading space\n return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1).trim();\n}\n\n/**\n * Tries to get the best matching icon for an entity name using fuzy search\n */\nfunction getBestMatchingIcon(concept: string): keyof typeof Icons {\n const result = fuse.search(concept);\n\n if (result.length > 0) {\n return result[0].item.name as keyof typeof Icons;\n }\n\n return 'Dock' as keyof typeof Icons;\n}\n","'use client';\n\nimport * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { cn } from 'src/ui/lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n className={cn(\n 'fk-inline-flex fk-h-10 fk-items-center fk-justify-center fk-rounded-md fk-bg-muted fk-p-1 fk-text-muted-foreground',\n className\n )}\n ref={ref}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n className={cn(\n 'fk-inline-flex fk-items-center fk-justify-center fk-whitespace-nowrap fk-rounded-sm fk-px-3 fk-py-1.5 fk-text-sm fk-font-medium fk-ring-offset-background fk-transition-all focus-visible:fk-outline-none focus-visible:fk-ring-2 focus-visible:fk-ring-ring focus-visible:fk-ring-offset-2 disabled:fk-pointer-events-none disabled:fk-opacity-50 data-[state=active]:fk-bg-background data-[state=active]:fk-text-foreground data-[state=active]:fk-shadow-sm',\n className\n )}\n ref={ref}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n className={cn(\n 'fk-mt-2 fk-ring-offset-background focus-visible:fk-outline-none focus-visible:fk-ring-2 focus-visible:fk-ring-ring focus-visible:fk-ring-offset-2',\n className\n )}\n ref={ref}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"]}
1
+ {"version":3,"sources":["../src/ui/primitives/resizable.tsx","../src/ui/primitives/sheet.tsx","../src/ui/hooks/use-mobile.tsx","../src/ui/primitives/sidebar.tsx","../src/ui/components/sidebar.tsx","../src/ui/primitives/tabs.tsx"],"names":["ResizablePanelGroup","className","props","jsx","cn","ResizablePanel","ResizableHandle","withHandle","GripVertical","Sheet","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","x","ref","sheetVariants","cva","SheetContent","side","children","jsxs","X","SheetHeader","SheetFooter","SheetTitle","SheetDescription","MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","I","mql","onChange","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","style","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","TooltipProvider","Sidebar","variant","collapsible","SidebarTrigger","onClick","Button","MenuIcon","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","iconList","Icons","iconName","fuse","Fuse","menuGroups","schema","visibleItems","item","itemsByGroup","groupBy","g","nonEmptyGroups","menuGroup","group","entity","capitalize","NavLink","createElement","getBestMatchingIcon","str","withSpaces","concept","result","Tabs","TabsList","O","TabsTrigger","TabsContent"],"mappings":"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","file":"ui.js","sourcesContent":["import { GripVertical } from 'lucide-react';\nimport * as ResizablePrimitive from 'react-resizable-panels';\nimport { cn } from 'src/ui/lib/utils';\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>): JSX.Element {\n return (\n <ResizablePrimitive.PanelGroup\n className={cn('fk-flex fk-h-full fk-w-full data-[panel-group-direction=vertical]:fk-flex-col', className)}\n {...props}\n />\n );\n}\n\nconst ResizablePanel = ResizablePrimitive.Panel;\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean;\n}): JSX.Element {\n return (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n 'fk-relative fk-flex fk-w-px fk-items-center fk-justify-center fk-bg-border after:fk-absolute after:fk-inset-y-0 after:fk-left-1/2 after:fk-w-1 after:fk--translate-x-1/2 focus-visible:fk-outline-none focus-visible:fk-ring-1 focus-visible:fk-ring-ring focus-visible:fk-ring-offset-1 data-[panel-group-direction=vertical]:fk-h-px data-[panel-group-direction=vertical]:fk-w-full data-[panel-group-direction=vertical]:after:fk-left-0 data-[panel-group-direction=vertical]:after:fk-h-1 data-[panel-group-direction=vertical]:after:fk-w-full data-[panel-group-direction=vertical]:after:fk--translate-y-1/2 data-[panel-group-direction=vertical]:after:fk-translate-x-0 [&[data-panel-group-direction=vertical]>div]:fk-rotate-90',\n className\n )}\n {...props}\n >\n {Boolean(withHandle) && (\n <div className=\"fk-z-10 fk-flex fk-h-4 fk-w-3 fk-items-center fk-justify-center fk-rounded-sm fk-border fk-bg-border\">\n <GripVertical className=\"fk-h-2.5 fk-w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","'use client';\n\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from 'src/ui/lib/utils';\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fk-fixed fk-inset-0 fk-z-50 fk-bg-overlay/75 fk-backdrop-blur-[1px] data-[state=open]:fk-animate-in data-[state=closed]:fk-animate-out data-[state=closed]:fk-fade-out-0 data-[state=open]:fk-fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n 'fk-fixed fk-z-50 fk-gap-4 fk-bg-background fk-p-6 fk-shadow-lg fk-transition fk-ease-in-out data-[state=open]:fk-animate-in data-[state=closed]:fk-animate-out data-[state=closed]:fk-duration-300 data-[state=open]:fk-duration-500',\n {\n variants: {\n side: {\n top: 'fk-inset-x-0 fk-top-0 fk-border-b data-[state=closed]:fk-slide-out-to-top data-[state=open]:fk-slide-in-from-top',\n bottom:\n 'fk-inset-x-0 fk-bottom-0 fk-border-t data-[state=closed]:fk-slide-out-to-bottom data-[state=open]:fk-slide-in-from-bottom',\n left: 'fk-inset-y-0 fk-left-0 fk-h-full fk-w-3/4 fk-border-r fk-border-r-sidebar-border data-[state=closed]:fk-slide-out-to-left data-[state=open]:fk-slide-in-from-left sm:fk-max-w-sm',\n right:\n 'fk-inset-y-0 fk-right-0 fk-h-full fk-w-3/4 fk- fk-border-l data-[state=closed]:fk-slide-out-to-right data-[state=open]:fk-slide-in-from-right sm:fk-max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\n ({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content className={cn(sheetVariants({ side }), className)} ref={ref} {...props}>\n {children}\n <SheetPrimitive.Close className=\"fk-absolute fk-right-4 fk-top-4 fk-rounded-sm fk-opacity-70 fk-ring-offset-background fk-transition-opacity hover:fk-opacity-100 focus:fk-outline-none focus:fk-ring-2 focus:fk-ring-ring focus:fk-ring-offset-2 disabled:fk-pointer-events-none data-[state=open]:fk-bg-secondary\">\n <X className=\"fk-h-4 fk-w-4\" />\n <span className=\"fk-sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n);\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nfunction SheetHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX.Element {\n return (\n <div className={cn('fk-flex fk-flex-col fk-space-y-2 fk-text-center sm:fk-text-left', className)} {...props} />\n );\n}\nSheetHeader.displayName = 'SheetHeader';\n\nfunction SheetFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX.Element {\n return (\n <div\n className={cn('fk-flex fk-flex-col-reverse sm:fk-flex-row sm:fk-justify-end sm:fk-space-x-2', className)}\n {...props}\n />\n );\n}\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n className={cn('fk-text-lg fk-font-semibold fk-text-foreground', className)}\n ref={ref}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description className={cn('fk-text-sm fk-text-muted-foreground', className)} ref={ref} {...props} />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft as PanelLeftIcon, Menu as MenuIcon } from 'lucide-react';\nimport { useIsMobile } from '../hooks/use-mobile';\nimport { cn } from '../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'flexkit:sidebar:state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '2rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\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<SidebarContext | 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\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\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\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 ? setOpenMobile((open) => !open) : 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 (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\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 'fk-group/sidebar-wrapper fk-flex fk-w-full has-[[data-variant=inset]]:fk-bg-sidebar fk-overflow-hidden',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'fk-flex fk-h-full fk-w-[--sidebar-width] fk-flex-col fk-bg-sidebar fk-text-sidebar-foreground',\n className\n )}\n ref={ref}\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-mobile=\"true\"\n className=\"fk-w-[--sidebar-width] fk-bg-sidebar fk-p-0 fk-text-sidebar-foreground [&>button]:fk-hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"fk-flex fk-h-full fk-w-full fk-flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"fk-relative fk-group fk-peer fk-hidden md:fk-block fk-text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'fk-duration-200 fk-relative fk-h-svh fk-w-[--sidebar-width] fk-bg-transparent fk-transition-[width] fk-ease-linear',\n 'group-data-[collapsible=offcanvas]:fk-w-0',\n 'group-data-[side=right]:fk-rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:fk-w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:fk-w-[--sidebar-width-icon]'\n )}\n />\n <div\n className={cn(\n 'fk-duration-200 fk-absolute fk-inset-y-0 fk-z-10 fk-hidden fk-h-[calc(100svh-3.5rem)] fk-w-[--sidebar-width] fk-transition-[left,right,width] fk-ease-linear md:fk-flex',\n side === 'left'\n ? 'fk-left-0 group-data-[collapsible=offcanvas]:fk-left-[calc(var(--sidebar-width)*-1)]'\n : 'fk-right-0 group-data-[collapsible=offcanvas]:fk-right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:fk-w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)] group-data-[side=left]:fk-border-r group-data-[side=right]:fk-border-l'\n : 'group-data-[collapsible=icon]:fk-w-[--sidebar-width-icon] group-data-[side=left]:fk-border-r group-data-[side=right]:fk-border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"fk-flex fk-h-full fk-w-full fk-flex-col fk-bg-sidebar group-data-[variant=floating]:fk-rounded-lg group-data-[variant=floating]:fk-border group-data-[variant=floating]:fk-border-sidebar-border group-data-[variant=floating]:fk-shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { isMobile, toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('fk-h-7 fk-w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n {isMobile ? <MenuIcon /> : <PanelLeftIcon />}\n <span className=\"fk-sr-only\">Toggle Sidebar</span>\n </Button>\n );\n }\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'fk-absolute fk-inset-y-0 fk-z-20 fk-hidden fk-w-4 fk--translate-x-1/2 fk-transition-all fk-ease-linear after:fk-absolute after:fk-inset-y-0 after:fk-left-1/2 after:fk-w-[2px] after:fk-bg-sidebar-border hover:after:fk-bg-muted-foreground group-data-[side=left]:fk--right-4 group-data-[side=right]:fk-left-0 sm:fk-flex',\n '[[data-side=left]_&]:fk-cursor-w-resize [[data-side=right]_&]:fk-cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:fk-cursor-e-resize [[data-side=right][data-state=collapsed]_&]:fk-cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:fk-translate-x-0 group-data-[collapsible=offcanvas]:after:fk-left-full group-data-[collapsible=offcanvas]:hover:fk-bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:fk--right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:fk--left-2',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'fk-relative fk-flex fk-flex-1 fk-flex-col fk-bg-background fk-overflow-hidden',\n 'peer-data-[variant=inset]:fk-h-[calc(100svh-4rem)]',\n className\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'fk-h-8 fk-w-full fk-bg-background fk-shadow-none focus-visible:fk-ring-2 focus-visible:fk-ring-sidebar-ring',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div ref={ref} data-sidebar=\"header\" className={cn('fk-flex fk-flex-col fk-gap-2 fk-p-2', className)} {...props} />\n );\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div ref={ref} data-sidebar=\"footer\" className={cn('fk-flex fk-flex-col fk-gap-2 fk-p-2', className)} {...props} />\n );\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('fk-mx-2 fk-w-auto fk-bg-sidebar-border', className)}\n {...props}\n />\n );\n }\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'fk-flex fk-min-h-0 fk-flex-1 fk-flex-col fk-overflow-auto group-data-[collapsible=icon]:fk-overflow-hidden',\n className\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('fk-relative fk-flex fk-w-full fk-min-w-0 fk-flex-col fk-p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'fk-duration-200 fk-flex fk-h-8 fk-shrink-0 fk-items-center fk-rounded-md fk-px-2 fk-text-xs fk-font-medium fk-text-sidebar-foreground/70 fk-outline-none fk-ring-sidebar-ring fk-transition-[margin,opa] fk-ease-linear focus-visible:fk-ring-2 [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n 'group-data-[collapsible=icon]:fk--mt-8 group-data-[collapsible=icon]:fk-opacity-0',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'fk-absolute fk-right-3 fk-top-3.5 fk-flex fk-aspect-square fk-w-5 fk-items-center fk-justify-center fk-rounded-md fk-p-0 fk-text-sidebar-foreground fk-outline-none fk-ring-sidebar-ring fk-transition-transform hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:fk-absolute after:fk--inset-2 after:md:fk-hidden',\n 'group-data-[collapsible=icon]:fk-hidden',\n className\n )}\n {...props}\n />\n );\n }\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('fk-w-full fk-text-sm', className)} {...props} />\n )\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('fk-flex fk-w-full fk-min-w-0 fk-flex-col fk-gap-1 fk-z-10', className)}\n {...props}\n />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('fk-group/menu-item fk-relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button fk-flex fk-w-full fk-items-center fk-gap-2 fk-overflow-hidden fk-rounded-md fk-p-2 fk-text-left fk-text-sm fk-outline-none fk-ring-sidebar-ring fk-transition-[width,height,padding] hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 active:fk-bg-sidebar-accent active:fk-text-sidebar-accent-foreground disabled:fk-pointer-events-none disabled:fk-opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:fk-pr-8 aria-disabled:fk-pointer-events-none aria-disabled:fk-opacity-50 data-[active=true]:fk-bg-sidebar-accent data-[active=true]:fk-font-medium data-[active=true]:fk-text-sidebar-accent-foreground data-[state=open]:hover:fk-bg-sidebar-accent data-[state=open]:hover:fk-text-sidebar-accent-foreground group-data-[collapsible=icon]:fk-!size-8 group-data-[collapsible=icon]:fk-!p-2 [&>span:last-child]:fk-truncate [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground',\n outline:\n 'fk-bg-background fk-shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground hover:fk-shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'fk-h-8 fk-text-sm',\n sm: 'fk-h-7 fk-text-xs',\n lg: 'fk-h-12 fk-text-sm group-data-[collapsible=icon]:fk-!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\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 side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'fk-absolute fk-right-1 fk-top-1.5 fk-flex fk-aspect-square fk-w-5 fk-items-center fk-justify-center fk-rounded-md fk-p-0 fk-text-sidebar-foreground fk-outline-none fk-ring-sidebar-ring fk-transition-transform hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 peer-hover/menu-button:fk-text-sidebar-accent-foreground [&>svg]:fk-size-4 [&>svg]:fk-shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:fk-absolute after:fk--inset-2 after:md:fk-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]:fk-hidden',\n showOnHover &&\n 'group-focus-within/menu-item:fk-opacity-100 group-hover/menu-item:fk-opacity-100 data-[state=open]:fk-opacity-100 peer-data-[active=true]/menu-button:fk-text-sidebar-accent-foreground md:fk-opacity-0',\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'fk-absolute fk-right-1 fk-flex fk-h-5 fk-min-w-5 fk-items-center fk-justify-center fk-rounded-md fk-px-1 fk-text-xs fk-font-medium fk-tabular-nums fk-text-sidebar-foreground fk-select-none fk-pointer-events-none',\n 'peer-hover/menu-button:fk-text-sidebar-accent-foreground peer-data-[active=true]/menu-button:fk-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]:fk-hidden',\n className\n )}\n {...props}\n />\n )\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\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 ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('fk-rounded-md fk-h-8 fk-flex fk-gap-2 fk-px-2 fk-items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"fk-size-4 fk-rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"fk-h-4 fk-flex-1 fk-max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'fk-mx-3.5 fk-flex fk-min-w-0 fk-translate-x-px fk-flex-col fk-gap-1 fk-border-l fk-border-sidebar-border fk-px-2.5 fk-py-0.5',\n 'group-data-[collapsible=icon]:fk-hidden',\n className\n )}\n {...props}\n />\n )\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'fk-flex fk-h-7 fk-min-w-0 fk--translate-x-px fk-items-center fk-gap-2 fk-overflow-hidden fk-rounded-md fk-px-2 fk-text-sidebar-foreground fk-outline-none fk-ring-sidebar-ring hover:fk-bg-sidebar-accent hover:fk-text-sidebar-accent-foreground focus-visible:fk-ring-2 active:fk-bg-sidebar-accent active:fk-text-sidebar-accent-foreground disabled:fk-pointer-events-none disabled:fk-opacity-50 aria-disabled:fk-pointer-events-none aria-disabled:fk-opacity-50 [&>span:last-child]:fk-truncate [&>svg]:fk-size-4 [&>svg]:fk-shrink-0 [&>svg]:fk-text-sidebar-accent-foreground',\n 'data-[active=true]:fk-bg-sidebar-accent data-[active=true]:fk-text-sidebar-accent-foreground',\n size === 'sm' && 'fk-text-xs',\n size === 'md' && 'fk-text-sm',\n 'group-data-[collapsible=icon]:fk-hidden',\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\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","import { createElement } from 'react';\nimport * as Icons from 'lucide-react';\nimport Fuse from 'fuse.js';\nimport { NavLink } from 'react-router-dom';\nimport {\n Sidebar as SidebarPrimitive,\n SidebarContent,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarRail,\n} from '../primitives/sidebar';\nimport type { SingleProject } from '../../core/config/types';\nimport { groupBy } from 'ramda';\n\ninterface SidebarProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n menuGroups?: SingleProject['menuGroups'];\n schema: SingleProject['schema'];\n}\n\ntype VisibleMenuSchema = Array<\n Omit<SingleProject['schema'][number], 'menu'> & {\n menu?: Exclude<SingleProject['schema'][number]['menu'], { hidden: true }>;\n }\n>;\n\nconst iconList = Object.keys(Icons).map((iconName) => ({\n name: iconName,\n icon: Icons[iconName as keyof typeof Icons],\n}));\n\nconst fuse = new Fuse(iconList, {\n keys: ['name'],\n threshold: 0.5,\n});\n\nexport function Sidebar({ className, menuGroups, schema }: SidebarProps): JSX.Element {\n // Filter out hidden items first, then group them\n const visibleItems = schema.filter((item) => !(item.menu && 'hidden' in item.menu)) as VisibleMenuSchema;\n const itemsByGroup = groupBy(\n (item) => (item.menu?.group && menuGroups?.find((g) => g.name === item.menu?.group)?.name) || 'ungrouped',\n visibleItems\n );\n const nonEmptyGroups = menuGroups?.filter((menuGroup) => itemsByGroup[menuGroup.name]?.length);\n\n return (\n <SidebarPrimitive className={className} collapsible=\"icon\" variant=\"inset\">\n <SidebarContent>\n {nonEmptyGroups?.map((group) => (\n <SidebarGroup key={group.name}>\n <SidebarGroupLabel>{group.title}</SidebarGroupLabel>\n <SidebarMenu>\n {itemsByGroup[group.name]?.map((entity) => (\n <SidebarMenuItem key={entity.plural}>\n <SidebarMenuButton\n asChild\n isActive={location.pathname.includes(`/list/${entity.plural}`)}\n tooltip={capitalize(entity.menu?.label ?? entity.plural)}\n >\n <NavLink to={`list/${entity.plural}`}>\n {entity.menu?.icon ??\n createElement(Icons[getBestMatchingIcon(entity.name)] as React.ComponentType<any>, {\n className: 'fk-h-4 fk-w-4 fk-mr-2',\n strokeWidth: 2,\n })}\n <span>{capitalize(entity.menu?.label ?? entity.plural)}</span>\n </NavLink>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n ))}\n <SidebarGroup>\n <SidebarMenu>\n {itemsByGroup['ungrouped']?.map((entity) => (\n <SidebarMenuItem key={entity.plural}>\n <SidebarMenuButton\n asChild\n isActive={location.pathname.includes(`/list/${entity.plural}`)}\n tooltip={capitalize(entity.menu?.label ?? entity.plural)}\n >\n <NavLink to={`list/${entity.plural}`}>\n {createElement(Icons[getBestMatchingIcon(entity.name)] as React.ComponentType<any>, {\n className: 'fk-h-4 fk-w-4 fk-mr-2',\n strokeWidth: 2,\n })}\n <span>{capitalize(entity.menu?.label ?? entity.plural)}</span>\n </NavLink>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n </SidebarContent>\n <SidebarRail />\n </SidebarPrimitive>\n );\n}\n\nfunction capitalize(str: string): string {\n // Add space before capital letters and capitalize first letter\n const withSpaces = str.replace(/([A-Z])/g, ' $1');\n // Capitalize first letter and trim any leading space\n return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1).trim();\n}\n\n/**\n * Tries to get the best matching icon for an entity name using fuzy search\n */\nfunction getBestMatchingIcon(concept: string): keyof typeof Icons {\n const result = fuse.search(concept);\n\n if (result.length > 0) {\n return result[0].item.name as keyof typeof Icons;\n }\n\n return 'Dock' as keyof typeof Icons;\n}\n","'use client';\n\nimport * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { cn } from 'src/ui/lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n className={cn(\n 'fk-inline-flex fk-h-10 fk-items-center fk-justify-center fk-rounded-md fk-bg-muted fk-p-1 fk-text-muted-foreground',\n className\n )}\n ref={ref}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n className={cn(\n 'fk-inline-flex fk-items-center fk-justify-center fk-whitespace-nowrap fk-rounded-sm fk-px-3 fk-py-1.5 fk-text-sm fk-font-medium fk-ring-offset-background fk-transition-all focus-visible:fk-outline-none focus-visible:fk-ring-2 focus-visible:fk-ring-ring focus-visible:fk-ring-offset-2 disabled:fk-pointer-events-none disabled:fk-opacity-50 data-[state=active]:fk-bg-background data-[state=active]:fk-text-foreground data-[state=active]:fk-shadow-sm',\n className\n )}\n ref={ref}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n className={cn(\n 'fk-mt-2 fk-ring-offset-background focus-visible:fk-outline-none focus-visible:fk-ring-2 focus-visible:fk-ring-ring focus-visible:fk-ring-offset-2',\n className\n )}\n ref={ref}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"]}
@@ -0,0 +1,2 @@
1
+ import'./index.css';import {b}from'./chunk-NJN7EGGK.js';import {a,b as b$2,c as c$1}from'./chunk-K5CEPNVI.js';import {r,c,d,b as b$1,k,o,p,m,l,q}from'./chunk-64KAF6GA.js';import'./chunk-7YBJLUUE.js';import'./chunk-AXB7FQV2.js';import {useTheme}from'next-themes';import {Monitor,Moon,Sun}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function _({projectId:g}){let{theme:r$1,setTheme:t}=useTheme(),[D,n]=b();return D?jsx(r,{className:"fk-h-8 fk-w-8 fk-rounded-full"}):jsxs(c,{children:[jsx(d,{asChild:true,children:jsx(b$1,{className:"fk-relative fk-h-8 fk-w-8 fk-rounded-full",variant:"ghost",children:jsxs(a,{className:"fk-h-8 fk-w-8",children:[jsx(b$2,{alt:"@shadcn",src:n.user?.avatar_url}),jsx(c$1,{children:n.user?.display_name.charAt(0).toUpperCase()??""})]})})}),jsxs(k,{align:"end",className:"fk-w-56",forceMount:true,children:[jsx(o,{className:"font-normal",children:jsxs("div",{className:"fk-flex fk-flex-col fk-space-y-1",children:[jsx("p",{className:"fk-text-sm fk-font-medium fk-leading-none",children:n.user?.display_name}),jsx("p",{className:"fk-text-xs fk-leading-none fk-text-muted-foreground",children:n.user?.email})]})}),jsx(p,{}),jsx(o,{children:"Theme"}),jsxs(m,{checked:r$1==="system",onCheckedChange:()=>{t("system");},children:[jsx(Monitor,{className:"fk-mr-2 fk-h-4 fk-w-4"}),jsx("span",{children:"System"})]}),jsxs(m,{checked:r$1==="dark",onCheckedChange:()=>{t("dark");},children:[jsx(Moon,{className:"fk-mr-2 fk-h-4 fk-w-4"}),jsx("span",{children:"Dark"})]}),jsxs(m,{checked:r$1==="light",onCheckedChange:()=>{t("light");},children:[jsx(Sun,{className:"fk-mr-2 fk-h-4 fk-w-4"}),jsx("span",{children:"Light"})]}),jsx(p,{}),jsxs(l,{onClick:()=>{n.logout(g).then(()=>{}).catch(()=>{});},children:["Log out",jsx(q,{children:"\u21E7\u2318Q"})]})]})]})}export{_ as UserNav};//# sourceMappingURL=user-nav-5LW5USDZ.js.map
2
+ //# sourceMappingURL=user-nav-5LW5USDZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/components/user-nav.tsx"],"names":["UserNav","projectId","theme","setTheme","useTheme","isLoading","auth","useAuth","jsx","Skeleton","jsxs","DropdownMenu","DropdownMenuTrigger","Button","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuCheckboxItem","Monitor","Moon","Sun","DropdownMenuItem","DropdownMenuShortcut"],"mappings":"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","file":"user-nav-ORQ6W5W3.js","sourcesContent":["import { useTheme } from 'next-themes';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { Button } from '../primitives/button';\nimport { Skeleton } from '../primitives/skeleton';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../primitives/dropdown-menu';\nimport { useAuth } from '../../auth/auth-context';\n\ntype Props = {\n projectId: string;\n};\n\nexport function UserNav({ projectId }: Props): JSX.Element {\n const { theme, setTheme } = useTheme();\n const [isLoading, auth] = useAuth();\n\n if (isLoading) {\n return <Skeleton className=\"fk-h-8 fk-w-8 fk-rounded-full\" />;\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button className=\"fk-relative fk-h-8 fk-w-8 fk-rounded-full\" variant=\"ghost\">\n <Avatar className=\"fk-h-8 fk-w-8\">\n <AvatarImage alt=\"@shadcn\" src={auth.user?.avatar_url} />\n <AvatarFallback>{auth.user?.display_name.charAt(0).toUpperCase() ?? ''}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"fk-w-56\" forceMount>\n <DropdownMenuLabel className=\"font-normal\">\n <div className=\"fk-flex fk-flex-col fk-space-y-1\">\n <p className=\"fk-text-sm fk-font-medium fk-leading-none\">{auth.user?.display_name}</p>\n <p className=\"fk-text-xs fk-leading-none fk-text-muted-foreground\">{auth.user?.email}</p>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuLabel>Theme</DropdownMenuLabel>\n <DropdownMenuCheckboxItem\n checked={theme === 'system'}\n onCheckedChange={() => {\n setTheme('system');\n }}\n >\n <Monitor className=\"fk-mr-2 fk-h-4 fk-w-4\" />\n <span>System</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'dark'}\n onCheckedChange={() => {\n setTheme('dark');\n }}\n >\n <Moon className=\"fk-mr-2 fk-h-4 fk-w-4\" />\n <span>Dark</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'light'}\n onCheckedChange={() => {\n setTheme('light');\n }}\n >\n <Sun className=\"fk-mr-2 fk-h-4 fk-w-4\" />\n <span>Light</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n auth\n .logout(projectId)\n .then(() => {\n //\n })\n .catch(() => {\n //\n });\n }}\n >\n Log out\n <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/ui/components/user-nav.tsx"],"names":["UserNav","projectId","theme","setTheme","useTheme","isLoading","auth","useAuth","jsx","Skeleton","jsxs","DropdownMenu","DropdownMenuTrigger","Button","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuCheckboxItem","Monitor","Moon","Sun","DropdownMenuItem","DropdownMenuShortcut"],"mappings":"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","file":"user-nav-5LW5USDZ.js","sourcesContent":["import { useTheme } from 'next-themes';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { Button } from '../primitives/button';\nimport { Skeleton } from '../primitives/skeleton';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../primitives/dropdown-menu';\nimport { useAuth } from '../../auth/auth-context';\n\ntype Props = {\n projectId: string;\n};\n\nexport function UserNav({ projectId }: Props): JSX.Element {\n const { theme, setTheme } = useTheme();\n const [isLoading, auth] = useAuth();\n\n if (isLoading) {\n return <Skeleton className=\"fk-h-8 fk-w-8 fk-rounded-full\" />;\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button className=\"fk-relative fk-h-8 fk-w-8 fk-rounded-full\" variant=\"ghost\">\n <Avatar className=\"fk-h-8 fk-w-8\">\n <AvatarImage alt=\"@shadcn\" src={auth.user?.avatar_url} />\n <AvatarFallback>{auth.user?.display_name.charAt(0).toUpperCase() ?? ''}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"fk-w-56\" forceMount>\n <DropdownMenuLabel className=\"font-normal\">\n <div className=\"fk-flex fk-flex-col fk-space-y-1\">\n <p className=\"fk-text-sm fk-font-medium fk-leading-none\">{auth.user?.display_name}</p>\n <p className=\"fk-text-xs fk-leading-none fk-text-muted-foreground\">{auth.user?.email}</p>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuLabel>Theme</DropdownMenuLabel>\n <DropdownMenuCheckboxItem\n checked={theme === 'system'}\n onCheckedChange={() => {\n setTheme('system');\n }}\n >\n <Monitor className=\"fk-mr-2 fk-h-4 fk-w-4\" />\n <span>System</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'dark'}\n onCheckedChange={() => {\n setTheme('dark');\n }}\n >\n <Moon className=\"fk-mr-2 fk-h-4 fk-w-4\" />\n <span>Dark</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={theme === 'light'}\n onCheckedChange={() => {\n setTheme('light');\n }}\n >\n <Sun className=\"fk-mr-2 fk-h-4 fk-w-4\" />\n <span>Light</span>\n </DropdownMenuCheckboxItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n auth\n .logout(projectId)\n .then(() => {\n //\n })\n .catch(() => {\n //\n });\n }}\n >\n Log out\n <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexkit/studio",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "description": "Flexkit Studio - Build custom internal tools like PIMs, CRMs, and ERPs with a flexible React UI and a graph-backed API",
5
5
  "keywords": [
6
6
  "flexkit",
@@ -1,2 +0,0 @@
1
- import'./index.css';export{a as Asset}from'./chunk-D5N42D57.js';import'./chunk-RMSYYUQM.js';import'./chunk-7YBJLUUE.js';import'./chunk-AXB7FQV2.js';import'./chunk-XSNFFA5W.js';//# sourceMappingURL=asset-2IWHRTPZ.js.map
2
- //# sourceMappingURL=asset-2IWHRTPZ.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';export{a as Boolean}from'./chunk-M6EIBKCQ.js';import'./chunk-XSNFFA5W.js';//# sourceMappingURL=boolean-OC4EQEDW.js.map
2
- //# sourceMappingURL=boolean-OC4EQEDW.js.map
@@ -1,14 +0,0 @@
1
- import'./index.css';import {b as b$1,a as a$1,c}from'./chunk-XSNFFA5W.js';import Jt,{createContext,useContext,useRef,useMemo,useCallback,useEffect,useLayoutEffect,useDebugValue}from'react';var Ht=b$1(jt=>{var K=a$1("react");function Se(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var me=typeof Object.is=="function"?Object.is:Se,ve=K.useState,ge=K.useEffect,_e=K.useLayoutEffect,Te=K.useDebugValue;function Ce(t,e){var n=e(),s=ve({inst:{value:n,getSnapshot:e}}),o=s[0].inst,r=s[1];return _e(function(){o.value=n,o.getSnapshot=e,Rt(o)&&r({inst:o});},[t,n,e]),ge(function(){return Rt(o)&&r({inst:o}),t(function(){Rt(o)&&r({inst:o});})},[t]),Te(n),n}function Rt(t){var e=t.getSnapshot;t=t.value;try{var n=e();return !me(t,n)}catch{return true}}function we(t,e){return e()}var Oe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?we:Ce;jt.useSyncExternalStore=K.useSyncExternalStore!==void 0?K.useSyncExternalStore:Oe;});var kt=b$1((en,$t)=>{$t.exports=Ht();});var ue=c(kt(),1);var P=()=>{},T=P(),tt=Object,a=t=>t===T,b=t=>typeof t=="function",F=(t,e)=>({...t,...e}),ye=t=>b(t.then),it=new WeakMap,Le=0,et=t=>{let e=typeof t,n=t&&t.constructor,s=n==Date,o,r;if(tt(t)===t&&!s&&n!=RegExp){if(o=it.get(t),o)return o;if(o=++Le+"~",it.set(t,o),n==Array){for(o="@",r=0;r<t.length;r++)o+=et(t[r])+",";it.set(t,o);}if(n==tt){o="#";let c=tt.keys(t).sort();for(;!a(r=c.pop());)a(t[r])||(o+=r+":"+et(t[r])+",");it.set(t,o);}}else o=s?t.toJSON():e=="symbol"?t.toString():e=="string"?JSON.stringify(t):""+t;return o},N=new WeakMap,ht={},at={},Tt="undefined",ut=typeof window!=Tt,St=typeof document!=Tt,Ne=()=>ut&&typeof window.requestAnimationFrame!=Tt,Ct=(t,e)=>{let n=N.get(t);return [()=>!a(e)&&t.get(e)||ht,s=>{if(!a(e)){let o=t.get(e);e in at||(at[e]=o),n[5](e,F(o,s),o||ht);}},n[6],()=>!a(e)&&e in at?at[e]:!a(e)&&t.get(e)||ht]},mt=true,Fe=()=>mt,[vt,gt]=ut&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[P,P],xe=()=>{let t=St&&document.visibilityState;return a(t)||t!=="hidden"},We=t=>(St&&document.addEventListener("visibilitychange",t),vt("focus",t),()=>{St&&document.removeEventListener("visibilitychange",t),gt("focus",t);}),Me=t=>{let e=()=>{mt=true,t();},n=()=>{mt=false;};return vt("online",e),vt("offline",n),()=>{gt("online",e),gt("offline",n);}},Pe={isOnline:Fe,isVisible:xe},Ue={initFocus:We,initReconnect:Me},wt=!Jt.useId,Y=!ut||"Deno"in window,Yt=t=>Ne()?window.requestAnimationFrame(t):setTimeout(t,1),nt=Y?useEffect:useLayoutEffect,pt=typeof navigator<"u"&&navigator.connection,Gt=!Y&&pt&&(["slow-2g","2g"].includes(pt.effectiveType)||pt.saveData),ft=t=>{if(b(t))try{t=t();}catch{t="";}let e=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?et(t):"",[t,e]},qe=0,ct=()=>++qe,Xt=0,Qt=1,Zt=2,je=3,X={__proto__:null,ERROR_REVALIDATE_EVENT:je,FOCUS_EVENT:Xt,MUTATE_EVENT:Zt,RECONNECT_EVENT:Qt};async function Ot(...t){let[e,n,s,o]=t,r=F({populateCache:true,throwOnError:true},typeof o=="boolean"?{revalidate:o}:o||{}),c=r.populateCache,d=r.rollbackOnError,u=r.optimisticData,A=C=>typeof d=="function"?d(C):d!==false,v=r.throwOnError;if(b(n)){let C=n,h=[],I=e.keys();for(let S of I)!/^\$(inf|sub)\$/.test(S)&&C(e.get(S)._k)&&h.push(S);return Promise.all(h.map(p))}return p(n);async function p(C){let[h]=ft(C);if(!h)return;let[I,S]=Ct(e,h),[lt,i,ot,Q]=N.get(e),M=()=>{let V=lt[h];return (b(r.revalidate)?r.revalidate(I().data,C):r.revalidate!==false)&&(delete ot[h],delete Q[h],V&&V[0])?V[0](Zt).then(()=>I().data):I().data};if(t.length<3)return M();let g=s,O,j=ct();i[h]=[j,0];let R=!a(u),H=I(),y=H.data,$=H._c,U=a($)?y:$;if(R&&(u=b(u)?u(U,y):u,S({data:u,_c:U})),b(g))try{g=g(U);}catch(V){O=V;}if(g&&ye(g))if(g=await g.catch(V=>{O=V;}),j!==i[h][0]){if(O)throw O;return g}else O&&R&&A(O)&&(c=true,S({data:U,_c:T}));if(c&&!O)if(b(c)){let V=c(g,U);S({data:V,error:T,_c:T});}else S({data:g,error:T,_c:T});if(i[h][1]=ct(),Promise.resolve(M()).then(()=>{S({_c:T});}),O){if(v)throw O;return}return g}}var Bt=(t,e)=>{for(let n in t)t[n][0]&&t[n][0](e);},te=(t,e)=>{if(!N.has(t)){let n=F(Ue,e),s={},o=Ot.bind(T,t),r=P,c={},d=(v,p)=>{let C=c[v]||[];return c[v]=C,C.push(p),()=>C.splice(C.indexOf(p),1)},u=(v,p,C)=>{t.set(v,p);let h=c[v];if(h)for(let I of h)I(p,C);},A=()=>{if(!N.has(t)&&(N.set(t,[s,{},{},{},o,u,d]),!Y)){let v=n.initFocus(setTimeout.bind(T,Bt.bind(T,s,Xt))),p=n.initReconnect(setTimeout.bind(T,Bt.bind(T,s,Qt)));r=()=>{v&&v(),p&&p(),N.delete(t);};}};return A(),[t,o,A,r]}return [t,N.get(t)[4]]},He=(t,e,n,s,o)=>{let r=n.errorRetryCount,c=o.retryCount,d=~~((Math.random()+.5)*(1<<(c<8?c:8)))*n.errorRetryInterval;!a(r)&&c>r||setTimeout(s,d,o);},$e=(t,e)=>et(t)==et(e),[Dt,ee]=te(new Map),bt=F({onLoadingSlow:P,onSuccess:P,onError:P,onErrorRetry:He,onDiscarded:P,revalidateOnFocus:true,revalidateOnReconnect:true,revalidateIfStale:true,shouldRetryOnError:true,errorRetryInterval:Gt?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Gt?5e3:3e3,compare:$e,isPaused:()=>false,cache:Dt,mutate:ee,fallback:{}},Pe),ne=(t,e)=>{let n=F(t,e);if(e){let{use:s,fallback:o}=t,{use:r,fallback:c}=e;s&&r&&(n.use=s.concat(r)),o&&c&&(n.fallback=F(o,c));}return n},_t=createContext({}),ke="$inf$",re=ut&&window.__SWR_DEVTOOLS_USE__,ze=re?window.__SWR_DEVTOOLS_USE__:[],Ge=()=>{re&&(window.__SWR_DEVTOOLS_REACT__=Jt);},Be=t=>b(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],se=()=>F(bt,useContext(_t));var Je=t=>(e,n,s)=>t(e,n&&((...r)=>{let[c]=ft(e),[,,,d]=N.get(Dt);if(c.startsWith(ke))return n(...r);let u=d[c];return a(u)?n(...r):(delete d[c],u)}),s),Ke=ze.concat(Je),ie=t=>function(...n){let s=se(),[o,r,c]=Be(n),d=ne(s,c),u=t,{use:A}=d,v=(A||[]).concat(Ke);for(let p=v.length;p--;)u=v[p](u);return u(o,r||d.fetcher||null,d)},ae=(t,e,n)=>{let s=e[t]||(e[t]=[]);return s.push(n),()=>{let o=s.indexOf(n);o>=0&&(s[o]=s[s.length-1],s.pop());}};Ge();var ce=Jt.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e;},e=>{t.status="rejected",t.reason=e;}),t)}),Vt={dedupe:true},Ze=(t,e,n)=>{let{cache:s,compare:o,suspense:r,fallbackData:c,revalidateOnMount:d,revalidateIfStale:u,refreshInterval:A,refreshWhenHidden:v,refreshWhenOffline:p,keepPreviousData:C}=n,[h,I,S,lt]=N.get(s),[i,ot]=ft(t),Q=useRef(false),M=useRef(false),g=useRef(i),O=useRef(e),j=useRef(n),R=()=>j.current,H=()=>R().isVisible()&&R().isOnline(),[y,$,U,V]=Ct(s,i),k=useRef({}).current,fe=a(c)?n.fallback[i]:c,It=(f,l)=>{for(let _ in k){let E=_;if(E==="data"){if(!o(f[E],l[E])&&(!a(f[E])||!o(st,l[E])))return false}else if(l[E]!==f[E])return false}return true},yt=useMemo(()=>{let f=!i||!e?false:a(d)?R().isPaused()||r?false:a(u)?true:u:d,l=w=>{let x=F(w);return delete x._k,f?{isValidating:true,isLoading:true,...x}:x},_=y(),E=V(),L=l(_),J=_===E?L:l(E),m=L;return [()=>{let w=l(y());return It(w,m)?(m.data=w.data,m.isLoading=w.isLoading,m.isValidating=w.isValidating,m.error=w.error,m):(m=w,w)},()=>J]},[s,i]),z=(0, ue.useSyncExternalStore)(useCallback(f=>U(i,(l,_)=>{It(_,l)||f();}),[s,i]),yt[0],yt[1]),Lt=!Q.current,le=h[i]&&h[i].length>0,G=z.data,B=a(G)?fe:G,rt=z.error,Nt=useRef(B),st=C?a(G)?Nt.current:G:B,Ft=le&&!a(rt)?false:Lt&&!a(d)?d:R().isPaused()?false:r?a(B)?false:u:a(B)||u,xt=!!(i&&e&&Lt&&Ft),de=a(z.isValidating)?xt:z.isValidating,Ee=a(z.isLoading)?xt:z.isLoading,Z=useCallback(async f=>{let l=O.current;if(!i||!l||M.current||R().isPaused())return false;let _,E,L=true,J=f||{},m=!S[i]||!J.dedupe,w=()=>wt?!M.current&&i===g.current&&Q.current:i===g.current,x={isValidating:false,isLoading:false},Mt=()=>{$(x);},Pt=()=>{let D=S[i];D&&D[1]===E&&delete S[i];},Ut={isValidating:true};a(y().data)&&(Ut.isLoading=true);try{if(m&&($(Ut),n.loadingTimeout&&a(y().data)&&setTimeout(()=>{L&&w()&&R().onLoadingSlow(i,n);},n.loadingTimeout),S[i]=[l(ot),ct()]),[_,E]=S[i],_=await _,m&&setTimeout(Pt,n.dedupingInterval),!S[i]||S[i][1]!==E)return m&&w()&&R().onDiscarded(i),!1;x.error=T;let D=I[i];if(!a(D)&&(E<=D[0]||E<=D[1]||D[1]===0))return Mt(),m&&w()&&R().onDiscarded(i),!1;let W=y().data;x.data=o(W,_)?W:_,m&&w()&&R().onSuccess(_,i,n);}catch(D){Pt();let W=R(),{shouldRetryOnError:dt}=W;W.isPaused()||(x.error=D,m&&w()&&(W.onError(D,i,W),(dt===true||b(dt)&&dt(D))&&(!R().revalidateOnFocus||!R().revalidateOnReconnect||H())&&W.onErrorRetry(D,i,W,Re=>{let Et=h[i];Et&&Et[0]&&Et[0](X.ERROR_REVALIDATE_EVENT,Re);},{retryCount:(J.retryCount||0)+1,dedupe:true})));}return L=false,Mt(),true},[i,s]),Wt=useCallback((...f)=>Ot(s,g.current,...f),[]);if(nt(()=>{O.current=e,j.current=n,a(G)||(Nt.current=G);}),nt(()=>{if(!i)return;let f=Z.bind(T,Vt),l=0,E=ae(i,h,(L,J={})=>{if(L==X.FOCUS_EVENT){let m=Date.now();R().revalidateOnFocus&&m>l&&H()&&(l=m+R().focusThrottleInterval,f());}else if(L==X.RECONNECT_EVENT)R().revalidateOnReconnect&&H()&&f();else {if(L==X.MUTATE_EVENT)return Z();if(L==X.ERROR_REVALIDATE_EVENT)return Z(J)}});return M.current=false,g.current=i,Q.current=true,$({_k:ot}),Ft&&(a(B)||Y?f():Yt(f)),()=>{M.current=true,E();}},[i]),nt(()=>{let f;function l(){let E=b(A)?A(y().data):A;E&&f!==-1&&(f=setTimeout(_,E));}function _(){!y().error&&(v||R().isVisible())&&(p||R().isOnline())?Z(Vt).then(l):l();}return l(),()=>{f&&(clearTimeout(f),f=-1);}},[A,v,p,i]),useDebugValue(st),r&&a(B)&&i){if(!wt&&Y)throw new Error("Fallback data is required when using suspense in SSR.");O.current=e,j.current=n,M.current=false;let f=lt[i];if(!a(f)){let l=Wt(f);ce(l);}if(a(rt)){let l=Z(Vt);a(st)||(l.status="fulfilled",l.value=true),ce(l);}else throw rt}return {mutate:Wt,get data(){return k.data=true,st},get error(){return k.error=true,rt},get isValidating(){return k.isValidating=true,de},get isLoading(){return k.isLoading=true,Ee}}},un=ie(Ze);/*! Bundled license information:
2
-
3
- use-sync-external-store/cjs/use-sync-external-store-shim.production.js:
4
- (**
5
- * @license React
6
- * use-sync-external-store-shim.production.js
7
- *
8
- * Copyright (c) Meta Platforms, Inc. and affiliates.
9
- *
10
- * This source code is licensed under the MIT license found in the
11
- * LICENSE file in the root directory of this source tree.
12
- *)
13
- */export{se as a,un as b};//# sourceMappingURL=chunk-J63QWF2X.js.map
14
- //# sourceMappingURL=chunk-J63QWF2X.js.map