react-shadcn-kit 0.2.2 → 0.2.3

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 (111) hide show
  1. package/dist/assets/global.css +1 -1
  2. package/dist/components/composites/ComponentSearch.js +1 -0
  3. package/dist/components/composites/ComponentSearch.js.map +1 -1
  4. package/dist/components/composites/action-button.js +1 -0
  5. package/dist/components/composites/action-button.js.map +1 -1
  6. package/dist/components/composites/theme-toggle.js +1 -0
  7. package/dist/components/composites/theme-toggle.js.map +1 -1
  8. package/dist/components/composites/user-menu.js +1 -0
  9. package/dist/components/composites/user-menu.js.map +1 -1
  10. package/dist/components/data-table/data-table-column-header.js +37 -0
  11. package/dist/components/data-table/data-table-column-header.js.map +1 -0
  12. package/dist/components/data-table/data-table-faceted-filter.js +87 -0
  13. package/dist/components/data-table/data-table-faceted-filter.js.map +1 -0
  14. package/dist/components/data-table/data-table-pagination.js +97 -0
  15. package/dist/components/data-table/data-table-pagination.js.map +1 -0
  16. package/dist/components/data-table/data-table-toolbar.js +65 -0
  17. package/dist/components/data-table/data-table-toolbar.js.map +1 -0
  18. package/dist/components/data-table/data-table-view-options.js +32 -0
  19. package/dist/components/data-table/data-table-view-options.js.map +1 -0
  20. package/dist/components/data-table/data-table.js +143 -0
  21. package/dist/components/data-table/data-table.js.map +1 -0
  22. package/dist/components/kanban/kanban.js +293 -0
  23. package/dist/components/kanban/kanban.js.map +1 -0
  24. package/dist/components/marketing/hero.js +1 -0
  25. package/dist/components/marketing/hero.js.map +1 -1
  26. package/dist/components/marketing/social-proof.js +1 -0
  27. package/dist/components/marketing/social-proof.js.map +1 -1
  28. package/dist/components/marketing/value-props.js +1 -0
  29. package/dist/components/marketing/value-props.js.map +1 -1
  30. package/dist/components/primitives/aspect-ratio.js +1 -0
  31. package/dist/components/primitives/aspect-ratio.js.map +1 -1
  32. package/dist/components/primitives/badge.js +1 -0
  33. package/dist/components/primitives/badge.js.map +1 -1
  34. package/dist/components/primitives/button-group.js +1 -0
  35. package/dist/components/primitives/button-group.js.map +1 -1
  36. package/dist/components/primitives/button.js +1 -0
  37. package/dist/components/primitives/button.js.map +1 -1
  38. package/dist/components/primitives/calendar.js +1 -0
  39. package/dist/components/primitives/calendar.js.map +1 -1
  40. package/dist/components/primitives/carousel.js +1 -0
  41. package/dist/components/primitives/carousel.js.map +1 -1
  42. package/dist/components/primitives/chart.js +1 -0
  43. package/dist/components/primitives/chart.js.map +1 -1
  44. package/dist/components/primitives/checkbox.js +1 -0
  45. package/dist/components/primitives/checkbox.js.map +1 -1
  46. package/dist/components/primitives/context-menu.js +1 -0
  47. package/dist/components/primitives/context-menu.js.map +1 -1
  48. package/dist/components/primitives/custom-button.js +1 -0
  49. package/dist/components/primitives/custom-button.js.map +1 -1
  50. package/dist/components/primitives/drawer.js +1 -0
  51. package/dist/components/primitives/drawer.js.map +1 -1
  52. package/dist/components/primitives/dropdown-menu.js +3 -0
  53. package/dist/components/primitives/dropdown-menu.js.map +1 -1
  54. package/dist/components/primitives/field.js +1 -0
  55. package/dist/components/primitives/field.js.map +1 -1
  56. package/dist/components/primitives/form-context.js +1 -0
  57. package/dist/components/primitives/form-context.js.map +1 -1
  58. package/dist/components/primitives/form.js +1 -0
  59. package/dist/components/primitives/form.js.map +1 -1
  60. package/dist/components/primitives/hover-card.js +1 -0
  61. package/dist/components/primitives/hover-card.js.map +1 -1
  62. package/dist/components/primitives/input-group.js +1 -0
  63. package/dist/components/primitives/input-group.js.map +1 -1
  64. package/dist/components/primitives/input-otp.js +1 -0
  65. package/dist/components/primitives/input-otp.js.map +1 -1
  66. package/dist/components/primitives/label.js +1 -0
  67. package/dist/components/primitives/label.js.map +1 -1
  68. package/dist/components/primitives/loading-swap.js +1 -0
  69. package/dist/components/primitives/loading-swap.js.map +1 -1
  70. package/dist/components/primitives/navigation-menu.js +1 -0
  71. package/dist/components/primitives/navigation-menu.js.map +1 -1
  72. package/dist/components/primitives/popover.js +1 -0
  73. package/dist/components/primitives/popover.js.map +1 -1
  74. package/dist/components/primitives/radio-group.js +1 -0
  75. package/dist/components/primitives/radio-group.js.map +1 -1
  76. package/dist/components/primitives/scroll-area.js +1 -0
  77. package/dist/components/primitives/scroll-area.js.map +1 -1
  78. package/dist/components/primitives/separator.js +1 -0
  79. package/dist/components/primitives/separator.js.map +1 -1
  80. package/dist/components/primitives/sidebar-context.js +1 -0
  81. package/dist/components/primitives/sidebar-context.js.map +1 -1
  82. package/dist/components/primitives/sidebar.js +1 -0
  83. package/dist/components/primitives/sidebar.js.map +1 -1
  84. package/dist/components/primitives/slider.js +1 -0
  85. package/dist/components/primitives/slider.js.map +1 -1
  86. package/dist/components/primitives/sonner.js +1 -0
  87. package/dist/components/primitives/sonner.js.map +1 -1
  88. package/dist/components/primitives/switch.js +1 -0
  89. package/dist/components/primitives/switch.js.map +1 -1
  90. package/dist/components/primitives/tabs.js +1 -0
  91. package/dist/components/primitives/tabs.js.map +1 -1
  92. package/dist/components/primitives/theme-provider.js +1 -0
  93. package/dist/components/primitives/theme-provider.js.map +1 -1
  94. package/dist/components/primitives/toggle-group.js +1 -0
  95. package/dist/components/primitives/toggle-group.js.map +1 -1
  96. package/dist/components/primitives/toggle.js +1 -0
  97. package/dist/components/primitives/toggle.js.map +1 -1
  98. package/dist/components/primitives/tooltip.js +1 -0
  99. package/dist/components/primitives/tooltip.js.map +1 -1
  100. package/dist/hooks/use-aria-live.js +1 -0
  101. package/dist/hooks/use-aria-live.js.map +1 -1
  102. package/dist/hooks/use-focus-visible.js +1 -0
  103. package/dist/hooks/use-focus-visible.js.map +1 -1
  104. package/dist/hooks/use-mobile.js +1 -0
  105. package/dist/hooks/use-mobile.js.map +1 -1
  106. package/dist/hooks/use-screen-reader-only.js +1 -0
  107. package/dist/hooks/use-screen-reader-only.js.map +1 -1
  108. package/dist/index.d.ts +144 -0
  109. package/dist/index.js +266 -245
  110. package/dist/index.js.map +1 -1
  111. package/package.json +17 -1
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as o } from "react/jsx-runtime";
2
3
  import * as r from "@radix-ui/react-hover-card";
