@egose/shadcn-theme 0.0.50 → 0.0.51

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 (195) hide show
  1. package/{chunk-IPTLI5N5.mjs → chunk-2BKV4IJV.mjs} +4 -4
  2. package/chunk-2BKV4IJV.mjs.map +1 -0
  3. package/{chunk-2H5WIGQU.js → chunk-4FD63HEQ.js} +5 -5
  4. package/chunk-4FD63HEQ.js.map +1 -0
  5. package/chunk-4XC6EXHZ.mjs +112 -0
  6. package/chunk-4XC6EXHZ.mjs.map +1 -0
  7. package/{chunk-7TCN3MNY.js → chunk-5HD5BGK7.js} +1 -1
  8. package/chunk-5HD5BGK7.js.map +1 -0
  9. package/{chunk-WA2Z3OWJ.js → chunk-6KUUJF3I.js} +3 -3
  10. package/chunk-6KUUJF3I.js.map +1 -0
  11. package/{chunk-LPZRXLKK.mjs → chunk-ACE5WNTU.mjs} +6 -6
  12. package/chunk-ACE5WNTU.mjs.map +1 -0
  13. package/{chunk-NJDC3RMA.mjs → chunk-ARQYTBBZ.mjs} +1 -1
  14. package/chunk-ARQYTBBZ.mjs.map +1 -0
  15. package/chunk-CE4PBEIL.js +88 -0
  16. package/chunk-CE4PBEIL.js.map +1 -0
  17. package/{chunk-MWA2HHI7.mjs → chunk-CPGH6LBC.mjs} +1 -1
  18. package/chunk-CPGH6LBC.mjs.map +1 -0
  19. package/{chunk-2WDZS5E5.mjs → chunk-CTYAFVU5.mjs} +2 -2
  20. package/chunk-CTYAFVU5.mjs.map +1 -0
  21. package/{chunk-N4QVNSAY.js → chunk-DGYAXPSD.js} +1 -1
  22. package/chunk-DGYAXPSD.js.map +1 -0
  23. package/{chunk-V5IL3OBF.mjs → chunk-DMATER3M.mjs} +1 -1
  24. package/chunk-DMATER3M.mjs.map +1 -0
  25. package/chunk-DTJ43DCW.mjs +87 -0
  26. package/chunk-DTJ43DCW.mjs.map +1 -0
  27. package/{chunk-U3HF6HPN.js → chunk-DYUS5722.js} +1 -1
  28. package/chunk-DYUS5722.js.map +1 -0
  29. package/{chunk-R3RMWOGE.mjs → chunk-EJQJ3BCF.mjs} +1 -1
  30. package/chunk-EJQJ3BCF.mjs.map +1 -0
  31. package/{chunk-LVFEXEXE.mjs → chunk-FMYITAWN.mjs} +1 -1
  32. package/chunk-FMYITAWN.mjs.map +1 -0
  33. package/{chunk-PSQGNWKT.js → chunk-GI222XFX.js} +1 -1
  34. package/chunk-GI222XFX.js.map +1 -0
  35. package/chunk-I64GW5SA.js +113 -0
  36. package/chunk-I64GW5SA.js.map +1 -0
  37. package/{chunk-ALDDTRY5.js → chunk-I6AFNWVY.js} +1 -1
  38. package/chunk-I6AFNWVY.js.map +1 -0
  39. package/{chunk-YT6UTIPP.js → chunk-IQYZKNJZ.js} +3 -3
  40. package/chunk-IQYZKNJZ.js.map +1 -0
  41. package/chunk-JW7N7IR5.mjs +120 -0
  42. package/chunk-JW7N7IR5.mjs.map +1 -0
  43. package/{chunk-4QOQOMZB.mjs → chunk-LXILG667.mjs} +1 -1
  44. package/chunk-LXILG667.mjs.map +1 -0
  45. package/{chunk-DMO25T5J.mjs → chunk-NTYWTGYX.mjs} +1 -1
  46. package/chunk-NTYWTGYX.mjs.map +1 -0
  47. package/{chunk-3YDM2NYL.js → chunk-NVBZVKIT.js} +1 -1
  48. package/chunk-NVBZVKIT.js.map +1 -0
  49. package/{chunk-5RW6O56P.mjs → chunk-OXCN3BD6.mjs} +1 -1
  50. package/chunk-OXCN3BD6.mjs.map +1 -0
  51. package/{chunk-E77FKWFS.js → chunk-PCR4GC74.js} +1 -1
  52. package/chunk-PCR4GC74.js.map +1 -0
  53. package/{chunk-273TIMKM.js → chunk-PS3LNHTA.js} +1 -1
  54. package/chunk-PS3LNHTA.js.map +1 -0
  55. package/{chunk-UQTHHSJN.mjs → chunk-R4SF7CSA.mjs} +1 -1
  56. package/chunk-R4SF7CSA.mjs.map +1 -0
  57. package/chunk-RMDDLEPA.js +121 -0
  58. package/chunk-RMDDLEPA.js.map +1 -0
  59. package/{chunk-FQG3C7OR.js → chunk-XJ7GBFHV.js} +1 -1
  60. package/chunk-XJ7GBFHV.js.map +1 -0
  61. package/{chunk-5UUXFHU3.mjs → chunk-YQZZ6RRI.mjs} +1 -1
  62. package/chunk-YQZZ6RRI.mjs.map +1 -0
  63. package/{chunk-XCHWNZWB.js → chunk-YWWFTM23.js} +1 -1
  64. package/chunk-YWWFTM23.js.map +1 -0
  65. package/components/form/checkbox.js +2 -2
  66. package/components/form/checkbox.mjs +1 -1
  67. package/components/form/date-picker.js +3 -3
  68. package/components/form/date-picker.mjs +2 -2
  69. package/components/form/date-range-picker.js +2 -2
  70. package/components/form/date-range-picker.js.map +1 -1
  71. package/components/form/date-range-picker.mjs +3 -3
  72. package/components/form/date-range-picker.mjs.map +1 -1
  73. package/components/form/hook-checkbox.js +2 -2
  74. package/components/form/hook-checkbox.js.map +1 -1
  75. package/components/form/hook-checkbox.mjs +1 -1
  76. package/components/form/hook-checkbox.mjs.map +1 -1
  77. package/components/form/hook-date-picker.js +3 -3
  78. package/components/form/hook-date-picker.js.map +1 -1
  79. package/components/form/hook-date-picker.mjs +2 -2
  80. package/components/form/hook-date-picker.mjs.map +1 -1
  81. package/components/form/hook-native-select.js +2 -2
  82. package/components/form/hook-native-select.js.map +1 -1
  83. package/components/form/hook-native-select.mjs +1 -1
  84. package/components/form/hook-native-select.mjs.map +1 -1
  85. package/components/form/hook-searchable-select.d.mts +12 -0
  86. package/components/form/hook-searchable-select.d.ts +12 -0
  87. package/components/form/hook-searchable-select.js +74 -0
  88. package/components/form/hook-searchable-select.js.map +1 -0
  89. package/components/form/hook-searchable-select.mjs +73 -0
  90. package/components/form/hook-searchable-select.mjs.map +1 -0
  91. package/components/form/hook-select.js +2 -2
  92. package/components/form/hook-select.js.map +1 -1
  93. package/components/form/hook-select.mjs +1 -1
  94. package/components/form/hook-select.mjs.map +1 -1
  95. package/components/form/hook-text-input.js +2 -2
  96. package/components/form/hook-text-input.js.map +1 -1
  97. package/components/form/hook-text-input.mjs +1 -1
  98. package/components/form/hook-text-input.mjs.map +1 -1
  99. package/components/form/hook-textarea.js +2 -2
  100. package/components/form/hook-textarea.js.map +1 -1
  101. package/components/form/hook-textarea.mjs +1 -1
  102. package/components/form/hook-textarea.mjs.map +1 -1
  103. package/components/form/hook-time-input.js +3 -3
  104. package/components/form/hook-time-input.js.map +1 -1
  105. package/components/form/hook-time-input.mjs +2 -2
  106. package/components/form/hook-time-input.mjs.map +1 -1
  107. package/components/form/native-select.js +2 -2
  108. package/components/form/native-select.mjs +1 -1
  109. package/components/form/searchable-select.d.mts +26 -0
  110. package/components/form/searchable-select.d.ts +26 -0
  111. package/components/form/searchable-select.js +17 -0
  112. package/components/form/searchable-select.js.map +1 -0
  113. package/components/form/searchable-select.mjs +16 -0
  114. package/components/form/searchable-select.mjs.map +1 -0
  115. package/components/form/select.js +2 -2
  116. package/components/form/select.mjs +1 -1
  117. package/components/form/text-input.js +2 -2
  118. package/components/form/text-input.mjs +1 -1
  119. package/components/form/textarea.js +2 -2
  120. package/components/form/textarea.mjs +1 -1
  121. package/components/form/time-input.js +3 -3
  122. package/components/form/time-input.mjs +2 -2
  123. package/components/ui/badge.js +5 -113
  124. package/components/ui/badge.js.map +1 -1
  125. package/components/ui/badge.mjs +5 -113
  126. package/components/ui/badge.mjs.map +1 -1
  127. package/components/ui/command.d.mts +7 -7
  128. package/components/ui/command.d.ts +7 -7
  129. package/components/ui/command.js +26 -111
  130. package/components/ui/command.js.map +1 -1
  131. package/components/ui/command.mjs +13 -98
  132. package/components/ui/command.mjs.map +1 -1
  133. package/components/ui/extension/file-input.d.mts +10 -0
  134. package/components/ui/extension/file-input.d.ts +10 -0
  135. package/components/ui/extension/file-input.js +28 -0
  136. package/components/ui/extension/file-input.js.map +1 -0
  137. package/components/ui/extension/file-input.mjs +27 -0
  138. package/components/ui/extension/file-input.mjs.map +1 -0
  139. package/components/ui/extension/multi-select.d.mts +53 -0
  140. package/components/ui/extension/multi-select.d.ts +53 -0
  141. package/components/ui/extension/multi-select.js +312 -0
  142. package/components/ui/extension/multi-select.js.map +1 -0
  143. package/components/ui/extension/multi-select.mjs +311 -0
  144. package/components/ui/extension/multi-select.mjs.map +1 -0
  145. package/components/ui/resizable.d.mts +1 -1
  146. package/components/ui/resizable.d.ts +1 -1
  147. package/components/ui/toaster.js +2 -2
  148. package/components/ui/toaster.mjs +1 -1
  149. package/components/widgets/dialog-manager/index.js +3 -3
  150. package/components/widgets/dialog-manager/index.js.map +1 -1
  151. package/components/widgets/dialog-manager/index.mjs +2 -2
  152. package/components/widgets/dialog-manager/provider.js +2 -2
  153. package/components/widgets/dialog-manager/provider.mjs +1 -1
  154. package/hooks/use-toast.js +2 -2
  155. package/hooks/use-toast.mjs +1 -1
  156. package/layouts/sidebar1/LinkWrapper.js.map +1 -1
  157. package/layouts/sidebar1/LinkWrapper.mjs.map +1 -1
  158. package/layouts/sidebar1/app-sidebar.js +5 -5
  159. package/layouts/sidebar1/app-sidebar.mjs +4 -4
  160. package/layouts/sidebar1/context-switcher.js +2 -2
  161. package/layouts/sidebar1/context-switcher.mjs +1 -1
  162. package/layouts/sidebar1/index.js +7 -7
  163. package/layouts/sidebar1/index.js.map +1 -1
  164. package/layouts/sidebar1/index.mjs +6 -6
  165. package/layouts/sidebar1/nav-menus.js +2 -2
  166. package/layouts/sidebar1/nav-menus.mjs +1 -1
  167. package/layouts/sidebar1/nav-user.js +2 -2
  168. package/layouts/sidebar1/nav-user.mjs +1 -1
  169. package/package.json +1 -1
  170. package/chunk-273TIMKM.js.map +0 -1
  171. package/chunk-2H5WIGQU.js.map +0 -1
  172. package/chunk-2WDZS5E5.mjs.map +0 -1
  173. package/chunk-3YDM2NYL.js.map +0 -1
  174. package/chunk-4QOQOMZB.mjs.map +0 -1
  175. package/chunk-5RW6O56P.mjs.map +0 -1
  176. package/chunk-5UUXFHU3.mjs.map +0 -1
  177. package/chunk-7TCN3MNY.js.map +0 -1
  178. package/chunk-ALDDTRY5.js.map +0 -1
  179. package/chunk-DMO25T5J.mjs.map +0 -1
  180. package/chunk-E77FKWFS.js.map +0 -1
  181. package/chunk-FQG3C7OR.js.map +0 -1
  182. package/chunk-IPTLI5N5.mjs.map +0 -1
  183. package/chunk-LPZRXLKK.mjs.map +0 -1
  184. package/chunk-LVFEXEXE.mjs.map +0 -1
  185. package/chunk-MWA2HHI7.mjs.map +0 -1
  186. package/chunk-N4QVNSAY.js.map +0 -1
  187. package/chunk-NJDC3RMA.mjs.map +0 -1
  188. package/chunk-PSQGNWKT.js.map +0 -1
  189. package/chunk-R3RMWOGE.mjs.map +0 -1
  190. package/chunk-U3HF6HPN.js.map +0 -1
  191. package/chunk-UQTHHSJN.mjs.map +0 -1
  192. package/chunk-V5IL3OBF.mjs.map +0 -1
  193. package/chunk-WA2Z3OWJ.js.map +0 -1
  194. package/chunk-XCHWNZWB.js.map +0 -1
  195. package/chunk-YT6UTIPP.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-DYUS5722.js","../layouts/sidebar1/context-switcher.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-DYUS5722.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronsUpDown, Plus } from 'lucide-react';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\nimport { cn } from '../../lib/utils';\n\nexport interface INavContext {\n name: string;\n logo: React.ElementType;\n text: string;\n className?: string;\n}\n\nexport function ContextSwitcher({\n items,\n title = 'Contexts',\n newContextText = 'Add context',\n}: {\n items: INavContext[];\n title?: string;\n newContextText?: string;\n}) {\n const { isMobile } = useSidebar();\n const [activeContext, setActiveContext] = React.useState(items[0]);\n\n React.useEffect(() => {\n if (!items || items.length === 0) return;\n setActiveContext((prev) => {\n const stillExists = items.find((item) => item.name === prev?.name);\n return stillExists ?? items[0];\n });\n }, [items]);\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <div\n className={cn(\n 'flex aspect-square size-8 items-center justify-center rounded-lg bg-dark text-dark-foreground',\n activeContext.className,\n )}\n >\n <activeContext.logo className=\"size-4\" />\n </div>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{activeContext.name}</span>\n <span className=\"truncate text-xs\">{activeContext.text}</span>\n </div>\n\n <ChevronsUpDown className=\"ml-auto\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n align=\"start\"\n side={isMobile ? 'bottom' : 'right'}\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"text-xs text-muted-foreground\">{title}</DropdownMenuLabel>\n\n {items.map((item, index) => (\n <DropdownMenuItem key={item.name} onClick={() => setActiveContext(item)} className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-sm border\">\n <item.logo className=\"size-4 shrink-0\" />\n </div>\n {item.name}\n <DropdownMenuShortcut>⌘{index + 1}</DropdownMenuShortcut>\n </DropdownMenuItem>\n ))}\n\n <DropdownMenuSeparator />\n\n <DropdownMenuItem className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-md border bg-background\">\n <Plus className=\"size-4\" />\n </div>\n <div className=\"font-medium text-muted-foreground\">{newContextText}</div>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"]}
