@acronis-platform/shadcn-uikit 0.32.3 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/components/icons/dynamic-icons.js +15 -0
  2. package/dist/components/icons/dynamic-icons.js.map +1 -0
  3. package/dist/components/mode-toggle.js +14 -10
  4. package/dist/components/mode-toggle.js.map +1 -1
  5. package/dist/components/ui/accordion.js +4 -3
  6. package/dist/components/ui/accordion.js.map +1 -1
  7. package/dist/components/ui/breadcrumb.js +5 -4
  8. package/dist/components/ui/breadcrumb.js.map +1 -1
  9. package/dist/components/ui/calendar.js +11 -10
  10. package/dist/components/ui/calendar.js.map +1 -1
  11. package/dist/components/ui/carousel.js +14 -13
  12. package/dist/components/ui/carousel.js.map +1 -1
  13. package/dist/components/ui/checkbox.js +2 -1
  14. package/dist/components/ui/checkbox.js.map +1 -1
  15. package/dist/components/ui/chip.js +5 -4
  16. package/dist/components/ui/chip.js.map +1 -1
  17. package/dist/components/ui/combobox.js +10 -9
  18. package/dist/components/ui/combobox.js.map +1 -1
  19. package/dist/components/ui/command.d.ts +2 -2
  20. package/dist/components/ui/command.js +7 -6
  21. package/dist/components/ui/command.js.map +1 -1
  22. package/dist/components/ui/data-table/data-table-column-header.js +14 -13
  23. package/dist/components/ui/data-table/data-table-column-header.js.map +1 -1
  24. package/dist/components/ui/data-table/data-table-pagination.js +23 -22
  25. package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
  26. package/dist/components/ui/data-table/data-table-toolbar.js +13 -12
  27. package/dist/components/ui/data-table/data-table-toolbar.js.map +1 -1
  28. package/dist/components/ui/data-table/data-table-view-options.js +4 -3
  29. package/dist/components/ui/data-table/data-table-view-options.js.map +1 -1
  30. package/dist/components/ui/dialog.js +16 -15
  31. package/dist/components/ui/dialog.js.map +1 -1
  32. package/dist/components/ui/dropdown-menu.js +9 -8
  33. package/dist/components/ui/dropdown-menu.js.map +1 -1
  34. package/dist/components/ui/empty.js +1 -1
  35. package/dist/components/ui/empty.js.map +1 -1
  36. package/dist/components/ui/filter.js +5 -4
  37. package/dist/components/ui/filter.js.map +1 -1
  38. package/dist/components/ui/navigation-menu.js +11 -10
  39. package/dist/components/ui/navigation-menu.js.map +1 -1
  40. package/dist/components/ui/pagination.js +14 -13
  41. package/dist/components/ui/pagination.js.map +1 -1
  42. package/dist/components/ui/radio-group.js +12 -11
  43. package/dist/components/ui/radio-group.js.map +1 -1
  44. package/dist/components/ui/resizable.js +5 -4
  45. package/dist/components/ui/resizable.js.map +1 -1
  46. package/dist/components/ui/select.js +9 -8
  47. package/dist/components/ui/select.js.map +1 -1
  48. package/dist/components/ui/sheet.js +12 -11
  49. package/dist/components/ui/sheet.js.map +1 -1
  50. package/dist/components/ui/sidebar.js +7 -6
  51. package/dist/components/ui/sidebar.js.map +1 -1
  52. package/dist/components/ui/stack.d.ts +2 -2
  53. package/dist/components/ui/tree.js +31 -30
  54. package/dist/components/ui/tree.js.map +1 -1
  55. package/dist/components.css +1 -1
  56. package/dist/shadcn-uikit-full.css +1 -1
  57. package/dist/shadcn-uikit.css +1 -1
  58. package/dist/utilities.css +1 -1
  59. package/package.json +1 -2
@@ -0,0 +1,15 @@
1
+ import "react/jsx-runtime";
2
+ import "react";
3
+ const o = /* @__PURE__ */ Object.assign({});
4
+ Object.entries(o).reduce(
5
+ (t, [s, c]) => {
6
+ const e = s.match(/\.\/svg\/(.+)\.svg\?react/);
7
+ if (e) {
8
+ const n = e[1];
9
+ t[n] = c.default;
10
+ }
11
+ return t;
12
+ },
13
+ {}
14
+ );
15
+ //# sourceMappingURL=dynamic-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-icons.js","sources":["../../../src/components/icons/dynamic-icons.tsx"],"sourcesContent":["import React from 'react'\n\n/**\n * Dynamic icon loader using Vite's import.meta.glob\n * Automatically imports all SVG files from the svg directory\n */\n\n// Eager import - loads all icons immediately\nconst iconModules = import.meta.glob<{\n default: React.ComponentType<React.SVGProps<SVGSVGElement>>\n}>('./svg/*.svg?react', { eager: true })\n\n// Lazy import - loads icons on demand (better for large icon sets)\nconst lazyIconModules = import.meta.glob<{\n default: React.ComponentType<React.SVGProps<SVGSVGElement>>\n}>('./svg/*.svg?react')\n\n/**\n * Get icon component by name\n * @example\n * const InfoIcon = getIcon('info')\n * <InfoIcon className=\"size-4\" />\n */\nexport function getIcon(name: string): React.ComponentType<React.SVGProps<SVGSVGElement>> | null {\n const path = `./svg/${name}.svg?react`\n const module = iconModules[path]\n return module?.default || null\n}\n\n/**\n * Get all available icon names\n */\nexport function getIconNames(): string[] {\n return Object.keys(iconModules)\n .map((path) => {\n const match = path.match(/\\.\\/svg\\/(.+)\\.svg\\?react/)\n return match ? match[1] : ''\n })\n .filter(Boolean)\n}\n\n/**\n * Dynamic Icon component that loads icons by name\n */\ninterface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n name: string\n className?: string\n}\n\nexport function DynamicIcon({ name, className = 'size-4', ...props }: DynamicIconProps) {\n const IconComponent = getIcon(name)\n\n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found`)\n return null\n }\n\n return <IconComponent className={className} {...props} />\n}\n\n/**\n * Lazy loading icon component\n */\nexport function LazyIcon({ name, className = 'size-4', ...props }: DynamicIconProps) {\n const [IconComponent, setIconComponent] = React.useState<React.ComponentType<\n React.SVGProps<SVGSVGElement>\n > | null>(null)\n\n React.useEffect(() => {\n const path = `./svg/${name}.svg?react`\n const loader = lazyIconModules[path]\n\n if (loader) {\n loader().then((module) => {\n setIconComponent(() => module.default)\n })\n }\n }, [name])\n\n if (!IconComponent) {\n return <div className={className} /> // Placeholder\n }\n\n return <IconComponent className={className} {...props} />\n}\n\n/**\n * Export all icons as a map for easy access\n */\nexport const Icons = Object.entries(iconModules).reduce(\n (acc, [path, module]) => {\n const match = path.match(/\\.\\/svg\\/(.+)\\.svg\\?react/)\n if (match) {\n const name = match[1]\n acc[name] = module.default\n }\n return acc\n },\n {} as Record<string, React.ComponentType<React.SVGProps<SVGSVGElement>>>\n)\n"],"names":["iconModules","acc","path","module","match","name"],"mappings":";;AAQA,MAAMA,IAAc,uBAAA,OAAA,EAAA;AAiFC,OAAO,QAAQA,CAAW,EAAE;AAAA,EAC/C,CAACC,GAAK,CAACC,GAAMC,CAAM,MAAM;AACvB,UAAMC,IAAQF,EAAK,MAAM,2BAA2B;AACpD,QAAIE,GAAO;AACT,YAAMC,IAAOD,EAAM,CAAC;AACpB,MAAAH,EAAII,CAAI,IAAIF,EAAO;AAAA,IACrB;AACA,WAAOF;AAAA,EACT;AAAA,EACA,CAAA;AACF;"}
@@ -1,17 +1,21 @@
1
1
  import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
- import { Sun as t, Moon as a } from "lucide-react";
3
- import { Button as i } from "./ui/button.js";
4
- import { DropdownMenu as l, DropdownMenuTrigger as s, DropdownMenuContent as m, DropdownMenuItem as n } from "./ui/dropdown-menu.js";
2
+ import { cn as l } from "../lib/utils.js";
3
+ import { Button as t } from "./ui/button.js";
4
+ import { DropdownMenu as s, DropdownMenuTrigger as i, DropdownMenuContent as a, DropdownMenuItem as n } from "./ui/dropdown-menu.js";
5
5
  import { useTheme as c } from "./theme-provider.js";