3
4
  import { cn as i } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.js","sources":["../../../src/components/primitives/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\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-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"names":["jsx","HoverCardPrimitive","cn","HoverCard","props","HoverCardTrigger","HoverCardContent","className","align","sideOffset"],"mappings":"AAOA,SAAA,OAAAA,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAU,EAAE,GAAGC,KAA+D;AACrF,2BAAQH,EAAmB,MAAnB,EAAwB,aAAU,cAAc,GAAGG,GAAO;AACpE;AAEA,SAASC,EAAiB,EAAE,GAAGD,KAAkE;AAC/F,2BAAQH,EAAmB,SAAnB,EAA2B,aAAU,sBAAsB,GAAGG,GAAO;AAC/E;AAEA,SAASE,EAAiB;AAAA,EACxB,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,YAAAC,IAAa;AAAA,EACb,GAAGL;AACL,GAA4D;AAC1D,SACE,gBAAAJ,EAACC,EAAmB,QAAnB,EAA0B,aAAU,qBACnC,UAAA,gBAAAD;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,OAAAO;AAAA,MACA,YAAAC;AAAA,MACA,WAAWP;AAAA,QACT;AAAA,QACAK;AAAA,MAAA;AAAA,MAED,GAAGH;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
1
+ {"version":3,"file":"hover-card.js","sources":["../../../src/components/primitives/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\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-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"names":[],"mappings":";AAOA;AAAA;AAAA;AAAA;AACE;AACF;AAEA;AACE;AACF;AAEA;AAA0B;AACxB;AACQ;AACK;AAEf;AACE;AAEI;AAAoB;AAAnB;AACW;AACV;AACA;AACW;AACT;AACA;AAAA;AAEE;AAAA;AAIZ;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as r } from "react/jsx-runtime";
2
3
  import { cva as s } from "class-variance-authority";
3
4
  import { cn as n } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.js","sources":["../../../src/components/primitives/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../primitives/button\";\nimport { Input } from \"../primitives/input\";\nimport { Textarea } from \"../primitives/textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\": \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"text-sm shadow-none flex gap-2 items-center\", {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n});\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"names":["InputGroup","className","props","jsx","cn","inputGroupAddonVariants","cva","InputGroupAddon","align","e","inputGroupButtonVariants","InputGroupButton","type","variant","size","Button","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"mappings":";;;;;;AAUA,SAASA,EAAW,EAAE,WAAAC,GAAW,GAAGC,KAAsC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAWC;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA;AAAA,QAGA;AAAA,QAEAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAMG,IAA0BC;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,eACE;AAAA,QACF,aACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,SAASC,EAAgB;AAAA,EACvB,WAAAN;AAAA,EACA,OAAAO,IAAQ;AAAA,EACR,GAAGN;AACL,GAA+E;AAC7E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAYK;AAAA,MACZ,WAAWJ,EAAGC,EAAwB,EAAE,OAAAG,EAAA,CAAO,GAAGP,CAAS;AAAA,MAC3D,SAAS,CAACQ,MAAM;AACd,QAAKA,EAAE,OAAuB,QAAQ,QAAQ,KAG9CA,EAAE,cAAc,eAAe,cAAc,OAAO,GAAG,MAAA;AAAA,MACzD;AAAA,MACC,GAAGP;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAMQ,IAA2BJ,EAAI,+CAA+C;AAAA,EAClF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,WAAW;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC;AAED,SAASK,EAAiB;AAAA,EACxB,WAAAV;AAAA,EACA,MAAAW,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,GAAGZ;AACL,GACiD;AAC/C,SACE,gBAAAC;AAAA,IAACY;AAAA,IAAA;AAAA,MACC,MAAAH;AAAA,MACA,aAAWE;AAAA,MACX,SAAAD;AAAA,MACA,WAAWT,EAAGM,EAAyB,EAAE,MAAAI,EAAA,CAAM,GAAGb,CAAS;AAAA,MAC1D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASc,EAAe,EAAE,WAAAf,GAAW,GAAGC,KAAuC;AAC7E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASe,EAAgB,EAAE,WAAAhB,GAAW,GAAGC,KAAwC;AAC/E,SACE,gBAAAC;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWd;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASiB,EAAmB,EAAE,WAAAlB,GAAW,GAAGC,KAA2C;AACrF,SACE,gBAAAC;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWhB;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"input-group.js","sources":["../../../src/components/primitives/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../primitives/button\";\nimport { Input } from \"../primitives/input\";\nimport { Textarea } from \"../primitives/textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\": \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"text-sm shadow-none flex gap-2 items-center\", {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n});\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"names":[],"mappings":";;;;;;;AAUA;AACE;AACE;AAAC;AAAA;AACW;AACL;AACM;AACT;AACA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AAGA;AAAA;AAGA;AAEA;AAAA;AAEE;AAAA;AAGV;AAEA;AAAgC;AAC9B;AACA;AACY;AACD;AACW;AACF;AAEZ;AAEA;AAAA;AACJ;AAEe;AACR;AAAA;AAGb;AAEA;AAAyB;AACvB;AACQ;AAEV;AACE;AACE;AAAC;AAAA;AACM;AACK;AACE;AAC+C;AAEzD;AAGuD;AACzD;AACI;AAAA;AAGV;AAEA;AAAoF;AACxE;AACF;AACA;AACA;AACO;AACA;AAAA;AACb;AAEe;AACT;AAEV;AAEA;AAA0B;AACxB;AACO;AACG;AACH;AAET;AAEE;AACE;AAAC;AAAA;AACC;AACW;AACX;AAC2D;AACvD;AAAA;AAGV;AAEA;AACE;AACE;AAAC;AAAA;AACY;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAEA;AACE;AACE;AAAC;AAAA;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAEA;AACE;AACE;AAAC;AAAA;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as e, jsxs as u } from "react/jsx-runtime";
2
3
  import * as c from "react";
