@kubetail/ui 2.1.2 → 2.2.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 (105) hide show
  1. package/dist/elements/button.cjs +1 -1
  2. package/dist/elements/button.cjs.map +1 -1
  3. package/dist/elements/button.js +12 -10
  4. package/dist/elements/button.js.map +1 -1
  5. package/dist/elements/calendar.cjs +1 -1
  6. package/dist/elements/calendar.cjs.map +1 -1
  7. package/dist/elements/calendar.js +10 -8
  8. package/dist/elements/calendar.js.map +1 -1
  9. package/dist/elements/card.cjs +1 -1
  10. package/dist/elements/card.cjs.map +1 -1
  11. package/dist/elements/card.js +33 -31
  12. package/dist/elements/card.js.map +1 -1
  13. package/dist/elements/checkbox.cjs +1 -1
  14. package/dist/elements/checkbox.cjs.map +1 -1
  15. package/dist/elements/checkbox.js +12 -10
  16. package/dist/elements/checkbox.js.map +1 -1
  17. package/dist/elements/dialog.cjs +1 -1
  18. package/dist/elements/dialog.cjs.map +1 -1
  19. package/dist/elements/dialog.js +42 -40
  20. package/dist/elements/dialog.js.map +1 -1
  21. package/dist/elements/dropdown-menu.cjs +1 -1
  22. package/dist/elements/dropdown-menu.cjs.map +1 -1
  23. package/dist/elements/dropdown-menu.js +74 -72
  24. package/dist/elements/dropdown-menu.js.map +1 -1
  25. package/dist/elements/form.cjs +1 -1
  26. package/dist/elements/form.cjs.map +1 -1
  27. package/dist/elements/form.js +55 -53
  28. package/dist/elements/form.js.map +1 -1
  29. package/dist/elements/input.cjs +1 -1
  30. package/dist/elements/input.cjs.map +1 -1
  31. package/dist/elements/input.js +8 -6
  32. package/dist/elements/input.js.map +1 -1
  33. package/dist/elements/label.cjs +1 -1
  34. package/dist/elements/label.cjs.map +1 -1
  35. package/dist/elements/label.js +9 -7
  36. package/dist/elements/label.js.map +1 -1
  37. package/dist/elements/link.cjs +1 -1
  38. package/dist/elements/link.cjs.map +1 -1
  39. package/dist/elements/link.js +28 -26
  40. package/dist/elements/link.js.map +1 -1
  41. package/dist/elements/pagination.cjs +1 -1
  42. package/dist/elements/pagination.cjs.map +1 -1
  43. package/dist/elements/pagination.js +43 -41
  44. package/dist/elements/pagination.js.map +1 -1
  45. package/dist/elements/popover.cjs +1 -1
  46. package/dist/elements/popover.cjs.map +1 -1
  47. package/dist/elements/popover.js +19 -17
  48. package/dist/elements/popover.js.map +1 -1
  49. package/dist/elements/search-box.cjs +1 -1
  50. package/dist/elements/search-box.cjs.map +1 -1
  51. package/dist/elements/search-box.js +16 -14
  52. package/dist/elements/search-box.js.map +1 -1
  53. package/dist/elements/select.cjs +1 -1
  54. package/dist/elements/select.cjs.map +1 -1
  55. package/dist/elements/select.js +58 -56
  56. package/dist/elements/select.js.map +1 -1
  57. package/dist/elements/separator.cjs +1 -1
  58. package/dist/elements/separator.cjs.map +1 -1
  59. package/dist/elements/separator.js +9 -7
  60. package/dist/elements/separator.js.map +1 -1
  61. package/dist/elements/sheet.cjs +1 -1
  62. package/dist/elements/sheet.cjs.map +1 -1
  63. package/dist/elements/sheet.js +41 -39
  64. package/dist/elements/sheet.js.map +1 -1
  65. package/dist/elements/sidebar.cjs +1 -1
  66. package/dist/elements/sidebar.cjs.map +1 -1
  67. package/dist/elements/sidebar.js +196 -194
  68. package/dist/elements/sidebar.js.map +1 -1
  69. package/dist/elements/skeleton.cjs +1 -1
  70. package/dist/elements/skeleton.cjs.map +1 -1
  71. package/dist/elements/skeleton.js +8 -6
  72. package/dist/elements/skeleton.js.map +1 -1
  73. package/dist/elements/spinner.cjs +1 -1
  74. package/dist/elements/spinner.cjs.map +1 -1
  75. package/dist/elements/spinner.js +12 -11
  76. package/dist/elements/spinner.js.map +1 -1
  77. package/dist/elements/switch.cjs +2 -0
  78. package/dist/elements/switch.cjs.map +1 -0
  79. package/dist/elements/switch.d.ts +3 -0
  80. package/dist/elements/switch.js +20 -0
  81. package/dist/elements/switch.js.map +1 -0
  82. package/dist/elements/switch.stories.d.ts +15 -0
  83. package/dist/elements/switch.test.d.ts +0 -0
  84. package/dist/elements/table.cjs +1 -1
  85. package/dist/elements/table.cjs.map +1 -1
  86. package/dist/elements/table.js +39 -37
  87. package/dist/elements/table.js.map +1 -1
  88. package/dist/elements/tabs.cjs +1 -1
  89. package/dist/elements/tabs.cjs.map +1 -1
  90. package/dist/elements/tabs.js +22 -20
  91. package/dist/elements/tabs.js.map +1 -1
  92. package/dist/elements/tooltip.cjs +1 -1
  93. package/dist/elements/tooltip.cjs.map +1 -1
  94. package/dist/elements/tooltip.js +16 -14
  95. package/dist/elements/tooltip.js.map +1 -1
  96. package/dist/hooks/use-mobile.cjs +1 -1
  97. package/dist/hooks/use-mobile.cjs.map +1 -1
  98. package/dist/hooks/use-mobile.js +11 -9
  99. package/dist/hooks/use-mobile.js.map +1 -1
  100. package/dist/lib/utils.cjs +1 -1
  101. package/dist/lib/utils.cjs.map +1 -1
  102. package/dist/lib/utils.js +7 -5
  103. package/dist/lib/utils.js.map +1 -1
  104. package/package.json +34 -29
  105. /package/dist/_virtual/{rolldown:runtime.cjs → _rolldown/runtime.cjs} +0 -0
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/rolldown:runtime.cjs`),t=require(`../lib/utils.cjs`);let n=require(`react/jsx-runtime`),r=require(`lucide-react`),i=require(`@radix-ui/react-dropdown-menu`);i=e.__toESM(i);function a({...e}){return(0,n.jsx)(i.Root,{"data-slot":`dropdown-menu`,...e})}function o({...e}){return(0,n.jsx)(i.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function s({...e}){return(0,n.jsx)(i.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function c({className:e,sideOffset:r=4,...a}){return(0,n.jsx)(i.Portal,{children:(0,n.jsx)(i.Content,{"data-slot":`dropdown-menu-content`,sideOffset:r,className:t.cn(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md`,e),...a})})}function l({...e}){return(0,n.jsx)(i.Group,{"data-slot":`dropdown-menu-group`,...e})}function u({className:e,inset:r,variant:a=`default`,...o}){return(0,n.jsx)(i.Item,{"data-slot":`dropdown-menu-item`,"data-inset":r,"data-variant":a,className:t.cn(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...o})}function d({className:e,children:a,checked:o,...s}){return(0,n.jsxs)(i.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:t.cn(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:o,...s,children:[(0,n.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,n.jsx)(i.ItemIndicator,{children:(0,n.jsx)(r.CheckIcon,{className:`size-4`})})}),a]})}function f({...e}){return(0,n.jsx)(i.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function p({className:e,children:a,...o}){return(0,n.jsxs)(i.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:t.cn(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...o,children:[(0,n.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,n.jsx)(i.ItemIndicator,{children:(0,n.jsx)(r.CircleIcon,{className:`size-2 fill-current`})})}),a]})}function m({className:e,inset:r,...a}){return(0,n.jsx)(i.Label,{"data-slot":`dropdown-menu-label`,"data-inset":r,className:t.cn(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...a})}function h({className:e,...r}){return(0,n.jsx)(i.Separator,{"data-slot":`dropdown-menu-separator`,className:t.cn(`bg-border -mx-1 my-1 h-px`,e),...r})}function g({className:e,...r}){return(0,n.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:t.cn(`text-muted-foreground ml-auto text-xs tracking-widest`,e),...r})}function _({...e}){return(0,n.jsx)(i.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function v({className:e,inset:a,children:o,...s}){return(0,n.jsxs)(i.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":a,className:t.cn(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8`,e),...s,children:[o,(0,n.jsx)(r.ChevronRightIcon,{className:`ml-auto size-4`})]})}function y({className:e,...r}){return(0,n.jsx)(i.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:t.cn(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,e),...r})}exports.DropdownMenu=a,exports.DropdownMenuCheckboxItem=d,exports.DropdownMenuContent=c,exports.DropdownMenuGroup=l,exports.DropdownMenuItem=u,exports.DropdownMenuLabel=m,exports.DropdownMenuPortal=o,exports.DropdownMenuRadioGroup=f,exports.DropdownMenuRadioItem=p,exports.DropdownMenuSeparator=h,exports.DropdownMenuShortcut=g,exports.DropdownMenuSub=_,exports.DropdownMenuSubContent=y,exports.DropdownMenuSubTrigger=v,exports.DropdownMenuTrigger=s;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../lib/utils.cjs`);let n=require(`react/jsx-runtime`),r=require(`lucide-react`),i=require(`@radix-ui/react-dropdown-menu`);i=e.__toESM(i);function a({...e}){return(0,n.jsx)(i.Root,{"data-slot":`dropdown-menu`,...e})}function o({...e}){return(0,n.jsx)(i.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function s({...e}){return(0,n.jsx)(i.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function c({className:e,sideOffset:r=4,...a}){return(0,n.jsx)(i.Portal,{children:(0,n.jsx)(i.Content,{"data-slot":`dropdown-menu-content`,sideOffset:r,className:t.cn(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md`,e),...a})})}function l({...e}){return(0,n.jsx)(i.Group,{"data-slot":`dropdown-menu-group`,...e})}function u({className:e,inset:r,variant:a=`default`,...o}){return(0,n.jsx)(i.Item,{"data-slot":`dropdown-menu-item`,"data-inset":r,"data-variant":a,className:t.cn(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...o})}function d({className:e,children:a,checked:o,...s}){return(0,n.jsxs)(i.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:t.cn(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:o,...s,children:[(0,n.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,n.jsx)(i.ItemIndicator,{children:(0,n.jsx)(r.CheckIcon,{className:`size-4`})})}),a]})}function f({...e}){return(0,n.jsx)(i.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function p({className:e,children:a,...o}){return(0,n.jsxs)(i.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:t.cn(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...o,children:[(0,n.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,n.jsx)(i.ItemIndicator,{children:(0,n.jsx)(r.CircleIcon,{className:`size-2 fill-current`})})}),a]})}function m({className:e,inset:r,...a}){return(0,n.jsx)(i.Label,{"data-slot":`dropdown-menu-label`,"data-inset":r,className:t.cn(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...a})}function h({className:e,...r}){return(0,n.jsx)(i.Separator,{"data-slot":`dropdown-menu-separator`,className:t.cn(`bg-border -mx-1 my-1 h-px`,e),...r})}function g({className:e,...r}){return(0,n.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:t.cn(`text-muted-foreground ml-auto text-xs tracking-widest`,e),...r})}function _({...e}){return(0,n.jsx)(i.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function v({className:e,inset:a,children:o,...s}){return(0,n.jsxs)(i.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":a,className:t.cn(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8`,e),...s,children:[o,(0,n.jsx)(r.ChevronRightIcon,{className:`ml-auto size-4`})]})}function y({className:e,...r}){return(0,n.jsx)(i.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:t.cn(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,e),...r})}exports.DropdownMenu=a,exports.DropdownMenuCheckboxItem=d,exports.DropdownMenuContent=c,exports.DropdownMenuGroup=l,exports.DropdownMenuItem=u,exports.DropdownMenuLabel=m,exports.DropdownMenuPortal=o,exports.DropdownMenuRadioGroup=f,exports.DropdownMenuRadioItem=p,exports.DropdownMenuSeparator=h,exports.DropdownMenuShortcut=g,exports.DropdownMenuSub=_,exports.DropdownMenuSubContent=y,exports.DropdownMenuSubTrigger=v,exports.DropdownMenuTrigger=s;
2
2
  //# sourceMappingURL=dropdown-menu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.cjs","names":[],"sources":["../../src/elements/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu.cjs","names":[],"sources":["../../src/elements/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":"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"}
@@ -1,122 +1,124 @@
1
1
  "use client";
2
- import { cn } from "../lib/utils.js";
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
- import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
5
- import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
6
- function DropdownMenu({ ...t }) {
7
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, {
2
+ import { cn as e } from "../lib/utils.js";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import { CheckIcon as r, ChevronRightIcon as i, CircleIcon as a } from "lucide-react";
5
+ import * as o from "@radix-ui/react-dropdown-menu";
6
+ //#region src/elements/dropdown-menu.tsx
7
+ function s({ ...e }) {
8
+ return /* @__PURE__ */ t(o.Root, {
8
9
  "data-slot": "dropdown-menu",
9
- ...t
10
+ ...e
10
11
  });
11
12
  }
12
- function DropdownMenuPortal({ ...t }) {
13
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, {
13
+ function c({ ...e }) {
14
+ return /* @__PURE__ */ t(o.Portal, {
14
15
  "data-slot": "dropdown-menu-portal",
15
- ...t
16
+ ...e
16
17
  });
17
18
  }
18
- function DropdownMenuTrigger({ ...t }) {
19
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, {
19
+ function l({ ...e }) {
20
+ return /* @__PURE__ */ t(o.Trigger, {
20
21
  "data-slot": "dropdown-menu-trigger",
21
- ...t
22
+ ...e
22
23
  });
23
24
  }
24
- function DropdownMenuContent({ className: g, sideOffset: _ = 4, ...v }) {
25
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
25
+ function u({ className: n, sideOffset: r = 4, ...i }) {
26
+ return /* @__PURE__ */ t(o.Portal, { children: /* @__PURE__ */ t(o.Content, {
26
27
  "data-slot": "dropdown-menu-content",
27
- sideOffset: _,
28
- className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", g),
29
- ...v
28
+ sideOffset: r,
29
+ className: e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", n),
30
+ ...i
30
31
  }) });
31
32
  }
32
- function DropdownMenuGroup({ ...t }) {
33
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, {
33
+ function d({ ...e }) {
34
+ return /* @__PURE__ */ t(o.Group, {
34
35
  "data-slot": "dropdown-menu-group",
35
- ...t
36
+ ...e
36
37
  });
37
38
  }
38
- function DropdownMenuItem({ className: g, inset: _, variant: v = "default", ...y }) {
39
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
39
+ function f({ className: n, inset: r, variant: i = "default", ...a }) {
40
+ return /* @__PURE__ */ t(o.Item, {
40
41
  "data-slot": "dropdown-menu-item",
41
- "data-inset": _,
42
- "data-variant": v,
43
- className: cn("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", g),
44
- ...y
42
+ "data-inset": r,
43
+ "data-variant": i,
44
+ className: e("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", n),
45
+ ...a
45
46
  });
46
47
  }
47
- function DropdownMenuCheckboxItem({ className: v, children: y, checked: b, ...x }) {
48
- return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, {
48
+ function p({ className: i, children: a, checked: s, ...c }) {
49
+ return /* @__PURE__ */ n(o.CheckboxItem, {
49
50
  "data-slot": "dropdown-menu-checkbox-item",
50
- className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", v),
51
- checked: b,
52
- ...x,
53
- children: [/* @__PURE__ */ jsx("span", {
51
+ className: e("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", i),
52
+ checked: s,
53
+ ...c,
54
+ children: [/* @__PURE__ */ t("span", {
54
55
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
55
- children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
56
- }), y]
56
+ children: /* @__PURE__ */ t(o.ItemIndicator, { children: /* @__PURE__ */ t(r, { className: "size-4" }) })
57
+ }), a]
57
58
  });
58
59
  }
59
- function DropdownMenuRadioGroup({ ...t }) {
60
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, {
60
+ function m({ ...e }) {
61
+ return /* @__PURE__ */ t(o.RadioGroup, {
61
62
  "data-slot": "dropdown-menu-radio-group",
62
- ...t
63
+ ...e
63
64
  });
64
65
  }
65
- function DropdownMenuRadioItem({ className: _, children: v, ...b }) {
66
- return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, {
66
+ function h({ className: r, children: i, ...s }) {
67
+ return /* @__PURE__ */ n(o.RadioItem, {
67
68
  "data-slot": "dropdown-menu-radio-item",
68
- className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", _),
69
- ...b,
70
- children: [/* @__PURE__ */ jsx("span", {
69
+ className: e("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", r),
70
+ ...s,
71
+ children: [/* @__PURE__ */ t("span", {
71
72
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
72
- children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) })
73
- }), v]
73
+ children: /* @__PURE__ */ t(o.ItemIndicator, { children: /* @__PURE__ */ t(a, { className: "size-2 fill-current" }) })
74
+ }), i]
74
75
  });
75
76
  }
76
- function DropdownMenuLabel({ className: g, inset: _, ...v }) {
77
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
77
+ function g({ className: n, inset: r, ...i }) {
78
+ return /* @__PURE__ */ t(o.Label, {
78
79
  "data-slot": "dropdown-menu-label",
79
- "data-inset": _,
80
- className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", g),
81
- ...v
80
+ "data-inset": r,
81
+ className: e("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", n),
82
+ ...i
82
83
  });
83
84
  }
84
- function DropdownMenuSeparator({ className: g, ..._ }) {
85
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
85
+ function _({ className: n, ...r }) {
86
+ return /* @__PURE__ */ t(o.Separator, {
86
87
  "data-slot": "dropdown-menu-separator",
87
- className: cn("bg-border -mx-1 my-1 h-px", g),
88
- ..._
88
+ className: e("bg-border -mx-1 my-1 h-px", n),
89
+ ...r
89
90
  });
90
91
  }
91
- function DropdownMenuShortcut({ className: g, ..._ }) {
92
- return /* @__PURE__ */ jsx("span", {
92
+ function v({ className: n, ...r }) {
93
+ return /* @__PURE__ */ t("span", {
93
94
  "data-slot": "dropdown-menu-shortcut",
94
- className: cn("text-muted-foreground ml-auto text-xs tracking-widest", g),
95
- ..._
95
+ className: e("text-muted-foreground ml-auto text-xs tracking-widest", n),
96
+ ...r
96
97
  });
97
98
  }
98
- function DropdownMenuSub({ ...t }) {
99
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, {
99
+ function y({ ...e }) {
100
+ return /* @__PURE__ */ t(o.Sub, {
100
101
  "data-slot": "dropdown-menu-sub",
101
- ...t
102
+ ...e
102
103
  });
103
104
  }
104
- function DropdownMenuSubTrigger({ className: _, inset: y, children: b, ...x }) {
105
- return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, {
105
+ function b({ className: r, inset: a, children: s, ...c }) {
106
+ return /* @__PURE__ */ n(o.SubTrigger, {
106
107
  "data-slot": "dropdown-menu-sub-trigger",
107
- "data-inset": y,
108
- className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8", _),
109
- ...x,
110
- children: [b, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
108
+ "data-inset": a,
109
+ className: e("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8", r),
110
+ ...c,
111
+ children: [s, /* @__PURE__ */ t(i, { className: "ml-auto size-4" })]
111
112
  });
112
113
  }
113
- function DropdownMenuSubContent({ className: g, ..._ }) {
114
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, {
114
+ function x({ className: n, ...r }) {
115
+ return /* @__PURE__ */ t(o.SubContent, {
115
116
  "data-slot": "dropdown-menu-sub-content",
116
- className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", g),
117
- ..._
117
+ className: e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", n),
118
+ ...r
118
119
  });
119
120
  }
120
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
121
+ //#endregion
122
+ export { s as DropdownMenu, p as DropdownMenuCheckboxItem, u as DropdownMenuContent, d as DropdownMenuGroup, f as DropdownMenuItem, g as DropdownMenuLabel, c as DropdownMenuPortal, m as DropdownMenuRadioGroup, h as DropdownMenuRadioItem, _ as DropdownMenuSeparator, v as DropdownMenuShortcut, y as DropdownMenuSub, x as DropdownMenuSubContent, b as DropdownMenuSubTrigger, l as DropdownMenuTrigger };
121
123
 
122
124
  //# sourceMappingURL=dropdown-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../src/elements/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../src/elements/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/rolldown:runtime.cjs`),t=require(`../lib/utils.cjs`),n=require(`./label.cjs`);let r=require(`react/jsx-runtime`),i=require(`@radix-ui/react-slot`),a=require(`react`),o=require(`@radix-ui/react-label`);o=e.__toESM(o);let s=require(`react-hook-form`);var c=s.FormProvider,l=(0,a.createContext)({}),u=(0,a.createContext)({}),d=({...e})=>{let t=(0,a.useMemo)(()=>({name:e.name}),[e.name]);return(0,r.jsx)(l.Provider,{value:t,children:(0,r.jsx)(s.Controller,{...e})})},f=()=>{let e=(0,a.useContext)(l),t=(0,a.useContext)(u),{getFieldState:n}=(0,s.useFormContext)(),r=(0,s.useFormState)({name:e.name}),i=n(e.name,r);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:o}=t;return{id:o,name:e.name,formItemId:`${o}-form-item`,formDescriptionId:`${o}-form-item-description`,formMessageId:`${o}-form-item-message`,...i}};function p({className:e,...n}){let i=(0,a.useId)(),o=(0,a.useMemo)(()=>({id:i}),[i]);return(0,r.jsx)(u.Provider,{value:o,children:(0,r.jsx)(`div`,{"data-slot":`form-item`,className:t.cn(`grid gap-2`,e),...n})})}function m({className:e,...i}){let{error:a,formItemId:o}=f();return(0,r.jsx)(n.Label,{"data-slot":`form-label`,"data-error":!!a,className:t.cn(`data-[error=true]:text-destructive`,e),htmlFor:o,...i})}function h({...e}){let{error:t,formItemId:n,formDescriptionId:a,formMessageId:o}=f();return(0,r.jsx)(i.Slot,{"data-slot":`form-control`,id:n,"aria-describedby":t?`${a} ${o}`:a,"aria-invalid":!!t,...e})}function g({className:e,...n}){let{formDescriptionId:i}=f();return(0,r.jsx)(`p`,{"data-slot":`form-description`,id:i,className:t.cn(`text-muted-foreground text-sm`,e),...n})}function _({className:e,...n}){let{error:i,formMessageId:a}=f(),o=i?String(i?.message??``):n.children;return o?(0,r.jsx)(`p`,{"data-slot":`form-message`,id:a,className:t.cn(`text-destructive text-sm`,e),...n,children:o}):null}exports.Form=c,exports.FormControl=h,exports.FormDescription=g,exports.FormField=d,exports.FormItem=p,exports.FormLabel=m,exports.FormMessage=_,exports.useFormField=f;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../lib/utils.cjs`),n=require(`./label.cjs`);let r=require(`react/jsx-runtime`),i=require(`@radix-ui/react-slot`),a=require(`react`),o=require(`@radix-ui/react-label`);o=e.__toESM(o);let s=require(`react-hook-form`);var c=s.FormProvider,l=(0,a.createContext)({}),u=(0,a.createContext)({}),d=({...e})=>{let t=(0,a.useMemo)(()=>({name:e.name}),[e.name]);return(0,r.jsx)(l.Provider,{value:t,children:(0,r.jsx)(s.Controller,{...e})})},f=()=>{let e=(0,a.useContext)(l),t=(0,a.useContext)(u),{getFieldState:n}=(0,s.useFormContext)(),r=(0,s.useFormState)({name:e.name}),i=n(e.name,r);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:o}=t;return{id:o,name:e.name,formItemId:`${o}-form-item`,formDescriptionId:`${o}-form-item-description`,formMessageId:`${o}-form-item-message`,...i}};function p({className:e,...n}){let i=(0,a.useId)(),o=(0,a.useMemo)(()=>({id:i}),[i]);return(0,r.jsx)(u.Provider,{value:o,children:(0,r.jsx)(`div`,{"data-slot":`form-item`,className:t.cn(`grid gap-2`,e),...n})})}function m({className:e,...i}){let{error:a,formItemId:o}=f();return(0,r.jsx)(n.Label,{"data-slot":`form-label`,"data-error":!!a,className:t.cn(`data-[error=true]:text-destructive`,e),htmlFor:o,...i})}function h({...e}){let{error:t,formItemId:n,formDescriptionId:a,formMessageId:o}=f();return(0,r.jsx)(i.Slot,{"data-slot":`form-control`,id:n,"aria-describedby":t?`${a} ${o}`:a,"aria-invalid":!!t,...e})}function g({className:e,...n}){let{formDescriptionId:i}=f();return(0,r.jsx)(`p`,{"data-slot":`form-description`,id:i,className:t.cn(`text-muted-foreground text-sm`,e),...n})}function _({className:e,...n}){let{error:i,formMessageId:a}=f(),o=i?String(i?.message??``):n.children;return o?(0,r.jsx)(`p`,{"data-slot":`form-message`,id:a,className:t.cn(`text-destructive text-sm`,e),...n,children:o}):null}exports.Form=c,exports.FormControl=h,exports.FormDescription=g,exports.FormField=d,exports.FormItem=p,exports.FormLabel=m,exports.FormMessage=_,exports.useFormField=f;
2
2
  //# sourceMappingURL=form.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.cjs","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useId, useMemo } from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":"sWAkBA,IAAM,EAAO,EAAA,aASP,GAAA,EAAA,EAAA,eAAwD,EAAE,CAA0B,CAMpF,GAAA,EAAA,EAAA,eAAsD,EAAE,CAAyB,CAEjF,GAGJ,CACA,GAAG,KACuC,CAC1C,IAAM,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAM,EAAM,KAAM,EAAG,CAAC,EAAM,KAAK,CAAC,CAEjE,OACE,EAAA,EAAA,KAAC,EAAiB,SAAA,CAAgB,kBAChC,EAAA,EAAA,KAAC,EAAA,WAAA,CAAW,GAAI,EAAA,CAAS,EACC,EAI1B,MAAqB,CACzB,IAAM,GAAA,EAAA,EAAA,YAA0B,EAAiB,CAC3C,GAAA,EAAA,EAAA,YAAyB,EAAgB,CACzC,CAAE,kBAAA,EAAA,EAAA,iBAAkC,CACpC,GAAA,EAAA,EAAA,cAAyB,CAAE,KAAM,EAAa,KAAM,CAAC,CACrD,EAAa,EAAc,EAAa,KAAM,EAAU,CAE9D,GAAI,CAAC,EACH,MAAU,MAAM,iDAAiD,CAGnE,GAAM,CAAE,MAAO,EAEf,MAAO,CACL,KACA,KAAM,EAAa,KACnB,WAAY,GAAG,EAAG,YAClB,kBAAmB,GAAG,EAAG,wBACzB,cAAe,GAAG,EAAG,oBACrB,GAAG,EACJ,EAGH,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,IAAM,GAAA,EAAA,EAAA,QAAY,CACZ,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAI,EAAG,CAAC,EAAG,CAAC,CAE3C,OACE,EAAA,EAAA,KAAC,EAAgB,SAAA,CAAgB,kBAC/B,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,YAAY,UAAW,EAAA,GAAG,aAAc,EAAU,CAAE,GAAI,GAAS,EACvD,CAI/B,SAAS,EAAU,CAAE,YAAW,GAAG,GAA2D,CAC5F,GAAM,CAAE,QAAO,cAAe,GAAc,CAE5C,OACE,EAAA,EAAA,KAAC,EAAA,MAAA,CACC,YAAU,aACV,aAAY,CAAC,CAAC,EACd,UAAW,EAAA,GAAG,qCAAsC,EAAU,CAC9D,QAAS,EACT,GAAI,GACJ,CAIN,SAAS,EAAY,CAAE,GAAG,GAA4C,CACpE,GAAM,CAAE,QAAO,aAAY,oBAAmB,iBAAkB,GAAc,CAE9E,OACE,EAAA,EAAA,KAAC,EAAA,KAAA,CACC,YAAU,eACV,GAAI,EACJ,mBAAmB,EAA4B,GAAG,EAAkB,GAAG,IAA5C,EAC3B,eAAc,CAAC,CAAC,EAChB,GAAI,GACJ,CAIN,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAoC,CAC3E,GAAM,CAAE,qBAAsB,GAAc,CAE5C,OACE,EAAA,EAAA,KAAC,IAAA,CACC,YAAU,mBACV,GAAI,EACJ,UAAW,EAAA,GAAG,gCAAiC,EAAU,CACzD,GAAI,GACJ,CAIN,SAAS,EAAY,CAAE,YAAW,GAAG,GAAoC,CACvE,GAAM,CAAE,QAAO,iBAAkB,GAAc,CACzC,EAAO,EAAQ,OAAO,GAAO,SAAW,GAAG,CAAG,EAAM,SAM1D,OAJK,GAKH,EAAA,EAAA,KAAC,IAAA,CAAE,YAAU,eAAe,GAAI,EAAe,UAAW,EAAA,GAAG,2BAA4B,EAAU,CAAE,GAAI,WACtG,GACC,CANG"}
1
+ {"version":3,"file":"form.cjs","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useId, useMemo } from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":"uWAkBA,IAAM,EAAO,EAAA,aASP,GAAA,EAAA,EAAA,eAAwD,EAAE,CAA0B,CAMpF,GAAA,EAAA,EAAA,eAAsD,EAAE,CAAyB,CAEjF,GAGJ,CACA,GAAG,KACuC,CAC1C,IAAM,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAM,EAAM,KAAM,EAAG,CAAC,EAAM,KAAK,CAAC,CAEjE,OAAA,EAAA,EAAA,KACG,EAAiB,SAAlB,CAAkC,2BAC/B,EAAA,WAAD,CAAY,GAAI,EAAS,CAAA,CACC,CAAA,EAI1B,MAAqB,CACzB,IAAM,GAAA,EAAA,EAAA,YAA0B,EAAiB,CAC3C,GAAA,EAAA,EAAA,YAAyB,EAAgB,CACzC,CAAE,kBAAA,EAAA,EAAA,iBAAkC,CACpC,GAAA,EAAA,EAAA,cAAyB,CAAE,KAAM,EAAa,KAAM,CAAC,CACrD,EAAa,EAAc,EAAa,KAAM,EAAU,CAE9D,GAAI,CAAC,EACH,MAAU,MAAM,iDAAiD,CAGnE,GAAM,CAAE,MAAO,EAEf,MAAO,CACL,KACA,KAAM,EAAa,KACnB,WAAY,GAAG,EAAG,YAClB,kBAAmB,GAAG,EAAG,wBACzB,cAAe,GAAG,EAAG,oBACrB,GAAG,EACJ,EAGH,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,IAAM,GAAA,EAAA,EAAA,QAAY,CACZ,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAI,EAAG,CAAC,EAAG,CAAC,CAE3C,OAAA,EAAA,EAAA,KACG,EAAgB,SAAjB,CAAiC,2BAC9B,MAAD,CAAK,YAAU,YAAY,UAAW,EAAA,GAAG,aAAc,EAAU,CAAE,GAAI,EAAS,CAAA,CACvD,CAAA,CAI/B,SAAS,EAAU,CAAE,YAAW,GAAG,GAA2D,CAC5F,GAAM,CAAE,QAAO,cAAe,GAAc,CAE5C,OAAA,EAAA,EAAA,KACG,EAAA,MAAD,CACE,YAAU,aACV,aAAY,CAAC,CAAC,EACd,UAAW,EAAA,GAAG,qCAAsC,EAAU,CAC9D,QAAS,EACT,GAAI,EACJ,CAAA,CAIN,SAAS,EAAY,CAAE,GAAG,GAA4C,CACpE,GAAM,CAAE,QAAO,aAAY,oBAAmB,iBAAkB,GAAc,CAE9E,OAAA,EAAA,EAAA,KACG,EAAA,KAAD,CACE,YAAU,eACV,GAAI,EACJ,mBAAmB,EAA4B,GAAG,EAAkB,GAAG,IAA5C,EAC3B,eAAc,CAAC,CAAC,EAChB,GAAI,EACJ,CAAA,CAIN,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAoC,CAC3E,GAAM,CAAE,qBAAsB,GAAc,CAE5C,OAAA,EAAA,EAAA,KACG,IAAD,CACE,YAAU,mBACV,GAAI,EACJ,UAAW,EAAA,GAAG,gCAAiC,EAAU,CACzD,GAAI,EACJ,CAAA,CAIN,SAAS,EAAY,CAAE,YAAW,GAAG,GAAoC,CACvE,GAAM,CAAE,QAAO,iBAAkB,GAAc,CACzC,EAAO,EAAQ,OAAO,GAAO,SAAW,GAAG,CAAG,EAAM,SAM1D,OAJK,GAIL,EAAA,EAAA,KACG,IAAD,CAAG,YAAU,eAAe,GAAI,EAAe,UAAW,EAAA,GAAG,2BAA4B,EAAU,CAAE,GAAI,WACtG,EACC,CAAA,CANG"}
@@ -1,80 +1,82 @@
1
1
  "use client";
2
- import { cn } from "../lib/utils.js";
3
- import { Label } from "./label.js";
4
- import { jsx } from "react/jsx-runtime";
5
- import { Slot } from "@radix-ui/react-slot";
6
- import { createContext, useContext, useId, useMemo } from "react";
2
+ import { cn as e } from "../lib/utils.js";
3
+ import { Label as t } from "./label.js";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { Slot as r } from "@radix-ui/react-slot";
6
+ import { createContext as i, useContext as a, useId as o, useMemo as s } from "react";
7
7
  import "@radix-ui/react-label";
8
- import { Controller, FormProvider, useFormContext, useFormState } from "react-hook-form";
9
- var Form = FormProvider, FormFieldContext = createContext({}), FormItemContext = createContext({}), FormField = ({ ...e }) => {
10
- let g = useMemo(() => ({ name: e.name }), [e.name]);
11
- return /* @__PURE__ */ jsx(FormFieldContext.Provider, {
12
- value: g,
13
- children: /* @__PURE__ */ jsx(Controller, { ...e })
8
+ import { Controller as c, FormProvider as l, useFormContext as u, useFormState as d } from "react-hook-form";
9
+ //#region src/elements/form.tsx
10
+ var f = l, p = i({}), m = i({}), h = ({ ...e }) => {
11
+ let t = s(() => ({ name: e.name }), [e.name]);
12
+ return /* @__PURE__ */ n(p.Provider, {
13
+ value: t,
14
+ children: /* @__PURE__ */ n(c, { ...e })
14
15
  });
15
- }, useFormField = () => {
16
- let e = useContext(FormFieldContext), g = useContext(FormItemContext), { getFieldState: _ } = useFormContext(), v = useFormState({ name: e.name }), y = _(e.name, v);
16
+ }, g = () => {
17
+ let e = a(p), t = a(m), { getFieldState: n } = u(), r = d({ name: e.name }), i = n(e.name, r);
17
18
  if (!e) throw Error("useFormField should be used within <FormField>");
18
- let { id: x } = g;
19
+ let { id: o } = t;
19
20
  return {
20
- id: x,
21
+ id: o,
21
22
  name: e.name,
22
- formItemId: `${x}-form-item`,
23
- formDescriptionId: `${x}-form-item-description`,
24
- formMessageId: `${x}-form-item-message`,
25
- ...y
23
+ formItemId: `${o}-form-item`,
24
+ formDescriptionId: `${o}-form-item-description`,
25
+ formMessageId: `${o}-form-item-message`,
26
+ ...i
26
27
  };
27
28
  };
28
- function FormItem({ className: g, ...v }) {
29
- let y = useId(), b = useMemo(() => ({ id: y }), [y]);
30
- return /* @__PURE__ */ jsx(FormItemContext.Provider, {
31
- value: b,
32
- children: /* @__PURE__ */ jsx("div", {
29
+ function _({ className: t, ...r }) {
30
+ let i = o(), a = s(() => ({ id: i }), [i]);
31
+ return /* @__PURE__ */ n(m.Provider, {
32
+ value: a,
33
+ children: /* @__PURE__ */ n("div", {
33
34
  "data-slot": "form-item",
34
- className: cn("grid gap-2", g),
35
- ...v
35
+ className: e("grid gap-2", t),
36
+ ...r
36
37
  })
37
38
  });
38
39
  }
39
- function FormLabel({ className: v, ...y }) {
40
- let { error: b, formItemId: x } = useFormField();
41
- return /* @__PURE__ */ jsx(Label, {
40
+ function v({ className: r, ...i }) {
41
+ let { error: a, formItemId: o } = g();
42
+ return /* @__PURE__ */ n(t, {
42
43
  "data-slot": "form-label",
43
- "data-error": !!b,
44
- className: cn("data-[error=true]:text-destructive", v),
45
- htmlFor: x,
46
- ...y
44
+ "data-error": !!a,
45
+ className: e("data-[error=true]:text-destructive", r),
46
+ htmlFor: o,
47
+ ...i
47
48
  });
48
49
  }
49
- function FormControl({ ...e }) {
50
- let { error: g, formItemId: y, formDescriptionId: b, formMessageId: x } = useFormField();
51
- return /* @__PURE__ */ jsx(Slot, {
50
+ function y({ ...e }) {
51
+ let { error: t, formItemId: i, formDescriptionId: a, formMessageId: o } = g();
52
+ return /* @__PURE__ */ n(r, {
52
53
  "data-slot": "form-control",
53
- id: y,
54
- "aria-describedby": g ? `${b} ${x}` : b,
55
- "aria-invalid": !!g,
54
+ id: i,
55
+ "aria-describedby": t ? `${a} ${o}` : a,
56
+ "aria-invalid": !!t,
56
57
  ...e
57
58
  });
58
59
  }
59
- function FormDescription({ className: g, ...v }) {
60
- let { formDescriptionId: y } = useFormField();
61
- return /* @__PURE__ */ jsx("p", {
60
+ function b({ className: t, ...r }) {
61
+ let { formDescriptionId: i } = g();
62
+ return /* @__PURE__ */ n("p", {
62
63
  "data-slot": "form-description",
63
- id: y,
64
- className: cn("text-muted-foreground text-sm", g),
65
- ...v
64
+ id: i,
65
+ className: e("text-muted-foreground text-sm", t),
66
+ ...r
66
67
  });
67
68
  }
68
- function FormMessage({ className: g, ...v }) {
69
- let { error: y, formMessageId: b } = useFormField(), x = y ? String(y?.message ?? "") : v.children;
70
- return x ? /* @__PURE__ */ jsx("p", {
69
+ function x({ className: t, ...r }) {
70
+ let { error: i, formMessageId: a } = g(), o = i ? String(i?.message ?? "") : r.children;
71
+ return o ? /* @__PURE__ */ n("p", {
71
72
  "data-slot": "form-message",
72
- id: b,
73
- className: cn("text-destructive text-sm", g),
74
- ...v,
75
- children: x
73
+ id: a,
74
+ className: e("text-destructive text-sm", t),
75
+ ...r,
76
+ children: o
76
77
  }) : null;
77
78
  }
78
- export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
79
+ //#endregion
80
+ export { f as Form, y as FormControl, b as FormDescription, h as FormField, _ as FormItem, v as FormLabel, x as FormMessage, g as useFormField };
79
81
 
80
82
  //# sourceMappingURL=form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useId, useMemo } from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":";;;;;;;;AAkBA,IAAM,OAAO,cASP,mBAAmB,cAAqC,EAAE,CAA0B,EAMpF,kBAAkB,cAAoC,EAAE,CAAyB,EAEjF,aAGJ,EACA,GAAG,QACuC;CAC1C,IAAM,IAAQ,eAAe,EAAE,MAAM,EAAM,MAAM,GAAG,CAAC,EAAM,KAAK,CAAC;AAEjE,QACE,oBAAC,iBAAiB,UAAA;EAAgB;YAChC,oBAAC,YAAA,EAAW,GAAI,GAAA,CAAS;GACC;GAI1B,qBAAqB;CACzB,IAAM,IAAe,WAAW,iBAAiB,EAC3C,IAAc,WAAW,gBAAgB,EACzC,EAAE,qBAAkB,gBAAgB,EACpC,IAAY,aAAa,EAAE,MAAM,EAAa,MAAM,CAAC,EACrD,IAAa,EAAc,EAAa,MAAM,EAAU;AAE9D,KAAI,CAAC,EACH,OAAU,MAAM,iDAAiD;CAGnE,IAAM,EAAE,UAAO;AAEf,QAAO;EACL;EACA,MAAM,EAAa;EACnB,YAAY,GAAG,EAAG;EAClB,mBAAmB,GAAG,EAAG;EACzB,eAAe,GAAG,EAAG;EACrB,GAAG;EACJ;;AAGH,SAAS,SAAS,EAAE,cAAW,GAAG,KAAsC;CACtE,IAAM,IAAK,OAAO,EACZ,IAAQ,eAAe,EAAE,OAAI,GAAG,CAAC,EAAG,CAAC;AAE3C,QACE,oBAAC,gBAAgB,UAAA;EAAgB;YAC/B,oBAAC,OAAA;GAAI,aAAU;GAAY,WAAW,GAAG,cAAc,EAAU;GAAE,GAAI;IAAS;GACvD;;AAI/B,SAAS,UAAU,EAAE,cAAW,GAAG,KAA2D;CAC5F,IAAM,EAAE,UAAO,kBAAe,cAAc;AAE5C,QACE,oBAAC,OAAA;EACC,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,GAAG,sCAAsC,EAAU;EAC9D,SAAS;EACT,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,GAAG,KAA4C;CACpE,IAAM,EAAE,UAAO,eAAY,sBAAmB,qBAAkB,cAAc;AAE9E,QACE,oBAAC,MAAA;EACC,aAAU;EACV,IAAI;EACJ,oBAAmB,IAA4B,GAAG,EAAkB,GAAG,MAA5C;EAC3B,gBAAc,CAAC,CAAC;EAChB,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EAAE,cAAW,GAAG,KAAoC;CAC3E,IAAM,EAAE,yBAAsB,cAAc;AAE5C,QACE,oBAAC,KAAA;EACC,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,iCAAiC,EAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,cAAW,GAAG,KAAoC;CACvE,IAAM,EAAE,UAAO,qBAAkB,cAAc,EACzC,IAAO,IAAQ,OAAO,GAAO,WAAW,GAAG,GAAG,EAAM;AAM1D,QAJK,IAKH,oBAAC,KAAA;EAAE,aAAU;EAAe,IAAI;EAAe,WAAW,GAAG,4BAA4B,EAAU;EAAE,GAAI;YACtG;GACC,GANG"}
1
+ {"version":3,"file":"form.js","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useId, useMemo } from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":";;;;;;;;;AAkBA,IAAM,IAAO,GASP,IAAmB,EAAqC,EAAE,CAA0B,EAMpF,IAAkB,EAAoC,EAAE,CAAyB,EAEjF,KAGJ,EACA,GAAG,QACuC;CAC1C,IAAM,IAAQ,SAAe,EAAE,MAAM,EAAM,MAAM,GAAG,CAAC,EAAM,KAAK,CAAC;AAEjE,QACE,kBAAC,EAAiB,UAAlB;EAAkC;YAChC,kBAAC,GAAD,EAAY,GAAI,GAAS,CAAA;EACC,CAAA;GAI1B,UAAqB;CACzB,IAAM,IAAe,EAAW,EAAiB,EAC3C,IAAc,EAAW,EAAgB,EACzC,EAAE,qBAAkB,GAAgB,EACpC,IAAY,EAAa,EAAE,MAAM,EAAa,MAAM,CAAC,EACrD,IAAa,EAAc,EAAa,MAAM,EAAU;AAE9D,KAAI,CAAC,EACH,OAAU,MAAM,iDAAiD;CAGnE,IAAM,EAAE,UAAO;AAEf,QAAO;EACL;EACA,MAAM,EAAa;EACnB,YAAY,GAAG,EAAG;EAClB,mBAAmB,GAAG,EAAG;EACzB,eAAe,GAAG,EAAG;EACrB,GAAG;EACJ;;AAGH,SAAS,EAAS,EAAE,cAAW,GAAG,KAAsC;CACtE,IAAM,IAAK,GAAO,EACZ,IAAQ,SAAe,EAAE,OAAI,GAAG,CAAC,EAAG,CAAC;AAE3C,QACE,kBAAC,EAAgB,UAAjB;EAAiC;YAC/B,kBAAC,OAAD;GAAK,aAAU;GAAY,WAAW,EAAG,cAAc,EAAU;GAAE,GAAI;GAAS,CAAA;EACvD,CAAA;;AAI/B,SAAS,EAAU,EAAE,cAAW,GAAG,KAA2D;CAC5F,IAAM,EAAE,UAAO,kBAAe,GAAc;AAE5C,QACE,kBAAC,GAAD;EACE,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,EAAG,sCAAsC,EAAU;EAC9D,SAAS;EACT,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAY,EAAE,GAAG,KAA4C;CACpE,IAAM,EAAE,UAAO,eAAY,sBAAmB,qBAAkB,GAAc;AAE9E,QACE,kBAAC,GAAD;EACE,aAAU;EACV,IAAI;EACJ,oBAAmB,IAA4B,GAAG,EAAkB,GAAG,MAA5C;EAC3B,gBAAc,CAAC,CAAC;EAChB,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAoC;CAC3E,IAAM,EAAE,yBAAsB,GAAc;AAE5C,QACE,kBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,WAAW,EAAG,iCAAiC,EAAU;EACzD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAY,EAAE,cAAW,GAAG,KAAoC;CACvE,IAAM,EAAE,UAAO,qBAAkB,GAAc,EACzC,IAAO,IAAQ,OAAO,GAAO,WAAW,GAAG,GAAG,EAAM;AAM1D,QAJK,IAKH,kBAAC,KAAD;EAAG,aAAU;EAAe,IAAI;EAAe,WAAW,EAAG,4BAA4B,EAAU;EAAE,GAAI;YACtG;EACC,CAAA,GANG"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/rolldown:runtime.cjs`),t=require(`../lib/utils.cjs`);let n=require(`react/jsx-runtime`);function r({className:e,type:r,...i}){return(0,n.jsx)(`input`,{type:r,"data-slot":`input`,className:t.cn(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,e),...i})}exports.Input=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`);let t=require(`react/jsx-runtime`);function n({className:n,type:r,...i}){return(0,t.jsx)(`input`,{type:r,"data-slot":`input`,className:e.cn(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n),...i})}exports.Input=n;
2
2
  //# sourceMappingURL=input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.cjs","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":"wLAEA,SAAS,EAAM,CAAE,YAAW,OAAM,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,QAAA,CACO,OACN,YAAU,QACV,UAAW,EAAA,GACT,kcACA,gFACA,yGACA,EACD,CACD,GAAI,GACJ"}
1
+ {"version":3,"file":"input.cjs","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":"uLAEA,SAAS,EAAM,CAAE,YAAW,OAAM,GAAG,GAAwC,CAC3E,OAAA,EAAA,EAAA,KACG,QAAD,CACQ,OACN,YAAU,QACV,UAAW,EAAA,GACT,kcACA,gFACA,yGACA,EACD,CACD,GAAI,EACJ,CAAA"}