@kubetail/ui 0.3.1 → 2.0.0-rc1

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 (225) hide show
  1. package/README.md +2 -1
  2. package/dist/elements/button.cjs +2 -0
  3. package/dist/elements/button.cjs.map +1 -0
  4. package/dist/elements/button.d.ts +18 -0
  5. package/dist/elements/button.js +43 -0
  6. package/dist/elements/button.js.map +1 -0
  7. package/dist/elements/button.stories.d.ts +30 -0
  8. package/dist/elements/calendar.cjs +2 -0
  9. package/dist/elements/calendar.cjs.map +1 -0
  10. package/dist/elements/calendar.d.ts +4 -0
  11. package/dist/elements/{Calendar.js → calendar.js} +4 -4
  12. package/dist/elements/calendar.js.map +1 -0
  13. package/dist/elements/calendar.stories.d.ts +16 -0
  14. package/dist/elements/card.cjs +2 -0
  15. package/dist/elements/card.cjs.map +1 -0
  16. package/dist/elements/card.d.ts +8 -0
  17. package/dist/elements/card.js +57 -0
  18. package/dist/elements/card.js.map +1 -0
  19. package/dist/elements/card.stories.d.ts +17 -0
  20. package/dist/elements/checkbox.cjs +2 -0
  21. package/dist/elements/checkbox.cjs.map +1 -0
  22. package/dist/elements/checkbox.d.ts +3 -0
  23. package/dist/elements/checkbox.js +29 -0
  24. package/dist/elements/checkbox.js.map +1 -0
  25. package/dist/elements/checkbox.stories.d.ts +17 -0
  26. package/dist/elements/dropdown-menu.cjs +2 -0
  27. package/dist/elements/dropdown-menu.cjs.map +1 -0
  28. package/dist/elements/dropdown-menu.d.ts +25 -0
  29. package/dist/elements/dropdown-menu.js +196 -0
  30. package/dist/elements/dropdown-menu.js.map +1 -0
  31. package/dist/elements/dropdown-menu.stories.d.ts +20 -0
  32. package/dist/elements/form.cjs +2 -0
  33. package/dist/elements/form.cjs.map +1 -0
  34. package/dist/elements/form.d.ts +23 -0
  35. package/dist/elements/form.js +83 -0
  36. package/dist/elements/form.js.map +1 -0
  37. package/dist/elements/form.stories.d.ts +16 -0
  38. package/dist/elements/input.cjs +2 -0
  39. package/dist/elements/input.cjs.map +1 -0
  40. package/dist/elements/input.d.ts +2 -0
  41. package/dist/elements/input.js +22 -0
  42. package/dist/elements/input.js.map +1 -0
  43. package/dist/elements/input.stories.d.ts +35 -0
  44. package/dist/elements/label.cjs +2 -0
  45. package/dist/elements/label.cjs.map +1 -0
  46. package/dist/elements/label.d.ts +3 -0
  47. package/dist/elements/label.js +20 -0
  48. package/dist/elements/label.js.map +1 -0
  49. package/dist/elements/label.stories.d.ts +17 -0
  50. package/dist/elements/popover.cjs +2 -0
  51. package/dist/elements/popover.cjs.map +1 -0
  52. package/dist/elements/popover.d.ts +7 -0
  53. package/dist/elements/popover.js +41 -0
  54. package/dist/elements/popover.js.map +1 -0
  55. package/dist/elements/popover.stories.d.ts +17 -0
  56. package/dist/elements/select.cjs +2 -0
  57. package/dist/elements/select.cjs.map +1 -0
  58. package/dist/elements/select.d.ts +14 -0
  59. package/dist/elements/select.js +145 -0
  60. package/dist/elements/select.js.map +1 -0
  61. package/dist/elements/select.stories.d.ts +17 -0
  62. package/dist/elements/spinner.cjs +2 -0
  63. package/dist/elements/spinner.cjs.map +1 -0
  64. package/dist/elements/spinner.d.ts +7 -0
  65. package/dist/elements/{Spinner.js → spinner.js} +5 -5
  66. package/dist/elements/spinner.js.map +1 -0
  67. package/dist/elements/{Spinner.stories.d.ts → spinner.stories.d.ts} +1 -1
  68. package/dist/elements/table.cjs +2 -0
  69. package/dist/elements/table.cjs.map +1 -0
  70. package/dist/elements/table.d.ts +9 -0
  71. package/dist/elements/table.js +71 -0
  72. package/dist/elements/table.js.map +1 -0
  73. package/dist/elements/table.stories.d.ts +17 -0
  74. package/dist/elements/tabs.cjs +2 -0
  75. package/dist/elements/tabs.cjs.map +1 -0
  76. package/dist/elements/tabs.d.ts +6 -0
  77. package/dist/elements/tabs.js +42 -0
  78. package/dist/elements/tabs.js.map +1 -0
  79. package/dist/elements/tabs.stories.d.ts +16 -0
  80. package/dist/index.css +216 -90
  81. package/package.json +23 -14
  82. package/dist/elements/Alert.cjs +0 -2
  83. package/dist/elements/Alert.cjs.map +0 -1
  84. package/dist/elements/Alert.d.ts +0 -9
  85. package/dist/elements/Alert.js +0 -13
  86. package/dist/elements/Alert.js.map +0 -1
  87. package/dist/elements/Alert.stories.d.ts +0 -11
  88. package/dist/elements/Button.cjs +0 -2
  89. package/dist/elements/Button.cjs.map +0 -1
  90. package/dist/elements/Button.d.ts +0 -9
  91. package/dist/elements/Button.js +0 -44
  92. package/dist/elements/Button.js.map +0 -1
  93. package/dist/elements/Button.stories.d.ts +0 -15
  94. package/dist/elements/Calendar.cjs +0 -2
  95. package/dist/elements/Calendar.cjs.map +0 -1
  96. package/dist/elements/Calendar.d.ts +0 -3
  97. package/dist/elements/Calendar.js.map +0 -1
  98. package/dist/elements/Calendar.stories.d.ts +0 -10
  99. package/dist/elements/Container.cjs +0 -2
  100. package/dist/elements/Container.cjs.map +0 -1
  101. package/dist/elements/Container.d.ts +0 -8
  102. package/dist/elements/Container.js +0 -7
  103. package/dist/elements/Container.js.map +0 -1
  104. package/dist/elements/Container.stories.d.ts +0 -14
  105. package/dist/elements/Container.test.d.ts +0 -1
  106. package/dist/elements/DataTable/Body.cjs +0 -2
  107. package/dist/elements/DataTable/Body.cjs.map +0 -1
  108. package/dist/elements/DataTable/Body.d.ts +0 -6
  109. package/dist/elements/DataTable/Body.js +0 -8
  110. package/dist/elements/DataTable/Body.js.map +0 -1
  111. package/dist/elements/DataTable/DataCell.cjs +0 -2
  112. package/dist/elements/DataTable/DataCell.cjs.map +0 -1
  113. package/dist/elements/DataTable/DataCell.d.ts +0 -6
  114. package/dist/elements/DataTable/DataCell.js +0 -19
  115. package/dist/elements/DataTable/DataCell.js.map +0 -1
  116. package/dist/elements/DataTable/Header.cjs +0 -2
  117. package/dist/elements/DataTable/Header.cjs.map +0 -1
  118. package/dist/elements/DataTable/Header.d.ts +0 -20
  119. package/dist/elements/DataTable/Header.js +0 -23
  120. package/dist/elements/DataTable/Header.js.map +0 -1
  121. package/dist/elements/DataTable/HeaderCell.cjs +0 -2
  122. package/dist/elements/DataTable/HeaderCell.cjs.map +0 -1
  123. package/dist/elements/DataTable/HeaderCell.d.ts +0 -10
  124. package/dist/elements/DataTable/HeaderCell.js +0 -45
  125. package/dist/elements/DataTable/HeaderCell.js.map +0 -1
  126. package/dist/elements/DataTable/Row.cjs +0 -2
  127. package/dist/elements/DataTable/Row.cjs.map +0 -1
  128. package/dist/elements/DataTable/Row.d.ts +0 -6
  129. package/dist/elements/DataTable/Row.js +0 -7
  130. package/dist/elements/DataTable/Row.js.map +0 -1
  131. package/dist/elements/DataTable/index.cjs +0 -2
  132. package/dist/elements/DataTable/index.cjs.map +0 -1
  133. package/dist/elements/DataTable/index.d.ts +0 -25
  134. package/dist/elements/DataTable/index.js +0 -31
  135. package/dist/elements/DataTable/index.js.map +0 -1
  136. package/dist/elements/DataTable/shared.cjs +0 -2
  137. package/dist/elements/DataTable/shared.cjs.map +0 -1
  138. package/dist/elements/DataTable/shared.d.ts +0 -6
  139. package/dist/elements/DataTable/shared.js +0 -8
  140. package/dist/elements/DataTable/shared.js.map +0 -1
  141. package/dist/elements/DataTable.stories.d.ts +0 -11
  142. package/dist/elements/DropdownMenu.cjs +0 -2
  143. package/dist/elements/DropdownMenu.cjs.map +0 -1
  144. package/dist/elements/DropdownMenu.d.ts +0 -26
  145. package/dist/elements/DropdownMenu.js +0 -125
  146. package/dist/elements/DropdownMenu.js.map +0 -1
  147. package/dist/elements/DropdownMenu.stories.d.ts +0 -9
  148. package/dist/elements/Form.cjs +0 -2
  149. package/dist/elements/Form.cjs.map +0 -1
  150. package/dist/elements/Form.d.ts +0 -22
  151. package/dist/elements/Form.js +0 -29
  152. package/dist/elements/Form.js.map +0 -1
  153. package/dist/elements/Form.stories.d.ts +0 -11
  154. package/dist/elements/Form.test.d.ts +0 -1
  155. package/dist/elements/FormCheck.cjs +0 -2
  156. package/dist/elements/FormCheck.cjs.map +0 -1
  157. package/dist/elements/FormCheck.d.ts +0 -7
  158. package/dist/elements/FormCheck.js +0 -17
  159. package/dist/elements/FormCheck.js.map +0 -1
  160. package/dist/elements/FormCheck.stories.d.ts +0 -14
  161. package/dist/elements/FormCheck.test.d.ts +0 -1
  162. package/dist/elements/FormControl.cjs +0 -2
  163. package/dist/elements/FormControl.cjs.map +0 -1
  164. package/dist/elements/FormControl.d.ts +0 -12
  165. package/dist/elements/FormControl.js +0 -19
  166. package/dist/elements/FormControl.js.map +0 -1
  167. package/dist/elements/FormControl.test.d.ts +0 -1
  168. package/dist/elements/FormControlFeedback.cjs +0 -2
  169. package/dist/elements/FormControlFeedback.cjs.map +0 -1
  170. package/dist/elements/FormControlFeedback.d.ts +0 -8
  171. package/dist/elements/FormControlFeedback.js +0 -8
  172. package/dist/elements/FormControlFeedback.js.map +0 -1
  173. package/dist/elements/FormControlFeedback.test.d.ts +0 -1
  174. package/dist/elements/FormFeedback.cjs +0 -2
  175. package/dist/elements/FormFeedback.cjs.map +0 -1
  176. package/dist/elements/FormFeedback.d.ts +0 -8
  177. package/dist/elements/FormFeedback.js +0 -8
  178. package/dist/elements/FormFeedback.js.map +0 -1
  179. package/dist/elements/FormFeedback.test.d.ts +0 -1
  180. package/dist/elements/FormFieldset.cjs +0 -2
  181. package/dist/elements/FormFieldset.cjs.map +0 -1
  182. package/dist/elements/FormFieldset.d.ts +0 -2
  183. package/dist/elements/FormFieldset.js +0 -11
  184. package/dist/elements/FormFieldset.js.map +0 -1
  185. package/dist/elements/FormFieldset.test.d.ts +0 -1
  186. package/dist/elements/FormGroup.cjs +0 -2
  187. package/dist/elements/FormGroup.cjs.map +0 -1
  188. package/dist/elements/FormGroup.d.ts +0 -10
  189. package/dist/elements/FormGroup.js +0 -13
  190. package/dist/elements/FormGroup.js.map +0 -1
  191. package/dist/elements/FormGroup.test.d.ts +0 -1
  192. package/dist/elements/FormLabel.cjs +0 -2
  193. package/dist/elements/FormLabel.cjs.map +0 -1
  194. package/dist/elements/FormLabel.d.ts +0 -6
  195. package/dist/elements/FormLabel.js +0 -15
  196. package/dist/elements/FormLabel.js.map +0 -1
  197. package/dist/elements/FormLabel.test.d.ts +0 -1
  198. package/dist/elements/FormOption.cjs +0 -2
  199. package/dist/elements/FormOption.cjs.map +0 -1
  200. package/dist/elements/FormOption.d.ts +0 -2
  201. package/dist/elements/FormOption.js +0 -10
  202. package/dist/elements/FormOption.js.map +0 -1
  203. package/dist/elements/FormSelect.cjs +0 -2
  204. package/dist/elements/FormSelect.cjs.map +0 -1
  205. package/dist/elements/FormSelect.d.ts +0 -5
  206. package/dist/elements/FormSelect.js +0 -13
  207. package/dist/elements/FormSelect.js.map +0 -1
  208. package/dist/elements/Popover.cjs +0 -2
  209. package/dist/elements/Popover.cjs.map +0 -1
  210. package/dist/elements/Popover.d.ts +0 -7
  211. package/dist/elements/Popover.js +0 -26
  212. package/dist/elements/Popover.js.map +0 -1
  213. package/dist/elements/Popover.stories.d.ts +0 -9
  214. package/dist/elements/Spinner.cjs +0 -2
  215. package/dist/elements/Spinner.cjs.map +0 -1
  216. package/dist/elements/Spinner.d.ts +0 -7
  217. package/dist/elements/Spinner.js.map +0 -1
  218. package/dist/elements/Tabs.cjs +0 -2
  219. package/dist/elements/Tabs.cjs.map +0 -1
  220. package/dist/elements/Tabs.d.ts +0 -6
  221. package/dist/elements/Tabs.js +0 -47
  222. package/dist/elements/Tabs.js.map +0 -1
  223. package/dist/elements/Tabs.stories.d.ts +0 -9
  224. /package/dist/elements/{Alert.test.d.ts → button.test.d.ts} +0 -0
  225. /package/dist/elements/{Button.test.d.ts → input.test.d.ts} +0 -0