3
4
  import { OTPInput as l, OTPInputContext as p } from "input-otp";
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.js","sources":["../../../src/components/primitives/input-otp.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\"flex items-center gap-2 has-disabled:opacity-50\", containerClassName)}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-group\" className={cn(\"flex items-center\", className)} {...props} />\n );\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"names":["jsx","jsxs","React","OTPInput","OTPInputContext","MinusIcon","cn","InputOTP","className","containerClassName","props","InputOTPGroup","InputOTPSlot","index","inputOTPContext","char","hasFakeCaret","isActive","InputOTPSeparator"],"mappings":"AAMA,SAAA,OAAAA,GAAA,QAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,YAAAC,GAAA,mBAAAC,SAAA;AAAA,SAAA,aAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,GAAGC;AACL,GAEG;AACD,SACE,gBAAAV;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,oBAAoBG,EAAG,mDAAmDG,CAAkB;AAAA,MAC5F,WAAWH,EAAG,+BAA+BE,CAAS;AAAA,MACrD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASC,EAAc,EAAE,WAAAH,GAAW,GAAGE,KAAsC;AAC3E,SACE,gBAAAV,EAAC,OAAA,EAAI,aAAU,mBAAkB,WAAWM,EAAG,qBAAqBE,CAAS,GAAI,GAAGE,EAAA,CAAO;AAE/F;AAEA,SAASE,EAAa;AAAA,EACpB,OAAAC;AAAA,EACA,WAAAL;AAAA,EACA,GAAGE;AACL,GAEG;AACD,QAAMI,IAAkBZ,EAAM,WAAWE,CAAe,GAClD,EAAE,MAAAW,GAAM,cAAAC,GAAc,UAAAC,EAAA,IAAaH,GAAiB,MAAMD,CAAK,KAAK,CAAA;AAE1E,SACE,gBAAAZ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAagB;AAAA,MACb,WAAWX;AAAA,QACT;AAAA,QACAE;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACAC,uBACE,OAAA,EAAI,WAAU,yEACb,UAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,2DAAA,CAA2D,EAAA,CAC5E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAASkB,EAAkB,EAAE,GAAGR,KAAsC;AACpE,SACE,gBAAAV,EAAC,OAAA,EAAI,aAAU,uBAAsB,MAAK,aAAa,GAAGU,GACxD,UAAA,gBAAAV,EAACK,GAAA,CAAA,CAAU,EAAA,CACb;AAEJ;"}
1
+ {"version":3,"file":"input-otp.js","sources":["../../../src/components/primitives/input-otp.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\"flex items-center gap-2 has-disabled:opacity-50\", containerClassName)}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-group\" className={cn(\"flex items-center\", className)} {...props} />\n );\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"names":[],"mappings":";AAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkB;AAChB;AACA;AAEF;AAGE;AACE;AAAC;AAAA;AACW;AACkF;AACtC;AAClD;AAAA;AAGV;AAEA;AACE;AAGF;AAEA;AAAsB;AACpB;AACA;AAEF;AAGE;AAGA;AACE;AAAC;AAAA;AACW;AACG;AACF;AACT;AACA;AAAA;AAEE;AAEH;AAAA;AAIC;AAAA;AAAA;AAIR;AAEA;AACE;AAKF;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as o } from "react/jsx-runtime";
2
3
  import * as a from "@radix-ui/react-label";
3
4
  import { cn as r } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sources":["../../../src/components/primitives/label.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Label({ className, ...props }: 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":["Label","className","props","jsx","LabelPrimitive","cn"],"mappings":";;;AAOA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAA2D;AACxF,SACE,gBAAAC;AAAA,IAACC,EAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"label.js","sources":["../../../src/components/primitives/label.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Label({ className, ...props }: 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":[],"mappings":";;;;AAOA;AACE;AACE;AAAgB;AAAf;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs as c, jsx as t } from "react/jsx-runtime";
2
3
  import * as m from "react";
3
4
  import { Spinner as p } from "./spinner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"loading-swap.js","sources":["../../../src/components/primitives/loading-swap.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Spinner } from \"./spinner\";\nimport { cn } from \"@/lib/utils\";\n\ninterface LoadingSwapProps extends React.HTMLAttributes<HTMLDivElement> {\n isLoading: boolean;\n loadingNode?: React.ReactNode;\n}\n\nconst LoadingSwap = React.forwardRef<HTMLDivElement, LoadingSwapProps>(\n ({ isLoading, loadingNode, children, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"relative inline-flex items-center justify-center\", className)}\n data-testid=\"loading-swap-container\"\n aria-busy={isLoading}\n {...props}\n >\n {isLoading && (\n <div className=\"absolute inset-0 flex items-center justify-center\" aria-hidden=\"true\">\n {loadingNode || <Spinner />}\n </div>\n )}\n <div className={cn(\"transition-opacity\", isLoading ? \"opacity-0\" : \"opacity-100\")}>\n {children}\n </div>\n </div>\n );\n },\n);\n\nLoadingSwap.displayName = \"LoadingSwap\";\n\nexport { LoadingSwap };\nexport type { LoadingSwapProps };\n"],"names":["jsxs","jsx","React","Spinner","cn","LoadingSwap","isLoading","loadingNode","children","className","props","ref"],"mappings":"AAWA,SAAA,QAAAA,GAAA,OAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,MAAMC,IAAcH,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAI,GAAW,aAAAC,GAAa,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAExD,gBAAAX;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAW;AAAA,MACA,WAAWP,EAAG,oDAAoDK,CAAS;AAAA,MAC3E,eAAY;AAAA,MACZ,aAAWH;AAAA,MACV,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAJ,KACC,gBAAAL,EAAC,SAAI,WAAU,qDAAoD,eAAY,QAC5E,UAAAM,KAAe,gBAAAN,EAACE,GAAA,CAAA,CAAQ,EAAA,CAC3B;AAAA,QAEF,gBAAAF,EAAC,SAAI,WAAWG,EAAG,sBAAsBE,IAAY,cAAc,aAAa,GAC7E,UAAAE,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAH,EAAY,cAAc;"}