6
- function k() {
6
+ const m = ({ className: r }) => /* @__PURE__ */ e("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "currentColor", className: l("size-4 shrink-0", r), children: /* @__PURE__ */ e("path", { d: "M14.5 10.29A7.5 7.5 0 0 1 5.71 1.5 6 6 0 1 0 14.5 10.29z" }) }), h = ({ className: r }) => /* @__PURE__ */ o("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "currentColor", className: l("size-4 shrink-0", r), children: [
7
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "8", r: "3" }),
8
+ /* @__PURE__ */ e("path", { d: "M8 1v2M8 13v2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M1 8h2M13 8h2M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41" })
9
+ ] });
10
+ function u() {
7
11
  const { setTheme: r } = c();
8
- return /* @__PURE__ */ o(l, { children: [
9
- /* @__PURE__ */ o(s, { render: /* @__PURE__ */ e(i, { variant: "outline", size: "icon" }), children: [
10
- /* @__PURE__ */ e(t, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
11
- /* @__PURE__ */ e(a, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
12
+ return /* @__PURE__ */ o(s, { children: [
13
+ /* @__PURE__ */ o(i, { render: /* @__PURE__ */ e(t, { variant: "outline", size: "icon" }), children: [
14
+ /* @__PURE__ */ e(h, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
15
+ /* @__PURE__ */ e(m, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
12
16
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Toggle theme" })
13
17
  ] }),
14
- /* @__PURE__ */ o(m, { align: "end", children: [
18
+ /* @__PURE__ */ o(a, { align: "end", children: [
15
19
  /* @__PURE__ */ e(n, { onClick: () => r("light"), children: "Light" }),
16
20
  /* @__PURE__ */ e(n, { onClick: () => r("dark"), children: "Dark" }),
17
21
  /* @__PURE__ */ e(n, { onClick: () => r("system"), children: "System" })
@@ -19,6 +23,6 @@ function k() {
19
23
  ] });
20
24
  }
21
25
  export {
22
- k as ModeToggle
26
+ u as ModeToggle
23
27
  };
24
28
  //# sourceMappingURL=mode-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode-toggle.js","sources":["../../src/components/mode-toggle.tsx"],"sourcesContent":["import { Moon, Sun } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { useTheme } from '@/components/theme-provider'\n\nexport function ModeToggle() {\n const { setTheme } = useTheme()\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger render={<Button variant=\"outline\" size=\"icon\" />}>\n <Sun className=\"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90\" />\n <Moon className=\"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0\" />\n <span className=\"sr-only\">Toggle theme</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => setTheme('light')}>Light</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('dark')}>Dark</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('system')}>System</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n"],"names":["ModeToggle","setTheme","useTheme","DropdownMenu","jsxs","DropdownMenuTrigger","jsx","Button","Sun","Moon","DropdownMenuContent","DropdownMenuItem"],"mappings":";;;;;AAWO,SAASA,IAAa;AAC3B,QAAM,EAAE,UAAAC,EAAA,IAAaC,EAAA;AAErB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAoB,QAAQ,gBAAAC,EAACC,GAAA,EAAO,SAAQ,WAAU,MAAK,QAAO,GACjE,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAI,WAAU,uFAAA,CAAuF;AAAA,MACtG,gBAAAF,EAACG,GAAA,EAAK,WAAU,+FAAA,CAA+F;AAAA,MAC/G,gBAAAH,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,IAAA,GACxC;AAAA,IACA,gBAAAF,EAACM,GAAA,EAAoB,OAAM,OACzB,UAAA;AAAA,MAAA,gBAAAJ,EAACK,KAAiB,SAAS,MAAMV,EAAS,OAAO,GAAG,UAAA,SAAK;AAAA,wBACxDU,GAAA,EAAiB,SAAS,MAAMV,EAAS,MAAM,GAAG,UAAA,QAAI;AAAA,wBACtDU,GAAA,EAAiB,SAAS,MAAMV,EAAS,QAAQ,GAAG,UAAA,SAAA,CAAM;AAAA,IAAA,EAAA,CAC7D;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"mode-toggle.js","sources":["../../src/components/mode-toggle.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { useTheme } from '@/components/theme-provider'\n\n// TODO: Replace with MoonIcon from @/components/icons once moon--16.svg is added to the catalog\nconst MoonIcon = ({ className }: { className?: string }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" className={cn('size-4 shrink-0', className)}>\n <path d=\"M14.5 10.29A7.5 7.5 0 0 1 5.71 1.5 6 6 0 1 0 14.5 10.29z\" />\n </svg>\n)\n\n// TODO: Replace with SunIcon from @/components/icons once sun--16.svg is added to the catalog\nconst SunIcon = ({ className }: { className?: string }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" className={cn('size-4 shrink-0', className)}>\n <circle cx=\"8\" cy=\"8\" r=\"3\" />\n <path d=\"M8 1v2M8 13v2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M1 8h2M13 8h2M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41\" />\n </svg>\n)\n\nexport function ModeToggle() {\n const { setTheme } = useTheme()\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger render={<Button variant=\"outline\" size=\"icon\" />}>\n <SunIcon className=\"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90\" />\n <MoonIcon className=\"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0\" />\n <span className=\"sr-only\">Toggle theme</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => setTheme('light')}>Light</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('dark')}>Dark</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('system')}>System</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n"],"names":["MoonIcon","className","jsx","cn","SunIcon","ModeToggle","setTheme","useTheme","DropdownMenu","jsxs","DropdownMenuTrigger","Button","DropdownMenuContent","DropdownMenuItem"],"mappings":";;;;;AAWA,MAAMA,IAAW,CAAC,EAAE,WAAAC,EAAA,MAClB,gBAAAC,EAAC,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,gBAAe,WAAWC,EAAG,mBAAmBF,CAAS,GACxH,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,2DAAA,CAA2D,EAAA,CACrE,GAIIE,IAAU,CAAC,EAAE,WAAAH,EAAA,wBAChB,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,gBAAe,WAAWE,EAAG,mBAAmBF,CAAS,GACxH,UAAA;AAAA,EAAA,gBAAAC,EAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI;AAAA,EAC5B,gBAAAA,EAAC,QAAA,EAAK,GAAE,iHAAA,CAAiH;AAAA,GAC3H;AAGK,SAASG,IAAa;AAC3B,QAAM,EAAE,UAAAC,EAAA,IAAaC,EAAA;AAErB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAoB,QAAQ,gBAAAR,EAACS,GAAA,EAAO,SAAQ,WAAU,MAAK,QAAO,GACjE,UAAA;AAAA,MAAA,gBAAAT,EAACE,GAAA,EAAQ,WAAU,uFAAA,CAAuF;AAAA,MAC1G,gBAAAF,EAACF,GAAA,EAAS,WAAU,+FAAA,CAA+F;AAAA,MACnH,gBAAAE,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,IAAA,GACxC;AAAA,IACA,gBAAAO,EAACG,GAAA,EAAoB,OAAM,OACzB,UAAA;AAAA,MAAA,gBAAAV,EAACW,KAAiB,SAAS,MAAMP,EAAS,OAAO,GAAG,UAAA,SAAK;AAAA,wBACxDO,GAAA,EAAiB,SAAS,MAAMP,EAAS,MAAM,GAAG,UAAA,QAAI;AAAA,wBACtDO,GAAA,EAAiB,SAAS,MAAMP,EAAS,QAAQ,GAAG,UAAA,SAAA,CAAM;AAAA,IAAA,EAAA,CAC7D;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
2
  import * as n from "react";
3
- import { ChevronDown as s } from "lucide-react";
4
3
  import { cn as c } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { ChevronDownIcon as s } from "../icons/auto-generated.js";
5
6
  import { AccordionItem as d } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/item/AccordionItem.js";
6
7
  import { AccordionHeader as m } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/header/AccordionHeader.js";
7
8
  import { AccordionTrigger as f } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/trigger/AccordionTrigger.js";
8
9
  import { AccordionPanel as l } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/panel/AccordionPanel.js";
9
10
  import { AccordionRoot as p } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/root/AccordionRoot.js";
10
- const I = p, A = n.forwardRef(({ className: o, ...r }, e) => /* @__PURE__ */ t(d, { ref: e, className: c("border-b", o), ...r }));
11
+ const T = p, A = n.forwardRef(({ className: o, ...r }, e) => /* @__PURE__ */ t(d, { ref: e, className: c("border-b", o), ...r }));
11
12
  A.displayName = "AccordionItem";
12
13
  const g = n.forwardRef(({ className: o, children: r, ...e }, i) => (
13
14
  // Header is required by Base UI — it provides the accessible heading role
@@ -43,7 +44,7 @@ const h = n.forwardRef(({ className: o, children: r, ...e }, i) => (
43
44
  ));
44
45
  h.displayName = "AccordionContent";
45
46
  export {
46
- I as Accordion,
47
+ T as Accordion,
47
48
  h as AccordionContent,
48
49
  A as AccordionItem,
49
50
  g as AccordionTrigger
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { Accordion } from '@base-ui/react'\nimport { ChevronDown } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nconst AccordionRoot = Accordion.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof Accordion.Item>,\n React.ComponentPropsWithoutRef<typeof Accordion.Item>\n>(({ className, ...props }, ref) => (\n <Accordion.Item ref={ref} className={cn('border-b', className)} {...props} />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n // Base UI Trigger forwards ref to HTMLElement; button is the concrete element\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Accordion.Trigger>\n>(({ className, children, ...props }, ref) => (\n // Header is required by Base UI — it provides the accessible heading role\n <Accordion.Header className=\"flex\">\n <Accordion.Trigger\n ref={ref as React.Ref<HTMLElement>}\n className={cn(\n // data-open replaces data-[state=open] in Base UI\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </Accordion.Trigger>\n </Accordion.Header>\n))\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof Accordion.Panel>,\n React.ComponentPropsWithoutRef<typeof Accordion.Panel>\n>(({ className, children, ...props }, ref) => (\n // Accordion.Panel replaces Accordion.Content; data-open/data-closed replace data-[state=open/closed]\n <Accordion.Panel\n ref={ref}\n className=\"overflow-hidden text-sm data-[starting-style]:h-0 data-[ending-style]:h-0 transition-[height] duration-200 ease-out\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </Accordion.Panel>\n))\nAccordionContent.displayName = 'AccordionContent'\n\nexport { AccordionRoot as Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["AccordionRoot","Accordion.Root","AccordionItem","React","className","props","ref","jsx","Accordion.Item","cn","AccordionTrigger","children","Accordion.Header","jsxs","Accordion.Trigger","ChevronDown","AccordionContent","Accordion.Panel"],"mappings":";;;;;;;;;AAQA,MAAMA,IAAgBC,GAEhBC,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC,EAACC,GAAA,EAAe,KAAAF,GAAU,WAAWG,EAAG,YAAYL,CAAS,GAAI,GAAGC,GAAO,CAC5E;AACDH,EAAc,cAAc;AAE5B,MAAMQ,IAAmBP,EAAM,WAI7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC,EAACK,GAAA,EAAiB,WAAU,QAC1B,UAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACA,WAAWG;AAAA;AAAA,QAET;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAJ,EAACQ,GAAA,EAAY,WAAU,qDAAA,CAAqD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,EAC9E,CACF;AAAA,CACD;AACDL,EAAiB,cAAc;AAE/B,MAAMM,IAAmBb,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,KAAAX;AAAA,MACA,WAAU;AAAA,MACT,GAAGD;AAAA,MAEJ,4BAAC,OAAA,EAAI,WAAWI,EAAG,aAAaL,CAAS,GAAI,UAAAO,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAAA,CAEzD;AACDK,EAAiB,cAAc;"}
1
+ {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { Accordion } from '@base-ui/react'\nimport { ChevronDownIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\n\nconst AccordionRoot = Accordion.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof Accordion.Item>,\n React.ComponentPropsWithoutRef<typeof Accordion.Item>\n>(({ className, ...props }, ref) => (\n <Accordion.Item ref={ref} className={cn('border-b', className)} {...props} />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n // Base UI Trigger forwards ref to HTMLElement; button is the concrete element\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Accordion.Trigger>\n>(({ className, children, ...props }, ref) => (\n // Header is required by Base UI — it provides the accessible heading role\n <Accordion.Header className=\"flex\">\n <Accordion.Trigger\n ref={ref as React.Ref<HTMLElement>}\n className={cn(\n // data-open replaces data-[state=open] in Base UI\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </Accordion.Trigger>\n </Accordion.Header>\n))\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof Accordion.Panel>,\n React.ComponentPropsWithoutRef<typeof Accordion.Panel>\n>(({ className, children, ...props }, ref) => (\n // Accordion.Panel replaces Accordion.Content; data-open/data-closed replace data-[state=open/closed]\n <Accordion.Panel\n ref={ref}\n className=\"overflow-hidden text-sm data-[starting-style]:h-0 data-[ending-style]:h-0 transition-[height] duration-200 ease-out\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </Accordion.Panel>\n))\nAccordionContent.displayName = 'AccordionContent'\n\nexport { AccordionRoot as Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["AccordionRoot","Accordion.Root","AccordionItem","React","className","props","ref","jsx","Accordion.Item","cn","AccordionTrigger","children","Accordion.Header","jsxs","Accordion.Trigger","ChevronDownIcon","AccordionContent","Accordion.Panel"],"mappings":";;;;;;;;;;AAQA,MAAMA,IAAgBC,GAEhBC,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC,EAACC,GAAA,EAAe,KAAAF,GAAU,WAAWG,EAAG,YAAYL,CAAS,GAAI,GAAGC,GAAO,CAC5E;AACDH,EAAc,cAAc;AAE5B,MAAMQ,IAAmBP,EAAM,WAI7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC,EAACK,GAAA,EAAiB,WAAU,QAC1B,UAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACA,WAAWG;AAAA;AAAA,QAET;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAJ,EAACQ,GAAA,EAAgB,WAAU,qDAAA,CAAqD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,EAClF,CACF;AAAA,CACD;AACDL,EAAiB,cAAc;AAE/B,MAAMM,IAAmBb,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,KAAAX;AAAA,MACA,WAAU;AAAA,MACT,GAAGD;AAAA,MAEJ,4BAAC,OAAA,EAAI,WAAWI,EAAG,aAAaL,CAAS,GAAI,UAAAO,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAAA,CAEzD;AACDK,EAAiB,cAAc;"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as s, jsxs as o } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
- import { Slot as l } from "@radix-ui/react-slot";
4
- import { ChevronRight as c, MoreHorizontal as n } from "lucide-react";
3
+ import { Slot as c } from "@radix-ui/react-slot";
5
4
  import { cn as t } from "../../lib/utils.js";
5
+ import "../icons/dynamic-icons.js";
6
+ import { ChevronRightIcon as l, EllipsisHIcon as n } from "../icons/auto-generated.js";
6
7
  const d = i.forwardRef(({ ...e }, r) => /* @__PURE__ */ s("nav", { ref: r, "aria-label": "breadcrumb", ...e }));
7
8
  d.displayName = "Breadcrumb";
8
9
  const p = i.forwardRef(
@@ -14,7 +15,7 @@ const f = i.forwardRef(
14
15
  );
15
16
  f.displayName = "BreadcrumbItem";
16
17
  const u = i.forwardRef(({ asChild: e, className: r, ...a }, m) => /* @__PURE__ */ s(
17
- e ? l : "a",
18
+ e ? c : "a",
18
19
  {
19
20
  ref: m,
20
21
  className: t(
@@ -46,7 +47,7 @@ const N = ({ children: e, className: r, ...a }) => /* @__PURE__ */ s(
46
47
  "aria-hidden": "true",
47
48
  className: t("[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[#2668C5]", r),
48
49
  ...a,
49
- children: e ?? /* @__PURE__ */ s(c, {})
50
+ children: e ?? /* @__PURE__ */ s(l, {})
50
51
  }
51
52
  );
52
53
  N.displayName = "BreadcrumbSeparator";
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","sources":["../../../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol ref={ref} className={cn('flex flex-wrap items-center gap-4', className)} {...props} />\n )\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-2 h-8', className)} {...props} />\n )\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn(\n 'text-[#2668C5] font-semibold text-sm leading-6 transition-colors hover:opacity-80',\n className\n )}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-semibold text-sm leading-6 text-[#243143]', className)}\n {...props}\n />\n )\n)\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[#2668C5]', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","React","props","ref","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRight","BreadcrumbEllipsis","jsxs","MoreHorizontal"],"mappings":";;;;;AAMA,MAAMA,IAAaC,EAAM,WAKvB,CAAC,EAAE,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAAC,SAAI,KAAAD,GAAU,cAAW,cAAc,GAAGD,GAAO,CAAE;AAC7EF,EAAW,cAAc;AAEzB,MAAMK,IAAiBJ,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,qCAAqCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE5F;AACAG,EAAe,cAAc;AAE7B,MAAMG,IAAiBP,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,sCAAsCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE7F;AACAM,EAAe,cAAc;AAE7B,MAAMC,IAAiBR,EAAM,WAK3B,CAAC,EAAE,SAAAS,GAAS,WAAAJ,GAAW,GAAGJ,EAAA,GAASC,MAIjC,gBAAAC;AAAA,EAHWM,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAAR;AAAA,IACA,WAAWI;AAAA,MACT;AAAA,MACAD;AAAA,IAAA;AAAA,IAED,GAAGJ;AAAA,EAAA;AAAA,CAGT;AACDO,EAAe,cAAc;AAE7B,MAAMG,IAAiBX,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAWI,EAAG,kDAAkDD,CAAS;AAAA,MACxE,GAAGJ;AAAA,IAAA;AAAA,EAAA;AAGV;AACAU,EAAe,cAAc;AAE7B,MAAMC,IAAsB,CAAC,EAAE,UAAAC,GAAU,WAAAR,GAAW,GAAGJ,QACrD,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWG,EAAG,kDAAkDD,CAAS;AAAA,IACxE,GAAGJ;AAAA,IAEH,UAAAY,uBAAaC,GAAA,CAAA,CAAa;AAAA,EAAA;AAC7B;AAEFF,EAAoB,cAAc;AAElC,MAAMG,IAAqB,CAAC,EAAE,WAAAV,GAAW,GAAGJ,QAC1C,gBAAAe;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWV,EAAG,4CAA4CD,CAAS;AAAA,IAClE,GAAGJ;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAACc,GAAA,EAAe,WAAU,UAAA,CAAU;AAAA,MACpC,gBAAAd,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAChC;AAEFY,EAAmB,cAAc;"}
1
+ {"version":3,"file":"breadcrumb.js","sources":["../../../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRightIcon, EllipsisHIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol ref={ref} className={cn('flex flex-wrap items-center gap-4', className)} {...props} />\n )\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-2 h-8', className)} {...props} />\n )\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn(\n 'text-[#2668C5] font-semibold text-sm leading-6 transition-colors hover:opacity-80',\n className\n )}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-semibold text-sm leading-6 text-[#243143]', className)}\n {...props}\n />\n )\n)\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[#2668C5]', className)}\n {...props}\n >\n {children ?? <ChevronRightIcon />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <EllipsisHIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","React","props","ref","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRightIcon","BreadcrumbEllipsis","jsxs","EllipsisHIcon"],"mappings":";;;;;;AAMA,MAAMA,IAAaC,EAAM,WAKvB,CAAC,EAAE,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAAC,SAAI,KAAAD,GAAU,cAAW,cAAc,GAAGD,GAAO,CAAE;AAC7EF,EAAW,cAAc;AAEzB,MAAMK,IAAiBJ,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,qCAAqCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE5F;AACAG,EAAe,cAAc;AAE7B,MAAMG,IAAiBP,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,sCAAsCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE7F;AACAM,EAAe,cAAc;AAE7B,MAAMC,IAAiBR,EAAM,WAK3B,CAAC,EAAE,SAAAS,GAAS,WAAAJ,GAAW,GAAGJ,EAAA,GAASC,MAIjC,gBAAAC;AAAA,EAHWM,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAAR;AAAA,IACA,WAAWI;AAAA,MACT;AAAA,MACAD;AAAA,IAAA;AAAA,IAED,GAAGJ;AAAA,EAAA;AAAA,CAGT;AACDO,EAAe,cAAc;AAE7B,MAAMG,IAAiBX,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAWI,EAAG,kDAAkDD,CAAS;AAAA,MACxE,GAAGJ;AAAA,IAAA;AAAA,EAAA;AAGV;AACAU,EAAe,cAAc;AAE7B,MAAMC,IAAsB,CAAC,EAAE,UAAAC,GAAU,WAAAR,GAAW,GAAGJ,QACrD,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWG,EAAG,kDAAkDD,CAAS;AAAA,IACxE,GAAGJ;AAAA,IAEH,UAAAY,uBAAaC,GAAA,CAAA,CAAiB;AAAA,EAAA;AACjC;AAEFF,EAAoB,cAAc;AAElC,MAAMG,IAAqB,CAAC,EAAE,WAAAV,GAAW,GAAGJ,QAC1C,gBAAAe;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWV,EAAG,4CAA4CD,CAAS;AAAA,IAClE,GAAGJ;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAACc,GAAA,EAAc,WAAU,UAAA,CAAU;AAAA,MACnC,gBAAAd,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAChC;AAEFY,EAAmB,cAAc;"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import * as m from "react";
3
- import { ChevronLeftIcon as b, ChevronRightIcon as w, ChevronDownIcon as h } from "lucide-react";
2
+ import * as g from "react";
4
3
  import { cn as e } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { ChevronLeftIcon as b, ChevronRightIcon as w, ChevronDownIcon as h } from "../icons/auto-generated.js";
5
6
  import { buttonVariants as f, Button as v } from "./button.js";
6
7
  import { getDefaultClassNames as p } from "../../node_modules/.pnpm/react-day-picker@9.13.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js";
7
8
  import { DayPicker as _ } from "../../node_modules/.pnpm/react-day-picker@9.13.0_react@18.3.1/node_modules/react-day-picker/dist/esm/DayPicker.js";
8
- function R({
9
+ function S({
9
10
  className: i,
10
- classNames: g,
11
+ classNames: m,
11
12
  showOutsideDays: a = !0,
12
13
  captionLayout: l = "label",
13
14
  buttonVariant: s = "ghost",
@@ -96,7 +97,7 @@ function R({
96
97
  ),
97
98
  disabled: e("text-muted-foreground opacity-50", t.disabled),
98
99
  hidden: e("invisible", t.hidden),
99
- ...g
100
+ ...m
100
101
  },
101
102
  components: {
102
103
  Root: ({ className: r, rootRef: d, ...o }) => /* @__PURE__ */ n("div", { "data-slot": "calendar", ref: d, className: e(r), ...o }),
@@ -111,12 +112,12 @@ function R({
111
112
  }
112
113
  function y({
113
114
  className: i,
114
- day: g,
115
+ day: m,
115
116
  modifiers: a,
116
117
  ...l
117
118
  }) {
118
- const s = p(), u = m.useRef(null);
119
- return m.useEffect(() => {
119
+ const s = p(), u = g.useRef(null);
120
+ return g.useEffect(() => {
120
121
  var c;
121
122
  a.focused && ((c = u.current) == null || c.focus());
122
123
  }, [a.focused]), /* @__PURE__ */ n(
@@ -125,7 +126,7 @@ function y({
125
126
  ref: u,
126
127
  variant: "ghost",
127
128
  size: "icon",
128
- "data-day": g.date.toLocaleDateString(),
129
+ "data-day": m.date.toLocaleDateString(),
129
130
  "data-selected-single": a.selected && !a.range_start && !a.range_end && !a.range_middle,
130
131
  "data-range-start": a.range_start,
131
132
  "data-range-end": a.range_end,
@@ -140,7 +141,7 @@ function y({
140
141
  );
141
142
  }
142
143
  export {
143
- R as Calendar,
144
+ S as Calendar,
144
145
  y as CalendarDayButton
145
146
  };
146
147
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker'\n\nimport { cn } from '@/lib/utils'\nimport { Button, buttonVariants } from '@/components/ui/button'\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant']\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_next\n ),\n month_caption: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center px-[var(--cell-size)]',\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n 'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('bg-popover absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label'\n ? 'text-sm'\n : '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',\n defaultClassNames.weekday\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-[var(--cell-size)] select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-muted-foreground select-none text-[0.8rem]',\n defaultClassNames.week_number\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\n defaultClassNames.day\n ),\n range_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\n today: cn(\n 'font-semibold underline rounded-md data-[selected=true]:rounded-none data-[selected=true]:no-underline',\n defaultClassNames.today\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-[var(--cell-size)] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'data-[selected-single=true]:bg-primary data-[selected-single=true]:text-white data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-white data-[range-end=true]:bg-primary data-[range-end=true]:text-white group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[var(--cell-size)] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"names":["Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","jsx","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","React","_a","Button"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from '@/components/icons'\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker'\n\nimport { cn } from '@/lib/utils'\nimport { Button, buttonVariants } from '@/components/ui/button'\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant']\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_next\n ),\n month_caption: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center px-[var(--cell-size)]',\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n 'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('bg-popover absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label'\n ? 'text-sm'\n : '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',\n defaultClassNames.weekday\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-[var(--cell-size)] select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-muted-foreground select-none text-[0.8rem]',\n defaultClassNames.week_number\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\n defaultClassNames.day\n ),\n range_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\n today: cn(\n 'font-semibold underline rounded-md data-[selected=true]:rounded-none data-[selected=true]:no-underline',\n defaultClassNames.today\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-[var(--cell-size)] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'data-[selected-single=true]:bg-primary data-[selected-single=true]:text-white data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-white data-[range-end=true]:bg-primary data-[range-end=true]:text-white group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[var(--cell-size)] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"names":["Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","jsx","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","React","_a","Button"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as s, jsxs as x } from "react/jsx-runtime";
2
2
  import * as r from "react";
3
3
  import k from "../../node_modules/.pnpm/embla-carousel-react@8.6.0_react@18.3.1/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js";
4
- import { ArrowLeft as z, ArrowRight as g } from "lucide-react";
5
4
  import { cn as m } from "../../lib/utils.js";
5
+ import "../icons/dynamic-icons.js";
6
+ import { ArrowLeftIcon as z, ArrowRightIcon as g } from "../icons/auto-generated.js";
6
7
  import { Button as w } from "./button.js";
7
8
  const v = r.createContext(null);
8
9
  function C() {
@@ -11,15 +12,15 @@ function C() {
11
12
  throw new Error("useCarousel must be used within a <Carousel />");
12
13
  return o;
13
14
  }
14
- const D = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plugins: a, className: c, children: i, ...u }, f) => {
15
+ const I = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plugins: a, className: c, children: i, ...u }, f) => {
15
16
  const [y, e] = k(
16
17
  {
17
18
  ...l,
18
19
  axis: o === "horizontal" ? "x" : "y"
19
20
  },
20
21
  a
21
- ), [b, P] = r.useState(!1), [S, p] = r.useState(!1), d = r.useCallback((n) => {
22
- n && (P(n.canScrollPrev()), p(n.canScrollNext()));
22
+ ), [b, p] = r.useState(!1), [P, S] = r.useState(!1), d = r.useCallback((n) => {
23
+ n && (p(n.canScrollPrev()), S(n.canScrollNext()));
23
24
  }, []), h = r.useCallback(() => {
24
25
  e == null || e.scrollPrev();
25
26
  }, [e]), N = r.useCallback(() => {
@@ -48,7 +49,7 @@ const D = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plu
48
49
  scrollPrev: h,
49
50
  scrollNext: N,
50
51
  canScrollPrev: b,
51
- canScrollNext: S
52
+ canScrollNext: P
52
53
  },
53
54
  children: /* @__PURE__ */ s(
54
55
  "div",
@@ -65,8 +66,8 @@ const D = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plu
65
66
  }
66
67
  );
67
68
  });
68
- D.displayName = "Carousel";
69
- const E = r.forwardRef(
69
+ I.displayName = "Carousel";
70
+ const D = r.forwardRef(
70
71
  ({ className: o, ...l }, t) => {
71
72
  const { carouselRef: a, orientation: c } = C();
72
73
  return /* @__PURE__ */ s("div", { ref: a, className: "overflow-hidden", children: /* @__PURE__ */ s(
@@ -83,8 +84,8 @@ const E = r.forwardRef(
83
84
  ) });
84
85
  }
85
86
  );
86
- E.displayName = "CarouselContent";
87
- const I = r.forwardRef(
87
+ D.displayName = "CarouselContent";
88
+ const E = r.forwardRef(
88
89
  ({ className: o, ...l }, t) => {
89
90
  const { orientation: a } = C();
90
91
  return /* @__PURE__ */ s(
@@ -103,7 +104,7 @@ const I = r.forwardRef(
103
104
  );
104
105
  }
105
106
  );
106
- I.displayName = "CarouselItem";
107
+ E.displayName = "CarouselItem";
107
108
  const j = r.forwardRef(
108
109
  ({ className: o, variant: l = "outline", size: t = "icon", ...a }, c) => {
109
110
  const { orientation: i, scrollPrev: u, canScrollPrev: f } = C();
@@ -157,9 +158,9 @@ const A = r.forwardRef(
157
158
  );
158
159
  A.displayName = "CarouselNext";
159
160
  export {
160
- D as Carousel,
161
- E as CarouselContent,
162
- I as CarouselItem,
161
+ I as Carousel,
162
+ D as CarouselContent,
163
+ E as CarouselItem,
163
164
  A as CarouselNext,
164
165
  j as CarouselPrevious
165
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["import * as React from 'react'\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: 'horizontal' | 'vertical'\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />')\n }\n\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === 'ArrowRight') {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on('reInit', onSelect)\n api.on('select', onSelect)\n\n return () => {\n api?.off('select', onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n})\nCarousel.displayName = 'Carousel'\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n 'flex',\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n className\n )}\n {...props}\n />\n </div>\n )\n }\n)\nCarouselContent.displayName = 'CarouselContent'\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className\n )}\n {...props}\n />\n )\n }\n)\nCarouselItem.displayName = 'CarouselItem'\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n }\n)\nCarouselPrevious.displayName = 'CarouselPrevious'\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n }\n)\nCarouselNext.displayName = 'CarouselNext'\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["import * as React from 'react'\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'\nimport { ArrowLeftIcon, ArrowRightIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: 'horizontal' | 'vertical'\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />')\n }\n\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === 'ArrowRight') {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on('reInit', onSelect)\n api.on('select', onSelect)\n\n return () => {\n api?.off('select', onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n})\nCarousel.displayName = 'Carousel'\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n 'flex',\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n className\n )}\n {...props}\n />\n </div>\n )\n }\n)\nCarouselContent.displayName = 'CarouselContent'\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className\n )}\n {...props}\n />\n )\n }\n)\nCarouselItem.displayName = 'CarouselItem'\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeftIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n }\n)\nCarouselPrevious.displayName = 'CarouselPrevious'\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRightIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n }\n)\nCarouselNext.displayName = 'CarouselNext'\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeftIcon","CarouselNext","ArrowRightIcon"],"mappings":";;;;;;;AA4BA,MAAMA,IAAkBC,EAAM,cAA2C,IAAI;AAE7E,SAASC,IAAc;AACrB,QAAMC,IAAUF,EAAM,WAAWD,CAAe;AAEhD,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,gDAAgD;AAGlE,SAAOA;AACT;AAEA,MAAMC,IAAWH,EAAM,WAGrB,CAAC,EAAE,aAAAI,IAAc,cAAc,MAAAC,GAAM,QAAAC,GAAQ,SAAAC,GAAS,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC/F,QAAM,CAACC,GAAaC,CAAG,IAAIC;AAAA,IACzB;AAAA,MACE,GAAGT;AAAA,MACH,MAAMD,MAAgB,eAAe,MAAM;AAAA,IAAA;AAAA,IAE7CG;AAAA,EAAA,GAEI,CAACQ,GAAeC,CAAgB,IAAIhB,EAAM,SAAS,EAAK,GACxD,CAACiB,GAAeC,CAAgB,IAAIlB,EAAM,SAAS,EAAK,GAExDmB,IAAWnB,EAAM,YAAY,CAACa,MAAqB;AACvD,IAAKA,MAILG,EAAiBH,EAAI,eAAe,GACpCK,EAAiBL,EAAI,eAAe;AAAA,EACtC,GAAG,CAAA,CAAE,GAECO,IAAapB,EAAM,YAAY,MAAM;AACzC,IAAAa,KAAA,QAAAA,EAAK;AAAA,EACP,GAAG,CAACA,CAAG,CAAC,GAEFQ,IAAarB,EAAM,YAAY,MAAM;AACzC,IAAAa,KAAA,QAAAA,EAAK;AAAA,EACP,GAAG,CAACA,CAAG,CAAC,GAEFS,IAAgBtB,EAAM;AAAA,IAC1B,CAACuB,MAA+C;AAC9C,MAAIA,EAAM,QAAQ,eAChBA,EAAM,eAAA,GACNH,EAAA,KACSG,EAAM,QAAQ,iBACvBA,EAAM,eAAA,GACNF,EAAA;AAAA,IAEJ;AAAA,IACA,CAACD,GAAYC,CAAU;AAAA,EAAA;AAGzB,SAAArB,EAAM,UAAU,MAAM;AACpB,IAAI,CAACa,KAAO,CAACP,KAIbA,EAAOO,CAAG;AAAA,EACZ,GAAG,CAACA,GAAKP,CAAM,CAAC,GAEhBN,EAAM,UAAU,MAAM;AACpB,QAAKa;AAIL,aAAAM,EAASN,CAAG,GACZA,EAAI,GAAG,UAAUM,CAAQ,GACzBN,EAAI,GAAG,UAAUM,CAAQ,GAElB,MAAM;AACX,QAAAN,KAAA,QAAAA,EAAK,IAAI,UAAUM;AAAA,MACrB;AAAA,EACF,GAAG,CAACN,GAAKM,CAAQ,CAAC,GAGhB,gBAAAK;AAAA,IAACzB,EAAgB;AAAA,IAAhB;AAAA,MACC,OAAO;AAAA,QACL,aAAAa;AAAA,QACA,KAAAC;AAAA,QACA,MAAAR;AAAA,QACA,aAAaD,OAAgBC,KAAA,gBAAAA,EAAM,UAAS,MAAM,aAAa;AAAA,QAC/D,YAAAe;AAAA,QACA,YAAAC;AAAA,QACA,eAAAN;AAAA,QACA,eAAAE;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAb;AAAA,UACA,kBAAkBW;AAAA,UAClB,WAAWG,EAAG,YAAYjB,CAAS;AAAA,UACnC,MAAK;AAAA,UACL,wBAAqB;AAAA,UACpB,GAAGE;AAAA,UAEH,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,CAAC;AACDN,EAAS,cAAc;AAEvB,MAAMuB,IAAkB1B,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAQ,GAAW,GAAGE,EAAA,GAASC,MAAQ;AAChC,UAAM,EAAE,aAAAC,GAAa,aAAAR,EAAA,IAAgBH,EAAA;AAErC,WACE,gBAAAuB,EAAC,OAAA,EAAI,KAAKZ,GAAa,WAAU,mBAC/B,UAAA,gBAAAY;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACA,WAAWc;AAAA,UACT;AAAA,UACArB,MAAgB,eAAe,UAAU;AAAA,UACzCI;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,EAEJ;AACF;AACAgB,EAAgB,cAAc;AAE9B,MAAMC,IAAe3B,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAQ,GAAW,GAAGE,EAAA,GAASC,MAAQ;AAChC,UAAM,EAAE,aAAAP,EAAA,IAAgBH,EAAA;AAExB,WACE,gBAAAuB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACA,MAAK;AAAA,QACL,wBAAqB;AAAA,QACrB,WAAWc;AAAA,UACT;AAAA,UACArB,MAAgB,eAAe,SAAS;AAAA,UACxCI;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AACAiB,EAAa,cAAc;AAE3B,MAAMC,IAAmB5B,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAQ,GAAW,SAAAqB,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGpB,EAAA,GAASC,MAAQ;AACpE,UAAM,EAAE,aAAAP,GAAa,YAAAgB,GAAY,eAAAL,EAAA,IAAkBd,EAAA;AAEnD,WACE,gBAAA8B;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAArB;AAAA,QACA,SAAAkB;AAAA,QACA,MAAAC;AAAA,QACA,WAAWL;AAAA,UACT;AAAA,UACArB,MAAgB,eACZ,sCACA;AAAA,UACJI;AAAA,QAAA;AAAA,QAEF,UAAU,CAACO;AAAA,QACX,SAASK;AAAA,QACR,GAAGV;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAc,EAACS,GAAA,EAAc,WAAU,UAAA,CAAU;AAAA,UACnC,gBAAAT,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,iBAAA,CAAc;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG9C;AACF;AACAI,EAAiB,cAAc;AAE/B,MAAMM,IAAelC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAQ,GAAW,SAAAqB,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGpB,EAAA,GAASC,MAAQ;AACpE,UAAM,EAAE,aAAAP,GAAa,YAAAiB,GAAY,eAAAJ,EAAA,IAAkBhB,EAAA;AAEnD,WACE,gBAAA8B;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAArB;AAAA,QACA,SAAAkB;AAAA,QACA,MAAAC;AAAA,QACA,WAAWL;AAAA,UACT;AAAA,UACArB,MAAgB,eACZ,uCACA;AAAA,UACJI;AAAA,QAAA;AAAA,QAEF,UAAU,CAACS;AAAA,QACX,SAASI;AAAA,QACR,GAAGX;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAc,EAACW,GAAA,EAAe,WAAU,UAAA,CAAU;AAAA,UACpC,gBAAAX,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,aAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG1C;AACF;AACAU,EAAa,cAAc;"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import * as c from "react";
3
- import { Minus as m, Check as s } from "lucide-react";
4
3
  import { cn as t } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { MinusIcon as m, CheckIcon as s } from "../icons/auto-generated.js";
5
6
  import { CheckboxRoot as l } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRoot.js";
6
7
  import { CheckboxIndicator as b } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/checkbox/indicator/CheckboxIndicator.js";
7
8
  const u = c.forwardRef(
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react'\nimport { Check, Minus } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Extends Base UI's Checkbox props to accept `checked=\"indeterminate\"` for\n * backwards-compatibility with the Radix UI API. Base UI uses a separate boolean\n * `indeterminate` prop, so we override `checked` here and normalize it internally.\n */\ntype CheckboxProps = Omit<React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, 'checked'> & {\n checked?: boolean | 'indeterminate'\n}\n\nconst Checkbox = React.forwardRef<HTMLElement, CheckboxProps>(\n ({ className, checked, indeterminate, ...props }, ref) => {\n // Derive indeterminate state from either the explicit `indeterminate` prop or\n // the Radix-style `checked=\"indeterminate\"` string. An explicit boolean\n // `indeterminate` prop takes precedence (via `??`).\n const isIndeterminate = indeterminate ?? (checked === 'indeterminate')\n // Normalize checked to boolean for Base UI (which does not accept the string 'indeterminate').\n const normalizedChecked = checked === 'indeterminate' ? undefined : checked\n\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n checked={normalizedChecked}\n indeterminate={isIndeterminate}\n className={cn(\n 'peer inline-flex items-center justify-center h-4 w-4 shrink-0 rounded-sm border bg-background border-input/30 transition-colors',\n 'hover:border-input/50',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:bg-muted/10 disabled:border-muted/10',\n 'data-[checked]:bg-primary data-[checked]:border-primary data-[checked]:text-primary-foreground',\n 'data-[indeterminate]:bg-primary data-[indeterminate]:border-primary data-[indeterminate]:text-primary-foreground',\n className\n )}\n {...props}\n >\n {/* keepMounted ensures the indicator stays in the DOM so we can always render the correct icon */}\n <CheckboxPrimitive.Indicator keepMounted className={cn('flex items-center justify-center text-current data-[unchecked]:hidden')}>\n {isIndeterminate ? (\n <Minus className=\"h-3 w-3\" />\n ) : (\n <Check className=\"h-3 w-3\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }"],"names":["Checkbox","React","className","checked","indeterminate","props","ref","isIndeterminate","jsx","CheckboxPrimitive.Root","cn","CheckboxPrimitive.Indicator","Minus","Check"],"mappings":";;;;;;AAeA,MAAMA,IAAWC,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,eAAAC,GAAe,GAAGC,EAAA,GAASC,MAAQ;AAIxD,UAAMC,IAAkBH,KAAkBD,MAAY;AAItD,WACE,gBAAAK;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,SALsBH,MAAY,kBAAkB,SAAYA;AAAA,QAMhE,eAAeI;AAAA,QACf,WAAWG;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACAR;AAAA,QAAA;AAAA,QAED,GAAGG;AAAA,QAGJ,UAAA,gBAAAG,EAACG,GAAA,EAA4B,aAAW,IAAC,WAAWD,EAAG,uEAAuE,GAC3H,cACC,gBAAAF,EAACI,GAAA,EAAM,WAAU,WAAU,sBAE1BC,GAAA,EAAM,WAAU,WAAU,EAAA,CAE/B;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AACAb,EAAS,cAAc;"}
1
+ {"version":3,"file":"checkbox.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react'\nimport { CheckIcon, MinusIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Extends Base UI's Checkbox props to accept `checked=\"indeterminate\"` for\n * backwards-compatibility with the Radix UI API. Base UI uses a separate boolean\n * `indeterminate` prop, so we override `checked` here and normalize it internally.\n */\ntype CheckboxProps = Omit<React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, 'checked'> & {\n checked?: boolean | 'indeterminate'\n}\n\nconst Checkbox = React.forwardRef<HTMLElement, CheckboxProps>(\n ({ className, checked, indeterminate, ...props }, ref) => {\n // Derive indeterminate state from either the explicit `indeterminate` prop or\n // the Radix-style `checked=\"indeterminate\"` string. An explicit boolean\n // `indeterminate` prop takes precedence (via `??`).\n const isIndeterminate = indeterminate ?? (checked === 'indeterminate')\n // Normalize checked to boolean for Base UI (which does not accept the string 'indeterminate').\n const normalizedChecked = checked === 'indeterminate' ? undefined : checked\n\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n checked={normalizedChecked}\n indeterminate={isIndeterminate}\n className={cn(\n 'peer inline-flex items-center justify-center h-4 w-4 shrink-0 rounded-sm border bg-background border-input/30 transition-colors',\n 'hover:border-input/50',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:bg-muted/10 disabled:border-muted/10',\n 'data-[checked]:bg-primary data-[checked]:border-primary data-[checked]:text-primary-foreground',\n 'data-[indeterminate]:bg-primary data-[indeterminate]:border-primary data-[indeterminate]:text-primary-foreground',\n className\n )}\n {...props}\n >\n {/* keepMounted ensures the indicator stays in the DOM so we can always render the correct icon */}\n <CheckboxPrimitive.Indicator keepMounted className={cn('flex items-center justify-center text-current data-[unchecked]:hidden')}>\n {isIndeterminate ? (\n <MinusIcon className=\"h-3 w-3\" />\n ) : (\n <CheckIcon className=\"h-3 w-3\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n }\n)\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }"],"names":["Checkbox","React","className","checked","indeterminate","props","ref","isIndeterminate","jsx","CheckboxPrimitive.Root","cn","CheckboxPrimitive.Indicator","MinusIcon","CheckIcon"],"mappings":";;;;;;;AAeA,MAAMA,IAAWC,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,eAAAC,GAAe,GAAGC,EAAA,GAASC,MAAQ;AAIxD,UAAMC,IAAkBH,KAAkBD,MAAY;AAItD,WACE,gBAAAK;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,SALsBH,MAAY,kBAAkB,SAAYA;AAAA,QAMhE,eAAeI;AAAA,QACf,WAAWG;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACAR;AAAA,QAAA;AAAA,QAED,GAAGG;AAAA,QAGJ,UAAA,gBAAAG,EAACG,GAAA,EAA4B,aAAW,IAAC,WAAWD,EAAG,uEAAuE,GAC3H,cACC,gBAAAF,EAACI,GAAA,EAAU,WAAU,WAAU,sBAE9BC,GAAA,EAAU,WAAU,WAAU,EAAA,CAEnC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AACAb,EAAS,cAAc;"}
@@ -1,12 +1,13 @@
1
- import { jsxs as o, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
- import { X as f } from "lucide-react";
4
3
  import { cn as c } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { CloseIcon as f } from "../icons/auto-generated.js";
5
6
  const m = i.forwardRef(
6
- ({ className: t, children: s, onRemove: e, icon: l, ...n }, a) => /* @__PURE__ */ o(
7
+ ({ className: t, children: s, onRemove: e, icon: l, ...n }, o) => /* @__PURE__ */ a(
7
8
  "div",
8
9
  {
9
- ref: a,
10
+ ref: o,
10
11
  className: c(
11
12
  "inline-flex h-6 items-center gap-2 rounded-full border border-[rgba(38,104,197,0.3)] bg-[rgba(38,104,197,0.05)] text-sm leading-6 text-[hsl(var(--chip-foreground))]",
12
13
  e ? "pl-3 pr-0" : "px-3",
@@ -1 +1 @@
1
- {"version":3,"file":"chip.js","sources":["../../../src/components/ui/chip.tsx"],"sourcesContent":["import * as React from 'react'\nimport { X } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {\n onRemove?: () => void\n icon?: React.ReactNode\n}\n\nconst Chip = React.forwardRef<HTMLDivElement, ChipProps>(\n ({ className, children, onRemove, icon, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'inline-flex h-6 items-center gap-2 rounded-full border border-[rgba(38,104,197,0.3)] bg-[rgba(38,104,197,0.05)] text-sm leading-6 text-[hsl(var(--chip-foreground))]',\n onRemove ? 'pl-3 pr-0' : 'px-3',\n className\n )}\n {...props}\n >\n {icon && <span className=\"flex h-4 w-4 items-center justify-center\">{icon}</span>}\n <span className=\"font-normal\">{children}</span>\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"flex h-full items-center justify-center rounded-br-full rounded-tr-full pl-1 pr-2 hover:bg-black/5 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1\"\n aria-label=\"Remove\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n )\n }\n)\nChip.displayName = 'Chip'\n\nexport { Chip }\n"],"names":["Chip","React","className","children","onRemove","icon","props","ref","jsxs","cn","jsx","X"],"mappings":";;;;AASA,MAAMA,IAAOC,EAAM;AAAA,EACjB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAEhD,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAL,IAAW,cAAc;AAAA,QACzBF;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAD,KAAQ,gBAAAK,EAAC,QAAA,EAAK,WAAU,4CAA4C,UAAAL,GAAK;AAAA,QAC1E,gBAAAK,EAAC,QAAA,EAAK,WAAU,eAAe,UAAAP,EAAA,CAAS;AAAA,QACvCC,KACC,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAASN;AAAA,YACT,WAAU;AAAA,YACV,cAAW;AAAA,YAEX,UAAA,gBAAAM,EAACC,GAAA,EAAE,WAAU,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACzB;AAAA,IAAA;AAAA,EAAA;AAKV;AACAX,EAAK,cAAc;"}
1
+ {"version":3,"file":"chip.js","sources":["../../../src/components/ui/chip.tsx"],"sourcesContent":["import * as React from 'react'\nimport { CloseIcon } from '@/components/icons'\nimport { cn } from '@/lib/utils'\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {\n onRemove?: () => void\n icon?: React.ReactNode\n}\n\nconst Chip = React.forwardRef<HTMLDivElement, ChipProps>(\n ({ className, children, onRemove, icon, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'inline-flex h-6 items-center gap-2 rounded-full border border-[rgba(38,104,197,0.3)] bg-[rgba(38,104,197,0.05)] text-sm leading-6 text-[hsl(var(--chip-foreground))]',\n onRemove ? 'pl-3 pr-0' : 'px-3',\n className\n )}\n {...props}\n >\n {icon && <span className=\"flex h-4 w-4 items-center justify-center\">{icon}</span>}\n <span className=\"font-normal\">{children}</span>\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"flex h-full items-center justify-center rounded-br-full rounded-tr-full pl-1 pr-2 hover:bg-black/5 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1\"\n aria-label=\"Remove\"\n >\n <CloseIcon className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n )\n }\n)\nChip.displayName = 'Chip'\n\nexport { Chip }\n"],"names":["Chip","React","className","children","onRemove","icon","props","ref","jsxs","cn","jsx","CloseIcon"],"mappings":";;;;;AASA,MAAMA,IAAOC,EAAM;AAAA,EACjB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAEhD,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAL,IAAW,cAAc;AAAA,QACzBF;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAD,KAAQ,gBAAAK,EAAC,QAAA,EAAK,WAAU,4CAA4C,UAAAL,GAAK;AAAA,QAC1E,gBAAAK,EAAC,QAAA,EAAK,WAAU,eAAe,UAAAP,EAAA,CAAS;AAAA,QACvCC,KACC,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAASN;AAAA,YACT,WAAU;AAAA,YACV,cAAW;AAAA,YAEX,UAAA,gBAAAM,EAACC,GAAA,EAAU,WAAU,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACjC;AAAA,IAAA;AAAA,EAAA;AAKV;AACAX,EAAK,cAAc;"}
@@ -1,7 +1,8 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
2
  import * as s from "react";
3
- import { ChevronsUpDownIcon as p, CheckIcon as u } from "lucide-react";
4
- import { cn as d } from "../../lib/utils.js";
3
+ import { cn as c } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { ChevronUpdownIcon as u, CheckIcon as d } from "../icons/auto-generated.js";
5
6
  import { Button as v } from "./button.js";
6
7
  import { Command as h, CommandInput as f, CommandList as x, CommandEmpty as b, CommandGroup as C, CommandItem as j } from "./command.js";
7
8
  import { Popover as w, PopoverTrigger as N, PopoverContent as S } from "./popover.js";
@@ -27,9 +28,9 @@ const i = [
27
28
  label: "Astro"
28
29
  }
29
30
  ];
30
- function O() {
31
+ function A() {
31
32
  var n;
32
- const [t, r] = s.useState(!1), [l, c] = s.useState("");
33
+ const [t, r] = s.useState(!1), [l, p] = s.useState("");
33
34
  return /* @__PURE__ */ a(w, { open: t, onOpenChange: r, children: [
34
35
  /* @__PURE__ */ e(
35
36
  N,
@@ -43,7 +44,7 @@ function O() {
43
44
  className: "w-[200px] justify-between",
44
45
  children: [
45
46
  l ? (n = i.find((o) => o.value === l)) == null ? void 0 : n.label : "Select framework...",
46
- /* @__PURE__ */ e(p, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
47
+ /* @__PURE__ */ e(u, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
47
48
  ]
48
49
  }
49
50
  )
@@ -58,13 +59,13 @@ function O() {
58
59
  {
59
60
  value: o.value,
60
61
  onSelect: (m) => {
61
- c(m === l ? "" : m), r(!1);
62
+ p(m === l ? "" : m), r(!1);
62
63
  },
63
64
  children: [
64
65
  /* @__PURE__ */ e(
65
- u,
66
+ d,
66
67
  {
67
- className: d(
68
+ className: c(
68
69
  "mr-2 h-4 w-4",
69
70
  l === o.value ? "opacity-100" : "opacity-0"
70
71
  )
@@ -80,6 +81,6 @@ function O() {
80
81
  ] });
81
82
  }
82
83
  export {
83
- O as Combobox
84
+ A as Combobox
84
85
  };
85
86
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n\nconst frameworks = [\n {\n value: 'next.js',\n label: 'Next.js',\n },\n {\n value: 'sveltekit',\n label: 'SvelteKit',\n },\n {\n value: 'nuxt.js',\n label: 'Nuxt.js',\n },\n {\n value: 'remix',\n label: 'Remix',\n },\n {\n value: 'astro',\n label: 'Astro',\n },\n]\n\nexport function Combobox() {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState('')\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-[200px] justify-between\"\n >\n {value\n ? frameworks.find((framework) => framework.value === value)?.label\n : 'Select framework...'}\n <ChevronsUpDownIcon className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n }\n />\n <PopoverContent className=\"w-[200px] p-0\">\n <Command>\n <CommandInput placeholder=\"Search framework...\" />\n <CommandList>\n <CommandEmpty>No framework found.</CommandEmpty>\n <CommandGroup>\n {frameworks.map((framework) => (\n <CommandItem\n key={framework.value}\n value={framework.value}\n onSelect={(currentValue) => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n <CheckIcon\n className={cn(\n 'mr-2 h-4 w-4',\n value === framework.value ? 'opacity-100' : 'opacity-0'\n )}\n />\n {framework.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n"],"names":["frameworks","Combobox","open","setOpen","React","value","setValue","jsxs","Popover","jsx","PopoverTrigger","Button","_a","framework","ChevronsUpDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","currentValue","CheckIcon","cn"],"mappings":";;;;;;;AAiBA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAEX;AAEO,SAASC,IAAW;;AACzB,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAM,SAAS,EAAK,GACtC,CAACC,GAAOC,CAAQ,IAAIF,EAAM,SAAS,EAAE;AAE3C,SACE,gBAAAG,EAACC,GAAA,EAAQ,MAAAN,GAAY,cAAcC,GACjC,UAAA;AAAA,IAAA,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,QACE,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,iBAAeT;AAAA,YACf,WAAU;AAAA,YAET,UAAA;AAAA,cAAAG,KACGO,IAAAZ,EAAW,KAAK,CAACa,MAAcA,EAAU,UAAUR,CAAK,MAAxD,gBAAAO,EAA2D,QAC3D;AAAA,cACJ,gBAAAH,EAACK,GAAA,EAAmB,WAAU,mCAAA,CAAmC;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnE;AAAA,IAAA;AAAA,IAGJ,gBAAAL,EAACM,GAAA,EAAe,WAAU,iBACxB,4BAACC,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP,EAACQ,GAAA,EAAa,aAAY,sBAAA,CAAsB;AAAA,wBAC/CC,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAT,EAACU,KAAa,UAAA,sBAAA,CAAmB;AAAA,QACjC,gBAAAV,EAACW,GAAA,EACE,UAAApB,EAAW,IAAI,CAACa,MACf,gBAAAN;AAAA,UAACc;AAAA,UAAA;AAAA,YAEC,OAAOR,EAAU;AAAA,YACjB,UAAU,CAACS,MAAiB;AAC1B,cAAAhB,EAASgB,MAAiBjB,IAAQ,KAAKiB,CAAY,GACnDnB,EAAQ,EAAK;AAAA,YACf;AAAA,YAEA,UAAA;AAAA,cAAA,gBAAAM;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACC,WAAWC;AAAA,oBACT;AAAA,oBACAnB,MAAUQ,EAAU,QAAQ,gBAAgB;AAAA,kBAAA;AAAA,gBAC9C;AAAA,cAAA;AAAA,cAEDA,EAAU;AAAA,YAAA;AAAA,UAAA;AAAA,UAbNA,EAAU;AAAA,QAAA,CAelB,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { CheckIcon, ChevronUpdownIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n\nconst frameworks = [\n {\n value: 'next.js',\n label: 'Next.js',\n },\n {\n value: 'sveltekit',\n label: 'SvelteKit',\n },\n {\n value: 'nuxt.js',\n label: 'Nuxt.js',\n },\n {\n value: 'remix',\n label: 'Remix',\n },\n {\n value: 'astro',\n label: 'Astro',\n },\n]\n\nexport function Combobox() {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState('')\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-[200px] justify-between\"\n >\n {value\n ? frameworks.find((framework) => framework.value === value)?.label\n : 'Select framework...'}\n <ChevronUpdownIcon className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n }\n />\n <PopoverContent className=\"w-[200px] p-0\">\n <Command>\n <CommandInput placeholder=\"Search framework...\" />\n <CommandList>\n <CommandEmpty>No framework found.</CommandEmpty>\n <CommandGroup>\n {frameworks.map((framework) => (\n <CommandItem\n key={framework.value}\n value={framework.value}\n onSelect={(currentValue) => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n <CheckIcon\n className={cn(\n 'mr-2 h-4 w-4',\n value === framework.value ? 'opacity-100' : 'opacity-0'\n )}\n />\n {framework.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n"],"names":["frameworks","Combobox","open","setOpen","React","value","setValue","jsxs","Popover","jsx","PopoverTrigger","Button","_a","framework","ChevronUpdownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","currentValue","CheckIcon","cn"],"mappings":";;;;;;;;AAiBA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAEX;AAEO,SAASC,IAAW;;AACzB,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAM,SAAS,EAAK,GACtC,CAACC,GAAOC,CAAQ,IAAIF,EAAM,SAAS,EAAE;AAE3C,SACE,gBAAAG,EAACC,GAAA,EAAQ,MAAAN,GAAY,cAAcC,GACjC,UAAA;AAAA,IAAA,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,QACE,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,iBAAeT;AAAA,YACf,WAAU;AAAA,YAET,UAAA;AAAA,cAAAG,KACGO,IAAAZ,EAAW,KAAK,CAACa,MAAcA,EAAU,UAAUR,CAAK,MAAxD,gBAAAO,EAA2D,QAC3D;AAAA,cACJ,gBAAAH,EAACK,GAAA,EAAkB,WAAU,mCAAA,CAAmC;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAClE;AAAA,IAAA;AAAA,IAGJ,gBAAAL,EAACM,GAAA,EAAe,WAAU,iBACxB,4BAACC,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP,EAACQ,GAAA,EAAa,aAAY,sBAAA,CAAsB;AAAA,wBAC/CC,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAT,EAACU,KAAa,UAAA,sBAAA,CAAmB;AAAA,QACjC,gBAAAV,EAACW,GAAA,EACE,UAAApB,EAAW,IAAI,CAACa,MACf,gBAAAN;AAAA,UAACc;AAAA,UAAA;AAAA,YAEC,OAAOR,EAAU;AAAA,YACjB,UAAU,CAACS,MAAiB;AAC1B,cAAAhB,EAASgB,MAAiBjB,IAAQ,KAAKiB,CAAY,GACnDnB,EAAQ,EAAK;AAAA,YACf;AAAA,YAEA,UAAA;AAAA,cAAA,gBAAAM;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACC,WAAWC;AAAA,oBACT;AAAA,oBACAnB,MAAUQ,EAAU,QAAQ,gBAAgB;AAAA,kBAAA;AAAA,gBAC9C;AAAA,cAAA;AAAA,cAEDA,EAAU;AAAA,YAAA;AAAA,UAAA;AAAA,UAbNA,EAAU;AAAA,QAAA,CAelB,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}