@egose/shadcn-theme 0.0.50 → 0.0.52

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 (201) 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/layouts/simple/index.d.mts +19 -15
  170. package/layouts/simple/index.d.ts +19 -15
  171. package/layouts/simple/index.js +14 -14
  172. package/layouts/simple/index.js.map +1 -1
  173. package/layouts/simple/index.mjs +14 -14
  174. package/layouts/simple/index.mjs.map +1 -1
  175. package/package.json +1 -1
  176. package/chunk-273TIMKM.js.map +0 -1
  177. package/chunk-2H5WIGQU.js.map +0 -1
  178. package/chunk-2WDZS5E5.mjs.map +0 -1
  179. package/chunk-3YDM2NYL.js.map +0 -1
  180. package/chunk-4QOQOMZB.mjs.map +0 -1
  181. package/chunk-5RW6O56P.mjs.map +0 -1
  182. package/chunk-5UUXFHU3.mjs.map +0 -1
  183. package/chunk-7TCN3MNY.js.map +0 -1
  184. package/chunk-ALDDTRY5.js.map +0 -1
  185. package/chunk-DMO25T5J.mjs.map +0 -1
  186. package/chunk-E77FKWFS.js.map +0 -1
  187. package/chunk-FQG3C7OR.js.map +0 -1
  188. package/chunk-IPTLI5N5.mjs.map +0 -1
  189. package/chunk-LPZRXLKK.mjs.map +0 -1
  190. package/chunk-LVFEXEXE.mjs.map +0 -1
  191. package/chunk-MWA2HHI7.mjs.map +0 -1
  192. package/chunk-N4QVNSAY.js.map +0 -1
  193. package/chunk-NJDC3RMA.mjs.map +0 -1
  194. package/chunk-PSQGNWKT.js.map +0 -1
  195. package/chunk-R3RMWOGE.mjs.map +0 -1
  196. package/chunk-U3HF6HPN.js.map +0 -1
  197. package/chunk-UQTHHSJN.mjs.map +0 -1
  198. package/chunk-V5IL3OBF.mjs.map +0 -1
  199. package/chunk-WA2Z3OWJ.js.map +0 -1
  200. package/chunk-XCHWNZWB.js.map +0 -1
  201. package/chunk-YT6UTIPP.js.map +0 -1
@@ -1,103 +1,18 @@
1
1
  "use client";