1
+ {"version":3,"file":"loading-swap.js","sources":["../../../src/components/primitives/loading-swap.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Spinner } from \"./spinner\";\nimport { cn } from \"@/lib/utils\";\n\ninterface LoadingSwapProps extends React.HTMLAttributes<HTMLDivElement> {\n isLoading: boolean;\n loadingNode?: React.ReactNode;\n}\n\nconst LoadingSwap = React.forwardRef<HTMLDivElement, LoadingSwapProps>(\n ({ isLoading, loadingNode, children, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"relative inline-flex items-center justify-center\", className)}\n data-testid=\"loading-swap-container\"\n aria-busy={isLoading}\n {...props}\n >\n {isLoading && (\n <div className=\"absolute inset-0 flex items-center justify-center\" aria-hidden=\"true\">\n {loadingNode || <Spinner />}\n </div>\n )}\n <div className={cn(\"transition-opacity\", isLoading ? \"opacity-0\" : \"opacity-100\")}>\n {children}\n </div>\n </div>\n );\n },\n);\n\nLoadingSwap.displayName = \"LoadingSwap\";\n\nexport { LoadingSwap };\nexport type { LoadingSwapProps };\n"],"names":["LoadingSwap"],"mappings":";AAWA;AAAA;AAAA;AAAA;AAAA;AAA0B;AAGpB;AAAC;AAAA;AACC;AAC2E;AAC/D;AACD;AACP;AAEH;AAGC;AAIF;AAAA;AAAA;AAIR;AAEAA;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs as s, jsx as o } from "react/jsx-runtime";
2
3
  import * as r from "react";
3
4
  import * as i from "@radix-ui/react-navigation-menu";
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-menu.js","sources":["../../../src/components/primitives/navigation-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { navigationMenuTriggerStyle } from \"./navigation-menu-variants\";\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n }\n>(({ className, children, viewport = true, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n));\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...props}\n />\n));\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n));\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none\",\n className,\n )}\n {...props}\n />\n));\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute top-full left-0 isolate z-50 flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n ref={ref}\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border shadow md:w-(--radix-navigation-menu-viewport-width)\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\n\nNavigationMenu.displayName = \"NavigationMenu\";\nNavigationMenuList.displayName = \"NavigationMenuList\";\nNavigationMenuTrigger.displayName = \"NavigationMenuTrigger\";\nNavigationMenuContent.displayName = \"NavigationMenuContent\";\nNavigationMenuViewport.displayName = \"NavigationMenuViewport\";\nNavigationMenuIndicator.displayName = \"NavigationMenuIndicator\";\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n"],"names":["NavigationMenu","React","className","children","viewport","props","ref","jsxs","NavigationMenuPrimitive","cn","NavigationMenuViewport","NavigationMenuList","jsx","NavigationMenuItem","NavigationMenuTrigger","navigationMenuTriggerStyle","ChevronDownIcon","NavigationMenuContent","NavigationMenuLink","NavigationMenuIndicator"],"mappings":";;;;;;AAQA,MAAMA,IAAiBC,EAAM,WAK3B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,IAAW,IAAM,GAAGC,EAAA,GAASC,MACrD,gBAAAC;AAAA,EAACC,EAAwB;AAAA,EAAxB;AAAA,IACC,KAAAF;AAAA,IACA,aAAU;AAAA,IACV,iBAAeF;AAAA,IACf,WAAWK;AAAA,MACT;AAAA,MACAP;AAAA,IAAA;AAAA,IAED,GAAGG;AAAA,IAEH,UAAA;AAAA,MAAAF;AAAA,MACAC,uBAAaM,GAAA,CAAA,CAAuB;AAAA,IAAA;AAAA,EAAA;AACvC,CACD,GAEKC,IAAqBV,EAAM,WAG/B,CAAC,EAAE,WAAAC,GAAW,GAAGG,EAAA,GAASC,MAC1B,gBAAAM;AAAA,EAACJ,EAAwB;AAAA,EAAxB;AAAA,IACC,KAAAF;AAAA,IACA,aAAU;AAAA,IACV,WAAWG,EAAG,iEAAiEP,CAAS;AAAA,IACvF,GAAGG;AAAA,EAAA;AACN,CACD,GAEKQ,IAAqBL,EAAwB,MAE7CM,IAAwBb,EAAM,WAGlC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGE,KAASC,MACpC,gBAAAC;AAAA,EAACC,EAAwB;AAAA,EAAxB;AAAA,IACC,KAAAF;AAAA,IACA,aAAU;AAAA,IACV,WAAWG,EAAGM,KAA8B,SAASb,CAAS;AAAA,IAC7D,GAAGG;AAAA,IAEH,UAAA;AAAA,MAAAF;AAAA,MAAU;AAAA,MACX,gBAAAS;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,eAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IACd;AAAA,EAAA;AACF,CACD,GAEKC,IAAwBhB,EAAM,WAGlC,CAAC,EAAE,WAAAC,GAAW,GAAGG,EAAA,GAASC,MAC1B,gBAAAM;AAAA,EAACJ,EAAwB;AAAA,EAAxB;AAAA,IACC,KAAAF;AAAA,IACA,aAAU;AAAA,IACV,WAAWG;AAAA,MACT;AAAA,MACA;AAAA,MACAP;AAAA,IAAA;AAAA,IAED,GAAGG;AAAA,EAAA;AACN,CACD,GAEKK,IAAyBT,EAAM,WAGnC,CAAC,EAAE,WAAAC,GAAW,GAAGG,KAASC,MAC1B,gBAAAM,EAAC,OAAA,EAAI,WAAWH,EAAG,2DAA2D,GAC5E,UAAA,gBAAAG;AAAA,EAACJ,EAAwB;AAAA,EAAxB;AAAA,IACC,KAAAF;AAAA,IACA,aAAU;AAAA,IACV,WAAWG;AAAA,MACT;AAAA,MACAP;AAAA,IAAA;AAAA,IAED,GAAGG;AAAA,EAAA;AACN,GACF,CACD,GAEKa,IAAqBV,EAAwB,MAE7CW,IAA0BlB,EAAM,WAGpC,CAAC,EAAE,WAAAC,GAAW,GAAGG,EAAA,GAASC,MAC1B,gBAAAM;AAAA,EAACJ,EAAwB;AAAA,EAAxB;AAAA,IACC,KAAAF;AAAA,IACA,aAAU;AAAA,IACV,WAAWG;AAAA,MACT;AAAA,MACAP;AAAA,IAAA;AAAA,IAED,GAAGG;AAAA,IAEJ,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,yEAAA,CAAyE;AAAA,EAAA;AAC1F,CACD;AAEDZ,EAAe,cAAc;AAC7BW,EAAmB,cAAc;AACjCG,EAAsB,cAAc;AACpCG,EAAsB,cAAc;AACpCP,EAAuB,cAAc;AACrCS,EAAwB,cAAc;"}
1
+ {"version":3,"file":"navigation-menu.js","sources":["../../../src/components/primitives/navigation-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { navigationMenuTriggerStyle } from \"./navigation-menu-variants\";\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n }\n>(({ className, children, viewport = true, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n));\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...props}\n />\n));\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n));\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none\",\n className,\n )}\n {...props}\n />\n));\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute top-full left-0 isolate z-50 flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n ref={ref}\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border shadow md:w-(--radix-navigation-menu-viewport-width)\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\n\nNavigationMenu.displayName = \"NavigationMenu\";\nNavigationMenuList.displayName = \"NavigationMenuList\";\nNavigationMenuTrigger.displayName = \"NavigationMenuTrigger\";\nNavigationMenuContent.displayName = \"NavigationMenuContent\";\nNavigationMenuViewport.displayName = \"NavigationMenuViewport\";\nNavigationMenuIndicator.displayName = \"NavigationMenuIndicator\";\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n"],"names":["NavigationMenu","NavigationMenuList","NavigationMenuTrigger","NavigationMenuContent","NavigationMenuViewport","NavigationMenuIndicator"],"mappings":";;;;;;;AAQA;AAME;AAAyB;AAAxB;AACC;AACU;AACK;AACJ;AACT;AACA;AAAA;AAEE;AAEH;AAAA;AACoC;AAAA;AACvC;AAOA;AAAyB;AAAxB;AACC;AACU;AAC8E;AACpF;AACN;AASA;AAAyB;AAAxB;AACC;AACU;AACoD;AAC1D;AAEH;AAAA;AAAU;AACX;AAAC;AAAA;AACW;AACE;AAAA;AAAA;AACd;AACF;AAOA;AAAyB;AAAxB;AACC;AACU;AACC;AACT;AACA;AACA;AAAA;AAEE;AACN;AAQE;AAAyB;AAAxB;AACC;AACU;AACC;AACT;AACA;AAAA;AAEE;AACN;AAUF;AAAyB;AAAxB;AACC;AACU;AACC;AACT;AACA;AAAA;AAEE;AAEoF;AAC1F;AAGFA;AACAC;AACAC;AACAC;AACAC;AACAC;;;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as t } from "react/jsx-runtime";
2
3
  import * as e from "@radix-ui/react-popover";
3
4
  import { cn as i } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sources":["../../../src/components/primitives/popover.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\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-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n"],"names":["jsx","PopoverPrimitive","cn","Popover","props","PopoverTrigger","PopoverContent","className","align","sideOffset","PopoverAnchor"],"mappings":"AAOA,SAAA,OAAAA,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAQ,EAAE,GAAGC,KAA6D;AACjF,2BAAQH,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGG,GAAO;AAC/D;AAEA,SAASC,EAAe,EAAE,GAAGD,KAAgE;AAC3F,2BAAQH,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGG,GAAO;AAC1E;AAEA,SAASE,EAAe;AAAA,EACtB,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,YAAAC,IAAa;AAAA,EACb,GAAGL;AACL,GAA0D;AACxD,SACE,gBAAAJ,EAACC,EAAiB,QAAjB,EACC,UAAA,gBAAAD;AAAA,IAACC,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,OAAAO;AAAA,MACA,YAAAC;AAAA,MACA,WAAWP;AAAA,QACT;AAAA,QACAK;AAAA,MAAA;AAAA,MAED,GAAGH;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;AAEA,SAASM,EAAc,EAAE,GAAGN,KAA+D;AACzF,2BAAQH,EAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAGG,GAAO;AACxE;"}
1
+ {"version":3,"file":"popover.js","sources":["../../../src/components/primitives/popover.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\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-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n"],"names":[],"mappings":";AAOA;AAAA;AAAA;AAAA;AACE;AACF;AAEA;AACE;AACF;AAEA;AAAwB;AACtB;AACQ;AACK;AAEf;AACE;AAEI;AAAkB;AAAjB;AACW;AACV;AACA;AACW;AACT;AACA;AAAA;AAEE;AAAA;AAIZ;AAEA;AACE;AACF;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as r } from "react/jsx-runtime";
2
3
  import * as a from "@radix-ui/react-radio-group";
3
4
  import { CircleIcon as t } from "lucide-react";
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sources":["../../../src/components/primitives/radio-group.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-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 dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["jsx","RadioGroupPrimitive","CircleIcon","cn","RadioGroup","className","props","RadioGroupItem"],"mappings":"AAQA,SAAA,OAAAA,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,cAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAW;AAAA,EAClB,WAAAC;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACE,gBAAAN;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,cAAcE,CAAS;AAAA,MACpC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASC,EAAe;AAAA,EACtB,WAAAF;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACE,gBAAAN;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA,QACAE;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA,gBAAAN;AAAA,QAACC,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,UAAA,gBAAAD,EAACE,GAAA,EAAW,WAAU,kFAAA,CAAkF;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1G;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"radio-group.js","sources":["../../../src/components/primitives/radio-group.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-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 dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":[],"mappings":";AAQA;AAAA;AAAA;AAAA;AAAA;AAAoB;AAClB;AAEF;AACE;AACE;AAAqB;AAApB;AACW;AAC2B;AACjC;AAAA;AAGV;AAEA;AAAwB;AACtB;AAEF;AACE;AACE;AAAqB;AAApB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAEJ;AAAqB;AAApB;AACW;AACA;AAE8F;AAAA;AAAA;AAC1G;AAGN;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs as s, jsx as l } from "react/jsx-runtime";
2
3
  import * as o from "@radix-ui/react-scroll-area";
3
4
  import { cn as t } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area.js","sources":["../../../src/components/primitives/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["jsxs","jsx","ScrollAreaPrimitive","cn","ScrollArea","className","children","props","ScrollBar","orientation"],"mappings":"AAOA,SAAA,QAAAA,GAAA,OAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAW;AAAA,EAClB,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACE,gBAAAP;AAAA,IAACE,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,YAAYE,CAAS;AAAA,MAClC,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAN;AAAA,UAACC,EAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAET,UAAAI;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEFE,GAAA,EAAU;AAAA,QACX,gBAAAP,EAACC,EAAoB,QAApB,CAAA,CAA2B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlC;AAEA,SAASM,EAAU;AAAA,EACjB,WAAAH;AAAA,EACA,aAAAI,IAAc;AAAA,EACd,GAAGF;AACL,GAAyE;AACvE,SACE,gBAAAN;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,aAAAO;AAAA,MACA,WAAWN;AAAA,QACT;AAAA,QACAM,MAAgB,cAAc;AAAA,QAC9BA,MAAgB,gBAAgB;AAAA,QAChCJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAA,gBAAAN;AAAA,QAACC,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"scroll-area.js","sources":["../../../src/components/primitives/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":[],"mappings":";AAOA;AAAA;AAAA;AAAA;AAAoB;AAClB;AACA;AAEF;AACE;AACE;AAAqB;AAApB;AACW;AACyB;AAC/B;AAEJ;AAAA;AAAqB;AAApB;AACW;AACA;AAET;AAAA;AAAA;AAEQ;AACiB;AAAA;AAAA;AAGlC;AAEA;AAAmB;AACjB;AACc;AAEhB;AACE;AACE;AAAqB;AAApB;AACW;AACV;AACW;AACT;AAC8B;AACE;AAChC;AAAA;AAEE;AAEJ;AAAqB;AAApB;AACW;AACA;AAAA;AAAA;AACZ;AAGN;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as i } from "react/jsx-runtime";