@@ -58,4 +58,4 @@ function NavMenus({ menus, aslink }) {
58
58
  export {
59
59
  NavMenus
60
60
  };
61
- //# sourceMappingURL=chunk-R3RMWOGE.mjs.map
61
+ //# sourceMappingURL=chunk-EJQJ3BCF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../layouts/sidebar1/nav-menus.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from '../../components/ui/sidebar';\nimport { useSidebar } from '../../components/ui/sidebar';\n\nexport interface IMenuSubItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n isActive?: boolean;\n onClick?: (title: string) => void;\n}\n\nexport interface IMenuItem extends IMenuSubItem {\n subItems?: IMenuSubItem[];\n}\n\nexport interface INavMenu {\n title: string;\n items: IMenuItem[];\n}\n\nfunction SidebarMenuLink({ item, as: LinkComponent }: { item: IMenuSubItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n const Comp = LinkComponent && item.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={item.isActive} tooltip={item.title} onClick={() => setOpenMobile(false)}>\n <Comp to={item.url} href={item.url} onClick={() => item.onClick?.(item.title)}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n </Comp>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n}\n\nfunction SidebarMenuCollapsible({ item, as: LinkComponent }: { item: IMenuItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n if (!item.subItems) return null;\n\n return (\n <Collapsible key={item.title} asChild defaultOpen={item.isActive} className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton tooltip={item.title}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n\n <ChevronRight className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.subItems.map((subItem) => {\n const Comp = LinkComponent && subItem.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuSubItem key={subItem.title}>\n <SidebarMenuSubButton asChild isActive={subItem.isActive} onClick={() => setOpenMobile(false)}>\n <Comp\n to={subItem.url}\n href={subItem.url}\n onClick={() => item.onClick?.(subItem.title)}\n className=\"block w-full\"\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.title}</span>\n </Comp>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n );\n}\n\nexport function NavMenus({ menus, aslink }: { menus: INavMenu[]; aslink: React.ElementType }) {\n return menus.map((menu) => {\n return (\n <SidebarGroup key={menu.title}>\n <SidebarGroupLabel>{menu.title}</SidebarGroupLabel>\n\n <SidebarMenu>\n {menu.items.map((item) =>\n item.subItems && item.subItems.length > 0 ? (\n <SidebarMenuCollapsible key={item.title} item={item} as={aslink} />\n ) : (\n <SidebarMenuLink key={item.title} item={item} as={aslink} />\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,YAAY,WAAW;AACvB,SAAS,oBAAoB;AA+B7B,SAAS,gBAAgB,EAAE,MAAM,IAAI,cAAc,GAAkD;AACnG,QAAM,EAAE,cAAc,IAAI,WAAW;AACrC,QAAM,OAAO,iBAAiB,KAAK,MAAM,gBAAgB;AAEzD,SACE,oCAAC,uBACC,oCAAC,qBAAkB,SAAO,MAAC,UAAU,KAAK,UAAU,SAAS,KAAK,OAAO,SAAS,MAAM,cAAc,KAAK,KACzG,oCAAC,QAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,SAAS,MAAG;AAxCxD;AAwC2D,sBAAK,YAAL,8BAAe,KAAK;AAAA,OACpE,KAAK,QAAQ,oCAAC,KAAK,MAAL,IAAU,GACzB,oCAAC,cAAM,KAAK,KAAM,CACpB,CACF,CACF;AAEJ;AAEA,SAAS,uBAAuB,EAAE,MAAM,IAAI,cAAc,GAA+C;AACvG,QAAM,EAAE,cAAc,IAAI,WAAW;AACrC,MAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,SACE,oCAAC,eAAY,KAAK,KAAK,OAAO,SAAO,MAAC,aAAa,KAAK,UAAU,WAAU,uBAC1E,oCAAC,uBACC,oCAAC,sBAAmB,SAAO,QACzB,oCAAC,qBAAkB,SAAS,KAAK,SAC9B,KAAK,QAAQ,oCAAC,KAAK,MAAL,IAAU,GACzB,oCAAC,cAAM,KAAK,KAAM,GAElB,oCAAC,gBAAa,WAAU,2FAA0F,CACpH,CACF,GAEA,oCAAC,0BACC,oCAAC,sBACE,KAAK,SAAS,IAAI,CAAC,YAAY;AAC9B,UAAM,OAAO,iBAAiB,QAAQ,MAAM,gBAAgB;AAE5D,WACE,oCAAC,sBAAmB,KAAK,QAAQ,SAC/B,oCAAC,wBAAqB,SAAO,MAAC,UAAU,QAAQ,UAAU,SAAS,MAAM,cAAc,KAAK,KAC1F;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,QAAQ;AAAA,QACZ,MAAM,QAAQ;AAAA,QACd,SAAS,MAAG;AA5ElC;AA4EqC,4BAAK,YAAL,8BAAe,QAAQ;AAAA;AAAA,QACtC,WAAU;AAAA;AAAA,MAET,QAAQ,QAAQ,oCAAC,QAAQ,MAAR,IAAa;AAAA,MAC/B,oCAAC,cAAM,QAAQ,KAAM;AAAA,IACvB,CACF,CACF;AAAA,EAEJ,CAAC,CACH,CACF,CACF,CACF;AAEJ;AAEO,SAAS,SAAS,EAAE,OAAO,OAAO,GAAqD;AAC5F,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WACE,oCAAC,gBAAa,KAAK,KAAK,SACtB,oCAAC,yBAAmB,KAAK,KAAM,GAE/B,oCAAC,mBACE,KAAK,MAAM;AAAA,MAAI,CAAC,SACf,KAAK,YAAY,KAAK,SAAS,SAAS,IACtC,oCAAC,0BAAuB,KAAK,KAAK,OAAO,MAAY,IAAI,QAAQ,IAEjE,oCAAC,mBAAgB,KAAK,KAAK,OAAO,MAAY,IAAI,QAAQ;AAAA,IAE9D,CACF,CACF;AAAA,EAEJ,CAAC;AACH;","names":[]}
@@ -81,4 +81,4 @@ function FormNativeSelect(_a) {
81
81
  export {
82
82
  FormNativeSelect
83
83
  };
84
- //# sourceMappingURL=chunk-LVFEXEXE.mjs.map
84
+ //# sourceMappingURL=chunk-FMYITAWN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/native-select.tsx"],"sourcesContent":["\"use client\";\nimport React, { SelectHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\n\ntype NativeSelectProps = SelectHTMLAttributes<HTMLSelectElement>;\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormNativeSelectProps extends NativeSelectProps {\n id?: string;\n name: string;\n label: string;\n selectProps: NativeSelectProps;\n data: SelectOption[] | string[];\n defaultValue?: string;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormNativeSelect({\n id,\n name,\n label,\n selectProps,\n data,\n defaultValue,\n classNames,\n required,\n disabled,\n ...rest\n}: FormNativeSelectProps) {\n let _options: SelectOption[] = [];\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_native-select', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <select\n {...selectProps}\n id={id}\n name={name}\n autoComplete={id}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n classNames?.input ?? '',\n )}\n required={required}\n disabled={disabled}\n defaultValue={defaultValue}\n {...rest}\n >\n {_options.map((option, index) => {\n return (\n <option\n key={option.value}\n value={option.value}\n // Unfortunately, the selected prop is not properly set at the nested component level.\n // use `defaultValue` in select element.\n // selected={defaultValue ? defaultValue === option.value : index === 0}\n >\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AACA,OAAO,WAAqC;AAC5C,OAAO,gBAAgB;AACvB,OAAO,eAAe;AAWtB,SAAS,oBAAoB,OAAiB;AAC5C,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WAAO,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EACpC,CAAC;AACH;AAgBO,SAAS,iBAAiB,IAWP;AAXO,eAC/B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EA3CF,IAkCiC,IAU5B,iBAV4B,IAU5B;AAAA,IATH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AA3CF,MAAAA;AA8CE,MAAI,WAA2B,CAAC;AAChC,MAAI,KAAK,SAAS,GAAG;AACnB,QAAI,UAAU,KAAK,CAAC,CAAC,GAAG;AACtB,iBAAW,oBAAoB,IAAgB;AAAA,IACjD,OAAO;AACL,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,kBAAkB,yCAAY,OAAO,KACrD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF;AAAA,IAAC;AAAA,oDACK,cADL;AAAA,MAEC;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,SACAA,MAAA,yCAAY,UAAZ,OAAAA,MAAqB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACI;AAAA,IAEH,SAAS,IAAI,CAAC,QAAQ,UAAU;AAC/B,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,OAAO;AAAA,UACZ,OAAO,OAAO;AAAA;AAAA,QAKb,OAAO;AAAA,MACV;AAAA,IAEJ,CAAC;AAAA,EACH,CACF;AAEJ;","names":["_a"]}
@@ -40,4 +40,4 @@ function FormCheckbox({
40
40
 
41
41
 
42
42
  exports.FormCheckbox = FormCheckbox;
43
- //# sourceMappingURL=chunk-PSQGNWKT.js.map
43
+ //# sourceMappingURL=chunk-GI222XFX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-GI222XFX.js","../components/form/checkbox.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACTA,4EAAkB;AAClB,wGAAuB;AAoBhB,SAAS,YAAA,CAAa;AAAA,EAC3B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,WAAA,EAAa,GAAA,GAAM,iCAAA,IAAe,CAAA;AAExC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,yBAAG,EAA2B,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,kBAC/D,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,UAAA;AAAA,MACJ,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAA,EAAW,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,QAAQ;AAAA,IAAA;AAAA,EACpC,CAAA,EAEC,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,UAAA,EAAY,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EACvD,KACH,CAEJ,CAAA;AAEJ;ADhBA;AACA;AACE;AACF,oCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-GI222XFX.js","sourcesContent":[null,"\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Checkbox } from '../ui/checkbox';\n\nexport interface FormCheckboxProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n checkbox?: string;\n };\n}\n\nexport function FormCheckbox({\n id,\n name,\n label,\n required,\n disabled,\n checked,\n onCheckedChange,\n classNames,\n}: FormCheckboxProps) {\n const checkboxId = id || _kebabCase(name);\n\n return (\n <div className={cn('flex items-center gap-3', classNames?.wrapper)}>\n <Checkbox\n id={checkboxId}\n name={name}\n disabled={disabled}\n required={required}\n checked={checked}\n onCheckedChange={onCheckedChange}\n className={cn(classNames?.checkbox)}\n />\n\n {label && (\n <Label htmlFor={checkboxId} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n </div>\n );\n}\n"]}
@@ -0,0 +1,113 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
3
+
4
+
5
+ var _chunkU3KAN7IMjs = require('./chunk-U3KAN7IM.js');
6
+
7
+
8
+ var _chunk6N4WCMTEjs = require('./chunk-6N4WCMTE.js');
9
+
10
+
11
+
12
+ var _chunk2NMEKWO5js = require('./chunk-2NMEKWO5.js');
13
+
14
+ // components/ui/command.tsx
15
+ var _react = require('react'); var React = _interopRequireWildcard(_react);
16
+ var _cmdk = require('cmdk');
17
+ var _lucidereact = require('lucide-react');
18
+ var Command = React.forwardRef((_a, ref) => {
19
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
20
+ return /* @__PURE__ */ React.createElement(
21
+ _cmdk.Command,
22
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
23
+ ref,
24
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
25
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
26
+ className
27
+ )
28
+ }, props)
29
+ );
30
+ });
31
+ Command.displayName = _cmdk.Command.displayName;
32
+ var CommandDialog = (_a) => {
33
+ var _b = _a, { children } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["children"]);
34
+ return /* @__PURE__ */ React.createElement(_chunkU3KAN7IMjs.Dialog, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, props), /* @__PURE__ */ React.createElement(_chunkU3KAN7IMjs.DialogContent, { className: "overflow-hidden p-0" }, /* @__PURE__ */ React.createElement(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5" }, children)));
35
+ };
36
+ var CommandInput = React.forwardRef((_a, ref) => {
37
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
38
+ return /* @__PURE__ */ React.createElement("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "" }, /* @__PURE__ */ React.createElement(_lucidereact.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), /* @__PURE__ */ React.createElement(
39
+ _cmdk.Command.Input,
40
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
41
+ ref,
42
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
43
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
44
+ className
45
+ )
46
+ }, props)
47
+ ));
48
+ });
49
+ CommandInput.displayName = _cmdk.Command.Input.displayName;
50
+ var CommandList = React.forwardRef((_a, ref) => {
51
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
52
+ return /* @__PURE__ */ React.createElement(
53
+ _cmdk.Command.List,
54
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
55
+ ref,
56
+ className: _chunk6N4WCMTEjs.cn.call(void 0, "max-h-[300px] overflow-y-auto overflow-x-hidden", className)
57
+ }, props)
58
+ );
59
+ });
60
+ CommandList.displayName = _cmdk.Command.List.displayName;
61
+ var CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(_cmdk.Command.Empty, _chunk2NMEKWO5js.__spreadValues.call(void 0, { ref, className: "py-6 text-center text-sm" }, props)));
62
+ CommandEmpty.displayName = _cmdk.Command.Empty.displayName;
63
+ var CommandGroup = React.forwardRef((_a, ref) => {
64
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
65
+ return /* @__PURE__ */ React.createElement(
66
+ _cmdk.Command.Group,
67
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
68
+ ref,
69
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
70
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
71
+ className
72
+ )
73
+ }, props)
74
+ );
75
+ });
76
+ CommandGroup.displayName = _cmdk.Command.Group.displayName;
77
+ var CommandSeparator = React.forwardRef((_a, ref) => {
78
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
79
+ return /* @__PURE__ */ React.createElement(_cmdk.Command.Separator, _chunk2NMEKWO5js.__spreadValues.call(void 0, { ref, className: _chunk6N4WCMTEjs.cn.call(void 0, "-mx-1 h-px bg-border", className) }, props));
80
+ });
81
+ CommandSeparator.displayName = _cmdk.Command.Separator.displayName;
82
+ var CommandItem = React.forwardRef((_a, ref) => {
83
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
84
+ return /* @__PURE__ */ React.createElement(
85
+ _cmdk.Command.Item,
86
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
87
+ ref,
88
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
89
+ "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
90
+ className
91
+ )
92
+ }, props)
93
+ );
94
+ });
95
+ CommandItem.displayName = _cmdk.Command.Item.displayName;
96
+ var CommandShortcut = (_a) => {
97
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
98
+ return /* @__PURE__ */ React.createElement("span", _chunk2NMEKWO5js.__spreadValues.call(void 0, { className: _chunk6N4WCMTEjs.cn.call(void 0, "ml-auto text-xs tracking-widest text-muted-foreground", className) }, props));
99
+ };
100
+ CommandShortcut.displayName = "CommandShortcut";
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+ exports.Command = Command; exports.CommandDialog = CommandDialog; exports.CommandInput = CommandInput; exports.CommandList = CommandList; exports.CommandEmpty = CommandEmpty; exports.CommandGroup = CommandGroup; exports.CommandSeparator = CommandSeparator; exports.CommandItem = CommandItem; exports.CommandShortcut = CommandShortcut;
113
+ //# sourceMappingURL=chunk-I64GW5SA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-I64GW5SA.js","../components/ui/command.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACXA,2EAAuB;AAEvB,4BAA4C;AAC5C,2CAAuB;AAKvB,IAAM,QAAA,EAAgB,KAAA,CAAA,UAAA,CAGpB,CAAC,EAAA,EAAyB,GAAA,EAAA,GAAK;AAA9B,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAZL,EAAA,EAYG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA,6CAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,iCAAA;AAAA,QACT,2FAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA;AAAA,EACN,CAAA;AAAA,CACD,CAAA;AACD,OAAA,CAAQ,YAAA,EAAc,aAAA,CAAiB,WAAA;AAEvC,IAAM,cAAA,EAAgB,CAAC,EAAA,EAAA,GAAwC;AAAxC,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAxBzB,EAAA,EAwBuB,EAAA,EAAe,MAAA,EAAA,wCAAA,EAAf,EAAe,CAAb,UAAA,CAAA,CAAA;AACvB,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,uBAAA,EAAA,6CAAA,CAAA,CAAA,EAAW,KAAA,CAAA,kBACV,KAAA,CAAA,aAAA,CAAC,8BAAA,EAAA,EAAc,SAAA,EAAU,sBAAA,CAAA,kBACvB,KAAA,CAAA,aAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,8WAAA,CAAA,EAChB,QACH,CACF,CACF,CAAA;AAEJ,CAAA;AAEA,IAAM,aAAA,EAAqB,KAAA,CAAA,UAAA,CAGzB,CAAC,EAAA,EAAyB,GAAA,EAAA,GAAK;AAA9B,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAvCL,EAAA,EAuCG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAkC,oBAAA,EAAmB,GAAA,CAAA,kBAClE,KAAA,CAAA,aAAA,CAAC,mBAAA,EAAA,EAAO,SAAA,EAAU,mCAAA,CAAmC,CAAA,kBACrD,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA,CAAiB,KAAA;AAAA,IAAjB,6CAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,iCAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA;AAAA,EACN,CACF,CAAA;AAAA,CACD,CAAA;AAED,YAAA,CAAa,YAAA,EAAc,aAAA,CAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,YAAA,EAAoB,KAAA,CAAA,UAAA,CAGxB,CAAC,EAAA,EAAyB,GAAA,EAAA,GAAK;AAA9B,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UA1DL,EAAA,EA0DG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA,CAAiB,IAAA;AAAA,IAAjB,6CAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,iCAAA,iDAAG,EAAmD,SAAS;AAAA,IAAA,CAAA,EACtE,KAAA;AAAA,EACN,CAAA;AAAA,CACD,CAAA;AAED,WAAA,CAAY,YAAA,EAAc,aAAA,CAAiB,IAAA,CAAK,WAAA;AAEhD,IAAM,aAAA,EAAqB,KAAA,CAAA,UAAA,CAGzB,CAAC,KAAA,EAAO,GAAA,EAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,aAAA,CAAiB,KAAA,EAAjB,6CAAA,EAAuB,GAAA,EAAU,SAAA,EAAU,2BAAA,CAAA,EAA+B,KAAA,CAAO,CAAE,CAAA;AAEtG,YAAA,CAAa,YAAA,EAAc,aAAA,CAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,aAAA,EAAqB,KAAA,CAAA,UAAA,CAGzB,CAAC,EAAA,EAAyB,GAAA,EAAA,GAAK;AAA9B,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UA9EL,EAAA,EA8EG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA,CAAiB,KAAA;AAAA,IAAjB,6CAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,iCAAA;AAAA,QACT,wNAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA;AAAA,EACN,CAAA;AAAA,CACD,CAAA;AAED,YAAA,CAAa,YAAA,EAAc,aAAA,CAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,iBAAA,EAAyB,KAAA,CAAA,UAAA,CAG7B,CAAC,EAAA,EAAyB,GAAA,EAAA,GAAK;AAA9B,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UA9FL,EAAA,EA8FG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,aAAA,CAAiB,SAAA,EAAjB,6CAAA,EAA2B,GAAA,EAAU,SAAA,EAAW,iCAAA,sBAAG,EAAwB,SAAS,EAAA,CAAA,EAAO,KAAA,CAAO,CAAA;AAAA,CACpG,CAAA;AACD,gBAAA,CAAiB,YAAA,EAAc,aAAA,CAAiB,SAAA,CAAU,WAAA;AAE1D,IAAM,YAAA,EAAoB,KAAA,CAAA,UAAA,CAGxB,CAAC,EAAA,EAAyB,GAAA,EAAA,GAAK;AAA9B,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAtGL,EAAA,EAsGG,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACH,EAAA,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA,CAAiB,IAAA;AAAA,IAAjB,6CAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,iCAAA;AAAA,QACT,yTAAA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CAAA,EACI,KAAA;AAAA,EACN,CAAA;AAAA,CACD,CAAA;AAED,WAAA,CAAY,YAAA,EAAc,aAAA,CAAiB,IAAA,CAAK,WAAA;AAEhD,IAAM,gBAAA,EAAkB,CAAC,EAAA,EAAA,GAAmE;AAAnE,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,UAnH3B,EAAA,EAmHyB,EAAA,EAAgB,MAAA,EAAA,wCAAA,EAAhB,EAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,6CAAA,EAAK,SAAA,EAAW,iCAAA,uDAAG,EAAyD,SAAS,EAAA,CAAA,EAAO,KAAA,CAAO,CAAA;AAC7G,CAAA;AACA,eAAA,CAAgB,YAAA,EAAc,iBAAA;ADnB9B;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,8UAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-I64GW5SA.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { type DialogProps } from '@radix-ui/react-dialog';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport { Dialog, DialogContent } from './dialog';\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />);\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn('-mx-1 h-px bg-border', className)} {...props} />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...props} />;\n};\nCommandShortcut.displayName = 'CommandShortcut';\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"]}
@@ -120,4 +120,4 @@ function useToast() {
120
120
 
121
121
 
122
122
  exports.reducer = reducer; exports.toast = toast; exports.useToast = useToast;
123
- //# sourceMappingURL=chunk-ALDDTRY5.js.map
123
+ //# sourceMappingURL=chunk-I6AFNWVY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-I6AFNWVY.js","../hooks/use-toast.ts"],"names":["toast","props"],"mappings":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACJA,2EAAuB;AAIvB,IAAM,YAAA,EAAc,CAAA;AACpB,IAAM,mBAAA,EAAqB,GAAA;AAgB3B,IAAI,MAAA,EAAQ,CAAA;AAEZ,SAAS,KAAA,CAAA,EAAQ;AACf,EAAA,MAAA,EAAA,CAAS,MAAA,EAAQ,CAAA,EAAA,EAAK,MAAA,CAAO,gBAAA;AAC7B,EAAA,OAAO,KAAA,CAAM,QAAA,CAAS,CAAA;AACxB;AA0BA,IAAM,cAAA,kBAAgB,IAAI,GAAA,CAA2C,CAAA;AAErE,IAAM,iBAAA,EAAmB,CAAC,OAAA,EAAA,GAAoB;AAC5C,EAAA,GAAA,CAAI,aAAA,CAAc,GAAA,CAAI,OAAO,CAAA,EAAG;AAC9B,IAAA,MAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,EAAU,UAAA,CAAW,CAAA,EAAA,GAAM;AAC/B,IAAA,aAAA,CAAc,MAAA,CAAO,OAAO,CAAA;AAC5B,IAAA,QAAA,CAAS;AAAA,MACP,IAAA,EAAM,cAAA;AAAA,MACN;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,kBAAkB,CAAA;AAErB,EAAA,aAAA,CAAc,GAAA,CAAI,OAAA,EAAS,OAAO,CAAA;AACpC,CAAA;AAEO,IAAM,QAAA,EAAU,CAAC,KAAA,EAAc,MAAA,EAAA,GAA0B;AAC9D,EAAA,OAAA,CAAQ,MAAA,CAAO,IAAA,EAAM;AAAA,IACnB,KAAK,WAAA;AACH,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,CAAC,MAAA,CAAO,KAAA,EAAO,GAAG,KAAA,CAAM,MAAM,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,WAAW;AAAA,MAC9D,CAAA,CAAA;AAAA,IAEF,KAAK,cAAA;AACH,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAA,GAAO,CAAA,CAAE,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,GAAA,EAAK,6CAAA,6CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,EAAM,MAAA,CAAO,KAAA,EAAA,EAAU,CAAE;AAAA,MAC5F,CAAA,CAAA;AAAA,IAEF,KAAK,eAAA,EAAiB;AACpB,MAAA,MAAM,EAAE,QAAQ,EAAA,EAAI,MAAA;AAIpB,MAAA,GAAA,CAAI,OAAA,EAAS;AACX,QAAA,gBAAA,CAAiB,OAAO,CAAA;AAAA,MAC1B,EAAA,KAAO;AACL,QAAA,KAAA,CAAM,MAAA,CAAO,OAAA,CAAQ,CAACA,MAAAA,EAAAA,GAAU;AAC9B,UAAA,gBAAA,CAAiBA,MAAAA,CAAM,EAAE,CAAA;AAAA,QAC3B,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA;AAAA,UAAI,CAAC,CAAA,EAAA,GACxB,CAAA,CAAE,GAAA,IAAO,QAAA,GAAW,QAAA,IAAY,KAAA,EAAA,EAC5B,4CAAA,6CAAA,CAAA,CAAA,EACK,CAAA,CAAA,EADL;AAAA,YAEE,IAAA,EAAM;AAAA,UACR,CAAA,EAAA,EACA;AAAA,QACN;AAAA,MACF,CAAA,CAAA;AAAA,IACF;AAAA,IACA,KAAK,cAAA;AACH,MAAA,GAAA,CAAI,MAAA,CAAO,QAAA,IAAY,KAAA,CAAA,EAAW;AAChC,QAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,UAEL,MAAA,EAAQ,CAAC;AAAA,QACX,CAAA,CAAA;AAAA,MACF;AACA,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAA,IAAO,MAAA,CAAO,OAAO;AAAA,MAC5D,CAAA,CAAA;AAAA,EACJ;AACF,CAAA;AAEA,IAAM,UAAA,EAA2C,CAAC,CAAA;AAElD,IAAI,YAAA,EAAqB,EAAE,MAAA,EAAQ,CAAC,EAAE,CAAA;AAEtC,SAAS,QAAA,CAAS,MAAA,EAAgB;AAChC,EAAA,YAAA,EAAc,OAAA,CAAQ,WAAA,EAAa,MAAM,CAAA;AACzC,EAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,EAAA,GAAa;AAC9B,IAAA,QAAA,CAAS,WAAW,CAAA;AAAA,EACtB,CAAC,CAAA;AACH;AAIA,SAAS,KAAA,CAAM,EAAA,EAAqB;AAArB,EAAA,IAAK,MAAA,EAAA,wCAAA,EAAL,EAAK,CAAA,CAAA,CAAA;AAClB,EAAA,MAAM,GAAA,EAAK,KAAA,CAAM,CAAA;AAEjB,EAAA,MAAM,OAAA,EAAS,CAACC,MAAAA,EAAAA,GACd,QAAA,CAAS;AAAA,IACP,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,4CAAA,6CAAA,CAAA,CAAA,EAAKA,MAAAA,CAAAA,EAAL,EAAY,GAAG,CAAA;AAAA,EACxB,CAAC,CAAA;AAEH,EAAA,MAAM,QAAA,EAAU,CAAA,EAAA,GAAM,QAAA,CAAS,EAAE,IAAA,EAAM,eAAA,EAAiB,OAAA,EAAS,GAAG,CAAC,CAAA;AAErE,EAAA,QAAA,CAAS;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,MAEL,EAAA;AAAA,MACA,IAAA,EAAM,IAAA;AAAA,MACN,YAAA,EAAc,CAAC,IAAA,EAAA,GAAS;AACtB,QAAA,GAAA,CAAI,CAAC,IAAA,EAAM,OAAA,CAAQ,CAAA;AAAA,MACrB;AAAA,IACF,CAAA;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,EACF,CAAA;AACF;AAEA,SAAS,QAAA,CAAA,EAAW;AAClB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAU,KAAA,CAAA,QAAA,CAAgB,WAAW,CAAA;AAE3D,EAAM,KAAA,CAAA,SAAA,CAAU,CAAA,EAAA,GAAM;AACpB,IAAA,SAAA,CAAU,IAAA,CAAK,QAAQ,CAAA;AACvB,IAAA,OAAO,CAAA,EAAA,GAAM;AACX,MAAA,MAAM,MAAA,EAAQ,SAAA,CAAU,OAAA,CAAQ,QAAQ,CAAA;AACxC,MAAA,GAAA,CAAI,MAAA,EAAQ,CAAA,CAAA,EAAI;AACd,QAAA,SAAA,CAAU,MAAA,CAAO,KAAA,EAAO,CAAC,CAAA;AAAA,MAC3B;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,IAEL,KAAA;AAAA,IACA,OAAA,EAAS,CAAC,OAAA,EAAA,GAAqB,QAAA,CAAS,EAAE,IAAA,EAAM,eAAA,EAAiB,QAAQ,CAAC;AAAA,EAC5E,CAAA,CAAA;AACF;ADvEA;AACA;AACE;AACA;AACA;AACF,8EAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-I6AFNWVY.js","sourcesContent":[null,"\"use client\";\n// Inspired by react-hot-toast library\nimport * as React from 'react';\n\nimport type { ToastActionElement, ToastProps } from '../components/ui/toast';\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST',\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST'];\n toast: ToasterToast;\n }\n | {\n type: ActionType['UPDATE_TOAST'];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType['DISMISS_TOAST'];\n toastId?: ToasterToast['id'];\n }\n | {\n type: ActionType['REMOVE_TOAST'];\n toastId?: ToasterToast['id'];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'ADD_TOAST':\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case 'UPDATE_TOAST':\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n };\n\n case 'DISMISS_TOAST': {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, 'id'>;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id },\n });\n\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\n };\n}\n\nexport { useToast, toast };\n"]}
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3
3
 
4
+ var _chunk73VYAPJRjs = require('./chunk-73VYAPJR.js');
4
5
 
5
6
 
6
- var _chunkNK4XTZ5Wjs = require('./chunk-NK4XTZ5W.js');
7
7
 
8
8
 
9
- var _chunk73VYAPJRjs = require('./chunk-73VYAPJR.js');
9
+ var _chunkNK4XTZ5Wjs = require('./chunk-NK4XTZ5W.js');
10
10
 
11
11
 
12
12
  var _chunkEZZ2YCUUjs = require('./chunk-EZZ2YCUU.js');
@@ -100,4 +100,4 @@ function FormDatePicker({
100
100
 
101
101
 
102
102
  exports.FormDatePicker = FormDatePicker;
103
- //# sourceMappingURL=chunk-YT6UTIPP.js.map
103
+ //# sourceMappingURL=chunk-IQYZKNJZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-IQYZKNJZ.js","../components/form/date-picker.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-IQYZKNJZ.js","sourcesContent":[null,"\"use client\";\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isUndefined from 'lodash-es/isUndefined';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nfunction getStartOfDay(date: Date) {\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n return startOfDay;\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: Date | string;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n initialValue,\n value,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const [date, setDate] = useState<Date | undefined>(undefined);\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (!initialized) {\n const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(new Date());\n\n setDate(dt);\n setInitialized(true);\n }\n }, [initialized, initialValue]);\n\n useEffect(() => {\n if (_isUndefined(value)) {\n if (!_isUndefined(date)) {\n setDate(undefined);\n }\n } else {\n const dt = _isString(value) ? new Date(value) : value;\n if (!isEqualDate(date, dt)) {\n setDate(getStartOfDay(dt));\n }\n }\n }, [value]);\n\n useEffect(() => {\n if (initialized) {\n onChange(date);\n }\n }, [date, initialized]);\n\n if (!id) id = _kebabCase(name);\n\n const display = !initialized ? <span></span> : date ? <>{formatDate(date)}</> : <span>Pick a date</span>;\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={date ? 'secondary' : 'muted'}\n appearance=\"outline\"\n className={cn('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {display}\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={(newdate) => {\n if (!isEqualDate(date, newdate)) {\n setDate(newdate);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,120 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-F5XCCSBC.mjs";
4
+ import {
5
+ __objRest,
6
+ __spreadValues
7
+ } from "./chunk-YOSPWY5K.mjs";
8
+
9
+ // components/ui/badge.tsx
10
+ import * as React from "react";
11
+ import { Slot } from "@radix-ui/react-slot";
12
+ import { cva } from "class-variance-authority";
13
+ var badgeVariants = cva(
14
+ [
15
+ "inline-flex",
16
+ "items-center",
17
+ "rounded-sm",
18
+ "font-medium",
19
+ "whitespace-nowrap",
20
+ "transition-colors",
21
+ "focus-visible:outline-none",
22
+ "focus-visible:ring-1",
23
+ "focus-visible:ring-ring"
24
+ ],
25
+ {
26
+ variants: {
27
+ variant: {
28
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
29
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/90",
30
+ success: "bg-success text-success-foreground hover:bg-success/90",
31
+ warning: "bg-warning text-warning-foreground hover:bg-warning/90",
32
+ danger: "bg-danger text-danger-foreground hover:bg-danger/90",
33
+ info: "bg-info text-info-foreground hover:bg-info/90",
34
+ light: "bg-light text-light-foreground hover:bg-light/90",
35
+ dark: "bg-dark text-dark-foreground hover:bg-dark/90",
36
+ accent: "bg-accent text-accent-foreground hover:bg-accent/90",
37
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
38
+ muted: "bg-muted text-muted-foreground hover:bg-muted/90",
39
+ link: "text-primary underline-offset-4 hover:underline",
40
+ ghost: "hover:bg-light hover:text-light-foreground"
41
+ },
42
+ size: {
43
+ sm: "h-5 px-2 text-xs",
44
+ default: "h-6 px-3 text-sm",
45
+ lg: "h-7 px-4 text-base"
46
+ },
47
+ appearance: {
48
+ solid: "",
49
+ outline: "bg-white border",
50
+ "outline-filled": "bg-white border"
51
+ }
52
+ },
53
+ defaultVariants: {
54
+ variant: "primary",
55
+ size: "default",
56
+ appearance: "solid"
57
+ }
58
+ }
59
+ );
60
+ function getOutlineClasses(variant) {
61
+ const colors = {
62
+ primary: "border-primary text-primary hover:bg-primary/10",
63
+ secondary: "border-secondary text-secondary hover:bg-secondary/10",
64
+ success: "border-success text-success hover:bg-success/10",
65
+ warning: "border-warning text-warning hover:bg-warning/10",
66
+ danger: "border-danger text-danger hover:bg-danger/10",
67
+ info: "border-info text-info hover:bg-info/10",
68
+ light: "border-light text-light-foreground hover:bg-light/10",
69
+ dark: "border-dark text-dark hover:bg-dark/10",
70
+ accent: "border-accent text-accent hover:bg-accent/10",
71
+ destructive: "border-destructive text-destructive hover:bg-destructive/10",
72
+ muted: "border-muted text-muted-foreground hover:bg-muted/10",
73
+ link: "text-primary",
74
+ ghost: "text-light-foreground"
75
+ };
76
+ return colors[variant];
77
+ }
78
+ function getOutlineFilledClasses(variant) {
79
+ const colors = {
80
+ primary: "hover:bg-primary hover:text-primary-foreground",
81
+ secondary: "hover:bg-secondary hover:text-secondary-foreground",
82
+ success: "hover:bg-success hover:text-success-foreground",
83
+ warning: "hover:bg-warning hover:text-warning-foreground",
84
+ danger: "hover:bg-danger hover:text-danger-foreground",
85
+ info: "hover:bg-info hover:text-info-foreground",
86
+ light: "hover:bg-light hover:text-light-foreground",
87
+ dark: "hover:bg-dark hover:text-dark-foreground",
88
+ accent: "hover:bg-accent hover:text-accent-foreground",
89
+ destructive: "hover:bg-destructive hover:text-destructive-foreground",
90
+ muted: "hover:bg-muted hover:text-muted-foreground",
91
+ link: "hover:underline",
92
+ ghost: "hover:bg-light"
93
+ };
94
+ return colors[variant];
95
+ }
96
+ var Badge = React.forwardRef(
97
+ (_a, ref) => {
98
+ var _b = _a, { className, variant, size, appearance, asChild = false, children } = _b, props = __objRest(_b, ["className", "variant", "size", "appearance", "asChild", "children"]);
99
+ const Comp = asChild ? Slot : "span";
100
+ const outlineClasses = appearance === "outline" || appearance === "outline-filled" ? [getOutlineClasses(variant)] : [];
101
+ if (appearance === "outline-filled") {
102
+ outlineClasses.push(getOutlineFilledClasses(variant));
103
+ }
104
+ return /* @__PURE__ */ React.createElement(
105
+ Comp,
106
+ __spreadValues({
107
+ ref,
108
+ className: cn(badgeVariants({ variant, size, appearance, className }), outlineClasses)
109
+ }, props),
110
+ children
111
+ );
112
+ }
113
+ );
114
+ Badge.displayName = "Badge";
115
+
116
+ export {
117
+ badgeVariants,
118
+ Badge
119
+ };
120
+ //# sourceMappingURL=chunk-JW7N7IR5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/ui/badge.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nexport const badgeVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'rounded-sm',\n 'font-medium',\n 'whitespace-nowrap',\n 'transition-colors',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'focus-visible:ring-ring',\n ],\n {\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/90',\n success: 'bg-success text-success-foreground hover:bg-success/90',\n warning: 'bg-warning text-warning-foreground hover:bg-warning/90',\n danger: 'bg-danger text-danger-foreground hover:bg-danger/90',\n info: 'bg-info text-info-foreground hover:bg-info/90',\n light: 'bg-light text-light-foreground hover:bg-light/90',\n dark: 'bg-dark text-dark-foreground hover:bg-dark/90',\n accent: 'bg-accent text-accent-foreground hover:bg-accent/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n muted: 'bg-muted text-muted-foreground hover:bg-muted/90',\n link: 'text-primary underline-offset-4 hover:underline',\n ghost: 'hover:bg-light hover:text-light-foreground',\n },\n size: {\n sm: 'h-5 px-2 text-xs',\n default: 'h-6 px-3 text-sm',\n lg: 'h-7 px-4 text-base',\n },\n appearance: {\n solid: '',\n outline: 'bg-white border',\n 'outline-filled': 'bg-white border',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n appearance: 'solid',\n },\n },\n);\n\nexport type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;\nexport type BadgeSize = NonNullable<VariantProps<typeof badgeVariants>['size']>;\nexport type BadgeAppearance = NonNullable<VariantProps<typeof badgeVariants>['appearance']>;\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n}\n\nfunction getOutlineClasses(variant: BadgeVariant) {\n const colors: Record<BadgeVariant, string> = {\n primary: 'border-primary text-primary hover:bg-primary/10',\n secondary: 'border-secondary text-secondary hover:bg-secondary/10',\n success: 'border-success text-success hover:bg-success/10',\n warning: 'border-warning text-warning hover:bg-warning/10',\n danger: 'border-danger text-danger hover:bg-danger/10',\n info: 'border-info text-info hover:bg-info/10',\n light: 'border-light text-light-foreground hover:bg-light/10',\n dark: 'border-dark text-dark hover:bg-dark/10',\n accent: 'border-accent text-accent hover:bg-accent/10',\n destructive: 'border-destructive text-destructive hover:bg-destructive/10',\n muted: 'border-muted text-muted-foreground hover:bg-muted/10',\n link: 'text-primary',\n ghost: 'text-light-foreground',\n };\n return colors[variant];\n}\n\nfunction getOutlineFilledClasses(variant: BadgeVariant) {\n const colors: Record<BadgeVariant, string> = {\n primary: 'hover:bg-primary hover:text-primary-foreground',\n secondary: 'hover:bg-secondary hover:text-secondary-foreground',\n success: 'hover:bg-success hover:text-success-foreground',\n warning: 'hover:bg-warning hover:text-warning-foreground',\n danger: 'hover:bg-danger hover:text-danger-foreground',\n info: 'hover:bg-info hover:text-info-foreground',\n light: 'hover:bg-light hover:text-light-foreground',\n dark: 'hover:bg-dark hover:text-dark-foreground',\n accent: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'hover:bg-destructive hover:text-destructive-foreground',\n muted: 'hover:bg-muted hover:text-muted-foreground',\n link: 'hover:underline',\n ghost: 'hover:bg-light',\n };\n return colors[variant];\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, appearance, asChild = false, children, ...props }, ref) => {\n const Comp = asChild ? Slot : 'span';\n\n const outlineClasses =\n appearance === 'outline' || appearance === 'outline-filled' ? [getOutlineClasses(variant as BadgeVariant)] : [];\n if (appearance === 'outline-filled') {\n outlineClasses.push(getOutlineFilledClasses(variant as BadgeVariant));\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(badgeVariants({ variant, size, appearance, className }), outlineClasses)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nBadge.displayName = 'Badge';\n\nexport { Badge };\n"],"mappings":";;;;;;;;;AACA,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;AAGhC,IAAM,gBAAgB;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,MACA,YAAY;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,QACT,kBAAkB;AAAA,MACpB;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAUA,SAAS,kBAAkB,SAAuB;AAChD,QAAM,SAAuC;AAAA,IAC3C,SAAS;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACA,SAAO,OAAO,OAAO;AACvB;AAEA,SAAS,wBAAwB,SAAuB;AACtD,QAAM,SAAuC;AAAA,IAC3C,SAAS;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACA,SAAO,OAAO,OAAO;AACvB;AAEA,IAAM,QAAc;AAAA,EAClB,CAAC,IAA+E,QAAQ;AAAvF,iBAAE,aAAW,SAAS,MAAM,YAAY,UAAU,OAAO,SArG5D,IAqGG,IAAsE,kBAAtE,IAAsE,CAApE,aAAW,WAAS,QAAM,cAAY,WAAiB;AACxD,UAAM,OAAO,UAAU,OAAO;AAE9B,UAAM,iBACJ,eAAe,aAAa,eAAe,mBAAmB,CAAC,kBAAkB,OAAuB,CAAC,IAAI,CAAC;AAChH,QAAI,eAAe,kBAAkB;AACnC,qBAAe,KAAK,wBAAwB,OAAuB,CAAC;AAAA,IACtE;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,cAAc,EAAE,SAAS,MAAM,YAAY,UAAU,CAAC,GAAG,cAAc;AAAA,SACjF;AAAA,MAEH;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,MAAM,cAAc;","names":[]}
@@ -56,4 +56,4 @@ function FormTextInput(_a) {
56
56
  export {
57
57
  FormTextInput
58
58
  };
59
- //# sourceMappingURL=chunk-4QOQOMZB.mjs.map
59
+ //# sourceMappingURL=chunk-LXILG667.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/text-input.tsx"],"sourcesContent":["\"use client\";\nimport React, { InputHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Input\n type={type}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,OAAO,WAAoC;AAC3C,OAAO,gBAAgB;AAOvB,IAAM,aAAa;AAcZ,SAAS,cAAc,IAUP;AAVO,eAC5B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EA/BhB,IAuB8B,IASzB,iBATyB,IASzB;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,OARL;AAAA,MASC,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}
@@ -70,4 +70,4 @@ function ContextSwitcher({
70
70
  export {
71
71
  ContextSwitcher
72
72
  };
73
- //# sourceMappingURL=chunk-DMO25T5J.mjs.map
73
+ //# sourceMappingURL=chunk-NTYWTGYX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../layouts/sidebar1/context-switcher.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { ChevronsUpDown, Plus } from 'lucide-react';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\nimport { cn } from '../../lib/utils';\n\nexport interface INavContext {\n name: string;\n logo: React.ElementType;\n text: string;\n className?: string;\n}\n\nexport function ContextSwitcher({\n items,\n title = 'Contexts',\n newContextText = 'Add context',\n}: {\n items: INavContext[];\n title?: string;\n newContextText?: string;\n}) {\n const { isMobile } = useSidebar();\n const [activeContext, setActiveContext] = React.useState(items[0]);\n\n React.useEffect(() => {\n if (!items || items.length === 0) return;\n setActiveContext((prev) => {\n const stillExists = items.find((item) => item.name === prev?.name);\n return stillExists ?? items[0];\n });\n }, [items]);\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <div\n className={cn(\n 'flex aspect-square size-8 items-center justify-center rounded-lg bg-dark text-dark-foreground',\n activeContext.className,\n )}\n >\n <activeContext.logo className=\"size-4\" />\n </div>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{activeContext.name}</span>\n <span className=\"truncate text-xs\">{activeContext.text}</span>\n </div>\n\n <ChevronsUpDown className=\"ml-auto\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n align=\"start\"\n side={isMobile ? 'bottom' : 'right'}\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"text-xs text-muted-foreground\">{title}</DropdownMenuLabel>\n\n {items.map((item, index) => (\n <DropdownMenuItem key={item.name} onClick={() => setActiveContext(item)} className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-sm border\">\n <item.logo className=\"size-4 shrink-0\" />\n </div>\n {item.name}\n <DropdownMenuShortcut>⌘{index + 1}</DropdownMenuShortcut>\n </DropdownMenuItem>\n ))}\n\n <DropdownMenuSeparator />\n\n <DropdownMenuItem className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-md border bg-background\">\n <Plus className=\"size-4\" />\n </div>\n <div className=\"font-medium text-muted-foreground\">{newContextText}</div>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,YAAY,WAAW;AACvB,SAAS,gBAAgB,YAAY;AAoB9B,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,QAAQ;AAAA,EACR,iBAAiB;AACnB,GAIG;AACD,QAAM,EAAE,SAAS,IAAI,WAAW;AAChC,QAAM,CAAC,eAAe,gBAAgB,IAAU,eAAS,MAAM,CAAC,CAAC;AAEjE,EAAM,gBAAU,MAAM;AACpB,QAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAClC,qBAAiB,CAAC,SAAS;AACzB,YAAM,cAAc,MAAM,KAAK,CAAC,SAAS,KAAK,UAAS,6BAAM,KAAI;AACjE,aAAO,oCAAe,MAAM,CAAC;AAAA,IAC/B,CAAC;AAAA,EACH,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,oCAAC,mBACC,oCAAC,uBACC,oCAAC,oBACC,oCAAC,uBAAoB,SAAO,QAC1B;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA;AAAA,IAEV;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,cAAc;AAAA,QAChB;AAAA;AAAA,MAEA,oCAAC,cAAc,MAAd,EAAmB,WAAU,UAAS;AAAA,IACzC;AAAA,IAEA,oCAAC,SAAI,WAAU,iDACb,oCAAC,UAAK,WAAU,4BAA0B,cAAc,IAAK,GAC7D,oCAAC,UAAK,WAAU,sBAAoB,cAAc,IAAK,CACzD;AAAA,IAEA,oCAAC,kBAAe,WAAU,WAAU;AAAA,EACtC,CACF,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAM;AAAA,MACN,MAAM,WAAW,WAAW;AAAA,MAC5B,YAAY;AAAA;AAAA,IAEZ,oCAAC,qBAAkB,WAAU,mCAAiC,KAAM;AAAA,IAEnE,MAAM,IAAI,CAAC,MAAM,UAChB,oCAAC,oBAAiB,KAAK,KAAK,MAAM,SAAS,MAAM,iBAAiB,IAAI,GAAG,WAAU,eACjF,oCAAC,SAAI,WAAU,+DACb,oCAAC,KAAK,MAAL,EAAU,WAAU,mBAAkB,CACzC,GACC,KAAK,MACN,oCAAC,4BAAqB,UAAE,QAAQ,CAAE,CACpC,CACD;AAAA,IAED,oCAAC,2BAAsB;AAAA,IAEvB,oCAAC,oBAAiB,WAAU,eAC1B,oCAAC,SAAI,WAAU,6EACb,oCAAC,QAAK,WAAU,UAAS,CAC3B,GACA,oCAAC,SAAI,WAAU,uCAAqC,cAAe,CACrE;AAAA,EACF,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -70,4 +70,4 @@ function FormTextarea(_a) {
70
70
 
71
71
 
72
72
  exports.FormTextarea = FormTextarea;
73
- //# sourceMappingURL=chunk-3YDM2NYL.js.map
73
+ //# sourceMappingURL=chunk-NVBZVKIT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-NVBZVKIT.js","../components/form/textarea.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACdA,4EAAsD;AACtD,4GAAwB;AACxB,wGAAuB;AAOvB,IAAM,WAAA,EAAa,EAAA;AAcZ,SAAS,YAAA,CAAa,EAAA,EAUP;AAVO,EAAA,IAAA,GAAA,EAAA,EAAA,EAC3B;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,CAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EAhChB,EAAA,EAwB6B,EAAA,EASxB,KAAA,EAAA,wCAAA,EATwB,EASxB;AAAA,IARH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,GAAA,EAAK,iCAAA,IAAe,CAAA;AAC7B,EAAA,MAAM,KAAA,EAAO,2BAAA,IAAgC,CAAA;AAE7C,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAC/C,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EAC/C,KACH,CAAA,kBAGF,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,IAAA,CAAA,EARL;AAAA,MAYC,GAAA,EAAK,CAAC,EAAA,EAAA,GAAO;AACX,QAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,QAAA,CAAC,IAAA,EAAM,UAAA,CAAW,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,EAAA,EAAA,GAAO;AACrC,UAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,UAAA,GAAA,CAAI,kCAAA,EAAc,CAAA,EAAG;AACnB,YAAA,EAAA,CAAG,EAAE,CAAA;AAAA,UACP,EAAA,KAAO;AACL,YAAA,EAAA,CAAG,QAAA,EAAU,EAAA;AAAA,UACf;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADRA;AACA;AACE;AACF,oCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-NVBZVKIT.js","sourcesContent":[null,"\"use client\";\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('textarea', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
@@ -27,4 +27,4 @@ function DialogProvider({ children }) {
27
27
  export {
28
28
  DialogProvider
29
29
  };
30
- //# sourceMappingURL=chunk-5RW6O56P.mjs.map
30
+ //# sourceMappingURL=chunk-OXCN3BD6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/widgets/dialog-manager/provider.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\nimport { DialogContext } from './context';\nimport { TypedDialogComponent } from './types';\n\ntype DialogEntry = {\n id: number;\n Component: TypedDialogComponent<any, any>;\n args: any;\n resolve: (value: any) => void;\n};\n\nlet dialogId = 0;\n\nexport function DialogProvider({ children }: { children: React.ReactNode }) {\n const [dialogs, setDialogs] = useState<DialogEntry[]>([]);\n\n const openDialog = useCallback(<A, R>(Component: TypedDialogComponent<A, R>, args: A): Promise<R> => {\n return new Promise<R>((resolve) => {\n const id = ++dialogId;\n setDialogs((prev) => [...prev, { id, Component, args, resolve }]);\n });\n }, []);\n\n const handleClose = useCallback((id: number, result: any) => {\n setDialogs((prev) => {\n const entry = prev.find((d) => d.id === id);\n if (entry) entry.resolve(result);\n return prev.filter((d) => d.id !== id);\n });\n }, []);\n\n return (\n <DialogContext.Provider value={{ openDialog }}>\n {children}\n\n {dialogs.map(({ id, Component, args }) => (\n <Component key={id} open={true} args={args} onClose={(result: any) => handleClose(id, result)} />\n ))}\n </DialogContext.Provider>\n );\n}\n"],"mappings":";;;;;AACA,YAAY,WAAW;AACvB,SAAS,UAAU,mBAAmB;AAWtC,IAAI,WAAW;AAER,SAAS,eAAe,EAAE,SAAS,GAAkC;AAC1E,QAAM,CAAC,SAAS,UAAU,IAAI,SAAwB,CAAC,CAAC;AAExD,QAAM,aAAa,YAAY,CAAO,WAAuC,SAAwB;AACnG,WAAO,IAAI,QAAW,CAAC,YAAY;AACjC,YAAM,KAAK,EAAE;AACb,iBAAW,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,IAAI,WAAW,MAAM,QAAQ,CAAC,CAAC;AAAA,IAClE,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,cAAc,YAAY,CAAC,IAAY,WAAgB;AAC3D,eAAW,CAAC,SAAS;AACnB,YAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1C,UAAI,MAAO,OAAM,QAAQ,MAAM;AAC/B,aAAO,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,IACvC,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SACE,oCAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,WAAW,KACzC,UAEA,QAAQ,IAAI,CAAC,EAAE,IAAI,WAAW,KAAK,MAClC,oCAAC,aAAU,KAAK,IAAI,MAAM,MAAM,MAAY,SAAS,CAAC,WAAgB,YAAY,IAAI,MAAM,GAAG,CAChG,CACH;AAEJ;","names":[]}
@@ -59,4 +59,4 @@ function NavMenus({ menus, aslink }) {
59
59
 
60
60
 
61
61
  exports.NavMenus = NavMenus;
62
- //# sourceMappingURL=chunk-E77FKWFS.js.map
62
+ //# sourceMappingURL=chunk-PCR4GC74.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-PCR4GC74.js","../layouts/sidebar1/nav-menus.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-PCR4GC74.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from '../../components/ui/sidebar';\nimport { useSidebar } from '../../components/ui/sidebar';\n\nexport interface IMenuSubItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n isActive?: boolean;\n onClick?: (title: string) => void;\n}\n\nexport interface IMenuItem extends IMenuSubItem {\n subItems?: IMenuSubItem[];\n}\n\nexport interface INavMenu {\n title: string;\n items: IMenuItem[];\n}\n\nfunction SidebarMenuLink({ item, as: LinkComponent }: { item: IMenuSubItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n const Comp = LinkComponent && item.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={item.isActive} tooltip={item.title} onClick={() => setOpenMobile(false)}>\n <Comp to={item.url} href={item.url} onClick={() => item.onClick?.(item.title)}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n </Comp>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n}\n\nfunction SidebarMenuCollapsible({ item, as: LinkComponent }: { item: IMenuItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n if (!item.subItems) return null;\n\n return (\n <Collapsible key={item.title} asChild defaultOpen={item.isActive} className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton tooltip={item.title}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n\n <ChevronRight className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.subItems.map((subItem) => {\n const Comp = LinkComponent && subItem.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuSubItem key={subItem.title}>\n <SidebarMenuSubButton asChild isActive={subItem.isActive} onClick={() => setOpenMobile(false)}>\n <Comp\n to={subItem.url}\n href={subItem.url}\n onClick={() => item.onClick?.(subItem.title)}\n className=\"block w-full\"\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.title}</span>\n </Comp>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n );\n}\n\nexport function NavMenus({ menus, aslink }: { menus: INavMenu[]; aslink: React.ElementType }) {\n return menus.map((menu) => {\n return (\n <SidebarGroup key={menu.title}>\n <SidebarGroupLabel>{menu.title}</SidebarGroupLabel>\n\n <SidebarMenu>\n {menu.items.map((item) =>\n item.subItems && item.subItems.length > 0 ? (\n <SidebarMenuCollapsible key={item.title} item={item} as={aslink} />\n ) : (\n <SidebarMenuLink key={item.title} item={item} as={aslink} />\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n });\n}\n"]}
@@ -28,4 +28,4 @@ function DialogProvider({ children }) {
28
28
 
29
29
 
30
30
  exports.DialogProvider = DialogProvider;
31
- //# sourceMappingURL=chunk-273TIMKM.js.map
31
+ //# sourceMappingURL=chunk-PS3LNHTA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-PS3LNHTA.js","../components/widgets/dialog-manager/provider.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACHA,2EAAuB;AACvB;AAWA,IAAI,SAAA,EAAW,CAAA;AAER,SAAS,cAAA,CAAe,EAAE,SAAS,CAAA,EAAkC;AAC1E,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,CAAyB,CAAC,CAAA;AAExD,EAAA,MAAM,WAAA,EAAa,gCAAA,CAAmB,SAAA,EAAuC,IAAA,EAAA,GAAwB;AACnG,IAAA,OAAO,IAAI,OAAA,CAAW,CAAC,OAAA,EAAA,GAAY;AACjC,MAAA,MAAM,GAAA,EAAK,EAAE,QAAA;AACb,MAAA,UAAA,CAAW,CAAC,IAAA,EAAA,GAAS,CAAC,GAAG,IAAA,EAAM,EAAE,EAAA,EAAI,SAAA,EAAW,IAAA,EAAM,QAAQ,CAAC,CAAC,CAAA;AAAA,IAClE,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,YAAA,EAAc,gCAAA,CAAa,EAAA,EAAY,MAAA,EAAA,GAAgB;AAC3D,IAAA,UAAA,CAAW,CAAC,IAAA,EAAA,GAAS;AACnB,MAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAA,IAAO,EAAE,CAAA;AAC1C,MAAA,GAAA,CAAI,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAC/B,MAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAA,IAAO,EAAE,CAAA;AAAA,IACvC,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,8BAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,WAAW,EAAA,CAAA,EACzC,QAAA,EAEA,OAAA,CAAQ,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,SAAA,EAAW,KAAK,CAAA,EAAA,mBAClC,KAAA,CAAA,aAAA,CAAC,SAAA,EAAA,EAAU,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,IAAA,EAAY,OAAA,EAAS,CAAC,MAAA,EAAA,GAAgB,WAAA,CAAY,EAAA,EAAI,MAAM,EAAA,CAAG,CAChG,CACH,CAAA;AAEJ;ADjBA;AACA;AACE;AACF,wCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-PS3LNHTA.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\nimport { DialogContext } from './context';\nimport { TypedDialogComponent } from './types';\n\ntype DialogEntry = {\n id: number;\n Component: TypedDialogComponent<any, any>;\n args: any;\n resolve: (value: any) => void;\n};\n\nlet dialogId = 0;\n\nexport function DialogProvider({ children }: { children: React.ReactNode }) {\n const [dialogs, setDialogs] = useState<DialogEntry[]>([]);\n\n const openDialog = useCallback(<A, R>(Component: TypedDialogComponent<A, R>, args: A): Promise<R> => {\n return new Promise<R>((resolve) => {\n const id = ++dialogId;\n setDialogs((prev) => [...prev, { id, Component, args, resolve }]);\n });\n }, []);\n\n const handleClose = useCallback((id: number, result: any) => {\n setDialogs((prev) => {\n const entry = prev.find((d) => d.id === id);\n if (entry) entry.resolve(result);\n return prev.filter((d) => d.id !== id);\n });\n }, []);\n\n return (\n <DialogContext.Provider value={{ openDialog }}>\n {children}\n\n {dialogs.map(({ id, Component, args }) => (\n <Component key={id} open={true} args={args} onClose={(result: any) => handleClose(id, result)} />\n ))}\n </DialogContext.Provider>\n );\n}\n"]}
@@ -69,4 +69,4 @@ function FormTextarea(_a) {
69
69
  export {
70
70
  FormTextarea
71
71
  };
72
- //# sourceMappingURL=chunk-UQTHHSJN.mjs.map
72
+ //# sourceMappingURL=chunk-R4SF7CSA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/textarea.tsx"],"sourcesContent":["\"use client\";\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('textarea', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,OAAO,SAAiC,cAAc;AACtD,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAOvB,IAAM,aAAa;AAcZ,SAAS,aAAa,IAUP;AAVO,eAC3B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EAhChB,IAwB6B,IASxB,iBATwB,IASxB;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAC7B,QAAM,OAAO,OAA4B,IAAI;AAE7C,SACE,oCAAC,SAAI,WAAW,GAAG,YAAY,yCAAY,OAAO,KAC/C,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,OARL;AAAA,MAYC,KAAK,CAAC,OAAO;AACX,YAAI,CAAC,GAAI;AAET,SAAC,MAAM,WAAW,GAAG,EAAE,QAAQ,CAAC,OAAO;AACrC,cAAI,CAAC,GAAI;AAET,cAAI,YAAY,EAAE,GAAG;AACnB,eAAG,EAAE;AAAA,UACP,OAAO;AACL,eAAG,UAAU;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}