@betterinternship/components 2.5.1 → 2.6.0

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 (35) hide show
  1. package/README.md +50 -50
  2. package/dist/components/ui/accordion.js.map +1 -1
  3. package/dist/components/ui/app-header.js.map +1 -1
  4. package/dist/components/ui/avatar.js.map +1 -1
  5. package/dist/components/ui/badge.js.map +1 -1
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/ui/card.js.map +1 -1
  8. package/dist/components/ui/checkbox.js.map +1 -1
  9. package/dist/components/ui/dialog.js.map +1 -1
  10. package/dist/components/ui/dropdown-menu.js.map +1 -1
  11. package/dist/components/ui/fab.js +9 -9
  12. package/dist/components/ui/icons.js.map +1 -1
  13. package/dist/components/ui/input.js.map +1 -1
  14. package/dist/components/ui/label.js.map +1 -1
  15. package/dist/components/ui/page-header.js.map +1 -1
  16. package/dist/components/ui/popover.js.map +1 -1
  17. package/dist/components/ui/separator.js.map +1 -1
  18. package/dist/components/ui/skeleton.js.map +1 -1
  19. package/dist/components/ui/switch.js.map +1 -1
  20. package/dist/components/ui/textarea.js.map +1 -1
  21. package/dist/components/ui/tooltip.js.map +1 -1
  22. package/dist/index.d.ts +0 -2
  23. package/dist/index.js +0 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +364 -0
  26. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
  27. package/dist/node_modules/react/cjs/react-jsx-runtime.production.js +45 -0
  28. package/dist/node_modules/react/cjs/react-jsx-runtime.production.js.map +1 -0
  29. package/dist/node_modules/react/jsx-runtime.js +20 -0
  30. package/dist/node_modules/react/jsx-runtime.js.map +1 -0
  31. package/dist/node_modules/style-inject/dist/style-inject.es.js +29 -0
  32. package/dist/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  33. package/dist/utils.js.map +1 -1
  34. package/package.json +247 -247
  35. package/theme.css +228 -228