2
3
  import * as n from "@radix-ui/react-separator";
3
4
  import { cn as e } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"separator.js","sources":["../../../src/components/primitives/separator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"],"names":["jsx","SeparatorPrimitive","cn","Separator","className","orientation","decorative","props"],"mappings":"AAOA,SAAA,OAAAA,SAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAU;AAAA,EACjB,WAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,YAAAC,IAAa;AAAA,EACb,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAP;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,YAAAK;AAAA,MACA,aAAAD;AAAA,MACA,WAAWH;AAAA,QACT;AAAA,QACAE;AAAA,MAAA;AAAA,MAED,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"separator.js","sources":["../../../src/components/primitives/separator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"],"names":[],"mappings":";AAOA;AAAA;AAAA;AAAA;AAAmB;AACjB;AACc;AACD;AAEf;AACE;AACE;AAAoB;AAAnB;AACW;AACV;AACA;AACW;AACT;AACA;AAAA;AAEE;AAAA;AAGV;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import * as t from "react";
2
3
  const r = t.createContext(null);
3
4
  function o() {
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-context.js","sources":["../../../src/components/primitives/sidebar-context.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nexport type SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nexport function useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n"],"names":["React","SidebarContext","useSidebar","context"],"mappings":"AAcO,YAAAA,OAAA;AAAA,MAAMC,IAAiBD,EAAM,cAA0C,IAAI;AAE3E,SAASE,IAAa;AAC3B,QAAMC,IAAUH,EAAM,WAAWC,CAAc;AAC/C,MAAI,CAACE;AACH,UAAM,IAAI,MAAM,mDAAmD;AAGrE,SAAOA;AACT;"}
1
+ {"version":3,"file":"sidebar-context.js","sources":["../../../src/components/primitives/sidebar-context.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nexport type SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nexport function useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n"],"names":[],"mappings":";AAcO;AAAA;AAEA;AACL;AACA;AACE;AAGF;AACF;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as r, jsxs as g } from "react/jsx-runtime";
2
3
  import * as i from "react";
3
4
  import { Slot as w } from "@radix-ui/react-slot";
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sources":["../../../src/components/primitives/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\n\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../primitives/button\";\nimport { Input } from \"../primitives/input\";\nimport { Separator } from \"../primitives/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"../primitives/sheet\";\nimport { Skeleton } from \"../primitives/skeleton\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../primitives/tooltip\";\nimport { sidebarMenuButtonVariants } from \"./sidebar-variants\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./sidebar-context\";\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n scrollable?: boolean;\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n scrollable = false,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n scrollable ? \"relative h-full\" : \"fixed h-svh\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentPropsWithoutRef<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentPropsWithoutRef<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n});\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentPropsWithoutRef<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\n \"bg-input relative m-0! self-stretch data-[orientation=vertical]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const [width, setWidth] = React.useState(\"50%\");\n\n React.useEffect(() => {\n setWidth(`${Math.floor(Math.random() * 40) + 50}%`);\n }, []);\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n }\n>(({ asChild = false, size = \"md\", isActive = false, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\n\nSidebar.displayName = \"Sidebar\";\nSidebarTrigger.displayName = \"SidebarTrigger\";\nSidebarRail.displayName = \"SidebarRail\";\nSidebarInset.displayName = \"SidebarInset\";\nSidebarInput.displayName = \"SidebarInput\";\nSidebarHeader.displayName = \"SidebarHeader\";\nSidebarFooter.displayName = \"SidebarFooter\";\nSidebarSeparator.displayName = \"SidebarSeparator\";\nSidebarContent.displayName = \"SidebarContent\";\nSidebarGroup.displayName = \"SidebarGroup\";\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\nSidebarMenu.displayName = \"SidebarMenu\";\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n};\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","isMobile","useIsMobile","openMobile","setOpenMobile","React","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","SidebarContext","TooltipProvider","cn","Sidebar","side","variant","collapsible","scrollable","ref","useSidebar","Sheet","jsxs","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","isActive","size","tooltip","Comp","button","sidebarMenuButtonVariants","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","setWidth","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","sources":["../../../src/components/primitives/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\n\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../primitives/button\";\nimport { Input } from \"../primitives/input\";\nimport { Separator } from \"../primitives/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"../primitives/sheet\";\nimport { Skeleton } from \"../primitives/skeleton\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../primitives/tooltip\";\nimport { sidebarMenuButtonVariants } from \"./sidebar-variants\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./sidebar-context\";\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n scrollable?: boolean;\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n scrollable = false,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n scrollable ? \"relative h-full\" : \"fixed h-svh\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentPropsWithoutRef<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentPropsWithoutRef<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n});\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentPropsWithoutRef<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\n \"bg-input relative m-0! self-stretch data-[orientation=vertical]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const [width, setWidth] = React.useState(\"50%\");\n\n React.useEffect(() => {\n setWidth(`${Math.floor(Math.random() * 40) + 50}%`);\n }, []);\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n },\n);\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n }\n>(({ asChild = false, size = \"md\", isActive = false, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\n\nSidebar.displayName = \"Sidebar\";\nSidebarTrigger.displayName = \"SidebarTrigger\";\nSidebarRail.displayName = \"SidebarRail\";\nSidebarInset.displayName = \"SidebarInset\";\nSidebarInput.displayName = \"SidebarInput\";\nSidebarHeader.displayName = \"SidebarHeader\";\nSidebarFooter.displayName = \"SidebarFooter\";\nSidebarSeparator.displayName = \"SidebarSeparator\";\nSidebarContent.displayName = \"SidebarContent\";\nSidebarGroup.displayName = \"SidebarGroup\";\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\nSidebarMenu.displayName = \"SidebarMenu\";\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n};\n"],"names":["Sidebar","SidebarTrigger","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","SidebarMenuAction","SidebarMenuBadge","SidebarMenuSkeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":";;;;;;;;;;;;;;;AAuBA;AASA;AAAyB;AACT;AACR;AACQ;AACd;AACA;AACA;AAEF;AAKE;AAKsB;AAElB;AACA;AAMgG;AAClG;AACkB;AAOpB;AACE;AACE;AAEE;AAIJ;AACgE;AAGlE;AAE2B;AAClB;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEuE;AAG3E;AAGM;AAAC;AAAA;AACW;AAER;AACqB;AACK;AACrB;AAAA;AAGI;AACT;AACA;AAAA;AAEE;AAEH;AAAA;AAKX;AAEA;AAAsB;AAUlB;AACS;AACG;AACI;AACd;AACA;AACa;AACV;AAIL;AAEA;AAEI;AAAC;AAAA;AACC;AACU;AACC;AACT;AACA;AAAA;AAEE;AAEH;AAAA;AAQD;AAAC;AAAA;AACc;AACH;AACE;AACF;AAER;AACqB;AAAA;AAGvB;AAEA;AACE;AAAmB;AAC2B;AAChD;AACuD;AAAA;AAAA;AAO7D;AAAC;AAAA;AACC;AACU;AACE;AAC4C;AAC1C;AACH;AACD;AAEV;AAAA;AAAC;AAAA;AACW;AACC;AACT;AACA;AACA;AAGI;AAAA;AACN;AAAA;AAEF;AAAC;AAAA;AACW;AACC;AACT;AACiC;AAG7B;AAGA;AACJ;AAAA;AAEE;AAEJ;AAAC;AAAA;AACc;AACH;AACA;AAET;AAAA;AAAA;AACH;AAAA;AACF;AAAA;AAAA;AAIR;AAME;AAEA;AACE;AAAC;AAAA;AACC;AACa;AACH;AACF;AACH;AAC4B;AAE/B;AACA;AACF;AACI;AAEJ;AAAe;AACyB;AAAA;AAAA;AAG9C;AAE0B;AAEtB;AAEA;AACE;AAAC;AAAA;AACC;AACa;AACH;AACC;AACD;AACD;AACH;AACK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEE;AAAA;AAAA;AAIZ;AAE2B;AAGrB;AAAC;AAAA;AACC;AACU;AACC;AACT;AACA;AACA;AAAA;AAEE;AAAA;AAIZ;AAOI;AAAC;AAAA;AACC;AACU;AACG;AACkD;AAC3D;AAAA;AAKkB;AAGtB;AAAC;AAAA;AACC;AACU;AACG;AACqC;AAC9C;AAAA;AAIZ;AAE4B;AAGtB;AAAC;AAAA;AACC;AACU;AACG;AACqC;AAC9C;AAAA;AAIZ;AAOI;AAAC;AAAA;AACC;AACU;AACG;AACF;AACT;AACA;AAAA;AAEE;AAAA;AAKmB;AAGvB;AAAC;AAAA;AACC;AACU;AACG;AACF;AACT;AACA;AAAA;AAEE;AAAA;AAIZ;AAE2B;AAGrB;AAAC;AAAA;AACC;AACU;AACG;AACuD;AAChE;AAAA;AAIZ;AASI;AAH4B;AAG3B;AACC;AACU;AACG;AACF;AACT;AACA;AACA;AAAA;AAEE;AAAA;AAYN;AAH4B;AAG3B;AACC;AACU;AACG;AACF;AACT;AACA;AACA;AACA;AAAA;AAEE;AAAA;AAKwB;AAG5B;AAAC;AAAA;AACC;AACU;AACG;AAC4B;AACrC;AAAA;AAIZ;AAE0B;AAGpB;AAAC;AAAA;AACC;AACU;AACG;AACgD;AACzD;AAAA;AAIZ;AAE8B;AAGxB;AAAC;AAAA;AACC;AACU;AACG;AACsC;AAC/C;AAAA;AAIZ;AAEgC;AAS5B;AACY;AACC;AACD;AACH;AACP;AACA;AACG;AAIL;AAIE;AAAC;AAAA;AACC;AACU;AACG;AACF;AACE;AACwD;AACjE;AAAA;AAIR;AAKY;AACE;AAMV;AAAgC;AAChC;AAAC;AAAA;AACM;AACC;AAC2B;AAC7B;AAAA;AAAA;AAhBD;AAqBb;AAYI;AAH4B;AAG3B;AACC;AACU;AACG;AACF;AACT;AACA;AACA;AACA;AACA;AACA;AAEE;AACF;AAAA;AAEE;AAAA;AAKqB;AAGzB;AAAC;AAAA;AACC;AACU;AACG;AACF;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEE;AAAA;AAIZ;AAQE;AAEA;AACE;AAAkD;AAIlD;AAAC;AAAA;AACC;AACU;AACG;AACyD;AAClE;AAEH;AAAsF;AACvF;AAAC;AAAA;AACW;AACG;AAEX;AACsB;AAAA;AACtB;AAAA;AAEJ;AAAA;AAGN;AAE6B;AAGvB;AAAC;AAAA;AACC;AACU;AACG;AACF;AACT;AACA;AACA;AAAA;AAEE;AAAA;AAIZ;AAEiC;AAG3B;AAAC;AAAA;AACC;AACU;AACG;AAC0C;AACnD;AAAA;AAIZ;AAaI;AAH4B;AAG3B;AACC;AACU;AACG;AACF;AACE;AACF;AACT;AACA;AACiB;AACA;AACjB;AACA;AAAA;AAEE;AAAA;AAKVA;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs as h, jsx as e } from "react/jsx-runtime";
2
3
  import * as m from "react";
3
4
  import * as a from "@radix-ui/react-slider";
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":["../../../src/components/primitives/slider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\",\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"names":["jsxs","jsx","React","SliderPrimitive","cn","Slider","className","defaultValue","value","min","max","props","_values","_","index"],"mappings":"AAOA,SAAA,QAAAA,GAAA,OAAAC,SAAA;AAAA,YAAAC,OAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,KAAAC,IAAM;AAAA,EACN,GAAGC;AACL,GAAsD;AACpD,QAAMC,IAAUV,EAAM;AAAA,IACpB,MAAO,MAAM,QAAQM,CAAK,IAAIA,IAAQ,MAAM,QAAQD,CAAY,IAAIA,IAAe,CAACE,GAAKC,CAAG;AAAA,IAC5F,CAACF,GAAOD,GAAcE,GAAKC,CAAG;AAAA,EAAA;AAGhC,SACE,gBAAAV;AAAA,IAACG,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,cAAAI;AAAA,MACA,OAAAC;AAAA,MACA,KAAAC;AAAA,MACA,KAAAC;AAAA,MACA,WAAWN;AAAA,QACT;AAAA,QACAE;AAAA,MAAA;AAAA,MAED,GAAGK;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAV;AAAA,UAACE,EAAgB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YACV,WAAWC;AAAA,cACT;AAAA,YAAA;AAAA,YAGF,UAAA,gBAAAH;AAAA,cAACE,EAAgB;AAAA,cAAhB;AAAA,gBACC,aAAU;AAAA,gBACV,WAAWC;AAAA,kBACT;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAED,MAAM,KAAK,EAAE,QAAQQ,EAAQ,UAAU,CAACC,GAAGC,MAC1C,gBAAAb;AAAA,UAACE,EAAgB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YAEV,WAAU;AAAA,UAAA;AAAA,UADLW;AAAA,QAAA,CAGR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"slider.js","sources":["../../../src/components/primitives/slider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\",\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"names":[],"mappings":";AAOA;AAAA;AAAA;AAAA;AAAA;AAAgB;AACd;AACA;AACA;AACM;AACA;AAER;AACE;AAAsB;AACwE;AAC9D;AAGhC;AACE;AAAiB;AAAhB;AACW;AACV;AACA;AACA;AACA;AACW;AACT;AACA;AAAA;AAEE;AAEJ;AAAA;AAAiB;AAAhB;AACW;AACC;AACT;AAAA;AAGF;AAAiB;AAAhB;AACW;AACC;AACT;AAAA;AACF;AAAA;AACF;AAAA;AAGA;AAAiB;AAAhB;AACW;AAEA;AAAA;AADL;AAGR;AAAA;AAAA;AAGP;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as r } from "react/jsx-runtime";
2
3
  import { Loader2Icon as s, OctagonXIcon as a, TriangleAlertIcon as n, InfoIcon as m, CircleCheckIcon as t } from "lucide-react";
3
4
  import { useTheme as c } from "next-themes";
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.js","sources":["../../../src/components/primitives/sonner.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n} from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\";\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n {...props}\n />\n );\n};\n\nexport { Toaster };\n"],"names":["jsx","Loader2Icon","OctagonXIcon","TriangleAlertIcon","InfoIcon","CircleCheckIcon","useTheme","Toaster$1","Toaster","props","theme","Sonner"],"mappings":"AAYA,SAAA,OAAAA,SAAA;AAAA,SAAA,eAAAC,GAAA,gBAAAC,GAAA,qBAAAC,GAAA,YAAAC,GAAA,mBAAAC,SAAA;AAAA,SAAA,YAAAC,SAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,MAAMC,IAAU,CAAC,EAAE,GAAGC,QAA0B;AAC9C,QAAM,EAAE,OAAAC,IAAQ,SAAA,IAAaJ,EAAA;AAE7B,SACE,gBAAAN;AAAA,IAACW;AAAAA,IAAA;AAAA,MACC,OAAAD;AAAA,MACA,WAAU;AAAA,MACV,OAAO;AAAA,QACL,SAAS,gBAAAV,EAACK,GAAA,EAAgB,WAAU,SAAA,CAAS;AAAA,QAC7C,MAAM,gBAAAL,EAACI,GAAA,EAAS,WAAU,SAAA,CAAS;AAAA,QACnC,SAAS,gBAAAJ,EAACG,GAAA,EAAkB,WAAU,SAAA,CAAS;AAAA,QAC/C,OAAO,gBAAAH,EAACE,GAAA,EAAa,WAAU,SAAA,CAAS;AAAA,QACxC,SAAS,gBAAAF,EAACC,GAAA,EAAY,WAAU,sBAAA,CAAsB;AAAA,MAAA;AAAA,MAExD,OACE;AAAA,QACE,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,mBAAmB;AAAA,MAAA;AAAA,MAGtB,GAAGQ;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"sonner.js","sources":["../../../src/components/primitives/sonner.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n} from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\";\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n {...props}\n />\n );\n};\n\nexport { Toaster };\n"],"names":["Sonner"],"mappings":";AAYA;AAAA;AAAA;AAAA;AAAA;AACE;AAEA;AACE;AAACA;AAAA;AACC;AACU;AACH;AACwC;AACV;AACY;AACP;AACc;AAAA;AAGtD;AACiB;AACE;AACE;AACA;AAAA;AAGnB;AAAA;AAGV;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as e } from "react/jsx-runtime";
2
3
  import * as t from "@radix-ui/react-switch";