@@ -0,0 +1,196 @@
1
+ import { jsx as t, jsxs as s } from "react/jsx-runtime";
2
+ import * as n from "@radix-ui/react-dropdown-menu";
3
+ import { CheckIcon as i, CircleIcon as u, ChevronRightIcon as c } from "lucide-react";
4
+ import { cn as r } from "../lib/utils.js";
5
+ function f({ ...e }) {
6
+ return /* @__PURE__ */ t(n.Root, { "data-slot": "dropdown-menu", ...e });
7
+ }
8
+ function g({ ...e }) {
9
+ return /* @__PURE__ */ t(n.Portal, { "data-slot": "dropdown-menu-portal", ...e });
10
+ }
11
+ function v({ ...e }) {
12
+ return /* @__PURE__ */ t(n.Trigger, { "data-slot": "dropdown-menu-trigger", ...e });
13
+ }
14
+ function w({
15
+ className: e,
16
+ sideOffset: o = 4,
17
+ ...a
18
+ }) {
19
+ return /* @__PURE__ */ t(n.Portal, { children: /* @__PURE__ */ t(
20
+ n.Content,
21
+ {
22
+ "data-slot": "dropdown-menu-content",
23
+ sideOffset: o,
24
+ className: r(
25
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
26
+ e
27
+ ),
28
+ ...a
29
+ }
30
+ ) });
31
+ }
32
+ function x({ ...e }) {
33
+ return /* @__PURE__ */ t(n.Group, { "data-slot": "dropdown-menu-group", ...e });
34
+ }
35
+ function b({
36
+ className: e,
37
+ inset: o,
38
+ variant: a = "default",
39
+ ...d
40
+ }) {
41
+ return /* @__PURE__ */ t(
42
+ n.Item,
43
+ {
44
+ "data-slot": "dropdown-menu-item",
45
+ "data-inset": o,
46
+ "data-variant": a,
47
+ className: r(
48
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
49
+ e
50
+ ),
51
+ ...d
52
+ }
53
+ );
54
+ }
55
+ function h({
56
+ className: e,
57
+ children: o,
58
+ checked: a,
59
+ ...d
60
+ }) {
61
+ return /* @__PURE__ */ s(
62
+ n.CheckboxItem,
63
+ {
64
+ "data-slot": "dropdown-menu-checkbox-item",
65
+ className: r(
66
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
67
+ e
68
+ ),
69
+ checked: a,
70
+ ...d,
71
+ children: [
72
+ /* @__PURE__ */ t("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ t(n.ItemIndicator, { children: /* @__PURE__ */ t(i, { className: "size-4" }) }) }),
73
+ o
74
+ ]
75
+ }
76
+ );
77
+ }
78
+ function z({ ...e }) {
79
+ return /* @__PURE__ */ t(n.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...e });
80
+ }
81
+ function D({
82
+ className: e,
83
+ children: o,
84
+ ...a
85
+ }) {
86
+ return /* @__PURE__ */ s(
87
+ n.RadioItem,
88
+ {
89
+ "data-slot": "dropdown-menu-radio-item",
90
+ className: r(
91
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
92
+ e
93
+ ),
94
+ ...a,
95
+ children: [
96
+ /* @__PURE__ */ t("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ t(n.ItemIndicator, { children: /* @__PURE__ */ t(u, { className: "size-2 fill-current" }) }) }),
97
+ o
98
+ ]
99
+ }
100
+ );
101
+ }
102
+ function M({
103
+ className: e,
104
+ inset: o,
105
+ ...a
106
+ }) {
107
+ return /* @__PURE__ */ t(
108
+ n.Label,
109
+ {
110
+ "data-slot": "dropdown-menu-label",
111
+ "data-inset": o,
112
+ className: r("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", e),
113
+ ...a
114
+ }
115
+ );
116
+ }
117
+ function N({ className: e, ...o }) {
118
+ return /* @__PURE__ */ t(
119
+ n.Separator,
120
+ {
121
+ "data-slot": "dropdown-menu-separator",
122
+ className: r("bg-border -mx-1 my-1 h-px", e),
123
+ ...o
124
+ }
125
+ );
126
+ }
127
+ function I({ className: e, ...o }) {
128
+ return /* @__PURE__ */ t(
129
+ "span",
130
+ {
131
+ "data-slot": "dropdown-menu-shortcut",
132
+ className: r("text-muted-foreground ml-auto text-xs tracking-widest", e),
133
+ ...o
134
+ }
135
+ );
136
+ }
137
+ function y({ ...e }) {
138
+ return /* @__PURE__ */ t(n.Sub, { "data-slot": "dropdown-menu-sub", ...e });
139
+ }
140
+ function _({
141
+ className: e,
142
+ inset: o,
143
+ children: a,
144
+ ...d
145
+ }) {
146
+ return /* @__PURE__ */ s(
147
+ n.SubTrigger,
148
+ {
149
+ "data-slot": "dropdown-menu-sub-trigger",
150
+ "data-inset": o,
151
+ className: r(
152
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
153
+ e
154
+ ),
155
+ ...d,
156
+ children: [
157
+ a,
158
+ /* @__PURE__ */ t(c, { className: "ml-auto size-4" })
159
+ ]
160
+ }
161
+ );
162
+ }
163
+ function k({
164
+ className: e,
165
+ ...o
166
+ }) {
167
+ return /* @__PURE__ */ t(
168
+ n.SubContent,
169
+ {
170
+ "data-slot": "dropdown-menu-sub-content",
171
+ className: r(
172
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
173
+ e
174
+ ),
175
+ ...o
176
+ }
177
+ );
178
+ }
179
+ export {
180
+ f as DropdownMenu,
181
+ h as DropdownMenuCheckboxItem,
182
+ w as DropdownMenuContent,
183
+ x as DropdownMenuGroup,
184
+ b as DropdownMenuItem,
185
+ M as DropdownMenuLabel,
186
+ g as DropdownMenuPortal,
187
+ z as DropdownMenuRadioGroup,
188
+ D as DropdownMenuRadioItem,
189
+ N as DropdownMenuSeparator,
190
+ I as DropdownMenuShortcut,
191
+ y as DropdownMenuSub,
192
+ k as DropdownMenuSubContent,
193
+ _ as DropdownMenuSubTrigger,
194
+ v as DropdownMenuTrigger
195
+ };
196
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","sources":["../../src/elements/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"names":["DropdownMenu","props","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","jsx","cn","DropdownMenuGroup","DropdownMenuItem","inset","variant","DropdownMenuCheckboxItem","children","checked","jsxs","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","CircleIcon","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { DropdownMenu } from './dropdown-menu';
2
+ declare const meta: {
3
+ title: string;
4
+ tags: string[];
5
+ component: typeof DropdownMenu;
6
+ parameters: {
7
+ docs: {
8
+ description: {
9
+ component: string;
10
+ };
11
+ };
12
+ };
13
+ };
14
+ export default meta;
15
+ export declare const Checkboxes: {
16
+ render: () => import("react/jsx-runtime").JSX.Element;
17
+ };
18
+ export declare const RadioGroup: {
19
+ render: () => import("react/jsx-runtime").JSX.Element;
20
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),s=require("react");require("@radix-ui/react-label");const F=require("@radix-ui/react-slot"),c=require("react-hook-form"),d=require("../lib/utils.cjs"),f=require("./label.cjs"),x=c.FormProvider,l=s.createContext({}),u=s.createContext({}),I=({...e})=>{const t=s.useMemo(()=>({name:e.name}),[e.name]);return n.jsx(l.Provider,{value:t,children:n.jsx(c.Controller,{...e})})},i=()=>{const e=s.useContext(l),t=s.useContext(u),{getFieldState:r}=c.useFormContext(),o=c.useFormState({name:e.name}),m=r(e.name,o);if(!e)throw new Error("useFormField should be used within <FormField>");const{id:a}=t;return{id:a,name:e.name,formItemId:`${a}-form-item`,formDescriptionId:`${a}-form-item-description`,formMessageId:`${a}-form-item-message`,...m}};function g({className:e,...t}){const r=s.useId(),o=s.useMemo(()=>({id:r}),[r]);return n.jsx(u.Provider,{value:o,children:n.jsx("div",{"data-slot":"form-item",className:d.cn("grid gap-2",e),...t})})}function C({className:e,...t}){const{error:r,formItemId:o}=i();return n.jsx(f.Label,{"data-slot":"form-label","data-error":!!r,className:d.cn("data-[error=true]:text-destructive",e),htmlFor:o,...t})}function b({...e}){const{error:t,formItemId:r,formDescriptionId:o,formMessageId:m}=i();return n.jsx(F.Slot,{"data-slot":"form-control",id:r,"aria-describedby":t?`${o} ${m}`:o,"aria-invalid":!!t,...e})}function j({className:e,...t}){const{formDescriptionId:r}=i();return n.jsx("p",{"data-slot":"form-description",id:r,className:d.cn("text-muted-foreground text-sm",e),...t})}function v({className:e,...t}){const{error:r,formMessageId:o}=i(),m=r?String((r==null?void 0:r.message)??""):t.children;return m?n.jsx("p",{"data-slot":"form-message",id:o,className:d.cn("text-destructive text-sm",e),...t,children:m}):null}exports.Form=x;exports.FormControl=b;exports.FormDescription=j;exports.FormField=I;exports.FormItem=g;exports.FormLabel=C;exports.FormMessage=v;exports.useFormField=i;
2
+ //# sourceMappingURL=form.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.cjs","sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useId, useMemo } from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"names":["Form","FormProvider","FormFieldContext","createContext","FormItemContext","FormField","props","value","useMemo","jsx","Controller","useFormField","fieldContext","useContext","itemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","useId","cn","FormLabel","error","formItemId","Label","FormControl","formDescriptionId","formMessageId","Slot","FormDescription","FormMessage","body"],"mappings":"qSAkBMA,EAAOC,EAAAA,aASPC,EAAmBC,EAAAA,cAAqC,EAA2B,EAMnFC,EAAkBD,EAAAA,cAAoC,EAA0B,EAEhFE,EAAY,CAGhB,CACA,GAAGC,CACL,IAA4C,CAC1C,MAAMC,EAAQC,EAAAA,QAAQ,KAAO,CAAE,KAAMF,EAAM,IAAA,GAAS,CAACA,EAAM,IAAI,CAAC,EAEhE,OACEG,MAACP,EAAiB,SAAjB,CAA0B,MAAAK,EACzB,SAAAE,EAAAA,IAACC,aAAA,CAAY,GAAGJ,CAAA,CAAO,CAAA,CACzB,CAEJ,EAEMK,EAAe,IAAM,CACzB,MAAMC,EAAeC,EAAAA,WAAWX,CAAgB,EAC1CY,EAAcD,EAAAA,WAAWT,CAAe,EACxC,CAAE,cAAAW,CAAA,EAAkBC,iBAAA,EACpBC,EAAYC,EAAAA,aAAa,CAAE,KAAMN,EAAa,KAAM,EACpDO,EAAaJ,EAAcH,EAAa,KAAMK,CAAS,EAE7D,GAAI,CAACL,EACH,MAAM,IAAI,MAAM,gDAAgD,EAGlE,KAAM,CAAE,GAAAQ,GAAON,EAEf,MAAO,CACL,GAAAM,EACA,KAAMR,EAAa,KACnB,WAAY,GAAGQ,CAAE,aACjB,kBAAmB,GAAGA,CAAE,yBACxB,cAAe,GAAGA,CAAE,qBACpB,GAAGD,CAAA,CAEP,EAEA,SAASE,EAAS,CAAE,UAAAC,EAAW,GAAGhB,GAAsC,CACtE,MAAMc,EAAKG,EAAAA,MAAA,EACLhB,EAAQC,EAAAA,QAAQ,KAAO,CAAE,GAAAY,IAAO,CAACA,CAAE,CAAC,EAE1C,aACGhB,EAAgB,SAAhB,CAAyB,MAAAG,EACxB,eAAC,MAAA,CAAI,YAAU,YAAY,UAAWiB,EAAAA,GAAG,aAAcF,CAAS,EAAI,GAAGhB,EAAO,EAChF,CAEJ,CAEA,SAASmB,EAAU,CAAE,UAAAH,EAAW,GAAGhB,GAA2D,CAC5F,KAAM,CAAE,MAAAoB,EAAO,WAAAC,CAAA,EAAehB,EAAA,EAE9B,OACEF,EAAAA,IAACmB,EAAAA,MAAA,CACC,YAAU,aACV,aAAY,CAAC,CAACF,EACd,UAAWF,EAAAA,GAAG,qCAAsCF,CAAS,EAC7D,QAASK,EACR,GAAGrB,CAAA,CAAA,CAGV,CAEA,SAASuB,EAAY,CAAE,GAAGvB,GAA4C,CACpE,KAAM,CAAE,MAAAoB,EAAO,WAAAC,EAAY,kBAAAG,EAAmB,cAAAC,CAAA,EAAkBpB,EAAA,EAEhE,OACEF,EAAAA,IAACuB,EAAAA,KAAA,CACC,YAAU,eACV,GAAIL,EACJ,mBAAmBD,EAA4B,GAAGI,CAAiB,IAAIC,CAAa,GAAzDD,EAC3B,eAAc,CAAC,CAACJ,EACf,GAAGpB,CAAA,CAAA,CAGV,CAEA,SAAS2B,EAAgB,CAAE,UAAAX,EAAW,GAAGhB,GAAoC,CAC3E,KAAM,CAAE,kBAAAwB,CAAA,EAAsBnB,EAAA,EAE9B,OACEF,EAAAA,IAAC,IAAA,CACC,YAAU,mBACV,GAAIqB,EACJ,UAAWN,EAAAA,GAAG,gCAAiCF,CAAS,EACvD,GAAGhB,CAAA,CAAA,CAGV,CAEA,SAAS4B,EAAY,CAAE,UAAAZ,EAAW,GAAGhB,GAAoC,CACvE,KAAM,CAAE,MAAAoB,EAAO,cAAAK,CAAA,EAAkBpB,EAAA,EAC3BwB,EAAOT,EAAQ,QAAOA,GAAA,YAAAA,EAAO,UAAW,EAAE,EAAIpB,EAAM,SAE1D,OAAK6B,EAKH1B,EAAAA,IAAC,IAAA,CAAE,YAAU,eAAe,GAAIsB,EAAe,UAAWP,EAAAA,GAAG,2BAA4BF,CAAS,EAAI,GAAGhB,EACtG,SAAA6B,EACH,EANO,IAQX"}
@@ -0,0 +1,23 @@
1
+ import { Slot } from '@radix-ui/react-slot';
2
+ import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
3
+ import * as LabelPrimitive from '@radix-ui/react-label';
4
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
5
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
6
+ declare const useFormField: () => {
7
+ invalid: boolean;
8
+ isDirty: boolean;
9
+ isTouched: boolean;
10
+ isValidating: boolean;
11
+ error?: import('react-hook-form').FieldError;
12
+ id: string;
13
+ name: string;
14
+ formItemId: string;
15
+ formDescriptionId: string;
16
+ formMessageId: string;
17
+ };
18
+ declare function FormItem({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
19
+ declare function FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
20
+ declare function FormControl({ ...props }: React.ComponentProps<typeof Slot>): import("react/jsx-runtime").JSX.Element;
21
+ declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element;
22
+ declare function FormMessage({ className, ...props }: React.ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element | null;
23
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
@@ -0,0 +1,83 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { createContext as c, useContext as d, useId as F, useMemo as l } from "react";
3
+ import "@radix-ui/react-label";
4
+ import { Slot as I } from "@radix-ui/react-slot";
5
+ import { FormProvider as x, useFormContext as g, useFormState as p, Controller as v } from "react-hook-form";
6
+ import { cn as i } from "../lib/utils.js";
7
+ import { Label as C } from "./label.js";
8
+ const w = x, f = c({}), u = c({}), P = ({
9
+ ...t
10
+ }) => {
11
+ const e = l(() => ({ name: t.name }), [t.name]);
12
+ return /* @__PURE__ */ m(f.Provider, { value: e, children: /* @__PURE__ */ m(v, { ...t }) });
13
+ }, a = () => {
14
+ const t = d(f), e = d(u), { getFieldState: o } = g(), r = p({ name: t.name }), n = o(t.name, r);
15
+ if (!t)
16
+ throw new Error("useFormField should be used within <FormField>");
17
+ const { id: s } = e;
18
+ return {
19
+ id: s,
20
+ name: t.name,
21
+ formItemId: `${s}-form-item`,
22
+ formDescriptionId: `${s}-form-item-description`,
23
+ formMessageId: `${s}-form-item-message`,
24
+ ...n
25
+ };
26
+ };
27
+ function y({ className: t, ...e }) {
28
+ const o = F(), r = l(() => ({ id: o }), [o]);
29
+ return /* @__PURE__ */ m(u.Provider, { value: r, children: /* @__PURE__ */ m("div", { "data-slot": "form-item", className: i("grid gap-2", t), ...e }) });
30
+ }
31
+ function L({ className: t, ...e }) {
32
+ const { error: o, formItemId: r } = a();
33
+ return /* @__PURE__ */ m(
34
+ C,
35
+ {
36
+ "data-slot": "form-label",
37
+ "data-error": !!o,
38
+ className: i("data-[error=true]:text-destructive", t),
39
+ htmlFor: r,
40
+ ...e
41
+ }
42
+ );
43
+ }
44
+ function j({ ...t }) {
45
+ const { error: e, formItemId: o, formDescriptionId: r, formMessageId: n } = a();
46
+ return /* @__PURE__ */ m(
47
+ I,
48
+ {
49
+ "data-slot": "form-control",
50
+ id: o,
51
+ "aria-describedby": e ? `${r} ${n}` : r,
52
+ "aria-invalid": !!e,
53
+ ...t
54
+ }
55
+ );
56
+ }
57
+ function E({ className: t, ...e }) {
58
+ const { formDescriptionId: o } = a();
59
+ return /* @__PURE__ */ m(
60
+ "p",
61
+ {
62
+ "data-slot": "form-description",
63
+ id: o,
64
+ className: i("text-muted-foreground text-sm", t),
65
+ ...e
66
+ }
67
+ );
68
+ }
69
+ function k({ className: t, ...e }) {
70
+ const { error: o, formMessageId: r } = a(), n = o ? String((o == null ? void 0 : o.message) ?? "") : e.children;
71
+ return n ? /* @__PURE__ */ m("p", { "data-slot": "form-message", id: r, className: i("text-destructive text-sm", t), ...e, children: n }) : null;
72
+ }
73
+ export {
74
+ w as Form,
75
+ j as FormControl,
76
+ E as FormDescription,
77
+ P as FormField,
78
+ y as FormItem,
79
+ L as FormLabel,
80
+ k as FormMessage,
81
+ a as useFormField
82
+ };
83
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useId, useMemo } from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"names":["Form","FormProvider","FormFieldContext","createContext","FormItemContext","FormField","props","value","useMemo","jsx","Controller","useFormField","fieldContext","useContext","itemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","useId","cn","FormLabel","error","formItemId","Label","FormControl","formDescriptionId","formMessageId","Slot","FormDescription","FormMessage","body"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ declare const meta: {
2
+ title: string;
3
+ tags: string[];
4
+ component: () => import("react/jsx-runtime").JSX.Element;
5
+ parameters: {
6
+ docs: {
7
+ description: {
8
+ component: string;
9
+ };
10
+ };
11
+ };
12
+ };
13
+ export default meta;
14
+ export declare const Demo: {
15
+ render: () => import("react/jsx-runtime").JSX.Element;
16
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("../lib/utils.cjs");function o({className:e,type:i,...r}){return t.jsx("input",{type:i,"data-slot":"input",className:n.cn("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}exports.Input=o;
2
+ //# sourceMappingURL=input.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.cjs","sources":["../../src/elements/input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"names":["Input","className","type","props","jsx","cn"],"mappings":"mJAEA,SAASA,EAAM,CAAE,UAAAC,EAAW,KAAAC,EAAM,GAAGC,GAAwC,CAC3E,OACEC,EAAAA,IAAC,QAAA,CACC,KAAAF,EACA,YAAU,QACV,UAAWG,EAAAA,GACT,kcACA,gFACA,yGACAJ,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
@@ -0,0 +1,2 @@
1
+ declare function Input({ className, type, ...props }: React.ComponentProps<'input'>): import("react/jsx-runtime").JSX.Element;
2
+ export { Input };
@@ -0,0 +1,22 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { cn as n } from "../lib/utils.js";
3
+ function a({ className: e, type: i, ...r }) {
4
+ return /* @__PURE__ */ t(
5
+ "input",
6
+ {
7
+ type: i,
8
+ "data-slot": "input",
9
+ className: n(
10
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
11
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
12
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
13
+ e
14
+ ),
15
+ ...r
16
+ }
17
+ );
18
+ }
19
+ export {
20
+ a as Input
21
+ };
22
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sources":["../../src/elements/input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"names":["Input","className","type","props","jsx","cn"],"mappings":";;AAEA,SAASA,EAAM,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,KAAwC;AAC3E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAF;AAAA,MACA,aAAU;AAAA,MACV,WAAWG;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -0,0 +1,35 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ import { Input } from './input';
3
+ declare const meta: {
4
+ title: string;
5
+ tags: string[];
6
+ component: typeof Input;
7
+ parameters: {
8
+ docs: {
9
+ description: {
10
+ component: string;
11
+ };
12
+ };
13
+ };
14
+ args: {
15
+ defaultValue: string;
16
+ disabled: false;
17
+ placeholder: string;
18
+ };
19
+ argTypes: {
20
+ defaultValue: {
21
+ control: "text";
22
+ };
23
+ disabled: {
24
+ control: "boolean";
25
+ };
26
+ placeholder: {
27
+ control: "text";
28
+ };
29
+ };
30
+ };
31
+ export default meta;
32
+ type Story = StoryObj<typeof meta>;
33
+ export declare const Default: Story;
34
+ export declare const Filled: Story;
35
+ export declare const Disabled: Story;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),a=require("@radix-ui/react-label"),i=require("../lib/utils.cjs");function l(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const s=l(a);function c({className:e,...t}){return o.jsx(s.Root,{"data-slot":"label",className:i.cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}exports.Label=c;
2
+ //# sourceMappingURL=label.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.cjs","sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"names":["Label","className","props","jsx","LabelPrimitive","cn"],"mappings":"gdAMA,SAASA,EAAM,CAAE,UAAAC,EAAW,GAAGC,GAA2D,CACxF,OACEC,EAAAA,IAACC,EAAe,KAAf,CACC,YAAU,QACV,UAAWC,EAAAA,GACT,sNACAJ,CAAA,EAED,GAAGC,CAAA,CAAA,CAGV"}
@@ -0,0 +1,3 @@
1
+ import * as LabelPrimitive from '@radix-ui/react-label';
2
+ declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ export { Label };
@@ -0,0 +1,20 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import * as a from "@radix-ui/react-label";
3
+ import { cn as r } from "../lib/utils.js";
4
+ function l({ className: e, ...t }) {
5
+ return /* @__PURE__ */ o(
6
+ a.Root,
7
+ {
8
+ "data-slot": "label",
9
+ className: r(
10
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
11
+ e
12
+ ),
13
+ ...t
14
+ }
15
+ );
16
+ }
17
+ export {
18
+ l as Label
19
+ };
20
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"names":["Label","className","props","jsx","LabelPrimitive","cn"],"mappings":";;;AAMA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAA2D;AACxF,SACE,gBAAAC;AAAA,IAACC,EAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -0,0 +1,17 @@
1
+ import { Label } from './label';
2
+ declare const meta: {
3
+ title: string;
4
+ tags: string[];
5
+ component: typeof Label;
6
+ parameters: {
7
+ docs: {
8
+ description: {
9
+ component: string;
10
+ };
11
+ };
12
+ };
13
+ };
14
+ export default meta;
15
+ export declare const Demo: {
16
+ render: () => import("react/jsx-runtime").JSX.Element;
17
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("@radix-ui/react-popover"),s=require("../lib/utils.cjs");function d(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const a=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(r,o,a.get?a:{enumerable:!0,get:()=>e[o]})}}return r.default=e,Object.freeze(r)}const t=d(i);function p({...e}){return n.jsx(t.Root,{"data-slot":"popover",...e})}function c({...e}){return n.jsx(t.Trigger,{"data-slot":"popover-trigger",...e})}function l({className:e,align:r="center",sideOffset:o=4,...a}){return n.jsx(t.Portal,{children:n.jsx(t.Content,{"data-slot":"popover-content",align:r,sideOffset:o,className:s.cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...a})})}function u({...e}){return n.jsx(t.Anchor,{"data-slot":"popover-anchor",...e})}const f=t.Close;exports.Popover=p;exports.PopoverAnchor=u;exports.PopoverClose=f;exports.PopoverContent=l;exports.PopoverTrigger=c;
2
+ //# sourceMappingURL=popover.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.cjs","sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","jsx","cn","PopoverAnchor","PopoverClose"],"mappings":"kdAMA,SAASA,EAAQ,CAAE,GAAGC,GAA6D,CACjF,aAAQC,EAAiB,KAAjB,CAAsB,YAAU,UAAW,GAAGD,EAAO,CAC/D,CAEA,SAASE,EAAe,CAAE,GAAGF,GAAgE,CAC3F,aAAQC,EAAiB,QAAjB,CAAyB,YAAU,kBAAmB,GAAGD,EAAO,CAC1E,CAEA,SAASG,EAAe,CACtB,UAAAC,EACA,MAAAC,EAAQ,SACR,WAAAC,EAAa,EACb,GAAGN,CACL,EAA0D,CACxD,OACEO,EAAAA,IAACN,EAAiB,OAAjB,CACC,SAAAM,EAAAA,IAACN,EAAiB,QAAjB,CACC,YAAU,kBACV,MAAAI,EACA,WAAAC,EACA,UAAWE,EAAAA,GACT,ieACAJ,CAAA,EAED,GAAGJ,CAAA,CAAA,EAER,CAEJ,CAEA,SAASS,EAAc,CAAE,GAAGT,GAA+D,CACzF,aAAQC,EAAiB,OAAjB,CAAwB,YAAU,iBAAkB,GAAGD,EAAO,CACxE,CAEA,MAAMU,EAAeT,EAAiB"}
@@ -0,0 +1,7 @@
1
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
2
+ declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
4
+ declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
6
+ declare const PopoverClose: import('react').ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & import('react').RefAttributes<HTMLButtonElement>>;
7
+ export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };
@@ -0,0 +1,41 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import * as t from "@radix-ui/react-popover";
3
+ import { cn as i } from "../lib/utils.js";
4
+ function s({ ...o }) {
5
+ return /* @__PURE__ */ e(t.Root, { "data-slot": "popover", ...o });
6
+ }
7
+ function m({ ...o }) {
8
+ return /* @__PURE__ */ e(t.Trigger, { "data-slot": "popover-trigger", ...o });
9
+ }
10
+ function l({
11
+ className: o,
12
+ align: r = "center",
13
+ sideOffset: a = 4,
14
+ ...n
15
+ }) {
16
+ return /* @__PURE__ */ e(t.Portal, { children: /* @__PURE__ */ e(
17
+ t.Content,
18
+ {
19
+ "data-slot": "popover-content",
20
+ align: r,
21
+ sideOffset: a,
22
+ className: i(
23
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
24
+ o
25
+ ),
26
+ ...n
27
+ }
28
+ ) });
29
+ }
30
+ function c({ ...o }) {
31
+ return /* @__PURE__ */ e(t.Anchor, { "data-slot": "popover-anchor", ...o });
32
+ }
33
+ const f = t.Close;
34
+ export {
35
+ s as Popover,
36
+ c as PopoverAnchor,
37
+ f as PopoverClose,
38
+ l as PopoverContent,
39
+ m as PopoverTrigger
40
+ };
41
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.js","sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","jsx","cn","PopoverAnchor","PopoverClose"],"mappings":";;;AAMA,SAASA,EAAQ,EAAE,GAAGC,KAA6D;AACjF,2BAAQC,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGD,GAAO;AAC/D;AAEA,SAASE,EAAe,EAAE,GAAGF,KAAgE;AAC3F,2BAAQC,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGD,GAAO;AAC1E;AAEA,SAASG,EAAe;AAAA,EACtB,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,YAAAC,IAAa;AAAA,EACb,GAAGN;AACL,GAA0D;AACxD,SACE,gBAAAO,EAACN,EAAiB,QAAjB,EACC,UAAA,gBAAAM;AAAA,IAACN,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,OAAAI;AAAA,MACA,YAAAC;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGJ;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;AAEA,SAASS,EAAc,EAAE,GAAGT,KAA+D;AACzF,2BAAQC,EAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACxE;AAEA,MAAMU,IAAeT,EAAiB;"}