package/README.md CHANGED
@@ -1,50 +1,50 @@
1
- # Package.Components
2
-
3
- Contains common components shared between the different interfaces of the site.
4
-
5
- ## Running the playground
6
-
7
- This package comes with a simple React app that you can use to test components. It runs on `localhost:5173` in your browser.
8
-
9
- Run the playground:
10
-
11
- ```bash
12
- npm run dev:playground
13
- ```
14
-
15
- ## Running the test suite
16
-
17
- Run the test suite:
18
-
19
- ```bash
20
- npm run test
21
- ```
22
-
23
- or run the test suite in watch mode if you're making changes:
24
-
25
- ```bash
26
- npm run test:watch
27
- ```
28
-
29
- ## Updating the package
30
-
31
- 1. Build the package:
32
-
33
- ```bash
34
- npm run build
35
- ```
36
-
37
- 2. Commit the build:
38
-
39
- ```bash
40
- git add .
41
- git commit -m "<follow conventional commits, k thanks>"
42
- git push
43
- ```
44
-
45
- 3. Update the version and publish the package to NPM:
46
-
47
- ```bash
48
- npm version <major|minor|patch>
49
- npm publish
50
- ```
1
+ # Package.Components
2
+
3
+ Contains common components shared between the different interfaces of the site.
4
+
5
+ ## Running the playground
6
+
7
+ This package comes with a simple React app that you can use to test components. It runs on `localhost:5173` in your browser.
8
+
9
+ Run the playground:
10
+
11
+ ```bash
12
+ npm run dev:playground
13
+ ```
14
+
15
+ ## Running the test suite
16
+
17
+ Run the test suite:
18
+
19
+ ```bash
20
+ npm run test
21
+ ```
22
+
23
+ or run the test suite in watch mode if you're making changes:
24
+
25
+ ```bash
26
+ npm run test:watch
27
+ ```
28
+
29
+ ## Updating the package
30
+
31
+ 1. Build the package:
32
+
33
+ ```bash
34
+ npm run build
35
+ ```
36
+
37
+ 2. Commit the build:
38
+
39
+ ```bash
40
+ git add .
41
+ git commit -m "<follow conventional commits, k thanks>"
42
+ git push
43
+ ```
44
+
45
+ 3. Update the version and publish the package to NPM:
46
+
47
+ ```bash
48
+ npm version <major|minor|patch>
49
+ npm publish
50
+ ```
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { ChevronDownIcon } from 'lucide-react';\n\nimport { cn } from '@/utils';\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn('pt-0 pb-4', className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;AAMA,SAAS,SAAS,CAAC,EACjB,GAAG,KAAK,EAC6C,EAAA;IACrD,OAAOA,GAAA,CAAC,kBAAkB,CAAC,IAAI,iBAAW,WAAW,EAAA,GAAK,KAAK,EAAA,CAAI;AACrE;AAEA,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EAC6C,EAAA;IACrD,QACEA,IAAC,kBAAkB,CAAC,IAAI,EAAA,EAAA,WAAA,EACZ,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,KAChD,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACgD,EAAA;AACxD,IAAA,QACEA,GAAA,CAAC,kBAAkB,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,MAAM,EAAA,QAAA,EACzCC,IAAA,CAAC,kBAAkB,CAAC,OAAO,iBACf,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,4SAA4S,EAC5S,SAAS,CACV,KACG,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTD,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAC,6GAA6G,GAAG,CAAA,EAAA,CAChH,EAAA,CACH;AAEhC;AAEA,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACgD,EAAA;AACxD,IAAA,QACEA,GAAA,CAAC,kBAAkB,CAAC,OAAO,EAAA,EAAA,WAAA,EACf,mBAAmB,EAC7B,SAAS,EAAC,2GAA2G,EAAA,GACjH,KAAK,EAAA,QAAA,EAETA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,EAAA,CACjC;AAEjC;;;;"}
1
+ {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\r\nimport { ChevronDownIcon } from 'lucide-react';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction Accordion({\r\n ...props\r\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\r\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\r\n}\r\n\r\nfunction AccordionItem({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\r\n return (\r\n <AccordionPrimitive.Item\r\n data-slot=\"accordion-item\"\r\n className={cn('border-b last:border-b-0', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction AccordionTrigger({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\r\n return (\r\n <AccordionPrimitive.Header className=\"flex\">\r\n <AccordionPrimitive.Trigger\r\n data-slot=\"accordion-trigger\"\r\n className={cn(\r\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\r\n </AccordionPrimitive.Trigger>\r\n </AccordionPrimitive.Header>\r\n );\r\n}\r\n\r\nfunction AccordionContent({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\r\n return (\r\n <AccordionPrimitive.Content\r\n data-slot=\"accordion-content\"\r\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\r\n {...props}\r\n >\r\n <div className={cn('pt-0 pb-4', className)}>{children}</div>\r\n </AccordionPrimitive.Content>\r\n );\r\n}\r\n\r\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\r\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;AAMA,SAAS,SAAS,CAAC,EACjB,GAAG,KAAK,EAC6C,EAAA;IACrD,OAAOA,GAAA,CAAC,kBAAkB,CAAC,IAAI,iBAAW,WAAW,EAAA,GAAK,KAAK,EAAA,CAAI;AACrE;AAEA,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EAC6C,EAAA;IACrD,QACEA,IAAC,kBAAkB,CAAC,IAAI,EAAA,EAAA,WAAA,EACZ,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,KAChD,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACgD,EAAA;AACxD,IAAA,QACEA,GAAA,CAAC,kBAAkB,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,MAAM,EAAA,QAAA,EACzCC,IAAA,CAAC,kBAAkB,CAAC,OAAO,iBACf,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,4SAA4S,EAC5S,SAAS,CACV,KACG,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTD,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAC,6GAA6G,GAAG,CAAA,EAAA,CAChH,EAAA,CACH;AAEhC;AAEA,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACgD,EAAA;AACxD,IAAA,QACEA,GAAA,CAAC,kBAAkB,CAAC,OAAO,EAAA,EAAA,WAAA,EACf,mBAAmB,EAC7B,SAAS,EAAC,2GAA2G,EAAA,GACjH,KAAK,EAAA,QAAA,EAETA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,EAAA,CACjC;AAEjC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-header.js","sources":["../../../src/components/ui/app-header.tsx"],"sourcesContent":["import Link from 'next/link';\nimport Image from 'next/image';\nimport { usePathname, useRouter } from 'next/navigation';\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n} from '@/components/ui/dropdown-menu';\nimport { Button } from '@/components/ui/button';\nimport { Separator } from '@/components/ui/separator';\nimport { cn } from '@/utils';\nimport {\n LogOut,\n Menu,\n X,\n UserRound,\n ChevronDown,\n ChevronRight,\n Handshake,\n Mail,\n History,\n FileText,\n Users,\n LayoutDashboard,\n FileSignature,\n GraduationCap,\n Building2,\n SearchCheck,\n} from 'lucide-react';\nimport { useState, useEffect } from 'react';\nimport type { ReactNode } from 'react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport interface NavItem {\n href: string;\n label: string;\n badge?: number;\n icon?: LucideIcon;\n}\n\ninterface AppHeaderProps {\n portal: string;\n homeHref: string;\n nav: NavItem[];\n userPrimary?: string;\n userSecondary?: string;\n logout: () => Promise<unknown>;\n postLogoutPath: string;\n profileHref?: string;\n userAvatarUrl?: string | null;\n accountNav?: NavItem[];\n /** Overrides the hardcoded \"Partners\" brand text. */\n brand?: string;\n /** Overrides the hardcoded \"/betterinternship-logo.png\" logo path. */\n logoPath?: string;\n /** Extra controls rendered next to the nav (desktop) and inside the drawer (mobile). */\n actions?: ReactNode;\n}\n\nfunction labelIcon(label: string): LucideIcon {\n const map: Record<string, LucideIcon> = {\n Partners: Handshake,\n Invites: Mail,\n Invitations: Mail,\n Accounts: Users,\n 'Activity Log': History,\n 'MOA Templates': FileText,\n Universities: GraduationCap,\n Companies: Building2,\n 'Company Reviews': SearchCheck,\n 'Request MOA': FileSignature,\n Dashboard: LayoutDashboard,\n };\n return map[label] ?? Handshake;\n}\n\nexport function AppHeader({\n portal,\n homeHref,\n nav,\n userPrimary,\n userSecondary,\n logout: logoutFn,\n postLogoutPath,\n profileHref,\n userAvatarUrl,\n accountNav = [],\n brand = 'Partners',\n logoPath = '/betterinternship-logo.png',\n actions,\n}: AppHeaderProps) {\n const pathname = usePathname() ?? '';\n const router = useRouter();\n const queryClient = useQueryClient();\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\n\n useEffect(() => {\n setIsDrawerOpen(false);\n }, [pathname]);\n\n useEffect(() => {\n document.body.style.overflow = isDrawerOpen ? 'hidden' : '';\n return () => {\n document.body.style.overflow = '';\n };\n }, [isDrawerOpen]);\n\n const logout = useMutation({\n mutationFn: logoutFn,\n onSettled: () => {\n queryClient.clear();\n router.replace(postLogoutPath);\n },\n });\n\n const isActive = (href: string) =>\n pathname === href || pathname.startsWith(`${href}/`);\n\n return (\n <header className=\"bg-background/70 sticky top-0 z-40 border-b py-2 backdrop-blur\">\n <div className=\"mx-auto flex h-16 items-center justify-between gap-2 px-4 sm:px-6 lg:px-8\">\n {/* Brand */}\n <Link\n href={homeHref}\n className=\"block flex-shrink-0 border-none text-black! outline-none focus:outline-none\"\n >\n <div className=\"flex items-center gap-2\">\n <Image\n src={logoPath}\n alt=\"\"\n width={25}\n height={25}\n className=\"flex-none\"\n />\n <div className=\"flex items-center\">\n <h1 className=\"font-display text-lg font-bold text-gray-900\">\n {brand}\n </h1>\n <span className=\"mx-2.5 text-gray-300\" aria-hidden=\"true\">\n |\n </span>\n <span className=\"font-display text-gray-500\">\n {portal === 'Platform Admin' ? portal : `${portal} Portal`}\n </span>\n </div>\n </div>\n </Link>\n\n {/* Desktop right side: nav buttons + user */}\n <div className=\"hidden flex-1 items-center justify-end gap-2 md:flex\">\n {nav.map((item) => {\n const Icon = item.icon ?? labelIcon(item.label);\n return (\n <Button\n key={item.href}\n variant=\"ghost\"\n className={cn(\n 'relative h-auto min-w-0 flex-col items-center justify-center gap-1 rounded-[0.33em] px-3 py-1',\n isActive(item.href)\n ? 'text-primary'\n : 'opacity-80 hover:bg-gray-100 hover:opacity-100',\n )}\n onClick={() => router.push(item.href)}\n >\n <Icon className=\"!h-6 !w-6\" strokeWidth={1.7} />\n <span className=\"text-xs\">{item.label}</span>\n {!!item.badge && (\n <span className=\"absolute -top-0.5 right-5.5 inline-flex h-4 w-4 items-center justify-center rounded-full bg-amber-400 text-[10px] font-bold leading-none text-amber-900\">\n {item.badge}\n </span>\n )}\n </Button>\n );\n })}\n\n {actions}\n\n {/* User dropdown */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className={cn(\n 'group h-auto w-20 flex-col items-center justify-center gap-1 rounded-[0.33em] px-2 py-1',\n (profileHref && isActive(profileHref)) ||\n accountNav.some((item) => isActive(item.href))\n ? 'text-primary'\n : 'opacity-80 hover:bg-gray-100 hover:opacity-100',\n )}\n >\n <div className=\"flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-gray-100\">\n {userAvatarUrl ? (\n <img\n src={userAvatarUrl}\n alt=\"\"\n className=\"h-full w-full object-contain\"\n />\n ) : (\n <UserRound className=\"h-5 w-5 text-gray-500\" />\n )}\n </div>\n <div className=\"flex items-center gap-0.5\">\n <span className=\"text-xs\">Account</span>\n <ChevronDown className=\"!h-3 !w-3 transition-transform group-data-[state=open]:rotate-180\" />\n </div>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-max min-w-44\">\n {userPrimary && (\n <div className=\"px-2 py-1.5\">\n <div className=\"text-center text-sm font-medium\">\n {userPrimary}\n </div>\n {userSecondary && (\n <div className=\"text-muted-foreground text-center text-xs\">\n {userSecondary}\n </div>\n )}\n </div>\n )}\n <DropdownMenuSeparator />\n {profileHref && (\n <DropdownMenuItem asChild>\n <Link href={profileHref}>\n <UserRound className=\"h-4 w-4\" />\n Profile\n </Link>\n </DropdownMenuItem>\n )}\n {accountNav.map((item) => {\n const Icon = item.icon ?? labelIcon(item.label);\n return (\n <DropdownMenuItem key={item.href} asChild>\n <Link href={item.href}>\n <Icon className=\"h-4 w-4\" />\n {item.label}\n </Link>\n </DropdownMenuItem>\n );\n })}\n {(profileHref || accountNav.length > 0) && (\n <DropdownMenuSeparator />\n )}\n <DropdownMenuItem\n variant=\"destructive\"\n disabled={logout.isPending}\n onClick={() => logout.mutate()}\n >\n <LogOut className=\"h-4 w-4\" />\n {logout.isPending ? 'Logging out...' : 'Sign Out'}\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n\n {/* Mobile hamburger */}\n <button\n type=\"button\"\n aria-label={isDrawerOpen ? 'Close menu' : 'Open menu'}\n className=\"inline-flex h-10 w-10 items-center justify-center rounded-md border border-gray-300 hover:bg-gray-50 md:hidden\"\n onClick={() => setIsDrawerOpen(!isDrawerOpen)}\n >\n {isDrawerOpen ? (\n <X className=\"h-5 w-5\" />\n ) : (\n <Menu className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n\n {/* Mobile right drawer */}\n {isDrawerOpen && (\n <div\n className=\"fixed inset-0 z-[30] duration-200 md:hidden\"\n onClick={() => setIsDrawerOpen(false)}\n />\n )}\n\n <div\n className={cn(\n 'fixed top-0 right-0 z-[31] h-[100svh] w-full max-w-[92%] border-l border-gray-200 bg-white shadow-xl sm:max-w-[420px] md:hidden',\n 'transition-transform duration-250 ease-out',\n isDrawerOpen ? 'translate-x-0' : 'translate-x-full',\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Mobile menu\"\n >\n <div className=\"flex h-full flex-col\">\n <div className=\"mt-1 flex items-center justify-between border-b px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Image\n src={logoPath}\n alt=\"\"\n width={25}\n height={25}\n className=\"h-6 w-6 rounded object-contain\"\n />\n <span className=\"text-sm font-semibold\">{brand}</span>\n <span className=\"rounded border border-gray-200 bg-gray-50 px-1 py-0 text-[10px] font-medium text-gray-400 leading-none\">\n {portal}\n </span>\n </div>\n <button\n type=\"button\"\n aria-label=\"Close menu\"\n className=\"inline-flex h-9 w-9 items-center justify-center rounded-md transition-colors hover:bg-gray-100\"\n onClick={() => setIsDrawerOpen(false)}\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n\n <div className=\"flex-1 overflow-y-auto p-4\">\n {userPrimary && (\n <div className=\"flex items-center gap-2 pb-2\">\n <UserRound className=\"h-5 w-5 text-gray-500\" />\n <span className=\"text-sm font-semibold text-gray-900\">\n {userPrimary}\n </span>\n </div>\n )}\n\n <Separator className=\"my-4\" />\n\n {actions && <div className=\"mb-2\">{actions}</div>}\n\n <nav className=\"space-y-1\">\n {nav.map((item) => {\n const Icon = item.icon ?? labelIcon(item.label);\n return (\n <Link\n key={item.href}\n href={item.href}\n className=\"block w-full\"\n >\n <button className=\"flex w-full items-center justify-between rounded-md border border-transparent px-3 py-2 text-sm transition-colors hover:border-gray-200 hover:bg-gray-50\">\n <div className=\"flex items-center gap-2\">\n <Icon className=\"h-4 w-4 text-gray-500\" />\n <span>{item.label}</span>\n {!!item.badge && (\n <span className=\"inline-flex h-4 w-4 items-center justify-center rounded-full bg-amber-400 text-[10px] font-bold leading-none text-amber-900\">\n !\n </span>\n )}\n </div>\n <ChevronRight className=\"h-4 w-4 text-gray-300\" />\n </button>\n </Link>\n );\n })}\n </nav>\n </div>\n\n <div className=\"mt-auto border-t px-4 py-3 space-y-1\">\n {profileHref && (\n <Link href={profileHref} className=\"block w-full\">\n <button className=\"flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-gray-50\">\n <UserRound className=\"h-4 w-4\" />\n Profile\n </button>\n </Link>\n )}\n {accountNav.map((item) => {\n const Icon = item.icon ?? labelIcon(item.label);\n return (\n <Link key={item.href} href={item.href} className=\"block w-full\">\n <button className=\"flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-gray-50\">\n <Icon className=\"h-4 w-4\" />\n {item.label}\n </button>\n </Link>\n );\n })}\n <button\n onClick={() => logout.mutate()}\n disabled={logout.isPending}\n className=\"flex w-full items-center justify-center gap-2 rounded-md py-2 font-medium text-red-600 transition-colors hover:bg-red-50\"\n >\n <LogOut className=\"h-4 w-4\" />\n {logout.isPending ? 'Logging out...' : 'Sign Out'}\n </button>\n </div>\n </div>\n </div>\n </header>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"app-header.js","sources":["../../../src/components/ui/app-header.tsx"],"sourcesContent":["import Link from 'next/link';\r\nimport Image from 'next/image';\r\nimport { usePathname, useRouter } from 'next/navigation';\r\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuSeparator,\r\n} from '@/components/ui/dropdown-menu';\r\nimport { Button } from '@/components/ui/button';\r\nimport { Separator } from '@/components/ui/separator';\r\nimport { cn } from '@/utils';\r\nimport {\r\n LogOut,\r\n Menu,\r\n X,\r\n UserRound,\r\n ChevronDown,\r\n ChevronRight,\r\n Handshake,\r\n Mail,\r\n History,\r\n FileText,\r\n Users,\r\n LayoutDashboard,\r\n FileSignature,\r\n GraduationCap,\r\n Building2,\r\n SearchCheck,\r\n} from 'lucide-react';\r\nimport { useState, useEffect } from 'react';\r\nimport type { ReactNode } from 'react';\r\nimport type { LucideIcon } from 'lucide-react';\r\n\r\nexport interface NavItem {\r\n href: string;\r\n label: string;\r\n badge?: number;\r\n icon?: LucideIcon;\r\n}\r\n\r\ninterface AppHeaderProps {\r\n portal: string;\r\n homeHref: string;\r\n nav: NavItem[];\r\n userPrimary?: string;\r\n userSecondary?: string;\r\n logout: () => Promise<unknown>;\r\n postLogoutPath: string;\r\n profileHref?: string;\r\n userAvatarUrl?: string | null;\r\n accountNav?: NavItem[];\r\n /** Overrides the hardcoded \"Partners\" brand text. */\r\n brand?: string;\r\n /** Overrides the hardcoded \"/betterinternship-logo.png\" logo path. */\r\n logoPath?: string;\r\n /** Extra controls rendered next to the nav (desktop) and inside the drawer (mobile). */\r\n actions?: ReactNode;\r\n}\r\n\r\nfunction labelIcon(label: string): LucideIcon {\r\n const map: Record<string, LucideIcon> = {\r\n Partners: Handshake,\r\n Invites: Mail,\r\n Invitations: Mail,\r\n Accounts: Users,\r\n 'Activity Log': History,\r\n 'MOA Templates': FileText,\r\n Universities: GraduationCap,\r\n Companies: Building2,\r\n 'Company Reviews': SearchCheck,\r\n 'Request MOA': FileSignature,\r\n Dashboard: LayoutDashboard,\r\n };\r\n return map[label] ?? Handshake;\r\n}\r\n\r\nexport function AppHeader({\r\n portal,\r\n homeHref,\r\n nav,\r\n userPrimary,\r\n userSecondary,\r\n logout: logoutFn,\r\n postLogoutPath,\r\n profileHref,\r\n userAvatarUrl,\r\n accountNav = [],\r\n brand = 'Partners',\r\n logoPath = '/betterinternship-logo.png',\r\n actions,\r\n}: AppHeaderProps) {\r\n const pathname = usePathname() ?? '';\r\n const router = useRouter();\r\n const queryClient = useQueryClient();\r\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n setIsDrawerOpen(false);\r\n }, [pathname]);\r\n\r\n useEffect(() => {\r\n document.body.style.overflow = isDrawerOpen ? 'hidden' : '';\r\n return () => {\r\n document.body.style.overflow = '';\r\n };\r\n }, [isDrawerOpen]);\r\n\r\n const logout = useMutation({\r\n mutationFn: logoutFn,\r\n onSettled: () => {\r\n queryClient.clear();\r\n router.replace(postLogoutPath);\r\n },\r\n });\r\n\r\n const isActive = (href: string) =>\r\n pathname === href || pathname.startsWith(`${href}/`);\r\n\r\n return (\r\n <header className=\"bg-background/70 sticky top-0 z-40 border-b py-2 backdrop-blur\">\r\n <div className=\"mx-auto flex h-16 items-center justify-between gap-2 px-4 sm:px-6 lg:px-8\">\r\n {/* Brand */}\r\n <Link\r\n href={homeHref}\r\n className=\"block flex-shrink-0 border-none text-black! outline-none focus:outline-none\"\r\n >\r\n <div className=\"flex items-center gap-2\">\r\n <Image\r\n src={logoPath}\r\n alt=\"\"\r\n width={25}\r\n height={25}\r\n className=\"flex-none\"\r\n />\r\n <div className=\"flex items-center\">\r\n <h1 className=\"font-display text-lg font-bold text-gray-900\">\r\n {brand}\r\n </h1>\r\n <span className=\"mx-2.5 text-gray-300\" aria-hidden=\"true\">\r\n |\r\n </span>\r\n <span className=\"font-display text-gray-500\">\r\n {portal === 'Platform Admin' ? portal : `${portal} Portal`}\r\n </span>\r\n </div>\r\n </div>\r\n </Link>\r\n\r\n {/* Desktop right side: nav buttons + user */}\r\n <div className=\"hidden flex-1 items-center justify-end gap-2 md:flex\">\r\n {nav.map((item) => {\r\n const Icon = item.icon ?? labelIcon(item.label);\r\n return (\r\n <Button\r\n key={item.href}\r\n variant=\"ghost\"\r\n className={cn(\r\n 'relative h-auto min-w-0 flex-col items-center justify-center gap-1 rounded-[0.33em] px-3 py-1',\r\n isActive(item.href)\r\n ? 'text-primary'\r\n : 'opacity-80 hover:bg-gray-100 hover:opacity-100',\r\n )}\r\n onClick={() => router.push(item.href)}\r\n >\r\n <Icon className=\"!h-6 !w-6\" strokeWidth={1.7} />\r\n <span className=\"text-xs\">{item.label}</span>\r\n {!!item.badge && (\r\n <span className=\"absolute -top-0.5 right-5.5 inline-flex h-4 w-4 items-center justify-center rounded-full bg-amber-400 text-[10px] font-bold leading-none text-amber-900\">\r\n {item.badge}\r\n </span>\r\n )}\r\n </Button>\r\n );\r\n })}\r\n\r\n {actions}\r\n\r\n {/* User dropdown */}\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n className={cn(\r\n 'group h-auto w-20 flex-col items-center justify-center gap-1 rounded-[0.33em] px-2 py-1',\r\n (profileHref && isActive(profileHref)) ||\r\n accountNav.some((item) => isActive(item.href))\r\n ? 'text-primary'\r\n : 'opacity-80 hover:bg-gray-100 hover:opacity-100',\r\n )}\r\n >\r\n <div className=\"flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-gray-100\">\r\n {userAvatarUrl ? (\r\n <img\r\n src={userAvatarUrl}\r\n alt=\"\"\r\n className=\"h-full w-full object-contain\"\r\n />\r\n ) : (\r\n <UserRound className=\"h-5 w-5 text-gray-500\" />\r\n )}\r\n </div>\r\n <div className=\"flex items-center gap-0.5\">\r\n <span className=\"text-xs\">Account</span>\r\n <ChevronDown className=\"!h-3 !w-3 transition-transform group-data-[state=open]:rotate-180\" />\r\n </div>\r\n </Button>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"end\" className=\"w-max min-w-44\">\r\n {userPrimary && (\r\n <div className=\"px-2 py-1.5\">\r\n <div className=\"text-center text-sm font-medium\">\r\n {userPrimary}\r\n </div>\r\n {userSecondary && (\r\n <div className=\"text-muted-foreground text-center text-xs\">\r\n {userSecondary}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <DropdownMenuSeparator />\r\n {profileHref && (\r\n <DropdownMenuItem asChild>\r\n <Link href={profileHref}>\r\n <UserRound className=\"h-4 w-4\" />\r\n Profile\r\n </Link>\r\n </DropdownMenuItem>\r\n )}\r\n {accountNav.map((item) => {\r\n const Icon = item.icon ?? labelIcon(item.label);\r\n return (\r\n <DropdownMenuItem key={item.href} asChild>\r\n <Link href={item.href}>\r\n <Icon className=\"h-4 w-4\" />\r\n {item.label}\r\n </Link>\r\n </DropdownMenuItem>\r\n );\r\n })}\r\n {(profileHref || accountNav.length > 0) && (\r\n <DropdownMenuSeparator />\r\n )}\r\n <DropdownMenuItem\r\n variant=\"destructive\"\r\n disabled={logout.isPending}\r\n onClick={() => logout.mutate()}\r\n >\r\n <LogOut className=\"h-4 w-4\" />\r\n {logout.isPending ? 'Logging out...' : 'Sign Out'}\r\n </DropdownMenuItem>\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n </div>\r\n\r\n {/* Mobile hamburger */}\r\n <button\r\n type=\"button\"\r\n aria-label={isDrawerOpen ? 'Close menu' : 'Open menu'}\r\n className=\"inline-flex h-10 w-10 items-center justify-center rounded-md border border-gray-300 hover:bg-gray-50 md:hidden\"\r\n onClick={() => setIsDrawerOpen(!isDrawerOpen)}\r\n >\r\n {isDrawerOpen ? (\r\n <X className=\"h-5 w-5\" />\r\n ) : (\r\n <Menu className=\"h-5 w-5\" />\r\n )}\r\n </button>\r\n </div>\r\n\r\n {/* Mobile right drawer */}\r\n {isDrawerOpen && (\r\n <div\r\n className=\"fixed inset-0 z-[30] duration-200 md:hidden\"\r\n onClick={() => setIsDrawerOpen(false)}\r\n />\r\n )}\r\n\r\n <div\r\n className={cn(\r\n 'fixed top-0 right-0 z-[31] h-[100svh] w-full max-w-[92%] border-l border-gray-200 bg-white shadow-xl sm:max-w-[420px] md:hidden',\r\n 'transition-transform duration-250 ease-out',\r\n isDrawerOpen ? 'translate-x-0' : 'translate-x-full',\r\n )}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Mobile menu\"\r\n >\r\n <div className=\"flex h-full flex-col\">\r\n <div className=\"mt-1 flex items-center justify-between border-b px-4 py-3\">\r\n <div className=\"flex items-center gap-2\">\r\n <Image\r\n src={logoPath}\r\n alt=\"\"\r\n width={25}\r\n height={25}\r\n className=\"h-6 w-6 rounded object-contain\"\r\n />\r\n <span className=\"text-sm font-semibold\">{brand}</span>\r\n <span className=\"rounded border border-gray-200 bg-gray-50 px-1 py-0 text-[10px] font-medium text-gray-400 leading-none\">\r\n {portal}\r\n </span>\r\n </div>\r\n <button\r\n type=\"button\"\r\n aria-label=\"Close menu\"\r\n className=\"inline-flex h-9 w-9 items-center justify-center rounded-md transition-colors hover:bg-gray-100\"\r\n onClick={() => setIsDrawerOpen(false)}\r\n >\r\n <X className=\"h-5 w-5\" />\r\n </button>\r\n </div>\r\n\r\n <div className=\"flex-1 overflow-y-auto p-4\">\r\n {userPrimary && (\r\n <div className=\"flex items-center gap-2 pb-2\">\r\n <UserRound className=\"h-5 w-5 text-gray-500\" />\r\n <span className=\"text-sm font-semibold text-gray-900\">\r\n {userPrimary}\r\n </span>\r\n </div>\r\n )}\r\n\r\n <Separator className=\"my-4\" />\r\n\r\n {actions && <div className=\"mb-2\">{actions}</div>}\r\n\r\n <nav className=\"space-y-1\">\r\n {nav.map((item) => {\r\n const Icon = item.icon ?? labelIcon(item.label);\r\n return (\r\n <Link\r\n key={item.href}\r\n href={item.href}\r\n className=\"block w-full\"\r\n >\r\n <button className=\"flex w-full items-center justify-between rounded-md border border-transparent px-3 py-2 text-sm transition-colors hover:border-gray-200 hover:bg-gray-50\">\r\n <div className=\"flex items-center gap-2\">\r\n <Icon className=\"h-4 w-4 text-gray-500\" />\r\n <span>{item.label}</span>\r\n {!!item.badge && (\r\n <span className=\"inline-flex h-4 w-4 items-center justify-center rounded-full bg-amber-400 text-[10px] font-bold leading-none text-amber-900\">\r\n !\r\n </span>\r\n )}\r\n </div>\r\n <ChevronRight className=\"h-4 w-4 text-gray-300\" />\r\n </button>\r\n </Link>\r\n );\r\n })}\r\n </nav>\r\n </div>\r\n\r\n <div className=\"mt-auto border-t px-4 py-3 space-y-1\">\r\n {profileHref && (\r\n <Link href={profileHref} className=\"block w-full\">\r\n <button className=\"flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-gray-50\">\r\n <UserRound className=\"h-4 w-4\" />\r\n Profile\r\n </button>\r\n </Link>\r\n )}\r\n {accountNav.map((item) => {\r\n const Icon = item.icon ?? labelIcon(item.label);\r\n return (\r\n <Link key={item.href} href={item.href} className=\"block w-full\">\r\n <button className=\"flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-gray-50\">\r\n <Icon className=\"h-4 w-4\" />\r\n {item.label}\r\n </button>\r\n </Link>\r\n );\r\n })}\r\n <button\r\n onClick={() => logout.mutate()}\r\n disabled={logout.isPending}\r\n className=\"flex w-full items-center justify-center gap-2 rounded-md py-2 font-medium text-red-600 transition-colors hover:bg-red-50\"\r\n >\r\n <LogOut className=\"h-4 w-4\" />\r\n {logout.isPending ? 'Logging out...' : 'Sign Out'}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </header>\r\n );\r\n}\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../../src/components/ui/avatar.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\n\nimport { cn } from '@/utils';\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n 'relative flex size-8 shrink-0 overflow-hidden rounded-full',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'bg-muted flex size-full items-center justify-center rounded-full',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"names":["_jsx"],"mappings":";;;;AAKA,SAAS,MAAM,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EAC0C,EAAA;IAClD,QACEA,IAAC,eAAe,CAAC,IAAI,EAAA,EAAA,WAAA,EACT,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,4DAA4D,EAC5D,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EAC2C,EAAA;IACnD,QACEA,IAAC,eAAe,CAAC,KAAK,EAAA,EAAA,WAAA,EACV,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAC/C,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EAC8C,EAAA;IACtD,QACEA,IAAC,eAAe,CAAC,QAAQ,EAAA,EAAA,WAAA,EACb,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACX,kEAAkE,EAClE,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN;;;;"}
1
+ {"version":3,"file":"avatar.js","sources":["../../../src/components/ui/avatar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction Avatar({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\r\n return (\r\n <AvatarPrimitive.Root\r\n data-slot=\"avatar\"\r\n className={cn(\r\n 'relative flex size-8 shrink-0 overflow-hidden rounded-full',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction AvatarImage({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\r\n return (\r\n <AvatarPrimitive.Image\r\n data-slot=\"avatar-image\"\r\n className={cn('aspect-square size-full', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction AvatarFallback({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\r\n return (\r\n <AvatarPrimitive.Fallback\r\n data-slot=\"avatar-fallback\"\r\n className={cn(\r\n 'bg-muted flex size-full items-center justify-center rounded-full',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback };\r\n"],"names":["_jsx"],"mappings":";;;;AAKA,SAAS,MAAM,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EAC0C,EAAA;IAClD,QACEA,IAAC,eAAe,CAAC,IAAI,EAAA,EAAA,WAAA,EACT,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,4DAA4D,EAC5D,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EAC2C,EAAA;IACnD,QACEA,IAAC,eAAe,CAAC,KAAK,EAAA,EAAA,WAAA,EACV,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAC/C,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EAC8C,EAAA;IACtD,QACEA,IAAC,eAAe,CAAC,QAAQ,EAAA,EAAA,WAAA,EACb,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACX,kEAAkE,EAClE,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/utils';\nimport { BooleanCheckIcon } from './icons';\n\nconst badgeVariants = cva(\n [\n 'border',\n 'cursor-default',\n 'font-semibold',\n 'inline-flex',\n 'items-center',\n 'px-[0.75em]',\n 'py-[0.25em]',\n 'rounded-[0.33em]',\n 'select-none',\n 'text-xs',\n 'transition-colors',\n 'whitespace-nowrap',\n ],\n {\n variants: {\n variant: {\n outline: ['bg-transparent', 'border-opacity-70'],\n solid: ['border-transparent'],\n },\n type: {\n default: [],\n primary: [],\n accent: [],\n supportive: [],\n warning: [],\n destructive: [],\n },\n strength: {\n default: ['opacity-100'],\n medium: ['opacity-80'],\n light: ['opacity-50'],\n invisible: ['opacity-0'],\n },\n },\n compoundVariants: [\n {\n variant: 'outline',\n type: 'default',\n class: 'border-gray-400 text-gray-600',\n },\n {\n variant: 'outline',\n type: 'primary',\n class: 'border-primary/80 text-primary',\n },\n {\n variant: 'outline',\n type: 'accent',\n class: 'border-accent/80 text-accent',\n },\n {\n variant: 'outline',\n type: 'supportive',\n class: 'border-supportive/80 text-supportive',\n },\n {\n variant: 'outline',\n type: 'warning',\n class: 'border-warning/80 text-warning',\n },\n {\n variant: 'outline',\n type: 'destructive',\n class: 'border-destructive/80 text-destructive',\n },\n { variant: 'solid', type: 'default', class: 'bg-gray-100 text-gray-700' },\n {\n variant: 'solid',\n type: 'primary',\n class: 'bg-primary text-primary-foreground',\n },\n {\n variant: 'solid',\n type: 'accent',\n class: 'bg-accent text-accent-foreground',\n },\n {\n variant: 'solid',\n type: 'supportive',\n class: 'bg-supportive text-supportive-foreground',\n },\n {\n variant: 'solid',\n type: 'warning',\n class: 'bg-warning text-warning-foreground',\n },\n {\n variant: 'solid',\n type: 'destructive',\n class: 'bg-destructive text-destructive-foreground',\n },\n ],\n defaultVariants: {\n variant: 'outline',\n type: 'default',\n strength: 'default',\n },\n },\n);\n\nexport interface BadgeProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport function Badge({\n className,\n variant,\n type,\n strength,\n ...props\n}: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, type, strength }), className)}\n {...props}\n />\n );\n}\nBadge.displayName = 'Badge';\n\nexport function BoolBadge({\n state,\n onValue,\n offValue,\n onScheme = 'supportive',\n offScheme = 'accent',\n className = '',\n ...props\n}: {\n state: boolean | null | undefined;\n onValue: string;\n offValue: string;\n onScheme?: 'default' | 'primary' | 'accent' | 'supportive' | 'destructive';\n offScheme?: 'default' | 'primary' | 'accent' | 'supportive' | 'destructive';\n className?: string;\n}) {\n return (\n <Badge\n variant=\"solid\"\n type={state ? onScheme : offScheme}\n {...props}\n className={cn('pointer-events-none rounded-[0.33em]', className)}\n >\n <BooleanCheckIcon checked={state} />\n {state ? onValue : offValue}\n </Badge>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"badge.js","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/utils';\r\nimport { BooleanCheckIcon } from './icons';\r\n\r\nconst badgeVariants = cva(\r\n [\r\n 'border',\r\n 'cursor-default',\r\n 'font-semibold',\r\n 'inline-flex',\r\n 'items-center',\r\n 'px-[0.75em]',\r\n 'py-[0.25em]',\r\n 'rounded-[0.33em]',\r\n 'select-none',\r\n 'text-xs',\r\n 'transition-colors',\r\n 'whitespace-nowrap',\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n outline: ['bg-transparent', 'border-opacity-70'],\r\n solid: ['border-transparent'],\r\n },\r\n type: {\r\n default: [],\r\n primary: [],\r\n accent: [],\r\n supportive: [],\r\n warning: [],\r\n destructive: [],\r\n },\r\n strength: {\r\n default: ['opacity-100'],\r\n medium: ['opacity-80'],\r\n light: ['opacity-50'],\r\n invisible: ['opacity-0'],\r\n },\r\n },\r\n compoundVariants: [\r\n {\r\n variant: 'outline',\r\n type: 'default',\r\n class: 'border-gray-400 text-gray-600',\r\n },\r\n {\r\n variant: 'outline',\r\n type: 'primary',\r\n class: 'border-primary/80 text-primary',\r\n },\r\n {\r\n variant: 'outline',\r\n type: 'accent',\r\n class: 'border-accent/80 text-accent',\r\n },\r\n {\r\n variant: 'outline',\r\n type: 'supportive',\r\n class: 'border-supportive/80 text-supportive',\r\n },\r\n {\r\n variant: 'outline',\r\n type: 'warning',\r\n class: 'border-warning/80 text-warning',\r\n },\r\n {\r\n variant: 'outline',\r\n type: 'destructive',\r\n class: 'border-destructive/80 text-destructive',\r\n },\r\n { variant: 'solid', type: 'default', class: 'bg-gray-100 text-gray-700' },\r\n {\r\n variant: 'solid',\r\n type: 'primary',\r\n class: 'bg-primary text-primary-foreground',\r\n },\r\n {\r\n variant: 'solid',\r\n type: 'accent',\r\n class: 'bg-accent text-accent-foreground',\r\n },\r\n {\r\n variant: 'solid',\r\n type: 'supportive',\r\n class: 'bg-supportive text-supportive-foreground',\r\n },\r\n {\r\n variant: 'solid',\r\n type: 'warning',\r\n class: 'bg-warning text-warning-foreground',\r\n },\r\n {\r\n variant: 'solid',\r\n type: 'destructive',\r\n class: 'bg-destructive text-destructive-foreground',\r\n },\r\n ],\r\n defaultVariants: {\r\n variant: 'outline',\r\n type: 'default',\r\n strength: 'default',\r\n },\r\n },\r\n);\r\n\r\nexport interface BadgeProps\r\n extends\r\n React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof badgeVariants> {}\r\n\r\nexport function Badge({\r\n className,\r\n variant,\r\n type,\r\n strength,\r\n ...props\r\n}: BadgeProps) {\r\n return (\r\n <div\r\n className={cn(badgeVariants({ variant, type, strength }), className)}\r\n {...props}\r\n />\r\n );\r\n}\r\nBadge.displayName = 'Badge';\r\n\r\nexport function BoolBadge({\r\n state,\r\n onValue,\r\n offValue,\r\n onScheme = 'supportive',\r\n offScheme = 'accent',\r\n className = '',\r\n ...props\r\n}: {\r\n state: boolean | null | undefined;\r\n onValue: string;\r\n offValue: string;\r\n onScheme?: 'default' | 'primary' | 'accent' | 'supportive' | 'destructive';\r\n offScheme?: 'default' | 'primary' | 'accent' | 'supportive' | 'destructive';\r\n className?: string;\r\n}) {\r\n return (\r\n <Badge\r\n variant=\"solid\"\r\n type={state ? onScheme : offScheme}\r\n {...props}\r\n className={cn('pointer-events-none rounded-[0.33em]', className)}\r\n >\r\n <BooleanCheckIcon checked={state} />\r\n {state ? onValue : offValue}\r\n </Badge>\r\n );\r\n}\r\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/utils';\n\nconst buttonVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'gap-2',\n 'whitespace-nowrap',\n 'rounded-[0.33em]',\n 'text-sm',\n 'font-medium',\n 'transition-colors',\n 'cursor-pointer',\n 'focus:outline-none',\n 'focus:ring-transparent',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n '[&_svg]:pointer-events-none',\n '[&_svg]:size-4',\n '[&_svg]:shrink-0',\n ],\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n outline:\n 'border border-gray-300 text-gray-700 bg-background hover:bg-accent',\n ghost: 'hover:bg-accent text-gray-700 hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n scheme: {\n default: '',\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n supportive:\n 'bg-supportive text-supportive-foreground hover:bg-supportive/90',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n },\n size: {\n default: 'h-8 px-[1em] py-[0.33em]',\n sm: 'h-8 px-3',\n lg: 'h-11 px-8',\n md: 'h-10 px-6',\n icon: 'h-10 w-10',\n xs: 'h-6 px-3 text-xs',\n },\n expandIcon: {\n true: 'max-w-8 gap-0 overflow-hidden px-2 transition-[max-width,padding,gap] duration-200 hover:max-w-48 hover:gap-2 hover:px-3 focus-visible:max-w-48 focus-visible:gap-2 focus-visible:px-3 [&_.button-label]:max-w-0 [&_.button-label]:overflow-hidden [&_.button-label]:opacity-0 [&_.button-label]:transition-[max-width,opacity] [&_.button-label]:duration-200 hover:[&_.button-label]:max-w-40 hover:[&_.button-label]:opacity-100 focus-visible:[&_.button-label]:max-w-40 focus-visible:[&_.button-label]:opacity-100',\n false: '',\n },\n },\n compoundVariants: [\n {\n variant: 'outline',\n scheme: 'primary',\n class:\n 'bg-background border border-primary text-primary hover:bg-blue-50',\n },\n {\n variant: 'outline',\n scheme: 'supportive',\n class:\n 'bg-background border border-supportive text-supportive hover:bg-green-50',\n },\n {\n variant: 'outline',\n scheme: 'destructive',\n class:\n 'bg-background border border-destructive text-destructive hover:bg-red-50',\n },\n {\n variant: 'ghost',\n scheme: 'destructive',\n class:\n 'bg-transparent text-destructive hover:bg-red-50 hover:text-destructive',\n },\n ],\n defaultVariants: {\n variant: 'default',\n size: 'default',\n expandIcon: false,\n },\n },\n);\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, variant, scheme, size, expandIcon, asChild = false, ...props },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, scheme, size, expandIcon, className }),\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"],"names":["React","_jsx"],"mappings":";;;;;;AAMA,MAAM,cAAc,GAAG,GAAG,CACxB;IACE,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,mBAAmB;IACnB,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,wBAAwB;IACxB,8BAA8B;IAC9B,qBAAqB;IACrB,6BAA6B;IAC7B,gBAAgB;IAChB,kBAAkB;CACnB,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,OAAO,EACL,oEAAoE;AACtE,YAAA,KAAK,EAAE,4DAA4D;AACnE,YAAA,IAAI,EAAE,iDAAiD;AACxD,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,UAAU,EACR,iEAAiE;AACnE,YAAA,WAAW,EACT,oEAAoE;AACtE,YAAA,SAAS,EACP,8DAA8D;AACjE,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,EAAE,EAAE,kBAAkB;AACvB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,0fAA0f;AAChgB,YAAA,KAAK,EAAE,EAAE;AACV,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,KAAK,EACH,mEAAmE;AACtE,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,KAAK,EACH,0EAA0E;AAC7E,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,KAAK,EACH,0EAA0E;AAC7E,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,KAAK,EACH,wEAAwE;AAC3E,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA;AACF,CAAA;AAUH,MAAM,MAAM,GAAGA,cAAK,CAAC,UAAU,CAC7B,CACE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAC3E,GAAG,KACD;IACF,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;AACtC,IAAA,QACEC,GAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAE,EAAE,CACX,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CACjE,EACD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
1
+ {"version":3,"file":"button.js","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Slot } from '@radix-ui/react-slot';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nconst buttonVariants = cva(\r\n [\r\n 'inline-flex',\r\n 'items-center',\r\n 'justify-center',\r\n 'gap-2',\r\n 'whitespace-nowrap',\r\n 'rounded-[0.33em]',\r\n 'text-sm',\r\n 'font-medium',\r\n 'transition-colors',\r\n 'cursor-pointer',\r\n 'focus:outline-none',\r\n 'focus:ring-transparent',\r\n 'disabled:pointer-events-none',\r\n 'disabled:opacity-50',\r\n '[&_svg]:pointer-events-none',\r\n '[&_svg]:size-4',\r\n '[&_svg]:shrink-0',\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\r\n outline:\r\n 'border border-gray-300 text-gray-700 bg-background hover:bg-accent',\r\n ghost: 'hover:bg-accent text-gray-700 hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n scheme: {\r\n default: '',\r\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\r\n supportive:\r\n 'bg-supportive text-supportive-foreground hover:bg-supportive/90',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n secondary:\r\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\r\n },\r\n size: {\r\n default: 'h-8 px-[1em] py-[0.33em]',\r\n sm: 'h-8 px-3',\r\n lg: 'h-11 px-8',\r\n md: 'h-10 px-6',\r\n icon: 'h-10 w-10',\r\n xs: 'h-6 px-3 text-xs',\r\n },\r\n expandIcon: {\r\n true: 'max-w-8 gap-0 overflow-hidden px-2 transition-[max-width,padding,gap] duration-200 hover:max-w-48 hover:gap-2 hover:px-3 focus-visible:max-w-48 focus-visible:gap-2 focus-visible:px-3 [&_.button-label]:max-w-0 [&_.button-label]:overflow-hidden [&_.button-label]:opacity-0 [&_.button-label]:transition-[max-width,opacity] [&_.button-label]:duration-200 hover:[&_.button-label]:max-w-40 hover:[&_.button-label]:opacity-100 focus-visible:[&_.button-label]:max-w-40 focus-visible:[&_.button-label]:opacity-100',\r\n false: '',\r\n },\r\n },\r\n compoundVariants: [\r\n {\r\n variant: 'outline',\r\n scheme: 'primary',\r\n class:\r\n 'bg-background border border-primary text-primary hover:bg-blue-50',\r\n },\r\n {\r\n variant: 'outline',\r\n scheme: 'supportive',\r\n class:\r\n 'bg-background border border-supportive text-supportive hover:bg-green-50',\r\n },\r\n {\r\n variant: 'outline',\r\n scheme: 'destructive',\r\n class:\r\n 'bg-background border border-destructive text-destructive hover:bg-red-50',\r\n },\r\n {\r\n variant: 'ghost',\r\n scheme: 'destructive',\r\n class:\r\n 'bg-transparent text-destructive hover:bg-red-50 hover:text-destructive',\r\n },\r\n ],\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default',\r\n expandIcon: false,\r\n },\r\n },\r\n);\r\n\r\nexport interface ButtonProps\r\n extends\r\n React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n (\r\n { className, variant, scheme, size, expandIcon, asChild = false, ...props },\r\n ref,\r\n ) => {\r\n const Comp = asChild ? Slot : 'button';\r\n return (\r\n <Comp\r\n className={cn(\r\n buttonVariants({ variant, scheme, size, expandIcon, className }),\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nButton.displayName = 'Button';\r\n\r\nexport { Button, buttonVariants };\r\n"],"names":["React","_jsx"],"mappings":";;;;;;AAMA,MAAM,cAAc,GAAG,GAAG,CACxB;IACE,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,mBAAmB;IACnB,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,wBAAwB;IACxB,8BAA8B;IAC9B,qBAAqB;IACrB,6BAA6B;IAC7B,gBAAgB;IAChB,kBAAkB;CACnB,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,OAAO,EACL,oEAAoE;AACtE,YAAA,KAAK,EAAE,4DAA4D;AACnE,YAAA,IAAI,EAAE,iDAAiD;AACxD,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,UAAU,EACR,iEAAiE;AACnE,YAAA,WAAW,EACT,oEAAoE;AACtE,YAAA,SAAS,EACP,8DAA8D;AACjE,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,EAAE,EAAE,kBAAkB;AACvB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,0fAA0f;AAChgB,YAAA,KAAK,EAAE,EAAE;AACV,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,KAAK,EACH,mEAAmE;AACtE,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,KAAK,EACH,0EAA0E;AAC7E,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,KAAK,EACH,0EAA0E;AAC7E,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,KAAK,EACH,wEAAwE;AAC3E,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA;AACF,CAAA;AAUH,MAAM,MAAM,GAAGA,cAAK,CAAC,UAAU,CAC7B,CACE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAC3E,GAAG,KACD;IACF,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;AACtC,IAAA,QACEC,GAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAE,EAAE,CACX,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CACjE,EACD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sources":["../../../src/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/utils';\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n 'bg-card text-card-foreground flex flex-col gap-6 rounded-[0.33em] border border-gray-300 py-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn('leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n 'col-start-2 row-span-2 row-start-1 self-start justify-self-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn('px-6', className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn('flex items-center px-6 [.border-t]:pt-6', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n"],"names":["_jsx"],"mappings":";;;AAIA,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AAChE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,MAAM,EAChB,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACtE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,4JAA4J,EAC5J,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACrE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,EAAA,GAClD,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AAC3E,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GACrD,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACtE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACvE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAA,GAC5B,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACtE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,EAAA,GAC/D,KAAK,EAAA,CACT;AAEN;;;;"}
1
+ {"version":3,"file":"card.js","sources":["../../../src/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card\"\r\n className={cn(\r\n 'bg-card text-card-foreground flex flex-col gap-6 rounded-[0.33em] border border-gray-300 py-4',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-header\"\r\n className={cn(\r\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-title\"\r\n className={cn('leading-none font-semibold', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-description\"\r\n className={cn('text-muted-foreground text-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-action\"\r\n className={cn(\r\n 'col-start-2 row-span-2 row-start-1 self-start justify-self-end',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-content\"\r\n className={cn('px-6', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-footer\"\r\n className={cn('flex items-center px-6 [.border-t]:pt-6', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n CardTitle,\r\n CardAction,\r\n CardDescription,\r\n CardContent,\r\n};\r\n"],"names":["_jsx"],"mappings":";;;AAIA,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AAChE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,MAAM,EAChB,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACtE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,4JAA4J,EAC5J,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACrE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,EAAA,GAClD,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AAC3E,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GACrD,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACtE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACvE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAA,GAC5B,KAAK,EAAA,CACT;AAEN;AAEA,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,EAAA;AACtE,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACY,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,EAAA,GAC/D,KAAK,EAAA,CACT;AAEN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { CheckIcon } from 'lucide-react';\n\nimport { cn } from '@/utils';\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n onClick={(e) => e.stopPropagation()}\n className={cn(\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"names":["_jsx"],"mappings":";;;;;AAMA,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EAC4C,EAAA;IACpD,QACEA,GAAA,CAAC,iBAAiB,CAAC,IAAI,iBACX,UAAU,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EACnC,SAAS,EAAE,EAAE,CACX,4fAA4f,EAC5f,SAAS,CACV,EAAA,GACG,KAAK,EAAA,QAAA,EAETA,GAAA,CAAC,iBAAiB,CAAC,SAAS,EAAA,EAAA,WAAA,EAChB,oBAAoB,EAC9B,SAAS,EAAC,+DAA+D,EAAA,QAAA,EAEzEA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA,CAAG,EAAA,CACN,EAAA,CACP;AAE7B;;;;"}
1
+ {"version":3,"file":"checkbox.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\r\nimport { CheckIcon } from 'lucide-react';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction Checkbox({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\r\n return (\r\n <CheckboxPrimitive.Root\r\n data-slot=\"checkbox\"\r\n onClick={(e) => e.stopPropagation()}\r\n className={cn(\r\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator\r\n data-slot=\"checkbox-indicator\"\r\n className=\"flex items-center justify-center text-current transition-none\"\r\n >\r\n <CheckIcon className=\"size-3.5\" />\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n );\r\n}\r\n\r\nexport { Checkbox };\r\n"],"names":["_jsx"],"mappings":";;;;;AAMA,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EAC4C,EAAA;IACpD,QACEA,GAAA,CAAC,iBAAiB,CAAC,IAAI,iBACX,UAAU,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EACnC,SAAS,EAAE,EAAE,CACX,4fAA4f,EAC5f,SAAS,CACV,EAAA,GACG,KAAK,EAAA,QAAA,EAETA,GAAA,CAAC,iBAAiB,CAAC,SAAS,EAAA,EAAA,WAAA,EAChB,oBAAoB,EAC9B,SAAS,EAAC,+DAA+D,EAAA,QAAA,EAEzEA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA,CAAG,EAAA,CACN,EAAA,CACP;AAE7B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sources":["../../../src/components/ui/dialog.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@/utils';\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction DialogBottomSheet({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom fixed bottom-0 left-0 right-0 z-50 w-full rounded-t-xl border-t shadow-lg duration-300',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nexport {\n Dialog,\n DialogBottomSheet,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sources":["../../../src/components/ui/dialog.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction Dialog({\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\r\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\r\n}\r\n\r\nfunction DialogTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\r\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\r\n}\r\n\r\nfunction DialogPortal({\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\r\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\r\n}\r\n\r\nfunction DialogClose({\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\r\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\r\n}\r\n\r\nfunction DialogOverlay({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\r\n return (\r\n <DialogPrimitive.Overlay\r\n data-slot=\"dialog-overlay\"\r\n className={cn(\r\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogContent({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\r\n showCloseButton?: boolean;\r\n}) {\r\n return (\r\n <DialogPortal data-slot=\"dialog-portal\">\r\n <DialogOverlay />\r\n <DialogPrimitive.Content\r\n data-slot=\"dialog-content\"\r\n className={cn(\r\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogPrimitive.Close\r\n data-slot=\"dialog-close\"\r\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n )}\r\n </DialogPrimitive.Content>\r\n </DialogPortal>\r\n );\r\n}\r\n\r\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"dialog-header\"\r\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"dialog-footer\"\r\n className={cn(\r\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogTitle({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\r\n return (\r\n <DialogPrimitive.Title\r\n data-slot=\"dialog-title\"\r\n className={cn('text-lg leading-none font-semibold', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogDescription({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\r\n return (\r\n <DialogPrimitive.Description\r\n data-slot=\"dialog-description\"\r\n className={cn('text-muted-foreground text-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogBottomSheet({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n ...props\r\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\r\n showCloseButton?: boolean;\r\n}) {\r\n return (\r\n <DialogPortal data-slot=\"dialog-portal\">\r\n <DialogOverlay />\r\n <DialogPrimitive.Content\r\n data-slot=\"dialog-content\"\r\n className={cn(\r\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom fixed bottom-0 left-0 right-0 z-50 w-full rounded-t-xl border-t shadow-lg duration-300',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogPrimitive.Close\r\n data-slot=\"dialog-close\"\r\n className=\"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n )}\r\n </DialogPrimitive.Content>\r\n </DialogPortal>\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogBottomSheet,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogOverlay,\r\n DialogPortal,\r\n DialogTitle,\r\n DialogTrigger,\r\n};\r\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@/utils';\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n // z-[1100] (not the default z-50) — the shared modal system's\n // backdrop is z-[1000] (app/providers/modal-provider.tsx), and\n // this portals to document.body as a sibling of it, so it needs\n // to clear that to render above a modal. Matches the same fix\n // already applied to SelectContent (components/ui/select.tsx).\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1100] max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n // z-[1100] — see the matching note on DropdownMenuContent above.\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1100] min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction DropdownMenu({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\r\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuPortal({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\r\n return (\r\n <DropdownMenuPrimitive.Trigger\r\n data-slot=\"dropdown-menu-trigger\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuContent({\r\n className,\r\n sideOffset = 4,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.Content\r\n data-slot=\"dropdown-menu-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n // z-[1100] (not the default z-50) — the shared modal system's\r\n // backdrop is z-[1000] (app/providers/modal-provider.tsx), and\r\n // this portals to document.body as a sibling of it, so it needs\r\n // to clear that to render above a modal. Matches the same fix\r\n // already applied to SelectContent (components/ui/select.tsx).\r\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1100] max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n );\r\n}\r\n\r\nfunction DropdownMenuGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\r\n return (\r\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuItem({\r\n className,\r\n inset,\r\n variant = 'default',\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\r\n inset?: boolean;\r\n variant?: 'default' | 'destructive';\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Item\r\n data-slot=\"dropdown-menu-item\"\r\n data-inset={inset}\r\n data-variant={variant}\r\n className={cn(\r\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuCheckboxItem({\r\n className,\r\n children,\r\n checked,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem\r\n data-slot=\"dropdown-menu-checkbox-item\"\r\n className={cn(\r\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className,\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CheckIcon className=\"size-4\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioGroup\r\n data-slot=\"dropdown-menu-radio-group\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioItem({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioItem\r\n data-slot=\"dropdown-menu-radio-item\"\r\n className={cn(\r\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CircleIcon className=\"size-2 fill-current\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.RadioItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuLabel({\r\n className,\r\n inset,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Label\r\n data-slot=\"dropdown-menu-label\"\r\n data-inset={inset}\r\n className={cn(\r\n 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSeparator({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\r\n return (\r\n <DropdownMenuPrimitive.Separator\r\n data-slot=\"dropdown-menu-separator\"\r\n className={cn('bg-border -mx-1 my-1 h-px', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuShortcut({\r\n className,\r\n ...props\r\n}: React.ComponentProps<'span'>) {\r\n return (\r\n <span\r\n data-slot=\"dropdown-menu-shortcut\"\r\n className={cn(\r\n 'text-muted-foreground ml-auto text-xs tracking-widest',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSub({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\r\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuSubTrigger({\r\n className,\r\n inset,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.SubTrigger\r\n data-slot=\"dropdown-menu-sub-trigger\"\r\n data-inset={inset}\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRightIcon className=\"ml-auto size-4\" />\r\n </DropdownMenuPrimitive.SubTrigger>\r\n );\r\n}\r\n\r\nfunction DropdownMenuSubContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\r\n return (\r\n <DropdownMenuPrimitive.SubContent\r\n data-slot=\"dropdown-menu-sub-content\"\r\n className={cn(\r\n // z-[1100] — see the matching note on DropdownMenuContent above.\r\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1100] min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuPortal,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuLabel,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioGroup,\r\n DropdownMenuRadioItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuSubContent,\r\n};\r\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Button } from './button.js';
3
-
4
- const FloatingActionButton = ({ onClick, children }) => {
5
- return (jsx(Button, { onClick: onClick, className: "fixed bottom-4 right-4 z-50 rounded-full p-4 shadow-lg bg-primary text-white hover:bg-primary-dark focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary", children: children }));
6
- };
7
-
8
- export { FloatingActionButton };
9
- //# sourceMappingURL=fab.js.map
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Button } from './button.js';
3
+
4
+ const FloatingActionButton = ({ onClick, children }) => {
5
+ return (jsx(Button, { onClick: onClick, className: "fixed bottom-4 right-4 z-50 rounded-full p-4 shadow-lg bg-primary text-white hover:bg-primary-dark focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary", children: children }));
6
+ };
7
+
8
+ export { FloatingActionButton };
9
+ //# sourceMappingURL=fab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sources":["../../../src/components/ui/icons.tsx"],"sourcesContent":["import {\n CircleCheck,\n XCircle,\n Clipboard,\n Briefcase,\n Users2,\n Globe,\n Wifi,\n GraduationCap,\n Clock,\n PhilippinePeso,\n} from 'lucide-react';\n\nexport const BooleanCheckIcon = ({ checked }: { checked?: boolean | null }) => {\n if (checked)\n return <CircleCheck className=\"w-[1.1em] h-[1.1em] mr-1\"></CircleCheck>;\n else return <XCircle className=\"w-[1.1em] h-[1.1em] mr-1\"></XCircle>;\n};\n\nexport const JobModeIcon = ({ mode }: { mode: number | null | undefined }) => {\n switch (mode) {\n case 0: // On site\n return <Users2 className=\"w-3 h-3 mr-1\" />;\n case 1: // Hybrid\n return <Globe className=\"w-3 h-3 mr-1\" />;\n case 2: // Remote\n return <Wifi className=\"w-3 h-3 mr-1\" />;\n }\n\n // Not specified\n return <Briefcase className=\"w-3 h-3 mr-1\" />;\n};\n\nexport const JobTypeIcon = ({ type }: { type: number | null | undefined }) => {\n switch (type) {\n case 0:\n return <GraduationCap className=\"w-3 h-3 mr-1\" />;\n case 1:\n return <Clock className=\"w-3 h-3 mr-1\" />;\n case 2:\n return <Briefcase className=\"w-3 h-3 mr-1\" />;\n }\n\n // Not specified\n return <Clipboard className=\"w-3 h-3 mr-1\" />;\n};\n\nexport const SalaryIcon = () => {\n return <PhilippinePeso className=\"w-3 h-3 mr-1\" />;\n};\n"],"names":["_jsx"],"mappings":";;;MAaa,gBAAgB,GAAG,CAAC,EAAE,OAAO,EAAgC,KAAI;AAC5E,IAAA,IAAI,OAAO;AACT,QAAA,OAAOA,IAAC,WAAW,EAAA,EAAC,SAAS,EAAC,0BAA0B,GAAe;;AACpE,QAAA,OAAOA,IAAC,OAAO,EAAA,EAAC,SAAS,EAAC,0BAA0B,GAAW;AACtE;MAEa,WAAW,GAAG,CAAC,EAAE,IAAI,EAAuC,KAAI;IAC3E,QAAQ,IAAI;QACV,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,MAAM,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;QAC5C,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;QAC3C,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;;;AAI5C,IAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AAC/C;MAEa,WAAW,GAAG,CAAC,EAAE,IAAI,EAAuC,KAAI;IAC3E,QAAQ,IAAI;AACV,QAAA,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,aAAa,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AACnD,QAAA,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AAC3C,QAAA,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;;;AAIjD,IAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AAC/C;AAEO,MAAM,UAAU,GAAG,MAAK;AAC7B,IAAA,OAAOA,IAAC,cAAc,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AACpD;;;;"}
1
+ {"version":3,"file":"icons.js","sources":["../../../src/components/ui/icons.tsx"],"sourcesContent":["import {\r\n CircleCheck,\r\n XCircle,\r\n Clipboard,\r\n Briefcase,\r\n Users2,\r\n Globe,\r\n Wifi,\r\n GraduationCap,\r\n Clock,\r\n PhilippinePeso,\r\n} from 'lucide-react';\r\n\r\nexport const BooleanCheckIcon = ({ checked }: { checked?: boolean | null }) => {\r\n if (checked)\r\n return <CircleCheck className=\"w-[1.1em] h-[1.1em] mr-1\"></CircleCheck>;\r\n else return <XCircle className=\"w-[1.1em] h-[1.1em] mr-1\"></XCircle>;\r\n};\r\n\r\nexport const JobModeIcon = ({ mode }: { mode: number | null | undefined }) => {\r\n switch (mode) {\r\n case 0: // On site\r\n return <Users2 className=\"w-3 h-3 mr-1\" />;\r\n case 1: // Hybrid\r\n return <Globe className=\"w-3 h-3 mr-1\" />;\r\n case 2: // Remote\r\n return <Wifi className=\"w-3 h-3 mr-1\" />;\r\n }\r\n\r\n // Not specified\r\n return <Briefcase className=\"w-3 h-3 mr-1\" />;\r\n};\r\n\r\nexport const JobTypeIcon = ({ type }: { type: number | null | undefined }) => {\r\n switch (type) {\r\n case 0:\r\n return <GraduationCap className=\"w-3 h-3 mr-1\" />;\r\n case 1:\r\n return <Clock className=\"w-3 h-3 mr-1\" />;\r\n case 2:\r\n return <Briefcase className=\"w-3 h-3 mr-1\" />;\r\n }\r\n\r\n // Not specified\r\n return <Clipboard className=\"w-3 h-3 mr-1\" />;\r\n};\r\n\r\nexport const SalaryIcon = () => {\r\n return <PhilippinePeso className=\"w-3 h-3 mr-1\" />;\r\n};\r\n"],"names":["_jsx"],"mappings":";;;MAaa,gBAAgB,GAAG,CAAC,EAAE,OAAO,EAAgC,KAAI;AAC5E,IAAA,IAAI,OAAO;AACT,QAAA,OAAOA,IAAC,WAAW,EAAA,EAAC,SAAS,EAAC,0BAA0B,GAAe;;AACpE,QAAA,OAAOA,IAAC,OAAO,EAAA,EAAC,SAAS,EAAC,0BAA0B,GAAW;AACtE;MAEa,WAAW,GAAG,CAAC,EAAE,IAAI,EAAuC,KAAI;IAC3E,QAAQ,IAAI;QACV,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,MAAM,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;QAC5C,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;QAC3C,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;;;AAI5C,IAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AAC/C;MAEa,WAAW,GAAG,CAAC,EAAE,IAAI,EAAuC,KAAI;IAC3E,QAAQ,IAAI;AACV,QAAA,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,aAAa,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AACnD,QAAA,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AAC3C,QAAA,KAAK,CAAC;AACJ,YAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;;;AAIjD,IAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AAC/C;AAEO,MAAM,UAAU,GAAG,MAAK;AAC7B,IAAA,OAAOA,IAAC,cAAc,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG;AACpD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Eye, EyeOff } from 'lucide-react';\n\nimport { cn } from '@/utils';\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(\n ({ className, type, disabled, ...props }, ref) => {\n const [passwordVisible, setPasswordVisible] = React.useState(false);\n\n if (type === 'password') {\n const Icon = passwordVisible ? EyeOff : Eye;\n\n return (\n <div className=\"relative\">\n <input\n type={passwordVisible ? 'text' : 'password'}\n className={cn(\n 'bg-background pointer-events-auto relative z-10 box-border flex h-8 min-h-8 max-h-8 w-full rounded-[0.33em] border border-gray-200 px-[0.75em] py-0 pr-10 text-base ring-0 focus:ring-transparent sm:text-sm',\n 'file:text-foreground placeholder:text-muted-foreground/40 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n disabled={disabled}\n {...props}\n />\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground absolute inset-y-0 right-0 z-20 flex w-10 items-center justify-center disabled:cursor-not-allowed disabled:opacity-50\"\n onClick={() => setPasswordVisible((current) => !current)}\n disabled={disabled}\n aria-label={passwordVisible ? 'Hide password' : 'Show password'}\n aria-pressed={passwordVisible}\n >\n <Icon className=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </div>\n );\n }\n\n return (\n <input\n type={type}\n className={cn(\n 'bg-background pointer-events-auto relative z-10 box-border flex h-8 min-h-8 max-h-8 w-full rounded-[0.33em] border border-gray-200 px-[0.75em] py-0 text-base ring-0 focus:ring-transparent sm:text-sm',\n 'file:text-foreground placeholder:text-muted-foreground/40 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n disabled={disabled}\n {...props}\n />\n );\n },\n);\nInput.displayName = 'Input';\n\nexport { Input };\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAKA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC/C,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAEnE,IAAA,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,MAAM,IAAI,GAAG,eAAe,GAAG,MAAM,GAAG,GAAG;QAE3C,QACEA,cAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EAAA,CACvBC,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,UAAU,EAC3C,SAAS,EAAE,EAAE,CACX,8MAA8M,EAC9M,sMAAsM,EACtM,SAAS,CACV,EACD,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,KACd,KAAK,EAAA,CACT,EACFA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mKAAmK,EAC7K,OAAO,EAAE,MAAM,kBAAkB,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,EACxD,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACN,eAAe,GAAG,eAAe,GAAG,eAAe,EAAA,cAAA,EACjD,eAAe,EAAA,QAAA,EAE7BA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,aAAA,EAAa,MAAM,EAAA,CAAG,EAAA,CACxC,CAAA,EAAA,CACL;IAEV;AAEA,IAAA,QACEA,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,wMAAwM,EACxM,sMAAsM,EACtM,SAAS,CACV,EACD,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAAA,GACd,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
1
+ {"version":3,"file":"input.js","sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Eye, EyeOff } from 'lucide-react';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(\r\n ({ className, type, disabled, ...props }, ref) => {\r\n const [passwordVisible, setPasswordVisible] = React.useState(false);\r\n\r\n if (type === 'password') {\r\n const Icon = passwordVisible ? EyeOff : Eye;\r\n\r\n return (\r\n <div className=\"relative\">\r\n <input\r\n type={passwordVisible ? 'text' : 'password'}\r\n className={cn(\r\n 'bg-background pointer-events-auto relative z-10 box-border flex h-8 min-h-8 max-h-8 w-full rounded-[0.33em] border border-gray-200 px-[0.75em] py-0 pr-10 text-base ring-0 focus:ring-transparent sm:text-sm',\r\n 'file:text-foreground placeholder:text-muted-foreground/40 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\r\n className,\r\n )}\r\n ref={ref}\r\n disabled={disabled}\r\n {...props}\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"text-muted-foreground hover:text-foreground absolute inset-y-0 right-0 z-20 flex w-10 items-center justify-center disabled:cursor-not-allowed disabled:opacity-50\"\r\n onClick={() => setPasswordVisible((current) => !current)}\r\n disabled={disabled}\r\n aria-label={passwordVisible ? 'Hide password' : 'Show password'}\r\n aria-pressed={passwordVisible}\r\n >\r\n <Icon className=\"h-4 w-4\" aria-hidden=\"true\" />\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <input\r\n type={type}\r\n className={cn(\r\n 'bg-background pointer-events-auto relative z-10 box-border flex h-8 min-h-8 max-h-8 w-full rounded-[0.33em] border border-gray-200 px-[0.75em] py-0 text-base ring-0 focus:ring-transparent sm:text-sm',\r\n 'file:text-foreground placeholder:text-muted-foreground/40 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\r\n className,\r\n )}\r\n ref={ref}\r\n disabled={disabled}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = 'Input';\r\n\r\nexport { Input };\r\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAKA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC/C,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAEnE,IAAA,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,MAAM,IAAI,GAAG,eAAe,GAAG,MAAM,GAAG,GAAG;QAE3C,QACEA,cAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EAAA,CACvBC,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,UAAU,EAC3C,SAAS,EAAE,EAAE,CACX,8MAA8M,EAC9M,sMAAsM,EACtM,SAAS,CACV,EACD,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,KACd,KAAK,EAAA,CACT,EACFA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mKAAmK,EAC7K,OAAO,EAAE,MAAM,kBAAkB,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,EACxD,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACN,eAAe,GAAG,eAAe,GAAG,eAAe,EAAA,cAAA,EACjD,eAAe,EAAA,QAAA,EAE7BA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,aAAA,EAAa,MAAM,EAAA,CAAG,EAAA,CACxC,CAAA,EAAA,CACL;IAEV;AAEA,IAAA,QACEA,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,wMAAwM,EACxM,sMAAsM,EACtM,SAAS,CACV,EACD,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAAA,GACd,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sources":["../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"names":["_jsx"],"mappings":";;;;AAKA,SAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACyC,EAAA;IACjD,QACEA,IAAC,cAAc,CAAC,IAAI,EAAA,EAAA,WAAA,EACR,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qNAAqN,EACrN,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN;;;;"}
1
+ {"version":3,"file":"label.js","sources":["../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as LabelPrimitive from '@radix-ui/react-label';\r\n\r\nimport { cn } from '@/utils';\r\n\r\nfunction Label({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\r\n return (\r\n <LabelPrimitive.Root\r\n data-slot=\"label\"\r\n className={cn(\r\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Label };\r\n"],"names":["_jsx"],"mappings":";;;;AAKA,SAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACyC,EAAA;IACjD,QACEA,IAAC,cAAc,CAAC,IAAI,EAAA,EAAA,WAAA,EACR,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qNAAqN,EACrN,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.js","sources":["../../../src/components/ui/page-header.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '@/utils';\n\n/** Consistent page container width for authenticated pages. */\nexport function PageContainer({\n className,\n children,\n}: {\n className?: string;\n children: React.ReactNode;\n}) {\n return (\n <div\n className={cn('mx-auto w-full max-w-7xl px-4 py-8 sm:px-6', className)}\n >\n {children}\n </div>\n );\n}\n\nexport function PageHeader({\n title,\n description,\n children,\n actionsClassName,\n}: {\n title: string;\n description?: React.ReactNode;\n children?: React.ReactNode;\n actionsClassName?: string;\n}) {\n return (\n <div className=\"flex flex-wrap items-end justify-between gap-3\">\n <div className=\"space-y-1\">\n <h1 className=\"text-2xl font-semibold tracking-tight text-gray-900\">\n {title}\n </h1>\n {description && (\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n )}\n </div>\n {children && (\n <div className={cn('flex items-center gap-2', actionsClassName)}>\n {children}\n </div>\n )}\n </div>\n );\n}\n\n/** Centered empty/placeholder state inside a dashed card. */\nexport function EmptyState({\n title,\n description,\n children,\n}: {\n title: string;\n description?: React.ReactNode;\n children?: React.ReactNode;\n}) {\n return (\n <div className=\"flex flex-col items-center justify-center gap-2 rounded-[0.33em] border border-dashed border-gray-300 bg-white px-6 py-14 text-center\">\n <p className=\"text-sm font-medium text-gray-700\">{title}</p>\n {description && (\n <p className=\"text-muted-foreground max-w-sm text-sm\">{description}</p>\n )}\n {children && <div className=\"mt-2\">{children}</div>}\n </div>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;AAGA;SACgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,GAIT,EAAA;AACC,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CAAC,4CAA4C,EAAE,SAAS,CAAC,EAAA,QAAA,EAErE,QAAQ,EAAA,CACL;AAEV;AAEM,SAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,gBAAgB,GAMjB,EAAA;IACC,QACEC,cAAK,SAAS,EAAC,gDAAgD,EAAA,QAAA,EAAA,CAC7DA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,WAAW,EAAA,QAAA,EAAA,CACxBD,YAAI,SAAS,EAAC,qDAAqD,EAAA,QAAA,EAChE,KAAK,EAAA,CACH,EACJ,WAAW,KACVA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAE,WAAW,GAAK,CAC/D,CAAA,EAAA,CACG,EACL,QAAQ,KACPA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAC5D,QAAQ,EAAA,CACL,CACP,CAAA,EAAA,CACG;AAEV;AAEA;AACM,SAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,QAAQ,GAKT,EAAA;AACC,IAAA,QACEC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uIAAuI,aACpJD,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,mCAAmC,YAAE,KAAK,EAAA,CAAK,EAC3D,WAAW,KACVA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,wCAAwC,EAAA,QAAA,EAAE,WAAW,EAAA,CAAK,CACxE,EACA,QAAQ,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,CAAA,EAAA,CAC/C;AAEV;;;;"}
1
+ {"version":3,"file":"page-header.js","sources":["../../../src/components/ui/page-header.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { cn } from '@/utils';\r\n\r\n/** Consistent page container width for authenticated pages. */\r\nexport function PageContainer({\r\n className,\r\n children,\r\n}: {\r\n className?: string;\r\n children: React.ReactNode;\r\n}) {\r\n return (\r\n <div\r\n className={cn('mx-auto w-full max-w-7xl px-4 py-8 sm:px-6', className)}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport function PageHeader({\r\n title,\r\n description,\r\n children,\r\n actionsClassName,\r\n}: {\r\n title: string;\r\n description?: React.ReactNode;\r\n children?: React.ReactNode;\r\n actionsClassName?: string;\r\n}) {\r\n return (\r\n <div className=\"flex flex-wrap items-end justify-between gap-3\">\r\n <div className=\"space-y-1\">\r\n <h1 className=\"text-2xl font-semibold tracking-tight text-gray-900\">\r\n {title}\r\n </h1>\r\n {description && (\r\n <p className=\"text-muted-foreground text-sm\">{description}</p>\r\n )}\r\n </div>\r\n {children && (\r\n <div className={cn('flex items-center gap-2', actionsClassName)}>\r\n {children}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\n/** Centered empty/placeholder state inside a dashed card. */\r\nexport function EmptyState({\r\n title,\r\n description,\r\n children,\r\n}: {\r\n title: string;\r\n description?: React.ReactNode;\r\n children?: React.ReactNode;\r\n}) {\r\n return (\r\n <div className=\"flex flex-col items-center justify-center gap-2 rounded-[0.33em] border border-dashed border-gray-300 bg-white px-6 py-14 text-center\">\r\n <p className=\"text-sm font-medium text-gray-700\">{title}</p>\r\n {description && (\r\n <p className=\"text-muted-foreground max-w-sm text-sm\">{description}</p>\r\n )}\r\n {children && <div className=\"mt-2\">{children}</div>}\r\n </div>\r\n );\r\n}\r\n"],"names":["_jsx","_jsxs"],"mappings":";;;AAGA;SACgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,GAIT,EAAA;AACC,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CAAC,4CAA4C,EAAE,SAAS,CAAC,EAAA,QAAA,EAErE,QAAQ,EAAA,CACL;AAEV;AAEM,SAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,gBAAgB,GAMjB,EAAA;IACC,QACEC,cAAK,SAAS,EAAC,gDAAgD,EAAA,QAAA,EAAA,CAC7DA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,WAAW,EAAA,QAAA,EAAA,CACxBD,YAAI,SAAS,EAAC,qDAAqD,EAAA,QAAA,EAChE,KAAK,EAAA,CACH,EACJ,WAAW,KACVA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAE,WAAW,GAAK,CAC/D,CAAA,EAAA,CACG,EACL,QAAQ,KACPA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAC5D,QAAQ,EAAA,CACL,CACP,CAAA,EAAA,CACG;AAEV;AAEA;AACM,SAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,QAAQ,GAKT,EAAA;AACC,IAAA,QACEC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uIAAuI,aACpJD,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,mCAAmC,YAAE,KAAK,EAAA,CAAK,EAC3D,WAAW,KACVA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,wCAAwC,EAAA,QAAA,EAAE,WAAW,EAAA,CAAK,CACxE,EACA,QAAQ,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,CAAA,EAAA,CAC/C;AAEV;;;;"}