3
4
  import { cn as a } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sources":["../../../src/components/primitives/switch.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"names":["Switch","className","props","jsx","SwitchPrimitive","cn"],"mappings":";;;AAOA,SAASA,EAAO,EAAE,WAAAC,GAAW,GAAGC,KAA4D;AAC1F,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACC,EAAgB;AAAA,QAAhB;AAAA,UACC,aAAU;AAAA,UACV,WAAWC;AAAA,YACT;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"switch.js","sources":["../../../src/components/primitives/switch.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"names":[],"mappings":";;;;AAOA;AACE;AACE;AAAiB;AAAhB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAEJ;AAAiB;AAAhB;AACW;AACC;AACT;AAAA;AACF;AAAA;AACF;AAGN;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as a } from "react/jsx-runtime";
2
3
  import * as s from "@radix-ui/react-tabs";
3
4
  import { cn as i } from "../../lib/utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../src/components/primitives/tabs.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":["Tabs","className","props","jsx","TabsPrimitive","cn","TabsList","TabsTrigger","TabsContent"],"mappings":";;;AAOA,SAASA,EAAK,EAAE,WAAAC,GAAW,GAAGC,KAA0D;AACtF,SACE,gBAAAC;AAAA,IAACC,EAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,uBAAuBJ,CAAS;AAAA,MAC7C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAS,EAAE,WAAAL,GAAW,GAAGC,KAA0D;AAC1F,SACE,gBAAAC;AAAA,IAACC,EAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAY,EAAE,WAAAN,GAAW,GAAGC,KAA6D;AAChG,SACE,gBAAAC;AAAA,IAACC,EAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASM,EAAY,EAAE,WAAAP,GAAW,GAAGC,KAA6D;AAChG,SACE,gBAAAC;AAAA,IAACC,EAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,uBAAuBJ,CAAS;AAAA,MAC7C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../src/components/primitives/tabs.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":[],"mappings":";;;;AAOA;AACE;AACE;AAAe;AAAd;AACW;AACoC;AAC1C;AAAA;AAGV;AAEA;AACE;AACE;AAAe;AAAd;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAEA;AACE;AACE;AAAe;AAAd;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAEA;AACE;AACE;AAAe;AAAd;AACW;AACoC;AAC1C;AAAA;AAGV;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as o } from "react/jsx-runtime";