2
2
  import {
3
- Dialog,
4
- DialogContent
5
- } from "../../chunk-YAPKDLRQ.mjs";
6
- import {
7
- cn
8
- } from "../../chunk-F5XCCSBC.mjs";
9
- import {
10
- __objRest,
11
- __spreadValues
12
- } from "../../chunk-YOSPWY5K.mjs";
13
-
14
- // components/ui/command.tsx
15
- import * as React from "react";
16
- import { Command as CommandPrimitive } from "cmdk";
17
- import { Search } from "lucide-react";
18
- var Command = React.forwardRef((_a, ref) => {
19
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
20
- return /* @__PURE__ */ React.createElement(
21
- CommandPrimitive,
22
- __spreadValues({
23
- ref,
24
- className: cn(
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 = CommandPrimitive.displayName;
32
- var CommandDialog = (_a) => {
33
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
34
- return /* @__PURE__ */ React.createElement(Dialog, __spreadValues({}, props), /* @__PURE__ */ React.createElement(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 = __objRest(_b, ["className"]);
38
- return /* @__PURE__ */ React.createElement("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "" }, /* @__PURE__ */ React.createElement(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), /* @__PURE__ */ React.createElement(
39
- CommandPrimitive.Input,
40
- __spreadValues({
41
- ref,
42
- className: cn(
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 = CommandPrimitive.Input.displayName;
50
- var CommandList = React.forwardRef((_a, ref) => {
51
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
52
- return /* @__PURE__ */ React.createElement(
53
- CommandPrimitive.List,
54
- __spreadValues({
55
- ref,
56
- className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)
57
- }, props)
58
- );
59
- });
60
- CommandList.displayName = CommandPrimitive.List.displayName;
61
- var CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(CommandPrimitive.Empty, __spreadValues({ ref, className: "py-6 text-center text-sm" }, props)));
62
- CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
63
- var CommandGroup = React.forwardRef((_a, ref) => {
64
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
65
- return /* @__PURE__ */ React.createElement(
66
- CommandPrimitive.Group,
67
- __spreadValues({
68
- ref,
69
- className: cn(
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 = CommandPrimitive.Group.displayName;
77
- var CommandSeparator = React.forwardRef((_a, ref) => {
78
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
79
- return /* @__PURE__ */ React.createElement(CommandPrimitive.Separator, __spreadValues({ ref, className: cn("-mx-1 h-px bg-border", className) }, props));
80
- });
81
- CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
82
- var CommandItem = React.forwardRef((_a, ref) => {
83
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
84
- return /* @__PURE__ */ React.createElement(
85
- CommandPrimitive.Item,
86
- __spreadValues({
87
- ref,
88
- className: cn(
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 = CommandPrimitive.Item.displayName;
96
- var CommandShortcut = (_a) => {
97
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
98
- return /* @__PURE__ */ React.createElement("span", __spreadValues({ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className) }, props));
99
- };
100
- CommandShortcut.displayName = "CommandShortcut";
3
+ Command,
4
+ CommandDialog,
5
+ CommandEmpty,
6
+ CommandGroup,
7
+ CommandInput,
8
+ CommandItem,
9
+ CommandList,
10
+ CommandSeparator,
11
+ CommandShortcut
12
+ } from "../../chunk-4XC6EXHZ.mjs";
13
+ import "../../chunk-YAPKDLRQ.mjs";
14
+ import "../../chunk-F5XCCSBC.mjs";
15
+ import "../../chunk-YOSPWY5K.mjs";
101
16
  export {
102
17
  Command,
103
18
  CommandDialog,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../components/ui/command.tsx"],"sourcesContent":["\"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"],"mappings":";;;;;;;;;;;;;;AACA,YAAY,WAAW;AAEvB,SAAS,WAAW,wBAAwB;AAC5C,SAAS,cAAc;AAKvB,IAAM,UAAgB,iBAGpB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAZL,IAYG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,QAAQ,cAAc,iBAAiB;AAEvC,IAAM,gBAAgB,CAAC,OAAwC;AAAxC,eAAE,WAxBzB,IAwBuB,IAAe,kBAAf,IAAe,CAAb;AACvB,SACE,oCAAC,2BAAW,QACV,oCAAC,iBAAc,WAAU,yBACvB,oCAAC,WAAQ,WAAU,iXAChB,QACH,CACF,CACF;AAEJ;AAEA,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAvCL,IAuCG,IAAgB,kBAAhB,IAAgB,CAAd;AACH,6CAAC,SAAI,WAAU,mCAAkC,sBAAmB,MAClE,oCAAC,UAAO,WAAU,oCAAmC,GACrD;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN,CACF;AAAA,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,cAAoB,iBAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA1DL,IA0DG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,mDAAmD,SAAS;AAAA,OACtE;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,eAAqB,iBAGzB,CAAC,OAAO,QAAQ,oCAAC,iBAAiB,OAAjB,iBAAuB,KAAU,WAAU,8BAA+B,MAAO,CAAE;AAEtG,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA9EL,IA8EG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,mBAAyB,iBAG7B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA9FL,IA8FG,IAAgB,kBAAhB,IAAgB,CAAd;AACH,6CAAC,iBAAiB,WAAjB,iBAA2B,KAAU,WAAW,GAAG,wBAAwB,SAAS,KAAO,MAAO;AAAA,CACpG;AACD,iBAAiB,cAAc,iBAAiB,UAAU;AAE1D,IAAM,cAAoB,iBAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAtGL,IAsGG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,kBAAkB,CAAC,OAAmE;AAAnE,eAAE,YAnH3B,IAmHyB,IAAgB,kBAAhB,IAAgB,CAAd;AACzB,SAAO,oCAAC,yBAAK,WAAW,GAAG,yDAAyD,SAAS,KAAO,MAAO;AAC7G;AACA,gBAAgB,cAAc;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,10 @@
1
+ import * as React$1 from 'react';
2
+
3
+ interface FileInputAsButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
4
+ id?: string;
5
+ accept?: string;
6
+ loading?: boolean;
7
+ }
8
+ declare const FileInputAsButton: React$1.ForwardRefExoticComponent<FileInputAsButtonProps & React$1.RefAttributes<HTMLInputElement>>;
9
+
10
+ export { FileInputAsButton, type FileInputAsButtonProps };
@@ -0,0 +1,10 @@
1
+ import * as React$1 from 'react';
2
+
3
+ interface FileInputAsButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
4
+ id?: string;
5
+ accept?: string;
6
+ loading?: boolean;
7
+ }
8
+ declare const FileInputAsButton: React$1.ForwardRefExoticComponent<FileInputAsButtonProps & React$1.RefAttributes<HTMLInputElement>>;
9
+
10
+ export { FileInputAsButton, type FileInputAsButtonProps };
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
3
+
4
+
5
+ var _chunkW2N2NIVEjs = require('../../../chunk-W2N2NIVE.js');
6
+
7
+
8
+ var _chunkEZZ2YCUUjs = require('../../../chunk-EZZ2YCUU.js');
9
+ require('../../../chunk-A34GFF2E.js');
10
+ require('../../../chunk-6N4WCMTE.js');
11
+
12
+
13
+
14
+ var _chunk2NMEKWO5js = require('../../../chunk-2NMEKWO5.js');
15
+
16
+ // components/ui/extension/file-input.tsx
17
+ var _react = require('react');
18
+ var FileInputAsButton = _react.forwardRef.call(void 0,
19
+ (_a, ref) => {
20
+ var _b = _a, { children, id = "file-upload", accept = "*", className, loading } = _b, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["children", "id", "accept", "className", "loading"]);
21
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(_chunkW2N2NIVEjs.Input, _chunk2NMEKWO5js.__spreadValues.call(void 0, { ref, id, type: "file", accept, className: `sr-only ${className != null ? className : ""}` }, rest)), /* @__PURE__ */ React.createElement("label", { htmlFor: id }, /* @__PURE__ */ React.createElement(_chunkEZZ2YCUUjs.Button, { size: "sm", asChild: true, loading }, children)));
22
+ }
23
+ );
24
+ FileInputAsButton.displayName = "FileInputAsButton";
25
+
26
+
27
+ exports.FileInputAsButton = FileInputAsButton;
28
+ //# sourceMappingURL=file-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/extension/file-input.js","../../../../components/ui/extension/file-input.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,6DAAmC;AACnC;AACE;AACF,6DAAmC;AACnC,sCAAmC;AACnC,sCAAmC;AACnC;AACE;AACA;AACF,6DAAmC;AACnC;AACA;ACXA,8BAA2B;AAQpB,IAAM,kBAAA,EAAoB,+BAAA;AAAA,EAC/B,CAAC,EAAA,EAA6E,GAAA,EAAA,GAAQ;AAArF,IAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,QAAA,EAAU,GAAA,EAAK,aAAA,EAAe,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW,QAZ5D,EAAA,EAYG,EAAA,EAAqE,KAAA,EAAA,wCAAA,EAArE,EAAqE,CAAnE,UAAA,EAAU,IAAA,EAAoB,QAAA,EAAc,WAAA,EAAW,SAAA,CAAA,CAAA;AACxD,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,6CAAA,EAAM,GAAA,EAAU,EAAA,EAAQ,IAAA,EAAK,MAAA,EAAO,MAAA,EAAgB,SAAA,EAAW,CAAA,QAAA,EAAW,UAAA,GAAA,KAAA,EAAA,UAAA,EAAa,EAAE,CAAA,EAAA;AAShG,EAAA;AACF;AAEgC;ADJgL;AACA;AACA","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/components/ui/extension/file-input.js","sourcesContent":[null,"\"use client\";\nimport { Button } from '../button';\nimport { Input } from '../input';\nimport { forwardRef } from 'react';\n\nexport interface FileInputAsButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n id?: string;\n accept?: string;\n loading?: boolean;\n}\n\nexport const FileInputAsButton = forwardRef<HTMLInputElement, FileInputAsButtonProps>(\n ({ children, id = 'file-upload', accept = '*', className, loading, ...rest }, ref) => {\n return (\n <div>\n <Input ref={ref} id={id} type=\"file\" accept={accept} className={`sr-only ${className ?? ''}`} {...rest} />\n\n <label htmlFor={id}>\n <Button size=\"sm\" asChild loading={loading}>\n {children}\n </Button>\n </label>\n </div>\n );\n },\n);\n\nFileInputAsButton.displayName = 'FileInputAsButton';\n"]}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import {
3
+ Input
4
+ } from "../../../chunk-REZO5TYB.mjs";
5
+ import {
6
+ Button
7
+ } from "../../../chunk-4NMFJSJN.mjs";
8
+ import "../../../chunk-NRHWGE26.mjs";
9
+ import "../../../chunk-F5XCCSBC.mjs";
10
+ import {
11
+ __objRest,
12
+ __spreadValues
13
+ } from "../../../chunk-YOSPWY5K.mjs";
14
+
15
+ // components/ui/extension/file-input.tsx
16
+ import { forwardRef } from "react";
17
+ var FileInputAsButton = forwardRef(
18
+ (_a, ref) => {
19
+ var _b = _a, { children, id = "file-upload", accept = "*", className, loading } = _b, rest = __objRest(_b, ["children", "id", "accept", "className", "loading"]);
20
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Input, __spreadValues({ ref, id, type: "file", accept, className: `sr-only ${className != null ? className : ""}` }, rest)), /* @__PURE__ */ React.createElement("label", { htmlFor: id }, /* @__PURE__ */ React.createElement(Button, { size: "sm", asChild: true, loading }, children)));
21
+ }
22
+ );
23
+ FileInputAsButton.displayName = "FileInputAsButton";
24
+ export {
25
+ FileInputAsButton
26
+ };
27
+ //# sourceMappingURL=file-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/extension/file-input.tsx"],"sourcesContent":["\"use client\";\nimport { Button } from '../button';\nimport { Input } from '../input';\nimport { forwardRef } from 'react';\n\nexport interface FileInputAsButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n id?: string;\n accept?: string;\n loading?: boolean;\n}\n\nexport const FileInputAsButton = forwardRef<HTMLInputElement, FileInputAsButtonProps>(\n ({ children, id = 'file-upload', accept = '*', className, loading, ...rest }, ref) => {\n return (\n <div>\n <Input ref={ref} id={id} type=\"file\" accept={accept} className={`sr-only ${className ?? ''}`} {...rest} />\n\n <label htmlFor={id}>\n <Button size=\"sm\" asChild loading={loading}>\n {children}\n </Button>\n </label>\n </div>\n );\n },\n);\n\nFileInputAsButton.displayName = 'FileInputAsButton';\n"],"mappings":";;;;;;;;;;;;;;;AAGA,SAAS,kBAAkB;AAQpB,IAAM,oBAAoB;AAAA,EAC/B,CAAC,IAA6E,QAAQ;AAArF,iBAAE,YAAU,KAAK,eAAe,SAAS,KAAK,WAAW,QAZ5D,IAYG,IAAqE,iBAArE,IAAqE,CAAnE,YAAU,MAAoB,UAAc,aAAW;AACxD,WACE,oCAAC,aACC,oCAAC,wBAAM,KAAU,IAAQ,MAAK,QAAO,QAAgB,WAAW,WAAW,gCAAa,EAAE,MAAQ,KAAM,GAExG,oCAAC,WAAM,SAAS,MACd,oCAAC,UAAO,MAAK,MAAK,SAAO,MAAC,WACvB,QACH,CACF,CACF;AAAA,EAEJ;AACF;AAEA,kBAAkB,cAAc;","names":[]}
@@ -0,0 +1,53 @@
1
+ import { Command } from 'cmdk';
2
+ import React__default from 'react';
3
+
4
+ type MultiSelectValue = {
5
+ value: string;
6
+ label: string;
7
+ };
8
+ interface MultiSelectorProps extends React__default.ComponentPropsWithoutRef<typeof Command> {
9
+ values: MultiSelectValue[];
10
+ onValuesChange: (value: MultiSelectValue[]) => void;
11
+ loop?: boolean;
12
+ className?: string;
13
+ children?: React__default.ReactNode;
14
+ dir?: 'ltr' | 'rtl';
15
+ }
16
+ declare const MultiSelector: ({ values: value, onValuesChange: onValueChange, loop, className, children, dir, ...props }: MultiSelectorProps) => React__default.JSX.Element;
17
+ declare const MultiSelectorTrigger: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>>;
18
+ declare const MultiSelectorInput: React__default.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React__default.DetailedHTMLProps<React__default.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, keyof React__default.InputHTMLAttributes<HTMLInputElement> | "key"> & {
19
+ ref?: React__default.Ref<HTMLInputElement>;
20
+ } & {
21
+ asChild?: boolean;
22
+ }, keyof React__default.InputHTMLAttributes<HTMLInputElement> | "key" | "asChild">, "type" | "value" | "onChange"> & {
23
+ value?: string;
24
+ onValueChange?: (search: string) => void;
25
+ } & React__default.RefAttributes<HTMLInputElement>, "ref"> & React__default.RefAttributes<HTMLInputElement>>;
26
+ declare const MultiSelectorContent: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>>;
27
+ declare const MultiSelectorList: React__default.ForwardRefExoticComponent<Omit<{
28
+ children?: React__default.ReactNode;
29
+ } & Pick<Pick<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React__default.HTMLAttributes<HTMLDivElement>> & {
30
+ ref?: React__default.Ref<HTMLDivElement>;
31
+ } & {
32
+ asChild?: boolean;
33
+ }, "key" | "asChild" | keyof React__default.HTMLAttributes<HTMLDivElement>> & {
34
+ label?: string;
35
+ } & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
36
+ declare const MultiSelectorItem: React__default.ForwardRefExoticComponent<{
37
+ value: string;
38
+ label: string;
39
+ } & Omit<{
40
+ children?: React__default.ReactNode;
41
+ } & Omit<Pick<Pick<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React__default.HTMLAttributes<HTMLDivElement>> & {
42
+ ref?: React__default.Ref<HTMLDivElement>;
43
+ } & {
44
+ asChild?: boolean;
45
+ }, "key" | "asChild" | keyof React__default.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
46
+ disabled?: boolean;
47
+ onSelect?: (value: string) => void;
48
+ value?: string;
49
+ keywords?: string[];
50
+ forceMount?: boolean;
51
+ } & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
52
+
53
+ export { type MultiSelectValue, MultiSelector, MultiSelectorContent, MultiSelectorInput, MultiSelectorItem, MultiSelectorList, MultiSelectorTrigger };
@@ -0,0 +1,53 @@
1
+ import { Command } from 'cmdk';
2
+ import React__default from 'react';
3
+
4
+ type MultiSelectValue = {
5
+ value: string;
6
+ label: string;
7
+ };
8
+ interface MultiSelectorProps extends React__default.ComponentPropsWithoutRef<typeof Command> {
9
+ values: MultiSelectValue[];
10
+ onValuesChange: (value: MultiSelectValue[]) => void;
11
+ loop?: boolean;
12
+ className?: string;
13
+ children?: React__default.ReactNode;
14
+ dir?: 'ltr' | 'rtl';
15
+ }
16
+ declare const MultiSelector: ({ values: value, onValuesChange: onValueChange, loop, className, children, dir, ...props }: MultiSelectorProps) => React__default.JSX.Element;
17
+ declare const MultiSelectorTrigger: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>>;
18
+ declare const MultiSelectorInput: React__default.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React__default.DetailedHTMLProps<React__default.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, keyof React__default.InputHTMLAttributes<HTMLInputElement> | "key"> & {
19
+ ref?: React__default.Ref<HTMLInputElement>;
20
+ } & {
21
+ asChild?: boolean;
22
+ }, keyof React__default.InputHTMLAttributes<HTMLInputElement> | "key" | "asChild">, "type" | "value" | "onChange"> & {
23
+ value?: string;
24
+ onValueChange?: (search: string) => void;
25
+ } & React__default.RefAttributes<HTMLInputElement>, "ref"> & React__default.RefAttributes<HTMLInputElement>>;
26
+ declare const MultiSelectorContent: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>>;
27
+ declare const MultiSelectorList: React__default.ForwardRefExoticComponent<Omit<{
28
+ children?: React__default.ReactNode;
29
+ } & Pick<Pick<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React__default.HTMLAttributes<HTMLDivElement>> & {
30
+ ref?: React__default.Ref<HTMLDivElement>;
31
+ } & {
32
+ asChild?: boolean;
33
+ }, "key" | "asChild" | keyof React__default.HTMLAttributes<HTMLDivElement>> & {
34
+ label?: string;
35
+ } & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
36
+ declare const MultiSelectorItem: React__default.ForwardRefExoticComponent<{
37
+ value: string;
38
+ label: string;
39
+ } & Omit<{
40
+ children?: React__default.ReactNode;
41
+ } & Omit<Pick<Pick<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React__default.HTMLAttributes<HTMLDivElement>> & {
42
+ ref?: React__default.Ref<HTMLDivElement>;
43
+ } & {
44
+ asChild?: boolean;
45
+ }, "key" | "asChild" | keyof React__default.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
46
+ disabled?: boolean;
47
+ onSelect?: (value: string) => void;
48
+ value?: string;
49
+ keywords?: string[];
50
+ forceMount?: boolean;
51
+ } & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
52
+
53
+ export { type MultiSelectValue, MultiSelector, MultiSelectorContent, MultiSelectorInput, MultiSelectorItem, MultiSelectorList, MultiSelectorTrigger };
@@ -0,0 +1,312 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3
+
4
+
5
+ var _chunkRMDDLEPAjs = require('../../../chunk-RMDDLEPA.js');
6
+
7
+
8
+
9
+
10
+
11
+ var _chunkI64GW5SAjs = require('../../../chunk-I64GW5SA.js');
12
+ require('../../../chunk-U3KAN7IM.js');
13
+
14
+
15
+ var _chunk6N4WCMTEjs = require('../../../chunk-6N4WCMTE.js');
16
+
17
+
18
+
19
+
20
+ var _chunk2NMEKWO5js = require('../../../chunk-2NMEKWO5.js');
21
+
22
+ // components/ui/extension/multi-select.tsx
23
+ var _iconsreact = require('@tabler/icons-react');
24
+ var _cmdk = require('cmdk');
25
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
26
+ var MultiSelectContext = _react.createContext.call(void 0, null);
27
+ var useMultiSelect = () => {
28
+ const context = _react.useContext.call(void 0, MultiSelectContext);
29
+ if (!context) {
30
+ throw new Error("useMultiSelect must be used within MultiSelectProvider");
31
+ }
32
+ return context;
33
+ };
34
+ function searchForValue(source, value) {
35
+ for (let i = 0; i < source.length; i++) {
36
+ if (source[i].value === value.value) {
37
+ return i;
38
+ }
39
+ }
40
+ return -1;
41
+ }
42
+ var MultiSelector = (_a) => {
43
+ var _b = _a, {
44
+ values: value,
45
+ onValuesChange: onValueChange,
46
+ loop = false,
47
+ className,
48
+ children,
49
+ dir
50
+ } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, [
51
+ "values",
52
+ "onValuesChange",
53
+ "loop",
54
+ "className",
55
+ "children",
56
+ "dir"
57
+ ]);
58
+ const [inputValue, setInputValue] = _react.useState.call(void 0, "");
59
+ const [open, setOpen] = _react.useState.call(void 0, false);
60
+ const [activeIndex, setActiveIndex] = _react.useState.call(void 0, -1);
61
+ const inputRef = _react2.default.useRef(null);
62
+ const onValueChangeHandler = _react.useCallback.call(void 0,
63
+ (val) => {
64
+ const element = searchForValue(value, val);
65
+ if (element !== -1) {
66
+ onValueChange(value.filter((_, index) => index !== element));
67
+ } else {
68
+ onValueChange([...value, val]);
69
+ }
70
+ },
71
+ // eslint-disable-next-line react-hooks/exhaustive-deps
72
+ [value]
73
+ );
74
+ const handleKeyDown = _react.useCallback.call(void 0,
75
+ (e) => {
76
+ var _a2, _b2;
77
+ e.stopPropagation();
78
+ const target = inputRef.current;
79
+ if (!target) return;
80
+ const selectionStart = (_a2 = target.selectionStart) != null ? _a2 : 0;
81
+ const selectionEnd = (_b2 = target.selectionEnd) != null ? _b2 : 0;
82
+ if (selectionStart !== selectionEnd) {
83
+ return;
84
+ }
85
+ const moveNext = () => {
86
+ const nextIndex = activeIndex + 1;
87
+ setActiveIndex(nextIndex > value.length - 1 ? loop ? 0 : -1 : nextIndex);
88
+ };
89
+ const movePrev = () => {
90
+ const prevIndex = activeIndex - 1;
91
+ setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);
92
+ };
93
+ const moveCurrent = () => {
94
+ const newIndex = activeIndex - 1 <= 0 ? value.length - 1 === 0 ? -1 : 0 : activeIndex - 1;
95
+ setActiveIndex(newIndex);
96
+ };
97
+ switch (e.key) {
98
+ case "ArrowLeft":
99
+ if (dir === "rtl") {
100
+ if (value.length > 0 && (activeIndex !== -1 || loop)) {
101
+ moveNext();
102
+ }
103
+ } else {
104
+ if (value.length > 0 && target.selectionStart === 0) {
105
+ movePrev();
106
+ }
107
+ }
108
+ break;
109
+ case "ArrowRight":
110
+ if (dir === "rtl") {
111
+ if (value.length > 0 && target.selectionStart === 0) {
112
+ movePrev();
113
+ }
114
+ } else {
115
+ if (value.length > 0 && (activeIndex !== -1 || loop)) {
116
+ moveNext();
117
+ }
118
+ }
119
+ break;
120
+ case "Backspace":
121
+ case "Delete":
122
+ if (value.length > 0) {
123
+ if (activeIndex !== -1 && activeIndex < value.length) {
124
+ onValueChangeHandler(value[activeIndex]);
125
+ moveCurrent();
126
+ } else {
127
+ if (target.selectionStart === 0) {
128
+ onValueChangeHandler(value[value.length - 1]);
129
+ }
130
+ }
131
+ }
132
+ break;
133
+ case "Enter":
134
+ setOpen(true);
135
+ break;
136
+ case "Escape":
137
+ if (activeIndex !== -1) {
138
+ setActiveIndex(-1);
139
+ } else if (open) {
140
+ setInputValue("");
141
+ setOpen(false);
142
+ }
143
+ break;
144
+ }
145
+ },
146
+ [value, activeIndex, loop]
147
+ );
148
+ return /* @__PURE__ */ _react2.default.createElement(
149
+ MultiSelectContext.Provider,
150
+ {
151
+ value: {
152
+ value,
153
+ onValueChange: onValueChangeHandler,
154
+ open,
155
+ setOpen,
156
+ inputValue,
157
+ setInputValue,
158
+ activeIndex,
159
+ setActiveIndex,
160
+ ref: inputRef
161
+ }
162
+ },
163
+ /* @__PURE__ */ _react2.default.createElement(
164
+ _chunkI64GW5SAjs.Command,
165
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
166
+ onKeyDown: handleKeyDown,
167
+ className: _chunk6N4WCMTEjs.cn.call(void 0, "overflow-visible bg-transparent flex flex-col space-y-2", className),
168
+ dir
169
+ }, props),
170
+ children
171
+ )
172
+ );
173
+ };
174
+ var MultiSelectorTrigger = _react.forwardRef.call(void 0,
175
+ (_a, ref) => {
176
+ var _b = _a, { className, children } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className", "children"]);
177
+ const { value, onValueChange, activeIndex } = useMultiSelect();
178
+ const mousePreventDefault = _react.useCallback.call(void 0, (e) => {
179
+ e.preventDefault();
180
+ e.stopPropagation();
181
+ }, []);
182
+ return /* @__PURE__ */ _react2.default.createElement(
183
+ "div",
184
+ _chunk2NMEKWO5js.__spreadValues.call(void 0, {
185
+ ref,
186
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
187
+ "flex flex-wrap gap-1 px-2 py-2 ring-1 ring-muted rounded-lg bg-background border rounded-sm",
188
+ {
189
+ "ring-1 focus-within:ring-ring": activeIndex === -1
190
+ },
191
+ className
192
+ )
193
+ }, props),
194
+ value.map((item, index) => /* @__PURE__ */ _react2.default.createElement(
195
+ _chunkRMDDLEPAjs.Badge,
196
+ {
197
+ key: item.value,
198
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
199
+ "px-1.5 rounded-md flex items-center gap-1",
200
+ activeIndex === index && "ring-2 ring-muted-foreground "
201
+ ),
202
+ variant: "secondary"
203
+ },
204
+ /* @__PURE__ */ _react2.default.createElement("span", { className: "text-xs" }, item.label),
205
+ /* @__PURE__ */ _react2.default.createElement(
206
+ "button",
207
+ {
208
+ "aria-label": `Remove ${item} option`,
209
+ "aria-roledescription": "button to remove option",
210
+ type: "button",
211
+ onMouseDown: mousePreventDefault,
212
+ onClick: () => onValueChange(item)
213
+ },
214
+ /* @__PURE__ */ _react2.default.createElement("span", { className: "sr-only" }, "Remove ", item.label, " option"),
215
+ /* @__PURE__ */ _react2.default.createElement(_iconsreact.IconX, { className: "h-4 w-4 hover:stroke-destructive" })
216
+ )
217
+ )),
218
+ children
219
+ );
220
+ }
221
+ );
222
+ MultiSelectorTrigger.displayName = "MultiSelectorTrigger";
223
+ var MultiSelectorInput = _react.forwardRef.call(void 0, (_a, ref) => {
224
+ var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
225
+ const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, ref: inputRef } = useMultiSelect();
226
+ return /* @__PURE__ */ _react2.default.createElement(
227
+ _cmdk.Command.Input,
228
+ _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, props), {
229
+ tabIndex: 0,
230
+ ref: inputRef,
231
+ value: inputValue,
232
+ onValueChange: activeIndex === -1 ? setInputValue : void 0,
233
+ onBlur: () => {
234
+ setInputValue("");
235
+ setOpen(false);
236
+ },
237
+ onFocus: () => setOpen(true),
238
+ onClick: () => setActiveIndex(-1),
239
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
240
+ "p-0 bg-transparent border-none outline-none focus:outline-none focus:ring-0 placeholder:text-muted-foreground flex-1 text-sm",
241
+ className,
242
+ activeIndex !== -1 && "caret-transparent"
243
+ )
244
+ })
245
+ );
246
+ });
247
+ MultiSelectorInput.displayName = "MultiSelectorInput";
248
+ var MultiSelectorContent = _react.forwardRef.call(void 0, ({ children }, ref) => {
249
+ const { open } = useMultiSelect();
250
+ return /* @__PURE__ */ _react2.default.createElement("div", { ref, className: "relative" }, open ? children : null);
251
+ });
252
+ MultiSelectorContent.displayName = "MultiSelectorContent";
253
+ var MultiSelectorList = _react.forwardRef.call(void 0, ({ className, children }, ref) => {
254
+ return /* @__PURE__ */ _react2.default.createElement(
255
+ _chunkI64GW5SAjs.CommandList,
256
+ {
257
+ ref,
258
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
259
+ "p-2 flex flex-col gap-2 rounded-md scrollbar-thin scrollbar-track-transparent transition-colors scrollbar-thumb-muted-foreground dark:scrollbar-thumb-muted scrollbar-thumb-rounded-lg w-full absolute bg-background shadow-md z-100 border border-muted top-0",
260
+ className
261
+ )
262
+ },
263
+ children,
264
+ /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.CommandEmpty, null, /* @__PURE__ */ _react2.default.createElement("span", { className: "text-muted-foreground" }, "No results found"))
265
+ );
266
+ });
267
+ MultiSelectorList.displayName = "MultiSelectorList";
268
+ var MultiSelectorItem = _react.forwardRef.call(void 0, (_a, ref) => {
269
+ var _b = _a, { className, value, label, children } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className", "value", "label", "children"]);
270
+ const { value: Options, onValueChange, setInputValue } = useMultiSelect();
271
+ const mousePreventDefault = _react.useCallback.call(void 0, (e) => {
272
+ e.preventDefault();
273
+ e.stopPropagation();
274
+ }, []);
275
+ const isIncluded = searchForValue(Options, {
276
+ value,
277
+ label
278
+ }) !== -1;
279
+ return /* @__PURE__ */ _react2.default.createElement(
280
+ _chunkI64GW5SAjs.CommandItem,
281
+ _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {
282
+ ref
283
+ }, props), {
284
+ onSelect: () => {
285
+ onValueChange({
286
+ value,
287
+ label
288
+ });
289
+ setInputValue("");
290
+ },
291
+ className: _chunk6N4WCMTEjs.cn.call(void 0,
292
+ "rounded-md cursor-pointer px-2 py-1 transition-colors flex justify-between",
293
+ className,
294
+ isIncluded && "opacity-50 cursor-default",
295
+ props.disabled && "opacity-50 cursor-not-allowed"
296
+ ),
297
+ onMouseDown: mousePreventDefault
298
+ }),
299
+ children,
300
+ isIncluded && /* @__PURE__ */ _react2.default.createElement(_iconsreact.IconCheck, { className: "h-4 w-4" })
301
+ );
302
+ });
303
+ MultiSelectorItem.displayName = "MultiSelectorItem";
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+ exports.MultiSelector = MultiSelector; exports.MultiSelectorContent = MultiSelectorContent; exports.MultiSelectorInput = MultiSelectorInput; exports.MultiSelectorItem = MultiSelectorItem; exports.MultiSelectorList = MultiSelectorList; exports.MultiSelectorTrigger = MultiSelectorTrigger;
312
+ //# sourceMappingURL=multi-select.js.map