2
3
  import { ThemeProvider as m } from "next-themes";
3
4
  function d({
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.js","sources":["../../../src/components/primitives/theme-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ThemeProvider as NextThemesProvider } from \"next-themes\";\n\nexport function ThemeProvider({\n children,\n ...props\n}: React.ComponentProps<typeof NextThemesProvider>) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>;\n}\n"],"names":["jsx","ThemeProvider$1","ThemeProvider","children","props","NextThemesProvider"],"mappings":"AAKO,SAAA,OAAAA,SAAA;AAAA,SAAA,iBAAAC,SAAA;AAAA,SAASC,EAAc;AAAA,EAC5B,UAAAC;AAAA,EACA,GAAGC;AACL,GAAoD;AAClD,SAAO,gBAAAJ,EAACK,GAAA,EAAoB,GAAGD,GAAQ,UAAAD,EAAA,CAAS;AAClD;"}
1
+ {"version":3,"file":"theme-provider.js","sources":["../../../src/components/primitives/theme-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ThemeProvider as NextThemesProvider } from \"next-themes\";\n\nexport function ThemeProvider({\n children,\n ...props\n}: React.ComponentProps<typeof NextThemesProvider>) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>;\n}\n"],"names":[],"mappings":";AAKO;AAAA;AAAA;AAAuB;AAC5B;AAEF;AACE;AACF;;;;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as n } from "react/jsx-runtime";
2
3
  import * as s from "react";
3
4
  import * as d from "@radix-ui/react-toggle-group";